Function at 0x7005fb40
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea esi, [eax + 0x153a80]
sub esp, 0xac
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x84], edx
mov edx, dword [eax + 0x155b24]
mov dword [ebp - 0x74], esi
mov esi, eax
mov eax, dword [eax + 0x155b28]
mov dword [ebp - 0x8c], ecx
cmp edx, eax
cmovle eax, edx
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x15cb98]
mov esi, dword [esi + 0x156168]
lea ecx, [esi*8]
cmp ecx, dword [eax]
mov dword [ebp - 0x58], esi
jne 0x7005fbb0
mov esi, dword [ebp - 0x44]
mov esi, dword [esi + 0x156160]
lea ecx, [esi*8]
cmp ecx, dword [eax + 4]
mov dword [ebp - 0x58], esi
je 0x70060e20
mov edi, dword [ebp - 0x44]
lea ebx, [edi + 0x15cb9c]
mov edx, ebx
call fcn.7005f700
mov edx, dword [edi + 0x155b24]
mov dword [edi + 0x15cb94], ebx
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x15cc20]
xor edi, edi
mov ecx, edi
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x15cc24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x15cc28]
mov dword [ebp - 0x20], eax
mov eax, edx
mov edx, dword [ebp + ecx*4 - 0x28]
lea esi, [ebx + edx*4]
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x58], esi
mov esi, dword [esi + 0x155fc8]
imul edi, esi, 0x5c
lea edi, [edx + edi + 0x20c8]
cmp dword [edi + 8], eax
jne 0x7005fc21
mov edx, dword [ebx + 0x155b28]
cmp dword [edi + 0xc], edx
je 0x7005ff7f
mov edx, dword [ebx + 0x155f98]
test edx, edx
je 0x70061f22
mov esi, dword [ebx + 0x155f9c]
test esi, esi
je 0x70061ccf
mov edx, dword [ebx + 0x155fa0]
test edx, edx
je 0x70061cc5
mov esi, dword [ebx + 0x155fa4]
test esi, esi
je 0x70061cf7
mov edx, dword [ebx + 0x155fa8]
test edx, edx
je 0x70061ced
mov esi, dword [ebx + 0x155fac]
test esi, esi
je 0x70061ce3
mov edx, dword [ebx + 0x155fb0]
test edx, edx
je 0x70061cd9
mov esi, dword [ebx + 0x155fb4]
test esi, esi
je 0x70061d1f
mov edx, dword [ebx + 0x155fb8]
test edx, edx
je 0x70061d15
mov esi, dword [ebx + 0x155fbc]
test esi, esi
je 0x70061d0b
mov edx, dword [ebx + 0x155fc0]
test edx, edx
je 0x70061d01
mov esi, dword [ebx + 0x155fc4]
test esi, esi
je 0x70061bee
mov dword [esp + 8], 0xe6
mov esi, 0xc
mov dword [esp + 4], 0x707980c4
mov dword [esp], str.i___NUM_YV12_BUFFERS
mov dword [ebp - 0x58], ecx
call fcn.6feeef40
mov eax, dword [ebx + 0x155b24]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x60], ecx
imul edx, esi, 0x5c
mov ecx, dword [ebp - 0x74]
mov dword [ebx + esi*4 + 0x155f98], 1
mov dword [esp + 0x14], 0xa0
lea edx, [ecx + edx + 0x20c8]
mov ecx, dword [ebx + 0x155b40]
mov dword [ebp - 0x58], edx
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0x155b3c]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebx + 0x155b28]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.700704c0
mov edx, dword [ebp - 0x58]
mov eax, edi
call fcn.7005f700
mov ecx, dword [ebp - 0x60]
mov dword [ebx + ecx*4 + 0x15cc14], esi
add ecx, 1
cmp ecx, 3
je 0x7005fd6d
mov eax, dword [ebx + 0x155b24]
jmp 0x7005fbf0
call fcn.70075860
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax + 0x15cc3c]
test ebx, ebx
je 0x7005fdc1
mov esi, eax
mov eax, dword [eax + 0x1f7430]
mov dword [esi + 0x1e1ec4], eax
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
fmul qword [esi + 0x1e1ed8]
fnstcw word [ebp - 0x3e]
movzx eax, word [ebp - 0x3e]
mov ah, 0xc
mov word [ebp - 0x40], ax
fldcw word [ebp - 0x40]
fistp dword [ebp - 0x3c]
fldcw word [ebp - 0x3e]
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x1f5d18], eax
sar eax, 0x1f
mov dword [esi + 0x1f5d1c], eax
mov esi, dword [ebp - 0x44]
mov ecx, dword [esi + 0x15ca24]
mov eax, dword [esi + 0x15cc00]
mov dword [esi + 0x1e1f18], 0
mov dword [esi + 0x1e1f1c], 0
test ecx, ecx
mov dword [esi + 0x156e10], eax
je 0x7005fdfb
test byte [esi + 0x156154], 1
je 0x70060e30
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x15613c], 0
mov edi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x50]
mov byte [edi + 0x156e21], 0
mov dword [esp], edi
mov dword [esp + 4], esi
call fcn.700ce7c0
mov dword [edi + 0x1f6f28], eax
mov edi, dword [edi + 0x1f5e84]
mov eax, dword [ebp - 0x44]
test edi, edi
mov eax, dword [eax + 0x15613c]
je 0x7005ff64
test eax, eax
je 0x7005ff58
mov edi, dword [ebp - 0x44]
mov esi, dword [edi + 0x156148]
test esi, esi
jne 0x7005ff58
mov edi, dword [ebp - 0x44]
mov esi, dword [edi + 0x156140]
test esi, esi
je 0x7005fe8f
mov eax, dword [edi + 0x1f6f24]
mov esi, dword [ebp - 0x50]
mov dword [esp], edi
mov dword [ebp - 0x58], eax
add eax, eax
cmp esi, eax
cmovbe eax, esi
mov dword [esp + 4], eax
call fcn.700ce7c0
mov dword [edi + 0x1f6f28], eax
mov eax, dword [edi + 0x15613c]
mov esi, dword [ebp - 0x44]
test eax, eax
mov dword [esi + 0x1f6f24], 0
jne 0x7005ff6c
mov edi, dword [ebp - 0x44]
xor ebx, ebx
mov dword [esp], edi
call fcn.700de450
lea edx, [edi + 0x156e30]
mov ecx, 0xffffffff
mov byte [edi + 0x156e30], 0
mov byte [edi + 0x156e31], 0
mov byte [edi + 0x156e32], 0
mov dword [edi + 0x156e35], 0xffffffff
mov word [edi + 0x156e39], cx
mov byte [edi + 0x156e3b], 0xff
mov dword [esp], edx
call fcn.700dec60
cmp byte [edi + 0x156e30], 0
mov dword [edi + 0x156e26], 0
mov word [edi + 0x156e2c], bx
mov byte [edi + 0x156e20], 1
mov byte [edi + 0x156e21], 1
mov byte [edi + 0x156e22], 2
mov byte [edi + 0x156e23], 0
mov byte [edi + 0x156e24], 0xfe
mov byte [edi + 0x156e25], 0xfe
mov byte [edi + 0x156e2a], 0
mov byte [edi + 0x156e2b], 0
je 0x7005ff9c
mov eax, dword [ebp - 0x44]
mov byte [eax + 0x156e31], 1
mov edi, eax
mov byte [eax + 0x156e32], 1
jmp 0x7005ff9f
mov edi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x50]
mov dword [edi + 0x1f6f24], esi
test eax, eax
je 0x7005fea4
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax + 0x156148]
test ebx, ebx
jne 0x7005fea4
jmp 0x7005ffee
mov eax, dword [ebp - 0x58]
mov dword [ebx + ecx*4 + 0x15cc14], esi
mov eax, dword [eax + 0x155fc8]
add dword [ebx + eax*4 + 0x155f98], 1
jmp 0x7005fd5a
mov edi, dword [ebp - 0x44]
mov eax, dword [edi + 0x15cadc]
mov ecx, dword [edi + 0x15cae0]
mov dword [edi + 0x15cc00], 0
test eax, eax
setne al
xor edx, edx
movzx eax, al
test ecx, ecx
setne dl
test eax, eax
mov dword [edi + 0x15ca2c], eax
mov eax, edi
mov dword [edi + 0x15ca30], edx
jne 0x70060d0c
mov esi, dword [edi + 0x156148]
test esi, esi
je 0x7005fff1
mov dword [edi + 0x156150], 2
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1f5db4]
cmp eax, 2
jne 0x70060003
jmp 0x70060d3c
fstp st(0)
mov esi, dword [ebp - 0x44]
mov dword [esp], esi
call fcn.700dea40
call fcn.70075860
mov ecx, dword [esi + 0x1e1f58]
mov esi, dword [esi + 0x15613c]
test esi, esi
je 0x70060ee9
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax + 0x156148]
test ebx, ebx
jne 0x70060ee9
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 0x15cc04]
test edi, edi
jne 0x70061b37
mov edx, dword [eax + 0x15cc38]
test edx, edx
jne 0x70060061
mov eax, dword [eax + 0x15cc3c]
test eax, eax
je 0x70061b37
mov edi, dword [ebp - 0x44]
mov eax, ecx
mov edx, dword [edi + 0x15d0a0]
cmp edx, 1
jbe 0x7006007f
mov eax, dword [edi + 0x1e1f04]
mov edi, dword [ebp - 0x44]
cmp eax, ecx
cmovg eax, ecx
mov edi, dword [edi + 0x15ca84]
cmp edi, 2
je 0x70061f6e
cmp edi, 3
je 0x70061f41
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x1f5d00]
cmp edx, 0x7d0
jg 0x70061f35
cmp edx, 0x18f
jle 0x70061f29
mov ebx, dword [eax*4 + 0x70ea72a0]
mov eax, dword [eax*4 + 0x70ea6ea0]
mov dword [ebp - 0x50], ebx
mov ebx, 0x7d0
sub ebx, edx
sub eax, dword [ebp - 0x50]
mov edx, 0x51eb851f
imul ebx, eax
add ebx, 0x320
mov eax, ebx
imul edx
sar ebx, 0x1f
sar edx, 9
sub edx, ebx
add edx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x44]
mov dword [ebx + 0x1e1f60], edx
mov eax, dword [ebx + 0x1e1f54]
mov ebx, dword [ebx + 0x1e1f5c]
cmp ecx, eax
jle 0x70060114
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x1e1f58], eax
mov ecx, eax
cmp edx, ebx
jge 0x70060123
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x1e1f60], ebx
mov edx, ebx
cmp edx, eax
mov dword [ebp - 0x70], edx
jle 0x70060136
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x70], eax
mov dword [edx + 0x1e1f60], eax
cmp dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], ecx
jle 0x7006014d
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x6c], eax
mov dword [ecx + 0x1e1f58], eax
test esi, esi
jne 0x70060e60
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x15d0a8]
test eax, eax
jne 0x70060e60
mov eax, dword [ebp - 0x70]
lea ecx, [eax + eax*2]
add ecx, dword [ebp - 0x6c]
test ecx, ecx
lea eax, [ecx + 3]
cmovs ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x6c], ecx
sar dword [ebp - 0x6c], 2
mov esi, dword [eax + 0x1f5db4]
test esi, esi
jne 0x700601af
mov ebx, dword [eax + 0x15ca24]
test ebx, ebx
jne 0x700601af
mov esi, eax
mov eax, dword [eax + 0x15cab0]
mov dword [esi + 0x1e1f60], eax
mov esi, dword [esi + 0x15caac]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], esi
cmp edi, 3
je 0x70061bf8
mov edi, dword [ebp - 0x44]
mov eax, 5
mov ebx, dword [edi + 0x1f5db4]
test ebx, ebx
jne 0x70060ec5
mov esi, dword [ebp - 0x44]
imul eax, dword [esi + 0x1e1ec8]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700de7c0
mov edi, dword [ebp - 0x6c]
cmp edi, eax
cmovle eax, edi
mov dword [ebp - 0x60], eax
mov esi, dword [ebp - 0x44]
lea eax, [ebp - 0x38]
mov dword [esp + 8], eax
lea eax, [ebp - 0x34]
mov dword [esp + 4], eax
mov dword [esp], esi
lea edi, [esi + 0x161488]
call fcn.700de960
test edi, 1
mov edx, 0x50
jne 0x70061c03
test edi, 2
jne 0x70061c21
mov ecx, edx
xor eax, eax
shr ecx, 2
test dl, 2
rep stosd dword es:[edi], eax
je 0x70060242
xor ecx, ecx
add edi, 2
mov word [edi - 2], cx
and edx, 1
je 0x7006024a
mov byte [edi], 0
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0x15613c]
test edx, edx
je 0x700602a2
mov eax, dword [eax + 0x156148]
test eax, eax
jne 0x700602a2
xor eax, eax
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x60], 0xc7
setle al
test eax, eax
mov dword [edi + 0x1561a8], 4
mov dword [edi + 0x15614c], eax
je 0x70061b08
mov eax, edi
add eax, 0x8e224
mov dword [edi + 0x8e22c], eax
mov eax, edi
add eax, 0x10e238
mov dword [edi + 0x10e240], eax
mov eax, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x58], eax
call fcn.70075860
mov eax, dword [ebp - 0x60]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700e0060
mov eax, dword [ebp - 0x80]
test eax, eax
jne 0x70060317
mov eax, dword [esi + 0x15613c]
test eax, eax
je 0x70061b2a
mov edi, dword [esi + 0x156148]
test edi, edi
jne 0x7006030f
mov ebx, dword [esi + 0x15ca2c]
test ebx, ebx
jne 0x7006030f
mov eax, dword [esi + 0x15cc3c]
mov dword [esi + 0x159688], eax
mov dword [esp], esi
call fcn.700de490
cmp dword [esi + 0x15cabc], 1
je 0x700619dd
mov dword [esp], esi
call fcn.700ecee0
call fcn.70075860
mov dword [esp], esi
call fcn.700de250
mov edi, dword [ebp - 0x84]
mov eax, dword [ebp - 0x8c]
mov dword [esi + 0x1f7d24], 1
mov dword [esp], esi
mov dword [esp + 8], edi
mov dword [esp + 4], eax
call fcn.700f1590
mov eax, dword [edi]
mov dword [ebp - 0x48], eax
shl eax, 3
mov dword [esi + 0x1e1e54], eax
mov dword [esp], esi
call fcn.700de350
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x70060385
mov dword [ebp - 0x38], 1
mov al, 1
mov ebx, dword [esi + 0x15ca84]
cmp ebx, 3
je 0x700603c3
mov edx, dword [esi + 0x15613c]
test edx, edx
jne 0x700603a8
mov ecx, dword [esi + 0x15d0a8]
test ecx, ecx
jne 0x70061574
mov ecx, dword [esi + 0x1f5de0]
mov edi, dword [ebp - 0x34]
cmp ecx, 1
je 0x700613f1
cmp ecx, 2
je 0x700613d5
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0x15d0ac]
test edx, edx
jne 0x700612f1
mov eax, dword [ebp - 0x44]
imul eax, dword [eax + 0x1560d8], 0x5c
mov esi, dword [ebp - 0x74]
lea edi, [esi + eax + 0x20c8]
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x15613c]
test ecx, ecx
jne 0x70060402
mov dword [eax + 0x15cc34], 1
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0xe158]
mov dword [eax + 0x155b44], edi
test edx, edx
je 0x700618da
mov dword [eax + 0x156e14], 0
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x155b40]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x155b3c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.7006dc80
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x1f7d24], 0
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp + 4], eax
call fcn.700f1590
cmp byte [esi + 0x156e31], 0
jne 0x70061874
mov edi, dword [ebp - 0x44]
mov eax, dword [edi + 0x15cc14]
sub dword [edi + eax*4 + 0x155f98], 1
mov eax, dword [edi + 0x15cc18]
sub dword [edi + eax*4 + 0x155f98], 1
mov eax, dword [edi + 0x15cc1c]
sub dword [edi + eax*4 + 0x155f98], 1
mov eax, dword [edi + 0x15613c]
test eax, eax
jne 0x70061268
mov ecx, dword [edi + 0x15cc24]
mov eax, edi
add eax, 0x155f98
mov edx, dword [edi + 0x1560d8]
lea ecx, [edi + ecx*4]
mov ebx, dword [ecx + 0x155fc8]
lea ebx, [eax + ebx*4]
mov esi, dword [ebx]
test esi, esi
jle 0x700604d7
sub esi, 1
mov dword [ebx], esi
mov esi, dword [ebp - 0x44]
mov dword [ecx + 0x155fc8], edx
add dword [eax + edx*4], 1
mov ecx, dword [esi + 0x15cc28]
mov edx, dword [esi + 0x1560d8]
lea ecx, [esi + ecx*4]
mov ebx, dword [ecx + 0x155fc8]
lea ebx, [eax + ebx*4]
mov esi, dword [ebx]
test esi, esi
jle 0x70060507
sub esi, 1
mov dword [ebx], esi
mov dword [ecx + 0x155fc8], edx
add dword [eax + edx*4], 1
mov edi, dword [ebp - 0x44]
mov eax, dword [edi + 0x15cc34]
test eax, eax
je 0x70060551
mov ecx, dword [edi + 0x15cc20]
lea eax, [edi + 0x155f98]
mov edx, dword [edi + 0x1560d8]
lea ecx, [edi + ecx*4]
mov ebx, dword [ecx + 0x155fc8]
lea ebx, [eax + ebx*4]
mov esi, dword [ebx]
test esi, esi
jle 0x70060547
sub esi, 1
mov dword [ebx], esi
mov dword [ecx + 0x155fc8], edx
add dword [eax + edx*4], 1
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x78], 0
lea esi, [eax + 0x1e2440]
add eax, 0x1599bc
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x78]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp - 0x7c]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x68]
lea eax, [eax + esi + 8]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
xor esi, esi
add eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
test esi, esi
mov eax, edi
sete byte [ebp - 0x50]
xor ecx, ecx
lea esi, [esi]
cmp ecx, 2
jle 0x700605cb
cmp byte [ebp - 0x50], 0
jne 0x70060609
mov ebx, dword [eax]
mov dword [edx - 8], ebx
mov ebx, dword [eax + 4]
mov dword [edx - 4], ebx
mov ebx, dword [eax + 8]
mov dword [edx], ebx
add ebx, dword [eax + 0xc]
mov dword [edx], ebx
add ebx, dword [eax + 0x10]
mov dword [edx], ebx
add ebx, dword [eax + 0x14]
mov dword [edx], ebx
add ebx, dword [eax + 0x18]
mov dword [edx], ebx
add ebx, dword [eax + 0x1c]
mov dword [edx], ebx
add ebx, dword [eax + 0x20]
mov dword [edx], ebx
add ebx, dword [eax + 0x24]
mov dword [edx], ebx
add ebx, dword [eax + 0x28]
mov dword [edx], ebx
mov ebx, dword [eax + 0x2c]
mov dword [edx + 4], ebx
add ecx, 1
add eax, 0x30
add edx, 0x10
cmp ecx, 6
jne 0x700605c0
add esi, 1
add edi, 0x120
add dword [ebp - 0x58], 0x60
cmp esi, 6
jne 0x700605b0
add dword [ebp - 0x48], 0x240
add dword [ebp - 0x64], 0x6c0
cmp dword [ebp - 0x48], 0x480
jne 0x700605a2
add dword [ebp - 0x68], 0x480
add dword [ebp - 0x70], 0xd80
cmp dword [ebp - 0x68], 0x900
jne 0x70060588
add dword [ebp - 0x78], 0x900
add dword [ebp - 0x80], 0x1b00
cmp dword [ebp - 0x78], 0x2400
jne 0x7006056f
mov eax, dword [ebp - 0x44]
mov esi, dword [eax + 0x15ca2c]
test esi, esi
jne 0x7006069c
mov ebx, dword [eax + 0x15ca30]
test ebx, ebx
jne 0x7006069c
mov eax, dword [ebp - 0x74]
mov dword [esp], eax
call fcn.700f5200
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0x15613c]
xor eax, eax
test edx, edx
je 0x7006093b
mov esi, dword [ebp - 0x44]
mov eax, edx
mov ecx, dword [esi + 0x156148]
test ecx, ecx
jne 0x7006093b
mov eax, dword [ebp - 0x44]
lea edi, [eax + 0x15968c]
test edi, 1
lea esi, [eax + 0x1e1f68]
mov eax, 0xa0
jne 0x70061ec2
test edi, 2
jne 0x70061ead
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x70060706
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x70060711
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [ebp - 0x44]
lea edi, [eax + 0x15972c]
test edi, 1
lea esi, [eax + 0x1e2008]
mov eax, 0x190
jne 0x70061e87
test edi, 2
jne 0x70061e72
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x70060755
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x70060760
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov eax, dword [ebp - 0x44]
lea edi, [eax + 0x1598bc]
test edi, 1
lea esi, [eax + 0x1e2198]
mov eax, 0x100
jne 0x70061e4a
test edi, 2
jne 0x70061e35
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x700607a4
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x700607af
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov edi, dword [ebp - 0x44]
mov ecx, dword [edi + 0x1613a0]
mov eax, edi
mov edx, dword [edi + 0x1613bc]
lea edi, [edi + 0x15c7a4]
lea esi, [eax + 0x1613e8]
mov eax, 0x50
mov dword [edi - 0x48], ecx
mov ecx, dword [edi + 0x4c00]
mov dword [edi - 0x2c], edx
mov dword [edi - 0x44], ecx
mov ecx, dword [edi + 0x4c04]
mov dword [edi - 0x40], ecx
mov ecx, dword [edi + 0x4c08]
mov dword [edi - 0x3c], ecx
mov ecx, dword [edi + 0x4c0c]
mov dword [edi - 0x38], ecx
mov ecx, dword [edi + 0x4c10]
mov dword [edi - 0x34], ecx
mov ecx, dword [edi + 0x4c14]
mov dword [edi - 0x30], ecx
mov ecx, dword [edi + 0x4c1c]
mov dword [edi - 0x28], ecx
mov ecx, dword [edi + 0x4c20]
mov dword [edi - 0x24], ecx
mov ecx, dword [edi + 0x4c24]
mov dword [edi - 0x20], ecx
mov ecx, dword [edi + 0x4c28]
mov dword [edi - 0x1c], ecx
mov ecx, dword [edi + 0x4c2c]
mov dword [edi - 0x18], ecx
mov ecx, dword [edi + 0x4c30]
mov dword [edi - 0x14], ecx
mov ecx, dword [edi + 0x4c34]
mov dword [edi - 0x10], ecx
mov ecx, dword [edi + 0x4c38]
mov dword [edi - 0xc], ecx
mov ecx, dword [edi + 0x4c3c]
mov dword [edi - 8], ecx
mov edx, dword [edi + 0x4c40]
mov dword [edi - 4], edx
test edi, 1
jne 0x70061e0f
test edi, 2
jne 0x70061dfa
mov ecx, eax
xor edx, edx
shr ecx, 2
test al, 2
rep movsd dword es:[edi], dword [esi]
je 0x70060897
movzx edx, word [esi]
mov word [edi], dx
mov edx, 2
test al, 1
je 0x700608a2
movzx eax, byte [esi + edx]
mov byte [edi + edx], al
mov edi, dword [ebp - 0x44]
mov ecx, dword [edi + 0x161438]
mov eax, edi
mov edx, dword [edi + 0x16145c]
lea esi, [eax + 0x1e2298]
lea edi, [edi + 0x15c87c]
mov dword [edi - 0x88], ecx
mov ecx, dword [edi + 0x4bc0]
mov dword [edi - 0x64], edx
mov dword [edi - 0x84], ecx
mov ecx, dword [edi + 0x4bc4]
mov dword [edi - 0x80], ecx
mov ecx, dword [edi + 0x4bc8]
mov dword [edi - 0x7c], ecx
mov ecx, dword [edi + 0x4bcc]
mov dword [edi - 0x78], ecx
mov ecx, dword [edi + 0x4bd0]
mov dword [edi - 0x74], ecx
mov ecx, dword [edi + 0x4bd4]
mov dword [edi - 0x70], ecx
mov ecx, dword [edi + 0x4bd8]
mov dword [edi - 0x6c], ecx
mov ecx, dword [edi + 0x4bdc]
mov dword [edi - 0x68], ecx
mov ecx, 0x6a
rep movsd dword es:[edi], dword [esi]
mov edi, dword [eax + 0x15ca2c]
mov eax, dword [ebp - 0x44]
test edi, edi
jne 0x70060935
mov edx, dword [eax + 0x15ca30]
test edx, edx
je 0x70061dc7
mov eax, dword [eax + 0x15613c]
mov esi, dword [ebp - 0x44]
xor edx, edx
mov dword [esi + 0x156138], eax
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax]
mov eax, dword [esi + 0x1f5de0]
add dword [esi + 0x1e1f20], ecx
adc dword [esi + 0x1e1f24], edx
shl ecx, 3
test eax, eax
mov dword [esi + 0x1e1e54], ecx
jne 0x70060edf
mov edi, dword [esi + 0x15ca84]
test edi, edi
je 0x70060edf
xor eax, eax
mov esi, dword [ebp - 0x44]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.700de520
mov eax, dword [esi + 0x156174]
mov edi, dword [esi + 0x15613c]
cmp eax, dword [esi + 0x1e1e60]
mov dword [esi + edi*4 + 0x1e1e58], eax
jl 0x700609dd
mov esi, dword [ebp - 0x44]
cmp dword [esi + 0x1f5d8c], 0x63
jg 0x700609e6
test edi, edi
je 0x700609dd
mov ebx, dword [esi + 0x15cc3c]
test ebx, ebx
jne 0x700609dd
mov ecx, dword [esi + 0x15cc38]
test ecx, ecx
je 0x70061c81
mov esi, dword [esi + 0x15cc04]
test esi, esi
jne 0x700609fd
mov esi, dword [ebp - 0x44]
mov dword [esi + 0x1e1e60], eax
test edi, edi
je 0x70061ad0
mov esi, dword [ebp - 0x44]
mov ecx, dword [esi + 0x15cc38]
mov ebx, dword [esi + 0x15cc3c]
mov dword [ebp - 0x58], edi
mov esi, dword [ebp - 0x44]
mov edx, dword [esi + 0x1e1f04]
lea edx, [edx + edx*2 + 2]
add eax, edx
sar eax, 2
test ecx, ecx
mov dword [esi + 0x1e1f04], eax
jne 0x70060a24
test ebx, ebx
je 0x70061d50
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0x156140]
mov esi, dword [eax + 0x1e1e54]
test edx, edx
mov dword [ebp - 0x60], esi
jne 0x7006124e
mov eax, dword [eax + 0x1e1f30]
mov dword [ebp - 0x50], eax
sub dword [ebp - 0x50], esi
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x50]
mov eax, dword [esi + 0x15caa0]
mov dword [esi + 0x1e1f30], edi
mov dword [ebp - 0x48], eax
mov eax, edi
cdq
cmp edx, dword [esi + 0x15caa4]
jl 0x70060a80
jg 0x70060a71
cmp edi, dword [ebp - 0x48]
jbe 0x70060a80
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], esi
mov dword [eax + 0x1e1f30], esi
mov edi, dword [ebp - 0x58]
test edi, edi
jne 0x700611b4
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x60]
mov eax, dword [eax + 0x1e1e50]
mov dword [ebp - 0x48], eax
mov edi, ecx
mov eax, esi
mov ecx, dword [ebp - 0x44]
cdq
mov eax, dword [ebp - 0x48]
add dword [ecx + 0x1e1f48], esi
adc dword [ecx + 0x1e1f4c], edx
sub eax, esi
add dword [ecx + 0x1e1f50], eax
cmp edi, 1
mov eax, dword [ebp - 0x50]
mov edx, ecx
mov dword [ecx + 0x1e1f2c], eax
mov ecx, edi
je 0x70061be0
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x156154]
and eax, 0xfffffffd
mov edx, eax
and eax, 0xfffffffb
mov edi, dword [ebp - 0x44]
or edx, 4
cmp ebx, 1
cmovne edx, eax
mov eax, dword [ebp - 0x44]
mov esi, ecx
mov dword [eax + 0x156154], edx
mov eax, dword [eax + 0x15cc34]
and esi, eax
je 0x7006119d
mov dword [edi + 0x15cc08], 1
mov esi, 1
mov edi, ebx
and edi, eax
je 0x70061164
mov eax, dword [ebp - 0x44]
mov edi, 1
mov dword [eax + 0x15cc0c], 1
mov eax, ebx
and eax, ecx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
je 0x7006112e
mov dword [eax + 0x15cc10], 1
mov dword [ebp - 0x50], 1
test esi, esi
mov eax, dword [ebp - 0x44]
jne 0x7006114b
mov dword [eax + 0x1f5dd0], 7
mov si, 3
mov eax, 7
test edi, edi
je 0x70060b7e
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x1f5dd0], esi
mov eax, esi
mov esi, dword [ebp - 0x50]
test esi, esi
je 0x70060b91
mov edi, dword [ebp - 0x44]
and eax, 0xfffffffb
mov dword [edi + 0x1f5dd0], eax
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 0x15cad0]
test edi, edi
je 0x7006106e
test ebx, ebx
jne 0x70061700
test ecx, ecx
je 0x700610f0
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x44]
mov ecx, dword [eax + 0x15caa8]
mov dword [eax + 0x15cc38], 0
mov dword [eax + 0x1e1e80], 0
test ecx, ecx
js 0x7006108b
mov esi, eax
mov ecx, dword [esi + 0x15cc30]
mov dword [eax + 0x15cbfc], 1
mov eax, dword [eax + 0x1e1e9c]
test ecx, ecx
mov dword [esi + 0x1e1e84], eax
je 0x700610a5
mov dword [esi + 0x1e1e84], 0x7fffffff
mov eax, 0x7fffffff
mov edi, dword [ebp - 0x44]
sub eax, 1
mov dword [edi + 0x1e1e84], eax
mov edi, dword [ebp - 0x58]
test edi, edi
jne 0x700610b8
mov eax, dword [ebp + 8]
or edx, 1
mov dword [eax], edx
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x15613c], 1
mov edi, eax
mov eax, dword [edi + 0x155b24]
mov byte [edi + 0x156e31], 0
mov byte [edi + 0x156e32], 0
mov byte [edi + 0x156e21], 0
mov dword [edi + 0x155b34], eax
mov eax, dword [edi + 0x155b28]
mov dword [edi + 0x155b38], eax
mov eax, dword [edi + 0x156140]
test eax, eax
mov dword [edi + 0x156144], eax
je 0x700610c8
mov eax, dword [edi + 0x156184]
mov ebx, dword [edi + 0x15618c]
mov ecx, dword [edi + 0x15619c]
mov dword [edi + 0x15618c], eax
mov eax, dword [edi + 0x156194]
mov dword [edi + 0x156184], ebx
mov dword [edi + 0x156194], ecx
mov dword [edi + 0x15619c], eax
mov eax, dword [edi + 0x15616c]
lea edx, [eax + 1]
mov dword [ebp - 0x50], eax
lea eax, [edx*4]
shl edx, 7
add ecx, eax
add edx, eax
add ebx, edx
mov dword [edi + 0x156188], ebx
mov dword [edi + 0x156198], ecx
mov dword [edi + 0xe134], ecx
mov dword [ecx], ebx
add dword [edi + 0x15ca24], 1
add dword [edi + 0x15d0a0], 1
add edx, dword [edi + 0x15618c]
add eax, dword [edi + 0x15619c]
mov dword [edi + 0x156190], edx
mov dword [edi + 0x1561a0], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x44]
mov dword [edi + 0x15ca30], 1
mov dword [edi + 0x156150], 0
mov dword [edi + 0x156e00], 0
mov eax, dword [eax + 0x1f5db4]
cmp eax, 2
jne 0x70060003
mov edi, dword [ebp - 0x44]
mov ebx, dword [edi + 0x1f5e8c]
test ebx, ebx
je 0x70060003
fld qword [edi + 0x1e1f10]
xor ecx, ecx
fld dword [0x70798644]
fxch st(1)
lea ebx, [edi + 0x156e30]
fucomi st(1)
fstp st(1)
seta cl
mov esi, ecx
mov ecx, dword [edi + 0x15613c]
test ecx, ecx
je 0x7006223b
mov edi, dword [ebp - 0x44]
mov edx, dword [edi + 0x15cc3c]
test edx, edx
jne 0x70062171
cmp byte [edi + 0x156e30], 0
je 0x70060001
mov ecx, dword [edi + 0x1e1e80]
test ecx, ecx
jne 0x7006213b
mov edx, dword [edi + 0x15cc00]
test edx, edx
je 0x700620ec
fld st(0)
mov ecx, dword [edi + 0x1e1f54]
fmul dword [0x7079864c]
mov byte [edi + 0x156e31], 0
mov byte [edi + 0x156e32], 1
mov byte [edi + 0x156e33], 0
mov edi, dword [edi + 0x1e1f5c]
fstp qword [ebp - 0x50]
cmp ecx, edi
jle 0x70062385
fstp qword [ebp - 0x58]
mov dword [esp], edi
mov dword [ebp - 0x60], ecx
call fcn.700de100
mov ecx, dword [ebp - 0x60]
fld qword [ebp - 0x58]
fxch st(1)
fucompi st(1)
jae 0x70062161
mov edx, dword [ebp - 0x44]
lea eax, [edi + 1]
mov edx, dword [edx + 0x1e1f54]
cmp eax, edx
jge 0x700620a6
mov edi, eax
jmp 0x70060de8
mov edi, dword [ebp - 0x44]
mov dword [edi + 0x15cb94], eax
mov ebx, edi
jmp 0x7005fbcf
mov edx, dword [esi + 0x15ca74]
test edx, edx
je 0x7005fe08
mov eax, dword [esi + 0x15d0a0]
xor edx, edx
div dword [esi + 0x15d0a4]
test edx, edx
jne 0x7005fe08
jmp 0x7005fdfb
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x15cc04]
test ecx, ecx
jne 0x70060e98
test edi, edi
je 0x70060ea7
mov edx, dword [eax + 0x15cc38]
test edx, edx
jne 0x70060e85
mov eax, dword [eax + 0x15cc3c]
test eax, eax
je 0x70060e98
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0x70]
mov eax, ecx
shr eax, 0x1f
add eax, ecx
mov dword [ebp - 0x6c], eax
sar dword [ebp - 0x6c], 1
mov eax, dword [ebp - 0x70]
cmp edi, 3
mov dword [ebp - 0x60], eax
je 0x700601ef
test esi, esi
je 0x7006117e
mov esi, dword [ebp - 0x44]
mov eax, 1
mov esi, dword [esi + 0x1f5db4]
test esi, esi
je 0x700601ce
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x1e1e50]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700de7c0
jmp 0x700601e4
mov eax, 2
jmp 0x70060981
mov eax, dword [ebp - 0x44]
mov ebx, dword [eax + 0x15d0a8]
test ebx, ebx
jne 0x700619f5
mov edx, dword [eax + 0x1f5d08]
cmp edx, 0x1388
jg 0x70061ac4
cmp edx, 0x18f
jle 0x70061dee
mov eax, 0x1388
mov ebx, dword [ecx*4 + 0x70ea7aa0]
sub eax, edx
mov edx, dword [ecx*4 + 0x70ea76a0]
sub edx, ebx
imul eax, edx
mov edx, 0xe3f388b
lea ecx, [eax + 0x8fc]
mov eax, ecx
imul edx
sar ecx, 0x1f
sar edx, 8
sub edx, ecx
add edx, ebx
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x155b24]
imul eax, dword [esi + 0x155b28]
mov dword [esi + 0x1e1f60], edx
cmp eax, 0x18c00
jle 0x700619ea
fld1
mov esi, dword [ebp - 0x44]
fild dword [esi + 0x1f5d0c]
fmul qword [0x70798650]
mov dword [esp], edx
fsubr qword [0x70798658]
faddp st(1)
fstp qword [ebp - 0x50]
call fcn.700de100
mov eax, esi
mov esi, dword [esi + 0x1e1f60]
mov ebx, dword [eax + 0x1e1f5c]
mov dword [ebp - 0x58], esi
mov esi, dword [eax + 0x1e1f54]
fld st(0)
fld qword [ebp - 0x50]
fmulp st(2)
fxch st(1)
cmp esi, ebx
fstp qword [ebp - 0x50]
jg 0x70060fd7
fstp st(0)
mov eax, esi
xor edx, edx
mov edi, dword [ebp - 0x44]
jmp 0x7006104e
mov eax, dword [ebp - 0x44]
lea edx, [ebx + 1]
mov eax, dword [eax + 0x1e1f54]
cmp edx, eax
jge 0x70060ff8
mov ebx, edx
fstp qword [ebp - 0x60]
mov dword [esp], ebx
call fcn.700de100
fld qword [ebp - 0x60]
fxch st(1)
fucompi st(1)
jb 0x70060fc5
fstp st(0)
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1e1f54]
jmp 0x70060ffa
fstp st(0)
mov edi, dword [ebp - 0x44]
mov edi, dword [edi + 0x1e1f5c]
cmp edi, eax
jl 0x70061026
jmp 0x70061f09
mov eax, dword [ebp - 0x44]
lea edx, [edi + 1]
mov eax, dword [eax + 0x1e1f54]
cmp edx, eax
jge 0x70061718
mov edi, edx
mov dword [esp], edi
call fcn.700de100
fld qword [ebp - 0x50]
fxch st(1)
fucompi st(1)
fstp st(0)
jb 0x70061010
mov esi, dword [ebp - 0x44]
sub edi, ebx
mov edx, edi
mov eax, dword [esi + 0x1e1f54]
mov edi, esi
mov ebx, dword [esi + 0x1e1f5c]
add edx, dword [ebp - 0x58]
mov dword [edi + 0x1e1f60], edx
mov ecx, dword [edi + 0x1e1f58]
mov esi, dword [edi + 0x15613c]
mov edi, dword [edi + 0x15ca84]
jmp 0x70060105
test ecx, ecx
je 0x700610e8
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x15cc38], 0
mov edi, eax
mov dword [eax + 0x1e1e80], 0
mov ebx, dword [edi + 0x15cbfc]
mov eax, dword [edi + 0x1e1e84]
test ebx, ebx
jne 0x700610a5
mov dword [edi + 0x15cc00], 0
test eax, eax
jg 0x70060c0f
mov edi, dword [ebp - 0x58]
test edi, edi
je 0x70060c26
mov eax, dword [ebp + 8]
and edx, 0xfffffffe
mov edi, dword [ebp - 0x44]
mov dword [eax], edx
jmp 0x70060c3d
mov eax, dword [edi + 0x15616c]
mov edi, dword [ebp - 0x44]
lea edx, [eax + 1]
mov dword [ebp - 0x50], eax
lea eax, [edx*4]
shl edx, 7
add edx, eax
jmp 0x70060cec
test ebx, ebx
jne 0x70060c1b
mov edi, dword [ebp - 0x44]
mov eax, dword [edi + 0x1e1e84]
test eax, eax
jle 0x70061106
sub eax, 1
mov dword [edi + 0x1e1e84], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x15cbf8]
test eax, eax
je 0x7006111f
mov esi, dword [ebp - 0x44]
sub eax, 1
mov dword [esi + 0x15cbf8], eax
mov eax, dword [ebp - 0x44]
add dword [eax + 0x1e1e80], 1
jmp 0x70060c1b
cmp ecx, ebx
je 0x70061b97
test esi, esi
mov dword [eax + 0x15cc10], 0
mov eax, dword [ebp - 0x44]
je 0x70060b5c
mov dword [eax + 0x1f5dd0], 5
mov esi, 1
mov eax, 5
jmp 0x70060b6f
cmp eax, ebx
mov eax, dword [ebp - 0x44]
je 0x70061bd3
mov dword [eax + 0x15cc0c], 0
jmp 0x70060b30
mov eax, dword [ebp - 0x44]
mov esi, dword [eax + 0x15d0a8]
test esi, esi
je 0x700601b8
mov eax, dword [eax + 0x1e1e60]
mov dword [ebp - 0x60], eax
jmp 0x700601ef
cmp eax, ecx
je 0x70061869
mov dword [edi + 0x15cc08], 0
jmp 0x70060b14
mov edi, dword [ebp - 0x44]
mov eax, dword [edi + 0x1e1e50]
mov esi, eax
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 0x1e1f34]
lea eax, [eax + eax*2]
add eax, esi
lea edx, [eax + 5]
add eax, 2
cmovs eax, edx
sar eax, 2
mov dword [edi + 0x1e1f34], eax
mov eax, dword [edi + 0x1e1f38]
mov edi, dword [ebp - 0x60]
lea eax, [eax + eax*2]
add eax, edi
lea edx, [eax + 5]
add eax, 2
cmovs eax, edx
mov edx, dword [ebp - 0x44]
sar eax, 2
mov dword [edx + 0x1e1f38], eax
mov edx, dword [edx + 0x1e1f3c]
mov eax, edx
shl eax, 5
sub eax, edx
add eax, esi
mov esi, dword [ebp - 0x44]
lea edx, [eax + 0x2f]
add eax, 0x10
cmovs eax, edx
sar eax, 5
mov edx, dword [esi + 0x1e1f40]
mov dword [esi + 0x1e1f3c], eax
mov eax, edx
shl eax, 5
sub eax, edx
add eax, edi
lea edx, [eax + 0x2f]
add eax, 0x10
cmovs eax, edx
sar eax, 5
mov dword [esi + 0x1e1f40], eax
mov esi, edi
jmp 0x70060a9a
mov edi, dword [eax + 0x1e1ec8]
mov eax, dword [eax + 0x1e1f30]
mov dword [ebp - 0x50], edi
sub dword [ebp - 0x50], esi
add dword [ebp - 0x50], eax
jmp 0x70060a4a
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 0x15cc38]
test edi, edi
je 0x70061507
mov esi, dword [eax + 0x15cc3c]
test esi, esi
jne 0x70061515
mov ebx, dword [eax + 0x15cc30]
add eax, 0x155f98
test ebx, ebx
jne 0x7006155d
mov edi, dword [ebp - 0x44]
mov ecx, dword [edi + 0x15cc28]
mov eax, edi
add eax, 0x155f98
mov edx, dword [edi + 0x1560d8]
lea ecx, [edi + ecx*4]
mov ebx, dword [ecx + 0x155fc8]
lea ebx, [eax + ebx*4]
mov esi, dword [ebx]
test esi, esi
jle 0x700612c7
sub esi, 1
mov dword [ebx], esi
mov esi, dword [ebp - 0x44]
mov dword [ecx + 0x155fc8], edx
add dword [eax + edx*4], 1
mov eax, dword [esi + 0x15cc28]
mov edx, dword [esi + 0x15cc24]
mov dword [esi + 0x15cc24], eax
mov dword [esi + 0x15cc28], edx
jmp 0x70060511
mov ecx, dword [eax + 0x1f73f8]
test ecx, ecx
jne 0x700603d7
mov esi, eax
mov edi, dword [ebp - 0x74]
imul eax, dword [eax + 0x1560d8], 0x5c
mov esi, dword [esi + 0x15cb94]
lea edi, [edi + eax + 0x20c8]
mov eax, dword [esi + 0x34]
mov ebx, dword [esi + 4]
mov dword [ebp - 0x58], eax
mov eax, dword [edi + 0x34]
test ebx, ebx
mov dword [ebp - 0x48], eax
jle 0x70061dbb
mov edx, dword [esi]
mov ecx, dword [esi + 0x10]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x68], edx
mov edx, dword [ebp - 0x68]
test edx, edx
jle 0x70061397
xor ebx, ebx
jmp 0x70061359
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x28]
mov dword [esp + 0x10], edx
mov dword [esp + 4], ecx
add eax, ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x58]
add eax, ebx
add ebx, 0x10
mov dword [esp], eax
call dword [0x70ea7ee8]
add dword [ebp - 0x50], eax
mov eax, dword [esi]
cmp ebx, eax
jl 0x70061353
mov dword [ebp - 0x68], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [edi + 0x10]
mov ebx, dword [esi + 4]
mov edx, ecx
shl edx, 4
add dword [ebp - 0x64], 0x10
add dword [ebp - 0x58], edx
mov edx, eax
shl edx, 4
add dword [ebp - 0x48], edx
cmp dword [ebp - 0x64], ebx
jl 0x70061348
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x74]
imul eax, dword [eax + 0x1560d8], 0x5c
lea edi, [esi + eax + 0x20c8]
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x50]
mov dword [eax + 0x15d0b0], esi
jmp 0x700603eb
test edx, edx
je 0x700613f1
mov ecx, dword [esi + 0x15cc38]
test ecx, ecx
jne 0x700613f1
mov edx, dword [esi + 0x15cc3c]
test edx, edx
je 0x700603c3
mov edx, dword [esi + 0x1e1e54]
cmp edx, eax
jle 0x70061407
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x60], eax
jl 0x70061f17
cmp edi, edx
jle 0x70061417
mov eax, dword [ebp - 0x70]
cmp dword [ebp - 0x60], eax
jg 0x70061f17
cmp ebx, 2
jne 0x700603c3
mov eax, dword [ebp - 0x60]
cmp eax, dword [esi + 0x1e1f64]
jle 0x70061441
mov eax, dword [esi + 0x1e1e50]
lea ecx, [eax*8]
sub ecx, eax
sar ecx, 3
cmp edx, ecx
jl 0x70061474
mov eax, dword [esi + 0x15cab4]
cmp dword [ebp - 0x60], eax
jle 0x700603c3
cmp edx, dword [esi + 0x1e1ecc]
jge 0x700603c3
cmp eax, dword [esi + 0x1e1f60]
jge 0x700603c3
mov dword [esi + 0x1e1f60], eax
mov eax, dword [esi + 0x1e1e50]
cmp edx, eax
jle 0x7006172c
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x50]
mov eax, edi
add eax, 1
cmp edi, ecx
cmovge eax, ecx
cmp dword [ebp - 0x80], 1
mov dword [ebp - 0x58], eax
jg 0x700614a0
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x7006177b
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.700de520
mov eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x78], 1
lea eax, [eax + edi + 1]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov edi, dword [ebp - 0x58]
cmp eax, edi
mov edx, edi
jl 0x700614dd
mov edi, dword [ebp - 0x50]
cmp edi, eax
cmovle eax, edi
mov edx, eax
mov ebx, dword [esi + 0x15cc04]
xor eax, eax
cmp dword [ebp - 0x60], edx
mov dword [ebp - 0x60], edx
setne al
test ebx, ebx
jne 0x700603c3
test eax, eax
je 0x700603c3
add dword [ebp - 0x80], 1
jmp 0x700602c6
mov ecx, dword [eax + 0x15cc3c]
test ecx, ecx
je 0x70060511
mov edi, dword [ebp - 0x44]
mov ecx, dword [edi + 0x15cc28]
mov eax, edi
add eax, 0x155f98
mov edx, dword [edi + 0x1560d8]
lea ecx, [edi + ecx*4]
mov ebx, dword [ecx + 0x155fc8]
lea ebx, [eax + ebx*4]
mov esi, dword [ebx]
test esi, esi
jle 0x70061542
sub esi, 1
mov dword [ebx], esi
mov esi, dword [ebp - 0x44]
mov dword [ecx + 0x155fc8], edx
add dword [eax + edx*4], 1
mov edx, dword [esi + 0x15cc38]
test edx, edx
je 0x70060511
mov edi, dword [ebp - 0x44]
mov ecx, dword [edi + 0x15cc24]
mov edx, dword [edi + 0x1560d8]
lea ecx, [edi + ecx*4]
jmp 0x700604f3
imul eax, dword [esi + 0x1560d8], 0x5c
mov edi, dword [ebp - 0x74]
lea eax, [edi + eax + 0x20c8]
mov edi, dword [esi + 0x15cb94]
mov dword [ebp - 0x68], eax
mov ecx, dword [edi + 0x34]
mov ebx, dword [edi + 4]
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax + 0x34]
test ebx, ebx
mov dword [ebp - 0x64], ecx
jle 0x7006209c
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x98], esi
xor esi, esi
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
test eax, eax
jle 0x7006162c
xor ebx, ebx
mov eax, edx
jmp 0x700615e9
mov eax, dword [ebp - 0x68]
mov ecx, dword [edi + 0x10]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x64]
lea edx, [ebp - 0x28]
mov dword [esp + 0x10], edx
mov dword [esp + 4], ecx
add eax, ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x48]
add eax, ebx
add ebx, 0x10
mov dword [esp], eax
call dword [0x70ea7ee8]
add esi, eax
mov eax, dword [edi]
cmp ebx, eax
jl 0x700615e0
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x68]
mov ecx, dword [edi + 0x10]
mov ebx, dword [edi + 4]
mov edx, dword [eax + 0x10]
mov eax, ecx
shl eax, 4
add dword [ebp - 0x88], 0x10
add dword [ebp - 0x48], eax
mov eax, edx
shl eax, 4
add dword [ebp - 0x64], eax
cmp dword [ebp - 0x88], ebx
jl 0x700615cf
mov eax, esi
mov esi, dword [ebp - 0x98]
xor ecx, ecx
test eax, eax
sete cl
add ecx, eax
mov edx, dword [esi + 0x15d0b0]
mov ebx, edx
sar ebx, 1
cmp edx, ecx
jge 0x70061675
mov eax, dword [ebp - 0x38]
cmp dword [esi + 0x1e1e54], eax
jle 0x7006168b
cmp ebx, ecx
mov eax, dword [ebp - 0x60]
jge 0x700616b7
mov edi, dword [ebp - 0x34]
cmp dword [esi + 0x1e1e54], edi
jg 0x700614ca
mov ebx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x58]
mov eax, ebx
sub eax, 1
cmp ebx, edi
cmovle eax, edi
imul edx, ebx
mov dword [ebp - 0x50], eax
mov eax, edx
cdq
idiv ecx
mov edx, dword [ebp - 0x50]
add edx, edi
sar edx, 1
cmp edx, eax
cmovle eax, edx
jmp 0x700614ca
jle 0x700614ca
mov edi, dword [ebp - 0x34]
cmp dword [esi + 0x1e1e54], edi
jl 0x700614ca
mov edx, dword [ebp - 0x50]
mov edi, eax
add eax, 1
cmp edi, edx
cmovge eax, edx
imul ebx, edi
mov dword [ebp - 0x58], eax
mov edi, dword [ebp - 0x58]
mov eax, ebx
cdq
idiv ecx
mov ecx, dword [ebp - 0x50]
lea edx, [edi + ecx + 1]
sar edx, 1
cmp edx, eax
cmovle eax, edx
jmp 0x700614ca
mov esi, dword [ebp - 0x58]
test esi, esi
jne 0x70061ba5
test ecx, ecx
jne 0x70061072
jmp 0x70060c26
mov esi, dword [ebp - 0x44]
sub edi, ebx
mov edx, edi
mov ebx, dword [esi + 0x1e1f5c]
mov edi, esi
jmp 0x7006104e
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x58]
mov eax, edi
sub eax, 1
cmp edi, ecx
cmovle eax, ecx
cmp dword [ebp - 0x80], 1
mov dword [ebp - 0x50], eax
jg 0x70061750
mov edi, dword [ebp - 0x78]
test edi, edi
je 0x700617ef
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.700de520
mov eax, dword [ebp - 0x58]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x7c], 1
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
jmp 0x700614ca
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.700de520
mov eax, dword [esi + 0x1e1e50]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700de7c0
cmp dword [ebp - 0x58], eax
jle 0x70061cb2
xor ebx, ebx
jmp 0x700617b2
cmp ebx, 9
lea esi, [esi]
jg 0x700617dc
mov dword [esp + 4], 0
add ebx, 1
mov dword [esp], esi
call fcn.700de520
mov eax, dword [esi + 0x1e1e50]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700de7c0
cmp dword [ebp - 0x58], eax
jg 0x700617aa
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 1
jmp 0x700614ca
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.700de520
mov eax, dword [esi + 0x1e1e50]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700de7c0
cmp dword [esi + 0x15ca84], 2
je 0x70061ca2
cmp dword [ebp - 0x50], eax
jge 0x70061856
xor ebx, ebx
jmp 0x7006182c
cmp ebx, 9
jg 0x70061856
mov dword [esp + 4], 0
add ebx, 1
mov dword [esp], esi
call fcn.700de520
mov eax, dword [esi + 0x1e1e50]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700de7c0
cmp dword [ebp - 0x50], eax
jl 0x70061827
mov dword [ebp - 0x7c], 1
mov dword [ebp - 0x78], 0
jmp 0x700614ca
mov esi, dword [edi + 0x15cc08]
jmp 0x70060b14
mov esi, dword [ebp - 0x44]
mov ebx, dword [esi + 0x156160]
mov edx, dword [esi + 0x156198]
mov ecx, dword [esi + 0x1561a4]
test ebx, ebx
jle 0x70060472
mov eax, dword [esi + 0x156168]
xor edi, edi
mov dword [ebp - 0x50], ebx
test eax, eax
jle 0x700618c2
xor ebx, ebx
mov eax, dword [edx + ebx*4]
movzx eax, byte [eax + 0x49]
mov byte [ecx + ebx], al
mov eax, dword [esi + 0x156168]
add ebx, 1
cmp ebx, eax
jl 0x700618a2
mov ebx, dword [esi + 0x156160]
mov dword [ebp - 0x50], ebx
mov ebx, dword [esi + 0x15616c]
add ecx, eax
add edi, 1
cmp edi, dword [ebp - 0x50]
lea edx, [edx + ebx*4]
jl 0x7006189c
jmp 0x70060472
call fcn.70075860
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x28]
mov dword [esp], eax
call ebx
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x1f5f1c]
sub esp, 4
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esi + 0x15cb94]
mov dword [esp], eax
call fcn.700f5670
lea eax, [ebp - 0x20]
mov dword [esp], eax
call ebx
mov eax, dword [esi + 0x1f71b8]
mov edx, dword [esi + 0x1f71bc]
mov dword [ebp - 0x44], esi
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x4c], edx
sub esp, 4
sub esi, dword [ebp - 0x28]
sbb edi, dword [ebp - 0x24]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov eax, 0xf4240
mov ebx, dword [ebp - 0x2c]
mul esi
imul ecx, edi, 0xf4240
add edx, ecx
mov ecx, dword [ebp - 0x30]
sub esp, 4
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.703e0860
mov esi, dword [ebp - 0x44]
add eax, dword [ebp - 0x50]
adc edx, dword [ebp - 0x4c]
mov dword [esi + 0x1f71b8], eax
mov eax, dword [esi + 0x156e14]
mov dword [esi + 0x1f71bc], edx
test eax, eax
jle 0x70061c76
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.700f5660
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [esi + 0x156e14]
mov dword [esp + 8], eax
mov eax, esi
add eax, 0xe060
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x74]
mov dword [esp], eax
call fcn.700b9370
mov edi, dword [esi + 0x155b44]
jmp 0x70060420
mov dword [esp], esi
call fcn.700f5a70
jmp 0x70060324
fld dword [0x70798640]
jmp 0x70060f6e
mov esi, dword [ebp - 0x44]
mov eax, dword [esi + 0x1e1e60]
mov dword [esp], eax
mov dword [ebp - 0x50], eax
call fcn.700de100
mov ebx, dword [esi + 0x1e1f54]
mov esi, dword [esi + 0x1e1f5c]
cmp ebx, esi
fld st(0)
fmul dword [0x70798640]
fstp qword [ebp - 0x58]
jg 0x70061a46
fstp st(0)
mov eax, ebx
xor edx, edx
mov edi, dword [ebp - 0x44]
mov ebx, esi
jmp 0x70061d38
mov eax, dword [ebp - 0x44]
lea edx, [esi + 1]
mov eax, dword [eax + 0x1e1f54]
cmp edx, eax
jge 0x70061a67
mov esi, edx
fstp qword [ebp - 0x60]
mov dword [esp], esi
call fcn.700de100
fld qword [ebp - 0x60]
fxch st(1)
fucompi st(1)
jb 0x70061a34
fstp st(0)
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1e1f54]
jmp 0x70061a69
fstp st(0)
mov edi, dword [ebp - 0x44]
mov edi, dword [edi + 0x1e1f5c]
cmp edi, eax
jl 0x70061a96
jmp 0x70061d45
mov eax, dword [ebp - 0x44]
lea edx, [edi + 1]
mov eax, dword [eax + 0x1e1f54]
cmp edx, eax
jge 0x70061d29
mov edi, edx
mov dword [esp], edi
call fcn.700de100
fld qword [ebp - 0x58]
fxch st(1)
fucompi st(1)
fstp st(0)
jb 0x70061a80
mov eax, dword [ebp - 0x44]
sub edi, esi
mov edx, edi
mov edi, dword [ebp - 0x44]
mov ebx, dword [eax + 0x1e1f5c]
mov eax, dword [eax + 0x1e1f54]
jmp 0x70061d38
mov edx, dword [ecx*4 + 0x70ea7aa0]
jmp 0x70060f4b
mov edi, dword [ebp - 0x44]
mov dword [esp], edi
call fcn.700de930
mov eax, dword [edi + 0x15613c]
mov ecx, dword [edi + 0x15cc38]
mov ebx, dword [edi + 0x15cc3c]
mov esi, eax
test esi, esi
mov dword [ebp - 0x58], eax
je 0x70060a24
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x156174]
jmp 0x70060a00
mov esi, dword [ebp - 0x44]
mov eax, esi
add eax, 0x4e224
mov dword [esi + 0x8e22c], eax
mov eax, esi
add eax, 0xce238
mov dword [esi + 0x10e240], eax
jmp 0x700602a2
mov dword [esp], esi
call fcn.700de450
jmp 0x70060317
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 0x15ca84]
cmp edi, 3
je 0x70061eea
mov ebx, dword [eax + 0x1f5db4]
mov edx, dword [ecx*4 + 0x70ea6aa0]
test ebx, ebx
mov dword [eax + 0x1e1f60], edx
jne 0x70061b7a
mov eax, dword [eax + 0x1e1f04]
cmp ecx, eax
jle 0x70061b7a
mov edx, dword [eax*4 + 0x70ea6aa0]
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x1e1f60], edx
cmp edi, 2
je 0x70061c32
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x1e1f54]
mov ebx, dword [ebx + 0x1e1f5c]
jmp 0x70060105
mov eax, dword [eax + 0x15cc10]
mov dword [ebp - 0x50], eax
jmp 0x70060b51
mov dword [eax + 0x1e1e80], 0
and edx, 0xfffffffe
mov edi, dword [ebp - 0x44]
mov dword [eax + 0x15cbfc], 0
mov dword [eax + 0x15cc00], 1
mov eax, dword [ebp + 8]
mov dword [eax], edx
jmp 0x70060c3d
mov eax, dword [eax + 0x15cc0c]
mov edi, eax
jmp 0x70060b30
mov eax, dword [edx + 0x156154]
or eax, 2
jmp 0x70060adb
mov esi, 0xb
jmp 0x7005fcf6
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x60], eax
jmp 0x700601ef
mov eax, dword [ebp - 0x44]
mov dl, 0x4f
lea edi, [eax + 0x161489]
test edi, 2
mov byte [eax + 0x161488], 0
je 0x7006022b
xor ebx, ebx
add edi, 2
mov word [edi - 2], bx
sub edx, 2
jmp 0x7006022b
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1e1f64]
cmp eax, edx
mov dword [ebp - 0x50], eax
jle 0x70061b83
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0x1e1ecc]
mov ebx, eax
cmp dword [eax + 0x1e1f38], edx
jge 0x70061c88
mov edx, dword [eax + 0x15cab4]
mov ebx, dword [ebx + 0x1e1f5c]
mov dword [eax + 0x1e1f60], edx
mov eax, dword [eax + 0x1e1f54]
jmp 0x70060105
mov edi, dword [esi + 0x155b44]
jmp 0x70060420
mov ebx, ecx
jmp 0x700609fd
mov edx, dword [ebp - 0x50]
mov ebx, dword [ebx + 0x1e1f5c]
mov dword [eax + 0x1e1f60], edx
mov eax, dword [eax + 0x1e1f54]
jmp 0x70060105
mov edi, dword [ebp - 0x58]
cmp edi, eax
cmovg edi, eax
mov dword [ebp - 0x58], edi
jmp 0x7006181e
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 1
jmp 0x700614d3
mov esi, 2
jmp 0x7005fcf6
mov esi, 1
jmp 0x7005fcf6
mov esi, 6
jmp 0x7005fcf6
mov esi, 5
jmp 0x7005fcf6
mov esi, 4
jmp 0x7005fcf6
mov esi, 3
jmp 0x7005fcf6
mov esi, 0xa
jmp 0x7005fcf6
mov esi, 9
jmp 0x7005fcf6
mov esi, 8
jmp 0x7005fcf6
mov esi, 7
jmp 0x7005fcf6
mov ecx, dword [ebp - 0x44]
sub edi, esi
mov edx, edi
mov ebx, dword [ecx + 0x1e1f5c]
mov edi, ecx
add edx, dword [ebp - 0x50]
cmp edx, ebx
cmovl edx, ebx
jmp 0x70061051
mov edx, ebx
mov ebx, edi
mov edi, dword [ebp - 0x44]
sub edx, esi
jmp 0x70061d38
mov edi, esi
fld qword [esi + 0x1e1f08]
add dword [esi + 0x1e1f00], 1
mov esi, dword [ebp - 0x60]
fstp qword [ebp - 0x50]
mov dword [esp], esi
call fcn.700de100
mov ecx, dword [edi + 0x1e1f00]
fadd qword [ebp - 0x50]
fst qword [edi + 0x1e1f08]
mov dword [ebp - 0x3c], ecx
mov eax, dword [edi + 0x1e1efc]
fild dword [ebp - 0x3c]
fdivp st(1)
mov ebx, dword [edi + 0x15cc3c]
add eax, esi
cdq
mov dword [edi + 0x1e1efc], eax
idiv ecx
mov ecx, dword [edi + 0x15cc38]
fstp qword [edi + 0x1e1f10]
mov dword [edi + 0x1e1ef8], eax
mov eax, dword [edi + 0x15613c]
mov dword [ebp - 0x58], eax
jmp 0x70060a24
mov dword [ebp - 0x50], 0
jmp 0x700613c4
mov esi, dword [ebp - 0x74]
mov dword [esp], esi
call fcn.700f62b0
mov edi, dword [ebp - 0x44]
mov eax, dword [edi + 0x15614c]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.700f7cf0
mov eax, edi
jmp 0x70060935
mov edx, dword [ecx*4 + 0x70ea76a0]
jmp 0x70060f4b
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0x7006087f
mov esi, dword [ebp - 0x44]
movzx eax, byte [esi + 0x1613e8]
lea edi, [esi + 0x15c7a5]
lea esi, [esi + 0x1613e9]
mov byte [esi - 0x4c45], al
mov eax, 0x4f
jmp 0x70060873
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0x7006078c
mov edi, dword [ebp - 0x44]
movzx eax, byte [edi + 0x1e2198]
mov byte [edi + 0x1598bc], al
mov eax, edi
lea esi, [eax + 0x1e2199]
mov eax, 0xff
lea edi, [edi + 0x1598bd]
jmp 0x70060780
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0x7006073d
mov esi, dword [ebp - 0x44]
movzx eax, byte [esi + 0x1e2008]
lea edi, [esi + 0x15972d]
lea esi, [esi + 0x1e2009]
mov byte [esi - 0x888dd], al
mov eax, 0x18f
jmp 0x70060731
movzx edx, word [esi]
add edi, 2
add esi, 2
sub eax, 2
mov word [edi - 2], dx
jmp 0x700606ee
mov edi, dword [ebp - 0x44]
movzx eax, byte [edi + 0x1e1f68]
mov byte [edi + 0x15968c], al
mov eax, edi
lea esi, [eax + 0x1e1f69]
mov eax, 0x9f
lea edi, [edi + 0x15968d]
jmp 0x700606e2
mov edx, dword [eax + 0x1e1f64]
mov ebx, eax
mov ebx, dword [ebx + 0x1e1f5c]
mov dword [eax + 0x1e1f60], edx
mov eax, dword [eax + 0x1e1f54]
jmp 0x70060105
sub esi, ebx
mov ebx, edi
mov edi, dword [ebp - 0x44]
mov edx, esi
jmp 0x7006104e
mov eax, dword [esi + 0x1e1e50]
jmp 0x70061474
xor esi, esi
jmp 0x7005fcf6
mov edx, dword [eax*4 + 0x70ea6ea0]
jmp 0x700600f0
mov edx, dword [eax*4 + 0x70ea72a0]
jmp 0x700600f0
mov ebx, dword [ebp - 0x44]
cmp dword [ebx + 0x15cc3c], 0
jne 0x70061ff5
mov edx, dword [ebx + 0x1e1f64]
mov eax, dword [ebx + 0x1e1f54]
mov dword [ebx + 0x1e1f60], edx
mov ebx, dword [ebx + 0x1e1f5c]
jmp 0x70060105
mov ebx, dword [ebp - 0x44]
mov ebx, dword [ebx + 0x1e1f64]
cmp eax, ebx
cmovl eax, ebx
cmp edx, 1
jbe 0x7006205e
mov ebx, dword [ebp - 0x44]
mov edx, dword [ebx + 0x1f5d00]
cmp edx, 0x7d0
jg 0x70062055
cmp edx, 0x18f
jle 0x70062034
mov ebx, dword [eax*4 + 0x70ea66a0]
mov eax, dword [eax*4 + 0x70ea62a0]
mov dword [ebp - 0x50], ebx
mov ebx, 0x7d0
sub ebx, edx
sub eax, dword [ebp - 0x50]
mov edx, 0x51eb851f
imul ebx, eax
add ebx, 0x320
mov eax, ebx
imul edx
sar ebx, 0x1f
sar edx, 9
sub edx, ebx
add edx, dword [ebp - 0x50]
mov eax, edx
shl eax, 4
sub eax, edx
test eax, eax
lea edx, [eax + 0xf]
cmovns edx, eax
sar edx, 4
jmp 0x700600f0
cmp edx, 1
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x1f5d00]
jbe 0x700600a0
cmp edx, 0x7d0
jg 0x70062049
cmp edx, 0x18f
jle 0x7006203d
mov ebx, dword [eax*4 + 0x70ea66a0]
mov eax, dword [eax*4 + 0x70ea62a0]
mov dword [ebp - 0x50], ebx
mov ebx, 0x7d0
sub ebx, edx
jmp 0x700600d0
mov edx, dword [eax*4 + 0x70ea62a0]
jmp 0x70061fde
mov edx, dword [eax*4 + 0x70ea62a0]
jmp 0x700600f0
mov edx, dword [eax*4 + 0x70ea66a0]
jmp 0x700600f0
mov edx, dword [eax*4 + 0x70ea66a0]
jmp 0x70061fde
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x1f5d00]
cmp edx, 0x7d0
jg 0x70062370
cmp edx, 0x18f
jle 0x70062364
mov ebx, dword [eax*4 + 0x70ea72a0]
mov eax, dword [eax*4 + 0x70ea6ea0]
mov dword [ebp - 0x50], ebx
mov ebx, 0x7d0
sub ebx, edx
jmp 0x70061fbe
mov ecx, 1
jmp 0x7006165c
fstp st(0)
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1e1f5c]
cmp eax, edx
jge 0x7006237c
mov dword [esp], eax
mov dword [ebp - 0x58], eax
call fcn.700de100
mov eax, dword [ebp - 0x58]
fld qword [ebp - 0x50]
fxch st(1)
fucompi st(1)
fstp st(0)
jae 0x7006253f
mov ecx, dword [ebp - 0x44]
lea edx, [eax + 1]
cmp edx, dword [ecx + 0x1e1f54]
jge 0x7006253f
mov eax, edx
jmp 0x700620b9
fstp st(0)
mov esi, dword [ebp - 0x44]
mov dword [esp], esi
call fcn.700f9200
mov eax, dword [esi + 0x156160]
imul eax, dword [esi + 0x156168]
mov edx, dword [esi + 0x1f6f2c]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.6fef7ef0
mov byte [esi + 0x156e31], 0
mov byte [esi + 0x156e32], 0
mov dword [esp], ebx
call fcn.700dec60
jmp 0x70060003
fstp st(0)
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 0x15cc04]
test edi, edi
jne 0x7006245c
mov byte [eax + 0x156e31], 0
mov byte [eax + 0x156e32], 0
jmp 0x70060003
fstp st(0)
mov eax, dword [ebp - 0x44]
mov edx, dword [eax + 0x1e1f54]
jmp 0x700620ab
fstp st(0)
mov eax, dword [edi + 0x156160]
mov edx, dword [edi + 0x1f6f2c]
imul eax, dword [edi + 0x156168]
mov dword [esp + 4], 0
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.6fef7ef0
mov byte [edi + 0x156e31], 0
mov byte [edi + 0x156e32], 0
mov dword [edi + 0x1f5d8c], 0
mov dword [esp], edi
call fcn.700f9200
mov dword [esp], ebx
call fcn.700dec60
mov dword [esp], edi
call fcn.700fa970
cmp byte [edi + 0x156e30], 0
je 0x70060003
mov eax, dword [ebp - 0x44]
fld qword [eax + 0x1e1f10]
fld st(0)
mov ecx, dword [eax + 0x1e1f54]
fmul dword [0x70798648]
mov esi, dword [eax + 0x1e1f5c]
mov byte [eax + 0x156e31], 1
mov byte [eax + 0x156e32], 1
cmp ecx, esi
fstp qword [ebp - 0x50]
jle 0x700622e2
mov edi, ecx
fstp qword [ebp - 0x58]
mov dword [esp], esi
call fcn.700de100
fld qword [ebp - 0x58]
fxch st(1)
fucompi st(1)
jae 0x700622d3
mov eax, dword [ebp - 0x44]
lea edx, [esi + 1]
mov eax, dword [eax + 0x1e1f54]
cmp edx, eax
jge 0x70062291
mov esi, edx
jmp 0x7006220f
fstp st(0)
mov eax, dword [edi + 0x156160]
mov edx, dword [edi + 0x1f6f2c]
imul eax, dword [edi + 0x156168]
mov dword [esp + 4], 0
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.6fef7ef0
mov byte [edi + 0x156e31], 0
mov byte [edi + 0x156e32], 0
mov dword [edi + 0x1f5d8c], 0
mov dword [esp], edi
call fcn.700f9200
mov dword [esp], ebx
call fcn.700dec60
jmp 0x70060003
fstp st(0)
mov ecx, edi
mov edi, dword [ebp - 0x44]
mov edi, dword [edi + 0x1e1f5c]
cmp edi, eax
jge 0x70062555
mov dword [esp], edi
call fcn.700de100
fld qword [ebp - 0x50]
fxch st(1)
fucompi st(1)
fstp st(0)
jae 0x70062549
mov ecx, dword [ebp - 0x44]
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x1e1f54]
jge 0x70062549
mov edi, eax
jmp 0x700622a6
fstp st(0)
mov eax, dword [ebp - 0x44]
mov ecx, edi
mov eax, dword [eax + 0x1e1f54]
jmp 0x70062295
fstp st(0)
mov eax, 0xfffffffe
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700deda0
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700deda0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
mov eax, dword [ebp - 0x44]
mov byte [eax + 0x156e33], 0
jmp 0x70060003
mov edx, dword [eax*4 + 0x70ea6ea0]
jmp 0x70061fde
mov edx, dword [eax*4 + 0x70ea72a0]
jmp 0x70061fde
mov eax, ecx
sub eax, edi
add eax, 2
jmp 0x70062387
fstp st(0)
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700deda0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700deda0
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
test esi, esi
jne 0x70062407
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x1f5d8c], 0x64
jne 0x70060003
mov dword [esp + 0xc], 3
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700deda0
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
jmp 0x70060003
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.700ded20
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.700ded80
mov dword [esp + 0xc], 3
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.700deda0
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded80
mov dword [esp + 0xc], 3
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700deda0
test esi, esi
je 0x70062530
mov dword [esp + 8], 3
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.700ded20
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.700ded20
mov eax, dword [ebp - 0x44]
mov byte [eax + 0x156e32], 1
jmp 0x70060003
sub eax, edi
add eax, 2
jmp 0x70062387
mov eax, edi
sub eax, esi
sub eax, 2
jmp 0x700622e9
mov eax, ecx
sub eax, esi
sub eax, 2
jmp 0x700622e9