Function at 0x10006070
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10046757
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1de0
call fcn.10045e40
mov eax, dword [0x10054040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1480], edx
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x144c], eax
mov eax, dword [0x100560d4]
mov dword [ebp - 0x143c], edi
mov dword [ebp - 0x14fc], eax
mov dword [ebp - 0x14e8], 0
mov dword [ebp - 0x14e4], 0
mov dword [ebp - 0x14e0], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x14a4], 0
mov dword [ebp - 0x14a0], 0
mov dword [ebp - 0x149c], 0
mov dword [ebp - 0x14b0], 0
mov dword [ebp - 0x14ac], 0
mov dword [ebp - 0x14a8], 0
mov dword [ebp - 0x1498], 0
mov dword [ebp - 0x1494], 0
mov dword [ebp - 0x1490], 0
push ecx
push edi
lea ecx, [ebp - 0x19d4]
mov byte [ebp - 4], 3
call fcn.10017450
push ecx
push eax
push dword [ebp - 0x144c]
lea ecx, [ebp - 0x142c]
mov byte [ebp - 4], 4
call fcn.10017390
lea ecx, [ebp - 0x19d4]
mov byte [ebp - 4], 6
call fcn.10002ed0
mov ecx, dword [ebp - 0x14fc]
lea edx, [ebp - 0x142c]
push edi
push dword [ebp - 0x144c]
call fcn.10004b60
push ecx
push esi
lea ecx, [ebp - 0x1bf8]
call fcn.10016ab0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1bf8]
mov eax, dword [ebp - 0x1bf8]
add ecx, dword [eax + 4]
call fcn.10003ce0
test al, al
je 0x100061e8
mov edx, str.Unable_to_open_file_points.txt
mov ecx, 0x10055668
call fcn.1001a070
xor esi, esi
jmp 0x1000a033
lea ecx, [ebp - 0x2c]
call fcn.10017680
lea edx, [ebp - 0x2c]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1bf8]
call fcn.1001a320
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003cd0
test al, al
je 0x10006466
push 0
lea ecx, [ebp - 0x2c]
call fcn.10017520
cmp byte [eax], 0x50
jne 0x100062fa
sub esp, 8
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x1ca0]
push eax
call fcn.10015660
lea ecx, [ebp - 0x44]
call fcn.10017680
push ecx
lea edx, [ebp - 0x44]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x1ca0]
call fcn.1001a3d0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ce0
test al, al
jne 0x1000643f
lea eax, [ebp - 0x153c]
push eax
lea ecx, [ebp - 0x1ca0]
call fcn.10016c30
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ce0
test al, al
jne 0x1000643f
sub esp, 8
lea eax, [ebp - 0x74]
lea ecx, [ebp - 0x44]
push eax
call fcn.100174d0
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.10003e40
add esp, 4
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.10017540
mov ecx, dword [ebp - 0x153c]
lea eax, [esi - 1]
dec ecx
mov dword [ebp - 0x1648], eax
lea eax, [ebp - 0x1648]
mov dword [ebp - 0x1644], ecx
push eax
lea ecx, [ebp - 0x14b0]
call fcn.10016f80
lea ecx, [ebp - 0x44]
call fcn.10017540
lea ecx, [ebp - 0x1ca0]
jmp 0x10006412
push 0
lea ecx, [ebp - 0x2c]
call fcn.10017520
lea ecx, [ebp - 0x2c]
cmp byte [eax], 0x43
jne 0x10006391
sub esp, 8
lea eax, [ebp - 0x8c]
push eax
call fcn.100174d0
sub esp, 8
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x1d48]
push eax
call fcn.10015660
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xe
call fcn.10017540
lea eax, [ebp - 0x1540]
push eax
lea ecx, [ebp - 0x1d48]
call fcn.10016c30
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ce0
test al, al
jne 0x1000644f
mov eax, dword [ebp - 0x1540]
lea ecx, [ebp - 0x14e8]
dec eax
mov dword [ebp - 0x1544], eax
lea eax, [ebp - 0x1544]
push eax
call fcn.10016cd0
lea ecx, [ebp - 0x1d48]
jmp 0x10006412
push 0
call fcn.10017520
cmp byte [eax], 0x52
jne 0x1000641b
sub esp, 8
lea eax, [ebp - 0x5c]
lea ecx, [ebp - 0x2c]
push eax
call fcn.100174d0
sub esp, 8
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1df0]
push eax
call fcn.10015660
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x11
call fcn.10017540
lea eax, [ebp - 0x1534]
push eax
lea ecx, [ebp - 0x1df0]
call fcn.10016c30
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ce0
test al, al
jne 0x10006457
mov eax, dword [ebp - 0x1534]
lea ecx, [ebp - 0x14a4]
dec eax
mov dword [ebp - 0x1558], eax
lea eax, [ebp - 0x1558]
push eax
call fcn.10016cd0
lea ecx, [ebp - 0x1df0]
mov byte [ebp - 4], 8
call fcn.1000a2d0
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x1bf8]
call fcn.1001a320
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003cd0
test al, al
jne 0x10006216
jmp 0x10006466
lea ecx, [ebp - 0x44]
call fcn.10017540
lea ecx, [ebp - 0x1ca0]
jmp 0x1000645d
lea ecx, [ebp - 0x1d48]
jmp 0x1000645d
lea ecx, [ebp - 0x1df0]
mov byte [ebp - 4], 8
call fcn.1000a2d0
lea ecx, [ebp - 0x1bf8]
call fcn.10016a70
lea eax, [ebp - 0x14b0]
push eax
lea ecx, [ebp - 0x1498]
call fcn.10016f50
mov eax, dword [ebp - 0x14e8]
mov dword [ebp - 0x146c], eax
cmp eax, dword [ebp - 0x14e4]
je 0x100064dc
xor esi, esi
test edi, edi
jle 0x100064cb
nop dword [eax]
mov eax, dword [eax]
lea ecx, [ebp - 0x1498]
mov dword [ebp - 0x1650], eax
lea eax, [ebp - 0x1650]
push eax
mov dword [ebp - 0x164c], esi
call fcn.10016f80
mov eax, dword [ebp - 0x146c]
inc esi
cmp esi, edi
jl 0x100064a0
add eax, 4
mov dword [ebp - 0x146c], eax
cmp eax, dword [ebp - 0x14e4]
jne 0x10006497
mov eax, dword [ebp - 0x14a4]
mov esi, dword [ebp - 0x144c]
mov dword [ebp - 0x146c], eax
cmp eax, dword [ebp - 0x14a0]
je 0x10006542
xor edi, edi
test esi, esi
jle 0x1000652b
nop dword [eax]
mov eax, dword [eax]
lea ecx, [ebp - 0x1498]
mov dword [ebp - 0x1654], eax
lea eax, [ebp - 0x1658]
push eax
mov dword [ebp - 0x1658], edi
call fcn.10016f80
mov eax, dword [ebp - 0x146c]
inc edi
cmp edi, esi
jl 0x10006500
add eax, 4
mov dword [ebp - 0x146c], eax
cmp eax, dword [ebp - 0x14a0]
jne 0x100064f6
mov edi, dword [ebp - 0x143c]
mov dword [ebp - 0x14f4], 0
mov dword [ebp - 0x14f0], 0
mov dword [ebp - 0x14ec], 0
push edi
push esi
lea edx, [ebp - 0x14b0]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x19e0]
call fcn.10004120
add esp, 8
lea ecx, [ebp - 0x14f4]
push eax
call fcn.10017020
lea ecx, [ebp - 0x19e0]
call fcn.10016fc0
mov ecx, edi
xor eax, eax
imul ecx, esi
xorps xmm1, xmm1
mov dword [ebp - 0x1470], eax
mov dword [ebp - 0x146c], ecx
test edi, edi
jle 0x10006663
nop
mov dword [ebp - 0x147c], 0
test esi, esi
jle 0x10006654
mov edi, dword [ebp - 0x147c]
nop dword [eax + eax]
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x1470]
mov edx, 0xc350
mov eax, dword [eax]
cmp word [eax + ecx*2], dx
ja 0x10006636
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x1470]
mov eax, dword [eax]
cmp word [eax + ecx*2], 0
jbe 0x10006636
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x1470]
mov eax, dword [eax]
movzx eax, word [eax + ecx*2]
mov ecx, dword [ebp - 0x146c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
jmp 0x10006643
mov ecx, dword [ebp - 0x146c]
dec ecx
mov dword [ebp - 0x146c], ecx
inc edi
cmp edi, esi
jl 0x100065d0
mov edi, dword [ebp - 0x143c]
mov eax, dword [ebp - 0x1470]
inc eax
mov dword [ebp - 0x1470], eax
cmp eax, edi
jl 0x100065b0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x14ac]
mov byte [ebp - 0x147c], 0
push dword [ebp - 0x147c]
divsd xmm1, xmm0
push edi
push dword [ebp - 0x14b0]
movsd qword [ebp - 0x14d0], xmm1
call fcn.1001a3e0
mov esi, dword [ebp - 0x1494]
add esp, 0xc
mov byte [ebp - 0x147c], 0
push dword [ebp - 0x147c]
push esi
push dword [ebp - 0x1498]
call fcn.1001a3e0
add esp, 0xc
lea ecx, [ebp - 0x159c]
push edi
push dword [ebp - 0x14b0]
call fcn.10019e80
push esi
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1438]
push dword [ebp - 0x1498]
call fcn.10019e80
mov dword [ebp - 0x148c], 0
mov dword [ebp - 0x1488], 0
mov dword [ebp - 0x1484], 0
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x159c]
mov eax, dword [ecx]
mov dword [ebp - 0x14f8], eax
cmp eax, ecx
je 0x10008131
nop dword [eax + eax]
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
mov edx, dword [ebp - 0x144c]
mov dword [ebp - 0x141c], edi
lea eax, [edi - 1]
mov dword [ebp - 0x1430], esi
test eax, eax
js 0x10007207
lea eax, [esi - 1]
test eax, eax
js 0x10007207
lea ecx, [edi + 1]
mov dword [ebp - 0x1448], ecx
cmp ecx, edx
jge 0x10007207
lea ecx, [esi + 1]
mov dword [ebp - 0x1420], ecx
mov ecx, dword [ebp - 0x143c]
cmp dword [ebp - 0x1420], ecx
jge 0x1000720d
lea ecx, [edi - 1]
mov dword [ebp - 0x165c], eax
lea eax, [ebp - 0x1660]
mov dword [ebp - 0x1660], ecx
push eax
lea ecx, [ebp - 0x1438]
call fcn.10016d60
test eax, eax
jne 0x10006845
lea eax, [edi + 1]
mov dword [ebp - 0x1668], eax
lea ecx, [ebp - 0x1438]
lea eax, [esi + 1]
mov dword [ebp - 0x1664], eax
lea eax, [ebp - 0x1668]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006845
push dword [ebp - 0x1448]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov esi, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx edx, word [ecx + esi*2 - 2]
mov ecx, dword [edi]
movzx ecx, word [ecx + esi*2 + 2]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax + esi*2], dx
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1670], eax
lea eax, [ebp - 0x1670]
push eax
mov dword [ebp - 0x166c], esi
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
mov dword [ebp - 0x1678], edi
mov dword [ebp - 0x1674], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1678]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006900
lea eax, [esi + 1]
mov dword [ebp - 0x1680], edi
mov dword [ebp - 0x167c], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1680]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006900
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1688], eax
lea eax, [ebp - 0x1688]
push eax
mov dword [ebp - 0x1684], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x168c], esi
mov dword [ebp - 0x1690], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1690]
push eax
call fcn.10016d60
test eax, eax
jne 0x100069c4
lea eax, [edi + 1]
mov dword [ebp - 0x1694], esi
mov dword [ebp - 0x1698], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1698]
push eax
call fcn.10016d60
test eax, eax
jne 0x100069c4
lea eax, [edi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
inc ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov esi, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx edx, word [ecx + esi*2]
mov ecx, dword [edi]
movzx ecx, word [ecx + esi*2]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax + esi*2], dx
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x16a0], eax
lea eax, [ebp - 0x16a0]
push eax
mov dword [ebp - 0x169c], esi
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
lea ecx, [edi + 1]
mov dword [ebp - 0x16a4], eax
lea eax, [ebp - 0x16a8]
mov dword [ebp - 0x16a8], ecx
push eax
lea ecx, [ebp - 0x1438]
call fcn.10016d60
test eax, eax
jne 0x10006a99
lea eax, [esi + 1]
lea ecx, [edi - 1]
mov dword [ebp - 0x16ac], eax
lea eax, [ebp - 0x16b0]
mov dword [ebp - 0x16b0], ecx
push eax
lea ecx, [ebp - 0x1438]
call fcn.10016d60
test eax, eax
jne 0x10006a99
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
inc ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov esi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x16b8], eax
lea eax, [ebp - 0x16b8]
push eax
mov dword [ebp - 0x16b4], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x16bc], esi
mov dword [ebp - 0x16c0], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x16c0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006b5b
lea eax, [esi - 1]
mov dword [ebp - 0x16c8], edi
mov dword [ebp - 0x16c4], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x16c8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006b5b
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov esi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x16d0], eax
lea eax, [ebp - 0x16d0]
push eax
mov dword [ebp - 0x16cc], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x16d4], esi
mov dword [ebp - 0x16d8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x16d8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006c13
lea eax, [esi + 1]
mov dword [ebp - 0x16e0], edi
mov dword [ebp - 0x16dc], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x16e0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006c13
lea eax, [edi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x16e8], eax
lea eax, [ebp - 0x16e8]
push eax
mov dword [ebp - 0x16e4], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
mov dword [ebp - 0x16f0], edi
mov dword [ebp - 0x16ec], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x16f0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006ccb
lea eax, [edi + 1]
mov dword [ebp - 0x16f4], esi
mov dword [ebp - 0x16f8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x16f8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006ccb
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1700], eax
lea eax, [ebp - 0x1700]
push eax
mov dword [ebp - 0x16fc], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi + 1]
mov dword [ebp - 0x1704], esi
mov dword [ebp - 0x1708], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1708]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006d88
lea eax, [esi + 1]
mov dword [ebp - 0x1710], edi
mov dword [ebp - 0x170c], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1710]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006d88
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
inc ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + edx*2]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1718], eax
lea eax, [ebp - 0x1718]
push eax
mov dword [ebp - 0x1714], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi + 1]
mov dword [ebp - 0x171c], esi
mov dword [ebp - 0x1720], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1720]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006e4a
lea eax, [esi + 1]
mov dword [ebp - 0x1728], edi
mov dword [ebp - 0x1724], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1728]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006e4a
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
inc ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov ecx, dword [edi]
mov edi, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx edx, word [ecx + edi*2 + 2]
mov ecx, dword [esi]
movzx ecx, word [ecx + edi*2]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax + edi*2], dx
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1730], eax
lea eax, [ebp - 0x1730]
push eax
mov dword [ebp - 0x172c], edi
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
lea ecx, [edi - 1]
mov dword [ebp - 0x1734], eax
lea eax, [ebp - 0x1738]
mov dword [ebp - 0x1738], ecx
push eax
lea ecx, [ebp - 0x1438]
call fcn.10016d60
test eax, eax
jne 0x10006ec5
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi - 1]
mov esi, eax
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [esi]
mov eax, dword [eax]
mov ax, word [eax + edx*2 - 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1740]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1740], edi
mov dword [ebp - 0x173c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
mov dword [ebp - 0x1748], edi
mov dword [ebp - 0x1744], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1748]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006f34
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
mov ax, word [eax + edx*2 - 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1750]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1750], edi
mov dword [ebp - 0x174c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
lea ecx, [edi + 1]
mov dword [ebp - 0x1754], eax
lea eax, [ebp - 0x1758]
mov dword [ebp - 0x1758], ecx
push eax
lea ecx, [ebp - 0x1438]
call fcn.10016d60
test eax, eax
jne 0x10006fa9
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
mov ax, word [eax + edx*2 - 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1760]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1760], edi
mov dword [ebp - 0x175c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x1764], esi
mov dword [ebp - 0x1768], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1768]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007020
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi - 1]
mov esi, eax
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [esi]
mov eax, dword [eax]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1770]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1770], edi
mov dword [ebp - 0x176c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi + 1]
mov dword [ebp - 0x1774], esi
mov dword [ebp - 0x1778], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1778]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007091
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1780]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1780], edi
mov dword [ebp - 0x177c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi + 1]
lea ecx, [edi - 1]
mov dword [ebp - 0x1784], eax
lea eax, [ebp - 0x1788]
mov dword [ebp - 0x1788], ecx
push eax
lea ecx, [ebp - 0x1438]
call fcn.10016d60
test eax, eax
jne 0x10007106
lea eax, [edi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
mov ax, word [eax + edx*2 + 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1790]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1790], edi
mov dword [ebp - 0x178c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi + 1]
mov dword [ebp - 0x1798], edi
mov dword [ebp - 0x1794], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1798]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007175
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
mov ax, word [eax + edx*2 + 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x17a0]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x17a0], edi
mov dword [ebp - 0x179c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi + 1]
lea ecx, [edi + 1]
mov dword [ebp - 0x17a4], eax
lea eax, [ebp - 0x17a8]
mov dword [ebp - 0x17a8], ecx
push eax
lea ecx, [ebp - 0x1438]
call fcn.10016d60
test eax, eax
jne 0x100071f0
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + 1]
mov esi, eax
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [esi]
mov eax, dword [eax]
mov ax, word [eax + edx*2 + 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x17b0]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x17b0], edi
mov dword [ebp - 0x17ac], edx
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x17b8], edi
lea eax, [ebp - 0x17b8]
mov dword [ebp - 0x17b4], esi
jmp 0x10008108
mov ecx, dword [ebp - 0x143c]
test edi, edi
jne 0x100074cc
lea eax, [esi - 1]
test eax, eax
js 0x100074cc
lea eax, [esi + 1]
cmp eax, ecx
jge 0x100074cc
mov dword [ebp - 0x17bc], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x17c0]
mov dword [ebp - 0x17c0], edi
push eax
call fcn.10016d60
lea edi, [esi - 1]
test eax, eax
jne 0x100072d9
mov dword [ebp - 0x17c8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x17c8]
mov dword [ebp - 0x17c4], edi
push eax
call fcn.10016d60
test eax, eax
jne 0x100072d9
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 0
mov edi, eax
call fcn.10017230
push 0
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea eax, [ebp - 0x17d0]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x17d0], 0
mov dword [ebp - 0x17cc], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [ebp - 0x17d8]
mov dword [ebp - 0x17d8], 1
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x17d4], esi
call fcn.10016d60
test eax, eax
jne 0x10007388
mov dword [ebp - 0x17e0], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x17e0]
mov dword [ebp - 0x17dc], edi
push eax
call fcn.10016d60
test eax, eax
jne 0x10007388
push 1
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 0
mov edi, eax
call fcn.10017230
push 0
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov esi, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx edx, word [ecx + esi*2 - 2]
mov ecx, dword [edi]
movzx ecx, word [ecx + esi*2]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax + esi*2], dx
lea eax, [ebp - 0x17e8]
push eax
mov dword [ebp - 0x17e8], 0
mov dword [ebp - 0x17e4], esi
call fcn.10016db0
jmp 0x10008114
lea eax, [ebp - 0x17f0]
mov dword [ebp - 0x17f0], 1
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x17ec], esi
call fcn.10016d60
test eax, eax
jne 0x10007439
mov dword [ebp - 0x17f8], eax
lea ecx, [ebp - 0x1438]
lea eax, [esi + 1]
mov dword [ebp - 0x17f4], eax
lea eax, [ebp - 0x17f8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007439
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 1
mov edi, eax
call fcn.10017230
push 0
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea eax, [ebp - 0x1800]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1800], 0
mov dword [ebp - 0x17fc], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
mov dword [ebp - 0x1808], 0
mov dword [ebp - 0x1804], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1808]
push eax
call fcn.10016d60
test eax, eax
jne 0x100074b1
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 0
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [esi]
mov eax, dword [eax]
mov ax, word [eax + edx*2 - 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1810]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1810], 0
mov dword [ebp - 0x180c], edx
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x1818], 0
lea eax, [ebp - 0x1818]
mov dword [ebp - 0x1814], esi
jmp 0x10008108
lea eax, [edx - 1]
cmp edi, eax
jne 0x100077aa
lea eax, [esi - 1]
test eax, eax
js 0x100077aa
lea eax, [esi + 1]
cmp eax, ecx
jge 0x100077aa
mov dword [ebp - 0x181c], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1820]
mov dword [ebp - 0x1820], edi
push eax
call fcn.10016d60
test eax, eax
jne 0x100075a0
lea eax, [esi - 1]
mov dword [ebp - 0x1828], edi
mov dword [ebp - 0x1824], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1828]
push eax
call fcn.10016d60
test eax, eax
jne 0x100075a0
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1830], eax
lea eax, [ebp - 0x1830]
push eax
mov dword [ebp - 0x182c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x1834], esi
mov dword [ebp - 0x1838], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1838]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007662
lea eax, [esi - 1]
mov dword [ebp - 0x1840], edi
mov dword [ebp - 0x183c], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1840]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007662
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov esi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1848], eax
lea eax, [ebp - 0x1848]
push eax
mov dword [ebp - 0x1844], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x184c], esi
mov dword [ebp - 0x1850], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1850]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007724
lea eax, [esi + 1]
mov dword [ebp - 0x1858], edi
mov dword [ebp - 0x1854], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1858]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007724
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov ecx, dword [edi]
mov edi, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx edx, word [ecx + edi*2 - 2]
mov ecx, dword [esi]
movzx ecx, word [ecx + edi*2]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax + edi*2], dx
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1860], eax
lea eax, [ebp - 0x1860]
push eax
mov dword [ebp - 0x185c], edi
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
mov dword [ebp - 0x1868], edi
mov dword [ebp - 0x1864], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1868]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007793
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
mov ax, word [eax + edx*2 - 2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x1870]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x1870], edi
mov dword [ebp - 0x186c], edx
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x1878], edi
lea eax, [ebp - 0x1878]
mov dword [ebp - 0x1874], esi
jmp 0x10008108
lea eax, [ecx - 1]
cmp esi, eax
jne 0x10007a96
test edi, edi
jle 0x10007a96
lea eax, [edi + 1]
mov dword [ebp - 0x1420], eax
cmp eax, edx
jge 0x10007a96
lea eax, [edi - 1]
mov dword [ebp - 0x187c], esi
mov dword [ebp - 0x1880], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1880]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007885
lea eax, [edi + 1]
mov dword [ebp - 0x1884], esi
mov dword [ebp - 0x1888], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1888]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007885
lea eax, [edi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
push dword [ebp - 0x1420]
mov edi, eax
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1890], eax
lea eax, [ebp - 0x1890]
push eax
mov dword [ebp - 0x188c], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
mov dword [ebp - 0x1898], edi
mov dword [ebp - 0x1894], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1898]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007946
lea eax, [edi - 1]
mov dword [ebp - 0x189c], esi
mov dword [ebp - 0x18a0], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x18a0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007946
lea esi, [edi - 1]
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
push esi
mov dword [ebp - 0x1420], eax
call fcn.10017230
mov ecx, dword [edi]
mov edx, dword [ebp - 0x1430]
mov eax, dword [eax]
movzx ecx, word [ecx + edx*2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov eax, dword [eax]
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x18a8], eax
lea eax, [ebp - 0x18a8]
push eax
mov dword [ebp - 0x18a4], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [esi - 1]
mov dword [ebp - 0x18b0], edi
mov dword [ebp - 0x18ac], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x18b0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007a08
lea eax, [edi + 1]
mov dword [ebp - 0x18b4], esi
mov dword [ebp - 0x18b8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x18b8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007a08
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
inc ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x18c0], eax
lea eax, [ebp - 0x18c0]
push eax
mov dword [ebp - 0x18bc], edx
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x18c4], esi
mov dword [ebp - 0x18c8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x18c8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007a7f
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi - 1]
mov esi, eax
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [esi]
mov eax, dword [eax]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
lea eax, [ebp - 0x18d0]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x18d0], edi
mov dword [ebp - 0x18cc], edx
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x18d8], edi
lea eax, [ebp - 0x18d8]
mov dword [ebp - 0x18d4], esi
jmp 0x10008108
test esi, esi
jne 0x10007d74
test edi, edi
jle 0x10007d76
lea eax, [edi + 1]
cmp eax, edx
jge 0x10007f2c
mov dword [ebp - 0x18e0], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x18e0]
mov dword [ebp - 0x18dc], esi
push eax
call fcn.10016d60
test eax, eax
jne 0x10007b68
lea eax, [edi - 1]
mov dword [ebp - 0x18e4], esi
mov dword [ebp - 0x18e8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x18e8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007b68
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [eax]
mov eax, dword [edi]
movzx edx, word [ecx]
mov ecx, dword [esi]
movzx ecx, word [ecx]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax], dx
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x18f0], eax
lea eax, [ebp - 0x18f0]
push eax
mov dword [ebp - 0x18ec], 0
call fcn.10016db0
jmp 0x10008114
lea eax, [ebp - 0x18f8]
mov dword [ebp - 0x18f8], edi
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x18f4], 1
call fcn.10016d60
test eax, eax
jne 0x10007c2a
lea eax, [edi - 1]
mov dword [ebp - 0x18fc], 0
mov dword [ebp - 0x1900], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1900]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007c2a
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov esi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [esi]
mov eax, dword [eax]
movzx ecx, word [ecx + 2]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1908], eax
lea eax, [ebp - 0x1908]
push eax
mov dword [ebp - 0x1904], 0
call fcn.10016db0
jmp 0x10008114
lea eax, [ebp - 0x1910]
mov dword [ebp - 0x1910], edi
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x190c], 1
call fcn.10016d60
test eax, eax
jne 0x10007ce2
lea eax, [edi + 1]
mov dword [ebp - 0x1914], 0
mov dword [ebp - 0x1918], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1918]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007ce2
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
push dword [ebp - 0x141c]
mov edi, eax
call fcn.10017230
mov ecx, dword [eax]
mov eax, dword [edi]
movzx edx, word [ecx + 2]
mov ecx, dword [esi]
movzx ecx, word [ecx]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax], dx
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1920], eax
lea eax, [ebp - 0x1920]
push eax
mov dword [ebp - 0x191c], 0
call fcn.10016db0
jmp 0x10008114
lea eax, [edi - 1]
mov dword [ebp - 0x15a4], 0
mov dword [ebp - 0x15a8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x15a8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007d59
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi - 1]
mov esi, eax
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [esi]
mov eax, dword [eax]
mov ax, word [eax]
mov word [ecx], ax
lea eax, [ebp - 0x15b0]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x15b0], edi
mov dword [ebp - 0x15ac], 0
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x15b8], edi
lea eax, [ebp - 0x15b8]
mov dword [ebp - 0x15b4], 0
jmp 0x10008108
test edi, edi
jne 0x10007f2c
test esi, esi
jne 0x10007e50
lea eax, [ebp - 0x15c0]
mov dword [ebp - 0x15c0], esi
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x15bc], 1
call fcn.10016d60
test eax, eax
jne 0x10007e31
mov dword [ebp - 0x15c4], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x15c8]
mov dword [ebp - 0x15c8], 1
push eax
call fcn.10016d60
test eax, eax
jne 0x10007e31
push 1
lea ecx, [ebp - 0x142c]
call fcn.10017230
push esi
mov edi, eax
call fcn.10017230
push 0
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov eax, dword [eax]
movzx edx, word [ecx + 2]
mov ecx, dword [edi]
movzx ecx, word [ecx]
add edx, ecx
lea ecx, [ebp - 0x1438]
shr edx, 1
mov word [eax], dx
lea eax, [ebp - 0x15d0]
push eax
mov dword [ebp - 0x15d0], 0
mov dword [ebp - 0x15cc], 0
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x15d8], 0
lea eax, [ebp - 0x15d8]
mov dword [ebp - 0x15d4], 0
jmp 0x10008108
lea eax, [ecx - 1]
cmp esi, eax
jne 0x10007f2c
lea eax, [ebp - 0x15e0]
mov dword [ebp - 0x15e0], 1
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x15dc], esi
call fcn.10016d60
test eax, eax
jne 0x10007f11
lea eax, [esi - 1]
mov dword [ebp - 0x1640], 0
mov dword [ebp - 0x163c], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1640]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007f11
push 1
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 0
mov esi, eax
call fcn.10017230
push 0
mov edi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea eax, [ebp - 0x15e8]
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x15e8], 0
mov dword [ebp - 0x15e4], edx
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x15f0], 0
lea eax, [ebp - 0x15f0]
mov dword [ebp - 0x15ec], esi
jmp 0x10008108
lea eax, [edx - 1]
cmp edi, eax
jne 0x100080f6
test esi, esi
jne 0x10008018
lea eax, [edi - 1]
mov dword [ebp - 0x15f4], esi
mov dword [ebp - 0x15f8], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x15f8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007ffd
lea eax, [ebp - 0x1600]
mov dword [ebp - 0x1600], edi
push eax
lea ecx, [ebp - 0x1438]
mov dword [ebp - 0x15fc], 1
call fcn.10016d60
test eax, eax
jne 0x10007ffd
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + 2]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1608], eax
lea eax, [ebp - 0x1608]
push eax
mov dword [ebp - 0x1604], 0
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x1610], edi
lea eax, [ebp - 0x1610]
mov dword [ebp - 0x160c], 0
jmp 0x10008108
lea eax, [ecx - 1]
cmp esi, eax
jne 0x100080f6
lea eax, [edi - 1]
mov dword [ebp - 0x1614], esi
mov dword [ebp - 0x1618], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1618]
push eax
call fcn.10016d60
test eax, eax
jne 0x100080e2
lea eax, [esi - 1]
mov dword [ebp - 0x1620], edi
mov dword [ebp - 0x161c], eax
lea ecx, [ebp - 0x1438]
lea eax, [ebp - 0x1620]
push eax
call fcn.10016d60
test eax, eax
jne 0x100080e2
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edi, eax
dec ecx
push ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1430]
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + edx*2 - 2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x1438]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1628], eax
lea eax, [ebp - 0x1628]
push eax
mov dword [ebp - 0x1624], edx
call fcn.10016db0
jmp 0x10008114
mov dword [ebp - 0x1630], edi
lea eax, [ebp - 0x1630]
mov dword [ebp - 0x162c], esi
jmp 0x10008108
mov dword [ebp - 0x1638], edi
lea eax, [ebp - 0x1638]
mov dword [ebp - 0x1634], esi
push eax
lea ecx, [ebp - 0x148c]
call fcn.10016f80
lea ecx, [ebp - 0x14f8]
call fcn.10014f00
mov eax, dword [ebp - 0x14f8]
cmp eax, dword [ebp - 0x159c]
jne 0x10006720
push dword [ebp - 0x14e4]
lea ecx, [ebp - 0x145c]
push dword [ebp - 0x14e8]
call fcn.1001a400
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x145c]
mov esi, dword [eax]
mov dword [ebp - 0x1440], esi
cmp esi, eax
je 0x10008dc0
mov edi, dword [ebp - 0x143c]
nop dword [eax + eax]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x1430], eax
lea ecx, [eax + 1]
mov dword [ebp - 0x1450], ecx
lea ecx, [eax + 2]
mov dword [ebp - 0x1468], ecx
lea ecx, [eax + 3]
mov dword [ebp - 0x1470], ecx
test eax, eax
jle 0x10008a4c
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x19ec]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x100083ed
mov ecx, dword [ebp - 0x1450]
cmp ecx, dword [eax + 0x10]
jl 0x100083ed
lea eax, [ebp - 0x1468]
push eax
lea eax, [ebp - 0x1a94]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100083ed
mov eax, dword [ebp - 0x1468]
cmp eax, dword [ecx + 0x10]
jl 0x100083ed
lea eax, [ebp - 0x1470]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014e70
test eax, eax
jne 0x100083ed
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1468], eax
je 0x100083ed
mov dword [ebp - 0x141c], 0
test edi, edi
jle 0x10008382
mov eax, dword [ebp - 0x1430]
dec eax
mov dword [ebp - 0x1454], 0
mov dword [ebp - 0x1420], eax
mov dword [ebp - 0x1448], 0
nop word [eax + eax]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1470]
mov edi, eax
call fcn.10017230
push dword [ebp - 0x1430]
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov edx, dword [ebp - 0x1448]
mov esi, dword [ebp - 0x1454]
mov eax, dword [eax]
push dword [ebp - 0x1420]
movzx edx, word [ecx + edx]
mov ecx, dword [edi]
movzx ecx, word [esi + ecx]
add edx, ecx
mov ecx, dword [ebp - 0x141c]
shr edx, 1
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1470]
mov edi, eax
call fcn.10017230
push dword [ebp - 0x1450]
mov esi, eax
call fcn.10017230
mov ecx, dword [esi]
mov esi, dword [ebp - 0x141c]
push dword [ebp - 0x1420]
mov eax, dword [eax]
movzx edx, word [ecx + esi*2]
mov ecx, dword [edi]
movzx ecx, word [ecx + esi*2]
add edx, ecx
lea ecx, [ebp - 0x142c]
shr edx, 1
mov word [eax + esi*2], dx
call fcn.10017230
push dword [ebp - 0x1468]
mov edi, eax
call fcn.10017230
push dword [ebp - 0x1470]
mov esi, eax
call fcn.10017230
add dword [ebp - 0x1454], 2
add dword [ebp - 0x1448], 2
mov ecx, dword [eax]
mov eax, dword [ebp - 0x141c]
movzx edx, word [ecx + eax*2]
mov ecx, dword [edi]
mov edi, eax
mov eax, dword [esi]
movzx ecx, word [ecx + edi*2]
add edx, ecx
shr edx, 1
mov word [eax + edi*2], dx
inc edi
mov dword [ebp - 0x141c], edi
cmp edi, dword [ebp - 0x143c]
jge 0x10008376
mov eax, dword [ebp - 0x1420]
jmp 0x10008270
mov esi, dword [ebp - 0x1440]
mov edi, dword [ebp - 0x143c]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x1924]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x1928]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x192c]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
jmp 0x10008dae
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b0c]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100085e5
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x100085e5
lea eax, [ebp - 0x1468]
push eax
push eax
lea eax, [ebp - 0x1b18]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov eax, dword [eax + 8]
push eax
call fcn.1001a780
test al, al
je 0x100085e5
lea eax, [ebp - 0x1470]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014e70
test eax, eax
jne 0x100085e5
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1468], eax
jne 0x100085e5
mov edi, dword [ebp - 0x143c]
mov dword [ebp - 0x1448], 0
test edi, edi
jle 0x1000857a
mov eax, dword [ebp - 0x1430]
mov dword [ebp - 0x1454], 0
mov dword [ebp - 0x141c], 0
lea ecx, [eax - 1]
mov dword [ebp - 0x1420], ecx
nop word [eax + eax]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1454]
mov ecx, dword [esi]
push dword [ebp - 0x1420]
mov eax, dword [eax]
movzx eax, word [edx + eax]
mov edx, dword [ebp - 0x141c]
mov word [edx + ecx], ax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1450]
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1448]
mov ecx, dword [eax]
mov eax, dword [esi]
movzx eax, word [eax + edx*2]
mov word [ecx + edx*2], ax
lea ecx, [ebp - 0x142c]
push dword [ebp - 0x1468]
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1448]
mov ecx, dword [esi]
add dword [ebp - 0x1454], 2
mov eax, dword [eax]
add dword [ebp - 0x141c], 2
movzx eax, word [eax + edx*2]
mov word [ecx + edx*2], ax
inc edx
mov eax, dword [ebp - 0x1430]
mov dword [ebp - 0x1448], edx
cmp edx, edi
jl 0x100084c0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x1930]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x1934]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x1938]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
jmp 0x10008dae
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b24]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008792
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x10008792
lea eax, [ebp - 0x1468]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014e70
test eax, eax
jne 0x10008792
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1450], eax
je 0x10008792
cmp dword [ebp - 0x143c], 0
mov dword [ebp - 0x1420], 0
jle 0x10008745
mov edi, dword [ebp - 0x1430]
mov dword [ebp - 0x1448], 0
mov dword [ebp - 0x1454], 0
lea eax, [edi - 1]
mov dword [ebp - 0x141c], eax
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push edi
mov esi, eax
call fcn.10017230
push dword [ebp - 0x1468]
mov edi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1448]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x1454]
movzx ecx, word [ecx + eax]
mov eax, dword [esi]
movzx eax, word [eax + edx]
mov edx, dword [ebp - 0x1420]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x142c]
push dword [ebp - 0x1450]
call fcn.10017230
push dword [ebp - 0x1468]
mov edi, eax
call fcn.10017230
push dword [ebp - 0x141c]
mov esi, eax
call fcn.10017230
mov edx, dword [ebp - 0x1420]
add dword [ebp - 0x1448], 2
add dword [ebp - 0x1454], 2
mov ecx, dword [eax]
mov eax, dword [esi]
movzx ecx, word [ecx + edx*2]
movzx eax, word [eax + edx*2]
add ecx, eax
mov eax, dword [edi]
shr ecx, 1
mov word [eax + edx*2], cx
inc edx
mov dword [ebp - 0x1420], edx
cmp edx, dword [ebp - 0x143c]
jge 0x1000873f
mov edi, dword [ebp - 0x1430]
mov eax, dword [ebp - 0x141c]
jmp 0x10008681
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x193c]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
push esi
lea eax, [ebp - 0x1940]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014ec0
mov edi, dword [ebp - 0x143c]
jmp 0x10008dae
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b30]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100088dc
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x100088dc
lea eax, [ebp - 0x1468]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014e70
test eax, eax
jne 0x100088dc
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1450], eax
jne 0x100088dc
mov edi, dword [ebp - 0x143c]
mov dword [ebp - 0x1454], 0
test edi, edi
jle 0x10008887
mov eax, dword [ebp - 0x1430]
xor edx, edx
mov dword [ebp - 0x1448], edx
mov dword [ebp - 0x1420], edx
lea esi, [eax + eax*2]
mov ecx, dword [ebp - 0x142c]
add dword [ebp - 0x1448], 2
mov eax, dword [ecx + esi*4 - 0xc]
mov ecx, dword [ecx + esi*4]
movzx eax, word [edx + eax]
mov edx, dword [ebp - 0x1420]
add dword [ebp - 0x1420], 2
mov word [edx + ecx], ax
mov eax, dword [ebp - 0x1450]
mov ecx, dword [ebp - 0x142c]
lea edx, [eax + eax*2]
mov eax, dword [ecx + esi*4 - 0xc]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ebp - 0x1454]
movzx eax, word [eax + edx*2]
mov word [ecx + edx*2], ax
inc edx
mov dword [ebp - 0x1454], edx
cmp edx, edi
mov edx, dword [ebp - 0x1448]
jl 0x10008823
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
lea ecx, [ebp - 0x155c]
mov dword [ebp - 0x155c], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x145c]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x1560], esi
lea ecx, [ebp - 0x1560]
jmp 0x10008d85
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b3c]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1000890d
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jge 0x100089b9
mov eax, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x1430]
dec eax
cmp ecx, eax
je 0x100089b9
mov edi, dword [ebp - 0x143c]
test edi, edi
jle 0x1000899d
lea eax, [ecx + ecx*2]
shl eax, 2
xor ecx, ecx
mov dword [ebp - 0x1420], eax
mov esi, ecx
mov dword [ebp - 0x1448], ecx
nop word [eax + eax]
mov edx, dword [ebp - 0x142c]
mov eax, dword [edx + eax + 0xc]
movzx ecx, word [eax + ecx]
mov eax, dword [ebp - 0x1420]
mov eax, dword [edx + eax - 0xc]
movzx eax, word [eax + esi*2]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov eax, dword [edx + eax]
mov word [eax + esi*2], cx
inc esi
mov ecx, dword [ebp - 0x1448]
mov eax, dword [ebp - 0x1420]
add ecx, 2
mov dword [ebp - 0x1448], ecx
cmp esi, edi
jl 0x10008950
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
mov dword [ebp - 0x1564], esi
lea ecx, [ebp - 0x1564]
jmp 0x10008d85
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x19f8]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100089ea
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jge 0x10008da3
mov eax, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x1430]
dec eax
cmp ecx, eax
jne 0x10008da3
mov edi, dword [ebp - 0x143c]
xor edx, edx
test edi, edi
jle 0x10008a30
lea esi, [ecx + ecx*2]
nop
mov ecx, dword [ebp - 0x142c]
mov eax, dword [ecx + esi*4 - 0xc]
mov ecx, dword [ecx + esi*4]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
inc edx
cmp edx, edi
jl 0x10008a10
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
mov dword [ebp - 0x1568], esi
lea ecx, [ebp - 0x1568]
jmp 0x10008d85
jne 0x10008da3
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1a04]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008be2
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x10008be2
lea eax, [ebp - 0x1468]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014e70
test eax, eax
je 0x10008be2
lea eax, [ebp - 0x1470]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014e70
test eax, eax
jne 0x10008be2
mov edi, dword [ebp - 0x143c]
test edi, edi
jle 0x10008b54
xor edx, edx
mov dword [ebp - 0x1448], edx
mov esi, edx
mov dword [ebp - 0x1420], edx
nop dword [eax]
mov ecx, dword [ebp - 0x142c]
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx]
movzx eax, word [edx + eax]
mov edx, dword [ebp - 0x1420]
add dword [ebp - 0x1420], 2
mov word [edx + ecx], ax
mov edx, dword [ebp - 0x142c]
mov eax, dword [ebp - 0x1450]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x24]
mov ecx, dword [edx + ecx*4]
movzx eax, word [eax + esi*2]
mov word [ecx + esi*2], ax
mov eax, dword [ebp - 0x1468]
mov ecx, dword [ebp - 0x142c]
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ebp - 0x1448]
add edx, 2
movzx eax, word [eax + esi*2]
mov word [ecx + esi*2], ax
inc esi
mov dword [ebp - 0x1448], edx
cmp esi, edi
jl 0x10008ae0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
lea ecx, [ebp - 0x156c]
mov dword [ebp - 0x156c], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x145c]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10014f00
lea ecx, [ebp - 0x158c]
mov dword [ebp - 0x158c], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x145c]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x1588], esi
lea ecx, [ebp - 0x1588]
jmp 0x10008d85
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1a10]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008d11
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x10008d11
lea eax, [ebp - 0x1468]
push eax
lea ecx, [ebp - 0x145c]
call fcn.10014e70
test eax, eax
jne 0x10008d11
mov edi, dword [ebp - 0x143c]
mov dword [ebp - 0x1448], eax
test edi, edi
jle 0x10008cbc
xor esi, esi
xor edx, edx
mov dword [ebp - 0x1420], edx
nop
mov eax, dword [ebp - 0x1468]
lea esi, [esi + 2]
mov ecx, dword [ebp - 0x142c]
add dword [ebp - 0x1420], 2
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ecx]
movzx eax, word [esi + eax - 2]
mov word [edx + ecx], ax
mov eax, dword [ebp - 0x1450]
mov ecx, dword [ebp - 0x142c]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0x1468]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ebp - 0x1448]
movzx eax, word [eax + edx*2]
mov word [ecx + edx*2], ax
inc edx
mov dword [ebp - 0x1448], edx
cmp edx, edi
jge 0x10008cb6
mov edx, dword [ebp - 0x1420]
jmp 0x10008c50
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
lea ecx, [ebp - 0x1584]
mov dword [ebp - 0x1584], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x145c]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x15a0], esi
lea ecx, [ebp - 0x15a0]
jmp 0x10008d85
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1a1c]
push eax
lea ecx, [ebp - 0x145c]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008d3e
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jge 0x10008da3
mov edi, dword [ebp - 0x143c]
xor edx, edx
test edi, edi
jle 0x10008d6e
nop word [eax + eax]
mov ecx, dword [ebp - 0x142c]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov ax, word [eax + edx*2]
mov word [ecx + edx*2], ax
inc edx
cmp edx, edi
jl 0x10008d50
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10014f00
mov dword [ebp - 0x157c], esi
lea ecx, [ebp - 0x157c]
call fcn.10014f00
push esi
lea ecx, [ebp - 0x145c]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
add esp, 8
jmp 0x10008dae
lea ecx, [ebp - 0x1440]
call fcn.10014f00
mov esi, dword [ebp - 0x1440]
cmp esi, dword [ebp - 0x145c]
jne 0x10008170
push dword [ebp - 0x14a0]
lea ecx, [ebp - 0x1464]
push dword [ebp - 0x14a4]
call fcn.1001a400
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x1464]
mov esi, dword [eax]
mov dword [ebp - 0x1444], esi
cmp esi, eax
je 0x100097e1
mov edi, dword [esi + 0x10]
lea eax, [edi + 1]
mov dword [ebp - 0x1474], eax
lea eax, [edi + 2]
mov dword [ebp - 0x1478], eax
lea eax, [edi + 3]
mov dword [ebp - 0x146c], eax
test edi, edi
jle 0x100094bd
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1a28]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x10008fc7
lea ecx, [edi + 1]
cmp ecx, dword [eax + 0x10]
jl 0x10008fc7
lea eax, [ebp - 0x1478]
push eax
lea eax, [ebp - 0x1a34]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008fc7
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jl 0x10008fc7
lea eax, [ebp - 0x146c]
push eax
lea eax, [ebp - 0x1a40]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008ea9
lea eax, [edi + 3]
cmp eax, dword [ecx + 0x10]
jge 0x10008fc7
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 2]
dec eax
cmp ecx, eax
je 0x10008fc7
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x10008f39
xor esi, esi
mov dword [ebp - 0x1420], eax
mov eax, dword [ebp - 0x142c]
lea esi, [esi + 0xc]
mov edx, dword [eax + esi - 0xc]
movzx eax, word [edx + edi*2 - 2]
movzx ecx, word [edx + edi*2 + 6]
add ecx, eax
shr ecx, 1
mov word [edx + edi*2], cx
mov eax, dword [ebp - 0x142c]
mov edx, dword [eax + esi - 0xc]
movzx eax, word [edx + edi*2 - 2]
movzx ecx, word [edx + edi*2 + 6]
add ecx, eax
shr ecx, 1
mov word [edx + edi*2 + 2], cx
mov eax, dword [ebp - 0x142c]
mov edx, dword [eax + esi - 0xc]
movzx ecx, word [edx + edi*2 - 2]
movzx eax, word [edx + edi*2 + 6]
add ecx, eax
shr ecx, 1
sub dword [ebp - 0x1420], 1
mov word [edx + edi*2 + 4], cx
jne 0x10008ed1
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
lea ecx, [ebp - 0x1554]
mov dword [ebp - 0x1554], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
lea ecx, [ebp - 0x1550]
mov dword [ebp - 0x1550], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x154c], esi
lea ecx, [ebp - 0x154c]
jmp 0x100097a6
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1a4c]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009157
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jl 0x10009157
lea eax, [ebp - 0x1478]
push eax
lea eax, [ebp - 0x1a58]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009157
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jl 0x10009157
lea eax, [ebp - 0x146c]
push eax
lea eax, [ebp - 0x1a64]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009059
lea eax, [edi + 3]
cmp eax, dword [ecx + 0x10]
jge 0x10009157
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 2]
dec eax
cmp ecx, eax
jne 0x10009157
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x100090c9
xor edx, edx
mov esi, eax
nop dword [eax]
mov eax, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + edi*2 - 2]
mov word [ecx + edi*2], ax
mov eax, dword [ebp - 0x142c]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + edi*2 - 2]
mov word [ecx + edi*2 + 2], ax
mov ecx, dword [ebp - 0x142c]
mov ecx, dword [ecx + edx - 0xc]
movzx eax, word [ecx + edi*2 - 2]
mov word [ecx + edi*2 + 4], ax
sub esi, 1
jne 0x10009080
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
lea ecx, [ebp - 0x1548]
mov dword [ebp - 0x1548], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
lea ecx, [ebp - 0x1574]
mov dword [ebp - 0x1574], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x1570], esi
lea ecx, [ebp - 0x1570]
jmp 0x100097a6
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1a70]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009280
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jl 0x10009280
lea eax, [ebp - 0x1478]
push eax
lea eax, [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100091b7
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jge 0x10009280
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 1]
dec eax
cmp ecx, eax
je 0x10009280
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x1000922b
xor esi, esi
mov dword [ebp - 0x1420], eax
nop dword [eax + eax]
mov eax, dword [ebp - 0x142c]
lea esi, [esi + 0xc]
mov edx, dword [eax + esi - 0xc]
movzx eax, word [edx + edi*2 - 2]
movzx ecx, word [edx + edi*2 + 4]
add ecx, eax
shr ecx, 1
mov word [edx + edi*2], cx
mov eax, dword [ebp - 0x142c]
mov edx, dword [eax + esi - 0xc]
movzx ecx, word [edx + edi*2 + 4]
movzx eax, word [edx + edi*2 - 2]
add ecx, eax
shr ecx, 1
sub dword [ebp - 0x1420], 1
mov word [edx + edi*2 + 2], cx
jne 0x100091e0
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
lea ecx, [ebp - 0x1578]
mov dword [ebp - 0x1578], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x150c], esi
lea ecx, [ebp - 0x150c]
jmp 0x100097a6
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1a88]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1000938a
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jl 0x1000938a
lea eax, [ebp - 0x1478]
push eax
lea eax, [ebp - 0x1b00]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100092e0
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jge 0x1000938a
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 1]
dec eax
cmp ecx, eax
jne 0x1000938a
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x10009335
xor edx, edx
mov esi, eax
mov eax, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + edi*2 - 2]
mov word [ecx + edi*2], ax
mov eax, dword [ebp - 0x142c]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + edi*2 - 2]
mov word [ecx + edi*2 + 2], ax
sub esi, 1
jne 0x10009300
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
lea ecx, [ebp - 0x1510]
mov dword [ebp - 0x1510], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x1514], esi
lea ecx, [ebp - 0x1514]
jmp 0x100097a6
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1aa0]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100093b8
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jge 0x1000942a
mov eax, dword [ebp - 0x143c]
dec eax
cmp edi, eax
je 0x1000942a
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x1000940e
xor esi, esi
mov dword [ebp - 0x1420], eax
nop word [eax + eax]
mov eax, dword [ebp - 0x142c]
lea esi, [esi + 0xc]
mov edx, dword [eax + esi - 0xc]
movzx ecx, word [edx + edi*2 + 2]
movzx eax, word [edx + edi*2 - 2]
add ecx, eax
shr ecx, 1
sub dword [ebp - 0x1420], 1
mov word [edx + edi*2], cx
jne 0x100093e0
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
mov dword [ebp - 0x1518], esi
lea ecx, [ebp - 0x1518]
jmp 0x100097a6
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1aac]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009458
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jge 0x100097c4
mov eax, dword [ebp - 0x143c]
dec eax
cmp edi, eax
jne 0x100097c4
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x100094a1
xor edx, edx
mov esi, eax
nop word [eax + eax]
mov eax, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [eax + edx - 0xc]
mov ax, word [ecx + edi*2 - 2]
mov word [ecx + edi*2], ax
sub esi, 1
jne 0x10009480
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
mov dword [ebp - 0x151c], esi
lea ecx, [ebp - 0x151c]
jmp 0x100097a6
jne 0x100097c4
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1ab8]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov edi, dword [ebp - 0x1474]
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x10009641
cmp edi, dword [eax + 0x10]
jl 0x10009641
lea eax, [ebp - 0x1478]
push eax
lea eax, [ebp - 0x1ac4]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009641
mov eax, dword [ebp - 0x1478]
cmp eax, dword [ecx + 0x10]
jl 0x10009641
lea eax, [ebp - 0x146c]
push eax
lea eax, [ebp - 0x1ad0]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1000955e
mov eax, dword [ebp - 0x146c]
cmp eax, dword [ecx + 0x10]
jge 0x10009641
mov edi, dword [ebp - 0x144c]
test edi, edi
jle 0x100095b3
xor edx, edx
nop word [eax + eax]
mov ecx, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [ecx + edx - 0xc]
movzx eax, word [ecx + 6]
mov word [ecx], ax
mov ecx, dword [ebp - 0x142c]
mov ecx, dword [ecx + edx - 0xc]
movzx eax, word [ecx + 6]
mov word [ecx + 2], ax
mov ecx, dword [ebp - 0x142c]
mov ecx, dword [ecx + edx - 0xc]
movzx eax, word [ecx + 6]
mov word [ecx + 4], ax
sub edi, 1
jne 0x10009570
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
lea ecx, [ebp - 0x1520]
mov dword [ebp - 0x1520], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
lea ecx, [ebp - 0x1524]
mov dword [ebp - 0x1524], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x1528], esi
lea ecx, [ebp - 0x1528]
jmp 0x100097a6
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1adc]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x10009733
cmp edi, dword [eax + 0x10]
jl 0x10009733
lea eax, [ebp - 0x1478]
push eax
lea eax, [ebp - 0x1ae8]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100096a1
mov eax, dword [ebp - 0x1478]
cmp eax, dword [ecx + 0x10]
jge 0x10009733
mov edi, dword [ebp - 0x144c]
test edi, edi
jle 0x100096e1
xor edx, edx
nop dword [eax]
mov ecx, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [ecx + edx - 0xc]
movzx eax, word [ecx + 4]
mov word [ecx], ax
mov ecx, dword [ebp - 0x142c]
mov ecx, dword [ecx + edx - 0xc]
movzx eax, word [ecx + 4]
mov word [ecx + 2], ax
sub edi, 1
jne 0x100096b0
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
lea ecx, [ebp - 0x152c]
mov dword [ebp - 0x152c], esi
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10014f00
mov dword [ebp - 0x1530], esi
lea ecx, [ebp - 0x1530]
jmp 0x100097a6
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1af4]
push eax
lea ecx, [ebp - 0x1464]
call fcn.1001a730
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x1000975a
cmp edi, dword [eax + 0x10]
jge 0x100097c4
mov edi, dword [ebp - 0x144c]
test edi, edi
jle 0x1000978f
xor edx, edx
nop word [eax + eax]
mov ecx, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [ecx + edx - 0xc]
mov ax, word [ecx + 2]
mov word [ecx], ax
sub edi, 1
jne 0x10009770
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10014f00
mov dword [ebp - 0x1580], esi
lea ecx, [ebp - 0x1580]
call fcn.10014f00
push esi
lea ecx, [ebp - 0x1464]
call fcn.10019420
push 0x14
push eax
call fcn.10022cf6
add esp, 8
jmp 0x100097cf
lea ecx, [ebp - 0x1444]
call fcn.10014f00
mov esi, dword [ebp - 0x1444]
cmp esi, dword [ebp - 0x1464]
jne 0x10008df1
mov esi, dword [ebp - 0x143c]
mov dword [ebp - 0x14bc], 0
mov dword [ebp - 0x14b8], 0
mov dword [ebp - 0x14b4], 0
test esi, esi
je 0x1000983d
push esi
lea ecx, [ebp - 0x14bc]
call fcn.1001d4c0
lea edi, [esi*8]
mov esi, dword [ebp - 0x14bc]
push edi
push 0
push esi
call fcn.10025880
lea eax, [esi + edi]
add esp, 0xc
mov esi, dword [ebp - 0x143c]
mov dword [ebp - 0x14b8], eax
mov edi, dword [ebp - 0x144c]
lea eax, [ebp - 0x14bc]
push ecx
push eax
push edi
lea ecx, [ebp - 0x19c8]
mov byte [ebp - 4], 0x18
call fcn.100170c0
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x14bc]
test ecx, ecx
je 0x100098c1
mov eax, dword [ebp - 0x14b4]
sub eax, ecx
sar eax, 3
lea edx, [eax*8]
mov eax, ecx
cmp edx, 0x1000
jb 0x10009899
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push edx
push ecx
call fcn.10022cf6
add esp, 8
mov dword [ebp - 0x14bc], 0
mov dword [ebp - 0x14b8], 0
mov dword [ebp - 0x14b4], 0
push dword [ebp - 0x14f0]
lea ecx, [ebp - 0x1594]
push dword [ebp - 0x14f4]
call fcn.10019e80
mov byte [ebp - 4], 0x1b
call fcn.10024514
mov dword [ebp - 0x94], 0xffffffff
mov edx, 1
mov dword [ebp - 0x1414], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [ebp + edx*4 - 0x1414], eax
inc edx
cmp edx, 0x270
jb 0x100098f6
cmp dword [ebp - 0x1480], 0xe
movsd xmm3, qword [ebp - 0x14d0]
movsd xmm2, qword [0x100502b0]
movaps xmm1, xmm3
mulsd xmm1, qword [ebx + 0x14]
mov dword [ebp - 0x1418], 0x270
movaps xmm0, xmm1
divsd xmm0, xmm2
cvttsd2si edx, xmm0
mov dword [ebp - 0x141c], edx
jne 0x10009967
addsd xmm1, qword [0x100502d0]
divsd xmm1, xmm2
cvttsd2si edx, xmm1
mov dword [ebp - 0x141c], edx
mov ecx, dword [ebp - 0x1594]
mov eax, edx
neg eax
mov dword [ebp - 0x1538], eax
mov eax, dword [ecx]
mov dword [ebp - 0x147c], eax
cmp eax, ecx
je 0x10009b45
nop word [eax + eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x1454], eax
mov dword [ebp - 0x14c4], ecx
lea ecx, [ecx + ecx*2]
lea esi, [eax + eax]
mov dword [ebp - 0x14cc], ecx
mov eax, dword [ebp - 0x142c]
mov dword [ebp - 0x1448], esi
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x1418]
mov dword [ebp - 0x1430], eax
movzx eax, word [eax + esi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm3
jb 0x10009a76
mov edi, dword [ebp - 0x1538]
mov esi, 0x80000000
xor edi, 0x80000000
sub esi, edi
mov dword [ebp - 0x1420], edi
cmp esi, 0xffffffff
jne 0x10009a06
call fcn.10021460
mov ecx, eax
jmp 0x10009a49
inc esi
call fcn.10021460
mul esi
mov dword [ebp - 0x14c0], eax
mov ecx, edx
cmp eax, esi
jae 0x10009a49
mov eax, esi
xor edx, edx
neg eax
div esi
mov edi, edx
cmp dword [ebp - 0x14c0], edi
jae 0x10009a43
nop dword [eax]
lea ecx, [ebp - 0x1418]
call fcn.10021460
mul esi
mov ecx, edx
cmp eax, edi
jb 0x10009a30
mov edi, dword [ebp - 0x1420]
mov eax, dword [ebp - 0x14c4]
mov edx, dword [ebp - 0x142c]
mov esi, dword [ebp - 0x1448]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x1454]
mov ax, word [eax + edx*2]
add ax, di
add ax, cx
jmp 0x10009b09
mov eax, edx
xor eax, 0x80000000
cmp eax, 0x7fffffff
jne 0x10009a8d
call fcn.10021460
mov edi, eax
jmp 0x10009aed
add eax, 0x80000001
mov dword [ebp - 0x1420], eax
call fcn.10021460
mov ecx, dword [ebp - 0x1420]
mul ecx
mov dword [ebp - 0x14c4], eax
mov edi, edx
cmp eax, ecx
jae 0x10009aed
mov eax, ecx
xor edx, edx
neg eax
div ecx
mov eax, edx
mov dword [ebp - 0x14c0], eax
cmp dword [ebp - 0x14c4], eax
jae 0x10009aed
mov esi, ecx
nop dword [eax + eax]
lea ecx, [ebp - 0x1418]
call fcn.10021460
mul esi
mov edi, edx
cmp eax, dword [ebp - 0x14c0]
jb 0x10009ad0
mov esi, dword [ebp - 0x1448]
mov eax, dword [ebp - 0x142c]
mov ecx, dword [ebp - 0x14cc]
mov edx, dword [ebp - 0x1454]
mov eax, dword [eax + ecx*4]
mov ax, word [eax + edx*2]
add ax, di
movzx ecx, ax
mov eax, dword [ebp - 0x1430]
mov word [eax + esi], cx
lea ecx, [ebp - 0x147c]
call fcn.10014f00
mov eax, dword [ebp - 0x147c]
mov edx, dword [ebp - 0x141c]
cmp eax, dword [ebp - 0x1594]
jne 0x10009990
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
cmp edi, 0x71f
je 0x10009b59
cmp edi, 0x4ee
jne 0x10009d34
mov dword [ebp - 0x14dc], 0
mov dword [ebp - 0x14d8], 0
mov dword [ebp - 0x14d4], 0
test esi, esi
je 0x10009bb5
push esi
lea ecx, [ebp - 0x14dc]
call fcn.1001d4c0
lea edi, [esi*8]
mov esi, dword [ebp - 0x14dc]
push edi
push 0
push esi
call fcn.10025880
lea eax, [esi + edi]
add esp, 0xc
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
mov dword [ebp - 0x14d8], eax
push ecx
lea eax, [ebp - 0x14dc]
mov byte [ebp - 4], 0x1c
push eax
push edi
lea ecx, [ebp - 0x1508]
call fcn.100170c0
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x14dc]
test edx, edx
je 0x10009c2c
mov ecx, dword [ebp - 0x14d4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x10009c04
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1ad
push ecx
push edx
call fcn.10022cf6
add esp, 8
mov dword [ebp - 0x14dc], 0
mov dword [ebp - 0x14d8], 0
mov dword [ebp - 0x14d4], 0
push 5
lea edx, [ebp - 0x142c]
lea ecx, [ebp - 0x19bc]
call fcn.10004920
lea ecx, [ebp - 0x1508]
mov dword [ebp - 0x14cc], eax
add esp, 4
cmp ecx, eax
je 0x10009c8b
call fcn.10018c80
mov edx, dword [ebp - 0x14cc]
mov ecx, dword [edx]
mov dword [ebp - 0x1508], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x1504], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x1500], eax
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
lea ecx, [ebp - 0x19bc]
call fcn.10018c80
xor edx, edx
test esi, esi
jle 0x10009d29
movsd xmm2, qword [0x10050340]
movsd xmm3, qword [0x100502e8]
test edi, edi
jle 0x10009d24
xor ecx, ecx
mov dword [ebp - 0x1448], edi
mov esi, edi
nop
mov eax, dword [ebp - 0x142c]
mov eax, dword [eax + ecx]
mov dword [ebp - 0x1420], eax
mov eax, dword [ebp - 0x1508]
mov eax, dword [eax + ecx]
movsd xmm1, qword [eax + edx*8]
mov eax, dword [ebp - 0x1420]
movzx eax, word [eax + edx*2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
andps xmm0, xmm2
comisd xmm0, xmm3
jbe 0x10009d10
mov esi, dword [ebp - 0x1420]
cvttsd2si eax, xmm1
mov word [esi + edx*2], ax
mov esi, dword [ebp - 0x1448]
add ecx, 0xc
sub esi, 1
mov dword [ebp - 0x1448], esi
jne 0x10009cc0
mov esi, dword [ebp - 0x143c]
inc edx
cmp edx, esi
jl 0x10009cb0
lea ecx, [ebp - 0x1508]
call fcn.10018c80
mov eax, esi
xor ecx, ecx
imul eax, edi
cmp eax, 0x2863c0
jne 0x10009d51
mov dword [ebp - 0x1430], 0x8c
jmp 0x10009dc9
mov eax, esi
imul eax, edi
cmp eax, 0x8c3020
jne 0x10009d69
mov dword [ebp - 0x1430], 0x8c
jmp 0x10009dc9
mov eax, esi
imul eax, edi
cmp eax, 0x230ac0
jne 0x10009d81
mov dword [ebp - 0x1430], 0xd8
jmp 0x10009dc9
mov eax, esi
imul eax, edi
cmp eax, 0x230c08
jne 0x10009d99
mov dword [ebp - 0x1430], 0x46
jmp 0x10009dc9
mov eax, esi
imul eax, edi
cmp eax, 0x15cb608
jne 0x10009db1
mov dword [ebp - 0x1430], 0x8c
jmp 0x10009dc9
mov eax, esi
mov edx, 0x46
imul eax, edi
cmp eax, 0x572d82
cmove ecx, edx
mov dword [ebp - 0x1430], ecx
cmp dword [ebp - 0x1480], 0xc
jne 0x10009e17
test edi, edi
jle 0x10009e17
xor edx, edx
mov dword [ebp - 0x1480], edi
mov eax, edi
xor ecx, ecx
test esi, esi
jle 0x10009e09
nop word [eax + eax]
mov eax, dword [ebp - 0x142c]
mov eax, dword [eax + edx]
shr word [eax + ecx*2], 4
inc ecx
cmp ecx, esi
jl 0x10009df0
mov eax, dword [ebp - 0x1480]
add edx, 0xc
sub eax, 1
mov dword [ebp - 0x1480], eax
jne 0x10009de0
mov edx, esi
xor eax, eax
sub edx, dword [ebp - 0x1430]
cmp edx, esi
jge 0x10009ed9
lea esi, [edi + edi*2]
mov ecx, edi
shl esi, 2
mov dword [ebp - 0x1420], esi
mov esi, dword [ebp - 0x143c]
nop dword [eax]
sub dword [ebp - 0x1420], 0xc
inc eax
dec ecx
mov dword [ebp - 0x14cc], eax
mov dword [ebp - 0x1448], ecx
test eax, eax
jle 0x10009e8a
xor ecx, ecx
mov esi, eax
nop dword [eax]
mov eax, dword [ebp - 0x142c]
lea ecx, [ecx + 0xc]
xor edi, edi
mov eax, dword [eax + ecx - 0xc]
mov word [eax + edx*2], di
sub esi, 1
jne 0x10009e60
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x1448]
cmp ecx, edi
jge 0x10009eca
mov ecx, dword [ebp - 0x1420]
mov esi, edi
sub esi, dword [ebp - 0x1448]
nop dword [eax]
mov eax, dword [ebp - 0x142c]
lea ecx, [ecx + 0xc]
xor edi, edi
mov eax, dword [eax + ecx - 0xc]
mov word [eax + edx*2], di
sub esi, 1
jne 0x10009ea0
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x1448]
mov eax, dword [ebp - 0x14cc]
inc edx
cmp edx, esi
jl 0x10009e40
mov ecx, dword [ebp - 0x14fc]
lea edx, [ebp - 0x142c]
push esi
push edi
call fcn.10004c70
add esp, 8
lea ecx, [ebp - 0x1594]
call fcn.10004720
lea ecx, [ebp - 0x19c8]
call fcn.10018c80
lea ecx, [ebp - 0x1464]
call fcn.1000a360
lea ecx, [ebp - 0x145c]
call fcn.1000a360
mov edx, dword [ebp - 0x148c]
test edx, edx
je 0x10009f76
mov ecx, dword [ebp - 0x1484]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x10009f4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push ecx
push edx
call fcn.10022cf6
add esp, 8
mov dword [ebp - 0x148c], 0
mov dword [ebp - 0x1488], 0
mov dword [ebp - 0x1484], 0
lea ecx, [ebp - 0x1438]
call fcn.10004720
lea ecx, [ebp - 0x159c]
call fcn.10004720
mov edx, dword [ebp - 0x14f4]
test edx, edx
je 0x10009fe7
mov ecx, dword [ebp - 0x14ec]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x10009fbf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push ecx
push edx
call fcn.10022cf6
add esp, 8
mov dword [ebp - 0x14f4], 0
mov dword [ebp - 0x14f0], 0
mov dword [ebp - 0x14ec], 0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x1000a01b
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000a011
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push ecx
push edx
call fcn.10022cf6
add esp, 8
mov esi, dword [ebp - 0x1490]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
lea ecx, [ebp - 0x1bf8]
call fcn.1000a1c0
lea ecx, [ebp - 0x142c]
call fcn.10017310
mov ecx, dword [ebp - 0x1498]
test ecx, ecx
je 0x1000a09e
sub esi, ecx
mov eax, ecx
and esi, 0xfffffff8
cmp esi, 0x1000
jb 0x1000a076
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push esi
push ecx
call fcn.10022cf6
add esp, 8
mov dword [ebp - 0x1498], 0
mov dword [ebp - 0x1494], 0
mov dword [ebp - 0x1490], 0
mov edx, dword [ebp - 0x14b0]
test edx, edx
je 0x1000a0f9
mov ecx, dword [ebp - 0x14a8]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1000a0d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push ecx
push edx
call fcn.10022cf6
add esp, 8
mov dword [ebp - 0x14b0], 0
mov dword [ebp - 0x14ac], 0
mov dword [ebp - 0x14a8], 0
mov edx, dword [ebp - 0x14a4]
test edx, edx
je 0x1000a154
mov ecx, dword [ebp - 0x149c]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1000a12c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push ecx
push edx
call fcn.10022cf6
add esp, 8
mov dword [ebp - 0x14a4], 0
mov dword [ebp - 0x14a0], 0
mov dword [ebp - 0x149c], 0
mov edx, dword [ebp - 0x14e8]
test edx, edx
je 0x1000a18d
mov ecx, dword [ebp - 0x14e0]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1000a183
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a1b2
push ecx
push edx
call fcn.10022cf6
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100229ab
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.10028aca
call fcn.10028aca
int3