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

Disassembly:
test dword [0x84efac], 0xffffff80
jne 0x5282a8
test dword [0x84efac], 0xffffffff
jne 0x52a5f8
call fcn.0079f000
jmp fcn.00528278
push edi
push esi
push ebp
push ebx
sub esp, 0xc8
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc4], ecx
mov esi, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov ebx, dword [ecx + eax*4 + 0x7a0]
mov ebp, dword [ecx + edx*4 + 0x1f30]
mov edx, dword [ebp + esi*4 + 0x10]
mov dword [esp + 0xac], edx
mov edi, dword [edx + 0x150]
mov eax, dword [edx + 0x28]
mov dword [ebx + 0x28], eax
lea eax, [edx + 0x58]
lea ecx, [ebp + 0x871c]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x2c], eax
mov eax, dword [edi + 0x10]
mov word [ebx + 0x1a98], ax
lea eax, [ebp + 0x8718]
mov dword [ebx + 0x1aa4], eax
call fcn.0069d498
lea ecx, [ebp + 0x872c]
call fcn.0069d498
lea ecx, [ebp + 0x873c]
call fcn.0069d498
lea ecx, [ebp + 0x874c]
call fcn.0069d498
lea ecx, [ebp + 0x875c]
call fcn.0069d498
lea ecx, [ebp + 0x876c]
call fcn.0069d498
lea ecx, [ebp + 0x877c]
call fcn.0069d498
lea ecx, [ebp + 0x878c]
call fcn.0069d498
lea ecx, [ebp + 0x883c]
call fcn.0069d498
lea ecx, [ebp + 0x886c]
call fcn.0069d498
lea ecx, [ebp + 0x889c]
call fcn.0069d498
lea ecx, [ebp + 0x884c]
call fcn.0069d498
lea ecx, [ebp + 0x887c]
call fcn.0069d498
lea ecx, [ebp + 0x88ac]
call fcn.0069d498
lea ecx, [ebp + 0x885c]
call fcn.0069d498
lea ecx, [ebp + 0x888c]
call fcn.0069d498
lea ecx, [ebp + 0x88bc]
call fcn.0069d498
lea ecx, [ebp + 0x879c]
call fcn.0069d498
lea ecx, [ebp + 0x87ac]
call fcn.0069d498
lea ecx, [ebp + 0x87bc]
call fcn.0069d498
lea ecx, [ebp + 0x87cc]
call fcn.0069d498
lea ecx, [ebp + 0x87dc]
call fcn.0069d498
lea ecx, [ebp + 0x87ec]
call fcn.0069d498
lea ecx, [ebp + 0x87fc]
call fcn.0069d498
lea ecx, [ebp + 0x880c]
call fcn.0069d498
lea ecx, [ebp + 0x881c]
call fcn.0069d498
lea ecx, [ebp + 0x882c]
call fcn.0069d498
lea ecx, [ebp + 0x88cc]
call fcn.0069d498
lea ecx, [ebp + 0x88dc]
call fcn.0069d498
lea ecx, [ebp + 0x88ec]
call fcn.0069d498
lea ecx, [ebp + 0x88fc]
call fcn.0069d498
lea ecx, [ebp + 0x890c]
call fcn.0069d498
lea ecx, [ebp + 0x891c]
call fcn.0069d498
lea ecx, [ebp + 0x892c]
call fcn.0069d498
lea ecx, [ebp + 0x893c]
call fcn.0069d498
lea ecx, [ebp + 0x894c]
call fcn.0069d498
lea ecx, [ebp + 0x895c]
call fcn.0069d498
lea ecx, [ebp + 0x896c]
call fcn.0069d498
xor edx, edx
xor eax, eax
lea ecx, [ebp + 0x8bfc]
lea esi, [ebp + 0x8cfc]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebp
mov ebp, eax
mov edi, edx
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov eax, dword [esp + 0x78]
mov ecx, ebx
mov dword [edi + eax + 0x897c], 0
mov dword [edi + eax + 0x8980], 0
mov dword [edi + eax + 0x8984], 0
mov dword [edi + eax + 0x8988], 0
mov dword [edi + eax + 0x898c], 0
mov byte [edi + eax + 0x8990], 0
mov dword [ebp + eax + 0x8afc], 0
mov dword [ebp + eax + 0x8b00], 0
mov dword [ebp + eax + 0x8b04], 0
call fcn.0069d498
mov ecx, esi
call fcn.0069d498
add edi, 0x18
add ebp, 0x10
add ebx, 0x10
add esi, 0x10
cmp ebp, 0x100
jl 0x5284da
mov edi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x70]
mov esi, dword [ebx + 0x1aa4]
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x528588
movsx edx, word [ebx + 0x1a9e]
cmp eax, edx
jne 0x528594
mov dword [esi + 0x6f4], ebx
inc dword [esi + 0x6f0]
lea edx, [ebx + 0x14]
lea eax, [ebx + 0x18]
push eax
push edx
mov esi, dword [esp + 0xe8]
push esi
mov eax, dword [esp + 0xf0]
push eax
mov ecx, dword [esp + 0xd4]
call fcn.0052ca78
movsx edx, byte [ebp + 0x8e25]
mov esi, 1
xor eax, eax
cmp edx, 0xffffffff
cmove eax, esi
mov byte [ebx + 0x1c], al
push 0
push ebx
mov ecx, dword [esp + 0xcc]
call fcn.00526d18
mov al, byte [edi + 0x20]
test al, al
jne 0x5285ed
fld dword [0x8739f8]
jmp 0x528624
movzx esi, byte [ebx + 0x1a94]
mov eax, dword [esp + 0xac]
movzx edx, byte [eax + 0x140]
fld qword [0x873978]
sub esi, edx
fstp qword [esp]
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
fmul qword [0x873970]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fstp dword [ebx + 0x44]
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x6c], eax
mov edx, dword [edi + 0x18]
mov dword [ebx + 0x70], edx
mov esi, dword [edi + 0x1c]
mov dword [ebx + 0x74], esi
mov eax, dword [edi + 0x494]
xor esi, esi
mov dword [ebx + 0x78], eax
mov eax, dword [edi + 0x498]
mov dword [ebx + 0x7c], eax
mov eax, dword [edi + 0x49c]
mov dword [ebx + 0x80], eax
mov eax, dword [edi + 0x4a0]
mov dword [ebx + 0x84], eax
mov eax, dword [edi + 0x4a4]
mov dword [ebx + 0x88], eax
fld dword [edi + 0x454]
fstp qword [esp + 0x90]
fld dword [edi + 0x46c]
fstp qword [esp + 0x88]
fld dword [edi + 0x470]
fstp qword [esp + 0x98]
fld dword [0x8739fc]
mov dword [esp + 0x78], ebp
fstp qword [esp + 0x80]
mov edx, dword [esi + edi + 0x9688]
add esi, 0x1c
test edx, edx
je 0x52932b
cmp edx, 0x26
je 0x5286db
mov al, byte [esi + edi + 0x9668]
cmp al, 5
je 0x5286db
cmp al, 6
je 0x5286db
cmp al, 7
je 0x5286db
cmp al, 8
jne 0x52932b
lea eax, [edx - 1]
cmp eax, 0x25
ja 0x52932b
mov eax, dword [edx*4 + 0x873a3c]
jmp eax
cmp esi, 0x380
jl 0x5286a9
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0xac]
movzx esi, byte [eax + 0x13e]
fld qword [esp + 0x80]
test esi, esi
fld dword [0x8739f8]
je 0x52938a
movzx ecx, byte [ebx + 0x1a94]
movzx edx, byte [eax + 0x13a]
sub ecx, edx
cmp ecx, esi
jge 0x52938a
fstp st(0)
inc esi
inc ecx
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
fdivrp st(1)
fmul dword [0x8739f8]
movzx esi, byte [eax + 0x13f]
test esi, esi
je 0x5293bf
movzx edx, byte [ebx + 0x1a94]
movzx eax, byte [eax + 0x13b]
sub eax, edx
cmp eax, esi
jge 0x5293bf
inc esi
inc eax
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(1)
fmulp st(1)
mov eax, dword [esp + 0xac]
movzx esi, byte [eax + 0x13c]
test esi, esi
je 0x5293fb
movsx ecx, byte [ebx + 0x1a96]
movzx edx, byte [eax + 0x138]
sub ecx, edx
cmp ecx, esi
jge 0x5293fb
inc esi
inc ecx
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
fdivrp st(1)
fmulp st(1)
movzx esi, byte [eax + 0x13d]
test esi, esi
je 0x529430
movzx eax, byte [eax + 0x139]
movsx edx, byte [ebx + 0x1a96]
sub eax, edx
cmp eax, esi
jge 0x529430
inc esi
inc eax
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(1)
fmulp st(1)
fmul dword [ebx + 0x6c]
fst dword [ebx + 0x6c]
fld dword [edi + 0x14]
fcomi st(2)
jbe 0x529446
fstp st(2)
fdivrp st(1)
fst dword [ebx + 0x6c]
jmp 0x52944f
fstp st(1)
fstp st(0)
xor eax, eax
mov dword [ebx + 0x6c], eax
fld qword [0x873968]
fcompi st(1)
ja 0x52a152
fld dword [ebx + 0x70]
mov eax, dword [ebx + 0x18]
cmp eax, 0xffffffff
fsub dword [edi + 0x18]
fst dword [ebx + 0x70]
je 0x52a538
fxch st(1)
fmul dword [edi + 0x14]
lea eax, [ebx + 0x54]
mov ecx, ebp
fxch st(1)
fadd dword [edi + 0x18]
mov dword [esp + 0xbc], eax
fld dword [0x8739d0]
fld dword [0x8739d4]
fadd st(2)
fmul st(1)
fxch st(2)
fadd st(0)
fxch st(2)
fmul dword [0x8739c8]
fadd dword [0x8739cc]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov esi, edx
xor esi, 0xffffffff
and edx, 0x40000000
and esi, dword [esp + 0x30]
or esi, edx
mov dword [esp + 0x30], esi
fld dword [esp + 0x30]
faddp st(1)
fmul dword [0x8739c4]
fsubr dword [0x8739f8]
fmul st(2)
fstp dword [ebx + 0x50]
fmul dword [0x8739c8]
fadd dword [0x8739cc]
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov edx, eax
mov dword [esp + 0x34], eax
xor edx, 0xffffffff
and eax, 0x40000000
and edx, dword [esp + 0x30]
or edx, eax
mov dword [esp + 0x30], edx
fld dword [0x8739d0]
fadd dword [esp + 0x30]
fmul dword [0x8739c4]
fmulp st(1)
fstp dword [ebx + 0x54]
movss xmm4, dword [ebp + 0x8e3c]
movss xmm6, dword [ebp + 0x8e34]
movss xmm0, dword [0x8739d0]
movss xmm1, dword [0x8739d4]
addss xmm1, xmm6
mulss xmm1, xmm0
movss xmm7, dword [0x8739cc]
movss xmm3, dword [0x8739c8]
mulss xmm1, xmm3
addss xmm1, xmm7
movss xmm5, dword [0x8739f8]
addss xmm6, xmm6
movss dword [esp + 0x38], xmm1
mov eax, dword [esp + 0x38]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov edx, eax
xor edx, 0xffffffff
and eax, 0x40000000
and edx, dword [esp + 0x38]
or edx, eax
movss xmm1, dword [0x8739c4]
mov dword [esp + 0x38], edx
movss xmm2, dword [esp + 0x38]
addss xmm2, xmm0
mulss xmm2, xmm1
subss xmm5, xmm2
mulss xmm5, xmm4
movss dword [esp + 0xb4], xmm5
mulss xmm6, xmm3
addss xmm7, xmm6
movss dword [esp + 0x38], xmm7
mov eax, dword [esp + 0x38]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov dword [esp + 0x3c], eax
mov edx, eax
xor edx, 0xffffffff
and edx, dword [esp + 0x38]
and eax, 0x40000000
or edx, eax
mov dword [esp + 0x38], edx
addss xmm0, dword [esp + 0x38]
mulss xmm0, xmm1
mulss xmm4, xmm0
movss dword [esp + 0xb8], xmm4
call fcn.006c0638
movzx eax, al
test eax, eax
jne 0x52966d
lea eax, [ebx + 0x50]
movss xmm0, dword [ebx + 0x50]
mulss xmm0, dword [esp + 0xb4]
mov dword [esp + 0xc0], eax
movss xmm1, dword [ebx + 0x54]
mulss xmm1, dword [esp + 0xb8]
movss dword [ebx + 0x50], xmm0
movss dword [ebx + 0x54], xmm1
jmp 0x52969e
add esp, 0xfffffff8
movss xmm0, dword [esp + 0xbc]
movss xmm1, dword [esp + 0xc0]
movss dword [esp], xmm0
mov ecx, ebp
movss dword [esp + 4], xmm1
call fcn.006c06c8
lea eax, [ebx + 0x50]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xac]
movss xmm0, dword [eax + 0x144]
movss xmm4, dword [eax + 0x148]
movss xmm7, dword [0x8739d0]
movss xmm1, dword [0x8739d4]
addss xmm1, xmm4
mulss xmm1, xmm7
movss xmm6, dword [0x8739cc]
movss xmm3, dword [0x8739c8]
mulss xmm1, xmm3
addss xmm1, xmm6
movss xmm5, dword [0x8739c4]
movss dword [esp + 0x40], xmm1
mov edx, dword [esp + 0x40]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov esi, edx
xor esi, 0xffffffff
and edx, 0x40000000
and esi, dword [esp + 0x40]
or esi, edx
movss xmm1, dword [0x8739f8]
mov dword [esp + 0x40], esi
movss xmm2, dword [esp + 0x40]
addss xmm2, xmm7
mulss xmm2, xmm5
subss xmm1, xmm2
mulss xmm1, xmm0
addss xmm4, xmm4
mulss xmm4, xmm3
addss xmm6, xmm4
movss dword [esp + 0x40], xmm6
mov eax, dword [esp + 0x40]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov dword [esp + 0x44], eax
mov edx, eax
xor edx, 0xffffffff
and edx, dword [esp + 0x40]
and eax, 0x40000000
or edx, eax
mov dword [esp + 0x40], edx
addss xmm7, dword [esp + 0x40]
mulss xmm7, xmm5
mulss xmm0, xmm7
mov eax, dword [esp + 0xc0]
mulss xmm1, dword [eax]
movss dword [eax], xmm1
mulss xmm0, dword [ebx + 0x54]
movss dword [ebx + 0x54], xmm0
mov dword [ebx + 0x68], 0x3f800000
movss xmm3, dword [0x8739c0]
addss xmm3, dword [ebp + 0x8e34]
mov edx, dword [esp + 0xac]
addss xmm3, dword [edx + 0x148]
addss xmm3, dword [edi + 0x18]
addss xmm3, dword [ebx + 0x70]
mulss xmm3, dword [0x8739c8]
addss xmm3, dword [0x8739cc]
movss dword [esp + 0x48], xmm3
mov esi, dword [esp + 0x48]
and esi, 0x40000000
add esi, esi
sar esi, 0x1f
and esi, 0x7fffffff
mov dword [esp + 0x4c], esi
mov eax, esi
xor eax, 0xffffffff
and eax, dword [esp + 0x48]
and esi, 0x40000000
or eax, esi
mov dword [esp + 0x48], eax
movss xmm4, dword [0x8739d0]
addss xmm4, dword [esp + 0x48]
mulss xmm4, dword [0x8739c4]
movss dword [ebx + 0x4c], xmm4
movss xmm5, dword [edx + 0x14c]
mulss xmm5, dword [ebp + 0x8e38]
mulss xmm5, dword [0x84f428]
movss dword [ebx + 0x48], xmm5
mov cl, byte [edi + 0x21]
test cl, cl
je 0x529895
mov eax, dword [edi + 0x9654]
test eax, eax
jne 0x529895
mov dword [ebx + 0x38], 0xffffffff
mov eax, edx
mov edx, dword [eax + 0x134]
neg edx
mov dword [esp + 0xb0], edx
mov dword [ebx + 0x34], edx
mov edx, dword [eax + 0x130]
neg edx
mov dword [ebx + 0x1ab4], edx
mov eax, dword [eax + 0x134]
neg eax
mov dword [ebx + 0x1ab8], eax
jmp 0x5298c6
mov dword [ebx + 0x38], 1
mov eax, edx
mov edx, dword [eax + 0x130]
mov dword [esp + 0xb0], edx
mov dword [ebx + 0x34], edx
mov edx, dword [eax + 0x134]
mov dword [ebx + 0x1ab4], edx
mov eax, dword [eax + 0x130]
mov dword [ebx + 0x1ab8], eax
xor ecx, ecx
cmp edx, 0
cmovl ecx, edx
mov edx, dword [ebx + 0x28]
mov dword [ebx + 0x1ab4], ecx
mov dword [esp + 0x68], edx
mov edx, dword [edx + 0x35c]
neg edx
cmp ecx, edx
jge 0x5298ed
mov dword [ebx + 0x1ab4], edx
xor edx, edx
cmp eax, 0
cmovg edx, eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x1ab8], edx
mov eax, dword [eax + 0x35c]
cmp edx, eax
jle 0x529919
mov dword [ebx + 0x1ab8], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x35c]
mov dword [esp + 0x60], eax
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0x68]
fild dword [esp + 0x60]
fmul qword [esp + 0x90]
mov dword [esp + 0x60], ebp
fild dword [esp + 0x60]
faddp st(1)
fstp dword [esp + 0x58]
cvttss2si ebp, dword [esp + 0x58]
mov eax, ebp
sar eax, 0x1f
mov dword [ebx + 0x34], ebp
mov edx, dword [esi + 0x35c]
dec edx
xor eax, 0xffffffff
and ebp, eax
mov ecx, ebp
sub ecx, edx
sub edx, ebp
sar edx, 0x1f
and ecx, edx
sub ebp, ecx
mov dword [ebx + 0x34], ebp
mov al, byte [edi + 0x450]
test al, al
je 0x5299ca
mov eax, esi
lea ecx, [eax + 0x1b0]
mov edx, dword [eax + 0x1b0]
call dword [edx + 8]
movzx eax, al
test eax, eax
jne 0x529996
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x68], eax
jmp 0x5299ca
mov esi, dword [ebx + 0x28]
lea ecx, [esi + 0x1b0]
mov dword [esp + 0x78], ecx
push 0
push dword [ebx + 0x34]
call fcn.006d37b4
mov ebp, eax
mov edx, dword [esi + 0x1b0]
mov ecx, dword [esp + 0x78]
call dword [edx + 0xc]
mov eax, dword [eax + ebp*8 + 8]
mov edx, dword [ebx + 0x28]
mov dword [ebx + 0x34], eax
mov dword [esp + 0x68], edx
xor eax, eax
mov edx, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0xb0], edx
xor edx, edx
mov esi, dword [esp + 0xb0]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x70], ebx
lea esi, [esi]
mov cl, byte [esi + edx + 0xd]
test cl, cl
je 0x529a67
mov dword [esp + 0xac], eax
mov ebx, dword [esp + 0x70]
mov ebp, dword [ebx + 0x38]
mov dword [ebx + 0x30], eax
mov ecx, eax
shl ecx, 4
lea ebx, [ecx + eax*8]
mov edi, dword [esp + 0x68]
mov ecx, dword [edi + 0x35c]
cmp ebp, 1
je 0x52a525
mov edi, dword [ebx + esi + 4]
add edi, 0xfffffffc
mov ebp, edi
sar ebp, 0x1f
xor ebp, 0xffffffff
and edi, ebp
add edi, dword [ebx + esi]
neg edi
add edi, ecx
add edi, 0xfffffffc
mov dword [esp + 0xa8], edi
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0xa8]
add ecx, dword [ebx + 0x1ab4]
cmp ebp, ecx
jl 0x52a51a
add edx, 0x18
inc eax
cmp eax, 8
jl 0x5299f8
mov ecx, dword [esp + 0xac]
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
cmp eax, 8
jl 0x529a90
mov ecx, 8
mov dword [ebx + 0x30], 8
mov ebp, 1
mov esi, dword [esp + 0x68]
mov al, byte [esi + 0x20]
mov dword [esp + 0x74], ebp
test al, al
je 0x52a4f0
mov ebp, ecx
shl ebp, 4
lea edx, [ebp + ecx*8]
mov dword [esp + 0xac], edx
mov eax, dword [esp + 0xb0]
lea ebp, [eax + edx]
lea edx, [eax + edx]
movsx eax, byte [ebp + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
je 0x529bf7
mov esi, dword [ebx + 0x34]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x7c], edi
mov edi, edx
mov edx, dword [esp + 0x68]
cmp esi, dword [edi]
jle 0x529bf3
mov edi, ecx
cmp ecx, 8
jge 0x529b98
mov eax, edi
shl eax, 4
lea eax, [eax + edi*8]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0xb0]
mov dl, byte [ebx + eax + 0xd]
test dl, dl
je 0x529b7f
mov edx, dword [esp + 0x70]
mov esi, edi
shl esi, 4
mov dword [edx + 0x30], edi
mov edx, dword [edx + 0x38]
lea ebp, [esi + edi*8]
mov dword [esp + 0xac], ebp
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x35c]
cmp edx, 1
je 0x52a178
lea ebp, [ebx + ebp]
mov edx, dword [ebp + 4]
add edx, 0xfffffffc
mov esi, edx
sar esi, 0x1f
xor esi, 0xffffffff
and edx, esi
add edx, dword [ebp]
neg edx
add edx, ecx
add edx, 0xfffffffc
mov dword [esp + 0x6c], edx
mov esi, dword [esp + 0x70]
add ecx, dword [esi + 0x1ab4]
cmp edx, ecx
jl 0x52a163
add eax, 0x18
inc edi
cmp edi, 8
jl 0x529b18
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x70]
cmp edi, 8
jl 0x529bbd
mov dword [ebx + 0x30], 8
mov ebp, 0xc0
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xac], ebp
lea ebp, [eax + 0xc0]
inc ecx
mov al, byte [edx + 0x20]
test al, al
je 0x529be1
mov edi, ebp
movsx eax, byte [ebp + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
jne 0x529aea
mov edi, dword [esp + 0x7c]
jmp 0x529bf7
mov edi, dword [esp + 0x7c]
movsx eax, byte [ebp + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x529bf7
mov edi, dword [esp + 0x7c]
test eax, eax
jne 0x52a298
xor esi, esi
movzx eax, byte [ebx + 0x1a0c]
test eax, eax
jle 0x529e2b
fldz
mov dword [esp + 0x7c], edi
fstp qword [esp + 0xa0]
lea esi, [esi]
lea edi, [edi]
mov ebp, dword [ebx + esi*4 + 0x8c]
test ebp, ebp
je 0x529e1e
mov al, byte [ebp + 4]
cmp al, 5
jne 0x529e0f
mov edx, dword [esp + 0x7c]
movsx eax, word [edx + 0xe]
movzx edi, byte [ebx + 0x1a94]
cmp eax, 0
cmovl eax, edi
movzx eax, al
sub eax, edi
mov dword [ebp + 0xac], eax
fld qword [0x873978]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fst qword [esp + 0x98]
fxch st(1)
fstp qword [esp]
fmul dword [ebp + 0x18]
fmul qword [0x873970]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fstp qword [esp + 0x90]
mov al, byte [ebp + 0xb4]
cmp al, 1
jne 0x529cac
fld dword [ebp + 0xb0]
fstp qword [esp + 0xa0]
test al, al
jne 0x529cdd
fld qword [esp + 0x98]
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0x80000000
xor edx, eax
mov dword [esp + 0x50], edx
fld dword [ebp + 0xb0]
fmul dword [esp + 0x50]
fstp qword [esp + 0xa0]
fld qword [esp + 0xa0]
fmul qword [0x873960]
fmul dword [ebp + 0x14]
fstp qword [esp + 0x58]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x529d38
mov edx, eax
neg ecx
add ecx, 0x41e
shld edx, edi, 0xb
or edx, 0x80000000
shr edx, cl
mov edi, edx
neg edi
cmp eax, 0
cmovge edi, edx
jmp 0x529d3a
xor edi, edi
mov dword [ebp + 0xb8], edi
test edi, edi
jle 0x52a1b8
fld qword [esp + 0x90]
fstp qword [esp]
mov dword [esp + 0x60], edi
fild dword [esp + 0x60]
fdivr qword [0x873958]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fstp dword [ebp + 0xa4]
fld qword [esp + 0x90]
fstp dword [ebp + 0x94]
test edi, edi
jle 0x52a198
movss xmm1, dword [0x8739f8]
movss xmm3, dword [0x8739fc]
cvtsi2ss xmm0, edi
divss xmm1, xmm0
movss dword [ebp + 0xa8], xmm1
mov eax, dword [ebp + 0xac]
movss xmm2, dword [ebp + 0x18]
mov edx, dword [ebp + 0x18]
test eax, eax
jl 0x52a188
xorps xmm0, xmm0
movss xmm1, xmm2
movss xmm2, xmm0
subss xmm2, xmm1
movss dword [ebp + 0xa0], xmm2
comiss xmm2, dword [0x8739fc]
jae 0x529df8
xorps xmm0, xmm0
subss xmm0, xmm2
movss dword [ebp + 0x9c], xmm0
jmp 0x529e00
movss dword [ebp + 0x9c], xmm3
movss dword [ebp + 0x98], xmm3
mov ebp, dword [ebx + esi*4 + 0x8c]
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x14]
movzx eax, byte [ebx + 0x1a0c]
inc esi
cmp esi, eax
jl 0x529c28
mov edi, dword [esp + 0x7c]
xor ebp, ebp
test eax, eax
jle 0x529e76
mov dword [esp + 0x7c], edi
mov esi, dword [esp + 0xc4]
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebx + ebp*4 + 0x8c]
test ecx, ecx
je 0x529e6d
mov edi, dword [ecx + 0x88]
test edi, edi
je 0x529e6d
movzx edx, word [ecx + 0x8c]
cmp edx, 1
je 0x52a262
inc ebp
cmp ebp, eax
jl 0x529e48
mov edi, dword [esp + 0x7c]
mov edx, dword [ebx + 0x1aa4]
cmp ebx, dword [edx + 0x6f4]
jne 0x529eb5
xor ebp, ebp
test eax, eax
jle 0x529eb5
mov ecx, dword [ebx + ebp*4 + 0x8c]
test ecx, ecx
je 0x529eb0
mov eax, dword [ecx]
movzx edx, byte [ebx + ebp + 0x1a0d]
push edx
push dword [ebx + 0x1aa4]
call dword [eax + 4]
movzx eax, byte [ebx + 0x1a0c]
inc ebp
cmp ebp, eax
jl 0x529e8a
mov ecx, dword [ebx + 0x1a78]
test ecx, ecx
je 0x529ec4
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ebp, dword [ebx + 0x1a70]
test ebp, ebp
je 0x529fbe
mov eax, dword [ebp + 8]
cmp eax, 0x20
je 0x529edf
cmp eax, 0x21
jne 0x529f4a
mov al, byte [edi + 0x20]
test al, al
jne 0x529eee
fld dword [0x8739f8]
jmp 0x529f18
movzx eax, byte [ebx + 0x1a94]
add eax, 0xffffffbb
fld qword [0x873978]
fstp qword [esp]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fmul qword [0x873970]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fmul qword [0x873940]
mov esi, dword [ebp]
mov eax, dword [esp + 0xc4]
fmul dword [ebx + 0x48]
mov ecx, ebp
fmul dword [ebx + 0x74]
fdivr dword [eax + 0x1ae4]
fstp dword [esp + 0x58]
cvttss2si edx, dword [esp + 0x58]
push edx
call dword [esi + 4]
mov ebp, dword [ebx + 0x1a70]
mov eax, dword [ebp]
add esp, 0xfffffff8
mov ecx, ebp
fild dword [ebx + 0x34]
fstp qword [esp]
call dword [eax + 0x14]
mov dword [ebx + 0x34], 0
mov al, byte [edi + 0x967c]
test al, al
je 0x529fbe
xor eax, eax
mov edx, dword [esp + 0xc4]
mov edx, dword [edx + 0xfbc]
test edx, edx
jle 0x529f9b
mov dword [esp + 0x7c], edi
mov esi, dword [esp + 0xdc]
cmp eax, esi
jne 0x52a1d8
inc eax
cmp eax, edx
jl 0x529f8a
mov edi, dword [esp + 0x7c]
cmp eax, edx
jge 0x529fbe
mov edx, dword [esp + 0xc4]
mov eax, dword [edx + eax*4 + 0x7a0]
mov ecx, dword [ebx + 0x1a70]
mov ebp, dword [ecx]
push dword [eax + 0x1a70]
call dword [ebp + 0x40]
mov ecx, dword [ebx + 0x1a74]
test ecx, ecx
je 0x529fd6
add esp, 0xfffffff8
fild dword [ebx + 0x34]
fstp qword [esp]
call fcn.006e508c
movss xmm4, dword [ebx + 0x68]
mov ebp, dword [esp + 0xc0]
movss xmm3, dword [ebp]
mulss xmm3, xmm4
mov esi, dword [esp + 0xbc]
movss dword [ebx + 0x60], xmm3
movss xmm5, dword [esi]
mulss xmm5, xmm4
movss dword [ebx + 0x64], xmm5
mov al, byte [edi + 0x22]
test al, al
je 0x52a130
mov eax, 1
xor esi, esi
movzx edx, byte [ebx + 0x1a0c]
test edx, edx
jle 0x52a132
mov ecx, esi
shl ecx, 7
lea ebp, [ecx + esi*4]
mov dword [esp + 0x68], eax
mov ecx, dword [ebx + esi*4 + 0x8c]
test ecx, ecx
je 0x52a11b
mov al, byte [ecx + 4]
cmp al, 1
jne 0x52a11b
mov eax, dword [ecx]
call dword [eax + 0x5c]
lea ecx, [ebx + ebp]
xor eax, eax
mov edx, dword [ecx + 0x1cc]
test edx, edx
jle 0x52a102
cmp edx, 6
jl 0x52a0dc
lea edi, [edx - 6]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebx
nop
movzx ebx, word [ecx + eax*8 + 0x14c]
cmp ebx, 1
je 0x52a258
movzx ebx, word [ecx + eax*8 + 0x154]
cmp ebx, 1
je 0x52a5e9
movzx ebx, word [ecx + eax*8 + 0x15c]
cmp ebx, 1
je 0x52a5dc
movzx ebx, word [ecx + eax*8 + 0x164]
cmp ebx, 1
je 0x52a5cf
movzx ebx, word [ecx + eax*8 + 0x16c]
cmp ebx, 1
je 0x52a5c2
add eax, 5
cmp eax, edi
jle 0x52a078
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x70], ebx
nop
lea esi, [esi]
movzx ebx, word [ecx + eax*8 + 0x14c]
cmp ebx, 1
je 0x52a23b
inc eax
cmp eax, edx
jl 0x52a0e8
mov ebx, dword [esp + 0x70]
xor eax, eax
xor edx, edx
cmp eax, 0
mov eax, dword [esp + 0x68]
cmovne eax, edx
movzx edx, byte [ebx + 0x1a0c]
mov dword [esp + 0x68], eax
add ebp, 0x84
inc esi
cmp esi, edx
jl 0x52a031
mov eax, dword [esp + 0x68]
jmp 0x52a132
xor eax, eax
movzx eax, al
test eax, eax
je 0x52a140
mov dword [ebx + 0x30], 8
mov eax, 1
add esp, 0xc8
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
fstp st(0)
xor eax, eax
add esp, 0xc8
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x70]
jmp 0x529b98
lea ebp, [ebx + ebp]
mov edx, dword [ebp]
mov dword [esp + 0x6c], edx
jmp 0x529b6d
mov dword [ebp + 0xa0], edx
jmp 0x529dd1
movss xmm3, dword [0x8739fc]
mov dword [ebp + 0xa8], 0
jmp 0x529da4
mov dword [ebp + 0xa4], 0x3f800000
mov dword [ebp + 0x94], 0x3f800000
jmp 0x529d7c
mov ebp, dword [esp + 0xc4]
mov ebp, dword [ebp + eax*4 + 0x7a0]
mov cl, byte [ebp]
test cl, cl
je 0x529f92
mov cl, byte [ebp + 9]
test cl, cl
je 0x529f92
movsx ecx, word [ebp + 0x1a9a]
mov edi, dword [esp + 0xe4]
cmp ecx, edi
jne 0x529f92
mov ecx, dword [ebp + 0x1a70]
test ecx, ecx
je 0x529f92
mov ecx, dword [ecx + 8]
mov ebp, dword [ebx + 0x1a70]
cmp ecx, dword [ebp + 8]
jne 0x529f92
mov edi, dword [esp + 0x7c]
jmp 0x529f9b
mov ebx, dword [esp + 0x70]
mov eax, 1
jmp 0x52a104
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52a23f
mov edx, dword [edi + 0x84]
test edx, edx
jne 0x529e6d
mov edx, dword [ecx]
mov eax, dword [esi + 0x1f80]
add eax, dword [ebx + 0x3c]
push eax
call dword [edx + 0x34]
movzx eax, byte [ebx + 0x1a0c]
jmp 0x529e6d
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x68]
mov dword [ebx + 0x1aa8], ecx
mov al, byte [edi + 0x468]
test al, al
mov byte [ebx + 0x1ac8], al
mov ecx, dword [edx + 0x35c]
fild dword [edx + 0x35c]
fld qword [esp + 0x88]
fmul st(1)
fstp dword [esp + 0x58]
cvttss2si esi, dword [esp + 0x58]
mov dword [esp + 0xa8], esi
fmul qword [esp + 0x98]
fstp dword [esp + 0x58]
cvttss2si edx, dword [esp + 0x58]
mov dword [esp + 0x6c], edx
je 0x52a431
mov edx, dword [ebx + 0x38]
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x74], eax
cmp edx, 1
je 0x52a4db
mov edx, dword [ebp]
add edx, 0xfffffffc
mov eax, edx
sar eax, 0x1f
xor eax, 0xffffffff
and edx, eax
mov ebp, dword [esp + 0x74]
add ebp, edx
neg ebp
add ebp, ecx
add ebp, 0xfffffffc
mov dword [esp + 0x74], ebp
mov eax, esi
mov ebp, dword [esp + 0x6c]
lea edx, [ebp + edx + 4]
add eax, dword [esp + 0x74]
sub ecx, edx
dec ecx
mov dword [esp + 0x6c], edx
mov esi, eax
sar esi, 0x1f
xor esi, 0xffffffff
and eax, esi
mov edx, eax
sub edx, ecx
sub ecx, eax
sar ecx, 0x1f
and edx, ecx
sub eax, edx
mov ecx, dword [esp + 0x68]
add ecx, 0x1b0
mov dword [esp + 0x68], ecx
push 0
push eax
call fcn.006d37b4
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebp, dword [esp + 0x78]
mov ecx, dword [eax + ebp*8 + 8]
mov esi, ecx
mov dword [esp + 0x78], ecx
mov ebp, dword [ebx + 0x28]
mov eax, dword [ebp + 0x35c]
sub esi, dword [esp + 0x74]
mov edx, dword [esp + 0x6c]
add edx, ecx
mov dword [esp + 0xa8], esi
dec eax
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0xffffffff
and edx, ecx
mov ecx, edx
sub ecx, eax
sub eax, edx
sar eax, 0x1f
and ecx, eax
sub edx, ecx
lea ecx, [ebp + 0x1b0]
mov dword [esp + 0x74], ecx
push 1
push edx
call fcn.006d37b4
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x1b0]
mov ecx, dword [esp + 0x74]
call dword [eax + 0xc]
mov ebp, dword [esp + 0x6c]
mov eax, dword [eax + ebp*8 + 8]
mov esi, dword [ebx + 0x30]
sub eax, dword [esp + 0x78]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
add eax, 4
mov edx, dword [ebx + 0x2c]
mov ecx, esi
mov dword [esp + 0xb0], edx
shl ecx, 4
lea ecx, [ecx + esi*8]
mov dword [esp + 0xac], ecx
lea ebp, [edx + ecx]
mov ecx, dword [ebp + 4]
add ecx, 0xfffffffc
mov edx, ecx
sar edx, 0x1f
xor edx, 0xffffffff
and ecx, edx
sub eax, ecx
add eax, 0xfffffffc
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0x38]
cmp eax, 1
je 0x52a4c8
mov edx, dword [ebx + 0x28]
mov edx, dword [edx + 0x35c]
mov eax, dword [ebp + 4]
add eax, 0xfffffffc
mov ecx, eax
sar ecx, 0x1f
xor ecx, 0xffffffff
and eax, ecx
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
add eax, dword [esi + ecx]
sub edx, eax
add edx, 0xfffffffc
mov esi, dword [esp + 0xa8]
add esi, edx
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x1ab0], esi
mov edx, dword [ebp + 4]
add edx, 0xfffffffc
mov ebp, edx
sar ebp, 0x1f
xor ebp, 0xffffffff
and edx, ebp
lea ecx, [eax + edx + 4]
xor al, al
mov dword [ebx + 0x1aac], ecx
mov edx, dword [esp + 0xb0]
mov byte [edx + 0xe], al
mov byte [edx + 0x26], al
mov byte [edx + 0x3e], al
mov byte [edx + 0x56], al
mov byte [edx + 0x6e], al
mov byte [edx + 0x86], al
mov byte [edx + 0x9e], al
mov byte [edx + 0xb6], al
jmp 0x529bff
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov edx, dword [eax + edx]
jmp 0x52a46c
mov edx, dword [ebp]
add edx, 0xfffffffc
mov eax, edx
sar eax, 0x1f
xor eax, 0xffffffff
and edx, eax
jmp 0x52a32b
mov eax, ecx
shl eax, 4
lea ecx, [eax + ecx*8]
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0xb0]
lea ebp, [edx + ecx]
movsx eax, byte [ebp + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x529bf7
mov ecx, eax
mov edi, dword [esp + 0x7c]
jmp 0x529a7f
mov ebx, dword [ebx + esi]
mov dword [esp + 0xa8], ebx
jmp 0x529a4e
fstp st(0)
fstp st(0)
mov ecx, ebp
call fcn.006c0638
movzx eax, al
test eax, eax
jne 0x52a57c
movss xmm0, dword [ebx + 0x6c]
lea eax, [ebx + 0x50]
mulss xmm0, dword [edi + 0x14]
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0xac]
mulss xmm0, dword [edx + 0x144]
mulss xmm0, dword [ebp + 0x8e3c]
movss dword [ebx + 0x50], xmm0
jmp 0x52a5ae
mov eax, dword [ebp + 0x8e3c]
mov ecx, ebp
push eax
push eax
call fcn.006c06c8
movss xmm0, dword [ebx + 0x6c]
lea eax, [ebx + 0x50]
mov edx, dword [esp + 0xac]
mov dword [esp + 0xc0], eax
mulss xmm0, dword [edx + 0x144]
movss dword [ebx + 0x50], xmm0
lea eax, [ebx + 0x54]
mov dword [esp + 0xbc], eax
movss dword [ebx + 0x54], xmm0
jmp 0x52979f
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52a23f
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52a23f
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52a23f
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52a23f
push edi
push esi
push ebp
push ebx
sub esp, 0xe0
mov ebx, dword [esp + 0xf4]
mov dword [esp + 0xd8], ecx
mov ebp, dword [esp + 0xf8]
mov esi, dword [esp + 0xfc]
mov ebx, dword [ecx + ebx*4 + 0x7a0]
mov esi, dword [ecx + esi*4 + 0x1f30]
mov eax, dword [esi + ebp*4 + 0x10]
mov dword [esp + 0xb4], eax
mov ebp, dword [eax + 0x150]
mov edx, dword [eax + 0x28]
mov dword [ebx + 0x28], edx
lea edi, [eax + 0x58]
lea eax, [esi + 0x8718]
mov dword [ebx + 0x40], 0
lea ecx, [esi + 0x871c]
mov dword [ebx + 0x2c], edi
mov edx, dword [ebp + 0x10]
mov word [ebx + 0x1a98], dx
mov dword [ebx + 0x1aa4], eax
call fcn.0069d498
lea ecx, [esi + 0x872c]
call fcn.0069d498
lea ecx, [esi + 0x873c]
call fcn.0069d498
lea ecx, [esi + 0x874c]
call fcn.0069d498
lea ecx, [esi + 0x875c]
call fcn.0069d498
lea ecx, [esi + 0x876c]
call fcn.0069d498
lea ecx, [esi + 0x877c]
call fcn.0069d498
lea ecx, [esi + 0x878c]
call fcn.0069d498
lea ecx, [esi + 0x883c]
call fcn.0069d498
lea ecx, [esi + 0x886c]
call fcn.0069d498
lea ecx, [esi + 0x889c]
call fcn.0069d498
lea ecx, [esi + 0x884c]
call fcn.0069d498
lea ecx, [esi + 0x887c]
call fcn.0069d498
lea ecx, [esi + 0x88ac]
call fcn.0069d498
lea ecx, [esi + 0x885c]
call fcn.0069d498
lea ecx, [esi + 0x888c]
call fcn.0069d498
lea ecx, [esi + 0x88bc]
call fcn.0069d498
lea ecx, [esi + 0x879c]
call fcn.0069d498
lea ecx, [esi + 0x87ac]
call fcn.0069d498
lea ecx, [esi + 0x87bc]
call fcn.0069d498
lea ecx, [esi + 0x87cc]
call fcn.0069d498
lea ecx, [esi + 0x87dc]
call fcn.0069d498
lea ecx, [esi + 0x87ec]
call fcn.0069d498
lea ecx, [esi + 0x87fc]
call fcn.0069d498
lea ecx, [esi + 0x880c]
call fcn.0069d498
lea ecx, [esi + 0x881c]
call fcn.0069d498
lea ecx, [esi + 0x882c]
call fcn.0069d498
lea ecx, [esi + 0x88cc]
call fcn.0069d498
lea ecx, [esi + 0x88dc]
call fcn.0069d498
lea ecx, [esi + 0x88ec]
call fcn.0069d498
lea ecx, [esi + 0x88fc]
call fcn.0069d498
lea ecx, [esi + 0x890c]
call fcn.0069d498
lea ecx, [esi + 0x891c]
call fcn.0069d498
lea ecx, [esi + 0x892c]
call fcn.0069d498
lea ecx, [esi + 0x893c]
call fcn.0069d498
lea ecx, [esi + 0x894c]
call fcn.0069d498
lea ecx, [esi + 0x895c]
call fcn.0069d498
lea ecx, [esi + 0x896c]
call fcn.0069d498
xor edx, edx
xor eax, eax
lea ecx, [esi + 0x8bfc]
lea edi, [esi + 0x8cfc]
mov dword [esp + 0x78], ebp
mov dword [esp + 0xb8], esi
mov ebp, eax
mov esi, edx
mov dword [esp + 0x70], ebx
mov ebx, ecx
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + 0xb8]
mov ecx, ebx
mov dword [esi + eax + 0x897c], 0
mov dword [esi + eax + 0x8980], 0
mov dword [esi + eax + 0x8984], 0
mov dword [esi + eax + 0x8988], 0
mov dword [esi + eax + 0x898c], 0
mov byte [esi + eax + 0x8990], 0
mov dword [ebp + eax + 0x8afc], 0
mov dword [ebp + eax + 0x8b00], 0
mov dword [ebp + eax + 0x8b04], 0
call fcn.0069d498
mov ecx, edi
call fcn.0069d498
add esi, 0x18
add ebp, 0x10
add ebx, 0x10
add edi, 0x10
cmp ebp, 0x100
jl 0x52a838
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0xb8]
mov ebx, dword [esp + 0x70]
mov eax, dword [ebx + 0x1aa4]
mov edi, dword [eax]
cmp edi, 0xffffffff
je 0x52a8ec
movsx edx, word [ebx + 0x1a9e]
cmp edi, edx
jne 0x52a8f8
mov dword [eax + 0x6f4], ebx
inc dword [eax + 0x6f0]
lea edi, [ebx + 0x14]
lea eax, [ebx + 0x18]
push eax
push edi
mov edx, dword [esp + 0x100]
push edx
mov eax, dword [esp + 0x108]
push eax
mov ecx, dword [esp + 0xe8]
call fcn.0052ca78
mov dl, byte [esi + 0x8e25]
cmp dl, 0xff
sete al
mov byte [ebx + 0x1c], al
push 0
push ebx
mov ecx, dword [esp + 0xe0]
call fcn.00526d18
mov al, byte [ebp + 0x20]
test al, al
jne 0x52a949
fld dword [0x873b50]
jmp 0x52a980
movzx eax, byte [ebx + 0x1a94]
mov edi, dword [esp + 0xb4]
movzx edx, byte [edi + 0x140]
fld qword [0x873b10]
sub eax, edx
fstp qword [esp]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fmul qword [0x873b08]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fstp dword [ebx + 0x44]
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebx + 0x74], eax
mov eax, dword [ebp + 0x494]
mov dword [ebx + 0x78], eax
mov eax, dword [ebp + 0x498]
mov dword [ebx + 0x7c], eax
mov edi, dword [ebp + 0x49c]
mov dword [ebx + 0x80], edi
mov edx, dword [ebp + 0x4a0]
xor edi, edi
mov dword [ebx + 0x84], edx
mov eax, dword [ebp + 0x4a4]
mov dword [ebx + 0x88], eax
fld dword [ebp + 0x454]
fstp qword [esp + 0x88]
fld dword [ebp + 0x46c]
fstp qword [esp + 0x90]
fld dword [ebp + 0x470]
fstp qword [esp + 0xa0]
fld dword [0x873b54]
mov dword [esp + 0xb8], esi
fstp qword [esp + 0xd0]
mov edx, dword [edi + ebp + 0x9688]
add edi, 0x1c
test edx, edx
je 0x52b702
cmp edx, 0x26
je 0x52aa3a
mov al, byte [edi + ebp + 0x9668]
cmp al, 5
je 0x52aa3a
cmp al, 6
je 0x52aa3a
cmp al, 7
je 0x52aa3a
cmp al, 8
jne 0x52b702
lea eax, [edx - 1]
cmp eax, 0x25
ja 0x52b702
mov eax, dword [edx*4 + 0x873b5c]
jmp eax
cmp edi, 0x380
jl 0x52aa08
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
movzx edx, byte [eax + 0x13e]
fld qword [esp + 0xd0]
test edx, edx
fld dword [0x873b50]
je 0x52b76b
movzx eax, byte [ebx + 0x1a94]
mov edi, dword [esp + 0xb4]
movzx edi, byte [edi + 0x13a]
sub eax, edi
cmp eax, edx
jge 0x52b76b
fstp st(0)
inc edx
inc eax
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(1)
fmul dword [0x873b50]
mov eax, dword [esp + 0xb4]
movzx edx, byte [eax + 0x13f]
test edx, edx
je 0x52b7a7
movzx edi, byte [ebx + 0x1a94]
movzx eax, byte [eax + 0x13b]
sub eax, edi
cmp eax, edx
jge 0x52b7a7
inc edx
inc eax
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(1)
fmulp st(1)
mov eax, dword [esp + 0xb4]
movzx edx, byte [eax + 0x13c]
test edx, edx
je 0x52b7ea
movsx eax, byte [ebx + 0x1a96]
mov edi, dword [esp + 0xb4]
movzx edi, byte [edi + 0x138]
sub eax, edi
cmp eax, edx
jge 0x52b7ea
inc edx
inc eax
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(1)
fmulp st(1)
mov eax, dword [esp + 0xb4]
movzx edx, byte [eax + 0x13d]
test edx, edx
je 0x52b826
movzx eax, byte [eax + 0x139]
movsx edi, byte [ebx + 0x1a96]
sub eax, edi
cmp eax, edx
jge 0x52b826
inc edx
inc eax
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(1)
fmulp st(1)
fmul dword [ebx + 0x6c]
fst dword [ebx + 0x6c]
fld dword [ebp + 0x14]
fcom st(2)
fnstsw ax
sahf
jbe 0x52b83f
fstp st(2)
fdivrp st(1)
fst dword [ebx + 0x6c]
jmp 0x52b848
fstp st(1)
fstp st(0)
xor eax, eax
mov dword [ebx + 0x6c], eax
fcom qword [0x873b00]
fnstsw ax
sahf
jb 0x52c4f5
fld dword [ebx + 0x70]
mov eax, dword [ebx + 0x18]
cmp eax, 0xffffffff
fsub dword [ebp + 0x18]
fst dword [ebx + 0x70]
je 0x52c9c8
fxch st(1)
fmul dword [ebp + 0x14]
lea eax, [ebx + 0x54]
mov ecx, esi
fxch st(1)
fadd dword [ebp + 0x18]
mov dword [esp + 0xbc], eax
fld dword [0x873b28]
fld dword [0x873b2c]
fadd st(2)
fxch st(2)
fadd st(0)
fxch st(2)
fmul st(1)
fmul dword [0x873b20]
fadd dword [0x873b24]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov eax, edx
xor eax, 0xffffffff
and edx, 0x40000000
and eax, dword [esp + 0x30]
or eax, edx
mov dword [esp + 0x30], eax
fadd dword [esp + 0x30]
fmul dword [0x873b1c]
fsubr dword [0x873b50]
fmul st(2)
fstp dword [ebx + 0x50]
fmul dword [0x873b20]
fadd dword [0x873b24]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov dword [esp + 0x34], edx
mov eax, edx
xor eax, 0xffffffff
and eax, dword [esp + 0x30]
and edx, 0x40000000
or eax, edx
mov dword [esp + 0x30], eax
fld dword [0x873b28]
fadd dword [esp + 0x30]
fmul dword [0x873b1c]
fmulp st(1)
fstp dword [ebx + 0x54]
fld dword [esi + 0x8e34]
fadd st(0)
fld dword [0x873b28]
fld dword [0x873b2c]
fadd dword [esi + 0x8e34]
fmul st(1)
fmul dword [0x873b20]
fadd dword [0x873b24]
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov edi, eax
xor edi, 0xffffffff
and eax, 0x40000000
and edi, dword [esp + 0x38]
or edi, eax
mov dword [esp + 0x38], edi
fld dword [esp + 0x38]
fadd st(1)
fmul dword [0x873b1c]
fsubr dword [0x873b50]
fmul dword [esi + 0x8e3c]
fstp dword [esp + 0x98]
fxch st(1)
fmul dword [0x873b20]
fadd dword [0x873b24]
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov edx, eax
mov dword [esp + 0x3c], eax
xor edx, 0xffffffff
and eax, 0x40000000
and edx, dword [esp + 0x38]
or edx, eax
mov dword [esp + 0x38], edx
fadd dword [esp + 0x38]
fmul dword [0x873b1c]
fmul dword [esi + 0x8e3c]
fstp dword [esp + 0x80]
call fcn.006c0638
movzx eax, al
test eax, eax
jne 0x52ba32
lea eax, [ebx + 0x50]
mov dword [esp + 0xc0], eax
fld dword [esp + 0x98]
fmul dword [ebx + 0x50]
fstp dword [ebx + 0x50]
fld dword [esp + 0x80]
fmul dword [ebx + 0x54]
fstp dword [ebx + 0x54]
jmp 0x52ba5b
add esp, 0xfffffff8
mov ecx, esi
fld dword [esp + 0xa0]
fstp dword [esp]
fld dword [esp + 0x88]
fstp dword [esp + 4]
call fcn.006c06c8
lea eax, [ebx + 0x50]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xb4]
fld dword [eax + 0x148]
fld dword [0x873b28]
fxch st(1)
fadd st(0)
fld dword [0x873b2c]
fadd dword [eax + 0x148]
fmul st(2)
fmul dword [0x873b20]
fadd dword [0x873b24]
fstp dword [esp + 0x40]
mov edi, dword [esp + 0x40]
and edi, 0x40000000
add edi, edi
sar edi, 0x1f
and edi, 0x7fffffff
mov edx, edi
xor edx, 0xffffffff
and edi, 0x40000000
and edx, dword [esp + 0x40]
or edx, edi
mov dword [esp + 0x40], edx
fld dword [esp + 0x40]
fadd st(2)
fmul dword [0x873b1c]
fsubr dword [0x873b50]
fmul dword [eax + 0x144]
fxch st(1)
fmul dword [0x873b20]
fadd dword [0x873b24]
fstp dword [esp + 0x40]
mov edx, dword [esp + 0x40]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov dword [esp + 0x44], edx
mov edi, edx
xor edi, 0xffffffff
and edi, dword [esp + 0x40]
and edx, 0x40000000
or edi, edx
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0xc0]
fxch st(1)
fadd dword [esp + 0x40]
fmul dword [0x873b1c]
fmul dword [eax + 0x144]
fxch st(1)
fmul dword [edx]
fstp dword [edx]
fmul dword [ebx + 0x54]
fstp dword [ebx + 0x54]
mov dword [ebx + 0x68], 0x3f800000
mov edx, dword [esp + 0xb4]
fld dword [0x873b18]
fadd dword [esi + 0x8e34]
fadd dword [edx + 0x148]
fadd dword [ebp + 0x18]
fadd dword [ebx + 0x70]
fmul dword [0x873b20]
fadd dword [0x873b24]
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov edi, eax
mov dword [esp + 0x4c], eax
xor edi, 0xffffffff
and eax, 0x40000000
and edi, dword [esp + 0x48]
or edi, eax
mov dword [esp + 0x48], edi
fld dword [0x873b28]
fadd dword [esp + 0x48]
fmul dword [0x873b1c]
fstp dword [ebx + 0x4c]
fld dword [edx + 0x14c]
fmul dword [esi + 0x8e38]
fmul dword [0x84f428]
fstp dword [ebx + 0x48]
mov al, byte [ebp + 0x21]
test al, al
je 0x52bc01
mov eax, dword [ebp + 0x9654]
test eax, eax
jne 0x52bc01
mov dword [ebx + 0x38], 0xffffffff
mov ecx, dword [edx + 0x134]
neg ecx
mov dword [ebx + 0x34], ecx
mov eax, dword [edx + 0x130]
neg eax
mov dword [ebx + 0x1ab4], eax
mov edx, dword [edx + 0x134]
neg edx
mov dword [ebx + 0x1ab8], edx
jmp 0x52bc29
mov dword [ebx + 0x38], 1
mov ecx, dword [edx + 0x130]
mov dword [ebx + 0x34], ecx
mov eax, dword [edx + 0x134]
mov dword [ebx + 0x1ab4], eax
mov edx, dword [edx + 0x130]
mov dword [ebx + 0x1ab8], edx
test eax, eax
jle 0x52bc39
xor eax, eax
mov dword [ebx + 0x1ab4], 0
mov esi, dword [ebx + 0x28]
mov dword [esp + 0x7c], esi
mov esi, dword [esi + 0x35c]
neg esi
cmp eax, esi
jge 0x52bc52
mov dword [ebx + 0x1ab4], esi
test edx, edx
jge 0x52bc62
xor edx, edx
mov dword [ebx + 0x1ab8], 0
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x35c]
cmp edx, eax
jle 0x52bc80
mov dword [ebx + 0x1ab8], eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x35c]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fmul qword [esp + 0x88]
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
faddp st(1)
fstp qword [esp + 0x58]
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, edx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x52bcd5
mov eax, edx
neg ecx
add ecx, 0x41e
shld eax, esi, 0xb
or eax, 0x80000000
shr eax, cl
test edx, edx
jge 0x52bcd7
neg eax
jmp 0x52bcd7
xor eax, eax
mov dword [ebx + 0x34], eax
mov edi, dword [esp + 0x7c]
mov ecx, dword [edi + 0x35c]
dec ecx
mov esi, eax
sar esi, 0x1f
xor esi, 0xffffffff
and eax, esi
mov edx, eax
sub edx, ecx
sub ecx, eax
sar ecx, 0x1f
and edx, ecx
sub eax, edx
mov dword [ebx + 0x34], eax
mov al, byte [ebp + 0x450]
test al, al
je 0x52bd64
mov edx, edi
lea ecx, [edx + 0x1b0]
mov eax, dword [edx + 0x1b0]
call dword [eax + 8]
movzx eax, al
test eax, eax
jne 0x52bd2a
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x7c], eax
jmp 0x52bd64
mov esi, dword [ebx + 0x28]
lea ecx, [esi + 0x1b0]
mov dword [esp + 0xb4], ecx
push 0
push dword [ebx + 0x34]
call fcn.006d37b4
mov edi, eax
mov edx, dword [esi + 0x1b0]
mov ecx, dword [esp + 0xb4]
call dword [edx + 0xc]
mov edx, dword [eax + edi*8 + 8]
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x34], edx
mov dword [esp + 0x7c], eax
xor edx, edx
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0xa8], eax
xor eax, eax
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x78], ebp
nop
mov cl, byte [esi + eax + 0xd]
test cl, cl
je 0x52bdf2
mov dword [esp + 0xb8], edx
mov edi, dword [ebx + 0x38]
mov ecx, edx
mov dword [ebx + 0x30], edx
shl ecx, 4
lea ecx, [ecx + edx*8]
mov ebp, dword [esp + 0x7c]
mov ebp, dword [ebp + 0x35c]
cmp edi, 1
je 0x52c9bd
mov dword [esp + 0xb4], eax
mov eax, dword [ecx + esi]
mov edi, dword [ecx + esi + 4]
add edi, 0xfffffffc
mov ecx, edi
sar ecx, 0x1f
xor ecx, 0xffffffff
and edi, ecx
lea edi, [eax + edi + 4]
neg edi
add edi, ebp
mov eax, dword [esp + 0xb4]
mov ecx, dword [ebx + 0x1ab4]
add ebp, ecx
cmp edi, ebp
jl 0x52c9b2
add eax, 0x18
inc edx
cmp edx, 8
jl 0x52bd88
mov ecx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x78]
cmp edx, 8
jl 0x52be17
mov ecx, 8
mov dword [ebx + 0x30], 8
mov esi, 1
mov edx, dword [esp + 0x7c]
mov al, byte [edx + 0x20]
mov dword [esp + 0x68], esi
test al, al
je 0x52c98f
mov eax, ecx
shl eax, 4
lea edx, [eax + ecx*8]
mov ecx, dword [esp + 0xa8]
lea esi, [ecx + edx]
lea ecx, [ecx + edx]
movsx eax, byte [esi + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
je 0x52bf7b
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x78], ebp
mov ebp, ecx
mov ecx, dword [esp + 0x68]
cmp edi, dword [ebp]
jle 0x52bf77
mov ebp, ecx
cmp ecx, 8
jge 0x52bf1f
mov eax, ebp
shl eax, 4
lea eax, [eax + ebp*8]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0xa8]
mov cl, byte [ebx + eax + 0xd]
test cl, cl
je 0x52bf06
mov edi, dword [esp + 0x70]
mov ecx, dword [edi + 0x38]
mov edx, ebp
mov dword [edi + 0x30], ebp
shl edx, 4
lea edx, [edx + ebp*8]
mov esi, dword [esp + 0x7c]
mov esi, dword [esi + 0x35c]
cmp ecx, 1
je 0x52c528
mov dword [esp + 0xdc], edx
lea ecx, [ebx + edx]
mov edx, dword [ecx]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ecx + 4]
add ecx, 0xfffffffc
mov edi, ecx
sar edi, 0x1f
xor edi, 0xffffffff
and ecx, edi
lea ecx, [edx + ecx + 4]
neg ecx
add ecx, esi
mov edx, dword [esp + 0xdc]
mov edi, dword [esp + 0x70]
add esi, dword [edi + 0x1ab4]
cmp ecx, esi
jl 0x52c506
add eax, 0x18
inc ebp
cmp ebp, 8
jl 0x52be98
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
cmp ebp, 8
jl 0x52bf3d
mov dword [ebx + 0x30], 8
mov edx, 0xc0
mov eax, dword [esp + 0xa8]
lea esi, [eax + 0xc0]
inc ecx
mov ebp, dword [esp + 0x7c]
mov al, byte [ebp + 0x20]
test al, al
je 0x52bf65
mov ebp, esi
movsx eax, byte [esi + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
jne 0x52be65
mov ebp, dword [esp + 0x78]
jmp 0x52bf7b
mov ebp, dword [esp + 0x78]
movsx eax, byte [esi + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x52bf7b
mov ebp, dword [esp + 0x78]
test eax, eax
jne 0x52c638
xor esi, esi
movzx eax, byte [ebx + 0x1a0c]
test eax, eax
jle 0x52c189
fldz
mov dword [esp + 0x78], ebp
fstp qword [esp + 0xa0]
lea esi, [esi]
mov ebp, dword [ebx + esi*4 + 0x8c]
test ebp, ebp
je 0x52c17c
mov al, byte [ebp + 4]
cmp al, 5
jne 0x52c16d
mov eax, dword [esp + 0x78]
movsx eax, word [eax + 0xe]
movzx edx, byte [ebx + 0x1a94]
test eax, eax
jge 0x52bfd9
mov eax, edx
mov edx, eax
movzx eax, al
sub eax, edx
mov dword [ebp + 0xac], eax
fld qword [0x873b10]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fst qword [esp + 0x90]
fxch st(1)
fstp qword [esp]
fmul dword [ebp + 0x18]
fmul qword [0x873b08]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fstp qword [esp + 0x88]
mov al, byte [ebp + 0xb4]
cmp al, 1
jne 0x52c02e
fld dword [ebp + 0xb0]
fstp qword [esp + 0xa0]
test al, al
jne 0x52c05f
fld qword [esp + 0x90]
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov eax, edx
and eax, 0x80000000
xor edx, eax
mov dword [esp + 0x50], edx
fld dword [ebp + 0xb0]
fmul dword [esp + 0x50]
fstp qword [esp + 0xa0]
fld qword [esp + 0xa0]
fmul qword [0x873af8]
fmul dword [ebp + 0x14]
fstp qword [esp + 0x58]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x52c0b8
mov edi, eax
neg ecx
add ecx, 0x41e
shld edi, edx, 0xb
or edi, 0x80000000
shr edi, cl
test eax, eax
jge 0x52c0ba
neg edi
jmp 0x52c0ba
xor edi, edi
mov dword [ebp + 0xb8], edi
test edi, edi
jle 0x52c568
fld qword [esp + 0x88]
fstp qword [esp]
mov dword [esp + 0x60], edi
fild dword [esp + 0x60]
fdivr qword [0x873af0]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fstp dword [ebp + 0xa4]
fld qword [esp + 0x88]
fstp dword [ebp + 0x94]
test edi, edi
jle 0x52c548
fld qword [0x873ae8]
mov dword [esp + 0x60], edi
fild dword [esp + 0x60]
fdivp st(1)
fstp dword [ebp + 0xa8]
fld dword [0x873b54]
mov eax, dword [ebp + 0xac]
mov edx, dword [ebp + 0x18]
test eax, eax
fld dword [ebp + 0x18]
jl 0x52c538
fchs
fst dword [ebp + 0xa0]
fcom qword [0x873ae0]
fnstsw ax
sahf
jae 0x52c158
fchs
fstp dword [ebp + 0x9c]
jmp 0x52c160
fstp st(0)
fst dword [ebp + 0x9c]
fstp dword [ebp + 0x98]
mov ebp, dword [ebx + esi*4 + 0x8c]
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x14]
movzx eax, byte [ebx + 0x1a0c]
inc esi
cmp esi, eax
jl 0x52bfa8
mov ebp, dword [esp + 0x78]
xor esi, esi
test eax, eax
jle 0x52c1c8
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0xd8]
mov ecx, dword [ebx + esi*4 + 0x8c]
test ecx, ecx
je 0x52c1bf
mov edi, dword [ecx + 0x88]
test edi, edi
je 0x52c1bf
movzx edx, word [ecx + 0x8c]
cmp edx, 1
je 0x52c602
inc esi
cmp esi, eax
jl 0x52c19a
mov ebp, dword [esp + 0x78]
mov edx, dword [ebx + 0x1aa4]
cmp ebx, dword [edx + 0x6f4]
jne 0x52c213
xor esi, esi
test eax, eax
jle 0x52c213
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebx + esi*4 + 0x8c]
test ecx, ecx
je 0x52c20e
mov eax, dword [ecx]
movzx edx, byte [ebx + esi + 0x1a0d]
push edx
push dword [ebx + 0x1aa4]
call dword [eax + 4]
movzx eax, byte [ebx + 0x1a0c]
inc esi
cmp esi, eax
jl 0x52c1e8
mov ecx, dword [ebx + 0x1a78]
test ecx, ecx
je 0x52c222
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov esi, dword [ebx + 0x1a70]
test esi, esi
je 0x52c37e
mov eax, dword [esi + 8]
cmp eax, 0x20
je 0x52c241
cmp eax, 0x21
jne 0x52c30b
mov al, byte [ebp + 0x20]
test al, al
jne 0x52c250
fld dword [0x873b50]
jmp 0x52c27a
movzx eax, byte [ebx + 0x1a94]
add eax, 0xffffffbb
fld qword [0x873b10]
fstp qword [esp]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fmul qword [0x873b08]
fstp qword [esp + 8]
call sub.MSVCRT.dll_pow
fmul qword [0x873ad8]
mov edi, dword [esi]
mov edx, dword [edi + 4]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0xd8]
fmul dword [ebx + 0x48]
fmul dword [ebx + 0x74]
fdivr dword [eax + 0x1ae4]
fstp qword [esp + 0x58]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x52c2e9
mov edx, eax
neg ecx
add ecx, 0x41e
shld edx, edi, 0xb
or edx, 0x80000000
shr edx, cl
test eax, eax
mov dword [esp + 0xb4], edx
jge 0x52c2f2
mov eax, edx
neg eax
mov dword [esp + 0xb4], eax
jmp 0x52c2f2
xor eax, eax
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0xb4]
mov ecx, esi
push edx
mov eax, dword [esp + 0x80]
call eax
mov esi, dword [ebx + 0x1a70]
mov eax, dword [esi]
add esp, 0xfffffff8
mov ecx, esi
fild dword [ebx + 0x34]
fstp qword [esp]
call dword [eax + 0x14]
mov dword [ebx + 0x34], 0
mov al, byte [ebp + 0x967c]
test al, al
je 0x52c37e
xor eax, eax
mov edx, dword [esp + 0xd8]
mov edx, dword [edx + 0xfbc]
test edx, edx
jle 0x52c35b
mov dword [esp + 0x78], ebp
mov esi, dword [esp + 0xf4]
cmp eax, esi
jne 0x52c588
inc eax
cmp eax, edx
jl 0x52c34a
mov ebp, dword [esp + 0x78]
cmp eax, edx
jge 0x52c37e
mov esi, dword [esp + 0xd8]
mov edx, dword [esi + eax*4 + 0x7a0]
mov ecx, dword [ebx + 0x1a70]
mov eax, dword [ecx]
push dword [edx + 0x1a70]
call dword [eax + 0x40]
mov ecx, dword [ebx + 0x1a74]
test ecx, ecx
je 0x52c396
add esp, 0xfffffff8
fild dword [ebx + 0x34]
fstp qword [esp]
call fcn.006e508c
fld dword [ebx + 0x68]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xbc]
fld dword [ecx]
fmul st(1)
fstp dword [ebx + 0x60]
fmul dword [eax]
fstp dword [ebx + 0x64]
xor al, al
mov dl, byte [ebp + 0x22]
test dl, dl
je 0x52c4d8
mov al, 1
xor esi, esi
movzx edx, byte [ebx + 0x1a0c]
test edx, edx
jle 0x52c4d8
mov ecx, esi
shl ecx, 7
lea ebp, [ecx + esi*4]
mov byte [esp + 0x68], al
mov ecx, dword [ebx + esi*4 + 0x8c]
test ecx, ecx
je 0x52c4c5
mov al, byte [ecx + 4]
cmp al, 1
jne 0x52c4c5
mov eax, dword [ecx]
call dword [eax + 0x5c]
lea ecx, [ebx + ebp]
xor eax, eax
mov edx, dword [ecx + 0x1cc]
test edx, edx
jle 0x52c4b2
cmp edx, 6
jl 0x52c48c
lea edi, [edx - 6]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebx
lea esi, [esi]
movzx ebx, word [ecx + eax*8 + 0x14c]
cmp ebx, 1
je 0x52c5f8
movzx ebx, word [ecx + eax*8 + 0x154]
cmp ebx, 1
je 0x52ca67
movzx ebx, word [ecx + eax*8 + 0x15c]
cmp ebx, 1
je 0x52ca5a
movzx ebx, word [ecx + eax*8 + 0x164]
cmp ebx, 1
je 0x52ca4d
movzx ebx, word [ecx + eax*8 + 0x16c]
cmp ebx, 1
je 0x52ca40
add eax, 5
cmp eax, edi
jle 0x52c428
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x70], ebx
nop
lea esi, [esi]
movzx ebx, word [ecx + eax*8 + 0x14c]
cmp ebx, 1
je 0x52c5eb
inc eax
cmp eax, edx
jl 0x52c498
mov ebx, dword [esp + 0x70]
xor al, al
movzx edx, byte [ebx + 0x1a0c]
test al, al
je 0x52c4c5
xor al, al
mov byte [esp + 0x68], al
add ebp, 0x84
inc esi
cmp esi, edx
jl 0x52c3df
mov al, byte [esp + 0x68]
test al, al
je 0x52c4e3
mov dword [ebx + 0x30], 8
mov eax, 1
add esp, 0xe0
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
fstp st(0)
xor eax, eax
add esp, 0xe0
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
jmp 0x52bf1f
lea ecx, [ebx + edx]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ecx]
jmp 0x52bef4
mov dword [ebp + 0xa0], edx
jmp 0x52c13c
fld dword [0x873b54]
mov dword [ebp + 0xa8], 0
jmp 0x52c120
mov dword [ebp + 0xa4], 0x3f800000
mov dword [ebp + 0x94], 0x3f800000
jmp 0x52c0fc
mov ebp, dword [esp + 0xd8]
mov ebp, dword [ebp + eax*4 + 0x7a0]
mov cl, byte [ebp]
test cl, cl
je 0x52c352
mov cl, byte [ebp + 9]
test cl, cl
je 0x52c352
movsx ecx, word [ebp + 0x1a9a]
mov edi, dword [esp + 0xfc]
cmp ecx, edi
jne 0x52c352
mov ecx, dword [ebp + 0x1a70]
test ecx, ecx
je 0x52c352
mov ecx, dword [ecx + 8]
mov ebp, dword [ebx + 0x1a70]
cmp ecx, dword [ebp + 8]
jne 0x52c352
mov ebp, dword [esp + 0x78]
jmp 0x52c35b
mov ebx, dword [esp + 0x70]
mov al, 1
jmp 0x52c4b4
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52c5ef
mov edx, dword [edi + 0x84]
test edx, edx
jne 0x52c1bf
mov edx, dword [ecx]
mov eax, dword [ebp + 0x1f80]
add eax, dword [ebx + 0x3c]
push eax
call dword [edx + 0x34]
movzx eax, byte [ebx + 0x1a0c]
jmp 0x52c1bf
mov edi, dword [esi + 8]
mov dword [ebx + 0x1aa8], edi
mov al, byte [ebp + 0x468]
mov byte [esp + 0xb0], al
mov byte [ebx + 0x1ac8], al
mov eax, dword [esp + 0x7c]
mov edi, dword [eax + 0x35c]
fild dword [eax + 0x35c]
fld qword [esp + 0x90]
fmul st(1)
fstp qword [esp + 0x58]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x68], eax
mov dword [esp + 0xac], ecx
shr ecx, 0x14
and ecx, 0x7ff
mov dword [esp + 0x74], ecx
cmp ecx, 0x3fe
jle 0x52c6e6
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x68]
shld eax, ecx, 0xb
or eax, 0x80000000
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xb4], eax
neg ecx
add ecx, 0x41e
shr eax, cl
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xac]
test eax, eax
jge 0x52c6ef
mov eax, dword [esp + 0xb4]
neg eax
mov dword [esp + 0xb4], eax
jmp 0x52c6ef
xor eax, eax
mov dword [esp + 0xb4], eax
fmul qword [esp + 0xa0]
fstp qword [esp + 0x58]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0xb8], eax
shr eax, 0x14
and eax, 0x7ff
mov dword [esp + 0x74], eax
cmp eax, 0x3fe
jle 0x52c769
mov eax, dword [esp + 0xb8]
shld eax, ecx, 0xb
or eax, 0x80000000
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xac], eax
neg ecx
add ecx, 0x41e
shr eax, cl
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xb8]
test eax, eax
jge 0x52c772
mov eax, dword [esp + 0xac]
neg eax
mov dword [esp + 0xac], eax
jmp 0x52c772
xor eax, eax
mov dword [esp + 0xac], eax
mov al, byte [esp + 0xb0]
test al, al
je 0x52c8db
mov eax, dword [ebx + 0x38]
mov edx, dword [esi]
add esi, 4
mov dword [esp + 0xb0], edx
cmp eax, 1
je 0x52c97b
mov eax, dword [esi]
add eax, 0xfffffffc
mov esi, eax
sar esi, 0x1f
xor esi, 0xffffffff
and eax, esi
mov ecx, edx
lea edx, [ecx + eax + 4]
neg edx
add edx, edi
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xb4]
mov esi, dword [esp + 0xac]
lea esi, [esi + eax + 4]
add edx, dword [esp + 0xb0]
sub edi, esi
dec edi
mov eax, edx
sar eax, 0x1f
xor eax, 0xffffffff
and edx, eax
mov eax, edx
sub eax, edi
sub edi, edx
sar edi, 0x1f
and eax, edi
sub edx, eax
mov ecx, dword [esp + 0x7c]
add ecx, 0x1b0
mov dword [esp + 0x7c], ecx
push 0
push edx
call fcn.006d37b4
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edx, dword [esp + 0xb4]
mov ecx, dword [eax + edx*8 + 8]
mov eax, ecx
mov dword [esp + 0xa8], ecx
add esi, ecx
mov ecx, esi
sub eax, dword [esp + 0xb0]
sar ecx, 0x1f
xor ecx, 0xffffffff
mov dword [esp + 0xb4], eax
mov eax, dword [ebx + 0x28]
mov edx, dword [eax + 0x35c]
mov dword [esp + 0xb0], eax
dec edx
and esi, ecx
mov edi, esi
sub edi, edx
sub edx, esi
sar edx, 0x1f
and edi, edx
sub esi, edi
lea ecx, [eax + 0x1b0]
mov dword [esp + 0xac], ecx
push 1
push esi
call fcn.006d37b4
mov esi, eax
mov edi, dword [esp + 0xb0]
mov edx, dword [edi + 0x1b0]
mov ecx, dword [esp + 0xac]
call dword [edx + 0xc]
mov eax, dword [eax + esi*8 + 8]
mov esi, dword [ebx + 0x2c]
sub eax, dword [esp + 0xa8]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
add eax, 4
mov edx, dword [ebx + 0x30]
mov ecx, edx
mov dword [esp + 0xa8], esi
shl ecx, 4
lea edx, [ecx + edx*8]
lea esi, [esi + edx]
mov ecx, dword [esi + 4]
add ecx, 0xfffffffc
mov edi, ecx
sar edi, 0x1f
xor edi, 0xffffffff
and ecx, edi
add ecx, 4
sub eax, ecx
mov dword [esp + 0xac], eax
mov eax, dword [ebx + 0x38]
cmp eax, 1
je 0x52c96f
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 0x35c]
mov ecx, dword [esp + 0xa8]
mov edi, dword [edx + ecx]
mov ecx, dword [esi + 4]
add ecx, 0xfffffffc
mov edx, ecx
sar edx, 0x1f
xor edx, 0xffffffff
and ecx, edx
lea edx, [edi + ecx + 4]
sub eax, edx
mov edx, dword [esp + 0xb4]
add edx, eax
mov edi, dword [esp + 0xac]
mov dword [ebx + 0x1ab0], edx
mov ecx, dword [esi + 4]
add ecx, 0xfffffffc
mov eax, ecx
sar eax, 0x1f
xor eax, 0xffffffff
and ecx, eax
lea edx, [edi + ecx + 4]
xor al, al
mov dword [ebx + 0x1aac], edx
mov esi, dword [esp + 0xa8]
mov byte [esi + 0xe], al
mov byte [esi + 0x26], al
mov byte [esi + 0x3e], al
mov byte [esi + 0x56], al
mov byte [esi + 0x6e], al
mov byte [esi + 0x86], al
mov byte [esi + 0x9e], al
mov byte [esi + 0xb6], al
jmp 0x52bf83
mov eax, dword [esp + 0xa8]
mov eax, dword [edx + eax]
jmp 0x52c910
mov eax, dword [esi]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
jmp 0x52c7b9
mov eax, ecx
shl eax, 4
lea edx, [eax + ecx*8]
mov ecx, dword [esp + 0xa8]
lea esi, [ecx + edx]
movsx eax, byte [esi + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x52bf7b
mov ecx, edx
mov ebp, dword [esp + 0x78]
jmp 0x52be06
mov edi, dword [ecx + esi]
jmp 0x52bde2
fstp st(0)
fstp st(0)
mov ecx, esi
call fcn.006c0638
movzx eax, al
test eax, eax
jne 0x52ca02
fld dword [ebx + 0x6c]
lea edx, [ebx + 0x50]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc0], edx
fmul dword [ebp + 0x14]
fmul dword [eax + 0x144]
fmul dword [esi + 0x8e3c]
fst dword [ebx + 0x50]
jmp 0x52ca2e
mov eax, dword [esi + 0x8e3c]
mov ecx, esi
push eax
push eax
call fcn.006c06c8
fld dword [ebx + 0x6c]
lea edx, [ebx + 0x50]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc0], edx
fmul dword [eax + 0x144]
fst dword [ebx + 0x50]
lea eax, [ebx + 0x54]
mov dword [esp + 0xbc], eax
fstp dword [ebx + 0x54]
jmp 0x52bb37
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52c5ef
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52c5ef
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52c5ef
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
jmp 0x52c5ef