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

Disassembly:
sub esp, 0x134
mov ecx, dword [0x1519ba8]
push ebx
push ebp
mov ebp, dword [0x14cc4b0]
xor eax, eax
test ch, 0x20
push esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x58], eax
je 0x45e65a
mov ecx, dword [ebp + 0x10]
xor bl, bl
cmp ecx, eax
jbe 0x45e65a
mov esi, dword [ebp + 0x34]
lea eax, [eax + eax*4]
shl eax, 4
lea ecx, [esp + 0x18]
add eax, esi
push ecx
call fcn.0045e2b0
mov cl, byte [0x150ae74]
add esp, 4
cmp cl, 0x40
jae 0x45e64e
movzx eax, byte [0x14c76a4]
movzx edx, cl
shl eax, 6
add eax, edx
mov edx, dword [0x151657c]
imul eax, eax, 0x118
imul edx, edx, 0x5c
add eax, 0x1502274
inc cl
mov byte [0x150ae74], cl
add edx, dword [0x14d2f08]
lea ecx, [esp + 0x18]
call fcn.0043db60
mov ecx, dword [ebp + 0x10]
inc bl
movzx eax, bl
cmp eax, ecx
jb 0x45e5f1
mov al, byte [0x14c771a]
xor bl, bl
test al, al
mov byte [esp + 0xf], bl
jbe 0x45efad
mov esi, 0x14cd508
push edi
cmp byte [esi + 4], 6
je 0x45ef92
fld dword [0x14c8d60]
lea edi, [esi - 8]
fsub dword [edi]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x70], 0
fstp dword [esp + 0x6c]
fld dword [0x14c8d68]
fsub dword [esi]
fstp dword [esp + 0x74]
call fcn.00434550
mov eax, dword [esp + 0x6c]
fstp st(0)
fld dword [esp + 0x74]
mov ecx, dword [edi]
mov edx, dword [esi - 4]
fchs
fst dword [esp + 0x1c]
mov dword [esp + 0x24], eax
fld dword [esp + 0x6c]
mov eax, dword [esi]
fchs
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x1519aac]
fstp dword [esp + 0x3c]
mov dword [esp + 0x54], eax
push ecx
fstp dword [esp + 0x48]
lea eax, [esp + 0x108]
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x3f800000
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], 0x3f800000
call fcn.00471b90
mov edx, dword [edi]
mov eax, dword [esi]
push 0
mov ecx, edi
mov dword [esp + 0x13c], edx
mov dword [esp + 0x144], eax
call fcn.0040ed50
movsx ecx, byte [eax + 9]
mov al, byte [esi + 4]
mov dword [esp + 0x1c], ecx
add esp, 8
cmp al, 1
fild dword [esp + 0x14]
mov dword [esp + 0x140], 0x3f800000
fstp dword [esp + 0x138]
jne 0x45e8e9
movzx eax, byte [esi + 5]
add eax, 0xfffffff1
cmp eax, 5
ja case.0x45e790.18
jmp dword [eax*4 + 0x45efb8]
movzx edx, word [esi + 6]
mov eax, dword [0x14cd88c]
movzx eax, word [eax + edx*2 + 2]
mov edx, dword [ebp + 0x40]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*4]
movzx eax, word [eax + 0x10]
cmp ax, 0xffff
je case.0x45e790.18
test ah, 0x40
jne 0x45eccb
cmp ax, 0xffff
je case.0x45e790.18
test ah, ah
jns case.0x45e790.18
mov edi, dword [ebp + 0x2c]
and eax, 0x3fff
lea eax, [eax + eax*2]
shl eax, 5
lea ecx, [esp + 0x1c]
add eax, edi
push ecx
call fcn.0045e450
mov edx, dword [0x1516584]
mov ebx, dword [0x14d2f08]
imul edx, edx, 0x5c
add edx, ebx
push edx
lea eax, [esp + 0x24]
push eax
call fcn.0043dc50
add esp, 0xc
jmp 0x45ef92
movzx eax, word [esi + 6]
mov ecx, dword [0x14cd88c]
movzx eax, word [ecx + eax*2 + 2]
mov ebx, dword [ebp + 0x34]
lea eax, [eax + eax*4]
shl eax, 4
lea edx, [esp + 0x1c]
add eax, ebx
push edx
call fcn.0045e2b0
mov cl, byte [0x150ae74]
add esp, 4
cmp cl, 0x40
jae 0x45ef92
movzx eax, byte [0x14c76a4]
movzx edx, cl
shl eax, 6
add eax, edx
mov edx, dword [0x151657c]
imul eax, eax, 0x118
imul edx, edx, 0x5c
add eax, 0x1502274
inc cl
mov byte [0x150ae74], cl
add edx, dword [0x14d2f08]
lea ecx, [esp + 0x1c]
call fcn.0043db60
jmp 0x45ef92
fld dword [esp + 0x50]
fadd dword [0x4c49e8]
fstp dword [esp + 0x50]
mov cl, byte [0x150ae74]
cmp cl, 0x40
jae 0x45ef92
movzx eax, byte [0x14c76a4]
movzx edx, cl
shl eax, 6
add eax, edx
mov edx, dword [0x151655c]
imul eax, eax, 0x118
imul edx, edx, 0x5c
add eax, 0x1502274
inc cl
mov byte [0x150ae74], cl
add edx, dword [0x14d2f08]
lea ecx, [esp + 0x104]
call fcn.0043db60
jmp 0x45ef92
test al, al
je 0x45ec87
cmp al, 4
je 0x45ec87
cmp al, 2
jne 0x45eac2
movzx eax, byte [esi + 5]
add eax, 0xfffffff1
cmp eax, 5
ja case.0x45e911.18
jmp dword [eax*4 + 0x45efd0]
movzx eax, word [esi + 6]
mov ecx, dword [0x14cd88c]
movzx eax, word [ecx + eax*2 + 2]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x40]
lea eax, [eax + edx*4]
movzx eax, word [eax + 0x10]
cmp ax, 0xffff
je 0x45e9f5
test ah, 0x40
je 0x45e9ad
mov edi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x38]
and eax, 0xfff
imul eax, eax, 0xf0
add eax, edi
mov edi, eax
movsx eax, word [edi + 0xbc]
lea eax, [eax + eax*2]
shl eax, 5
add eax, ecx
sub esp, 0xc
lea edx, [esp + 0xd0]
fld dword [eax + 0x50]
fsub dword [eax + 0x54]
fstp dword [esp + 8]
fld dword [eax + 0x48]
fsub dword [eax + 0x4c]
fstp dword [esp + 4]
fld dword [eax + 0x40]
fsub dword [eax + 0x44]
fstp dword [esp]
call fcn.00471dd0
add esp, 0xc
mov eax, edi
lea ecx, [esp + 0xc4]
lea edx, [esp + 0x1c]
call fcn.00434860
jmp 0x45ef92
cmp ax, 0xffff
je 0x45e9f5
test ah, ah
jns 0x45e9f5
mov edi, dword [ebp + 0x2c]
and eax, 0x3fff
lea eax, [eax + eax*2]
shl eax, 5
lea ecx, [esp + 0x1c]
add eax, edi
push ecx
call fcn.0045e450
mov edx, dword [0x1516584]
mov ebx, dword [0x14d2f08]
imul edx, edx, 0x5c
add edx, ebx
push edx
lea eax, [esp + 0x24]
push eax
call fcn.0043dc50
add esp, 0xc
jmp 0x45ef92
mov ecx, dword [0x1516564]
mov edi, dword [0x14d2f08]
imul ecx, ecx, 0x5c
add ecx, edi
push ecx
lea edx, [esp + 0x108]
push edx
call fcn.0043dc50
add esp, 8
jmp 0x45ef92
movzx eax, word [esi + 6]
mov ecx, dword [0x14cd88c]
movzx eax, word [ecx + eax*2 + 2]
mov edx, dword [ebp + 0x34]
lea eax, [eax + eax*4]
shl eax, 4
add eax, edx
lea edx, [esp + 0x1c]
push edx
call fcn.0045e2b0
mov eax, dword [0x151657c]
mov ebx, dword [0x14d2f08]
imul eax, eax, 0x5c
add eax, ebx
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.0043dc50
add esp, 0xc
jmp 0x45ef92
fld dword [esp + 0x50]
fadd dword [0x4c49e8]
fstp dword [esp + 0x50]
mov cl, byte [0x150ae74]
cmp cl, 0x40
jae 0x45ef92
movzx eax, byte [0x14c76a4]
movzx edx, cl
shl eax, 6
add eax, edx
mov edx, dword [0x1516564]
imul eax, eax, 0x118
imul edx, edx, 0x5c
add eax, 0x1502274
inc cl
mov byte [0x150ae74], cl
add edx, dword [0x14d2f08]
lea ecx, [esp + 0x104]
call fcn.0043db60
jmp 0x45ef92
cmp al, 5
jne 0x45ec03
fld dword [0x14c8d60]
lea ecx, [esp + 0x78]
fsub dword [edi]
mov dword [esp + 0x7c], 0
fstp dword [esp + 0x78]
fld dword [0x14c8d68]
fsub dword [esi]
fstp dword [esp + 0x80]
call fcn.00434550
fstp st(0)
mov ecx, dword [esi]
fld dword [0x1519bc0]
mov eax, dword [edi]
fld dword [esp + 0x80]
mov dword [esp + 0xbc], ecx
fmul st(1)
mov cl, byte [0x150ae74]
cmp cl, 0x40
mov dword [esp + 0x88], 0
fchs
mov dword [esp + 0x90], 0
fst dword [esp + 0x84]
mov dword [esp + 0x94], 0
fld dword [esp + 0x78]
mov dword [esp + 0x9c], 0
fmul st(2)
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xb0], 0
fst dword [esp + 0x8c]
mov dword [esp + 0xb4], eax
fxch st(2)
mov dword [esp + 0xc0], 0x3f800000
fstp dword [esp + 0x98]
fxch st(1)
fchs
fstp dword [esp + 0xa4]
fstp dword [esp + 0xac]
fld dword [esi - 4]
fadd dword [0x4c49e8]
fstp dword [esp + 0xb8]
jae 0x45ef92
movzx eax, byte [0x14c76a4]
movzx edx, cl
shl eax, 6
add eax, edx
mov edx, dword [0x1516574]
imul eax, eax, 0x118
imul edx, edx, 0x5c
add eax, 0x1502274
inc cl
mov byte [0x150ae74], cl
add edx, dword [0x14d2f08]
lea ecx, [esp + 0x84]
call fcn.0043db60
jmp 0x45ef92
cmp al, 3
jne 0x45ef92
mov eax, dword [0x14d13d8]
fld dword [eax + 0xa4]
fsub dword [esp + 0x4c]
fld dword [eax + 0xa8]
fsub dword [esp + 0x50]
fld dword [eax + 0xac]
mov eax, dword [esp + 0x5c]
test eax, eax
fsub dword [esp + 0x54]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
jne 0x45ec69
mov eax, 1
fstp dword [esp + 0x18]
mov byte [0x1519ab8], bl
mov dword [esp + 0x5c], eax
mov dword [0x1519a68], eax
jmp 0x45ef92
fcom dword [esp + 0x18]
fnstsw ax
test ah, 5
jp 0x45ef90
fstp dword [esp + 0x18]
mov byte [0x1519ab8], bl
jmp 0x45ef92
mov al, byte [esi + 5]
movzx ecx, al
add ecx, 0xfffffff1
cmp ecx, 5
ja case.0x45ec99.18
jmp dword [ecx*4 + 0x45efe8]
movzx eax, word [esi + 6]
mov ecx, dword [0x14cd88c]
movzx eax, word [ecx + eax*2 + 2]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x40]
lea eax, [eax + edx*4]
movzx eax, word [eax + 0x10]
cmp ax, 0xffff
je 0x45ed90
test ah, 0x40
je 0x45ed48
mov edx, dword [ebp + 0x24]
and eax, 0xfff
imul eax, eax, 0xf0
add eax, edx
mov ebx, eax
movsx edx, word [ebx + 0xbc]
mov eax, dword [ebp + 0x38]
lea edx, [edx + edx*2]
shl edx, 5
add edx, eax
xor eax, eax
mov ecx, 0x10
fld dword [edx + 0x40]
lea edi, [esp + 0xc4]
fsub dword [edx + 0x44]
rep stosd dword es:[edi], eax
mov eax, ebx
fstp dword [esp + 0xc4]
lea ecx, [esp + 0xc4]
fld dword [edx + 0x48]
mov dword [esp + 0x100], 0x3f800000
fsub dword [edx + 0x4c]
fstp dword [esp + 0xd8]
fld dword [edx + 0x50]
fsub dword [edx + 0x54]
lea edx, [esp + 0x1c]
fstp dword [esp + 0xec]
call fcn.00434860
jmp 0x45ef92
cmp ax, 0xffff
je 0x45ed90
test ah, ah
jns 0x45ed90
mov edi, dword [ebp + 0x2c]
and eax, 0x3fff
lea eax, [eax + eax*2]
shl eax, 5
lea ecx, [esp + 0x1c]
add eax, edi
push ecx
call fcn.0045e450
mov edx, dword [0x1516584]
mov ebx, dword [0x14d2f08]
imul edx, edx, 0x5c
add edx, ebx
push edx
lea eax, [esp + 0x24]
push eax
call fcn.0043dc50
add esp, 0xc
jmp 0x45ef92
mov ecx, dword [0x151656c]
jmp 0x45e9fb
cmp al, 0xf
jne 0x45edc4
movzx eax, word [esi + 6]
mov ecx, dword [0x14cd88c]
movzx edx, word [ecx + eax*2 + 2]
movzx eax, word [edx*2 + 0x14cd8a4]
mov ecx, dword [ebp + 0x64]
imul eax, eax, 0x1f4
add eax, dword [ecx + 4]
jmp 0x45ede6
movzx edx, word [esi + 6]
mov eax, dword [0x14cd88c]
movzx ecx, word [eax + edx*2 + 2]
movzx eax, word [ecx*2 + 0x14cd8a4]
mov edx, dword [ebp + 0x64]
imul eax, eax, 0x1f4
add eax, dword [edx + 4]
movsx eax, word [eax + 0x1a0]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x4c4d08]
fst dword [esp + 0x14]
fcomp dword [0x4c49ac]
fnstsw ax
test ah, 0x41
jne 0x45ee13
mov ebx, 0xa
jmp 0x45ee3d
fld dword [esp + 0x14]
fcomp dword [0x4bf424]
fnstsw ax
test ah, 0x41
jnp 0x45ee3b
fld dword [esp + 0x14]
fmul dword [0x4c4b88]
call fcn.0049ccd0
mov ebx, eax
cmp bx, 0xa
jbe 0x45ee3d
xor ebx, ebx
fld dword [0x14c8d60]
lea ecx, [esp + 0x60]
fsub dword [edi]
mov dword [esp + 0x64], 0
fstp dword [esp + 0x60]
fld dword [0x14c8d68]
fsub dword [esi]
fstp dword [esp + 0x68]
call fcn.00434550
fstp st(0)
mov ecx, dword [edi]
fld dword [esp + 0x68]
mov edx, dword [esi]
fmul dword [0x4c4d44]
mov dword [esp + 0x4c], ecx
mov cl, byte [0x150ae74]
cmp cl, 0x40
fst dword [esp + 0x1c]
mov dword [esp + 0x20], 0
fld dword [esp + 0x60]
mov dword [esp + 0x28], 0
fmul dword [0x4c49dc]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0xc0400000
mov dword [esp + 0x34], 0
fstp dword [esp + 0x24]
mov dword [esp + 0x38], 0
fld dword [esp + 0x60]
mov dword [esp + 0x40], 0
fmul dword [0x4c4d44]
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], 0x3f800000
fstp dword [esp + 0x3c]
fstp dword [esp + 0x44]
fld dword [esi - 4]
fadd dword [0x4c4ad4]
fstp dword [esp + 0x50]
jae 0x45ef92
movzx eax, byte [0x14c76a4]
movzx edx, cl
shl eax, 6
add eax, edx
imul eax, eax, 0x118
add eax, 0x1502274
inc cl
mov byte [0x150ae74], cl
movzx ecx, bx
mov edx, dword [ecx*4 + 0x151659c]
mov ecx, dword [0x14d2f08]
imul edx, edx, 0x5c
add edx, ecx
lea ecx, [esp + 0x1c]
call fcn.0043db60
mov cl, byte [0x150ae74]
cmp cl, 0x40
jae 0x45ef92
movzx eax, byte [0x14c76a4]
movzx edx, cl
shl eax, 6
add eax, edx
mov edx, dword [0x151656c]
imul eax, eax, 0x118
imul edx, edx, 0x5c
add eax, 0x1502274
inc cl
mov byte [0x150ae74], cl
add edx, dword [0x14d2f08]
lea ecx, [esp + 0x104]
call fcn.0043db60
jmp 0x45ef92
fstp st(0)
mov bl, byte [esp + 0x13]
mov al, byte [0x14c771a]
inc bl
add esi, 0x10
cmp bl, al
mov byte [esp + 0x13], bl
jb 0x45e673
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret