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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov dword [esp + 0x10], ecx
mov esi, dword [ebp + 8]
mov eax, dword [edx + 0x38]
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], edx
lea eax, [edx + 0x3c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
lea eax, [esi + 0x3c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 3
lea ecx, [esp + 0x78]
call fcn.0040a000
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
cmp edi, ecx
jne 0x40939c
xorpd xmm0, xmm0
movsd qword [esp + 0x38], xmm0
cmp esi, eax
je 0x40964d
mov ebx, eax
mov eax, dword [ebp + 0xc]
lea edx, [eax + 0x58]
mov dword [esp + 0x14], edx
lea edx, [eax + 0x48]
mov dword [esp + 0x1c], edx
add eax, 0x30
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
lea edx, [eax + 0x1c0]
mov dword [esp + 8], edx
add eax, 0x180
mov dword [esp + 0x48], eax
mov eax, ebx
xorpd xmm0, xmm0
movsd qword [esp + 0x38], xmm0
nop dword [eax]
xor ebx, ebx
cmp edi, ecx
je 0x409420
mov edx, dword [edi + 0x18]
mov edi, dword [edi + 0x1c]
cmp esi, eax
je 0x409428
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x1c]
mov ecx, dword [esp + 0x88]
cmp ecx, 1
je 0x409436
cmp ecx, 2
jne 0x409450
xor edx, edx
mov esi, dword [esp + 0x14]
mov edi, eax
mov ecx, ebx
mov dword [esp], 0
jmp 0x40945e
xor edx, edx
xor edi, edi
cmp esi, eax
jne 0x4093f0
xor eax, eax
mov ecx, dword [esp + 0x88]
cmp ecx, 1
jne 0x409402
xor eax, eax
mov esi, dword [esp + 0x1c]
mov ecx, edi
mov edi, edx
mov dword [esp], ecx
xor ebx, ebx
jmp 0x40945e
xor ecx, ecx
mov dword [esp], edi
mov edi, 1
mov esi, dword [esp + 0x4c]
add dword [esi], edi
adc dword [esi + 4], ecx
cmp eax, edx
mov ecx, ebx
mov edi, dword [esp]
sbb ecx, edi
mov ecx, ebx
cmovb ecx, edi
mov esi, eax
cmovb esi, edx
mov dword [esp + 4], ebx
cmovb edi, ebx
mov ebx, edx
mov dword [esp + 0xc], eax
cmovb ebx, eax
mov eax, dword [ebp + 0xc]
add dword [eax + 0x88], esi
adc dword [eax + 0x8c], ecx
add dword [eax + 0x38], ebx
adc dword [eax + 0x3c], edi
mov esi, dword [eax + 0x68]
mov edi, dword [eax + 0x6c]
mov ecx, esi
or ecx, edi
xorpd xmm1, xmm1
xorpd xmm0, xmm0
je 0x409504
movd xmm2, edx
movd xmm0, dword [esp]
punpckldq xmm2, xmm0
movdqa xmm4, xmmword [0x43d1f0]
punpckldq xmm2, xmm4
movapd xmm5, xmmword [0x43d200]
subpd xmm2, xmm5
movapd xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm0, xmm2
movd xmm2, esi
movd xmm3, edi
punpckldq xmm2, xmm3
punpckldq xmm2, xmm4
subpd xmm2, xmm5
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm0, xmm3
mov esi, dword [eax + 0x78]
mov edi, dword [eax + 0x7c]
mov ecx, esi
or ecx, edi
mov eax, dword [esp + 0x10]
je 0x40956a
movss xmm2, dword [esp + 0xc]
movss xmm1, dword [esp + 4]
unpcklps xmm2, xmm1
movapd xmm4, xmmword [0x43d1f0]
unpcklps xmm2, xmm4
movapd xmm5, xmmword [0x43d200]
subpd xmm2, xmm5
movapd xmm1, xmm2
unpckhpd xmm1, xmm2
addsd xmm1, xmm2
movd xmm2, esi
movd xmm3, edi
punpckldq xmm2, xmm3
punpckldq xmm2, xmm4
subpd xmm2, xmm5
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm1, xmm3
subsd xmm0, xmm1
andpd xmm0, xmmword [0x43d210]
addsd xmm0, qword [0x43d220]
addsd xmm0, qword [0x43d228]
mov ecx, dword [eax + 0x248]
mov ebx, dword [eax + 0x24c]
cmp edx, ecx
mov esi, dword [esp]
sbb esi, ebx
mov esi, dword [eax + 0x254]
mov edi, dword [eax + 0x250]
jae 0x4095b3
cmp dword [esp + 0xc], edi
mov eax, dword [esp + 4]
sbb eax, esi
jb 0x40960e
mov eax, dword [esp + 0x10]
add dword [eax + 0x1d0], 1
adc dword [eax + 0x1d4], 0
cmp edx, ecx
sbb dword [esp], ebx
jae 0x4095e0
cmp dword [esp + 0xc], edi
sbb dword [esp + 4], esi
mov eax, dword [esp + 8]
jae 0x409607
jmp 0x40960e
add dword [eax + 0x1b0], 1
adc dword [eax + 0x1b4], 0
cmp dword [esp + 0xc], edi
sbb dword [esp + 4], esi
jb 0x40960e
mov eax, dword [esp + 8]
add dword [eax], 1
adc dword [eax + 4], 0
mov eax, dword [esp + 0x48]
add dword [eax], 1
adc dword [eax + 4], 0
movsd xmm1, qword [esp + 0x38]
addsd xmm1, xmm0
movsd qword [esp + 0x38], xmm1
lea ecx, [esp + 0x78]
call fcn.0040a000
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
cmp edi, ecx
jne 0x4093e0
cmp esi, eax
jne 0x4093e0
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x44]
add edx, 0x48
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x44]
add esi, 0x48
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], 3
lea ecx, [esp + 0x64]
call fcn.0040a140
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
cmp eax, dword [esp + 0x68]
jne 0x409699
cmp esi, dword [esp + 0x70]
je 0x409fd9
mov ebx, dword [esp + 0x10]
lea ecx, [ebx + 0x1c0]
mov dword [esp + 0x18], ecx
lea ecx, [ebx + 0x180]
mov dword [esp + 0x40], ecx
nop word cs:[eax + eax]
mov edi, dword [esp + 0x74]
test edi, edi
je 0x409930
cmp edi, 1
cmove esi, eax
mov ebx, dword [esi + 0x18]
add esi, 0x1c
cmp ebx, esi
je 0x409fb0
cmp edi, 2
mov ecx, 0x30
mov eax, 0x58
cmove ecx, eax
mov dword [esp + 0x48], ecx
cmp edi, 1
mov dword [esp + 0xc], esi
jne 0x409d70
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x248]
mov dword [esp], ecx
mov eax, dword [eax + 0x24c]
mov dword [esp + 4], eax
jmp 0x40973c
movsd xmm1, qword [esp + 0x38]
addsd xmm1, xmm0
movsd qword [esp + 0x38], xmm1
mov ebx, eax
cmp eax, dword [esp + 0xc]
je 0x409fb0
lea ecx, [ebx + 0x20]
xorpd xmm0, xmm0
movapd xmmword [esp + 0x20], xmm0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea edx, [esp + 0x20]
push dword [esp + 4]
push dword [esp + 4]
call fcn.00405be0
add esp, 8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
movapd xmm0, xmmword [esp + 0x20]
mov esi, dword [ebp + 0xc]
add dword [esi + 0x48], ecx
adc dword [esi + 0x4c], edx
add dword [esi + 0x88], ecx
adc dword [esi + 0x8c], edx
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x248]
mov dword [esp], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
mov eax, dword [edi + 0x24c]
mov ecx, edx
mov dword [esp + 4], eax
sbb ecx, eax
unpcklps xmm0, xmmword [0x43d1f0]
subpd xmm0, xmmword [0x43d200]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
movss xmm0, dword [esi + 0x78]
movss xmm2, dword [esi + 0x7c]
movlhps xmm2, xmm0
movups xmm3, xmmword [esi + 0x68]
movaps xmm4, xmm3
shufps xmm4, xmm2, 0x24
movlhps xmm3, xmm0
andps xmm3, xmmword [0x43d230]
orps xmm3, xmmword [0x43d240]
movaps xmm0, xmm4
psrlq xmm0, 0x20
por xmm0, xmmword [0x43d250]
subpd xmm0, xmmword [0x43d260]
addpd xmm0, xmm3
movq xmm1, xmm1
divpd xmm1, xmm0
pcmpeqd xmm4, xmmword [0x43d280]
pshufd xmm0, xmm4, 0xb1
pand xmm0, xmm4
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
subsd xmm0, xmm1
andpd xmm0, xmmword [0x43d210]
addsd xmm0, qword [0x43d220]
addsd xmm0, qword [0x43d228]
mov esi, dword [edi + 0x250]
mov edi, dword [edi + 0x254]
jae 0x409873
mov ecx, esi
or ecx, edi
jne 0x4098d0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add dword [ecx + 0x1d0], eax
mov eax, dword [esp + 8]
adc dword [ecx + 0x1d4], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp]
sbb edx, dword [esp + 4]
jae 0x4098b0
or esi, edi
mov eax, dword [esp + 0x18]
jne 0x4098d0
jmp 0x409902
mov eax, dword [esp + 0x14]
add dword [ecx + 0x1b0], eax
mov eax, dword [esp + 8]
adc dword [ecx + 0x1b4], eax
or esi, edi
je 0x4098ed
nop dword [eax + eax]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x409920
nop word [eax + eax]
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4098e0
jmp 0x409720
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add dword [eax], ecx
mov ecx, dword [esp + 8]
adc dword [eax + 4], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
add dword [eax], ecx
mov ecx, dword [esp + 8]
adc dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x4098e0
nop word cs:[eax + eax]
mov eax, dword [ebx + 8]
cmp dword [eax], ebx
mov ebx, eax
jne 0x409920
jmp 0x409720
mov ecx, dword [eax + 0x18]
add eax, 0x1c
mov edx, dword [esi + 0x18]
add esi, 0x1c
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], 3
jmp 0x409994
add edx, 0x20
add eax, 0x20
mov ecx, ebx
push dword [ebp + 0xc]
push eax
call fcn.00409320
add esp, 8
addsd xmm0, xmm0
movsd xmm1, qword [0x43d270]
subsd xmm1, xmm0
movsd xmm0, qword [esp + 0x38]
addsd xmm0, xmm1
movsd qword [esp + 0x38], xmm0
lea ecx, [esp + 0x50]
call fcn.0040a280
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
cmp edx, dword [esp + 0x54]
jne 0x4099b5
cmp eax, dword [esp + 0x5c]
je 0x409fb0
mov esi, dword [esp + 0x60]
test esi, esi
je 0x409960
cmp esi, 1
jne 0x409b40
add edx, 0x20
xorpd xmm0, xmm0
movapd xmmword [esp + 0x20], xmm0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov ecx, edx
lea edx, [esp + 0x20]
push dword [ebx + 0x24c]
push dword [ebx + 0x248]
call fcn.00405be0
add esp, 8
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
movapd xmm2, xmmword [esp + 0x20]
mov ecx, dword [ebp + 0xc]
add dword [ecx + 0x48], eax
adc dword [ecx + 0x4c], edx
mov dword [esp], eax
add dword [ecx + 0x88], eax
adc dword [ecx + 0x8c], edx
mov eax, dword [ecx + 0x68]
or eax, dword [ecx + 0x6c]
xorpd xmm0, xmm0
xorpd xmm1, xmm1
movapd xmm4, xmmword [0x43d1f0]
je 0x409a7a
unpcklps xmm2, xmm4
movapd xmm3, xmmword [0x43d200]
subpd xmm2, xmm3
movapd xmm1, xmm2
unpckhpd xmm1, xmm2
addsd xmm1, xmm2
movupd xmm2, xmmword [ecx + 0x68]
unpcklps xmm2, xmm4
subpd xmm2, xmm3
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm1, xmm3
mov dword [esp + 0xc], edi
mov dword [esp + 4], esi
mov eax, dword [ecx + 0x7c]
mov ecx, dword [ecx + 0x78]
movd xmm2, ecx
or ecx, eax
movd xmm3, eax
punpckldq xmm2, xmm3
punpckldq xmm2, xmm4
subpd xmm2, xmmword [0x43d200]
je 0x409ab4
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm0, xmm3
subsd xmm1, xmm0
andpd xmm1, xmmword [0x43d210]
addsd xmm1, qword [0x43d220]
addsd xmm1, qword [0x43d228]
mov ecx, dword [ebx + 0x248]
mov eax, dword [ebx + 0x24c]
cmp dword [esp], ecx
mov edi, edx
sbb edi, eax
mov edi, dword [ebx + 0x254]
mov esi, dword [ebx + 0x250]
jae 0x409aff
mov ebx, esi
or ebx, edi
mov ebx, dword [esp + 0x10]
jne 0x409984
mov dword [esp + 8], edi
mov edi, dword [esp + 0xc]
add dword [ebx + 0x1d0], edi
mov edi, ebx
mov ebx, edx
mov edx, dword [esp + 4]
adc dword [edi + 0x1d4], edx
cmp dword [esp], ecx
sbb ebx, eax
jae 0x409ce1
or esi, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov ebx, edi
jne 0x409984
jmp 0x409d16
add eax, 0x20
xorpd xmm0, xmm0
movapd xmmword [esp + 0x20], xmm0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov ecx, eax
lea edx, [esp + 0x20]
push dword [ebx + 0x254]
push dword [ebx + 0x250]
call fcn.00405be0
add esp, 8
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp], ebx
mov edx, dword [ebp + 0xc]
lea eax, [edx + 0x30]
lea ecx, [edx + 0x58]
cmp esi, 2
mov esi, 0
cmove esi, ebx
cmove eax, ecx
mov ecx, 1
cmove ecx, edi
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 8], ebx
add dword [eax], ecx
adc dword [eax + 4], esi
mov dword [esp + 4], edi
add dword [edx + 0x88], edi
mov eax, dword [esp]
adc dword [edx + 0x8c], eax
mov eax, dword [edx + 0x68]
movd xmm2, eax
mov ecx, dword [edx + 0x6c]
or eax, ecx
movd xmm0, ecx
punpckldq xmm2, xmm0
movdqa xmm4, xmmword [0x43d1f0]
punpckldq xmm2, xmm4
subpd xmm2, xmmword [0x43d200]
pxor xmm0, xmm0
xorpd xmm1, xmm1
je 0x409c0b
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm1, xmm3
mov esi, dword [edx + 0x78]
mov ebx, dword [edx + 0x7c]
mov eax, esi
or eax, ebx
je 0x409c66
movd xmm2, dword [esp + 4]
movd xmm0, dword [esp]
punpckldq xmm2, xmm0
punpckldq xmm2, xmm4
movapd xmm5, xmmword [0x43d200]
subpd xmm2, xmm5
movapd xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm0, xmm2
movd xmm2, esi
movd xmm3, ebx
punpckldq xmm2, xmm3
punpckldq xmm2, xmm4
subpd xmm2, xmm5
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm0, xmm3
subsd xmm1, xmm0
andpd xmm1, xmmword [0x43d210]
addsd xmm1, qword [0x43d220]
addsd xmm1, qword [0x43d228]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x248]
mov ecx, dword [edx + 0x24c]
mov esi, eax
or esi, ecx
mov esi, dword [edx + 0x254]
mov ebx, dword [edx + 0x250]
je 0x409cb3
cmp dword [esp + 4], ebx
mov edx, dword [esp]
sbb edx, esi
jb 0x409d67
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 8]
add dword [edx + 0x1d0], edi
mov edi, dword [esp + 0xc]
adc dword [edx + 0x1d4], edi
or eax, ecx
je 0x409d28
cmp dword [esp + 4], ebx
sbb dword [esp], esi
mov eax, dword [esp + 0x18]
jae 0x409d5a
jmp 0x409d67
mov eax, dword [esp + 0xc]
add dword [edi + 0x1b0], eax
mov eax, dword [esp + 4]
adc dword [edi + 0x1b4], eax
or esi, dword [esp + 8]
mov ebx, edi
jne 0x409984
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
add dword [eax], ecx
mov ecx, dword [esp + 4]
adc dword [eax + 4], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
add dword [eax], ecx
mov ecx, dword [esp + 4]
adc dword [eax + 4], ecx
jmp 0x409984
mov eax, dword [esp + 8]
add dword [edx + 0x1b0], eax
mov eax, dword [esp + 0xc]
adc dword [edx + 0x1b4], eax
cmp dword [esp + 4], ebx
sbb dword [esp], esi
jb 0x409d67
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
add dword [eax], ecx
mov ecx, dword [esp + 0xc]
adc dword [eax + 4], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 8]
add dword [eax], ecx
mov ecx, dword [esp + 0xc]
adc dword [eax + 4], ecx
mov ebx, dword [esp + 0x10]
jmp 0x409984
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x250]
mov dword [esp], ecx
mov esi, dword [eax + 0x254]
mov dword [esp + 0x44], edi
jmp 0x409db0
movsd xmm1, qword [esp + 0x38]
addsd xmm1, xmm0
movsd qword [esp + 0x38], xmm1
mov ebx, ecx
cmp ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x44]
je 0x409fb0
lea ecx, [ebx + 0x20]
xorpd xmm0, xmm0
movapd xmmword [esp + 0x20], xmm0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea edx, [esp + 0x20]
push esi
push dword [esp + 4]
call fcn.00405be0
add esp, 8
cmp edi, 2
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, 0
cmove eax, ecx
mov ecx, 1
cmove ecx, esi
mov dword [esp + 4], esi
movapd xmm0, xmmword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x48]
add dword [edi + edx], ecx
adc dword [edi + edx + 4], eax
add dword [edi + 0x88], esi
mov esi, dword [esp + 0x1c]
adc dword [edi + 0x8c], esi
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 0x248]
mov ecx, dword [edx + 0x24c]
mov eax, edi
mov dword [esp + 0x4c], ecx
or eax, ecx
mov eax, dword [esp + 4]
unpcklps xmm0, xmmword [0x43d1f0]
subpd xmm0, xmmword [0x43d200]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [ecx + 0x78]
movss xmm2, dword [ecx + 0x7c]
movlhps xmm2, xmm0
movups xmm3, xmmword [ecx + 0x68]
mov ecx, esi
movaps xmm4, xmm3
shufps xmm4, xmm2, 0x24
movlhps xmm3, xmm0
andps xmm3, xmmword [0x43d230]
orps xmm3, xmmword [0x43d240]
movaps xmm0, xmm4
psrlq xmm0, 0x20
por xmm0, xmmword [0x43d250]
subpd xmm0, xmmword [0x43d260]
addpd xmm0, xmm3
xorps xmm2, xmm2
movlhps xmm2, xmm1
divpd xmm2, xmm0
pcmpeqd xmm4, xmmword [0x43d280]
pshufd xmm0, xmm4, 0xb1
pand xmm0, xmm4
pandn xmm0, xmm2
pshufd xmm1, xmm0, 0xee
subsd xmm0, xmm1
andpd xmm0, xmmword [0x43d210]
addsd xmm0, qword [0x43d220]
addsd xmm0, qword [0x43d228]
mov esi, dword [edx + 0x250]
mov dword [esp], esi
mov esi, dword [edx + 0x254]
je 0x409f10
cmp eax, dword [esp]
mov edx, ecx
sbb edx, esi
jb 0x409f80
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
add dword [edx + 0x1d0], eax
mov eax, dword [esp + 0x14]
adc dword [edx + 0x1d4], eax
or edi, dword [esp + 0x4c]
je 0x409f3f
mov eax, dword [esp]
cmp dword [esp + 4], eax
sbb ecx, esi
mov ecx, dword [esp + 0x18]
jae 0x409f73
jmp 0x409f80
mov eax, dword [esp + 8]
add dword [edx + 0x1b0], eax
mov eax, dword [esp + 0x14]
adc dword [edx + 0x1b4], eax
mov eax, dword [esp]
cmp dword [esp + 4], eax
sbb ecx, esi
jb 0x409f80
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 8]
add dword [ecx], eax
mov eax, dword [esp + 0x14]
adc dword [ecx + 4], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 8]
add dword [ecx], eax
mov eax, dword [esp + 0x14]
adc dword [ecx + 4], eax
mov edx, dword [ebx + 4]
test edx, edx
je 0x409fa0
nop word [eax + eax]
mov ecx, edx
mov edx, dword [edx]
test edx, edx
jne 0x409f90
jmp 0x409d90
mov ecx, dword [ebx + 8]
cmp dword [ecx], ebx
mov ebx, ecx
jne 0x409fa0
jmp 0x409d90
lea ecx, [esp + 0x64]
call fcn.0040a140
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
cmp eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x10]
jne 0x4096c0
cmp esi, dword [esp + 0x70]
jne 0x4096c0
movsd xmm0, qword [0x43d270]
subsd xmm0, qword [esp + 0x38]
mulsd xmm0, qword [0x43d278]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret