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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x47fc68
mov eax, dword fs:[0]
push eax
sub esp, 0x74
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48a120]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov dword [esp + 0x20], edx
mov edi, ecx
mov dword [esp + 0x28], edi
cmp dword [0x4912f0], 0
jne 0x43ca82
call fcn.00430000
mov dword [0x4912f0], 0x4257c0
mov ebx, 2
mov dword [esp + 0x48], 0x408d10
mov ecx, ebx
mov dword [esp + 0x50], ebx
call fcn.00437f20
lea ecx, [ebx + 6]
call fcn.004208d0
mov ebp, eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], ebp
mov dword [ebp], 1
mov dword [ebp + 4], 0
mov dword [esp + 0x90], 0
mov esi, dword [edi + 8]
test esi, esi
je 0x43cb15
mov ecx, dword [edi + 0xc]
mov al, byte [ecx]
and al, 1
je 0x43cb15
test esi, esi
je 0x43caee
lea eax, [esi - 1]
lea eax, [ecx + eax*4]
cmp dword [eax], 0
jne 0x43caf8
sub eax, 4
dec esi
jne 0x43cae3
mov dword [esp + 0x1c], 0
jmp 0x43cb1d
test esi, esi
je 0x43caee
lea ecx, [ecx + esi*4]
add ecx, 0xfffffffc
call fcn.0041ed60
lea ecx, [esi - 1]
shl ecx, 5
add eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x43cb1d
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 8]
mov ecx, dword [eax + 0xc]
test esi, esi
je 0x43cb3c
lea eax, [esi - 1]
lea eax, [ecx + eax*4]
cmp dword [eax], 0
jne 0x43cb55
sub eax, 4
dec esi
jne 0x43cb31
xor edi, edi
mov eax, dword [esp + 0x1c]
shr edi, 1
mov dword [esp + 0x38], edi
mov dword [esp + 0x24], eax
cmp eax, 5
jae 0x43cb6e
xor eax, eax
jmp 0x43cbce
test esi, esi
je 0x43cb3c
lea ecx, [ecx + esi*4]
add ecx, 0xfffffffc
call fcn.0041ed60
lea edi, [esi - 1]
shl edi, 5
add edi, eax
jmp 0x43cb3e
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x40caa0]
movsd qword [esp + 0x2c], xmm0
call fcn.0047b480
movsd xmm1, qword [0x40ca78]
call fcn.0047b710
movsd xmm1, qword [0x40ca70]
movsd qword [esp + 0x3c], xmm0
movsd xmm0, qword [esp + 0x2c]
call fcn.0047b710
mulsd xmm0, qword [0x40ca80]
mulsd xmm0, qword [esp + 0x3c]
subsd xmm0, qword [0x40ca88]
call fcn.0047b291
cmp eax, edi
jae 0x43cf2b
mov esi, dword [esp + 0x28]
mov ecx, esi
call fcn.004240e0
test al, al
lea eax, [esp + 0x48]
je 0x43cd3a
push eax
push eax
lea eax, [esp + 0x78]
push eax
call fcn.00424550
add esp, 0xc
push dword [esp + 0x20]
mov byte [esp + 0x94], 1
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00424610
add esp, 0xc
mov esi, eax
lea eax, [esp + 0x48]
mov byte [esp + 0x90], 2
cmp eax, esi
je 0x43ccd8
mov edx, dword [esi + 8]
cmp ebx, edx
jne 0x43cc40
mov ecx, dword [esi + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x43ccb8
mov eax, dword [esi + 0xc]
test edx, edx
je 0x43cc5b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
lea ecx, [ecx]
cmp dword [eax], 0
jne 0x43cc5b
sub eax, 4
dec edx
jne 0x43cc50
cmp edx, 8
ja 0x43cc69
mov edx, dword [edx*4 + 0x408d20]
jmp 0x43cca6
cmp edx, 0x10
ja 0x43cc75
mov edx, 0x10
jmp 0x43cca6
cmp edx, 0x20
ja 0x43cc81
mov edx, 0x20
jmp 0x43cca6
cmp edx, 0x40
ja 0x43cc8d
mov edx, 0x40
jmp 0x43cca6
lea eax, [edx - 1]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
call fcn.0041ed60
mov edx, 1
mov ecx, eax
shl edx, cl
push edx
lea ecx, [esp + 0x50]
call fcn.00437010
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esi + 0xc]
cmp ebp, ecx
je 0x43ccd1
lea eax, [ebx*4]
push eax
push ecx
push ebp
call fcn.00468f60
add esp, 0xc
mov eax, dword [esi + 0x10]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x64]
xor eax, eax
mov esi, dword [esp + 0x68]
mov ecx, edx
mov edi, esi
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x43ccfc
call fcn.0046994f
jmp 0x43cd01
call fcn.00469885
mov byte [esp + 0x94], 0
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
xor eax, eax
add esp, 4
mov edi, esi
mov ecx, edx
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x43ce79
call fcn.0046994f
jmp 0x43ce7e
push esi
push eax
lea eax, [esp + 0x64]
push eax
call fcn.004245b0
add esp, 0xc
push dword [esp + 0x20]
mov byte [esp + 0x94], 3
push eax
lea eax, [esp + 0x78]
push eax
call fcn.00424610
add esp, 0xc
mov esi, eax
lea eax, [esp + 0x48]
mov byte [esp + 0x90], 4
cmp eax, esi
je 0x43ce28
mov edx, dword [esi + 8]
cmp ebx, edx
jne 0x43cd8d
mov ecx, dword [esi + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x43ce08
mov eax, dword [esi + 0xc]
test edx, edx
je 0x43cdab
lea eax, [eax + edx*4]
add eax, 0xfffffffc
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x43cdab
sub eax, 4
dec edx
jne 0x43cda0
cmp edx, 8
ja 0x43cdb9
mov edx, dword [edx*4 + 0x408d20]
jmp 0x43cdf6
cmp edx, 0x10
ja 0x43cdc5
mov edx, 0x10
jmp 0x43cdf6
cmp edx, 0x20
ja 0x43cdd1
mov edx, 0x20
jmp 0x43cdf6
cmp edx, 0x40
ja 0x43cddd
mov edx, 0x40
jmp 0x43cdf6
lea eax, [edx - 1]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
call fcn.0041ed60
mov edx, 1
mov ecx, eax
shl edx, cl
push edx
lea ecx, [esp + 0x50]
call fcn.00437010
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esi + 0xc]
cmp ebp, ecx
je 0x43ce21
lea eax, [ebx*4]
push eax
push ecx
push ebp
call fcn.00468f60
add esp, 0xc
mov eax, dword [esi + 0x10]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x78]
xor eax, eax
mov esi, dword [esp + 0x7c]
mov ecx, edx
mov edi, esi
rep stosd dword es:[edi], eax
lea eax, [edx*4]
push esi
cmp eax, 0x10
jb 0x43ce5f
call fcn.0046994f
mov byte [esp + 0x94], 0
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
jmp 0x43cd14
call fcn.00469885
mov byte [esp + 0x94], 0
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
jmp 0x43cd14
call fcn.00469885
add esp, 4
cmp dword [0x4912f0], 0
jne 0x43ce99
call fcn.00430000
mov dword [0x4912f0], 0x4257c0
mov ecx, 2
mov dword [esp + 0x5c], 0x408d10
mov dword [esp + 0x64], 2
call fcn.00437f20
mov ecx, 8
call fcn.004208d0
cmp dword [esp + 0x58], 1
mov esi, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0
mov dword [esi], 1
mov dword [esi + 4], 0
je 0x43ceef
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x4c]
call fcn.00435220
jmp 0x43cef2
or eax, 0xffffffff
test eax, eax
mov edi, esi
mov ecx, 2
sete bl
xor eax, eax
rep stosd dword es:[edi], eax
push esi
call fcn.00469885
add esp, 4
test bl, bl
mov ebx, dword [esp + 0x50]
jne 0x43cf24
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
jmp 0x43cb48
mov byte [esp + 0x1b], 0
jmp 0x43cf30
mov byte [esp + 0x1b], 1
xor eax, eax
mov edi, ebp
mov ecx, ebx
rep stosd dword es:[edi], eax
lea ecx, [ebx*4]
push ebp
cmp ecx, 0x10
jb 0x43cf4c
call fcn.0046994f
jmp 0x43cf51
call fcn.00469885
mov al, byte [esp + 0x1f]
add esp, 4
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret