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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc20
mov eax, dword [0x54eba0]
mov ecx, dword [0x54eba4]
push ebx
push ebp
push esi
mov esi, dword [0xc31090]
mov dword [esp + 0xac], eax
mov eax, dword [0xb16ca4]
mov dword [esp + 0xb0], ecx
xor ecx, ecx
mov ebp, 0xb16ce0
add esi, eax
cmp eax, ecx
push edi
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0xf0], 0xffffffff
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x130], eax
mov dword [0xc31090], esi
mov dword [esp + 0xe0], ecx
jle 0x5114ec
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x24]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x1c]
mov ecx, 6
mov esi, ebp
lea edi, [esp + 0x114]
mov dword [esp + 0x2c], edx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x2c]
and edx, 1
mov dword [esp + 0x60], ebx
xor ecx, ecx
mov cl, byte [esp + 0x62]
mov dword [esp + 0x94], edx
mov edx, dword [0xb12b6c]
mov edi, ecx
and ebx, 0xffff
mov dword [esp + 0x30], eax
lea ecx, [edx - 3]
mov edx, dword [0xb12b68]
cmp edx, ecx
mov dword [esp + 0x18], edi
jle 0x510187
mov edx, dword [0xb12c4c]
lea ecx, [edx - 3]
mov edx, dword [0xb12c48]
cmp edx, ecx
jle 0x51014d
mov edx, dword [0xb16ccc]
lea ecx, [edx - 3]
mov edx, dword [0xb16cc8]
cmp edx, ecx
jle 0x510113
mov dword [eax + 0x10], 0xffffffff
jmp 0x5114c4
mov ecx, dword [0xb16cc4]
mov esi, dword [0xb16cc0]
mov ecx, dword [ecx + edx*4]
imul ecx, dword [0xb16cd0]
add ecx, esi
mov esi, dword [0xb16cd4]
mov dword [esi + ecx], edx
mov edx, dword [0xb16cc8]
inc edx
mov dword [0xb16cc8], edx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], 2
jmp 0x5101bf
mov ecx, dword [0xb12c44]
mov esi, dword [0xb12c40]
mov ecx, dword [ecx + edx*4]
imul ecx, dword [0xb12c50]
add ecx, esi
mov esi, dword [0xb12c54]
mov dword [esi + ecx], edx
mov edx, dword [0xb12c48]
inc edx
mov dword [0xb12c48], edx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], 1
jmp 0x5101bf
mov ecx, dword [0xb12b64]
mov esi, dword [0xb12b60]
mov ecx, dword [ecx + edx*4]
imul ecx, dword [0xb12b70]
add ecx, esi
mov esi, dword [0xb12b74]
mov dword [esi + ecx], edx
mov edx, dword [0xb12b68]
inc edx
mov dword [0xb12b68], edx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], 0
mov ecx, dword [0xb16c9c]
mov edx, dword [eax + 0x18]
mov esi, dword [ebp + 0x20]
mov dword [ecx*4 + 0xb12c60], edx
inc ecx
mov dword [0xb16c9c], ecx
mov edx, dword [eax + 0x18]
movsx eax, word [esi + 2]
lea ecx, [esi + 8]
mov dword [esp + 0x64], esi
add eax, ecx
xor ecx, ecx
cmp ebx, 0xffff
mov dword [esp + 0x70], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x60], ecx
je 0x51025d
lea eax, [ebx + ebx*2]
mov dword [esp + 0x60], 1
shl eax, 4
fld dword [eax + 0xba80b0]
fmul dword [0x534be0]
fstp dword [esp + 0xf4]
fld qword [eax + 0xba80b8]
fstp dword [esp + 0x144]
fld qword [eax + 0xba80c0]
fstp dword [esp + 0x140]
fld dword [eax + 0xba80b4]
fmul dword [0x534be0]
mov eax, dword [eax + 0xba80c8]
mov dword [esp + 0x13c], eax
fstp dword [esp + 0xdc]
cmp dword [esp + 0x44], 0xe
jge 0x51026a
mov dword [esp + 0x18], ecx
jmp 0x5102af
cmp edi, ecx
je 0x5102af
lea ecx, [edi + edi*2]
shl ecx, 4
lea eax, [ecx + 0xba2030]
mov ecx, dword [ecx + 0xba2058]
fld qword [eax + 0x18]
fstp dword [esp + 0xe8]
fld qword [eax + 0x20]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + 0x10]
fstp dword [esp + 0xec]
mov dword [esp + 0x98], ecx
mov ecx, dword [eax + 0xc]
add ecx, 3
mov dword [esp + 0x90], ecx
mov ebx, dword [ebp + 0x28]
mov eax, dword [esp + 0xf0]
cmp eax, ebx
je 0x510341
mov dword [esp + 0xf0], ebx
lea eax, [esp + 0x160]
mov dword [esp + 0x78], 4
mov ecx, ebx
and ecx, 0xff
sar ebx, 8
test ecx, ecx
je 0x51032a
lea ecx, [ecx + ecx*2]
sub eax, 4
shl ecx, 4
sub eax, 4
mov edi, dword [ecx + 0xba5050]
lea ecx, [ecx + 0xba5050]
mov dword [eax + 4], edi
sub eax, 4
mov edi, dword [ecx + 0x28]
fld qword [ecx + 0x20]
mov dword [eax + 4], edi
mov edi, dword [ecx + 0x10]
fstp dword [eax]
fld qword [ecx + 0x18]
fstp dword [eax - 4]
sub eax, 4
mov ecx, dword [ecx + 0xc]
sub eax, 4
mov dword [eax], edi
sub eax, 4
mov dword [eax], ecx
jmp 0x510333
sub eax, 0x18
mov dword [eax], 0
mov ecx, dword [esp + 0x78]
add eax, 0x30
dec ecx
mov dword [esp + 0x78], ecx
jne 0x5102d7
movsx ecx, word [esi + 4]
movsx ebx, word [esi + 6]
add ebx, ecx
mov dword [esp + 0x6c], ecx
shl ecx, 3
lea eax, [ebx + ebx*4]
mov edi, edx
shl eax, 2
sub eax, ecx
mov ecx, 6
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
shl eax, 0x10
mov esi, ebp
add edx, 0x18
or eax, ebx
add edx, 4
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x44]
mov dword [edx - 4], eax
mov ecx, 0x1b
mov dword [edx], esi
lea eax, [edx + 4]
sub ecx, esi
mov edx, 1
mov ebp, dword [esp + 0x2c]
shl edx, cl
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
add eax, 0x10
and ebp, 4
mov dword [esp + 0x78], ebx
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], ebp
fild dword [esp + 0x24]
fstp qword [esp + 0x50]
jmp 0x5103c6
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx]
mov edx, ecx
sar edx, 0xe
and edx, 0x3f
sub edx, 0x18
mov dword [esp + 0x24], edx
mov edx, ecx
sar ecx, 0x14
sar edx, 0x1a
and ecx, 0x3f
and edx, 0x3f
sub ecx, 0x18
sub edx, 0x18
mov esi, ecx
mov dword [esp + 0x1c], edx
test ebp, ebp
mov dword [esp + 0x14], esi
je 0x510403
neg edx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x94]
test ecx, ecx
mov cl, byte [esp + 0x2c]
je 0x51042f
test cl, 2
je 0x510423
neg edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
jmp 0x510444
neg esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
jmp 0x510444
test cl, 2
je 0x510440
neg edx
neg esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x7c]
fild dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
fmul qword [esp + 0x50]
fdiv qword [esp + 0xb0]
fadd qword [esp + 0x114]
fild dword [esp + 0x14]
fmul qword [esp + 0x50]
fdiv qword [esp + 0xb0]
fadd qword [esp + 0x11c]
fild dword [esp + 0x24]
fmul qword [esp + 0x50]
fdiv qword [esp + 0xb0]
fadd qword [esp + 0x124]
fld dword [0x5333ec]
je 0x510596
fld st(3)
fsub dword [esp + 0xe8]
mov ecx, dword [esp + 0x90]
fmul dword [esp + 0x98]
fld st(3)
fsub dword [esp + 0xec]
fmul dword [esp + 0x98]
fstp dword [esp + 0x14]
fld st(0)
fistp qword [esp + 0x24]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x24], esi
fld dword [esp + 0x14]
fistp qword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov ebp, edx
mov dword [esp + 0x1c], edx
shl ebp, cl
fisub dword [esp + 0x24]
lea ecx, [edx + ebp]
fild dword [esp + 0x1c]
lea ebp, [ecx + esi]
inc esi
add ecx, esi
inc edx
movsx ebp, byte [edi + ebp]
fsubr dword [esp + 0x14]
movsx ecx, byte [ecx + edi]
mov dword [esp + 0x24], ebp
mov ebp, edx
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x90]
shl ebp, cl
fild dword [esp + 0x24]
add ebp, edx
add ebp, esi
fstp dword [esp + 0x1c]
movsx edx, byte [edi + ebp - 1]
lea ecx, [edi + ebp]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
movsx ecx, byte [ecx]
fstp dword [esp + 0x14]
fld dword [esp + 0x1c]
fsub st(1)
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x44]
cmp ecx, 0xe
fmul st(3)
fadd st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fild dword [esp + 0x24]
fsub dword [esp + 0x14]
fmulp st(2)
fxch st(1)
fadd dword [esp + 0x14]
fsub dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0x1c]
fsub qword [0x534ae0]
fxch st(1)
fstp st(0)
fmul dword [0x5342e8]
fstp dword [esp + 0x14]
jle 0x510590
fld dword [esp + 0x14]
faddp st(2)
jmp 0x510596
fstp st(0)
fld dword [esp + 0x14]
fstp dword [eax - 4]
sub eax, 4
mov edx, dword [esp + 0x70]
sub eax, 4
mov ecx, dword [esp + 0x58]
add edx, 4
fstp dword [eax]
sub eax, 4
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
fstp dword [eax]
sub eax, 4
inc ecx
mov dword [esp + 0x58], ecx
fstp dword [eax]
add eax, 0x20
cmp ecx, edx
jl 0x5103c2
cmp ebx, edx
je 0x5107bc
mov edx, dword [esp + 0x70]
sub eax, 4
mov ecx, dword [edx]
mov edx, ecx
and edx, 0x3f
mov dword [eax], edx
mov edx, ecx
sar edx, 0xe
and edx, 0x3f
sub edx, 0x18
mov dword [esp + 0x24], edx
mov edx, ecx
sar ecx, 0x14
and ecx, 0x3f
sar edx, 0x1a
sub ecx, 0x18
and edx, 0x3f
mov esi, ecx
mov ecx, dword [esp + 0x34]
sub edx, 0x18
mov dword [esp + 0x14], esi
test ecx, ecx
mov dword [esp + 0x1c], edx
je 0x510621
neg edx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x94]
test ecx, ecx
mov cl, byte [esp + 0x2c]
je 0x51064d
test cl, 2
je 0x510641
neg edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
jmp 0x510662
neg esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
jmp 0x510662
test cl, 2
je 0x51065e
neg edx
neg esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x7c]
fild dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
fmul qword [esp + 0x50]
fdiv qword [esp + 0xb0]
fadd qword [esp + 0x114]
fild dword [esp + 0x14]
fmul qword [esp + 0x50]
fdiv qword [esp + 0xb0]
fadd qword [esp + 0x11c]
fild dword [esp + 0x24]
fmul qword [esp + 0x50]
fdiv qword [esp + 0xb0]
fadd qword [esp + 0x124]
je 0x51078d
fld st(2)
fsub dword [esp + 0xe8]
mov ecx, dword [esp + 0x90]
fmul dword [esp + 0x98]
fld st(2)
fsub dword [esp + 0xec]
fmul dword [esp + 0x98]
fstp dword [esp + 0x14]
fld st(0)
fistp qword [esp + 0x24]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x24], esi
fld dword [esp + 0x14]
fistp qword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov ebp, edx
mov dword [esp + 0x1c], edx
shl ebp, cl
fisub dword [esp + 0x24]
lea ecx, [edx + ebp]
fild dword [esp + 0x1c]
lea ebp, [ecx + esi]
inc esi
add ecx, esi
inc edx
movsx ebp, byte [edi + ebp]
fsubr dword [esp + 0x14]
movsx ecx, byte [ecx + edi]
mov dword [esp + 0x24], ebp
mov ebp, edx
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x90]
shl ebp, cl
fild dword [esp + 0x24]
add ebp, edx
add ebp, esi
movsx edx, byte [edi + ebp - 1]
lea ecx, [edi + ebp]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
movsx ecx, byte [ecx]
fstp dword [esp + 0x14]
mov dword [esp + 0x24], ecx
fsub st(1)
fmul st(3)
fadd st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fild dword [esp + 0x24]
fsub dword [esp + 0x14]
fmulp st(2)
fxch st(1)
fadd dword [esp + 0x14]
fsub dword [esp + 0x1c]
fmul st(1)
fadd dword [esp + 0x1c]
fsub qword [0x534ae0]
fxch st(1)
fstp st(0)
fmul dword [0x5342e8]
faddp st(1)
fstp dword [eax - 4]
sub eax, 4
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x70]
sub eax, 4
add ebp, 4
fstp dword [eax]
sub eax, 4
inc ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x70], ebp
fstp dword [eax]
add eax, 0x20
cmp ecx, ebx
jl 0x5105d6
mov ebp, dword [esp + 0x48]
add eax, 0xfffffff0
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], ecx
lea esi, [esp + 0x330]
fld dword [ebp]
fld st(0)
fsub dword [esp + 0x144]
mov edx, dword [ebp + 4]
add ebp, 4
mov dword [esp + 0x10c], edx
mov ebx, dword [esp + 0x148]
fmul dword [esp + 0xf4]
mov edx, dword [ebp + 4]
add ebp, 4
mov dword [esp + 0x110], edx
add ebp, 4
fadd dword [esp + 0xdc]
xor edx, edx
mov edi, 0xff
test ebx, ebx
fstp dword [esi + 0x1c]
fld dword [esp + 0x10c]
fsub dword [esp + 0x140]
mov dword [esp + 0x24], edi
fmul dword [esp + 0xf4]
fadd dword [esp + 0xdc]
fstp dword [esi + 0x20]
je 0x510a6b
fld st(0)
fsub dword [esp + 0x150]
fld dword [esp + 0x10c]
fsub dword [esp + 0x154]
mov ecx, dword [esp + 0x148]
lea eax, [esp + 0x15c]
fstp dword [esp + 0x18]
fld dword [esp + 0x14c]
fmul st(1)
fistp qword [esp + 0x50]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x14], edi
sar edi, 3
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x158]
fstp st(0)
fld dword [esp + 0x14c]
fmul dword [esp + 0x18]
fistp qword [esp + 0x50]
mov ebx, dword [esp + 0x50]
shl ebx, cl
mov cl, byte [esp + 0x14]
and cl, 7
add edi, ebx
mov ebx, dword [esp + 0x48]
mov bl, byte [ebx + edi]
sar bl, cl
test bl, 1
jne 0x510930
mov ecx, dword [eax + 4]
add eax, 4
add eax, 4
test ecx, ecx
je 0x510932
fld dword [eax]
add eax, 4
fld st(1)
fsub dword [eax]
fld dword [esp + 0x10c]
fsub dword [eax + 4]
add eax, 4
add eax, 4
fstp dword [esp + 0x18]
mov edi, dword [eax]
add eax, 4
fmul st(1)
fistp qword [esp + 0x50]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x14], ebx
fld dword [esp + 0x18]
fmul st(1)
fistp qword [esp + 0x50]
mov ebx, dword [esp + 0x50]
shl ebx, cl
mov ecx, ebx
mov ebx, dword [esp + 0x14]
sar ebx, 3
add edi, ecx
mov cl, byte [esp + 0x14]
and cl, 7
mov bl, byte [ebx + edi]
sar bl, cl
fstp st(0)
test bl, 1
je 0x5108c5
mov edx, dword [eax]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
jl 0x510a7f
mov eax, dword [ebp]
mov dword [esi], eax
lea ecx, [eax + eax*8]
mov edi, dword [esp + ecx*4 + 0x344]
sar edi, 0x10
cmp edi, edx
jne 0x51095d
mov edi, 0xff
mov eax, dword [esp + 0x1c]
fld qword [esp + 0x114]
fsubr st(1)
mov ebx, 1
mov ecx, edx
shl ebx, cl
fstp dword [esi + 4]
shl edx, 0x10
fstp st(0)
fld qword [esp + 0x11c]
fsubr dword [esp + 0x10c]
mov ecx, ebx
mov ebx, dword [esp + 0x34]
or edx, edi
fstp dword [esi + 8]
fld qword [esp + 0x124]
fsubr dword [esp + 0x110]
mov edi, dword [esp + 0x78]
or ebx, ecx
mov ecx, dword [esp + 0x58]
add ebp, 4
fstp dword [esi + 0xc]
mov dword [esi + 0x14], edx
inc ecx
add esi, 0x24
cmp ecx, edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ecx
jl 0x5107d8
fld qword [esp + 0x114]
fadd qword [0xb12ba0]
xor ebp, ebp
xor edx, edx
xor esi, esi
cmp ebx, ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c0], ebp
fstp qword [esp + 0x50]
fld qword [esp + 0x11c]
fadd qword [0xb12ba8]
lea ecx, [esp + 0x1c0]
fstp qword [esp + 0x70]
fld qword [esp + 0x124]
fadd qword [0xb12bb0]
fstp qword [esp + 0x58]
je 0x510a2c
test bl, 1
je 0x510a23
mov dword [ecx], edx
add ecx, 4
inc esi
inc edx
sar ebx, 1
jne 0x510a18
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x3c]
lea ecx, [edx + 4]
mov dword [esp + 0x24], ecx
imul ecx, esi
lea ecx, [ecx + edi*8]
lea ecx, [edx + ecx*2 + 0x3c]
cmp ecx, 0x640
jl 0x510d0a
mov edx, dword [esp + 0x30]
mov edi, dword [edx + 0x14]
cmp edi, 1
mov dword [esp + 0x34], edi
jne 0x510a8c
cmp ecx, 0xc80
jl 0x510d0a
jmp 0x510a9d
cmp ecx, dword [esp + 0x6c]
jl 0x510961
mov ecx, dword [ebp]
mov dword [esi], ecx
jmp 0x510961
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
jmp 0x510961
cmp edi, 2
jne 0x510a9d
cmp ecx, 0x1f40
jl 0x510d0a
mov esi, dword [0xb12c48]
mov dword [esp + 0x18], ebp
mov ebp, dword [edx + 0x18]
cmp edi, 1
jge 0x510b2c
cmp ecx, 0xc80
jge 0x510b2c
mov ebx, dword [0xb12c4c]
add ebx, 0xfffffffe
cmp esi, ebx
jge 0x510b2c
mov ecx, dword [0xb12c44]
mov ebx, dword [0xb12c40]
sub eax, ebp
mov edi, dword [ecx + esi*4]
mov ecx, dword [0xb12c54]
imul edi, dword [0xb12c50]
add edi, ebx
mov dword [edi + ecx], esi
mov esi, dword [0xb12c48]
mov ecx, eax
inc esi
mov ebx, ecx
mov dword [0xb12c48], esi
mov esi, ebp
mov dword [edx + 0x18], edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x18]
mov esi, 1
mov dword [edx + 0x14], esi
mov edi, dword [0xb16c9c]
add eax, ecx
mov dword [esp + 0x18], esi
mov dword [edi*4 + 0xb12c5c], ecx
jmp 0x510bba
cmp edi, 2
jge 0x510bcc
cmp ecx, 0x1f40
jge 0x510bcc
mov ecx, dword [0xb16ccc]
lea ebx, [ecx - 2]
mov ecx, dword [0xb16cc8]
cmp ecx, ebx
jge 0x510bd2
mov esi, dword [0xb16cc4]
mov ebx, dword [0xb16cc0]
sub eax, ebp
mov dword [esp + 0x18], 1
mov edi, dword [esi + ecx*4]
mov esi, dword [0xb16cd4]
imul edi, dword [0xb16cd0]
add edi, ebx
mov dword [edi + esi], ecx
mov esi, dword [0xb16cc8]
mov ecx, eax
inc esi
mov ebx, ecx
mov dword [0xb16cc8], esi
mov esi, ebp
mov dword [edx + 0x18], edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x18]
mov dword [edx + 0x14], 2
mov esi, dword [0xb16c9c]
add eax, ecx
mov dword [esi*4 + 0xb12c5c], ecx
mov esi, dword [0xb12c48]
mov ecx, dword [0xb16cc8]
mov edi, dword [esp + 0x34]
jmp 0x510bd2
mov ecx, dword [0xb16cc8]
test edi, edi
jne 0x510c34
mov edi, dword [0xb12b74]
mov ecx, dword [0xb12b68]
dec ecx
mov ebp, dword [edi + ebp]
mov dword [0xb12b68], ecx
cmp ebp, ecx
je 0x510ce5
mov esi, dword [0xb12b64]
mov ebx, dword [0xb12b60]
mov ecx, dword [esi + ecx*4]
imul ecx, dword [0xb12b70]
add ecx, ebx
mov ebx, dword [esi + ebp*4]
mov dword [esp + 0x30], ebx
mov edi, dword [ecx + edi]
mov ebx, dword [esi + edi*4]
mov dword [esi + ebp*4], ebx
mov esi, dword [0xb12b64]
mov ebx, dword [esp + 0x30]
mov dword [esi + edi*4], ebx
mov esi, dword [0xb12b74]
jmp 0x510ce2
cmp edi, 1
jne 0x510c8e
mov ebx, dword [0xb12c54]
dec esi
mov ebp, dword [ebx + ebp]
mov dword [0xb12c48], esi
cmp ebp, esi
je 0x510ce5
mov edi, dword [0xb12c44]
mov ecx, dword [edi + esi*4]
mov esi, dword [0xb12c40]
imul ecx, dword [0xb12c50]
add ecx, esi
mov esi, dword [ecx + ebx]
mov ebx, dword [edi + ebp*4]
mov dword [esp + 0x30], ebx
mov ebx, dword [edi + esi*4]
mov dword [edi + ebp*4], ebx
mov edi, dword [0xb12c44]
mov ebx, dword [esp + 0x30]
mov dword [edi + esi*4], ebx
mov esi, dword [0xb12c54]
jmp 0x510ce2
cmp edi, 2
jne 0x510ce5
mov edi, dword [0xb16cd4]
dec ecx
mov ebp, dword [edi + ebp]
mov dword [0xb16cc8], ecx
cmp ebp, ecx
je 0x510ce5
mov esi, dword [0xb16cc4]
mov ebx, dword [0xb16cc0]
mov ecx, dword [esi + ecx*4]
imul ecx, dword [0xb16cd0]
add ecx, ebx
mov ebx, dword [esi + ebp*4]
mov dword [esp + 0x30], ebx
mov edi, dword [ecx + edi]
mov ebx, dword [esi + edi*4]
mov dword [esi + ebp*4], ebx
mov esi, dword [0xb16cc4]
mov ebx, dword [esp + 0x30]
mov dword [esi + edi*4], ebx
mov esi, dword [0xb16cd4]
mov dword [ecx + esi], ebp
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x510d06
mov dword [edx + 0x18], 0
mov dword [edx + 0x10], 0xffffffff
dec dword [0xb16c9c]
jmp 0x5114bd
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov ebp, 0x17
mov dword [eax], edx
mov edx, dword [esp + 0x64]
add eax, 4
mov dword [esp + 0x2c], 0
lea ecx, [edx + 8]
mov dword [eax], ecx
add eax, 4
mov dword [eax], esi
add eax, 4
movsx ecx, word [edx]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov esi, 0x16
add eax, 4
lea ebx, [ecx*8]
sub esi, ecx
sub ebx, ecx
mov dword [esp + 0x18], esi
mov esi, 0x40000000
sub ebp, ecx
shl ebx, 2
sar esi, cl
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x1c0]
lea eax, [esp + 0x268]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x64], esi
fild dword [esp + 0x64]
jmp 0x510d89
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x64]
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x64], edx
sub eax, 4
lea ecx, [ecx + ecx*4]
sub eax, 4
sub eax, 4
lea ecx, [ecx + ecx*4]
sub eax, 4
sub eax, 4
lea edx, [ecx + ecx*8]
mov ecx, dword [ebx + edx*4 + 0xc28ff8]
mov dword [esp + 0x9c], ecx
mov ecx, ebp
fld dword [ebx + edx*4 + 0xc28ff0]
lea ebx, [ebx + edx*4 + 0xc28fe4]
fld st(0)
fmul qword [esp + 0x50]
mov dword [esp + 0x3c], ebx
fistp qword [esp + 0x34]
mov edx, dword [esp + 0x34]
sar edx, cl
fld st(0)
fmul qword [esp + 0x70]
and edx, 0x7ff
fistp qword [esp + 0x34]
mov esi, dword [esp + 0x34]
sar esi, cl
mov ecx, dword [esp + 0x18]
fld dword [esp + 0x9c]
fmul qword [esp + 0x50]
and esi, 0x7ff
fistp qword [esp + 0x34]
mov edi, dword [esp + 0x34]
sar edi, cl
fld dword [esp + 0x9c]
fmul qword [esp + 0x70]
and edi, 0x7ff
fistp qword [esp + 0x34]
mov ebp, dword [esp + 0x34]
sar ebp, cl
mov ecx, dword [ebx + 0x10]
mov ebx, esi
sar ebx, 8
and esi, 0xff
fld st(0)
fmul dword [0x533504]
and ebp, 0x7ff
mov dword [esp + 0x34], ebp
lea ebp, [ebx + ecx*8]
fdiv st(2)
mov ebx, edx
xor ecx, ecx
sar ebx, 8
and edx, 0xff
mov cl, byte [ebx + ebp*8 + 0xc30080]
mov ebx, dword [esp + 0x34]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x3c]
sar ebx, 8
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x3c], edx
lea ebp, [ebx + ecx*8]
mov ebx, edi
sar ebx, 8
xor ecx, ecx
sub eax, 4
mov cl, byte [ebx + ebp*8 + 0xc30080]
mov dword [eax + 0x10], ecx
fstp dword [eax + 0xc]
fild dword [esp + 0x3c]
mov dword [esp + 0x3c], esi
fadd dword [0x5333e0]
fmul dword [0x534be0]
fstp dword [eax + 8]
fild dword [esp + 0x3c]
fadd dword [0x5333e0]
fmul dword [0x534be0]
fstp dword [eax + 4]
fmul qword [esp + 0x58]
mov ebp, dword [esp + 0x48]
sub eax, 4
mov ecx, ebp
and edi, 0xff
fistp qword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
sub eax, 4
sar edx, cl
mov ecx, dword [esp + 0x34]
sub eax, 4
and ecx, 0xff
sub eax, 4
add eax, 0x50
and edx, 0xff
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
mov dword [esp + 0x3c], edi
fadd dword [0x5333e0]
fmul dword [0x534be0]
fstp dword [eax - 0x40]
fld dword [esp + 0x9c]
fdiv st(1)
fstp dword [eax - 0x44]
fild dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x18]
fadd dword [0x5333e0]
fmul dword [0x534be0]
fstp dword [eax - 0x48]
fild dword [esp + 0x3c]
fadd dword [0x5333e0]
fmul dword [0x534be0]
fstp dword [eax - 0x4c]
fld dword [esp + 0x9c]
fmul qword [esp + 0x58]
fistp qword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
sar edx, cl
mov ecx, dword [esp + 0x2c]
and edx, 0xff
inc ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
fild dword [esp + 0x3c]
cmp ecx, edx
mov dword [esp + 0x2c], ecx
fadd dword [0x5333e0]
fmul dword [0x534be0]
fstp dword [eax - 0x50]
jl 0x510d81
test edx, edx
fstp st(0)
lea eax, [esp + 0x240]
jle 0x5113da
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
jmp 0x510fc5
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
fld dword [eax]
fld dword [eax + 4]
add eax, 4
mov dword [esp + 0x58], 0
add eax, 4
fld dword [eax]
fld dword [eax + 4]
add eax, 4
add eax, 4
fld dword [eax]
mov edx, dword [eax + 4]
add eax, 4
add eax, 4
mov dword [esp + 0xc0], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add eax, 4
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
add eax, 4
mov ecx, dword [edx]
mov edx, dword [0xc30060]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax]
add eax, 4
lea ecx, [ecx + ecx*8]
add eax, 4
lea esi, [edx + ecx*4 + 0xc]
mov ecx, dword [eax - 4]
mov dword [edi], esi
lea ecx, [ecx + ecx*8]
lea edx, [edx + ecx*4 + 0xc]
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x70], ecx
lea ecx, [ebx + edi]
add ebx, ecx
add edi, 4
mov dword [esp + 0x1c], ebx
lea ebx, [esp + 0x334]
mov dword [ecx], edx
add ecx, 4
mov dword [esp + 0x44], ebx
mov edx, dword [esp + 0x70]
mov esi, dword [ebx + 0x10]
mov edx, dword [edx]
mov ebp, edx
sar edx, 8
and edx, 3
mov dword [esp + 0x64], edx
mov edx, esi
sar edx, 0x10
mov dword [esp + 0x3c], edx
mov edx, dword [ebx]
mov dword [esp + 0xa4], edx
and esi, 0xff
mov edx, dword [ebx + 4]
mov dword [esp + 0xa8], edx
mov edx, dword [ebx + 8]
mov ebx, dword [esp + 0x6c]
sar ebp, 6
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x58]
and ebp, 3
cmp edx, ebx
jl 0x5110cf
mov edx, dword [esp + 0x44]
mov edx, dword [edx - 4]
mov dword [esp + 0x34], edx
lea edx, [edx + edx*8]
lea edx, [esp + edx*4 + 0x334]
jmp 0x5110d7
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x44]
mov ebx, dword [edx]
mov dword [esp + 0x84], ebx
mov ebx, dword [edx + 4]
mov dword [esp + 0x88], ebx
mov edx, dword [edx + 8]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x64]
test edx, edx
je 0x511190
xor edx, dword [esp + 0x94]
test dl, 1
je 0x51112c
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x80], edx
fld st(3)
jmp 0x51114a
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x80], edx
fld st(2)
fstp dword [esp + 0x68]
fld dword [esp + 0xac]
fmul st(2)
fadd st(5)
fld dword [esp + 0xe4]
fmul st(3)
fadd dword [esp + 0x68]
fstp dword [esp + 0xf8]
fld dword [esp + 0x8c]
fmul st(3)
fadd st(6)
fsub st(1)
fstp dword [esp + 0xc8]
fld dword [esp + 0x80]
fmul st(3)
fadd dword [esp + 0x68]
jmp 0x5111cc
fld dword [esp + 0xa8]
fmul st(2)
fadd st(4)
fld dword [esp + 0xa4]
fmul st(3)
fadd st(4)
fstp dword [esp + 0xf8]
fld dword [esp + 0x88]
fmul st(3)
fadd st(5)
fsub st(1)
fstp dword [esp + 0xc8]
fld dword [esp + 0x84]
fmul st(3)
fadd st(4)
fsub dword [esp + 0xf8]
test ebp, ebp
fstp dword [esp + 0xc4]
je 0x511273
mov edx, ebp
mov ebp, dword [esp + 0x94]
xor edx, ebp
test dl, 1
je 0x511210
mov edx, dword [esp + 0x88]
fld dword [esp + 0xa8]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0xc0]
jmp 0x51122c
mov edx, dword [esp + 0x84]
fld dword [esp + 0xa4]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0xbc]
fmul dword [esp + 0x4c]
mov dword [esp + 0x68], edx
fadd dword [esp + 0x68]
fld dword [esp + 0xac]
fmul dword [esp + 0x4c]
fadd st(3)
fstp dword [esp + 0x104]
fld dword [esp + 0x80]
fmul dword [esp + 0x4c]
fadd dword [esp + 0x68]
fsub st(1)
fstp dword [esp + 0xcc]
fld dword [esp + 0x8c]
fmul dword [esp + 0x4c]
fadd st(3)
jmp 0x5112cb
fld dword [esp + 0xa4]
fmul dword [esp + 0x4c]
fadd dword [esp + 0xbc]
fld dword [esp + 0xa8]
fmul dword [esp + 0x4c]
fadd dword [esp + 0xc0]
fstp dword [esp + 0x104]
fld dword [esp + 0x84]
fmul dword [esp + 0x4c]
fadd dword [esp + 0xbc]
fsub st(1)
fstp dword [esp + 0xcc]
fld dword [esp + 0x88]
fmul dword [esp + 0x4c]
fadd dword [esp + 0xc0]
mov edx, dword [esp + 0x30]
xor ebx, ebx
fsub dword [esp + 0x104]
cmp edx, esi
fstp dword [esp + 0xd0]
jne 0x5112ea
mov ebx, 8
jmp 0x511302
cmp edx, dword [esp + 0x3c]
jne 0x511302
sub esi, 0xff
neg esi
sbb esi, esi
and esi, 0xfffffff8
add esi, 0x18
mov ebx, esi
mov esi, dword [esp + 0x34]
add edi, 4
mov edx, esi
add edi, 4
shl edx, 5
add edx, ebx
add ecx, 4
shl esi, 0x10
or edx, esi
mov esi, dword [esp + 0xf8]
mov dword [edi - 8], edx
mov dword [edi - 4], esi
fxch st(1)
fstp dword [edi]
add edx, 4
mov ebp, dword [esp + 0x6c]
mov dword [ecx - 4], edx
mov edx, dword [esp + 0x104]
fstp dword [ecx]
add ecx, 4
add edi, 4
mov dword [ecx], edx
mov edx, dword [esp + 0x58]
add ecx, 4
cmp edx, ebp
jl 0x511383
mov edx, dword [esp + 0xc4]
add ecx, 4
mov dword [edi], edx
mov edx, dword [esp + 0xc8]
add edi, 4
mov dword [edi], edx
mov edx, dword [esp + 0xcc]
mov dword [ecx - 4], edx
mov edx, dword [esp + 0xd0]
add edi, 4
mov dword [ecx], edx
add ecx, 4
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x44]
mov edx, 4
add ebx, 0x24
add esi, edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x58]
inc esi
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x14]
dec esi
mov dword [esp + 0x14], esi
jne 0x511065
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
fstp st(0)
fstp st(0)
fstp st(0)
add esi, edx
dec ecx
fstp st(0)
fstp st(0)
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], ecx
jne 0x510fbd
jmp 0x5113de
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
test ecx, ecx
je 0x5114b7
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x78]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x60], edx
lea esi, [esp + 0x330]
xor edx, edx
mov ecx, dword [esi + 0x1c]
cmp edx, ebp
mov dword [esp + 0xd4], ecx
mov ecx, dword [esi + 0x20]
mov dword [esp + 0xd8], ecx
jl 0x511427
mov ecx, dword [esi]
jmp 0x511429
mov ecx, edx
lea edi, [ecx + ecx*8]
add eax, 4
add eax, 4
mov ebx, dword [esp + edi*4 + 0x34c]
add eax, 4
mov dword [esp + 0x134], ebx
mov edi, dword [esp + edi*4 + 0x350]
mov dword [esp + 0x138], edi
mov edi, ecx
shl edi, 5
shl ecx, 0x10
fld dword [esp + 0x138]
or edi, ecx
mov ecx, dword [esp + 0xd4]
fsub dword [esp + 0xd8]
mov dword [eax - 0xc], edi
mov dword [eax - 8], ecx
mov ecx, dword [esp + 0xd8]
cmp edx, ebp
fld dword [esp + 0x134]
fsub dword [esp + 0xd4]
mov dword [eax - 4], ecx
jl 0x51149e
fstp dword [eax]
add eax, 4
fstp dword [eax]
add eax, 4
jmp 0x5114a2
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x60]
add esi, 0x24
inc edx
dec ecx
mov dword [esp + 0x60], ecx
jne 0x51140b
jmp 0x5114bd
mov dword [eax], 0
mov ebp, dword [esp + 0xa0]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x130]
inc eax
add ebp, 0x30
cmp eax, ecx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xa0], ebp
jl 0x510082
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret