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

Disassembly:
sub esp, 0xb8c
push ebx
push ebp
mov ebp, ecx
mov ecx, dword [ebp]
xor ebx, ebx
cmp ecx, ebx
push esi
push edi
je 0x43ccbb
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [ebp + 4], ebx
mov dword [ebp], ebx
mov dword [ebp + 0xbc], ebx
mov dword [ebp + 0xb8], ebx
je 0x43cecb
mov eax, dword [0x627834]
test ah, 8
mov edi, dword [esp + 0xbb0]
je 0x43ccec
cmp edi, ebx
je 0x43cecb
mov esi, dword [esp + 0xbac]
cmp esi, ebx
je 0x43cecb
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x108]
mov ebx, eax
test bl, 2
jne 0x43cd1d
cmp dword [esp + 0xba4], 0xffffffff
je 0x43cecb
mov eax, dword [esp + 0xba4]
test eax, eax
je 0x43cecb
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x48]
test ecx, ecx
mov dword [ebp + 0xa8], ecx
jne 0x43cd48
mov dword [ebp + 0xa8], 1
mov edx, dword [ebp + 0xa8]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], 0
fild qword [esp + 0x1c]
fmul qword [0x5b0148]
fadd qword [0x5abe78]
fstp qword [esp + 0x1c]
call dword [eax + 8]
fadd qword [esp + 0x1c]
mov ecx, dword [ebp + 8]
fadd qword [0x5abe78]
fstp qword [ebp + 0xb0]
mov al, byte [ecx + 0x110]
test al, al
je 0x43cdae
fld qword [0x5afb20]
mov dword [ebp + 0xb0], 0xffffffff
mov dword [ebp + 0xb4], 0x7fefffff
jmp 0x43cdb2
fld qword [esp + 0x1c]
mov eax, dword [ebp + 0xa8]
cmp esi, eax
jae 0x43cdde
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
fild qword [esp + 0x1c]
fadd st(1)
fadd qword [0x5abe78]
fstp qword [ebp + 0xb0]
fstp st(0)
jmp 0x43cdfb
fstp st(0)
fld qword [ebp + 0xb0]
fcomp qword [0x5abe58]
fnstsw ax
test ah, 0x41
je 0x43cdfb
test edi, edi
je 0x43cecb
mov eax, dword [esp + 0xba4]
mov edx, dword [ecx + 0x94]
and eax, edx
mov dword [esp + 0xba4], eax
je 0x43d218
mov edx, dword [ebp + 0xc0]
mov esi, dword [esp + 0xba8]
mov eax, dword [esp + 0xba0]
or edx, esi
mov dword [esp + 0xfc], edx
mov edx, dword [ebp + 0xc4]
mov dword [esp + 0x68], eax
mov dword [esp + 0x100], edx
mov dword [esp + 0x108], ebx
mov edx, dword [ecx + 0x194]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x104], edx
xor edi, edi
lea ecx, [esp + 0x48]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x10c], edi
mov dword [eax + 0x7fc], 1
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0x578]
push edi
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.004965b0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x60]
lea eax, [eax + eax*2]
shl eax, 2
push eax
lea ecx, [esp + 0x58]
push ecx
call fcn.004caf50
add esp, 0x14
cmp eax, edi
mov dword [esp + 0x70], eax
jne 0x43ceda
mov edx, dword [esp + 0x68]
lea eax, [esp + 0x48]
push edi
push eax
mov dword [edx + 0x7fc], edi
call fcn.004cb030
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb8c
ret 0x14
mov ecx, dword [0x631650]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax + 8]
lea edx, [esp + 0x48]
mov dword [eax + 8], edx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp edx, edi
mov dword [esp + 0x18], ecx
jbe 0x43cff5
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xba4]
mov edx, 1
shl edx, cl
test edi, edx
je 0x43cfd7
mov edi, dword [eax + 0x98]
mov edx, dword [esp + 0x14]
mov al, byte [edi + edx + 4]
add edi, edx
test al, 0x80
jne 0x43cfd7
mov eax, dword [esp + 0x10c]
mov dword [esp + eax*4 + 0x78], esi
mov eax, dword [edi + 8]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x10], ebx
jbe 0x43cfc2
mov cx, word [esp + 0x10c]
mov dx, word [esp + 0x10]
mov word [esi], cx
mov word [esi + 2], dx
mov eax, dword [edi + 0x18]
mov cx, word [ebx + eax + 0xc]
mov word [esi + 4], cx
mov edx, dword [edi + 0x18]
mov eax, dword [ebx + edx]
mov dword [esi + 8], eax
mov ecx, dword [edi + 0x18]
mov dl, byte [ebx + ecx + 0x16]
mov ecx, eax
mov byte [esi + 6], dl
mov eax, dword [ecx]
call dword [eax + 0x4c]
cmp eax, 0xfc
jne 0x43cfa8
add word [esi + 4], 2
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 8]
inc eax
add ebx, 0x18
add esi, 0xc
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x43cf62
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10c]
mov dword [esp + edx*4 + 0x118], ecx
inc dword [esp + 0x10c]
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x5c]
inc ecx
add edi, 0x28
cmp ecx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
jb 0x43cf1c
mov eax, dword [ebp + 4]
push eax
lea ecx, [esp + 0x6c]
push ecx
mov dword [esp + 0x7c], esi
call fcn.0043d250
mov ebx, eax
xor esi, esi
add esp, 8
cmp ebx, esi
mov dword [esp + 0x2c], ebx
je 0x43d1f2
mov eax, dword [ebx]
cmp eax, esi
jne 0x43d03f
mov dword [ebp + 0xb0], 0xffe00000
mov dword [ebp + 0xa8], esi
mov dword [ebp + 0xb4], 0x41efffff
jmp 0x43d1f2
cmp eax, 3
je 0x43d04d
cmp eax, 4
jne 0x43d1f2
mov edx, dword [esp + 0x10c]
add ebx, 4
lea ecx, [ebx + edx*4]
xor eax, eax
cmp ebx, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], ecx
je 0x43d1f2
lea ecx, [esp + 0x118]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx]
test ecx, ecx
je 0x43d181
cmp dword [ecx + 0x34], 2
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
je 0x43d098
mov al, byte [ecx + 2]
test al, al
je 0x43d0a7
mov ecx, esi
mov eax, 1
shl eax, cl
or dword [ebp + 0xbc], eax
mov ecx, dword [ebx]
mov edx, dword [esp + 0x18]
push ecx
push edx
lea eax, [esp + 0x70]
push eax
call fcn.0043f970
mov edi, eax
add esp, 0xc
cmp edi, 0xffffffff
je 0x43d12b
cmp edi, 2
jbe 0x43d12b
mov eax, dword [ebp + 8]
mov ecx, esi
mov edx, 1
shl edx, cl
test dword [eax + 0x90], edx
je 0x43d12b
mov ecx, dword [eax]
mov eax, dword [ecx]
push esi
call dword [eax + 0x10c]
test al, 0x40
je 0x43d12b
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 0x98]
lea edx, [esi + esi*4]
mov esi, dword [eax + edx*8]
add esi, dword [ecx + 0x74]
mov eax, dword [ecx + 0x78]
shr eax, 1
xor edx, edx
div esi
inc eax
lea ecx, [eax + edi - 1]
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov dword [esp + 0x44], ecx
fild qword [esp + 0x40]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
fild qword [esp + 0x30]
fdivp st(1)
jmp 0x43d157
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov edx, dword [esp + 0x114]
mov eax, dword [ecx]
push edi
push edx
push esi
call dword [eax + 0xc]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], 0
fild qword [esp + 0x38]
fmul qword [0x5b0148]
faddp st(1)
fcom qword [ebp + 0xb0]
fnstsw ax
test ah, 1
je 0x43d17b
cmp edi, 0xffffffff
je 0x43d17b
fstp qword [ebp + 0xb0]
mov dword [ebp + 0xa8], edi
mov dword [esp + 0x10], ebx
jmp 0x43d17d
fstp st(0)
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
add ebx, 4
inc esi
add edx, 4
cmp ebx, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
jne 0x43d07b
xor esi, esi
cmp eax, esi
je 0x43d1f2
cmp dword [ebp + 0xa8], esi
je 0x43d1f2
mov ecx, dword [eax]
sub eax, dword [esp + 0x2c]
sub eax, 4
push ecx
sar eax, 2
push eax
lea edx, [esp + 0x70]
push edx
call fcn.00440170
add esp, 0xc
cmp eax, esi
mov dword [ebp], eax
je 0x43d1f2
mov ecx, dword [ebp + 0xa8]
mov dword [eax + 0x6c], ecx
mov edx, dword [ebp]
mov eax, dword [ebp + 0xb0]
mov dword [edx + 0x70], eax
mov ecx, dword [ebp + 0xb4]
mov dword [edx + 0x74], ecx
lea edx, [esp + 0x48]
push esi
push edx
call fcn.004cb030
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
mov dword [ecx + 8], eax
add esp, 8
mov dword [edx + 0x7fc], esi
mov eax, dword [ebp + 0xa8]
test eax, eax
je 0x43d239
mov ecx, dword [ebp]
pop edi
pop esi
xor eax, eax
test ecx, ecx
pop ebp
setne al
pop ebx
add esp, 0xb8c
ret 0x14
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xb8c
ret 0x14