Function at 0x402a50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push edi
push esi
sub esp, 0x64
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x78], 0
je 0x402cfa
mov dword [esp + 0x28], 0
jmp 0x402a76
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.00401640
cmp esi, eax
jb 0x402a97
mov dword [esp + 0x38], 2
jmp 0x402cf8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401660
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
lea ecx, [0x46a140]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401570
cmp eax, 0
je 0x402af5
mov eax, dword [esp + 0x24]
lea ecx, [0x46a143]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401570
cmp eax, 0
jne 0x402b02
mov dword [esp + 0x38], 2
jmp 0x402ccf
mov eax, dword [esp + 0x24]
lea ecx, [0x46a140]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004012e0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x24]
lea ecx, [0x46a143]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004012e0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00458180
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00458180
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x34]
mov eax, esi
and eax, 0xfffffffd
mov ecx, esi
or ecx, 0xfffffffd
xor ecx, 0xffffffff
imul ecx, eax
mov edx, esi
and edx, 2
mov edi, esi
xor edi, 0xffffffff
mov eax, edi
and eax, 0xa95e424
and esi, 0xf56a1bdb
or eax, esi
xor eax, 0xa95e426
or edi, 0xfffffffd
xor edi, 0xffffffff
and edi, 0xffffffff
or eax, edi
imul eax, edx
add eax, ecx
sub eax, 0x4cb07fe9
add eax, 2
sub eax, 0x6ec234b9
add eax, 0x4cb07fe9
add eax, 0x6ec234b9
mov dword [esp], eax
call fcn.00457c74
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 2
mov edx, eax
xor edx, 0xffffffff
or edx, 2
and ecx, edx
xor ecx, 0xffffffff
mov edx, eax
or edx, 0xfffffffd
xor edx, 0xffffffff
and edx, 0xffffffff
or edx, 0
imul edx, ecx
mov esi, eax
xor esi, 0xfffffffd
and esi, eax
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0xfffffffd
or eax, 2
xor eax, 0xffffffff
or ecx, eax
xor ecx, 0xffffffff
imul ecx, esi
mov eax, ecx
and eax, edx
shl eax, 1
xor ecx, edx
add ecx, eax
sub ecx, 0x24514552
add ecx, 0x6f4144f4
add ecx, 0x24514552
add ecx, 2
sub ecx, 0x6f4144f4
mov dword [esp], ecx
call fcn.00457c74
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00457c9f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov word [eax + ecx*2], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00457c9f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov word [eax + ecx*2], 0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x70]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.004026d0
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.00457bd5
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00457bd5
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0
jne 0x402cf6
jmp 0x402cda
jmp 0x402cdc
mov eax, dword [esp + 0x28]
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esp + 0x28], eax
jmp 0x402a76
jmp 0x402cf8
jmp 0x402cfa
lea eax, [0x46a146]
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004028a0
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00457bd5
lea eax, str.22fe32036e91556a4cde7662569f
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004028a0
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00457bd5
lea eax, str.362f0ee17a406988580f4a80424e2ea7595d2ea0554c6194585b
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004028a0
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00457bd5
lea eax, [0x46a146]
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004028a0
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.00457bd5
lea eax, str.bae785b2ed82e792fe86f1d3
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004028a0
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.00457bd5
lea eax, str.6cdb83d922bef7ae03a9e8852fb4ecb205bef0
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004028a0
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.00457bd5
mov dword [esp], 0x104
mov dword [esp + 4], 2
call fcn.00457787
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
sub esp, 8
lea eax, str.f423d2eaa86fbd89954ff2b9804ca08b93468e869155b7869041
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
sub esp, 8
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00457bd5
mov dword [esp], 0x104
mov dword [esp + 4], 2
call fcn.00457787
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
sub esp, 8
mov eax, dword [esp + 0x18]
lea ecx, [0x46a0f2]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
sub esp, 8
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
sub esp, 8
lea eax, str.d1ec3fb8feae4dd7a69f5aca95ae
mov dword [esp], eax
call fcn.00445a90
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
sub esp, 8
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00457bd5
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
lea esi, [0x46a138]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 0xa00000
mov dword [esp + 0x14], eax
call fcn.0040b3b0
add esp, 0x64
pop esi
pop edi
ret