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

Disassembly:
sub esp, 0x94
mov eax, dword [0x608798]
push ebx
push ebp
mov ebp, dword [esp + 0xa0]
push esi
mov ebx, eax
mov edx, dword [ebp + 4]
or ecx, 0xffffffff
xor esi, esi
push edi
test edx, edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], ecx
jle 0x45bce3
lea edi, [ebp + 8]
mov eax, dword [edi]
sub esp, 8
fld dword [eax + 0x18]
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
cmp eax, ebx
jge 0x45bcc5
mov dword [esp + 0x38], esi
mov dword [esp + 0x18], eax
mov ebx, eax
cmp dword [esp + 0x2c], eax
jg 0x45bccf
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 4]
inc esi
add edi, 4
cmp esi, eax
jl 0x45bc9f
mov eax, dword [0x608798]
mov ecx, dword [esp + 0x2c]
cmp ebx, eax
jge 0x45c2ac
test ecx, ecx
jl 0x45c2ac
cmp ecx, eax
jl 0x45bcfb
mov dword [esp + 0x2c], eax
mov eax, ebx
mov ecx, dword [0x6087a4]
imul eax, dword [0x6087a0]
add eax, ecx
mov ecx, 0x20
mov esi, 0x5585a0
mov edi, 0x55c5a0
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x48], eax
mov al, byte [0x4d0840]
test al, al
movsb byte es:[edi], byte [esi]
je 0x45bd70
xor ebx, ebx
mov edi, 0x4d0860
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x1c]
mov ecx, 0xffffffe0
mov eax, esi
add esi, ebx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov byte [ecx + edi], al
inc ecx
cmp ecx, 0x20
jl 0x45bd3f
mov edx, dword [esp + 0x1c]
add edi, 0x40
inc ebx
sub edx, 0x20
cmp edi, 0x4d0c60
mov dword [esp + 0x1c], edx
jl 0x45bd36
mov ebx, dword [esp + 0x18]
mov edi, ebx
dec ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x68], edi
mov eax, ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x40], eax
jmp 0x45bd93
mov eax, dword [esp + 0x40]
cmp edi, dword [esp + 0x5c]
jle 0x45be5b
mov esi, eax
dec eax
mov dword [esp + 0x40], eax
jns 0x45bdad
add eax, dword [ebp + 4]
mov dword [esp + 0x40], eax
mov ecx, dword [ebp + eax*4 + 8]
sub esp, 8
fld dword [ecx + 0x18]
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
mov ecx, dword [ebp + esi*4 + 8]
mov dword [esp + 0x5c], eax
sub eax, edi
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x28], edx
test eax, eax
mov dword [esp + 0x20], ecx
jle 0x45be5b
mov edx, dword [esp + 0x40]
fild dword [esp + 0x10]
mov eax, dword [ebp + edx*4 + 8]
fld dword [eax + 0x14]
fxch st(1)
fdivr qword [0x4c56a0]
fld dword [eax + 0x20]
fld dword [eax + 0x24]
fld dword [eax + 0x1c]
fxch st(4)
fsub dword [esp + 0x34]
fxch st(2)
fsub dword [esp + 0x24]
fxch st(1)
fsub dword [esp + 0x28]
fxch st(4)
fsub dword [esp + 0x20]
fxch st(2)
fmul st(3)
fxch st(1)
fmul st(3)
fxch st(4)
fmul st(3)
fxch st(2)
fmul st(3)
fxch st(1)
fstp dword [esp + 0x94]
fxch st(3)
fstp dword [esp + 0x70]
fstp dword [esp + 0x78]
fxch st(1)
fstp dword [esp + 0x80]
fstp st(0)
cmp edi, dword [esp + 0x60]
jle 0x45bf29
mov eax, dword [ebp + 4]
mov esi, ebx
inc ebx
cmp ebx, eax
mov dword [esp + 0x4c], ebx
jl 0x45be79
sub ebx, eax
mov dword [esp + 0x4c], ebx
mov eax, dword [ebp + ebx*4 + 8]
sub esp, 8
fld dword [eax + 0x18]
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
mov ecx, dword [ebp + esi*4 + 8]
mov dword [esp + 0x60], eax
sub eax, edi
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x3c], edx
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x18], edx
test eax, eax
mov dword [esp + 0x1c], ecx
jle 0x45bf29
mov eax, dword [ebp + ebx*4 + 8]
fild dword [esp + 0x10]
fld dword [eax + 0x14]
fxch st(1)
fdivr qword [0x4c56a0]
fld dword [eax + 0x20]
fld dword [eax + 0x24]
fld dword [eax + 0x1c]
fxch st(4)
fsub dword [esp + 0x30]
fxch st(2)
fsub dword [esp + 0x3c]
fxch st(1)
fsub dword [esp + 0x18]
fxch st(4)
fsub dword [esp + 0x1c]
fxch st(2)
fmul st(3)
fxch st(1)
fmul st(3)
fxch st(4)
fmul st(3)
fxch st(2)
fmul st(3)
fxch st(1)
fstp dword [esp + 0x88]
fxch st(3)
fstp dword [esp + 0x90]
fstp dword [esp + 0x98]
fxch st(1)
fstp dword [esp + 0xa0]
fstp st(0)
test edi, edi
jl 0x45c204
fld dword [esp + 0x34]
sub esp, 8
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
fld dword [esp + 0x30]
sub esp, 8
mov esi, eax
mov dword [esp + 0x1c], esi
fstp qword [esp]
call fcn.004b8890
fisub dword [esp + 0x1c]
add esp, 8
call fcn.004b78c0
mov ecx, eax
mov eax, dword [0x60879c]
cmp esi, eax
mov dword [esp + 0x10], ecx
jge 0x45c204
test ecx, ecx
jle 0x45c204
fild dword [esp + 0x10]
fld dword [esp + 0x3c]
fld dword [esp + 0x18]
fxch st(2)
fdivr dword [0x4c56a8]
lea edx, [ecx + esi]
cmp edx, eax
fld dword [esp + 0x1c]
fxch st(2)
fsub dword [esp + 0x24]
fxch st(3)
fsub dword [esp + 0x28]
fxch st(2)
fsub dword [esp + 0x20]
fxch st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x24]
fld dword [esp + 0x28]
fld dword [esp + 0x20]
fxch st(5)
fmul dword [esp + 0x10]
fxch st(4)
fmul dword [esp + 0x10]
fxch st(3)
fmul dword [esp + 0x10]
fxch st(4)
fstp dword [esp + 0x54]
fxch st(2)
fstp dword [esp + 0x50]
fxch st(2)
fstp dword [esp + 0x64]
fxch st(1)
fxch st(2)
jl 0x45bff7
sub eax, esi
mov dword [esp + 0x10], eax
mov ecx, eax
test esi, esi
jge 0x45c03f
fstp st(0)
add ecx, esi
fstp st(0)
test ecx, ecx
fstp st(0)
jle 0x45c204
fild dword [esp + 0x14]
xor esi, esi
fmul dword [0x4c56ac]
fld st(0)
fld st(1)
fxch st(1)
fmul dword [esp + 0x54]
fxch st(1)
fmul dword [esp + 0x50]
fxch st(1)
fsubr dword [esp + 0x24]
fxch st(2)
fmul dword [esp + 0x64]
fxch st(1)
fsubr dword [esp + 0x28]
fxch st(1)
fsubr dword [esp + 0x20]
fld st(0)
fdivr qword [0x4c56c0]
mov eax, dword [esp + 0x48]
lea ebx, [ecx + 0x20]
add eax, esi
mov dword [esp + 0x58], eax
fld st(2)
fmul st(1)
fld st(4)
fmul st(2)
fxch st(1)
fsub qword [0x4c56c8]
fxch st(1)
fsub qword [0x4c56c8]
fxch st(1)
fsub qword [0x4c56b8]
fxch st(1)
fsub qword [0x4c56b8]
fxch st(1)
fstp dword [esp + 0x7c]
mov eax, dword [esp + 0x7c]
fstp dword [esp + 0x74]
cdq
fstp st(0)
mov edi, dword [esp + 0x74]
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
jmp 0x45c0a8
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x10]
fadd dword [esp + 0x64]
fld dword [esp + 0x50]
faddp st(2)
fld dword [esp + 0x54]
fld st(1)
fdivr qword [0x4c56c0]
sub ecx, 0x20
sub ebx, 0x20
mov dword [esp + 0x10], ecx
mov dword [esp + 0x8c], ebx
fld st(3)
fxch st(1)
fstp dword [esp + 0x14]
fmul dword [esp + 0x14]
fxch st(1)
faddp st(4)
fsub qword [0x4c56b8]
fld st(3)
fmul dword [esp + 0x14]
fxch st(1)
fstp dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], 0x20
cdq
fsub qword [0x4c56b8]
and edx, 7
add eax, edx
sar eax, 3
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], eax
sub ecx, edi
sub eax, esi
sar ecx, 5
sar eax, 5
cmp ebx, 0x20
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x84], eax
jg 0x45c139
mov dword [esp + 0x14], ebx
and edi, 0x1ffff
mov ecx, esi
mov edx, edi
and ecx, 0x3f80
xor eax, eax
sar edx, 0xa
or ecx, edx
xor edx, edx
xor ebx, ebx
mov al, byte [ecx + 0x5585a0]
mov dl, byte [ecx + 0x558620]
mov bl, byte [ecx + 0x558621]
mov ebp, eax
mov dword [esp + 0x6c], edx
mov edx, edi
xor eax, eax
and edx, 0x3c0
mov al, byte [ecx + 0x5585a1]
mov ecx, dword [esp + 0x6c]
lea eax, [eax + edx + 0x4d0860]
lea edx, [ebx + edx + 0x4d0860]
sub eax, ebp
mov ebx, esi
sub edx, ecx
and ebx, 0x78
movsx eax, byte [eax]
movsx edx, byte [edx]
add eax, ebp
lea ecx, [ecx + ebx*8 + 0x4d0860]
sub ecx, eax
mov ebp, dword [esp + 0x9c]
mov ebx, dword [esp + 0x84]
add edi, ebp
mov dl, byte [edx + ecx]
add esi, ebx
add dl, al
mov eax, dword [esp + 0x58]
mov byte [eax], dl
inc eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
dec eax
test eax, eax
mov dword [esp + 0x14], eax
jg 0x45c13f
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
test eax, eax
jg 0x45c09d
mov ebp, dword [esp + 0xa8]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x4c]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [esp + 0x94]
fld dword [esp + 0x70]
fld dword [esp + 0x78]
fld dword [esp + 0x80]
fld dword [esp + 0x88]
fld dword [esp + 0x90]
fxch st(5)
fadd dword [esp + 0x34]
mov eax, dword [0x6087a0]
mov edx, dword [esp + 0x48]
add edx, eax
mov eax, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x48], edx
fstp dword [esp + 0x34]
fld dword [esp + 0x98]
fxch st(4)
fadd dword [esp + 0x24]
cmp edi, eax
mov dword [esp + 0x68], edi
fstp dword [esp + 0x24]
fld dword [esp + 0xa0]
fxch st(3)
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fxch st(1)
fadd dword [esp + 0x20]
fxch st(1)
fadd dword [esp + 0x30]
fxch st(4)
fadd dword [esp + 0x3c]
fxch st(3)
fadd dword [esp + 0x18]
fxch st(2)
fadd dword [esp + 0x1c]
fxch st(1)
fstp dword [esp + 0x20]
fxch st(3)
fstp dword [esp + 0x30]
fxch st(1)
fstp dword [esp + 0x3c]
fstp dword [esp + 0x18]
fstp dword [esp + 0x1c]
jl 0x45bd8f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret