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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, 0x4fc
push ebx
sub esp, 0x22c
mov edi, dword [ebp + 8]
cmp dword [ebp + 0x18], 0x4fc
cmovle esi, dword [ebp + 0x18]
imul ecx, dword [ebp + 0x10], 0x190
mov ebx, dword [edi + 0x90]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x17c], 0
mov edx, dword [edi + 0x84]
mov dword [ebp - 0x1a0], esi
test ebx, ebx
mov dword [edi + 0x4724], 0
jne 0x70324420
cmp ecx, edx
je 0x70324428
imul ebx, dword [ebp + 0x10], 0xc8
cmp edx, ebx
je 0x70324420
imul ebx, dword [ebp + 0x10], 0x64
cmp edx, ebx
je 0x70324420
imul ebx, dword [ebp + 0x10], 0x32
cmp edx, ebx
je 0x70324420
mov esi, dword [ebp + 0x10]
lea esi, [esi + esi*4]
lea esi, [esi + esi*4]
cmp edx, esi
je 0x70324420
lea esi, [edx + edx*2]
cmp ebx, esi
jne 0x703248f3
lea esi, [esi]
cmp ecx, edx
jl 0x703248f3
mov edx, dword [ebp - 0x1a0]
test edx, edx
jle 0x703248f3
mov esi, dword [edi + 4]
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1b4], esi
mov esi, dword [edi]
add esi, edi
cmp dword [edi + 0x60], 0x803
mov dword [ebp - 0x1a4], esi
je 0x70324465
mov esi, dword [edi + 0x68]
mov dword [ebp - 0x1a8], esi
mov edx, dword [edi + 0x9c]
mov dword [ebp - 0x160], 0
cmp eax, edx
cmovle edx, eax
lea eax, [ebp - 0x178]
mov dword [ebp - 0x1ac], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x271f
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
cmp dword [edi + 0x2c], 6
jg 0x70324780
mov eax, dword [edi + 0x84]
mov dword [ebp - 0x1bc], 0xffffffff
mov dword [ebp - 0x1b8], 0xffffffff
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x160]
mov dword [edi + 0x80], 0xffffffff
mov dword [edi + 0x471c], 0
test eax, eax
je 0x7032450e
cmp dword [edi + 0x70], 0xfffffc18
je 0x70324900
mov eax, dword [ebp - 0x148]
cmp eax, 0xc
jg 0x703248c7
mov dword [edi + 0x471c], 0x44d
cmp dword [edi + 0x64], 2
fldz
fstp dword [ebp - 0x1b0]
je 0x70324880
mov ebx, dword [ebp - 0x1a0]
mov eax, edi
mov edx, dword [ebp + 0x10]
mov ecx, ebx
call fcn.703230d0
mov esi, eax
mov dword [edi + 0x94], eax
mov eax, dword [ebp - 0x198]
cdq
idiv dword [ebp + 0x10]
cmp ebx, 2
mov dword [ebp - 0x19c], eax
jle 0x703247d0
lea eax, [eax + eax*2]
shl eax, 3
cmp esi, eax
jl 0x703247d0
cmp dword [ebp - 0x19c], 0x31
jle 0x703247b1
mov eax, dword [edi + 0x88]
test eax, eax
jne 0x703245a7
mov eax, dword [ebp - 0x19c]
lea ecx, [eax*8]
lea eax, [esi + eax*4]
mov esi, dword [ebp - 0x1a0]
cdq
idiv ecx
cmp esi, eax
cmovle eax, esi
mov esi, ecx
imul esi, eax
mov dword [ebp - 0x1a0], eax
mov dword [edi + 0x94], esi
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [edi + 0x64]
imul eax, edx
shl eax, 3
mov dword [ebp - 0x1d8], eax
mov eax, 0x32
sub eax, edx
lea edx, [ecx + ecx*4]
lea edx, [edx*8 + 0x14]
imul edx, eax
add edx, esi
mov dword [ebp - 0x1c4], edx
mov edx, dword [edi + 0x70]
cmp edx, 0xbb9
je 0x70324ad5
cmp edx, 0xbba
je 0x70324aed
mov edx, dword [edi + 0x80]
test edx, edx
js 0x7032620b
imul edx, edx, 0x147
mov dword [ebp - 0x1cc], edx
mov edx, dword [edi + 0x60]
sar dword [ebp - 0x1cc], 8
cmp edx, 0x801
mov dword [ebp - 0x1c0], edx
je 0x70324a09
mov edx, dword [edi + 0x6c]
cmp edx, 0xfffffc18
je 0x70324a24
cmp ecx, 2
je 0x70324b05
mov eax, dword [ebp - 0x1c4]
mov dword [edi + 0xa8], ecx
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c0], 0x803
je 0x70324ac0
mov eax, dword [edi + 0x7c]
cmp eax, 0xfffffc18
je 0x70324b27
mov esi, dword [edi + 0xcc]
mov dword [edi + 0xc8], eax
cmp eax, 0x3ea
je 0x703246b4
mov eax, dword [ebp - 0x198]
mov edx, 0x51eb851f
imul edx
mov eax, dword [ebp - 0x198]
sar edx, 5
sar eax, 0x1f
sub edx, eax
cmp dword [ebp + 0x10], edx
jge 0x703246b4
mov dword [edi + 0xc8], 0x3ea
mov ecx, dword [edi + 0xa8]
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x703246ce
mov dword [edi + 0xc8], 0x3ea
cmp dword [ebp - 0x19c], 0x33
mov edx, 0x1f40
mov eax, 0x2ee0
mov ebx, dword [ebp - 0x198]
cmovl eax, edx
imul eax, dword [ebp + 0x10]
shl ebx, 3
cdq
idiv ebx
cmp dword [ebp - 0x1a0], eax
jl 0x70324949
mov eax, dword [edi + 0xc8]
mov dword [ebp - 0x1c0], eax
cmp ecx, 1
je 0x70324a71
test esi, esi
mov dword [edi + 0x40], 0
jle 0x7032473a
cmp dword [ebp - 0x1c0], 0x3ea
je 0x70324c44
cmp esi, 0x3ea
je 0x703261ec
cmp dword [edi + 0xdc], 0
mov dword [ebp - 0x1c4], 0
je 0x70326fee
mov ebx, dword [edi + 0x84]
mov dword [edi + 0xdc], 0
mov dword [ebp - 0x1ec], 1
mov dword [ebp - 0x1e8], 1
jmp 0x70324ca9
mov ebx, dword [edi + 0x84]
cmp ebx, 0xbb80
je 0x70324962
mov dword [ebp - 0x198], ebx
mov dword [ebp - 0x1bc], 0xffffffff
mov dword [ebp - 0x1b8], 0xffffffff
jmp 0x703244ca
mov eax, dword [ebp - 0x19c]
imul eax, ebx
cmp eax, 0x12b
jle 0x703247d0
cmp esi, 0x95f
jg 0x7032456e
lea esi, [esi]
mov edx, dword [edi + 0xd8]
mov eax, dword [edi + 0xc8]
test edx, edx
je 0x70324871
cmp edx, 0x44f
setg bl
test eax, eax
mov ecx, 0x3e8
cmove eax, ecx
cmp dword [ebp - 0x19c], 0x64
jg 0x70324856
cmp dword [ebp - 0x19c], 0x31
jg 0x70326f5d
mov eax, 0x3e8
test bl, bl
mov ecx, 0x44f
jne 0x70324830
cmp eax, 0x3ea
je 0x70324862
mov ecx, 0x450
cmp edx, 0x450
cmovge ecx, edx
mov edx, dword [edi + 0xa8]
mov dword [esp], edx
mov edx, dword [ebp - 0x19c]
call fcn.70322e70
mov esi, dword [ebp + 0x14]
mov byte [esi], al
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x3ea
cmp eax, 0x3ea
jne 0x70324822
cmp edx, 0x44e
mov ecx, 0x44d
jne 0x70324822
jmp 0x70324830
xor ebx, ebx
mov edx, 0x44d
jmp 0x703247ed
cmp dword [edi + 0x6c], 1
je 0x70324520
lea eax, [edi + 0xe8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x198]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.70324070
mov eax, dword [edi + 0x84]
mov dword [ebp - 0x198], eax
fstp dword [ebp - 0x1b0]
jmp 0x70324520
cmp eax, 0xe
jle 0x703248e4
cmp eax, 0x10
jg 0x703249f0
mov dword [edi + 0x471c], 0x44f
jmp 0x7032450e
mov dword [edi + 0x471c], 0x44e
jmp 0x7032450e
mov eax, 0xffffffff
jmp 0x7032484e
fld1
fsub dword [ebp - 0x14c]
fmul dword [0x708b02cc]
fadd dword [0x708b0270]
fstp qword [esp]
call fcn.6feeeb40
fnstcw word [ebp - 0x18c]
movzx eax, word [ebp - 0x18c]
mov ah, 0xc
mov word [ebp - 0x192], ax
fldcw word [ebp - 0x192]
fistp dword [edi + 0x80]
fldcw word [ebp - 0x18c]
jmp 0x703244f5
mov dword [edi + 0xc8], 0x3ea
mov dword [ebp - 0x1c0], 0x3ea
jmp 0x7032470a
mov eax, dword [edi + 0x3134]
mov dword [ebp - 0x1b8], eax
mov eax, dword [edi + 0x3138]
mov dword [ebp - 0x1bc], eax
lea eax, [ebp - 0x160]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp + 0x20], 0xbb80
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 4], eax
lea eax, [edi + 0xffc]
mov dword [esp], eax
call fcn.70337bd0
mov eax, dword [edi + 0x84]
mov dword [ebp - 0x198], eax
jmp 0x703244ca
cmp eax, 0x12
setg al
movzx eax, al
add eax, 0x450
mov dword [edi + 0x471c], eax
jmp 0x7032450e
mov ebx, dword [ebp - 0x1cc]
mov dx, 0x73
cmp ebx, 0x73
cmovle edx, ebx
mov dword [ebp - 0x1cc], edx
jmp 0x7032462f
cmp ecx, 2
jne 0x70324647
cmp dword [edi + 0xa8], 2
mov edx, 0x7918
mov cx, 0x7148
mov ebx, 0x64
cmovne ecx, edx
mov dx, 0x3c
cmp ecx, dword [ebp - 0x1c4]
cmovl edx, ebx
setl cl
imul eax, edx
movzx ecx, cl
add ecx, 1
mov dword [edi + 0xa8], ecx
add eax, esi
mov dword [ebp - 0x1c8], eax
jmp 0x70324659
cmp dword [edi + 0xd0], 2
jne 0x70324713
mov eax, dword [edi + 0x40]
test eax, eax
jne 0x70324713
cmp dword [ebp - 0x1c0], 0x3ea
je 0x70324713
cmp esi, 0x3ea
je 0x70324713
mov dword [edi + 0x40], 1
mov dword [edi + 0xa8], 2
jmp 0x7032473a
mov dword [edi + 0xc8], 0x3ea
mov esi, dword [edi + 0xcc]
jmp 0x703246ba
mov edx, dword [edi + 0x60]
mov dword [ebp - 0x1cc], 0x7f
mov dword [ebp - 0x1c0], edx
jmp 0x7032462f
mov edx, dword [edi + 0x60]
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x1c0], edx
jmp 0x7032462f
lea ecx, [edx + edx*4]
lea ecx, [ecx*8 + 0x14]
imul eax, ecx
mov ecx, edx
mov dword [edi + 0xa8], edx
add eax, esi
mov dword [ebp - 0x1c8], eax
jmp 0x70324659
fld dword [ebp - 0x1b0]
fld st(0)
mov esi, dword [ebp - 0x1cc]
fsubr dword [0x708b0268]
fnstcw word [ebp - 0x18c]
movzx eax, word [ebp - 0x18c]
fld dword [0x708b02ac]
fld st(1)
fmul st(1)
fxch st(1)
mov ah, 0xc
mov word [ebp - 0x192], ax
mov eax, esi
imul eax, esi
fmul st(3)
faddp st(1)
fldcw word [ebp - 0x192]
fistp dword [ebp - 0x190]
fldcw word [ebp - 0x18c]
mov ecx, dword [ebp - 0x190]
fmul dword [0x708b02d0]
fld dword [0x708b02d4]
fmulp st(2)
faddp st(1)
fldcw word [ebp - 0x192]
fistp dword [ebp - 0x190]
fldcw word [ebp - 0x18c]
mov edx, dword [ebp - 0x190]
mov esi, dword [edi + 0xcc]
sub edx, ecx
imul eax, edx
sar eax, 0xe
add eax, ecx
cmp dword [ebp - 0x1c0], 0x800
lea edx, [eax + 0x1f40]
cmove eax, edx
cmp esi, 0x3ea
je 0x70326ca6
lea edx, [eax + 0xfa0]
test esi, esi
cmovg eax, edx
cmp eax, dword [ebp - 0x1c8]
setle al
movzx eax, al
lea eax, [eax + eax + 0x3e8]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0x30]
test eax, eax
je 0x70324c1d
mov eax, pe_nt_image_headers32
sub eax, dword [ebp - 0x1cc]
sar eax, 4
cmp dword [edi + 0x28], eax
jle 0x70324c1d
mov dword [edi + 0xc8], 0x3e8
mov eax, dword [edi + 0x34]
test eax, eax
je 0x70326180
cmp dword [ebp - 0x1cc], 0x64
jle 0x70326180
mov dword [edi + 0xc8], 0x3e8
jmp 0x7032468a
cmp esi, 0x3ea
je 0x70326d51
mov ebx, dword [edi + 0x84]
mov edx, 0x51eb851f
mov eax, ebx
imul edx
mov eax, ebx
sar eax, 0x1f
sar edx, 5
sub edx, eax
cmp dword [ebp + 0x10], edx
jl 0x7032473a
mov dword [edi + 0xc8], esi
mov dword [ebp - 0x1c0], esi
mov dword [ebp - 0x1c4], 1
mov dword [ebp - 0x1ec], 0
cmp dword [edi + 0xdc], 0
jne 0x70324757
mov dword [ebp - 0x1e8], 0
mov eax, ebx
mov ecx, 0x51eb851f
imul ecx
mov eax, dword [ebp - 0x1a0]
sar ebx, 0x1f
mov dword [ebp - 0x1f0], 1
sar edx, 6
sub edx, ebx
mov ebx, dword [ebp + 0x10]
imul eax, edx
add ebx, edx
cdq
idiv ebx
mov ebx, 0x101
cmp eax, 0x101
cmovg eax, ebx
mov ebx, dword [edi + 0x88]
mov dword [ebp - 0x1d0], eax
test ebx, ebx
je 0x70324d15
mov ebx, dword [edi + 0x94]
mov eax, ebx
imul ecx
mov eax, dword [ebp - 0x1d0]
sar ebx, 0x1f
sar edx, 9
sub edx, ebx
cmp eax, edx
cmovle edx, eax
mov dword [ebp - 0x1d0], edx
mov eax, dword [ebp - 0x1b4]
add eax, edi
cmp dword [ebp - 0x1c0], 0x3ea
mov dword [ebp - 0x1d4], eax
je 0x70325dbe
lea eax, [ebp - 0x144]
cmp esi, 0x3ea
mov dword [ebp - 0x1b0], eax
je 0x70326990
mov eax, dword [edi + 0xe0]
test eax, eax
mov dword [ebp - 0x1b4], eax
jne 0x703254a0
mov ecx, dword [edi + 0x50]
test ecx, ecx
jne 0x703254a0
mov eax, dword [edi + 0xd8]
mov edx, dword [edi + 0x78]
cmp edx, eax
jge 0x70324d7d
mov dword [edi + 0xd8], edx
mov edx, dword [edi + 0x74]
cmp edx, 0xfffffc18
je 0x70324d8e
mov dword [edi + 0xd8], edx
cmp dword [ebp - 0x1c0], 0x3ea
je 0x70324dc2
cmp dword [ebp - 0x1d8], 0x3a97
jg 0x70324dc2
cmp dword [edi + 0xd8], 0x44f
mov eax, 0x44f
cmovle eax, dword [edi + 0xd8]
mov dword [edi + 0xd8], eax
mov eax, dword [edi + 0x84]
cmp eax, 0x5dc0
jg 0x70324e3c
cmp dword [edi + 0xd8], 0x450
jle 0x70324de5
mov dword [edi + 0xd8], 0x450
cmp eax, 0x3e80
jg 0x70324e3c
cmp dword [edi + 0xd8], 0x44f
jle 0x70324e02
mov dword [edi + 0xd8], 0x44f
cmp eax, 0x2ee0
jg 0x70324e3c
cmp dword [edi + 0xd8], 0x44e
jle 0x70324e1f
mov dword [edi + 0xd8], 0x44e
cmp eax, 0x1f40
jg 0x70324e3c
cmp dword [edi + 0xd8], 0x44d
jle 0x70324e3c
mov dword [edi + 0xd8], 0x44d
mov eax, dword [edi + 0x471c]
test eax, eax
je 0x70324e52
cmp edx, 0xfffffc18
je 0x7032637b
mov eax, dword [ebp - 0x1ac]
mov dword [esp + 4], 0xfc4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov ebx, dword [edi + 0xc8]
cmp ebx, 0x3ea
je 0x70325d9f
mov esi, dword [edi + 0xa4]
test esi, esi
je 0x70324e98
mov dword [edi + 0xd8], 0x44d
mov ecx, dword [edi + 0x84]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sar edx, 4
sub edx, eax
cmp dword [ebp + 0x10], edx
jle 0x7032545d
cmp ebx, 0x3ea
je 0x70325b2a
mov eax, dword [edi + 0xd8]
cmp eax, 0x44f
mov dword [ebp - 0x1c0], eax
jg 0x70325b2a
cmp ebx, 0x3e9
je 0x70325491
lea esi, [esi]
mov eax, dword [ebp + 0x10]
shl ecx, 3
imul eax, dword [edi + 0x94]
mov esi, dword [ebp - 0x1a0]
cdq
idiv ecx
mov ebx, esi
sub ebx, dword [ebp - 0x1d0]
lea esi, [esi - 1]
mov dword [ebp - 0x1bc], esi
cmp ebx, eax
cmovle eax, ebx
sub eax, 1
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp + 0x14]
add eax, 1
mov dword [ebp - 0x1e4], eax
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.70337e10
mov edx, dword [ebp - 0x1a8]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0x64]
mov dword [ebp - 0x1e0], esp
add eax, edx
mov dword [ebp - 0x1cc], eax
imul eax, ecx
lea eax, [eax*4 + 0x12]
and eax, 0xfffffff0
call fcn.703e0830
imul edx, ecx
sub esp, eax
lea eax, [esp + 0x30]
mov dword [ebp - 0x1b4], eax
test edx, edx
jle 0x70324fb1
mov eax, dword [edi + 0xa0]
sub eax, dword [ebp - 0x1a8]
mov ebx, dword [ebp - 0x1b4]
imul eax, ecx
lea ecx, [edi + eax*4]
xor eax, eax
fld dword [ecx + eax*4 + 0xfc]
fstp dword [ebx + eax*4]
add eax, 1
cmp eax, edx
jne 0x70324fa0
cmp dword [edi + 0xc8], 0x3ea
je 0x70326820
mov eax, dword [ebp - 0x1d4]
mov eax, dword [eax + 8]
mov edx, dword [edi + 0xb0]
sub eax, edx
mov ecx, eax
movzx eax, ax
sar ecx, 0x10
imul eax, eax, 0x3d7
imul ecx, ecx, 0x3d7
sar eax, 0x10
add eax, ecx
add eax, edx
mov dword [edi + 0xb0], eax
sar eax, 8
mov dword [esp], eax
call fcn.70338380
cmp dword [edi + 0x60], 0x800
je 0x70325f54
mov eax, dword [edi + 0x64]
lea ecx, [edi + 0xb8]
mov esi, dword [ebp - 0x1b4]
fild dword [edi + 0x84]
fdivr dword [0x708b02d8]
mov ebx, eax
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x1a8]
imul eax, ebx
test ebx, ebx
lea esi, [esi + eax*4]
mov eax, ebx
jle 0x703250c2
mov ebx, dword [ebp + 0xc]
shl eax, 2
mov dword [ebp - 0x198], eax
fld dword [0x708b0264]
xor eax, eax
mov dword [ebp + 8], edi
mov edi, ebx
lea esi, [esi]
mov edx, dword [ebp + 0x10]
test edx, edx
jle 0x703250a8
xor edx, edx
xor ebx, ebx
nop
lea esi, [esi]
fld dword [ecx + eax*8]
add ebx, 1
fld st(0)
fsubr dword [edi + edx]
fld st(3)
fmul st(1)
faddp st(2)
fxch st(1)
fadd st(2)
fstp dword [ecx + eax*8]
fld dword [ecx + eax*8 + 4]
fsub st(1), st(0)
fld st(3)
fmul st(2)
faddp st(1)
fadd st(2)
fstp dword [ecx + eax*8 + 4]
fstp dword [esi + edx]
add edx, dword [ebp - 0x198]
cmp ebx, dword [ebp + 0x10]
jne 0x70325070
add eax, 1
add edi, 4
add esi, 4
cmp eax, dword [ebp - 0x1ac]
jne 0x70325060
fstp st(0)
fstp st(0)
mov edi, dword [ebp + 8]
jmp 0x703250c4
fstp st(0)
mov eax, dword [edi + 0xc8]
cmp eax, 0x3ea
mov ebx, eax
mov dword [ebp - 0x1dc], eax
je 0x7032566b
mov eax, dword [edi + 0x64]
mov dword [ebp - 0x1f4], esp
mov dword [ebp - 0x198], eax
imul eax, dword [ebp + 0x10]
lea eax, [eax + eax + 0x10]
and eax, 0xfffffff0
call fcn.703e0830
sub esp, eax
mov eax, dword [ebp - 0x1b8]
lea esi, [esp + 0x30]
lea ecx, [eax*8]
imul ecx, dword [ebp - 0x19c]
cmp ebx, 0x3e9
je 0x70326704
mov edx, dword [edi + 0xe4]
mov dword [edi + 0x24], ecx
mov ebx, dword [edi + 0x84]
mov eax, dword [edi + 0xa8]
test edx, edx
je 0x7032529e
mov dword [ebp - 0x1ac], eax
mov eax, dword [edi + 0x88]
test eax, eax
je 0x70325298
mov eax, dword [edi + 0xa4]
test eax, eax
jne 0x70325298
mov eax, dword [edi + 0xd8]
cmp eax, 0x44d
mov dword [ebp - 0x1fc], eax
je 0x70326e90
cmp eax, 0x44e
je 0x70326ea6
fld dword [0x708b02ac]
mov ecx, 0x11
fld dword [0x708b02b0]
mov eax, dword [ebp - 0x198]
test eax, eax
jle 0x70326f73
imul eax, eax, 0x54
fldz
mov dword [ebp + 8], edi
fld dword [0x708b02c0]
add eax, edx
mov edi, eax
xor eax, eax
jmp 0x703251c9
fucomi st(1)
ja 0x703251dc
fstp st(0)
fld st(0)
add eax, 1
cmp ecx, eax
faddp st(2)
jle 0x703251f5
fld dword [edx + eax*4]
fld dword [0x708b0270]
fucompi st(1)
ja 0x703251b8
jbe 0x70325450
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jbe 0x703251c0
fmul dword [0x708b0270]
add eax, 1
cmp ecx, eax
faddp st(2)
jg 0x703251c9
add edx, 0x54
cmp edx, edi
jne 0x703251b4
fstp st(0)
mov edi, dword [ebp + 8]
fdivrp st(1)
mov edx, 0x55555556
fnstcw word [ebp - 0x18c]
movzx eax, word [ebp - 0x18c]
mov ah, 0xc
mov word [ebp - 0x192], ax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1f8], eax
neg eax
mov ecx, eax
add ecx, ecx
mov eax, ecx
imul edx
mov eax, dword [ebp - 0x1fc]
fild dword [ebp - 0x198]
sar ecx, 0x1f
fmulp st(1)
sub edx, ecx
fadd dword [0x708b02e4]
fmulp st(1)
fldcw word [ebp - 0x192]
fistp dword [ebp - 0x200]
fldcw word [ebp - 0x18c]
mov ecx, dword [ebp - 0x200]
cmp ecx, edx
cmovl ecx, edx
sub eax, 0x450
cmp eax, 1
jbe 0x70326e65
mov eax, dword [ebp - 0x1f8]
add eax, ecx
mov dword [edi + 0x24], eax
mov eax, dword [ebp + 0x10]
imul eax, ecx
lea ecx, [ebx*8]
cdq
idiv ecx
add dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1ac]
fld1
mov dword [ebp - 0x1f8], eax
fstp dword [ebp - 0x1ac]
imul eax, dword [ebp + 0x10], 0x3e8
cdq
idiv ebx
cmp dword [ebp - 0x1c0], 0x44d
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x198]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edi + 0xc], eax
je 0x703266f8
cmp dword [ebp - 0x1c0], 0x44e
mov eax, 0x2ee0
mov edx, 0x3e80
cmovne eax, edx
mov dword [edi + 0x1c], eax
cmp dword [ebp - 0x1dc], 0x3e9
je 0x703266ec
cmp dword [ebp - 0x1dc], 0x3e8
mov dword [edi + 0x18], 0x1f40
je 0x7032663b
mov eax, dword [edi + 0x88]
xor ecx, ecx
mov edx, 0x4fb
mov dword [edi + 0x14], 0x3e80
test eax, eax
mov eax, dword [ebp - 0x1bc]
sete cl
sub eax, dword [ebp - 0x1d0]
mov dword [edi + 0x38], ecx
cmp eax, 0x4fb
cmovg eax, edx
cmp dword [ebp - 0x1dc], 0x3e9
mov dword [ebp - 0x180], eax
lea edx, [eax*8]
jne 0x70325385
shl eax, 6
add eax, edx
mov edx, 0x66666667
mov dword [ebp - 0x19c], eax
imul edx
mov eax, dword [ebp - 0x19c]
sar edx, 2
sar eax, 0x1f
sub edx, eax
test ecx, ecx
mov dword [edi + 0x3c], edx
je 0x703253be
mov eax, dword [edi + 0x24]
lea ecx, [ebx*8]
imul eax, dword [ebp + 0x10]
cdq
idiv ecx
shl eax, 3
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0x24]
cmp dword [edi + 0x24], 0x7d1
lea edx, [eax - 0x7d0]
mov eax, 1
cmovge eax, edx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x1e8]
test eax, eax
jne 0x703264c0
lea eax, [edi + 8]
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x198]
xor eax, eax
imul ecx, dword [ebp + 0x10]
test ecx, ecx
jle 0x703255c6
mov ebx, dword [ebp - 0x198]
mov dword [ebp + 8], edi
mov edi, dword [ebp - 0x1b4]
imul ebx, dword [ebp - 0x1a8]
jmp 0x70325434
fstp st(1)
fld dword [0x708b02c8]
fucomi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
mov dword [ebp - 0x16c], 0
fistp dword [ebp - 0x16c]
mov edx, dword [ebp - 0x16c]
mov word [esi + eax*2], dx
add eax, 1
cmp ecx, eax
jle 0x703255c3
lea edx, [ebx + eax]
fld dword [0x708b0274]
fmul dword [edi + edx*4]
fld dword [0x708b02c4]
fxch st(1)
fucomi st(1)
ja 0x70325401
fstp st(0)
jmp 0x7032540f
fstp st(0)
fld dword [0x708b02bc]
jmp 0x703251c0
mov eax, dword [edi + 0xd8]
cmp ebx, 0x3e8
mov dword [ebp - 0x1c0], eax
je 0x70325f30
cmp ebx, 0x3e9
jne 0x70324ef0
cmp dword [ebp - 0x1c0], 0x44f
jg 0x70324ef0
mov dword [edi + 0xc8], 0x3e8
jmp 0x70324ef0
mov eax, dword [edi + 0x2c]
mov edx, 0x51eb851f
lea ecx, [eax + 0x2d]
imul ecx, dword [ebp - 0x1c8]
mov eax, ecx
imul edx
sar ecx, 0x1f
mov dword [ebp - 0x198], edx
mov edx, dword [edi + 0x88]
sar dword [ebp - 0x198], 4
sub dword [ebp - 0x198], ecx
mov esi, dword [ebp - 0x198]
mov eax, esi
sub eax, 0x3e8
test edx, edx
cmovne eax, esi
mov dword [ebp - 0x198], eax
cmp dword [edi + 0x64], 2
mov esi, 0x708b0220
mov ebx, 0x708b0240
je 0x70325f17
mov eax, dword [ebp - 0x1cc]
xor edx, edx
mov dword [ebp + 8], edi
mov edi, dword [ebp - 0x1b0]
mov ecx, eax
imul ecx, eax
mov eax, dword [ebx + edx*4]
sub eax, dword [esi + edx*4]
imul eax, ecx
sar eax, 0xe
add eax, dword [esi + edx*4]
mov dword [edi + edx*4], eax
add edx, 1
cmp edx, 8
jne 0x70325514
mov edi, dword [ebp + 8]
mov eax, 0x451
mov ebx, dword [ebp - 0x1b0]
mov esi, dword [ebp - 0x1b4]
mov edx, dword [ebx + eax*8 - 0x2270]
mov ecx, dword [ebx + eax*8 - 0x226c]
test esi, esi
jne 0x70325563
mov esi, edx
add edx, ecx
sub esi, ecx
cmp eax, dword [edi + 0xd8]
cmovle edx, esi
cmp dword [ebp - 0x198], edx
jge 0x70325575
sub eax, 1
cmp eax, 0x44d
jne 0x7032553c
mov ecx, dword [ebp - 0x1b4]
mov dword [edi + 0xd8], eax
test ecx, ecx
jne 0x70324d70
cmp dword [ebp - 0x1c0], 0x3ea
je 0x70324d70
mov edx, dword [edi + 0x54]
test edx, edx
jne 0x70324d70
cmp eax, 0x44f
jle 0x70324d70
mov dword [edi + 0xd8], 0x44f
mov eax, 0x44f
jmp 0x70324d70
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x180]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x19c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1d4]
mov dword [esp], eax
call fcn.703350c0
test eax, eax
jne 0x703264b6
mov ebx, dword [ebp - 0x180]
test ebx, ebx
jne 0x7032643c
mov eax, dword [edi + 0x84]
mov dword [edi + 0x4724], 0
cdq
idiv dword [ebp + 0x10]
mov edx, dword [edi + 0xa8]
mov ebx, eax
mov eax, dword [edi + 0xc8]
mov dword [esp], edx
mov ecx, dword [ebp - 0x1c0]
mov edx, ebx
call fcn.70322e70
mov esi, dword [ebp + 0x14]
mov byte [esi], al
mov eax, 1
mov esp, dword [ebp - 0x1f4]
mov esp, dword [ebp - 0x1e0]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x1c0]
fld1
fstp dword [ebp - 0x1ac]
sub eax, 0x44d
cmp eax, 3
mov edx, 0x15
ja 0x7032568f
mov edx, dword [eax*4 + 0x708b01c0]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x271c
mov esi, dword [ebp - 0x1a4]
mov dword [esp], esi
call fcn.7032c620
mov eax, dword [edi + 0xa8]
mov dword [esp], esi
mov dword [esp + 4], 0x2718
mov dword [esp + 8], eax
call fcn.7032c620
mov dword [esp], esi
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0xfa2
call fcn.7032c620
mov esi, dword [edi + 0xc8]
cmp esi, 0x3e8
jne 0x70325de7
mov eax, dword [edi + 0x84]
mov edx, 0x51eb851f
mov dword [ebp - 0x1d4], esp
mov ebx, eax
mov dword [ebp - 0x1d0], eax
mov eax, dword [edi + 0x64]
mov ecx, eax
imul ecx, ebx
mov dword [ebp - 0x198], eax
mov eax, ecx
imul edx
sar ecx, 0x1f
sar edx, 7
sub edx, ecx
lea eax, [edx*4 + 0x12]
and eax, 0xfffffff0
call fcn.703e0830
sub esp, eax
lea eax, [esp + 0x30]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1b8], 0
mov eax, dword [edi + 0xa0]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x19c]
sub eax, dword [ebp - 0x1cc]
imul eax, dword [ebp - 0x198]
test eax, eax
jle 0x70326f6c
mov ecx, dword [ebp - 0x198]
imul ecx, dword [ebp + 0x10]
lea ebx, [eax + ecx]
lea edx, [edi + ecx*4 + 0xfc]
neg ecx
lea ebx, [edi + ebx*4 + 0xfc]
shl ecx, 2
lea esi, [esi]
fld dword [edx]
add edx, 4
fstp dword [edx + ecx - 4]
cmp edx, ebx
jne 0x70325790
mov edx, dword [ebp - 0x198]
imul edx, dword [ebp - 0x19c]
cmp eax, edx
jge 0x703257e1
mov ecx, dword [ebp - 0x1cc]
sub ecx, dword [ebp - 0x19c]
mov ebx, dword [ebp - 0x1b4]
imul ecx, dword [ebp - 0x198]
lea ecx, [ebx + ecx*4]
lea esi, [esi]
fld dword [ecx + eax*4]
fstp dword [edi + eax*4 + 0xfc]
add eax, 1
cmp eax, edx
jne 0x703257d0
fld dword [edi + 0xb4]
fld1
fucomi st(1)
ja 0x7032612e
fld dword [ebp - 0x1ac]
fxch st(1)
fucompi st(1)
fstp st(0)
ja 0x70326130
fstp st(0)
fld dword [ebp - 0x1ac]
cmp esi, 0x3e9
fstp dword [edi + 0xb4]
je 0x7032642a
xor eax, eax
cmp dword [ebp - 0x1c8], 0x752f
jle 0x70325845
mov eax, dword [ebp - 0x1c8]
mov edx, 0x4000
lea eax, [eax + eax - 0xea60]
cmp eax, 0x4000
cmovg eax, edx
mov dword [edi + 0x58], eax
mov ecx, dword [edi + 0xe4]
test ecx, ecx
je 0x70326aa9
cmp esi, 0x3ea
je 0x703258a6
bsr eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x130]
xor eax, 0x1f
cmp esi, 0x3e9
lea eax, [eax + edx - 0x20]
je 0x70326f7a
mov ebx, dword [ebp - 0x1bc]
add eax, 0x11
lea edx, [ebx*8]
cmp eax, edx
jg 0x703258a6
mov eax, dword [ebp - 0x1f0]
test eax, eax
jne 0x70326cb0
mov esi, dword [edi + 0xc8]
mov dword [edi + 0xdc], 0
mov byte [ebp - 0x1ac], 0
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
cmp esi, 0x3ea
je 0x7032641b
cmp esi, 0x3e8
mov dword [ebp - 0x1a8], 0x11
je 0x703263ef
mov eax, dword [ebp - 0x1b8]
mov ebx, dword [ebp - 0x1bc]
sub ebx, dword [ebp - 0x198]
cmp ebx, eax
cmovg ebx, eax
xor esi, esi
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.703381a0
mov eax, dword [ebp - 0x19c]
test eax, eax
jne 0x70326232
cmp dword [edi + 0xc8], 0x3e8
je 0x70325952
lea eax, [ebp - 0x160]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x2726
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov eax, dword [ebp - 0x1a8]
mov dword [esp + 4], 0x271a
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov eax, dword [edi + 0xc8]
cmp eax, 0x3e8
je 0x70325a3d
mov edx, dword [edi + 0xcc]
cmp eax, edx
je 0x70325a1a
test edx, edx
jle 0x70325a1a
mov dword [esp + 4], 0xfbc
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
lea eax, [ebp - 0x16c]
mov edx, 0x51eb851f
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 2
mov ecx, dword [edi + 0x84]
mov eax, ecx
imul edx
sar ecx, 0x1f
sar edx, 7
sub edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x1d8]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.70328030
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2712
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
bsr eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x130]
lea edx, [ebx*8]
xor eax, 0x1f
lea eax, [eax + ecx - 0x20]
cmp edx, eax
jge 0x70326332
cmp byte [ebp - 0x1ac], 0
jne 0x70326834
mov eax, dword [edi + 0x84]
cdq
idiv dword [ebp + 0x10]
mov edx, dword [edi + 0xa8]
mov ebx, eax
mov eax, dword [edi + 0xc8]
mov dword [esp], edx
mov ecx, dword [ebp - 0x1c0]
mov edx, ebx
call fcn.70322e70
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x17c]
mov byte [ebx], al
mov eax, dword [ebp - 0x128]
mov ebx, dword [ebp - 0x1c4]
xor edx, eax
test ebx, ebx
mov dword [edi + 0x4724], edx
je 0x703261d0
mov dword [edi + 0xcc], 0x3ea
mov edx, dword [edi + 0xa8]
bsr eax, eax
mov ecx, dword [ebp - 0x130]
xor eax, 0x1f
mov ebx, dword [ebp + 0x10]
mov dword [edi + 0xe0], 0
mov dword [edi + 0xd0], edx
mov edx, dword [ebp - 0x1bc]
lea eax, [eax + ecx - 0x20]
mov dword [edi + 0xd4], ebx
shl edx, 3
cmp edx, eax
jge 0x7032618b
cmp dword [ebp - 0x1a0], 1
mov eax, 0xfffffffe
jle 0x70325b1f
mov eax, dword [ebp + 0x14]
mov esi, 1
mov byte [eax + 1], 0
mov dword [edi + 0x4724], 0
mov edx, dword [edi + 0x88]
mov eax, dword [ebp - 0x198]
test edx, edx
lea eax, [esi + eax + 1]
je 0x70326a7d
mov esp, dword [ebp - 0x1d4]
jmp 0x7032565d
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x1a4], esp
cmp eax, 0xffffffff
je 0x70325b4d
mov dword [edi + 0x3134], eax
mov eax, dword [ebp - 0x1bc]
mov dword [edi + 0x3138], eax
mov eax, ecx
mov edx, 0x51eb851f
imul edx
xor eax, eax
sar ecx, 0x1f
mov ebx, 0x4fc
sar edx, 3
sub edx, ecx
cmp dword [ebp + 0x10], edx
setg al
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp + 0x18]
add dword [ebp - 0x19c], 2
mov esi, dword [ebp - 0x19c]
sub eax, 3
cdq
idiv esi
cmp eax, 0x4fc
cmovg eax, ebx
imul esi, eax
mov dword [ebp - 0x198], eax
mov eax, esi
add eax, 0xf
and eax, 0xfffffff0
call fcn.703e0830
sub esp, eax
mov eax, dword [ebp - 0x1b0]
lea esi, [esp + 0x30]
mov dword [esp], eax
call fcn.70330fd0
mov eax, dword [edi + 0x7c]
mov ebx, dword [edi + 0x40]
mov dword [ebp - 0x1a8], eax
mov eax, dword [edi + 0x74]
test ebx, ebx
mov dword [ebp - 0x1bc], ebx
mov dword [ebp - 0x1b4], eax
mov eax, dword [edi + 0x6c]
mov dword [ebp - 0x1b8], eax
mov eax, dword [edi + 0xc8]
mov dword [edi + 0x7c], eax
mov eax, dword [edi + 0xd8]
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0xa8]
mov dword [edi + 0x6c], eax
je 0x703261e1
mov dword [edi + 0x6c], 1
mov eax, dword [ebp - 0x19c]
xor ebx, ebx
sub eax, 1
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x1c4]
mov dword [edi + 0x40], 0
test ecx, ecx
je 0x70325c35
cmp dword [ebp - 0x1a0], ebx
je 0x70326fe2
mov eax, dword [ebp + 0x34]
mov ecx, dword [edi + 0x84]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x198]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, 0x51eb851f
imul ecx
mov eax, ecx
sar eax, 0x1f
sar edx, 4
sub edx, eax
mov eax, 0x51eb851f
mov dword [esp + 8], edx
imul ecx, dword [edi + 0x64]
imul ecx
mov eax, dword [ebp + 0xc]
sar ecx, 0x1f
mov dword [esp], edi
sar edx, 4
sub edx, ecx
imul edx, ebx
lea eax, [eax + edx*4]
mov dword [esp + 4], eax
call fcn.70324390
test eax, eax
js 0x70325f4a
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.70331010
test eax, eax
js 0x70325f4a
add ebx, 1
add esi, dword [ebp - 0x198]
cmp dword [ebp - 0x19c], ebx
jg 0x70325c18
mov esi, dword [edi + 0x88]
test esi, esi
jne 0x70325d27
mov eax, dword [edi + 0x94]
lea ebx, [eax + eax*2]
mov eax, 0x4b0
cdq
idiv dword [ebp - 0x19c]
mov ecx, eax
mov eax, ebx
cdq
idiv ecx
cmp dword [ebp + 0x18], eax
cmovle eax, dword [ebp + 0x18]
mov dword [ebp + 0x18], eax
xor eax, eax
test esi, esi
sete al
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x19c]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.70331040
test eax, eax
js 0x70325f4a
mov esi, dword [ebp - 0x1a8]
mov dword [edi + 0x7c], esi
mov esi, dword [ebp - 0x1b4]
mov dword [edi + 0x74], esi
mov esi, dword [ebp - 0x1b8]
mov dword [edi + 0x6c], esi
mov esi, dword [ebp - 0x1bc]
mov dword [edi + 0x40], esi
mov esp, dword [ebp - 0x1a4]
jmp 0x7032484e
cmp dword [edi + 0xd8], 0x44e
jne 0x70324e84
mov dword [edi + 0xd8], 0x44f
jmp 0x70324e84
mov eax, dword [edi + 0xe0]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x198], eax
lea eax, [ebp - 0x144]
mov dword [ebp - 0x1b0], eax
jmp 0x703254ea
mov dword [esp + 8], 0
mov dword [esp + 4], 0xfa6
mov esi, dword [ebp - 0x1a4]
mov dword [esp], esi
call fcn.7032c620
cmp dword [edi + 0x48], 1
mov dword [esp], esi
mov dword [esp + 4], 0x2712
sbb eax, eax
and eax, 2
mov dword [esp + 8], eax
call fcn.7032c620
mov esi, dword [edi + 0xc8]
cmp esi, 0x3e9
je 0x70326bfb
mov eax, dword [edi + 0x88]
test eax, eax
jne 0x703269f0
mov eax, dword [edi + 0x84]
mov dword [ebp - 0x1d0], eax
mov eax, dword [edi + 0x64]
mov ecx, 0x51eb851f
mov ebx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1d4], esp
mov dword [ebp - 0x198], eax
imul ebx, eax
mov eax, ebx
imul ecx
sar ebx, 0x1f
mov ecx, edx
sar ecx, 7
sub ecx, ebx
lea eax, [ecx*4 + 0x12]
and eax, 0xfffffff0
call fcn.703e0830
sub esp, eax
cmp esi, 0x3e8
lea eax, [esp + 0x30]
mov dword [ebp - 0x1d8], eax
je 0x70325745
mov eax, dword [edi + 0xcc]
cmp eax, esi
je 0x70325745
test eax, eax
jle 0x70325745
test ecx, ecx
jle 0x70325745
mov eax, dword [edi + 0xa0]
mov edx, 0x51eb851f
mov ebx, eax
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x1d0]
sub ebx, dword [ebp - 0x1a8]
imul edx
mov eax, dword [ebp - 0x1d0]
sar edx, 7
sar eax, 0x1f
sub eax, edx
add eax, ebx
mov ebx, dword [ebp - 0x1d8]
imul eax, dword [ebp - 0x198]
lea edx, [edi + eax*4]
xor eax, eax
fld dword [edx + eax*4 + 0xfc]
fstp dword [ebx + eax*4]
add eax, 1
cmp eax, ecx
jne 0x70325f01
jmp 0x70325751
cmp dword [edi + 0x6c], 1
mov eax, 0x708b01e0
cmovne esi, eax
mov eax, 0x708b0200
cmovne ebx, eax
jmp 0x703254fe
cmp eax, 0x44f
jle 0x70324ef0
mov dword [edi + 0xc8], 0x3e9
jmp 0x70324ef0
mov eax, 0xfffffffd
jmp 0x70325d94
mov esi, dword [edi + 0x64]
cwde
mov ecx, 0x10624dd3
mov edx, dword [ebp - 0x1a8]
mov ebx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1ac], esi
imul edx, esi
mov esi, dword [edi + 0x84]
lea ebx, [ebx + edx*4]
mov dword [ebp - 0x204], ebx
imul ebx, eax, 0x9a7
mov eax, esi
imul ecx
sar esi, 0x1f
mov eax, ebx
mov ecx, edx
cdq
sar ecx, 6
sub ecx, esi
idiv ecx
imul edx, eax, 0xfffffe29
lea ebx, [edx + 0x10000000]
mov edx, ebx
mov esi, ebx
neg edx
mov ecx, ebx
add edx, edx
mov dword [ebp - 0x168], edx
mov edx, eax
sar edx, 0x10
mov dword [ebp - 0x1f4], edx
mov edx, eax
sar esi, 6
sar edx, 0xf
mov dword [ebp - 0x1dc], esi
add edx, 1
movsx esi, ax
mov dword [ebp - 0x198], edx
mov edx, esi
movzx esi, ax
sar dword [ebp - 0x198], 1
imul esi, edx
mov dword [ebp - 0x1f8], edx
movzx edx, word [ebp - 0x198]
sar ecx, 0x16
add dx, word [ebp - 0x1f4]
mov dword [ebp - 0x208], ecx
sar esi, 0x10
imul edx, eax
imul eax, dword [ebp - 0x198]
mov dword [ebp - 0x16c], ebx
mov dword [ebp - 0x164], ebx
add edx, esi
movsx edx, dx
mov dword [ebp - 0x1fc], edx
movzx edx, word [ebp - 0x1dc]
imul ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x200], edx
mov edx, dword [ebp - 0x1fc]
imul edx, dword [ebp - 0x200]
sar edx, 0x10
add edx, ecx
mov ecx, dword [ebp - 0x1f8]
imul ecx, dword [ebp - 0x1f4]
add ecx, esi
mov esi, dword [ebp - 0x1dc]
lea eax, [ecx + eax - 0x800000]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, esi
lea ecx, [ebp - 0x174]
add eax, edx
mov edx, dword [ebp - 0x208]
mov dword [ebp - 0x174], eax
movsx eax, si
imul edx, eax
imul eax, dword [ebp - 0x200]
sar eax, 0x10
add eax, edx
mov edx, ebx
sar edx, 0x15
add edx, 1
sar edx, 1
imul edx, esi
mov esi, dword [ebp - 0x1ac]
add eax, edx
mov dword [ebp - 0x170], eax
lea edx, [ebp - 0x16c]
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov ebx, dword [ebp - 0x204]
lea eax, [edi + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0xc]
call fcn.70322f10
cmp esi, 2
jne 0x703250c4
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x174]
mov dword [esp + 0xc], 2
mov esi, dword [ebp + 0x10]
add eax, 4
mov dword [esp + 8], esi
mov edx, dword [ebp - 0x204]
add edx, 4
mov dword [esp + 4], edx
lea edx, [edi + 0xc0]
mov dword [esp], edx
lea edx, [ebp - 0x16c]
call fcn.70322f10
jmp 0x703250c4
fstp st(0)
mov eax, dword [ebp - 0x178]
mov esi, dword [ebp - 0x1d0]
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], esi
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x198]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
fld dword [ebp - 0x1ac]
fstp dword [esp + 4]
fstp dword [esp]
mov eax, dword [ebp - 0x1b4]
mov edx, eax
call fcn.70322fb0
mov esi, dword [edi + 0xc8]
jmp 0x70325805
mov eax, dword [edi + 0xc8]
jmp 0x70324683
cmp dword [edi + 0xc8], 0x3e8
jne 0x70325b07
mov ecx, dword [ebp - 0x19c]
test ecx, ecx
jne 0x70325b07
cmp esi, 2
jle 0x70325b07
mov eax, dword [ebp + 0x14]
jmp 0x703261c3
sub esi, 1
cmp esi, 2
je 0x70325b07
cmp byte [eax + esi], 0
je 0x703261b7
jmp 0x70325b07
mov edx, dword [edi + 0xc8]
mov dword [edi + 0xcc], edx
jmp 0x70325aa3
mov dword [edi + 0xd0], eax
jmp 0x70325c07
mov dword [ebp - 0x1c4], 0
mov ebx, dword [edi + 0x84]
mov dword [ebp - 0x1ec], 1
jmp 0x70324c92
mov edx, dword [edi + 0x60]
mov ebx, 0x30
cmp edx, 0x800
mov dword [ebp - 0x1c0], edx
mov edx, 0x73
cmovne edx, ebx
mov dword [ebp - 0x1cc], edx
jmp 0x7032462f
lea eax, [ebp - 0x160]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x2726
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
movzx eax, byte [ebp - 0x1ec]
test byte [ebp - 0x19c], al
je 0x70325952
mov dword [esp + 8], 0
mov dword [esp + 4], 0x271a
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov dword [esp + 8], 0
mov dword [esp + 4], 0xfa6
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov edx, 0x51eb851f
mov dword [esp + 0x14], 0
mov ecx, dword [ebp - 0x198]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0x1e4]
lea eax, [ecx + ebx]
mov dword [esp + 0xc], eax
mov ecx, dword [edi + 0x84]
mov eax, ecx
imul edx
sar ecx, 0x1f
sar edx, 6
sub edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x1b4]
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.70328030
test eax, eax
js 0x70326371
lea eax, [ebp - 0x17c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xfbf
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov dword [esp + 4], 0xfbc
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
jmp 0x70325952
mov eax, dword [ebp - 0x1b0]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1b4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.70328030
test eax, eax
mov esi, eax
jns 0x70325a3d
mov eax, 0xfffffffd
jmp 0x70325b1f
mov ebx, dword [edi + 0xa8]
imul edx, ebx, 0x4650
cmp edx, dword [ebp - 0x1c8]
jl 0x7032648a
cmp dword [ebp - 0x1c0], 0x3ea
mov edx, 0x44d
je 0x703263ce
imul ecx, ebx, 0x7530
mov edx, 0x44f
cmp ecx, dword [ebp - 0x1c8]
jge 0x703263ce
imul ebx, ebx, 0xabe0
xor edx, edx
cmp ebx, dword [ebp - 0x1c8]
setl dl
add edx, 0x450
cmp edx, eax
cmovge eax, edx
mov edx, dword [edi + 0xd8]
mov dword [edi + 0x471c], eax
cmp eax, edx
cmovg eax, edx
mov dword [edi + 0xd8], eax
jmp 0x70324e52
bsr eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x130]
xor eax, 0x1f
lea esi, [eax + edx - 0x19]
mov eax, dword [ebp - 0x1b0]
sar esi, 3
mov ebx, esi
mov dword [esp], eax
call fcn.703381e0
jmp 0x70325918
mov dword [ebp - 0x1a8], 0
jmp 0x703258ed
cmp dword [edi + 0xa8], 1
jne 0x70325848
jmp 0x7032581d
cmp dword [edi + 0xc8], 0x3e8
je 0x70326d5c
mov eax, dword [ebp - 0x1c0]
sub eax, 0x44d
mov edx, dword [edi + 0x5c]
test edx, edx
mov dword [edi + 0x44], edx
je 0x7032647f
mov dword [edi + 0xdc], 1
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0x1f0], 1
mov esp, dword [ebp - 0x1f4]
jmp 0x7032567e
imul edx, ebx, 0x5dc0
cmp edx, dword [ebp - 0x1c8]
jl 0x703263a4
cmp dword [ebp - 0x1c0], 0x3ea
mov edx, 0x44e
jne 0x703263a4
jmp 0x703263ce
mov eax, 0xfffffffd
jmp 0x70325657
mov eax, ebx
mov edx, 0x51eb851f
mov ecx, dword [edi + 0xa0]
imul edx
mov eax, ebx
sub ecx, dword [edi + 0x68]
sar eax, 0x1f
mov dword [ebp - 0x1dc], eax
sar edx, 7
sub eax, edx
add ecx, eax
mov eax, dword [ebp - 0x178]
imul ecx, dword [ebp - 0x198]
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x19c], ecx
lea ecx, [edi + ecx*4 + 0xfc]
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], ebx
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x10], eax
mov ebx, dword [ebp - 0x198]
mov dword [esp + 0xc], ebx
sub edx, dword [ebp - 0x1dc]
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x1d8]
mov edx, eax
call fcn.70322fb0
mov eax, dword [ebp - 0x19c]
test eax, eax
jle 0x7032657d
mov ebx, dword [ebp - 0x19c]
lea eax, [edi + 0xfc]
lea edx, [edi + ebx*4 + 0xfc]
lea esi, [esi]
mov dword [eax], 0
add eax, 4
cmp eax, edx
jne 0x70326570
mov edx, dword [edi + 0xa0]
mov eax, dword [edi + 0x64]
imul eax, edx
test eax, eax
jle 0x703265ee
fld dword [0x708b02c4]
xor eax, eax
fld st(0)
jmp 0x703265d3
fld dword [0x708b02c8]
fucomi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
mov dword [ebp - 0x16c], 0
fistp dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x16c]
mov word [esi + eax*2], cx
mov ecx, dword [edi + 0x64]
add eax, 1
imul ecx, edx
cmp ecx, eax
jle 0x703265ea
fld dword [0x708b0274]
fmul dword [edi + eax*4 + 0xfc]
fucomi st(2)
ja 0x703265a0
fstp st(0)
fld st(0)
jmp 0x703265ac
fstp st(0)
fstp st(0)
lea eax, [edi + 8]
mov dword [ebp - 0x19c], eax
mov ebx, eax
lea eax, [ebp - 0x174]
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x1d4]
mov dword [esp], eax
call fcn.703350c0
mov eax, dword [edi + 0x64]
mov dword [ebp - 0x198], eax
jmp 0x703253d5
cmp dword [ebp - 0x19c], 0x32
mov dword [edi + 0x14], 0x3e80
jle 0x7032666b
mov ecx, dword [ebp - 0x1d8]
mov edx, 0x55555556
add ecx, ecx
mov eax, ecx
imul edx
sar ecx, 0x1f
mov dword [ebp - 0x1d8], edx
sub dword [ebp - 0x1d8], ecx
cmp dword [ebp - 0x1d8], 0x32c7
jg 0x703266b4
cmp dword [edi + 0x1c], 0x2ee0
mov eax, 0x2ee0
cmovle eax, dword [edi + 0x1c]
cmp dword [ebp - 0x1d8], 0x257f
mov dword [edi + 0x14], 0x2ee0
mov dword [edi + 0x1c], eax
jg 0x703266b4
mov edx, 0x1f40
cmp eax, 0x1f40
cmovle edx, eax
mov dword [edi + 0x14], 0x1f40
mov dword [edi + 0x1c], edx
mov eax, dword [edi + 0x88]
xor ecx, ecx
mov edx, dword [ebp - 0x1bc]
test eax, eax
mov eax, 0x4fb
sete cl
sub edx, dword [ebp - 0x1d0]
mov dword [edi + 0x38], ecx
cmp edx, 0x4fb
cmovg edx, eax
mov dword [ebp - 0x180], edx
shl edx, 3
jmp 0x70325385
mov dword [edi + 0x18], 0x3e80
jmp 0x7032531c
mov dword [edi + 0x1c], 0x1f40
jmp 0x703252f5
mov eax, dword [edi + 0xa8]
imul edx, dword [ebp + 0x10], 0x64
mov ebx, dword [edi + 0x84]
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1f8], eax
mov eax, 0x1388
cmp ebx, edx
mov edx, 0x1770
cmove eax, edx
mov edx, dword [ebp - 0x1ac]
imul edx, eax
mov eax, ecx
cmp dword [ebp - 0x1c0], 0x450
mov dword [ebp - 0x1fc], edx
mov dword [edi + 0x24], edx
je 0x70326db6
sub eax, dword [ebp - 0x1fc]
mov edx, 0x66666667
lea eax, [eax + eax*2]
mov dword [ebp - 0x200], eax
imul edx
sar edx, 1
mov eax, dword [ebp - 0x200]
sar eax, 0x1f
sub edx, eax
add edx, dword [ebp - 0x1fc]
lea eax, [ecx*4]
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1fc], edx
mov dword [edi + 0x24], edx
mov edx, 0x66666667
imul edx
mov eax, dword [ebp - 0x200]
sar edx, 1
sar eax, 0x1f
sub edx, eax
cmp edx, dword [ebp - 0x1fc]
jge 0x703267b1
mov dword [edi + 0x24], edx
mov edx, dword [edi + 0xe4]
test edx, edx
jne 0x70325145
sub ecx, dword [edi + 0x24]
mov eax, 0xbb8
cmp dword [ebp - 0x1c0], 0x450
mov dx, 0xe10
mov dword [ebp - 0x190], ecx
cmovne eax, edx
fild dword [ebp - 0x190]
imul eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x190], eax
fild dword [ebp - 0x190]
fadd st(1)
fdivp st(1)
fld dword [0x708b02dc]
fucompi st(1)
jbe 0x70326f29
fadd dword [0x708b02e0]
fstp dword [ebp - 0x1ac]
jmp 0x703252ac
mov dword [esp], 0x3c
call fcn.70336450
shl eax, 8
jmp 0x70324fca
mov eax, dword [ebp - 0x1ec]
test eax, eax
jne 0x70325a4a
mov ecx, dword [edi + 0x84]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
sar ecx, 0x1f
mov eax, edx
sar edx, 7
sub edx, ecx
sar eax, 6
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x1a8], eax
sub dword [ebp - 0x1a8], ecx
mov dword [esp + 4], 0xfbc
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov dword [esp + 8], 0
mov dword [esp + 4], 0x271a
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2712
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x16c]
sub ecx, dword [ebp - 0x1a8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 2
mov edx, dword [ebp - 0x1ac]
mov eax, ecx
mov dword [esp + 8], edx
sub eax, edx
mov dword [ebp - 0x1ac], ecx
mov ecx, dword [ebp - 0x1b4]
imul eax, dword [edi + 0x64]
lea eax, [ecx + eax*4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.70328030
mov dword [esp + 0x14], 0
mov ecx, dword [ebp - 0x198]
mov dword [esp + 0x10], ecx
add ebx, dword [ebp - 0x1e4]
mov dword [esp + 0xc], ebx
mov edx, dword [ebp - 0x1a8]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x1ac]
imul ecx, dword [edi + 0x64]
mov ebx, dword [ebp - 0x1b4]
lea eax, [ebx + ecx*4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.70328030
test eax, eax
js 0x70326371
lea eax, [ebp - 0x17c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xfbf
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
call fcn.7032c620
jmp 0x70325a4a
mov dword [esp + 8], eax
mov eax, dword [edi + 0x4728]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1d4]
mov dword [esp], eax
call fcn.70334fa0
mov eax, dword [edi + 0xc8]
mov dword [ebp - 0x1e8], 1
cmp eax, 0x3ea
mov dword [ebp - 0x1c0], eax
jne 0x70324d4b
mov eax, dword [edi + 0xe0]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x198], eax
jmp 0x703254ea
xor ebx, ebx
cmp dword [edi + 0x90], 0x1392
je 0x70326dcc
mov dword [esp + 8], 1
mov dword [esp + 4], 0xfa6
mov esi, dword [ebp - 0x1a4]
mov dword [esp], esi
call fcn.7032c620
mov eax, dword [edi + 0x8c]
mov dword [esp], esi
mov dword [esp + 4], 0xfb4
mov dword [esp + 8], eax
call fcn.7032c620
add ebx, dword [edi + 0x94]
mov dword [esp], esi
mov dword [esp + 4], 0xfa2
mov dword [esp + 8], ebx
call fcn.7032c620
mov eax, dword [ebp - 0x1bc]
sub eax, dword [ebp - 0x1d0]
mov esi, dword [edi + 0xc8]
mov dword [ebp - 0x1b8], eax
mov eax, dword [edi + 0x84]
mov dword [ebp - 0x1d0], eax
jmp 0x70325e4e
mov esi, dword [ebp - 0x1a0]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call fcn.703314e0
test eax, eax
jne 0x70326371
mov eax, dword [ebp - 0x1a0]
jmp 0x70325b1f
cmp dword [edi + 0x64], 2
jne 0x70325856
movzx eax, word [edi + 0xac]
mov ebx, dword [edi + 0x58]
cmp ax, 0x3fff
jle 0x70326acf
cmp ebx, 0x3fff
jg 0x70325856
mov ecx, dword [ebp - 0x178]
mov word [ebp - 0x18a], ax
mov dword [ebp - 0x190], ebx
fild word [ebp - 0x18a]
fild dword [ebp - 0x190]
mov eax, dword [ecx + 0x3c]
fld dword [0x708b02e8]
fmul st(2), st(0)
mov dword [ebp - 0x1a8], eax
mov eax, 0xbb80
cdq
idiv dword [edi + 0x84]
fld1
fsubr st(3), st(0)
fxch st(2)
fmulp st(1)
fsubp st(1)
mov dword [ebp - 0x198], eax
mov eax, dword [ecx + 4]
cdq
idiv dword [ebp - 0x198]
test eax, eax
mov ecx, eax
jle 0x70326fd9
mov eax, dword [ebp - 0x198]
fld dword [0x708b0270]
shl eax, 2
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x1b4]
lea edx, [eax + 4]
lea eax, [eax + ecx*8 + 4]
mov dword [ebp - 0x1ac], edx
mov edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x1ac]
fld dword [edx]
add eax, 8
fmul st(0)
add edx, dword [ebp - 0x19c]
fld dword [eax - 0xc]
fld dword [eax - 8]
fsubr st(1)
fmul st(3)
fld st(4)
fmul st(3)
fxch st(3)
fsubr dword [0x708b0268]
fmul st(6)
faddp st(3)
fmulp st(2)
fsub st(1)
fstp dword [eax - 0xc]
fadd dword [eax - 8]
fstp dword [eax - 8]
cmp eax, dword [ebp - 0x198]
jne 0x70326b69
fstp st(0)
fstp st(1)
cmp dword [ebp + 0x10], ecx
jle 0x70326bed
mov edx, dword [ebp - 0x1b4]
fld dword [0x708b0270]
lea eax, [edx + ecx*8 + 4]
mov ecx, edx
mov edx, dword [ebp + 0x10]
lea edx, [ecx + edx*8 + 4]
fld dword [eax - 4]
add eax, 8
fld dword [eax - 8]
fsubr st(1)
fmul st(2)
fmul st(3)
fsub st(1), st(0)
fxch st(1)
fstp dword [eax - 0xc]
fadd dword [eax - 8]
fstp dword [eax - 8]
cmp eax, edx
jne 0x70326bc7
fstp st(0)
fstp st(0)
jmp 0x70326bef
fstp st(0)
mov word [edi + 0xac], bx
jmp 0x70325856
bsr eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x130]
mov ecx, dword [edi + 0x88]
xor eax, 0x1f
lea ebx, [eax + edx - 0x19]
mov edx, dword [ebp - 0x1f0]
sar ebx, 3
lea eax, [ebx + 3]
test edx, edx
cmovne ebx, eax
test ecx, ecx
je 0x70326d94
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0x84]
imul eax, dword [edi + 0x24]
add ebx, dword [ebp - 0x1b8]
neg ecx
shl ecx, 3
cdq
idiv ecx
add eax, ebx
mov dword [ebp - 0x1b8], eax
mov eax, dword [edi + 0x84]
mov dword [ebp - 0x1d0], eax
mov eax, dword [edi + 0x64]
mov ecx, 0x51eb851f
mov dword [ebp - 0x1d4], esp
mov dword [ebp - 0x198], eax
imul eax, dword [ebp - 0x1d0]
mov ebx, eax
imul ecx
sar ebx, 0x1f
mov ecx, edx
sar ecx, 7
sub ecx, ebx
lea eax, [ecx*4 + 0x12]
and eax, 0xfffffff0
call fcn.703e0830
sub esp, eax
lea eax, [esp + 0x30]
mov dword [ebp - 0x1d8], eax
jmp 0x70325ea0
sub eax, 0xfa0
jmp 0x70324be0
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x1ec]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.70337f40
mov esi, dword [edi + 0xc8]
cmp esi, 0x3e9
je 0x70326ebc
bsr eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x130]
mov ebx, dword [edi + 0x94]
mov ecx, dword [ebp - 0x1bc]
xor eax, 0x1f
lea eax, [eax + edx - 0x19]
mov edx, 0x51eb851f
sar eax, 3
sub ecx, eax
mov eax, ebx
imul edx
mov eax, 2
sar ebx, 0x1f
sar edx, 9
sub edx, ebx
mov ebx, 0x101
cmp ecx, edx
cmovle edx, ecx
cmp edx, 2
cmovge eax, edx
cmp eax, 0x101
cmovg eax, ebx
mov dword [ebp - 0x198], eax
mov byte [ebp - 0x1ac], 1
mov dword [ebp - 0x19c], 1
jmp 0x703258cb
mov dword [ebp - 0x1c0], esi
jmp 0x7032473a
mov eax, dword [edi + 0x4c]
cmp eax, 0x1f40
je 0x70326f38
cmp eax, 0x2ee0
je 0x70326f49
cmp eax, 0x3e80
jne 0x7032644c
mov eax, 2
mov dword [ebp - 0x1c0], 0x44f
jmp 0x70326457
mov eax, dword [ebp - 0x1b8]
cmp eax, ebx
cmovge ebx, eax
mov eax, dword [edi + 0x84]
mov dword [ebp - 0x1b8], ebx
mov dword [ebp - 0x1d0], eax
jmp 0x70326c5d
sub eax, edx
mov edx, 0x55555556
add eax, eax
mov dword [ebp - 0x200], eax
imul edx
jmp 0x7032676b
mov ecx, dword [edi + 0x84]
mov edx, 0x51eb851f
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sar edx, 4
sub edx, eax
cmp edx, dword [ebp + 0x10]
je 0x70326a02
mov eax, ecx
mov esi, dword [ebp - 0x160]
cdq
idiv dword [ebp + 0x10]
imul ebx, dword [edi + 0xa8], 0x3c
add ebx, 0x28
sub eax, 0x32
imul ebx, eax
test esi, esi
je 0x70326a02
mov dword [ebp - 0x190], ebx
fild dword [ebp - 0x190]
fld dword [0x708b0270]
fmul dword [ebp - 0x15c]
fnstcw word [ebp - 0x18c]
movzx eax, word [ebp - 0x18c]
fadd dword [0x708b0268]
mov ah, 0xc
mov word [ebp - 0x192], ax
fmulp st(1)
fldcw word [ebp - 0x192]
fistp dword [ebp - 0x190]
fldcw word [ebp - 0x18c]
mov ebx, dword [ebp - 0x190]
jmp 0x70326a02
lea eax, [ecx + ecx*2]
mov edx, 0x66666667
mov dword [ebp - 0x1fc], eax
imul edx
mov eax, dword [ebp - 0x1fc]
sar edx, 1
sar eax, 0x1f
sub edx, eax
add edx, dword [ebp - 0x1f8]
mov dword [edi + 0x24], edx
jmp 0x70325282
fld dword [0x708b02a4]
mov ecx, 0xd
fld dword [0x708b02a8]
jmp 0x70325194
fld dword [0x708b02b4]
mov ecx, 0xf
fld dword [0x708b02b8]
jmp 0x70325194
mov ebx, dword [edi + 0x94]
mov edx, 0x51eb851f
mov si, 0x101
mov ecx, dword [ebp - 0x1bc]
sub ecx, dword [ebp - 0x1b8]
mov eax, ebx
imul edx
mov eax, 2
sar ebx, 0x1f
sar edx, 9
sub edx, ebx
cmp ecx, edx
cmovle edx, ecx
cmp edx, 2
cmovge eax, edx
cmp eax, 0x101
cmovg eax, esi
mov dword [ebp - 0x198], eax
sub eax, 2
mov dword [esp + 8], 0x100
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.70338070
mov esi, dword [edi + 0xc8]
jmp 0x70326d3b
fstp st(0)
fld1
fstp dword [ebp - 0x1ac]
jmp 0x703252ac
xor eax, eax
mov dword [ebp - 0x1c0], 0x44d
jmp 0x70326457
mov eax, 1
mov dword [ebp - 0x1c0], 0x44e
jmp 0x70326457
cmp eax, 0x3e8
sete cl
and ebx, ecx
jmp 0x70324812
xor eax, eax
jmp 0x7032579d
fldz
jmp 0x70325201
mov ebx, dword [ebp - 0x1bc]
lea edx, [eax + 0x25]
lea ecx, [ebx*8]
cmp ecx, edx
jl 0x703258a6
mov edx, dword [ebp - 0x1f0]
test edx, edx
jne 0x70326fb4
mov ebx, dword [ebp - 0x1b8]
add eax, 0x24
lea edx, [ebx*8]
cmp eax, edx
jge 0x703258a6
mov dword [esp + 8], 0xc
mov eax, dword [ebp - 0x1f0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp], eax
call fcn.70337f40
jmp 0x70325892
fstp st(1)
xor ecx, ecx
jmp 0x70326ba9
mov dword [edi + 0x7c], 0x3ea
jmp 0x70325c35
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0x1f0], 0
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1d0], 0
jmp 0x70324d15