Function at 0x432a10
Capabilities:
Accept command line arguments
Check os version
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x442660
mov eax, dword fs:[0]
push eax
sub esp, 0x434
mov eax, dword [0x44e008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [0x44f348], eax
lea eax, [ebp - 0xa8]
push eax
mov dword [ebp - 0xa8], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x432a71
cmp dword [ebp - 0x98], 2
mov byte [0x44f341], 1
je 0x432a78
mov byte [0x44f341], 0
call fcn.004271d0
test al, al
jne 0x432a88
xor eax, eax
jmp 0x433c9c
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp ax, 6
je 0x432abe
push str.SetDefaultDllDirectories
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x432abe
push 0xc00
call eax
test eax, eax
jne 0x432b55
push 0x106
lea eax, [ebp - 0x2e0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, eax
test ecx, ecx
je 0x432b55
cmp ecx, 0x104
ja 0x432b55
cmp word [ebp + ecx*2 - 0x2e2], 0x5c
je 0x432af7
mov eax, 0x5c
mov word [ebp + ecx*2 - 0x2e0], ax
inc ecx
mov al, byte [str.userenv]
mov esi, str.userenv
test al, al
je 0x432b55
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
lea edi, [ebp - 0x2e0]
lea edi, [edi + ecx*2]
inc esi
mov ecx, edi
test al, al
je 0x432b30
nop dword [eax + eax]
movzx eax, al
mov word [ecx], ax
add ecx, 2
mov al, byte [esi]
inc esi
test al, al
jne 0x432b20
xor eax, eax
mov dword [ecx], 0x64002e
push 8
push eax
mov word [ecx + 8], ax
lea eax, [ebp - 0x2e0]
push eax
mov dword [ecx + 4], 0x6c006c
call ebx
mov al, byte [esi]
test al, al
jne 0x432b14
push 8
call fcn.0043424b
add esp, 4
mov dword [ebp - 0x3a4], eax
xor ecx, ecx
mov dword [ebp - 0x3a0], 0
mov dword [ebp - 0x39c], 3
mov word [eax], cx
push 8
call fcn.0043424b
add esp, 4
mov dword [ebp - 0x328], eax
xor ecx, ecx
mov dword [ebp - 0x324], 0
mov dword [ebp - 0x320], 3
mov word [eax], cx
push 8
call fcn.0043424b
add esp, 4
mov dword [ebp - 0x388], eax
xor ecx, ecx
mov dword [ebp - 0x384], 0
mov dword [ebp - 0x380], 3
mov word [eax], cx
push 8
call fcn.0043424b
add esp, 4
mov dword [ebp - 0x338], eax
xor ecx, ecx
mov dword [ebp - 0x334], 0
mov dword [ebp - 0x330], 3
mov word [eax], cx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x354]
call fcn.00408ed0
lea eax, [ebp - 0x328]
push eax
lea edx, [ebp - 0x3a4]
lea ecx, [ebp - 0x354]
call fcn.004084d0
push dword [ebp - 0x354]
call fcn.004340fc
add esp, 4
push 8
call fcn.0043424b
mov ecx, dword [0x44f348]
add esp, 4
xor edx, edx
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x368], 3
mov dword [ebp - 0x36c], 0
mov word [eax], dx
push 0x105
cmp byte [0x44f341], dl
jne 0x432ccd
lea eax, [ebp - 0x118]
mov byte [ebp - 0x118], dl
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp eax, 0x104
ja 0x432d01
test eax, eax
je 0x432d01
call dword [sym.imp.KERNEL32.dll_AreFileApisANSI]
xor ecx, ecx
lea edx, [ebp - 0x118]
test eax, eax
sete cl
push ecx
lea ecx, [ebp - 0x354]
call fcn.00409a50
lea eax, [ebp - 0x354]
push eax
lea ecx, [ebp - 0x370]
call fcn.004090e0
push dword [ebp - 0x354]
call fcn.004340fc
add esp, 4
jmp 0x432d01
xor eax, eax
mov word [ebp - 0x220], ax
lea eax, [ebp - 0x220]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp eax, 0x104
ja 0x432d01
test eax, eax
je 0x432d01
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x370]
call fcn.00409070
mov ebx, dword [ebp - 0x324]
mov eax, ebx
mov esi, dword [ebp - 0x328]
mov dword [ebp - 0x2f8], ebx
test eax, eax
je 0x432d52
lea edx, [esi - 2]
lea edx, [edx + eax*2]
nop
movzx ecx, word [edx]
cmp ecx, 0x20
je 0x432d32
cmp ecx, 0xa
je 0x432d32
cmp ecx, 9
jne 0x432d3a
sub edx, 2
sub eax, 1
jne 0x432d20
cmp eax, ebx
je 0x432d52
mov ebx, eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov dword [ebp - 0x2f8], ebx
mov dword [ebp - 0x324], ebx
mov ecx, esi
movzx eax, word [ecx]
cmp eax, 0x20
je 0x432d66
cmp eax, 0xa
je 0x432d66
cmp eax, 9
jne 0x432d6b
add ecx, 2
jmp 0x432d54
sub ecx, esi
sar ecx, 1
je 0x432d94
sub ebx, ecx
mov dword [ebp - 0x2f8], ebx
lea eax, [ebx*2 + 2]
push eax
lea eax, [esi + ecx*2]
push eax
push esi
call fcn.00437570
add esp, 0xc
mov dword [ebp - 0x324], ebx
mov byte [ebp - 0x2e1], 0
mov ecx, esi
mov ah, 0x2d
mov dword [ebp - 0x32c], 0x448f59
nop dword [eax]
movzx ebx, word [ecx]
mov dl, ah
add ecx, 2
mov al, ah
add al, 0x20
mov dword [ebp - 0x33c], ecx
sub dl, 0x41
movzx ecx, al
cmp dl, 0x19
movzx eax, ah
mov edi, ebx
cmova ecx, eax
movzx esi, cl
lea eax, [edi + 0x20]
lea ecx, [edi - 0x41]
movzx edx, ax
cmp cx, 0x19
mov eax, ebx
cmova edx, eax
cmp dx, si
jne 0x432eb8
mov ecx, dword [ebp - 0x32c]
mov ah, byte [ecx]
inc ecx
mov dword [ebp - 0x32c], ecx
mov ecx, dword [ebp - 0x33c]
test ah, ah
jne 0x432db0
mov eax, dword [ebp - 0x328]
lea ecx, [ebp - 0x328]
add eax, 4
mov byte [ebp - 0x2e1], 1
push eax
call fcn.00409070
mov ebx, dword [ebp - 0x324]
mov eax, ebx
mov esi, dword [ebp - 0x328]
mov dword [ebp - 0x2f8], ebx
test eax, eax
je 0x432e76
lea edx, [esi - 2]
lea edx, [edx + eax*2]
movzx ecx, word [edx]
cmp ecx, 0x20
je 0x432e56
cmp ecx, 0xa
je 0x432e56
cmp ecx, 9
jne 0x432e5e
sub edx, 2
sub eax, 1
jne 0x432e44
cmp eax, ebx
je 0x432e76
mov ebx, eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov dword [ebp - 0x2f8], ebx
mov dword [ebp - 0x324], ebx
mov ecx, esi
movzx eax, word [ecx]
cmp eax, 0x20
je 0x432e8a
cmp eax, 0xa
je 0x432e8a
cmp eax, 9
jne 0x432e8f
add ecx, 2
jmp 0x432e78
sub ecx, esi
sar ecx, 1
je 0x432eb8
sub ebx, ecx
mov dword [ebp - 0x2f8], ebx
lea eax, [ebx*2 + 2]
push eax
lea eax, [esi + ecx*2]
push eax
push esi
call fcn.00437570
add esp, 0xc
mov dword [ebp - 0x324], ebx
push 4
call fcn.0043424b
add esp, 4
mov dword [ebp - 0x37c], eax
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x374], 3
mov byte [eax], 0
lea eax, [ebp - 0x37c]
push eax
push ecx
mov ecx, dword [ebp - 0x370]
call fcn.004241e0
test al, al
jne 0x432f1c
cmp byte [ebp - 0x2e1], al
jne 0x432f12
push 0x10
push 0x448dac
push str.Cant_load_config_info
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 1
jmp 0x433c44
push 0x448f8c
lea ecx, [ebp - 0x354]
call fcn.00408f30
push 8
call fcn.0043424b
xor ecx, ecx
mov dword [ebp - 0x31c], eax
add esp, 4
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x314], 3
mov word [eax], cx
mov byte [ebp - 0x32c], 1
cmp dword [ebp - 0x378], ecx
je 0x4331e2
mov dword [ebp - 0x2f0], ecx
lea edx, [ebp - 0x2f0]
mov dword [ebp - 0x2ec], ecx
mov dword [ebp - 0x2e8], ecx
lea ecx, [ebp - 0x37c]
call fcn.00409d10
mov ebx, dword [ebp - 0x2f0]
test al, al
jne 0x432fc1
cmp byte [ebp - 0x2e1], 0
jne 0x432fb2
push 0x10
push 0x448dac
push str.Config_failed
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x2f8], 1
jmp 0x43309f
push str.Title
lea edx, [ebp - 0x2f0]
lea ecx, [ebp - 0x304]
call fcn.0040a260
push str.BeginPrompt
lea edx, [ebp - 0x2f0]
lea ecx, [ebp - 0x310]
call fcn.0040a260
push 0x448fc0
lea edx, [ebp - 0x2f0]
lea ecx, [ebp - 0x348]
call fcn.0040a260
mov ecx, dword [ebp - 0x348]
mov edx, 0x448fcc
call fcn.00408af0
xor al, 1
lea ecx, [ebp - 0x2f0]
mov edx, str.Directory
mov byte [ebp - 0x2f1], al
call fcn.0040a1f0
test eax, eax
js 0x433041
mov eax, dword [ebx + eax*4]
lea ecx, [ebp - 0x354]
add eax, 0xc
push eax
call fcn.004090e0
cmp dword [ebp - 0x30c], 0
mov esi, dword [ebp - 0x304]
mov edi, dword [ebp - 0x310]
je 0x4330e2
cmp byte [ebp - 0x2e1], 0
jne 0x4330e2
push 0x24
push esi
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
je 0x4330e2
mov eax, dword [ebp - 0x348]
push eax
mov dword [ebp - 0x2f8], 0
call fcn.004340fc
add esp, 4
push edi
call fcn.004340fc
add esp, 4
push esi
call fcn.004340fc
add esp, 4
mov edi, dword [ebp - 0x2ec]
test edi, edi
je 0x433c19
nop dword [eax]
mov esi, dword [ebx + edi*4 - 4]
dec edi
test esi, esi
je 0x4330d9
push dword [esi + 0xc]
call fcn.004340fc
add esp, 4
push dword [esi]
call fcn.004340fc
add esp, 4
push 0x18
push esi
call fcn.0043423d
add esp, 8
test edi, edi
jne 0x4330b0
jmp 0x433c19
push str.RunProgram
lea edx, [ebp - 0x2f0]
lea ecx, [ebp - 0x310]
call fcn.0040a260
push eax
lea ecx, [ebp - 0x31c]
call fcn.004090e0
push dword [ebp - 0x310]
call fcn.004340fc
add esp, 4
lea edx, [ebp - 0x2f0]
lea ecx, [ebp - 0x310]
push str.ExecuteFile
call fcn.0040a260
push eax
lea ecx, [ebp - 0x388]
call fcn.004090e0
push dword [ebp - 0x310]
call fcn.004340fc
add esp, 4
lea edx, [ebp - 0x2f0]
lea ecx, [ebp - 0x310]
push str.ExecuteParameters
call fcn.0040a260
push eax
lea ecx, [ebp - 0x338]
call fcn.004090e0
push dword [ebp - 0x310]
call fcn.004340fc
mov eax, dword [ebp - 0x348]
add esp, 4
push eax
call fcn.004340fc
add esp, 4
push edi
call fcn.004340fc
add esp, 4
push esi
call fcn.004340fc
mov edi, dword [ebp - 0x2ec]
add esp, 4
test edi, edi
je 0x4331cd
nop dword [eax]
mov esi, dword [ebx + edi*4 - 4]
dec edi
test esi, esi
je 0x4331c9
push dword [esi + 0xc]
call fcn.004340fc
add esp, 4
push dword [esi]
call fcn.004340fc
add esp, 4
push 0x18
push esi
call fcn.0043423d
add esp, 8
test edi, edi
jne 0x4331a0
push ebx
call fcn.004340fc
mov al, byte [ebp - 0x2f1]
add esp, 4
mov byte [ebp - 0x32c], al
push 8
mov byte [ebp - 0x364], 0
call fcn.0043424b
mov ebx, eax
mov dword [ebp - 0x358], 3
add esp, 4
mov dword [ebp - 0x360], ebx
xor eax, eax
mov dword [ebp - 0x35c], 0
mov word [ebx], ax
push 8
call fcn.0043424b
xor ecx, ecx
mov dword [ebp - 0x2f0], eax
add esp, 4
mov dword [ebp - 0x2ec], 0
mov dword [ebp - 0x2e8], 3
mov word [eax], cx
lea ecx, [ebp - 0x2f0]
call fcn.0040b870
test al, al
jne 0x433257
push dword [ebp - 0x2f0]
jmp 0x4332f2
xor edi, edi
cmp word [0x448f48], di
je 0x43326e
inc edi
cmp word [edi*2 + 0x448f48], 0
jne 0x433262
push edi
lea ecx, [ebp - 0x2f0]
call fcn.00408da0
mov eax, dword [ebp - 0x2f0]
mov esi, dword [ebp - 0x2ec]
lea ecx, [eax + esi*2]
lea eax, [edi*2 + 2]
push eax
push 0x448f48
push ecx
call fcn.00437af0
add esp, 0xc
add esi, edi
mov dword [ebp - 0x2ec], esi
push 4
call fcn.0043424b
mov edi, dword [ebp - 0x2f0]
mov ecx, edi
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], 0
mov byte [eax], 0
lea eax, [ebp - 0x304]
push eax
mov dword [ebp - 0x2fc], 3
call fcn.0040b9a0
test al, al
jne 0x433326
push dword [ebp - 0x304]
call fcn.004340fc
add esp, 4
push edi
call fcn.004340fc
add esp, 4
cmp byte [ebp - 0x2e1], 0
jne 0x433317
push 0x10
push 0x448dac
push str.Cannot_create_temp_folder_archive
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x2f8], 1
jmp 0x433bfe
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x360]
call fcn.004090e0
mov esi, dword [ebp - 0x304]
lea ecx, [ebp - 0x360]
push esi
call fcn.00409350
push esi
mov byte [ebp - 0x364], 1
call fcn.004340fc
add esp, 4
push edi
call fcn.004340fc
add esp, 4
push 0x18
call fcn.0043410f
mov ebx, eax
add esp, 4
mov dword [ebp - 0x33c], ebx
mov dword [ebx + 4], 0
mov dword [ebx], 0x449134
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov word [ebx + 0x14], 0
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov ecx, ebx
call fcn.0041ea20
test eax, eax
je 0x4333d1
push 0x10
push 0x448dac
push str.Cannot_load_codecs
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x2f8], 1
jmp 0x433beb
lea eax, [ebp - 0x360]
push eax
lea ecx, [ebp - 0x348]
call fcn.00409010
lea ecx, [ebp - 0x2f0]
mov byte [ebp - 0x2f1], 0
call fcn.00408ea0
lea eax, [ebp - 0x2f0]
mov ecx, ebx
push eax
lea eax, [ebp - 0x2f1]
push eax
push dword [ebp - 0x32c]
lea eax, [ebp - 0x348]
push eax
lea edx, [ebp - 0x370]
call fcn.004238c0
test eax, eax
je 0x433584
cmp byte [ebp - 0x2e1], 0
jne 0x433447
cmp eax, 1
je 0x433462
cmp byte [ebp - 0x2f1], 0
jne 0x433462
cmp eax, 0x80004004
jne 0x433508
mov esi, dword [ebp - 0x2f0]
push esi
call fcn.004340fc
mov dword [ebp - 0x2f8], 1
jmp 0x433bda
mov eax, dword [ebp - 0x2f0]
xor ecx, ecx
mov esi, dword [0x44f348]
mov dword [ebp - 0x2ec], 0
mov word [eax], cx
cmp byte [0x44f341], cl
jne 0x4334b2
push ecx
push 8
mov edx, esi
lea ecx, [ebp - 0x310]
call fcn.0040d380
mov edx, eax
lea ecx, [ebp - 0x2f0]
call fcn.004098c0
push dword [ebp - 0x310]
call fcn.004340fc
add esp, 4
jmp 0x433503
xor eax, eax
push 0x100
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x210]
push eax
push 8
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
mov ecx, 0x100
sub ecx, eax
cmp ecx, 1
jle 0x4334f0
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.00409070
jmp 0x433503
lea eax, [ebp - 0x2f0]
mov edx, 8
push eax
mov ecx, esi
call fcn.0040d490
mov eax, 0x80004005
cmp dword [ebp - 0x2ec], 0
jne 0x43353e
mov edx, eax
lea ecx, [ebp - 0x310]
call fcn.0040ab20
lea eax, [ebp - 0x310]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.004090e0
push dword [ebp - 0x310]
call fcn.004340fc
add esp, 4
mov edx, 7
lea ecx, [ebp - 0x310]
call fcn.0040d540
mov esi, dword [ebp - 0x2f0]
push 0x10
push dword [eax]
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [ebp - 0x310]
call fcn.004340fc
add esp, 4
push esi
call fcn.004340fc
mov dword [ebp - 0x2f8], 1
jmp 0x433bda
push dword [ebp - 0x2f0]
call fcn.004340fc
add esp, 4
push 8
call fcn.0043424b
xor ecx, ecx
mov dword [ebp - 0x398], eax
add esp, 4
mov dword [ebp - 0x394], 0
mov dword [ebp - 0x390], 3
mov word [eax], cx
lea ecx, [ebp - 0x398]
mov byte [ebp - 0x38c], 1
call fcn.0040b670
mov ecx, dword [ebp - 0x348]
call fcn.0040b620
test al, al
jne 0x4335eb
mov dword [ebp - 0x2f8], 1
jmp 0x433b1b
cmp dword [ebp - 0x384], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x433758
lea edx, [ebp - 0x388]
lea ecx, [ebp - 0x2f0]
call fcn.00424110
cmp dword [ebp - 0x2f8], 0
mov eax, dword [ebp - 0x2f0]
mov dword [ebp - 0x3e8], 0x3c
mov dword [ebp - 0x3e4], 0x140
mov dword [ebp - 0x3e0], 0
mov dword [ebp - 0x3dc], 0
mov dword [ebp - 0x3d8], eax
je 0x43369d
mov eax, dword [ebp - 0x334]
test eax, eax
je 0x43368b
cmp dword [ebp - 0x330], eax
jne 0x43366f
lea ecx, [ebp - 0x338]
call fcn.00408d10
mov eax, dword [ebp - 0x334]
mov ecx, dword [ebp - 0x338]
mov edx, 0x20
mov word [ecx + eax*2], dx
inc eax
xor edx, edx
mov dword [ebp - 0x334], eax
mov word [ecx + eax*2], dx
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x338]
call fcn.00409310
lea edx, [ebp - 0x338]
lea ecx, [ebp - 0x304]
call fcn.00424110
mov eax, dword [ebp - 0x304]
xor ecx, ecx
cmp dword [ebp - 0x300], ecx
mov dword [ebp - 0x3d0], ecx
cmove eax, ecx
mov dword [ebp - 0x3cc], 1
mov dword [ebp - 0x3d4], eax
lea eax, [ebp - 0x3e8]
push eax
mov dword [ebp - 0x3b0], ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
cmp dword [ebp - 0x3c8], 0x20
ja 0x433739
cmp byte [ebp - 0x2e1], 0
jne 0x43370e
push 0x10
push 0x448dac
push str.Cannot_open_file
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [ebp - 0x304]
call fcn.004340fc
add esp, 4
push dword [ebp - 0x2f0]
call fcn.004340fc
add esp, 4
mov dword [ebp - 0x2f8], 1
jmp 0x433b1b
push dword [ebp - 0x304]
mov esi, dword [ebp - 0x3b0]
call fcn.004340fc
add esp, 4
push dword [ebp - 0x2f0]
jmp 0x433af9
cmp dword [ebp - 0x318], 0
jne 0x4337e7
push str.setup.exe
lea ecx, [ebp - 0x31c]
call fcn.00409070
lea ecx, [ebp - 0x3e8]
call fcn.0040ae10
push 1
push dword [ebp - 0x31c]
lea ecx, [ebp - 0x3e8]
call fcn.0040c050
test al, al
je 0x4337a8
mov eax, dword [ebp - 0x3c8]
shr eax, 4
test al, 1
jne 0x4337a8
mov bl, 1
jmp 0x4337aa
xor bl, bl
push dword [ebp - 0x3c0]
call fcn.004340fc
add esp, 4
test bl, bl
jne 0x4337e7
cmp byte [ebp - 0x2e1], bl
jne 0x4337d8
push 0x10
push 0x448dac
push str.Cannot_find_setup.exe
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x2f8], 1
jmp 0x433b1b
lea eax, [ebp - 0x348]
push eax
lea ecx, [ebp - 0x304]
call fcn.00409010
lea ecx, [ebp - 0x304]
call fcn.0040ca30
push str.__T_
lea ecx, [ebp - 0x2f0]
call fcn.00408ed0
lea eax, [ebp - 0x304]
push eax
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x31c]
call fcn.00409410
push dword [ebp - 0x2f0]
call fcn.004340fc
add esp, 4
push dword [ebp - 0x304]
call fcn.004340fc
add esp, 4
lea eax, [ebp - 0x31c]
lea ecx, [ebp - 0x304]
push eax
call fcn.00409010
push 0x4490f4
lea ecx, [ebp - 0x2f0]
call fcn.00408ed0
lea eax, [ebp - 0x348]
push eax
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x31c]
call fcn.00409410
push dword [ebp - 0x2f0]
call fcn.004340fc
add esp, 4
cmp dword [ebp - 0x2f8], 0
je 0x4338e8
mov eax, dword [ebp - 0x318]
cmp dword [ebp - 0x314], eax
jne 0x4338ba
lea ecx, [ebp - 0x31c]
call fcn.00408d10
mov eax, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x31c]
mov edx, 0x20
mov word [ecx + eax*2], dx
inc eax
xor edx, edx
mov dword [ebp - 0x318], eax
mov word [ecx + eax*2], dx
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x31c]
call fcn.00409310
xor eax, eax
mov dword [ebp - 0x440], 0x44
mov word [ebp - 0x40e], ax
lea edx, [ebp - 0x354]
mov dword [ebp - 0x40c], eax
lea ecx, [ebp - 0x2f0]
lea eax, [ebp - 0x31c]
mov dword [ebp - 0x43c], 0
push eax
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 0
mov dword [ebp - 0x414], 0
call fcn.00408e10
mov edx, eax
lea ecx, [ebp - 0x310]
call fcn.00424110
push dword [ebp - 0x2f0]
call fcn.004340fc
add esp, 4
lea eax, [ebp - 0x3f8]
push eax
lea eax, [ebp - 0x440]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x310]
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x433ad7
mov ebx, dword [ebp - 0x304]
cmp byte [ebp - 0x2e1], al
jne 0x433ab4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x2f0]
call fcn.0040ab20
push 0x448f50
push dword [ebp - 0x2f0]
call fcn.00435774
mov edx, dword [ebp - 0x2f0]
mov esi, eax
add esp, 8
test esi, esi
je 0x433a96
sub esi, edx
sar esi, 1
js 0x433a96
mov ebx, dword [ebp - 0x2ec]
lea eax, [esi + 2]
mov edi, 2
cmp eax, ebx
jbe 0x4339fb
mov edi, ebx
sub edi, esi
jne 0x4339fb
lea ebx, [esi + esi]
jmp 0x433a27
lea ecx, [esi + edi]
sub ebx, ecx
lea eax, [ebx*2 + 2]
push eax
lea eax, [edx + ecx*2]
push eax
lea ebx, [esi + esi]
lea eax, [edx + ebx]
push eax
call fcn.00437570
mov edx, dword [ebp - 0x2f0]
add esp, 0xc
sub dword [ebp - 0x2ec], edi
mov edi, dword [ebp - 0x300]
test edi, edi
je 0x433a90
push edi
lea ecx, [ebp - 0x2f0]
call fcn.00408da0
mov eax, dword [ebp - 0x2ec]
mov ecx, dword [ebp - 0x2f0]
sub eax, esi
lea eax, [eax*2 + 2]
push eax
lea eax, [ecx + ebx]
push eax
lea eax, [edi + esi]
lea eax, [ecx + eax*2]
push eax
call fcn.00437570
mov ecx, dword [ebp - 0x2f0]
lea eax, [edi + edi]
add esp, 0xc
add ecx, ebx
mov ebx, dword [ebp - 0x304]
push eax
push ebx
push ecx
call fcn.00437af0
mov edx, dword [ebp - 0x2f0]
add esp, 0xc
add dword [ebp - 0x2ec], edi
jmp 0x433a96
mov ebx, dword [ebp - 0x304]
push 0x10
push 0x448dac
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [ebp - 0x2f0]
call fcn.004340fc
add esp, 4
push dword [ebp - 0x310]
call fcn.004340fc
add esp, 4
push ebx
call fcn.004340fc
add esp, 4
mov dword [ebp - 0x2f8], 1
jmp 0x433b1b
push dword [ebp - 0x3f4]
call edi
push dword [ebp - 0x310]
mov esi, dword [ebp - 0x3f8]
call fcn.004340fc
add esp, 4
push dword [ebp - 0x304]
call fcn.004340fc
add esp, 4
test esi, esi
je 0x433b11
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call edi
mov dword [ebp - 0x2f8], 0
mov dword [ebp - 4], 0xd
cmp byte [ebp - 0x38c], 0
mov esi, dword [ebp - 0x398]
je 0x433bce
push 8
call fcn.0043424b
xor ecx, ecx
mov dword [ebp - 0x304], eax
add esp, 4
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x2fc], 3
mov word [eax], cx
lea ecx, [ebp - 0x304]
call fcn.0040b670
mov edi, dword [ebp - 0x304]
test al, al
je 0x433bc5
mov eax, dword [ebp - 0x300]
cmp eax, dword [ebp - 0x394]
jne 0x433bb8
mov ecx, esi
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x433bab
test dx, dx
je 0x433ba7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x433bab
add eax, 4
add ecx, 4
test dx, dx
jne 0x433b85
xor eax, eax
jmp 0x433bb0
sbb eax, eax
or eax, 1
test eax, eax
jne 0x433bb8
xor al, al
jmp 0x433bba
mov al, 1
test al, al
je 0x433bc5
mov ecx, esi
call fcn.0040b620
push edi
call fcn.004340fc
add esp, 4
push esi
call fcn.004340fc
mov ebx, dword [ebp - 0x33c]
add esp, 4
push dword [ebp - 0x348]
call fcn.004340fc
add esp, 4
mov dword [ebp - 4], 0xe
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ebx, dword [ebp - 0x360]
mov dword [ebp - 4], 0xf
cmp byte [ebp - 0x364], 0
je 0x433c19
lea ecx, [ebp - 0x360]
call fcn.0040b330
push ebx
call fcn.004340fc
add esp, 4
push dword [ebp - 0x31c]
call fcn.004340fc
add esp, 4
push dword [ebp - 0x354]
call fcn.004340fc
mov esi, dword [ebp - 0x2f8]
add esp, 4
push dword [ebp - 0x37c]
call fcn.004340fc
add esp, 4
push dword [ebp - 0x370]
call fcn.004340fc
mov ecx, dword [ebp - 0x338]
add esp, 4
push ecx
call fcn.004340fc
add esp, 4
push dword [ebp - 0x388]
call fcn.004340fc
mov eax, dword [ebp - 0x328]
add esp, 4
push eax
call fcn.004340fc
add esp, 4
push dword [ebp - 0x3a4]
call fcn.004340fc
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004340eb
mov esp, ebp
pop ebp
ret 0x10