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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [0x519058]
mov edi, dword [ebp + 0x10]
movsd xmm0, qword [ebp + 8]
xor eax, ebp
cmp edi, 2
mov dword [esp + 0x88], eax
jae 0x43f7fc
lea esi, [esp + 0x68]
lea eax, [esp + 0x78]
movsd qword [esi], xmm0
mov ecx, esi
push eax
call 0x440012
xor eax, eax
test edi, edi
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], eax
je 0x43f9a7
xorps xmm0, xmm0
cvtsd2ss xmm0, qword [ebp + 8]
lea ecx, [esp + 0x48]
lea eax, [esp + 0x58]
movss dword [ecx], xmm0
push eax
push esi
call fcn.004401b6
jmp 0x43f9bf
jne 0x44000d
lea esi, [esp + 0x68]
lea edi, [esp + 0x78]
movsd qword [esi], xmm0
mov ecx, esi
push edi
call 0x440012
mov eax, dword [edi + 8]
mov ecx, 0xffffff84
mov edx, 0xffffffa0
sub ecx, eax
sub edx, eax
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
lea eax, [esp + 0x58]
push eax
push esi
push edx
push ecx
call fcn.0044c52c
add esp, 0x10
mov ecx, dword [esi + 4]
mov ebx, dword [edi + 4]
mov eax, ecx
mul ebx
mov dword [esp], eax
lea eax, [esp + 0x78]
mov edi, edx
mov esi, dword [eax]
mov eax, ecx
mul esi
mov dword [esp + 4], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x10], edx
mov ecx, dword [eax]
mov eax, ecx
mul ebx
mov dword [esp + 0xc], eax
mov eax, ecx
mov ebx, edx
xor ecx, ecx
mul esi
lea eax, [esp + 0x78]
add edx, dword [esp + 0xc]
mov esi, dword [eax + 8]
mov eax, 0
setb cl
add edx, dword [esp + 4]
adc ecx, eax
lea eax, [esp + 0x68]
add esi, dword [eax + 8]
imul eax, esi, 0x4d1
add ebx, dword [esp]
mov dword [esp + 4], eax
mov eax, 0
adc edi, eax
add ebx, dword [esp + 0x10]
adc edi, eax
xor eax, eax
add edx, 0x80000000
adc ebx, ecx
mov ecx, 0xffffffc0
adc edi, eax
sub ecx, esi
xor eax, eax
mov edx, ebx
mov dword [esp + 0xc], ebx
xor esi, esi
mov ebx, edi
inc eax
shrd edx, edi, cl
mov dword [esp + 0x24], ecx
shld esi, eax, cl
shl eax, cl
shr ebx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, eax
cmovne eax, ecx
mov ecx, dword [esp + 4]
cmove ebx, edx
mov dword [esp + 0x2c], eax
add eax, 0xffffffff
mov dword [esp + 0x30], esi
mov edx, ebx
adc esi, 0xffffffff
and dword [esp + 0xc], eax
mov dword [esp + 0x18], eax
and edi, esi
mov dword [esp + 0x20], esi
add ecx, 0x26d51
mov dword [esp + 8], edi
sar ecx, 0xc
cmp dword [ecx*4 + 0x4e71d4], ebx
lea eax, [ecx + 1]
mov ebx, dword [ebp + 0x20]
cmova eax, ecx
mov ecx, ebx
xor ebx, ebx
mov esi, dword [eax*4 + 0x4e71d0]
test eax, eax
mov dword [esp + 0x48], eax
mov dword [ecx], ebx
jle 0x43fe42
mov ecx, dword [ebp + 0x14]
dec eax
mov dword [esp + 4], 0
mov dword [esp], eax
dec ecx
mov eax, edx
xor edx, edx
mov ebx, dword [ebp + 0x18]
div esi
mov edi, dword [esp + 4]
add al, 0x30
mov byte [ebx + edi], al
mov eax, dword [ebp + 0x20]
mov ebx, dword [eax]
inc ebx
test ecx, ecx
mov dword [eax], ebx
mov eax, ecx
je 0x43fe55
mov eax, dword [esp]
test eax, eax
jle 0x43fed6
mov dword [esp + 4], ebx
mov ebx, eax
mov edi, edx
mov eax, esi
mov edx, 0xcccccccd
dec ecx
mul edx
dec ebx
mov esi, edx
mov edx, edi
mov dword [esp], ebx
shr esi, 3
jmp 0x43f959
movsd xmm0, qword [ebp + 8]
lea ecx, [esp + 0x48]
lea eax, [esp + 0x58]
movsd qword [ecx], xmm0
push eax
push esi
call fcn.0044008e
lea ecx, [esp + 0x48]
xor eax, eax
mov edx, 0xffffffa0
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x80]
mov edi, ecx
mov ecx, 0xffffff84
sub ecx, eax
sub edx, eax
lea eax, [esp + 0x44]
push eax
push edi
push edx
push ecx
call fcn.0044c52c
add esp, 0x10
mov ebx, dword [edi + 4]
mov ecx, dword [esp + 0x7c]
mov edi, dword [edi]
mov eax, ebx
mov dword [esp + 8], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 4], edi
mul ecx
mov ecx, edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, ebx
mov dword [esp + 0x14], edx
mul edx
mov dword [esp], eax
mov eax, edi
mov dword [esp + 0xc], edx
mul dword [esp + 8]
mov ebx, eax
mov eax, edi
mov esi, edx
mov edi, 0
mul dword [esp + 0x14]
xor eax, eax
add edx, ebx
lea ebx, [esp + 0x48]
setb al
add edx, dword [esp]
adc eax, edi
mov edi, dword [esp + 0x80]
add edi, dword [ebx + 8]
mov dword [esp + 8], edi
imul edi, edi, 0x4d1
add esi, dword [esp + 0x10]
mov dword [esp], edi
mov edi, 0
adc ecx, edi
add esi, dword [esp + 0xc]
adc ecx, edi
mov edi, 0x80000000
xor ebx, ebx
add edx, edi
mov edi, dword [esp + 0x20]
adc esi, eax
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x6c]
adc ecx, ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 4]
mov eax, esi
mul edi
mov dword [esp + 0xc], eax
mov eax, ebx
mov dword [esp + 0x10], edx
mul edi
mov dword [esp + 0x18], eax
mov eax, esi
mov dword [esp + 0x14], edx
mul ecx
mov esi, eax
mov eax, ebx
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x58]
mul ecx
mov ecx, 0
xor eax, eax
add edx, esi
mov esi, dword [esp + 0x5c]
setb al
add edx, dword [esp + 0x18]
adc eax, ecx
mov dword [esp + 0x30], edx
mov ecx, edi
mov dword [esp + 0x18], eax
mov eax, esi
mul edi
mov dword [esp + 0x2c], eax
mov eax, ebx
mov edi, edx
mul ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov eax, esi
mov dword [esp + 0x20], edx
mul ecx
mov dword [esp + 0x28], eax
mov eax, ebx
mov esi, edx
mov ebx, 0
mul ecx
mov ecx, 0x80000000
xor eax, eax
add edx, dword [esp + 0x28]
setb al
add edx, dword [esp + 0x1c]
adc eax, ebx
add esi, dword [esp + 0x2c]
adc edi, ebx
add esi, dword [esp + 0x20]
adc edi, ebx
add edx, ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
adc esi, eax
adc edi, ebx
xor eax, eax
inc eax
add esi, eax
mov ebx, eax
mov eax, 0
adc edi, eax
add edx, dword [esp + 0xc]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], edi
adc ecx, eax
add edx, dword [esp + 0x14]
adc ecx, eax
mov eax, 0x80000000
xor esi, esi
add dword [esp + 0x30], eax
adc edx, dword [esp + 0x18]
adc ecx, esi
mov esi, dword [esp + 0x1c]
mov eax, edx
mov edx, ecx
xor ecx, ecx
sub esi, eax
mov eax, edi
sbb eax, edx
add esi, ebx
mov edx, ebx
adc eax, ecx
mov ecx, 0xffffffc0
mov dword [esp + 0xc], esi
xor ebx, ebx
mov esi, edi
sub ecx, dword [esp + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
shld ebx, edx, cl
shl edx, cl
shrd eax, edi, cl
shr esi, cl
test cl, 0x20
mov dword [esp + 0x20], ecx
mov ecx, edi
mov edi, dword [esp]
cmove esi, eax
mov eax, 0
cmovne ebx, edx
cmovne edx, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 8], esi
mov eax, edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x1c]
add eax, 0xffffffff
adc ebx, 0xffffffff
add edi, 0x26d51
mov dword [esp + 0x30], eax
sar edi, 0xc
and ecx, ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [ebp + 0x20]
and edx, eax
cmp dword [edi*4 + 0x4e71d4], esi
lea eax, [edi + 1]
cmova eax, edi
xor esi, esi
mov edi, eax
test eax, eax
mov dword [ebx], esi
jle 0x43fc96
mov ebx, dword [edi*4 + 0x4e71d0]
dec edi
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov dword [esp + 0x14], ebx
div ebx
mov ebx, dword [ebp + 0x20]
add al, 0x30
mov edi, edx
mov dword [esp + 8], edx
mov byte [ecx + esi], al
mov ecx, dword [esp + 0x20]
xor eax, eax
mov esi, dword [ebx]
shld eax, edx, cl
shl edi, cl
inc esi
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
mov ecx, dword [esp + 0x10]
mov dword [ebx], esi
add edi, dword [esp]
adc eax, dword [esp + 4]
cmp edi, dword [esp + 0xc]
mov edx, eax
sbb edx, ecx
jb 0x43fc9a
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x43fd0f
mov eax, dword [esp + 0x14]
mov edx, 0xcccccccd
dec ecx
mov dword [esp + 0x18], ecx
mul edx
mov ebx, edx
shr ebx, 3
jmp 0x43fc23
xor esi, esi
jmp 0x43fd18
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
xor edx, edx
shld edx, ebx, cl
shl ebx, cl
test cl, 0x20
mov ecx, 0
cmovne edx, ebx
cmovne ebx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 4], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x14], ebx
mov ebx, 0
sub ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
sbb ecx, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x18]
push ebx
push 1
push dword [esp + 0xc]
push dword [esp + 0x20]
push eax
push edi
mov edi, ecx
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x48]
push dword [esp + 0x40]
push esi
call fcn.004402a7
add esp, 0x2c
jmp 0x43fe2d
mov ecx, dword [esp + 4]
mov edx, dword [esp]
xor edi, edi
xor eax, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0
inc eax
mov dword [esp + 8], eax
mov eax, edx
mov edx, 0xa
lea edi, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
mul edx
lea ebx, [edx + edi*2]
mov edi, eax
mov dword [esp], eax
mov eax, dword [esp + 8]
mov edx, 0xa
mov dword [esp + 4], ebx
shrd edi, ebx, cl
shr ebx, cl
mul edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], edx
mov edx, 0xa
mul edx
test cl, 0x20
mov ecx, dword [esp + 0x24]
cmove ebx, edi
mov edi, dword [ebp + 0x18]
dec dword [esp + 0x18]
mov dword [esp + 0xc], eax
add bl, 0x30
mov byte [edi + esi], bl
mov esi, dword [esp + 0x14]
lea esi, [esi + esi*4]
lea ecx, [ecx + esi*2]
mov esi, dword [ebp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [esi]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*2]
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov ebx, edi
mov dword [esp + 0x10], edi
inc esi
and ecx, dword [esp + 0x2c]
and edx, dword [esp + 0x30]
cmp edx, eax
mov eax, ecx
sbb eax, edi
mov eax, dword [ebp + 0x20]
mov dword [eax], esi
jae 0x43fd2b
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 8]
mov dword [esp + 4], ecx
mov dword [esp], edx
sub edi, dword [esp + 0x34]
mov ecx, ebx
sbb eax, dword [esp + 0x38]
imul ecx, eax
mov eax, ebx
mul edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
add ecx, edx
mov edx, dword [ebp + 0x1c]
imul edi, eax
add edi, ecx
mov ecx, dword [ebp + 0x18]
push eax
push ebx
push dword [esp + 0x48]
push dword [esp + 0x48]
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x28]
push dword [esp + 0x28]
push edi
push dword [esp + 0x48]
push esi
call fcn.004402a7
add esp, 0x2c
mov edi, dword [ebp + 0x18]
mov ecx, dword [esp + 0x18]
test al, al
je 0x43ffcc
sub ecx, dword [esp + 0x44]
jmp 0x43ffb8
mov edi, edx
mov edx, dword [ebp + 0x14]
mov ecx, edx
test edx, edx
mov edx, edi
jne 0x43feda
jmp 0x43fe5c
mov eax, dword [esp]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x24]
mov edi, esi
mov eax, 0
shl edi, cl
test cl, 0x20
mov dword [esp], edi
cmovne edi, eax
mov eax, edx
mov dword [esp + 4], edi
xor edi, edi
shld edi, esi, cl
test cl, 0x20
cmovne edi, dword [esp]
shl eax, cl
test cl, 0x20
mov esi, eax
mov dword [esp], edi
mov edi, 0
cmovne esi, edi
mov edi, ebx
xor ebx, ebx
shld ebx, edx, cl
test cl, 0x20
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
cmovne ebx, eax
add esi, dword [esp + 0xc]
lea eax, [esp + 0x48]
adc ebx, dword [esp + 8]
push eax
mov eax, 0
push eax
push 1
push dword [esp + 0xc]
push dword [esp + 0x14]
push ebx
push esi
push edi
call fcn.0044042c
add esp, 0x20
jmp 0x43ffa9
mov dword [esp + 0x48], eax
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov dword [esp], eax
xor eax, eax
cmp esi, 2
mov edx, edi
sbb edx, 0
jb 0x43ffa9
test ecx, ecx
jle 0x43ffa9
dec ecx
xor edx, edx
mov dword [esp + 0x10], 0
inc edx
mov dword [esp + 0x14], ecx
mov eax, esi
mov ecx, 0xa
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
lea ebx, [edi + edi*4]
mul ecx
mov ecx, dword [esp + 0x24]
mov esi, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
lea edi, [edx + ebx*2]
mov edx, 0xa
mov ebx, edi
shrd esi, edi, cl
shr ebx, cl
mul edx
test cl, 0x20
mov ecx, dword [esp + 4]
cmove ebx, esi
mov esi, dword [ebp + 0x18]
mov dword [esp + 8], edx
mov edx, dword [ebp + 0x20]
and edi, dword [esp + 0x20]
dec dword [esp]
add bl, 0x30
mov byte [esi + ecx], bl
mov ecx, dword [esp + 0x10]
mov ebx, dword [edx]
lea esi, [ecx + ecx*4]
mov ecx, dword [esp + 8]
inc ebx
mov dword [edx], ebx
mov edx, eax
lea ecx, [ecx + esi*2]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
and esi, dword [esp + 0x18]
test ecx, ecx
lea ecx, [ecx - 1]
jle 0x43ff9b
mov eax, dword [esp + 0x10]
cmp edx, esi
sbb eax, edi
jb 0x43ff09
mov eax, dword [esp]
cmp ecx, 0xffffffff
mov dword [esp + 0x48], eax
je 0x43ffe6
xor eax, eax
test al, al
je 0x43ffcc
mov ecx, dword [esp + 0x48]
mov edi, dword [ebp + 0x18]
sub ecx, dword [esp + 0x58]
mov ebx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
add ecx, dword [ebx]
mov dword [eax], ecx
mov eax, dword [ebx]
mov bl, 1
mov byte [edi + eax], 0
jmp 0x43ffce
xor ebx, ebx
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.0049a81b
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 8], edx
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x14]
push dword [esp + 0x10]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push edi
push esi
push ebx
jmp 0x43fec9
call fcn.00429bae
push ebp
mov ebp, esp
push edi
push esi
mov edx, dword [ecx + 4]
xor esi, esi
mov edi, 0x100000
mov eax, dword [ebp + 8]
mov ecx, dword [ecx]
add esi, 0xffffffff
adc edi, 0xffffffff
and edi, edx
mov esi, edi
or esi, 0x100000
test edx, 0x7ff00000
cmove esi, edi
mov edi, 0x100000
je 0x440057
shr edx, 0x14
and edx, 0x7ff
add edx, 0xfffffbcd
jmp 0x44005c
mov edx, 0xfffffbce
test esi, edi
je 0x440064
mov edi, esi
jmp 0x440075
mov edi, esi
shld edi, ecx, 1
add ecx, ecx
dec edx
bt esi, 0x13
mov esi, edi
jae 0x440066
shld edi, ecx, 0xb
shl ecx, 0xb
add edx, 0xfffffff5
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], edx
pop esi
pop edi
pop ebp
ret 4