Function at 0x402386
Capabilities:
Check os version
Create process on windows
Get common file path
Get system information on windows
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x740
mov eax, dword [0x406028]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
lea eax, [ebp - 0xa0]
push esi
push edi
mov edi, dword [ebp + 8]
push 0x9c
push 0
push eax
mov dword [ebp - 0x718], edi
mov dword [ebp - 0x710], ebx
mov dword [ebp - 0xa4], 0x5c3a20
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [0x406714], edi
mov esi, 0x104
xor eax, eax
mov dword [ebp - 0x70c], eax
mov byte [0x406c20], al
push esi
push 0x406610
push 0x14
push edi
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x402427
push esi
push 0x4063f8
push 0x15
push dword [0x406714]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x402427
push esi
push 0x406508
push 0x16
push dword [0x406714]
call dword [sym.imp.USER32.dll_LoadStringA]
mov al, byte [ebx]
mov esi, ebx
jmp 0x402462
cmp al, 0x2d
je 0x402435
cmp al, 0x2f
jne 0x402457
movsx eax, byte [esi + 1]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x51
jne 0x402457
movsx eax, byte [esi + 2]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x54
je 0x402468
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x40242d
jmp 0x402472
mov dword [0x406728], 1
cmp dword [ebp + 0xc], 0
jne 0x40316b
push 0
push str.STUFF_BOOT
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
jne 0x40316b
push 0xa0
lea eax, [ebp - 0x324]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov al, byte [ebx]
cmp al, 0x2d
je 0x4024b2
cmp al, 0x2f
jne 0x40255e
movsx eax, byte [ebx + 1]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x4d
jne 0x40255e
lea esi, [ebx + 2]
jmp 0x4024cd
inc esi
mov bl, byte [esi]
mov byte [ebp - 0x705], bl
cmp bl, 0x20
je 0x4024cc
cmp bl, 0x22
jne 0x4024e0
inc esi
mov edi, 0xa0
lea ecx, [ebp - 0x324]
push esi
mov edx, edi
call fcn.00401590
test eax, eax
js 0x40320c
lea eax, [ebp - 0x324]
mov cl, byte [eax]
cmp cl, 0x20
jne 0x40250d
cmp bl, 0x22
jne 0x40251d
cmp cl, 0x22
jne 0x402516
cmp bl, cl
je 0x40251d
test cl, cl
je 0x40251d
inc eax
jmp 0x402501
mov edx, edi
mov byte [eax], 0
lea ecx, [ebp - 0x324]
call fcn.00402125
cmp byte [ebp - 0x705], 0x22
lea ebx, [esi + eax]
mov dword [ebp - 0x710], ebx
jne 0x40254b
cmp byte [ebx], 0x22
jne 0x40254b
inc ebx
mov dword [ebp - 0x710], ebx
cmp byte [ebx], 0x20
jne 0x402563
inc ebx
cmp byte [ebx], 0x20
je 0x402550
mov dword [ebp - 0x710], ebx
jmp 0x402563
mov edi, 0xa0
push edi
lea eax, [ebp - 0x324]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharBuffA]
mov al, byte [ebp - 0x324]
test al, al
je 0x4025c2
cmp al, 0x5c
je 0x4025c2
lea eax, [ebp - 0x324]
push eax
call dword [sym.imp.USER32.dll_CharNextA]
cmp byte [eax], 0x3a
jne 0x4025c2
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
cmp byte [esi], 0x5c
jne 0x4025c2
push esi
call dword [sym.imp.USER32.dll_CharNextA]
cmp byte [eax], 0x5c
jne 0x4025c2
push esi
mov edx, edi
lea ecx, [ebp - 0x324]
call fcn.00401590
test eax, eax
js 0x40320c
mov edx, edi
lea ecx, [ebp - 0x324]
call fcn.00402125
push ecx
mov esi, eax
mov edx, edi
lea eax, [ebp - 0x324]
push eax
push ecx
lea ecx, [ebp - 0x284]
call fcn.00401691
test eax, eax
js 0x40320c
lea eax, [ebp - 0x284]
add eax, esi
jmp 0x40260c
cmp byte [eax], 0x5c
je 0x402616
push eax
lea eax, [ebp - 0x284]
push eax
call dword [sym.imp.USER32.dll_CharPrevA]
lea ecx, [ebp - 0x284]
cmp eax, ecx
ja 0x4025f9
push eax
call dword [sym.imp.USER32.dll_CharNextA]
push 0x20
mov byte [eax], 0
lea eax, [ebp - 0x284]
push eax
call dword [sym.imp.msvcrt.dll_strchr]
pop ecx
pop ecx
test eax, eax
je 0x4026d8
mov edx, edi
lea ecx, [ebp - 0x284]
call fcn.00402125
add eax, 3
cmp eax, edi
jae 0x4026d8
lea eax, [ebp - 0x284]
push eax
push 0x401188
lea eax, [ebp - 0x564]
push edi
push eax
call fcn.0040162e
add esp, 0x10
test eax, eax
js 0x40320c
mov byte [ebp - 0x1e4], 0
mov al, byte [ebx]
cmp al, 0x2d
je 0x40268a
cmp al, 0x2f
jne 0x4027f8
movsx eax, byte [ebx + 1]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x4c
jne 0x40272e
add ebx, 2
cmp byte [ebx], 0x20
jne 0x4026b4
mov al, 0x20
test al, al
je 0x4026b4
inc ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x4026a9
push ebx
mov edx, edi
lea ecx, [ebp - 0x1e4]
call fcn.00401590
test eax, eax
js 0x40320c
mov al, byte [ebp - 0x1e4]
lea ecx, [ebp - 0x1e4]
jmp 0x4026fa
push ecx
lea eax, [ebp - 0x284]
mov edx, edi
push eax
push ecx
lea ecx, [ebp - 0x564]
call fcn.00401691
jmp 0x40266d
test al, al
je 0x4026fe
inc ecx
mov al, byte [ecx]
cmp al, 0x20
jne 0x4026f3
mov byte [ecx], 0
mov edx, edi
lea ecx, [ebp - 0x1e4]
call fcn.00402125
add ebx, eax
mov dword [ebp - 0x710], ebx
cmp byte [ebx], 0x20
jne 0x40272e
mov al, 0x20
test al, al
je 0x402728
inc ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x40271d
mov dword [ebp - 0x710], ebx
cmp byte [ebp - 0x1e4], 0
je 0x4027f8
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x284]
push eax
push 0x40114c
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.0040162e
add esp, 0x14
test eax, eax
js 0x40320c
push 0
lea eax, [ebp - 0x144]
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
mov esi, eax
cmp esi, 0xffffffff
je 0x403140
push 2
push 0
push esi
call dword [sym.imp.KERNEL32.dll__llseek]
mov edi, eax
push esi
mov dword [ebp - 0x71c], edi
call dword [sym.imp.KERNEL32.dll__lclose]
cmp edi, 0xffff
jg 0x40313b
test edi, edi
je 0x40313b
and dword [0x406730], 0
lea eax, [ebp - 0x740]
and dword [0x40671c], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx edi, word [ebp - 0x740]
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov edx, eax
movzx esi, dx
shr esi, 8
mov dword [ebp - 0x714], edx
cmp edi, 0xa
jae 0x40285e
lfence
mov edi, dword [edi*4 + 0x401008]
jmp 0x402893
push ecx
lea eax, [ebp - 0x324]
mov edx, edi
push eax
push ecx
lea ecx, [ebp - 0x144]
call fcn.00401691
test eax, eax
js 0x40320c
lea eax, [ebp - 0x144]
add eax, esi
jmp 0x402833
cmp byte [eax], 0x2e
je 0x40283d
push eax
lea eax, [ebp - 0x144]
push eax
call dword [sym.imp.USER32.dll_CharPrevA]
lea ecx, [ebp - 0x144]
cmp eax, ecx
ja 0x402820
push eax
call dword [sym.imp.USER32.dll_CharNextA]
push 0x406054
mov edx, edi
lea ecx, [ebp - 0x144]
mov byte [eax], 0
call fcn.004015c3
jmp 0x40275e
mov edi, 0x4064fc
jmp 0x402893
mov al, byte [edi]
cmp al, dl
jb 0x402875
jne 0x402890
movzx eax, byte [edi + 1]
cmp eax, esi
ja 0x402890
mov edx, ecx
lea ecx, [ebp - 0x144]
call fcn.00404285
test eax, eax
jne 0x402b09
mov edx, dword [ebp - 0x714]
add edi, 0xc
mov ecx, dword [edi + 4]
test ecx, ecx
jne 0x402865
mov esi, dword [0x406730]
test esi, esi
jne 0x4028ce
mov esi, str.Params
lea ecx, [ebp - 0x144]
mov edx, esi
call fcn.00404285
test eax, eax
je 0x402b1f
mov dword [0x406730], esi
mov dword [0x40671c], 0x406058
lea eax, [ebp - 0x144]
mov edi, 0x80
push eax
push edi
push 0x406a00
push 0x401140
push 0x401190
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403130
lea eax, [ebp - 0x144]
push eax
push 0
push 0x40119c
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
shl eax, 0xa
mov dword [0x406960], eax
test eax, eax
jle 0x403130
lea eax, [ebp - 0x144]
push eax
push 1
push 0x4011a8
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x406dc0], eax
test eax, eax
jle 0x403130
lea eax, [ebp - 0x144]
push eax
push 1
push 0x4011b4
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x406b00], eax
test eax, eax
jle 0x403130
lea eax, [ebp - 0x144]
mov esi, 0x406760
push eax
push edi
push esi
push 0x401140
push 0x4011c0
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403130
lea eax, [ebp - 0x144]
push eax
push edi
push 0x406860
push 0x401140
push 0x4011cc
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403130
lea eax, [ebp - 0x144]
push eax
push edi
push 0x406a80
push 0x401140
push 0x4011d4
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403130
lea eax, [ebp - 0x144]
push eax
push edi
push 0x4068e0
push 0x401140
push 0x4011e0
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403130
push 0
push esi
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
jne 0x40316b
lea eax, [ebp - 0x144]
mov esi, 0x401140
push eax
push edi
push 0x406cc0
push esi
push 0x4011e8
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x144]
push eax
push edi
push 0x406ba0
push esi
push 0x4011f4
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x144]
push eax
push edi
push 0x406b20
push esi
push 0x401200
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [0x406d40], 0
je 0x402b4c
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 3
jne 0x402b4c
call dword [sym.imp.KERNEL32.dll_GetVersion]
shr eax, 8
cmp al, 0xa
jae 0x402b4c
cmp dword [0x406728], 0
jne 0x40317d
push 0x100
lea eax, [ebp - 0x428]
push eax
push 0
push dword [0x406714]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x402b2d
push ecx
push 0x406508
push ecx
mov edx, 0x104
lea ecx, [ebp - 0x428]
call fcn.00401691
test eax, eax
js 0x40320c
jmp 0x402b2d
mov esi, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [0x406730], esi
mov dword [0x40671c], eax
jmp 0x4028a0
push ecx
push 0
push 0
push 0x10
push 0xa
jmp 0x403174
push 0x10
lea eax, [ebp - 0x428]
push eax
push 0x406d40
push dword [0x406718]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40317d
call fcn.00402162
mov cl, byte [0x4068e0]
mov eax, 0x4068e0
test cl, cl
je 0x402b8a
push 0xd
pop ebx
cmp cl, 0x5c
jne 0x402b77
lea ecx, [eax + 1]
cmp byte [ecx], 0x6e
jne 0x402b77
mov byte [eax], bl
mov eax, ecx
mov byte [eax], 0xa
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x402b63
mov ebx, dword [ebp - 0x710]
mov al, byte [ebx]
cmp al, 0x2d
je 0x402b98
cmp al, 0x2f
jne 0x402c65
movsx eax, byte [ebx + 1]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
cmp eax, 0x57
jne 0x402c65
add ebx, 2
cmp byte [ebx], 0x20
jne 0x402bc2
mov al, 0x20
test al, al
je 0x402bc2
inc ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x402bb7
push ecx
lea eax, [ebp - 0x284]
mov edx, 0x104
push eax
push ecx
lea ecx, [ebp - 0x428]
call fcn.00401691
test eax, eax
js 0x40320c
mov edx, 0x104
lea ecx, [ebp - 0x428]
call fcn.00402125
lea ecx, [ebp - 0x428]
add ecx, eax
mov al, byte [ebx]
cmp al, 0x20
je 0x402c2b
mov edx, ecx
lea esi, [ebp - 0x428]
sub edx, esi
test al, al
je 0x402c26
mov byte [ecx], al
inc ecx
inc edx
cmp edx, 0x104
jae 0x40320c
inc ebx
mov al, byte [ebx]
cmp al, 0x20
jne 0x402c0b
mov esi, 0x401140
mov byte [ecx], 0
lea edx, [ebp - 0x284]
push ecx
lea ecx, [ebp - 0x428]
call fcn.0040f919
movzx ecx, ax
push 0xd
pop eax
cmp cx, ax
je 0x402c65
cmp ecx, 0x13
je 0x40317d
push ecx
push 0
lea eax, [ebp - 0x428]
push eax
push 0x10
jmp 0x403175
lea eax, [ebp - 0x144]
push eax
push edi
mov edi, 0x406980
push edi
push esi
push 0x401210
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x144]
push eax
push 0x80
push 0x4067e0
push esi
push 0x40121c
push dword [0x406730]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [0x406980], 0
mov esi, 0xa0
je 0x402db9
push ecx
lea eax, [ebp - 0x284]
mov edx, esi
push eax
push ecx
lea ecx, [ebp - 0x1e4]
call fcn.00401691
test eax, eax
js 0x40320c
push edi
mov edx, esi
lea ecx, [ebp - 0x1e4]
call fcn.004015c3
test eax, eax
js 0x40320c
cmp byte [0x4067e0], 0
je 0x402d2b
push 0x401228
mov edx, esi
lea ecx, [ebp - 0x1e4]
call fcn.004015c3
test eax, eax
js 0x40320c
push 0x4067e0
mov edx, esi
lea ecx, [ebp - 0x1e4]
call fcn.004015c3
test eax, eax
js 0x40320c
push 0x40122c
mov edx, esi
lea ecx, [ebp - 0x1e4]
call fcn.004015c3
test eax, eax
js 0x40320c
mov edi, 0x406a80
lea ecx, [ebp - 0x1e4]
push edi
mov edx, esi
call fcn.004015c3
test eax, eax
js 0x40320c
push 0x401230
mov edx, esi
lea ecx, [ebp - 0x1e4]
call fcn.004015c3
test eax, eax
js 0x40320c
push 0x4068e0
mov edx, esi
lea ecx, [ebp - 0x1e4]
call fcn.004015c3
test eax, eax
js 0x40320c
push 1
lea eax, [ebp - 0x1e4]
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
push edi
push 0x4067e0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x70c], eax
test eax, eax
jne 0x402dd9
mov ecx, dword [ebp - 0x718]
call fcn.0040f919
mov dword [0x406718], eax
test eax, eax
jne 0x402dd9
push ecx
push eax
push eax
push 0x10
push 6
jmp 0x403174
mov edx, dword [ebp - 0x71c]
lea ecx, [ebp - 0x144]
call fcn.00403f5c
movzx ecx, ax
push 0xd
pop eax
cmp cx, ax
je 0x402dff
push ecx
push 0
push 0
jmp 0x402c5e
push 0x401234
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.004015c3
test eax, eax
js 0x40320c
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.00402125
lea ecx, [ebp - 0xa4]
mov edx, esi
add eax, ecx
push 0x40116c
mov dword [ebp - 0x710], eax
call fcn.004015c3
test eax, eax
js 0x40320c
push 0x406a00
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.004015c3
test eax, eax
js 0x40320c
lea eax, [ebp - 0xa4]
push eax
push eax
call dword [sym.imp.USER32.dll_CharToOemA]
mov byte [ebp - 0x705], 0x5a
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
movsx ecx, byte [ebp - 0x705]
mov edi, eax
sub ecx, 0x41
call fcn.00402091
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov edi, dword [ebp - 0x710]
cmp esi, 2
jne 0x402ee5
mov al, byte [ebp - 0x705]
lea edx, [ebp - 0xa4]
push edi
lea ecx, [ebp - 0x284]
mov byte [ebp - 0xa4], al
call fcn.00403212
push 0xd
movzx eax, ax
pop ecx
cmp ax, cx
je 0x402ef9
push 3
pop ecx
cmp ax, cx
je 0x402df5
push 0xb
pop ecx
cmp ax, cx
je 0x40317d
mov al, byte [ebp - 0x705]
dec al
mov byte [ebp - 0x705], al
cmp al, 0x41
jge 0x402e77
jmp 0x402eff
mov al, byte [ebp - 0x705]
cmp al, 0x41
jge 0x403001
push 0xa0
lea eax, [ebp - 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov esi, eax
lea eax, [ebp - 0xa4]
push eax
call dword [sym.imp.USER32.dll_CharUpperA]
lea eax, [ebp - 0xa4]
add eax, esi
push eax
lea eax, [ebp - 0xa4]
push eax
call dword [sym.imp.USER32.dll_CharPrevA]
mov esi, 0xa0
cmp byte [eax], 0x5c
je 0x402f62
push 0x40116c
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.004015c3
test eax, eax
js 0x40320c
push 0x401234
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.004015c3
test eax, eax
js 0x40320c
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.00402125
lea edi, [ebp - 0xa4]
mov edx, esi
push 0x40116c
lea ecx, [ebp - 0xa4]
add edi, eax
call fcn.004015c3
test eax, eax
js 0x40320c
push 0x406a00
mov edx, esi
lea ecx, [ebp - 0xa4]
call fcn.004015c3
test eax, eax
js 0x40320c
lea eax, [ebp - 0xa4]
push eax
push eax
call dword [sym.imp.USER32.dll_CharToOemA]
push edi
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x284]
call fcn.00403212
movzx ecx, ax
push 0xd
pop eax
cmp cx, ax
je 0x403001
push 0xb
pop eax
cmp cx, ax
je 0x40317d
jmp 0x402df5
push dword [0x40672c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x401188
mov esi, 0x406860
mov dword [0x40672c], eax
push esi
call dword [sym.imp.msvcrt.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x4030f0
add eax, 4
push 0x401240
push eax
call dword [sym.imp.msvcrt.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x4030f0
lea eax, [ebp - 0x284]
push ebx
push eax
push esi
mov esi, 0x1a0
lea eax, [ebp - 0x4c4]
push esi
push eax
call fcn.0040162e
add esp, 0x14
test eax, eax
js 0x40320c
lea eax, [ebp - 0x4c4]
push eax
lea eax, [ebp - 0xa4]
push eax
push 0x401144
lea eax, [ebp - 0x704]
push esi
push eax
call fcn.0040162e
add esp, 0x14
test eax, eax
js 0x40320c
push 0x10000
call dword [sym.imp.KERNEL32.dll_GlobalCompact]
cmp dword [0x406724], 0
jne 0x4030b0
call fcn.004042ac
mov ebx, dword [ebp - 0x70c]
test ebx, ebx
je 0x4030cd
push 0
push 0x105
push 0x111
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [0x406718]
lea eax, [ebp - 0x704]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
cmp eax, 0x20
jbe 0x4030fb
mov ecx, esi
call fcn.0040418e
jmp 0x4030fd
lea eax, [ebp - 0x564]
jmp 0x40304c
xor eax, eax
test eax, eax
jne 0x403113
push ecx
push eax
push eax
push 0x10
xor edx, edx
push 6
inc edx
pop ecx
call fcn.00402212
jmp 0x40311d
mov dword [0x406720], 1
test edi, edi
je 0x403183
mov edx, edi
lea ecx, [ebp - 0xa4]
call fcn.004032bb
jmp 0x403183
push ecx
push 0
push 0
push 0x10
push 5
jmp 0x403174
mov edi, 0xa0
push ecx
lea eax, [ebp - 0x144]
mov edx, edi
push eax
push ecx
mov ecx, 0x406c20
call fcn.00401691
test eax, eax
js 0x40320c
push ecx
push 0
push 0
push 0x10
push 3
pop eax
mov ecx, eax
jmp 0x403175
push ecx
push 0
push 0
push 0x10
push 2
pop ecx
xor edx, edx
inc edx
call fcn.00402212
mov ebx, dword [ebp - 0x70c]
call fcn.00404163
cmp dword [0x406720], 0
mov dword [0x406080], 9
je 0x4031a0
call fcn.004042fd
mov eax, dword [0x406718]
test eax, eax
je 0x4031b0
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
test ebx, ebx
je 0x4031f6
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4031f6
xor eax, eax
cmp dword [0x406080], eax
push 0
setne al
add eax, 0x106
push eax
push 0x111
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4031f6
push 0
push 0
push 0x12
push ebx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [ebp - 4]
mov eax, dword [0x406080]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00404bf0
leave
ret 0x10
call fcn.00402159
int3