Function at 0x409670
Capabilities:
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x154
mov eax, dword [0x43e070]
xor eax, esp
mov dword [esp + 0x150], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [esp + 0x80], esi
push edi
sub eax, 2
je 0x4096ac
sub eax, 0x10e
jne 0x4096b3
mov dword [esi], ebx
jmp 0x4096b3
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x409f8f
mov eax, dword [ecx]
push 2
push ebx
call dword [eax + 8]
mov ecx, dword [esi + 4]
push 0x3fc
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3fb
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f6
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f2
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f3
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f4
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f5
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x400
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x402
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x405
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x409
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f7
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f8
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3f9
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x3fa
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [esi + 4]
push 0x407
mov eax, dword [ecx]
call dword [eax + 0x1c]
push str.PRIMARY_LANGID
call fcn.00405980
push str.SUB_LANGID
mov esi, eax
call fcn.00405980
shl eax, 0xa
or eax, esi
movzx eax, ax
test esi, esi
jne 0x4097c1
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
mov word [esp + 0x1c], ax
mov edx, 0x439758
lea eax, [esp + 0x1c]
mov ecx, 0x439648
push eax
call fcn.00409160
add esp, 4
cmp eax, 0x439758
je 0x4097e9
mov edi, dword [eax + 4]
jmp 0x4097ee
mov edi, str.English
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x3f5
push ebx
call esi
push 0x400
push ebx
mov dword [esp + 0x88], eax
call esi
push 0x3f3
push ebx
mov dword [esp + 0x48], eax
call esi
push 0x402
push ebx
mov dword [esp + 0x2c], eax
call esi
push 0x3f2
push ebx
mov dword [esp + 0x4c], eax
call esi
push 0x3f3
push ebx
mov dword [esp + 0x40], eax
call esi
push 0x3f4
push ebx
mov dword [esp + 0x24], eax
call esi
push 0x3f5
push ebx
mov dword [esp + 0x44], eax
call esi
push 0x405
push ebx
mov dword [esp + 0x28], eax
call esi
push 0x409
push ebx
mov dword [esp + 0x50], eax
call esi
push 0x3f7
push ebx
mov dword [esp + 0x54], eax
call esi
push 0x3f8
push ebx
mov dword [esp + 0x30], eax
call esi
push 0x3f9
push ebx
mov dword [esp + 0x34], eax
call esi
push 0x3fa
push ebx
mov dword [esp + 0x38], eax
call esi
push 0x407
push ebx
mov dword [esp + 0x3c], eax
call esi
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x88], eax
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
call dword [edx + 0x28]
push str.ENQ_TYPE2
mov ecx, eax
call fcn.004035d0
mov esi, dword [sym.imp.USER32.dll_MoveWindow]
test eax, eax
jne 0x409ec4
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpW]
push str.French
push edi
call esi
test eax, eax
je 0x409951
push str.German
push edi
call esi
test eax, eax
je 0x409951
push str.Hungarian
push edi
call esi
test eax, eax
je 0x409951
push str.Italian
push edi
call esi
test eax, eax
je 0x409951
push str.Portuguese
push edi
call esi
test eax, eax
je 0x409951
push str.Rumanian
push edi
call esi
test eax, eax
je 0x409951
push str.Spanish
push edi
call esi
test eax, eax
je 0x409951
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push dword [esp + 0x28]
call esi
push 0
push dword [esp + 0x48]
call esi
mov dword [esp + 0x24], 0
jmp 0x40996f
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [esp + 0x28]
call esi
push 5
push dword [esp + 0x48]
call esi
mov dword [esp + 0x24], 1
push str.Japanese
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4099c9
push str.Lithuanian
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4099c9
push str.Simplified_Chinese
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4099c9
push str.Traditional_Chinese
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4099c9
push 0
push dword [esp + 0x84]
call esi
push 5
push dword [esp + 0x44]
call esi
mov ecx, 1
jmp 0x4099de
push 5
push dword [esp + 0x84]
call esi
push 0
push dword [esp + 0x44]
call esi
xor ecx, ecx
cmp dword [esp + 0x24], 1
mov eax, dword [esp + 0x1c]
cmove eax, dword [esp + 0x44]
cmp ecx, 1
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
cmove eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x11c]
push eax
push dword [esp + 0x3c]
call esi
lea eax, [esp + 0x12c]
push eax
push dword [esp + 0x20]
call esi
lea eax, [esp + 0x13c]
push eax
push dword [esp + 0x40]
call esi
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x24]
call esi
lea eax, [esp + 0xdc]
push eax
push dword [esp + 0x2c]
call esi
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x30]
call esi
lea eax, [esp + 0xfc]
push eax
push dword [esp + 0x34]
call esi
lea eax, [esp + 0x10c]
push eax
push dword [esp + 0x38]
call esi
mov eax, dword [esp + 0xdc]
mov esi, dword [sym.imp.USER32.dll_ScreenToClient]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
push eax
push ebx
call esi
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x2c]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0xec]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xc]
push eax
push ebx
call esi
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x30]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
push eax
push ebx
call esi
lea eax, [esp + 0xac]
push eax
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x70]
push eax
push ebx
call esi
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x38]
call dword [sym.imp.USER32.dll_GetClientRect]
push str.Arabic
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
mov esi, dword [sym.imp.USER32.dll_MoveWindow]
push 1
push dword [esp + 0x9c]
test eax, eax
jne 0x409bf9
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x1c]
push ecx
push dword [esp + 0x1c]
sub eax, ecx
push eax
push dword [esp + 0x3c]
call esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xa4]
add eax, eax
sub eax, dword [esp + 0x18]
push 1
push dword [esp + 0xac]
push ecx
push eax
mov eax, dword [esp + 0x1c]
sub eax, ecx
push eax
push dword [esp + 0x40]
call esi
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xb4]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xbc]
push ecx
push eax
mov eax, dword [esp + 0x78]
sub eax, ecx
push eax
push dword [esp + 0x44]
call esi
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc4]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xcc]
push ecx
push eax
mov eax, dword [esp + 0x80]
sub eax, ecx
push eax
jmp 0x409c7e
push dword [esp + 0x9c]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push dword [esp + 0x3c]
call esi
mov eax, dword [esp + 0x10]
push 1
push dword [esp + 0xac]
add eax, eax
push dword [esp + 0xac]
sub eax, dword [esp + 0x24]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x40]
call esi
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x18]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push eax
push dword [esp + 0x78]
push dword [esp + 0x44]
call esi
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x18]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xcc]
push dword [esp + 0xcc]
push eax
push dword [esp + 0x80]
push dword [esp + 0x48]
call esi
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x78]
push eax
push ebx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x3c]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
push eax
push ebx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x58]
push eax
push ebx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0xac]
push eax
push dword [esp + 0x40]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x60]
push eax
push ebx
call dword [sym.imp.USER32.dll_ScreenToClient]
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x24]
call dword [sym.imp.USER32.dll_GetClientRect]
push str.Arabic
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
push 1
push dword [esp + 0x9c]
test eax, eax
mov eax, dword [esp + 0x84]
jne 0x409e19
sub eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
add eax, dword [esp + 0x18]
push ecx
push eax
mov eax, dword [esp + 0x88]
sub eax, ecx
push eax
push dword [esp + 0x4c]
call esi
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xa4]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xac]
push ecx
push eax
mov eax, dword [esp + 0x60]
sub eax, ecx
push eax
push dword [esp + 0x30]
call esi
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xb4]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xbc]
push ecx
push eax
mov eax, dword [esp + 0x68]
sub eax, ecx
push eax
push dword [esp + 0x50]
call esi
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc4]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xcc]
push ecx
push eax
mov eax, dword [esp + 0x70]
sub eax, ecx
push eax
jmp 0x409ea5
push dword [esp + 0x9c]
sub eax, dword [esp + 0x24]
add eax, dword [esp + 0x1c]
push eax
push dword [esp + 0x88]
push dword [esp + 0x4c]
call esi
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x18]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xac]
push dword [esp + 0xac]
push eax
push dword [esp + 0x60]
push dword [esp + 0x30]
call esi
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x18]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push eax
push dword [esp + 0x68]
push dword [esp + 0x50]
call esi
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x18]
add eax, dword [esp + 0x10]
push 1
push dword [esp + 0xcc]
push dword [esp + 0xcc]
push eax
push dword [esp + 0x70]
push dword [esp + 0x34]
call esi
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [esp + 0x4c]
call edi
push 0
push dword [esp + 0x8c]
jmp 0x409f3a
push 0
push dword [esp + 0x44]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [esp + 0x48]
call dword [sym.imp.USER32.dll_ShowWindow]
push str.Japanese
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x409f2e
push str.Lithuanian
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x409f2e
push str.Simplified_Chinese
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x409f2e
push str.Traditional_Chinese
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x409f2e
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [esp + 0x4c]
call edi
push 5
jmp 0x409f3e
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push dword [esp + 0x4c]
call edi
push 0
push dword [esp + 0x50]
call edi
mov eax, dword [esp + 0x84]
lea edx, [esp + 0xcc]
xorps xmm0, xmm0
movups xmmword [esp + 0xcc], xmm0
push edx
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
sub eax, edx
mov ecx, dword [esp + 0xcc]
push 0
push eax
mov eax, dword [esp + 0xdc]
sub eax, ecx
push eax
push edx
push ecx
push ebx
call esi
mov ecx, dword [esp + 0x15c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004127dd
mov esp, ebp
pop ebp
ret 0x10