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

Disassembly:
push ecx
push ebp
mov ebp, dword [0x14cc4b0]
mov eax, dword [ebp + 4]
test eax, eax
je 0x411edd
mov eax, dword [0x14cc454]
test eax, eax
jne 0x411dd3
fld dword [0x1520ec0]
fmul dword [0x4c4a54]
fadd dword [0x14c7854]
fst dword [0x14c7854]
fcomp dword [0x4c49ac]
fnstsw ax
test ah, 1
jne 0x411dd3
fld dword [0x14c7854]
fsub dword [0x4c49ac]
fstp dword [0x14c7854]
mov eax, dword [0x14c8f7c]
mov ecx, dword [0x14c8f88]
mov edx, dword [eax + 4]
mov eax, dword [edx + 8]
push ebx
push esi
mov esi, dword [0x14c7854]
push edi
push esi
inc ecx
call fcn.004118c0
fld dword [0x4c49ac]
fsub dword [0x14c7854]
mov eax, dword [0x14c903c]
mov ecx, dword [0x14c8f88]
mov edx, dword [eax + 4]
mov eax, dword [edx + 8]
fstp dword [esp + 0x14]
mov edi, dword [esp + 0x14]
push edi
inc ecx
call fcn.004118c0
mov ebx, dword [0x14ca5dc]
add esp, 8
cmp ebx, 3
jne 0x411e61
mov eax, dword [0x14c90fc]
mov ecx, dword [0x14c9108]
mov edx, dword [eax + 4]
mov eax, dword [edx + 8]
push esi
inc ecx
call fcn.004118c0
mov eax, dword [0x14c91bc]
mov ecx, dword [0x14c91c8]
mov edx, dword [eax + 4]
mov eax, dword [edx + 8]
push edi
inc ecx
call fcn.004118c0
add esp, 8
mov eax, dword [0x14c8f7c]
mov eax, dword [eax + 4]
mov esi, dword [eax + 4]
mov ecx, 0x80000000
or esi, ecx
mov dword [eax + 4], esi
mov edx, dword [0x14c903c]
mov eax, dword [edx + 4]
mov edx, dword [eax + 4]
or edx, ecx
cmp ebx, 3
mov dword [eax + 4], edx
jne 0x411ea3
mov eax, dword [0x14c90fc]
mov eax, dword [eax + 4]
or dword [eax + 4], ecx
mov edx, dword [0x14c91bc]
mov eax, dword [edx + 4]
or dword [eax + 4], ecx
mov eax, dword [ebp + 4]
xor esi, esi
test eax, eax
jle 0x411eda
xor edi, edi
mov edi, edi
mov eax, dword [0x14c8ec4]
lea ecx, [edi + eax]
push ecx
push 0x14c8ea0
call fcn.00482b30
mov edx, dword [0x14cc4b0]
mov eax, dword [edx + 4]
add esp, 8
inc esi
add edi, 0x118
cmp esi, eax
jl 0x411eb0
pop edi
pop esi
pop ebx
pop ebp
pop ecx
ret
sub esp, 0x84
mov ecx, dword [0x14d13d8]
push ebx
push ebp
push esi
xor esi, esi
push edi
push esi
add ecx, 0xa4
mov dword [esp + 0x28], esi
call fcn.0040ed50
mov eax, dword [eax]
and eax, 0xff
add esp, 4
test al, 8
je 0x43e098
mov dword [esp + 0x24], 1
test al, 0x10
je 0x43e0a1
or dword [esp + 0x24], 2
test al, 0x40
je 0x43e0aa
or dword [esp + 0x24], 4
fld dword [0x150d32c]
mov eax, dword [0x14c8d60]
fadd dword [0x4c49ac]
mov ecx, dword [0x14c8d64]
mov edx, dword [0x14c8d68]
mov dword [esp + 0x28], eax
fst dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
fdiv dword [0x14c8dd4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edx
fld dword [0x4c4a4c]
fmul st(1)
fst dword [esp + 0x14]
fld dword [esp + 0x10]
fdiv dword [0x14c8de8]
fst dword [esp + 0x10]
fmul dword [0x4c4a4c]
fld st(0)
fld dword [0x14c8d9c]
fmul dword [0x150d32c]
fstp dword [esp + 0x1c]
fld dword [0x14c8d98]
fmul st(1)
fld dword [0x14c8d94]
fmul dword [esp + 0x14]
faddp st(1)
fadd dword [esp + 0x1c]
fadd dword [0x14c8d60]
fstp dword [esp + 0x34]
fld dword [0x14c8dac]
fmul dword [0x150d32c]
fstp dword [esp + 0x18]
fld dword [0x14c8da4]
fmul dword [esp + 0x14]
fld dword [0x14c8da8]
fmul st(2)
faddp st(1)
fadd dword [esp + 0x18]
fadd dword [0x14c8d64]
fstp dword [esp + 0x38]
fld dword [0x14c8dbc]
fmul dword [0x150d32c]
fstp dword [esp + 0x20]
fld dword [0x14c8db4]
fmul dword [esp + 0x14]
fld dword [0x14c8db8]
fmul st(2)
faddp st(1)
fadd dword [esp + 0x20]
fadd dword [0x14c8d68]
fstp dword [esp + 0x3c]
fstp st(0)
fld dword [esp + 0x10]
fld dword [0x14c8d98]
fmul st(1)
fld dword [0x14c8d94]
fmul st(4)
faddp st(1)
fadd dword [esp + 0x1c]
fadd dword [0x14c8d60]
fstp dword [esp + 0x40]
fld dword [0x14c8da8]
fmul st(1)
fld dword [0x14c8da4]
fmul st(4)
faddp st(1)
fadd dword [esp + 0x18]
fadd dword [0x14c8d64]
fstp dword [esp + 0x44]
fld dword [0x14c8db8]
push esi
fmul st(1)
lea ecx, [esp + 0x2c]
fld dword [0x14c8db4]
fmul st(4)
faddp st(1)
fadd dword [esp + 0x24]
fadd dword [0x14c8d68]
fstp dword [esp + 0x4c]
fstp st(0)
fstp st(1)
fld st(1)
fstp dword [esp + 0x18]
fld dword [0x14c8d98]
fmul st(1)
fld dword [esp + 0x18]
fmul dword [0x14c8d94]
faddp st(1)
fadd dword [esp + 0x20]
fadd dword [0x14c8d60]
fstp dword [esp + 0x50]
fld dword [0x14c8da4]
fmul dword [esp + 0x18]
fld dword [0x14c8da8]
fmul st(2)
faddp st(1)
fadd dword [esp + 0x1c]
fadd dword [0x14c8d64]
fstp dword [esp + 0x54]
fld dword [0x14c8db4]
fmul dword [esp + 0x18]
fld dword [0x14c8db8]
fmul st(2)
faddp st(1)
fadd dword [esp + 0x24]
fadd dword [0x14c8d68]
fstp dword [esp + 0x58]
fstp st(0)
fld dword [esp + 0x14]
fld dword [0x14c8d98]
fmul st(1)
fld st(2)
fmul dword [0x14c8d94]
faddp st(1)
fadd dword [esp + 0x20]
fadd dword [0x14c8d60]
fstp dword [esp + 0x5c]
fld dword [0x14c8da4]
fmul st(2)
fld dword [0x14c8da8]
fmul st(2)
faddp st(1)
fadd dword [esp + 0x1c]
fadd dword [0x14c8d64]
fstp dword [esp + 0x60]
fld dword [0x14c8db4]
fmul st(2)
fld dword [0x14c8db8]
fmul st(2)
faddp st(1)
fadd dword [esp + 0x24]
fadd dword [0x14c8d68]
fstp dword [esp + 0x64]
fstp st(0)
fstp st(0)
call fcn.0040ed50
mov eax, dword [0x14c7704]
lea ecx, [eax*2 + 0x150fbc0]
push ecx
lea edx, [eax*2 + 0x150dba8]
push edx
lea ecx, [eax*2 + 0x150dba0]
lea ebx, [eax*2 + 0x150fbc8]
push ecx
lea eax, [esp + 0x44]
lea edx, [esp + 0x74]
call fcn.0043dc90
push 2
mov dword [0x14d1bd4], esi
call fcn.004847d0
call fcn.004847f0
push 1
push 2
call fcn.004847d0
push 0x1529f40
call fcn.0048b1b0
mov al, byte [0x14cc45c]
xor edx, edx
add esp, 0x20
test al, 0x10
mov dword [0x150b0a0], edx
mov dword [0x150d36c], esi
mov dword [0x150af40], esi
mov dword [0x150af3c], esi
mov dword [0x150af38], esi
mov word [0x150b0a4], dx
jne 0x43e95c
mov eax, dword [0x14cc4b0]
mov ecx, dword [eax + 0x64]
movzx ecx, word [ecx]
xor ebx, ebx
cmp ecx, ebx
mov dword [esp + 0x1c], ebx
jbe 0x43e5df
mov ebp, dword [0x14c7834]
mov eax, ecx
imul eax, eax, 0x1f4
lea edx, [eax + ebp + 0x1ec]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], ecx
jmp 0x43e3f0
mov edx, dword [esp + 0x10]
mov ecx, dword [0x14cc4b0]
mov eax, dword [esp + 0x14]
sub edx, 0x1f4
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 0x64]
mov ecx, dword [edx + 4]
sub eax, 0x1f4
movzx edx, word [ecx + eax + 0x1a6]
lea edi, [ecx + eax + 0x7c]
imul edx, edx, 0x1f4
mov cl, byte [edx + ebp + 0x1f0]
mov dword [esp + 0x14], eax
lea eax, [edx + ebp + 0x1f0]
and cl, 0xf7
mov byte [eax], cl
cmp dword [0x14d13d8], edi
je 0x43e5d5
mov eax, dword [esp + 0x10]
cmp byte [eax], 0xff
jne 0x43e47b
mov eax, dword [0x14cc494]
test eax, eax
je 0x43e5d5
mov eax, dword [0x14c954c]
cmp eax, 4
je 0x43e47b
cmp eax, 3
je 0x43e47b
cmp eax, 7
je 0x43e47b
cmp eax, 8
jne 0x43e5d5
mov eax, dword [edi + 0x58]
test eax, eax
je 0x43e5d5
mov eax, dword [esp + 0x1c]
mov edx, dword [0x14cc4b0]
mov dword [eax*4 + 0x150dbc0], edi
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x58]
movzx ecx, word [eax + 6]
mov eax, dword [edx + 0x44]
mov edx, dword [0x14c8e40]
shr ecx, 5
test dword [eax + ecx*4], edx
je 0x43e5d5
push 0
lea esi, [esp + 0x1c]
mov eax, edi
call fcn.0043acf0
add esp, 4
test eax, eax
je 0x43e5d5
mov eax, dword [edi + 0x58]
call fcn.0043dee0
test eax, eax
je 0x43e5d5
fld dword [esp + 0x18]
fcomp dword [0x4c4f3c]
fnstsw ax
test ah, 5
jnp 0x43e5d5
mov ecx, dword [0x150d36c]
cmp ecx, 0x78
jbe 0x43e515
fld dword [esp + 0x18]
fcomp dword [0x4c4b84]
fnstsw ax
test ah, 5
jnp 0x43e5d5
cmp ecx, 0xaa
jbe 0x43e532
fld dword [esp + 0x18]
fcomp dword [0x4c4db8]
fnstsw ax
test ah, 5
jnp 0x43e5d5
cmp ecx, 0xdc
jbe 0x43e54f
fld dword [esp + 0x18]
fcomp dword [0x4c4f38]
fnstsw ax
test ah, 5
jnp 0x43e5d5
movzx eax, word [edi + 0x12a]
fld dword [esp + 0x18]
imul eax, eax, 0x1f4
mov cl, byte [eax + ebp + 0x1f0]
lea eax, [eax + ebp + 0x1f0]
or cl, 8
mov byte [eax], cl
movzx eax, word [edi + 0x12a]
lea ecx, [eax + eax*2]
inc ebx
fstp dword [ecx*4 + 0x150e3c0]
movzx eax, word [edi + 0x12a]
lea edx, [eax + eax*2]
mov dword [edx*4 + 0x150e3c4], eax
movzx eax, word [edi + 0x12a]
lea eax, [eax + eax*2]
mov dword [eax*4 + 0x150e3c8], edi
movzx eax, word [edi + 0x12a]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
lea edx, [ecx*4 + 0x150e3c0]
mov ecx, dword [0x150d36c]
mov dword [ebx*4 + 0x150d39c], edx
inc ecx
dec eax
mov dword [0x150d36c], ecx
mov dword [esp + 0x1c], eax
dec dword [esp + 0x20]
jne 0x43e3f0
lea esi, [ebx - 1]
test esi, esi
jle 0x43e611
push esi
push 0
mov ecx, 0x150d3a0
call fcn.0043df80
mov edi, eax
lea eax, [edi - 1]
push eax
push 0
push ecx
call fcn.0043e020
push esi
inc edi
push edi
push 0x150d3a0
call fcn.0043e020
add esp, 0x20
mov dword [0x150d36c], 0
call fcn.0048ba40
cmp eax, 3
ja case.default.0x43e625
jmp dword [eax*4 + 0x43eb04]
lea eax, [ebx - 0xf]
jmp 0x43e65b
xor edx, edx
lea eax, [ebx - 0x1e]
test eax, eax
setl dl
dec edx
and edx, eax
mov ebp, edx
jmp 0x43e667
lea eax, [ebx - 0x32]
jmp 0x43e65b
xor edx, edx
lea eax, [ebx - 0x3c]
test eax, eax
setl dl
dec edx
and edx, eax
mov ebp, edx
jmp 0x43e667
lea eax, [ebx - 0x46]
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
mov ebp, ecx
cmp ebx, ebp
mov edi, ebx
jbe 0x43e7b0
imul ebx, ebx, 0x1f4
mov dword [esp + 0x10], ebx
jmp 0x43e680
mov eax, dword [esp + 0x10]
mov edx, dword [edi*4 + 0x150d39c]
mov ebx, dword [edx + 8]
fld dword [ebx + 0xac]
dec edi
sub eax, 0x1f4
mov dword [esp + 0x10], eax
mov eax, dword [0x14d13d8]
fsub dword [eax + 0xac]
lea ecx, [ebx + 0xa4]
fabs
fld dword [ecx]
fsub dword [eax + 0xa4]
fabs
faddp st(1)
fcomp dword [0x4d7250]
fnstsw ax
test ah, 0x41
jp 0x43e721
xor esi, esi
push esi
call fcn.0040ed50
mov eax, dword [eax]
and eax, 0xff
add esp, 4
test al, 8
je 0x43e6e5
mov esi, 1
test al, 0x10
je 0x43e6ec
or esi, 2
test al, 0x40
je 0x43e6f3
or esi, 4
cmp esi, dword [esp + 0x24]
jne 0x43e721
mov eax, dword [0x14cc4b0]
mov ecx, dword [eax + 0x64]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x10]
mov al, byte [edx + eax + 0x1ec]
cmp al, 8
je 0x43e721
cmp al, 9
je 0x43e721
cmp al, 0xff
je 0x43e721
inc dword [0x14d1bd4]
mov ecx, dword [0x150d36c]
mov eax, dword [0x14cc4a8]
inc ecx
mov dword [0x150d36c], ecx
movzx ecx, word [ebx + 0x12a]
xor edx, edx
cmp ecx, eax
setl dl
push edx
call fcn.0043be40
xor eax, eax
mov ax, word [ebx + 0x12a]
push eax
call fcn.0047c730
movzx eax, word [ebx + 0x12a]
xor ecx, ecx
mov cl, byte [eax + 0x150c0a0]
xor edx, edx
mov dx, word [eax*2 + 0x150c240]
push ecx
xor ecx, ecx
mov cx, word [eax*2 + 0x150bd80]
push edx
xor edx, edx
mov dx, word [eax*2 + 0x150b3e0]
push ecx
xor ecx, ecx
mov cx, word [eax*2 + 0x150b0c0]
push edx
xor edx, edx
push ecx
cmp eax, dword [0x14cc4a8]
setl dl
mov eax, ebx
push edx
call fcn.0043b0c0
add esp, 0x20
cmp edi, ebp
ja 0x43e680
test ebp, ebp
mov esi, ebp
jbe 0x43e7e2
mov eax, dword [esi*4 + 0x150d39c]
mov eax, dword [eax + 8]
movzx ecx, word [eax + 0x12a]
mov ebx, dword [0x14cc4a8]
dec esi
xor edx, edx
cmp ecx, ebx
setl dl
push edx
call fcn.0043b8c0
add esp, 4
test esi, esi
ja 0x43e7b6
mov esi, dword [esp + 0x1c]
test esi, esi
jbe 0x43e819
lea ebx, [ebx]
mov eax, dword [esi*4 + 0x150dbbc]
movzx ecx, word [eax + 0x12a]
mov ebx, dword [0x14cc4a8]
dec esi
xor edx, edx
cmp ecx, ebx
setl dl
push edx
call fcn.0043b8c0
add esp, 4
test esi, esi
ja 0x43e7f0
mov edx, dword [0x14c7704]
mov eax, dword [0x14cc4b0]
imul edx, edx, 0x1f4
mov ecx, dword [eax + 0x64]
mov eax, dword [ecx + 4]
movzx ecx, word [eax + edx + 0x1a6]
mov edi, dword [0x14c7834]
imul ecx, ecx, 0x1f4
lea ebx, [eax + edx + 0x7c]
lea eax, [ecx + edi + 0x1f0]
and byte [eax], 0xf7
push 0
lea esi, [esp + 0x14]
mov eax, ebx
call fcn.0043acf0
add esp, 4
test eax, eax
je 0x43e93d
mov eax, dword [ebx + 0x58]
call fcn.0043dee0
test eax, eax
je 0x43e93d
movzx edx, word [ebx + 0x12a]
fld dword [esp + 0x10]
imul edx, edx, 0x1f4
mov cl, byte [edx + edi + 0x1f0]
lea eax, [edx + edi + 0x1f0]
or cl, 8
mov byte [eax], cl
movzx eax, word [ebx + 0x12a]
lea eax, [eax + eax*2]
push 1
fstp dword [eax*4 + 0x150e3c0]
movzx eax, word [ebx + 0x12a]
lea ecx, [eax + eax*2]
mov dword [ecx*4 + 0x150e3c4], eax
movzx eax, word [ebx + 0x12a]
lea edx, [eax + eax*2]
mov dword [edx*4 + 0x150e3c8], ebx
call fcn.0043be40
xor eax, eax
mov ax, word [ebx + 0x12a]
push eax
call fcn.0047c730
movzx eax, word [ebx + 0x12a]
mov esi, dword [0x14cc4a8]
xor ecx, ecx
mov cl, byte [eax + 0x150c0a0]
xor edx, edx
mov dx, word [eax*2 + 0x150c240]
push ecx
xor ecx, ecx
mov cx, word [eax*2 + 0x150bd80]
push edx
xor edx, edx
mov dx, word [eax*2 + 0x150b3e0]
push ecx
xor ecx, ecx
mov cx, word [eax*2 + 0x150b0c0]
push edx
xor edx, edx
cmp eax, esi
setl dl
mov eax, ebx
push ecx
push edx
call fcn.0043b0c0
add esp, 0x20
jmp 0x43e95c
movzx eax, word [ebx + 0x12a]
mov esi, dword [0x14cc4a8]
xor ecx, ecx
cmp eax, esi
setl cl
mov eax, ebx
push ecx
call fcn.0043b8c0
add esp, 4
mov di, word [0x14c76b4]
movzx eax, di
xor esi, esi
test eax, eax
jbe 0x43e9af
mov ecx, 0x150b708
mov dl, byte [ecx]
mov bl, dl
inc bl
cmp dl, 5
mov byte [ecx], bl
jne 0x43e9a0
dec di
movzx eax, di
lea edx, [eax + eax*2]
lea edx, [edx*4 + 0x150b700]
mov ebp, dword [edx]
lea ebx, [ecx - 8]
mov dword [ebx], ebp
mov ebp, dword [edx + 4]
mov dword [ebx + 4], ebp
mov edx, dword [edx + 8]
mov dword [ebx + 8], edx
inc esi
add ecx, 0xc
cmp esi, eax
jb 0x43e971
mov word [0x14c76b4], di
mov ecx, dword [0x14cc4b0]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x43e9f8
mov esi, eax
imul esi, esi, 0xd4
mov ebx, eax
jmp 0x43e9d0
mov eax, dword [ecx + 0x30]
mov edx, dword [0x14c8e40]
sub esi, 0xd4
lea edi, [eax + esi]
test dword [edi + 0xb0], edx
je 0x43e9f5
call fcn.0043da40
mov ecx, dword [0x14cc4b0]
dec ebx
jne 0x43e9d0
mov eax, dword [ecx + 4]
test eax, eax
je 0x43ea29
mov esi, eax
imul esi, esi, 0xdc
mov ebx, eax
lea esp, [esp]
mov edi, dword [ecx + 0x28]
sub esi, 0xdc
add edi, esi
call fcn.0043da40
dec ebx
mov ecx, dword [0x14cc4b0]
jne 0x43ea10
mov eax, dword [0x14d2e64]
test eax, eax
je 0x43eab5
mov eax, dword [ecx + 8]
test eax, eax
je 0x43eab5
lea edi, [eax + eax*2]
shl edi, 5
mov ebp, eax
mov ebx, 0xf7ffffff
mov edi, edi
mov eax, dword [ecx + 0x2c]
mov edx, dword [0x14c8e40]
sub edi, 0x60
lea esi, [eax + edi]
test dword [esi + 0x4c], edx
je 0x43eab2
test byte [esi + 0x48], 1
je 0x43eaaf
mov ax, word [esi + 0x56]
cmp ax, word [0x150d38c]
je 0x43eaaf
mov eax, dword [esi + 0x50]
cmp eax, dword [0x14d2e64]
jge 0x43eaa4
mov ecx, dword [0x14d2e74]
imul eax, eax, 0x118
add eax, ecx
push eax
push 0x14d2e60
call fcn.00482b30
mov ecx, dword [0x14cc4b0]
add esp, 8
mov dx, word [0x150d38c]
mov word [esi + 0x56], dx
and dword [esi + 0x48], ebx
dec ebp
jne 0x43ea50
call fcn.004847f0
mov eax, dword [0x14cc45c]
pop edi
pop esi
pop ebp
test ah, 8
mov eax, dword [0x1519ba8]
pop ebx
je 0x43eaea
or eax, 8
mov dword [0x1519ba8], eax
call fcn.00425e20
call fcn.00422ae0
add esp, 0x84
jmp 0x411d80
and eax, 0xfffffff7
mov dword [0x1519ba8], eax
call fcn.00422ae0
add esp, 0x84
jmp 0x411d80