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

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], edx
test esi, esi
jne 0x403341
push 0xffffffffffffff9a
pop eax
jmp 0x4036d2
mov ecx, dword [esi + 0x58]
add ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x5c]
adc eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x30]
push 0
push eax
push ecx
mov ecx, esi
call fcn.00404436
add esp, 0xc
or ebp, 0xffffffff
test eax, eax
jne 0x403379
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.00402832
pop ecx
test eax, eax
je 0x40337d
mov ebx, ebp
jmp 0x40338d
xor ebx, ebx
cmp dword [esp + 0x14], 0x2014b50
push 0xffffffffffffff99
pop eax
cmovne ebx, eax
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x34]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x38]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x40]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.00402832
test eax, eax
pop ecx
cmovne ebx, ebp
xor edi, edi
push edi
push dword [esp + 0x44]
lea ecx, [esp + 0x78]
call fcn.004032b5
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x4c]
push eax
mov ecx, esi
call fcn.00402832
mov edx, dword [esi + 0x30]
add esp, 0xc
test eax, eax
lea eax, [esp + 0x10]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.00402832
mov edx, dword [esi + 0x30]
test eax, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
pop ecx
lea eax, [esp + 0x10]
push eax
mov ecx, esi
cmovne ebx, ebp
mov dword [esp + 0x50], edi
call fcn.00402832
mov edx, dword [esi + 0x30]
test eax, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
pop ecx
lea eax, [esp + 0x58]
push eax
mov ecx, esi
cmovne ebx, ebp
mov dword [esp + 0x58], edi
call fcn.004027e0
pop ecx
mov edx, dword [esi + 0x30]
test eax, eax
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x60]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x64]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x68]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.00402832
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x10]
push eax
mov ecx, esi
cmovne ebx, ebp
call fcn.00402832
test eax, eax
mov eax, dword [esp + 0x14]
cmovne ebx, ebp
and dword [esp + 0x30], edi
mov edi, dword [esp + 0x5c]
pop ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], eax
test ebx, ebx
jne 0x403549
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x403549
mov eax, dword [esp + 0x94]
cmp edi, eax
jae 0x403527
mov byte [edi + ecx], bl
mov ebp, edi
jmp 0x403529
mov ebp, eax
test edi, edi
je 0x403547
test eax, eax
je 0x403547
push ebp
push ecx
push dword [esi + 0x30]
push dword [esi + 0x1c]
call dword [esi + 4]
add esp, 0x10
cmp eax, ebp
push 0xffffffffffffffff
pop eax
cmovne ebx, eax
sub edi, ebp
mov ebp, dword [esp + 0x5c]
add edi, ebp
test ebx, ebx
jne 0x4036d0
test ebp, ebp
je 0x4036a5
and dword [esp + 0x14], ebx
sub edi, ebp
je 0x403585
mov eax, edi
cdq
push 1
push edx
mov edx, dword [esi + 0x30]
push eax
mov ecx, esi
call fcn.00404436
add esp, 0xc
test eax, eax
push 0xffffffffffffffff
pop edi
cmovne ebx, edi
jmp 0x403588
or edi, 0xffffffff
test ebp, ebp
je 0x4036a1
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.004027e0
mov edx, dword [esi + 0x30]
test eax, eax
pop ecx
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
cmovne ebx, edi
call fcn.004027e0
test eax, eax
cmovne ebx, edi
cmp dword [esp + 0x1c], 1
mov edi, dword [esp + 0x20]
pop ecx
jne 0x40366f
or eax, 0xffffffff
cmp dword [esp + 0x50], eax
jne 0x4035f5
cmp dword [esp + 0x54], 0
jne 0x4035f5
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.004028c0
mov ebp, dword [esp + 0x60]
pop ecx
test eax, eax
push 0xffffffffffffffff
pop eax
cmovne ebx, eax
cmp dword [esp + 0x48], eax
jne 0x40361e
cmp dword [esp + 0x4c], 0
jne 0x40361e
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.004028c0
mov ebp, dword [esp + 0x60]
pop ecx
test eax, eax
push 0xffffffffffffffff
pop eax
cmovne ebx, eax
cmp dword [esp + 0x10], eax
jne 0x40364e
cmp dword [esp + 0x2c], 0
jne 0x40364e
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.004028c0
pop ecx
test eax, eax
push 0xffffffffffffffff
pop eax
cmovne ebx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
or eax, 0xffffffff
cmp dword [esp + 0x64], eax
jne 0x403689
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x24]
push eax
mov ecx, esi
call fcn.00402832
pop ecx
test eax, eax
je 0x403689
or eax, 0xffffffff
mov ebx, eax
jmp 0x403689
mov edx, dword [esi + 0x30]
push 1
push 0
push edi
mov ecx, esi
call fcn.00404436
add esp, 0xc
test eax, eax
push 0xffffffffffffffff
pop eax
cmovne ebx, eax
mov eax, dword [esp + 0x14]
add edi, 4
add eax, edi
push 0xffffffffffffffff
mov dword [esp + 0x18], eax
pop edi
cmp eax, ebp
jb 0x403590
test ebx, ebx
jne 0x4036d0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4036b8
push 0x16
pop ecx
lea esi, [esp + 0x30]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4036d0
mov ecx, dword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret