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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
push esi
mov esi, dword [ebp + 8]
xor edx, edx
push edi
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], edx
mov dword [esp + 0x10], eax
test eax, eax
jne 0x412ccb
mov ecx, 0x42efc8
call fcn.0040242c
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esi + 0x2c], edx
test edx, edx
jne 0x412cc9
mov eax, 0x8007000e
jmp 0x412ecb
xor edx, edx
lea ecx, [esp + 0x30]
call fcn.00402405
mov eax, dword [esi + 0x40]
xor ecx, ecx
inc ecx
mov dword [esp + 0x30], eax
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 0x44]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
je 0x412dbb
mov edi, dword [esi + 0x4c]
cmp edi, ecx
jb 0x412dbb
mov al, byte [esi + 0x38]
cmp al, 0x28
jne 0x412d0a
or eax, 0xffffffff
jmp 0x412d1c
movzx eax, al
mov ecx, eax
and eax, 1
shr ecx, 1
or eax, 2
add ecx, 0xb
shl eax, cl
mov ebx, eax
shld edx, ebx, 2
shl ebx, 2
test edx, edx
ja 0x412d3a
mov ecx, 0x100000
jb 0x412d34
cmp ebx, ecx
jae 0x412d3a
xor ebx, ebx
mov edx, ebx
jmp 0x412d51
mov ecx, ebx
test edx, edx
jne 0x412d48
cmp ebx, 0x10000000
jbe 0x412d4f
mov ecx, 0x10000000
jmp 0x412d34
xor ebx, ebx
cmp edx, ebx
ja 0x412d5f
jb 0x412d5b
cmp ecx, eax
jae 0x412d5f
mov ecx, eax
mov edx, ebx
add ecx, 0xfffff
adc edx, ebx
and ecx, 0xfff00000
mov ebx, ecx
xor eax, eax
shr ebx, 4
add ebx, ecx
cmp eax, edx
jne 0x412dbb
cmp ebx, ecx
jb 0x412dbb
mov eax, dword [esp + 0x3c]
add eax, ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
add ecx, 0x10000
xor ebx, ebx
add eax, ecx
push ebx
push eax
push dword [esi + 0x54]
push dword [esi + 0x50]
call fcn.00428240
cmp ebx, edx
jb 0x412db7
ja 0x412dad
cmp edi, eax
jbe 0x412db7
mov edi, eax
push 1
test edi, edi
pop eax
cmove edi, eax
mov dword [esp + 0x38], edi
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, dword [ebp + 0x1c]
xorps xmm0, xmm0
mov edi, dword [ebp + 0x18]
test ecx, ecx
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x24]
cmove eax, edx
mov dword [esp + 0x68], edx
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x54], edx
push eax
lea eax, [esp + 0x20]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x38], edx
mov dl, byte [esi + 0x38]
push eax
push dword [esi + 0x3c]
lea eax, [esp + 0x5c]
mov dword [esp + 0x74], 0x40ff72
push edi
push eax
lea eax, [esp + 0x4c]
movlpd qword [esp + 0x8c], xmm0
push eax
mov dword [esp + 0x68], 0x40ffc5
movlpd qword [esp + 0x78], xmm0
mov dword [esp + 0x44], 0x40ff2c
movlpd qword [esp + 0x38], xmm0
call fcn.00402e85
mov edx, eax
xor eax, eax
inc eax
cmp dword [esp + 0x38], eax
jbe 0x412e5d
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x48], ecx
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ecx
test eax, eax
jne 0x412ecb
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x412ecb
mov eax, dword [esp + 0x68]
test eax, eax
je 0x412e88
cmp edx, 8
je 0x412ecb
test edx, edx
jne 0x412ec4
xor eax, eax
cmp dword [esi + 0x3c], eax
je 0x412ec4
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x412eaa
cmp dword [eax], ebx
jne 0x412ea3
cmp dword [eax + 4], ecx
je 0x412eaa
xor ecx, ecx
inc ecx
mov edx, ecx
jmp 0x412ead
xor ecx, ecx
inc ecx
test edi, edi
je 0x412ec4
mov eax, dword [edi]
cmp eax, dword [esp + 0x58]
jne 0x412ec2
mov eax, dword [edi + 4]
cmp eax, dword [esp + 0x5c]
je 0x412ec4
mov edx, ecx
mov ecx, edx
call fcn.0040fed0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18