Function at 0x10005ed0
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 0x10046487
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1de8
call fcn.10045c10
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 - 0x147c], edx
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x144c], eax
mov eax, dword [0x100560bc]
mov dword [ebp - 0x143c], edi
mov dword [ebp - 0x14f8], eax
mov dword [ebp - 0x14e0], 0
mov dword [ebp - 0x14dc], 0
mov dword [ebp - 0x14d8], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x14a0], 0
mov dword [ebp - 0x149c], 0
mov dword [ebp - 0x1498], 0
mov dword [ebp - 0x1494], 0
mov dword [ebp - 0x1490], 0
mov dword [ebp - 0x148c], 0
xor eax, eax
mov dword [ebp - 0x1448], eax
mov dword [ebp - 0x14ac], eax
mov dword [ebp - 0x14a8], eax
mov dword [ebp - 0x14a4], eax
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.10002d90
mov ecx, dword [ebp - 0x14f8]
lea edx, [ebp - 0x142c]
push edi
push dword [ebp - 0x144c]
call fcn.100049c0
push ecx
push esi
lea ecx, [ebp - 0x1c00]
call fcn.10016ab0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1c00]
mov eax, dword [ebp - 0x1c00]
add ecx, dword [eax + 4]
call fcn.10003ba0
test al, al
je 0x10006046
mov edx, str.Unable_to_open_file_points.txt
mov ecx, 0x10055650
call fcn.1001a0b0
xor esi, esi
xor edi, edi
jmp 0x10009fb5
lea ecx, [ebp - 0x2c]
call fcn.10017690
lea edx, [ebp - 0x2c]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1c00]
call fcn.1001a360
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003b90
test al, al
je 0x100062c8
push 0
lea ecx, [ebp - 0x2c]
call fcn.10017520
cmp byte [eax], 0x50
jne 0x10006158
sub esp, 8
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x1ca8]
push eax
call fcn.10015740
lea ecx, [ebp - 0x44]
call fcn.10017690
push ecx
lea edx, [ebp - 0x44]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x1ca8]
call fcn.1001a410
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ba0
test al, al
jne 0x100062a1
lea eax, [ebp - 0x1538]
push eax
lea ecx, [ebp - 0x1ca8]
call fcn.10016c30
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ba0
test al, al
jne 0x100062a1
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.10003d00
add esp, 4
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.10017540
mov ecx, dword [ebp - 0x1538]
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 - 0x1494]
call fcn.10016f80
lea ecx, [ebp - 0x44]
call fcn.10017540
lea ecx, [ebp - 0x1ca8]
jmp 0x10006274
push 0
lea ecx, [ebp - 0x2c]
call fcn.10017520
lea ecx, [ebp - 0x2c]
cmp byte [eax], 0x43
jne 0x100061ef
sub esp, 8
lea eax, [ebp - 0x8c]
push eax
call fcn.100174d0
sub esp, 8
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x1d50]
push eax
call fcn.10015740
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xe
call fcn.10017540
lea eax, [ebp - 0x1530]
push eax
lea ecx, [ebp - 0x1d50]
call fcn.10016c30
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ba0
test al, al
jne 0x100062b1
mov eax, dword [ebp - 0x1530]
lea ecx, [ebp - 0x14e0]
dec eax
mov dword [ebp - 0x153c], eax
lea eax, [ebp - 0x153c]
push eax
call fcn.10016cd0
lea ecx, [ebp - 0x1d50]
jmp 0x10006274
push 0
call fcn.10017520
cmp byte [eax], 0x52
jne 0x1000627d
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 - 0x1df8]
push eax
call fcn.10015740
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x11
call fcn.10017540
lea eax, [ebp - 0x1544]
push eax
lea ecx, [ebp - 0x1df8]
call fcn.10016c30
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003ba0
test al, al
jne 0x100062b9
mov eax, dword [ebp - 0x1544]
lea ecx, [ebp - 0x14a0]
dec eax
mov dword [ebp - 0x1558], eax
lea eax, [ebp - 0x1558]
push eax
call fcn.10016cd0
lea ecx, [ebp - 0x1df8]
mov byte [ebp - 4], 8
call fcn.1000a250
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x1c00]
call fcn.1001a360
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.10003b90
test al, al
jne 0x10006074
jmp 0x100062c8
lea ecx, [ebp - 0x44]
call fcn.10017540
lea ecx, [ebp - 0x1ca8]
jmp 0x100062bf
lea ecx, [ebp - 0x1d50]
jmp 0x100062bf
lea ecx, [ebp - 0x1df8]
mov byte [ebp - 4], 8
call fcn.1000a250
lea ecx, [ebp - 0x1c00]
call fcn.10016a70
lea eax, [ebp - 0x1494]
push eax
lea ecx, [ebp - 0x14ac]
call fcn.10016f50
mov eax, dword [ebp - 0x14e0]
mov dword [ebp - 0x1468], eax
cmp eax, dword [ebp - 0x14dc]
je 0x1000634c
nop dword [eax]
xor esi, esi
test edi, edi
jle 0x1000633b
nop word [eax + eax]
mov eax, dword [eax]
lea ecx, [ebp - 0x14ac]
mov dword [ebp - 0x1650], eax
lea eax, [ebp - 0x1650]
push eax
mov dword [ebp - 0x164c], esi
call fcn.10016f80
mov eax, dword [ebp - 0x1468]
inc esi
cmp esi, edi
jl 0x10006310
add eax, 4
mov dword [ebp - 0x1468], eax
cmp eax, dword [ebp - 0x14dc]
jne 0x10006300
mov eax, dword [ebp - 0x14a0]
mov esi, dword [ebp - 0x144c]
mov dword [ebp - 0x1468], eax
cmp eax, dword [ebp - 0x149c]
je 0x100063b2
xor edi, edi
test esi, esi
jle 0x1000639b
nop dword [eax]
mov eax, dword [eax]
lea ecx, [ebp - 0x14ac]
mov dword [ebp - 0x1654], eax
lea eax, [ebp - 0x1658]
push eax
mov dword [ebp - 0x1658], edi
call fcn.10016f80
mov eax, dword [ebp - 0x1468]
inc edi
cmp edi, esi
jl 0x10006370
add eax, 4
mov dword [ebp - 0x1468], eax
cmp eax, dword [ebp - 0x149c]
jne 0x10006366
mov edi, dword [ebp - 0x143c]
mov dword [ebp - 0x14ec], 0
mov dword [ebp - 0x14e8], 0
mov dword [ebp - 0x14e4], 0
push edi
push esi
lea edx, [ebp - 0x1494]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x19e0]
call fcn.10003f90
add esp, 8
lea ecx, [ebp - 0x14ec]
push eax
call fcn.10017020
lea ecx, [ebp - 0x19e0]
call fcn.10016fc0
mov eax, edi
xor ecx, ecx
imul eax, esi
xorps xmm1, xmm1
mov dword [ebp - 0x146c], ecx
mov dword [ebp - 0x1468], eax
test edi, edi
jle 0x100064d5
nop
mov dword [ebp - 0x1448], 0
test esi, esi
jle 0x100064c6
mov edi, dword [ebp - 0x1448]
nop dword [eax + eax]
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x146c]
mov ecx, 0xc350
mov eax, dword [eax]
cmp word [eax + edx*2], cx
lea eax, [eax + edx*2]
ja 0x100064a8
push edi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x146c]
mov eax, dword [eax]
cmp word [eax + edx*2], 0
lea eax, [eax + edx*2]
jbe 0x100064a8
push edi
call fcn.10017230
mov edx, dword [ebp - 0x146c]
mov eax, dword [eax]
lea eax, [eax + edx*2]
movzx eax, word [eax]
movd xmm0, eax
mov eax, dword [ebp - 0x1468]
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
jmp 0x100064b5
mov eax, dword [ebp - 0x1468]
dec eax
mov dword [ebp - 0x1468], eax
inc edi
cmp edi, esi
jl 0x10006440
mov edi, dword [ebp - 0x143c]
mov ecx, dword [ebp - 0x146c]
inc ecx
mov dword [ebp - 0x146c], ecx
cmp ecx, edi
jl 0x10006420
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov byte [ebp - 0x1448], 0
push dword [ebp - 0x1448]
divsd xmm1, xmm0
push dword [ebp - 0x1490]
movsd qword [ebp - 0x14c8], xmm1
push dword [ebp - 0x1494]
call fcn.1001a420
mov edi, dword [ebp - 0x14a8]
add esp, 0xc
mov esi, dword [ebp - 0x14ac]
mov byte [ebp - 0x1448], 0
push dword [ebp - 0x1448]
push edi
push esi
call fcn.1001a420
add esp, 0xc
lea ecx, [ebp - 0x159c]
push dword [ebp - 0x1490]
push dword [ebp - 0x1494]
call fcn.10019ec0
push edi
push esi
lea ecx, [ebp - 0x1434]
mov byte [ebp - 4], 0x13
call fcn.10019ec0
mov dword [ebp - 0x1488], 0
mov dword [ebp - 0x1484], 0
mov dword [ebp - 0x1480], 0
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x159c]
mov eax, dword [ecx]
mov dword [ebp - 0x14f0], eax
cmp eax, ecx
je 0x10008099
nop dword [eax]
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov edx, dword [ebp - 0x144c]
mov dword [ebp - 0x1420], esi
lea eax, [esi - 1]
mov dword [ebp - 0x141c], edi
test eax, eax
js 0x10007113
lea eax, [edi - 1]
test eax, eax
js 0x10007113
lea ecx, [esi + 1]
cmp ecx, edx
jge 0x10007113
lea ecx, [edi + 1]
mov dword [ebp - 0x1448], ecx
mov ecx, dword [ebp - 0x143c]
cmp dword [ebp - 0x1448], ecx
jge 0x10007119
lea ecx, [esi - 1]
mov dword [ebp - 0x165c], eax
lea eax, [ebp - 0x1660]
mov dword [ebp - 0x1660], ecx
push eax
lea ecx, [ebp - 0x1434]
call fcn.10016d60
test eax, eax
jne 0x100066b1
lea eax, [esi + 1]
mov dword [ebp - 0x1668], eax
lea ecx, [ebp - 0x1434]
lea eax, [edi + 1]
mov dword [ebp - 0x1664], eax
lea eax, [ebp - 0x1668]
push eax
call fcn.10016d60
test eax, eax
jne 0x100066b1
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edi, dword [eax]
lea eax, [esi - 1]
push eax
call fcn.10017230
mov ecx, dword [ebp - 0x1420]
push ecx
lea ecx, [ebp - 0x142c]
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edx, dword [eax]
lea eax, [ecx + ecx]
lea edx, [edx + ecx*2]
movzx ecx, word [esi + eax - 2]
movzx eax, word [edi + eax + 2]
add ecx, eax
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1670], eax
mov eax, dword [ebp - 0x141c]
shr ecx, 1
mov dword [ebp - 0x166c], eax
lea eax, [ebp - 0x1670]
mov word [edx], cx
lea ecx, [ebp - 0x1434]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
mov dword [ebp - 0x1678], esi
mov dword [ebp - 0x1674], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1678]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006772
lea eax, [edi + 1]
mov dword [ebp - 0x1680], esi
mov dword [ebp - 0x167c], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1680]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006772
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
push esi
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, dword [eax]
call fcn.10017230
movzx ecx, word [esi + edi - 2]
mov eax, dword [eax]
movzx eax, word [edi + eax + 2]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1688], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1684], eax
lea eax, [ebp - 0x1688]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x168c], edi
mov dword [ebp - 0x1690], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1690]
push eax
call fcn.10016d60
test eax, eax
jne 0x1000684c
lea eax, [esi + 1]
mov dword [ebp - 0x1694], edi
mov dword [ebp - 0x1698], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1698]
push eax
call fcn.10016d60
test eax, eax
jne 0x1000684c
lea eax, [esi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + edi]
mov edi, dword [eax]
lea eax, [esi + 1]
add edi, ecx
lea ecx, [ebp - 0x142c]
push eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1420]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edx, dword [eax]
movzx eax, word [esi]
lea edx, [edx + ecx*2]
movzx ecx, word [edi]
add ecx, eax
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x16a0], eax
mov eax, dword [ebp - 0x141c]
shr ecx, 1
mov dword [ebp - 0x169c], eax
lea eax, [ebp - 0x16a0]
mov word [edx], cx
lea ecx, [ebp - 0x1434]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
lea ecx, [esi + 1]
mov dword [ebp - 0x16a4], eax
lea eax, [ebp - 0x16a8]
mov dword [ebp - 0x16a8], ecx
push eax
lea ecx, [ebp - 0x1434]
call fcn.10016d60
test eax, eax
jne 0x10006918
lea eax, [edi + 1]
lea ecx, [esi - 1]
mov dword [ebp - 0x16ac], eax
lea eax, [ebp - 0x16b0]
mov dword [ebp - 0x16b0], ecx
push eax
lea ecx, [ebp - 0x1434]
call fcn.10016d60
test eax, eax
jne 0x10006918
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
lea eax, [esi + 1]
push eax
call fcn.10017230
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
mov eax, dword [eax]
movzx ecx, word [edi + eax + 2]
movzx eax, word [esi + edi - 2]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x16b8], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x16b4], eax
lea eax, [ebp - 0x16b8]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x16bc], edi
mov dword [ebp - 0x16c0], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x16c0]
push eax
call fcn.10016d60
test eax, eax
jne 0x100069da
lea eax, [edi - 1]
mov dword [ebp - 0x16c8], esi
mov dword [ebp - 0x16c4], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x16c8]
push eax
call fcn.10016d60
test eax, eax
jne 0x100069da
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
push esi
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
call fcn.10017230
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
movzx ecx, word [edi + esi - 2]
mov eax, dword [eax]
movzx eax, word [eax + edi]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x16d0], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x16cc], eax
lea eax, [ebp - 0x16d0]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x16d4], edi
mov dword [ebp - 0x16d8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x16d8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006aaa
lea eax, [edi + 1]
mov dword [ebp - 0x16e0], esi
mov dword [ebp - 0x16dc], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x16e0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006aaa
lea eax, [esi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + edi]
push esi
mov edi, dword [eax]
add edi, ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1420]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
movzx ecx, word [edi]
mov dword [ebp - 0x16e4], edx
mov eax, dword [eax]
movzx eax, word [eax + edx*2 + 2]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov dword [ebp - 0x16e8], eax
lea eax, [ebp - 0x16e8]
mov word [esi], cx
lea ecx, [ebp - 0x1434]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
mov dword [ebp - 0x16f0], esi
mov dword [ebp - 0x16ec], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x16f0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006b7a
lea eax, [esi + 1]
mov dword [ebp - 0x16f4], edi
mov dword [ebp - 0x16f8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x16f8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006b7a
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + edi]
push esi
mov edi, dword [eax]
add edi, ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1420]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
movzx ecx, word [edi]
mov dword [ebp - 0x16fc], edx
mov eax, dword [eax]
movzx eax, word [eax + edx*2 - 2]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov dword [ebp - 0x1700], eax
lea eax, [ebp - 0x1700]
mov word [esi], cx
lea ecx, [ebp - 0x1434]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi + 1]
mov dword [ebp - 0x1704], edi
mov dword [ebp - 0x1708], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1708]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006c40
lea eax, [edi + 1]
mov dword [ebp - 0x1710], esi
mov dword [ebp - 0x170c], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1710]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006c40
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push esi
mov edi, dword [eax]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
inc eax
push eax
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
mov dword [ebp - 0x1714], edx
mov eax, dword [eax]
lea ecx, [edx + edx]
movzx ecx, word [edi + ecx + 2]
lea eax, [eax + edx*2]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov dword [ebp - 0x1718], eax
lea eax, [ebp - 0x1718]
mov word [esi], cx
lea ecx, [ebp - 0x1434]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi + 1]
mov dword [ebp - 0x171c], edi
mov dword [ebp - 0x1720], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1720]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006d11
lea eax, [edi + 1]
mov dword [ebp - 0x1728], esi
mov dword [ebp - 0x1724], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1728]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006d11
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edi, dword [eax]
lea eax, [esi + 1]
push eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1420]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edx, dword [eax]
lea eax, [ecx + ecx]
movzx eax, word [eax + edi + 2]
lea edx, [edx + ecx*2]
movzx ecx, word [esi]
add ecx, eax
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1730], eax
mov eax, dword [ebp - 0x141c]
shr ecx, 1
mov dword [ebp - 0x172c], eax
lea eax, [ebp - 0x1730]
mov word [edx], cx
lea ecx, [ebp - 0x1434]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
lea ecx, [esi - 1]
mov dword [ebp - 0x1734], eax
lea eax, [ebp - 0x1738]
mov dword [ebp - 0x1738], ecx
push eax
lea ecx, [ebp - 0x1434]
call fcn.10016d60
test eax, eax
jne 0x10006d90
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
lea ecx, [ebp - 0x1434]
mov eax, dword [eax]
mov ax, word [eax + edi - 2]
mov word [esi + edi], ax
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1740], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x173c], eax
lea eax, [ebp - 0x1740]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
mov dword [ebp - 0x1748], esi
mov dword [ebp - 0x1744], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1748]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006e0a
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
add edi, edi
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [eax]
mov ax, word [esi + edi - 2]
mov word [ecx + edi], ax
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1750], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x174c], eax
lea eax, [ebp - 0x1750]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
lea ecx, [esi + 1]
mov dword [ebp - 0x1754], eax
lea eax, [ebp - 0x1758]
mov dword [ebp - 0x1758], ecx
push eax
lea ecx, [ebp - 0x1434]
call fcn.10016d60
test eax, eax
jne 0x10006e8a
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
add edi, edi
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [eax]
mov ax, word [esi + edi - 2]
mov word [ecx + edi], ax
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1760], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x175c], eax
lea eax, [ebp - 0x1760]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x1764], edi
mov dword [ebp - 0x1768], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1768]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006f06
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea esi, [edi + edi]
mov edi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
lea ecx, [ebp - 0x1434]
mov eax, dword [eax]
mov ax, word [eax + esi]
mov word [edi + esi], ax
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1770], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x176c], eax
lea eax, [ebp - 0x1770]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi + 1]
mov dword [ebp - 0x1774], edi
mov dword [ebp - 0x1778], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1778]
push eax
call fcn.10016d60
test eax, eax
jne 0x10006f83
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
lea esi, [edi + edi]
mov edi, dword [eax]
call fcn.10017230
mov ecx, dword [eax]
mov ax, word [edi + esi]
mov word [ecx + esi], ax
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1780], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x177c], eax
lea eax, [ebp - 0x1780]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi + 1]
lea ecx, [esi - 1]
mov dword [ebp - 0x1784], eax
lea eax, [ebp - 0x1788]
mov dword [ebp - 0x1788], ecx
push eax
lea ecx, [ebp - 0x1434]
call fcn.10016d60
test eax, eax
jne 0x10007003
lea eax, [esi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
add edi, edi
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [eax]
mov ax, word [esi + edi + 2]
mov word [ecx + edi], ax
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1790], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x178c], eax
lea eax, [ebp - 0x1790]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi + 1]
mov dword [ebp - 0x1798], esi
mov dword [ebp - 0x1794], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1798]
push eax
call fcn.10016d60
test eax, eax
jne 0x1000707d
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
add edi, edi
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [eax]
mov ax, word [esi + edi + 2]
mov word [ecx + edi], ax
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x17a0], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x179c], eax
lea eax, [ebp - 0x17a0]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi + 1]
lea ecx, [esi + 1]
mov dword [ebp - 0x17a4], eax
lea eax, [ebp - 0x17a8]
mov dword [ebp - 0x17a8], ecx
push eax
lea ecx, [ebp - 0x1434]
call fcn.10016d60
test eax, eax
jne 0x100070fc
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
inc eax
push eax
call fcn.10017230
lea ecx, [ebp - 0x1434]
mov eax, dword [eax]
mov ax, word [edi + eax + 2]
mov word [esi + edi], ax
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x17b0], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x17ac], eax
lea eax, [ebp - 0x17b0]
push eax
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x17b8], esi
lea eax, [ebp - 0x17b8]
mov dword [ebp - 0x17b4], edi
jmp 0x10008070
mov ecx, dword [ebp - 0x143c]
test esi, esi
jne 0x100073ff
lea eax, [edi - 1]
test eax, eax
js 0x100073ff
lea eax, [edi + 1]
cmp eax, ecx
jge 0x100073ff
mov dword [ebp - 0x17bc], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x17c0]
mov dword [ebp - 0x17c0], esi
push eax
call fcn.10016d60
lea esi, [edi - 1]
test eax, eax
jne 0x100071f0
mov dword [ebp - 0x17c8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x17c8]
mov dword [ebp - 0x17c4], esi
push eax
call fcn.10016d60
test eax, eax
jne 0x100071f0
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
push 0
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
call fcn.10017230
push 0
mov esi, dword [eax]
call fcn.10017230
mov eax, dword [eax]
movzx ecx, word [eax + edi + 2]
movzx eax, word [edi + esi - 2]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x17cc], eax
lea eax, [ebp - 0x17d0]
push eax
mov dword [ebp - 0x17d0], 0
call fcn.10016db0
jmp 0x1000807c
lea eax, [ebp - 0x17d8]
mov dword [ebp - 0x17d8], 1
push eax
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x17d4], edi
call fcn.10016d60
test eax, eax
jne 0x100072b0
mov dword [ebp - 0x17e0], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x17e0]
mov dword [ebp - 0x17dc], esi
push eax
call fcn.10016d60
test eax, eax
jne 0x100072b0
push 1
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + edi]
push 0
mov edi, dword [eax]
add edi, ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 0
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edx, dword [eax]
lea eax, [ecx + ecx]
lea edx, [edx + ecx*2]
movzx ecx, word [eax + esi - 2]
movzx eax, word [edi]
add ecx, eax
mov eax, dword [ebp - 0x141c]
shr ecx, 1
mov word [edx], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x17e4], eax
lea eax, [ebp - 0x17e8]
push eax
mov dword [ebp - 0x17e8], 0
call fcn.10016db0
jmp 0x1000807c
lea eax, [ebp - 0x17f0]
mov dword [ebp - 0x17f0], 1
push eax
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x17ec], edi
call fcn.10016d60
test eax, eax
jne 0x1000736c
mov dword [ebp - 0x17f8], eax
lea ecx, [ebp - 0x1434]
lea eax, [edi + 1]
mov dword [ebp - 0x17f4], eax
lea eax, [ebp - 0x17f8]
push eax
call fcn.10016d60
test eax, eax
jne 0x1000736c
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
push 1
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
call fcn.10017230
push 0
mov esi, dword [eax]
call fcn.10017230
mov eax, dword [eax]
movzx ecx, word [eax + edi + 2]
movzx eax, word [esi + edi]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x17fc], eax
lea eax, [ebp - 0x1800]
push eax
mov dword [ebp - 0x1800], 0
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
mov dword [ebp - 0x1808], 0
mov dword [ebp - 0x1804], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1808]
push eax
call fcn.10016d60
test eax, eax
jne 0x100073e4
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 0
add edi, edi
mov esi, dword [eax]
call fcn.10017230
lea ecx, [ebp - 0x1434]
mov eax, dword [eax]
mov ax, word [eax + edi - 2]
mov word [esi + edi], ax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x180c], eax
lea eax, [ebp - 0x1810]
push eax
mov dword [ebp - 0x1810], 0
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x1818], 0
lea eax, [ebp - 0x1818]
mov dword [ebp - 0x1814], edi
jmp 0x10008070
lea eax, [edx - 1]
cmp esi, eax
jne 0x1000770a
lea eax, [edi - 1]
test eax, eax
js 0x1000770a
lea eax, [edi + 1]
cmp eax, ecx
jge 0x1000770a
mov dword [ebp - 0x181c], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1820]
mov dword [ebp - 0x1820], esi
push eax
call fcn.10016d60
test eax, eax
jne 0x100074e6
lea eax, [edi - 1]
mov dword [ebp - 0x1828], esi
mov dword [ebp - 0x1824], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1828]
push eax
call fcn.10016d60
test eax, eax
jne 0x100074e6
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push esi
mov edi, dword [eax]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1420]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov eax, dword [eax]
lea edx, [ecx + ecx]
movzx ecx, word [edi + edx + 2]
movzx eax, word [edx + eax - 2]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [esi], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x1830], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x182c], eax
lea eax, [ebp - 0x1830]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x1834], edi
mov dword [ebp - 0x1838], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1838]
push eax
call fcn.10016d60
test eax, eax
jne 0x100075a8
lea eax, [edi - 1]
mov dword [ebp - 0x1840], esi
mov dword [ebp - 0x183c], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1840]
push eax
call fcn.10016d60
test eax, eax
jne 0x100075a8
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
push esi
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
call fcn.10017230
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
movzx ecx, word [esi + edi - 2]
mov eax, dword [eax]
movzx eax, word [eax + edi]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1848], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1844], eax
lea eax, [ebp - 0x1848]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x184c], edi
mov dword [ebp - 0x1850], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1850]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007679
lea eax, [edi + 1]
mov dword [ebp - 0x1858], esi
mov dword [ebp - 0x1854], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1858]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007679
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edi, dword [eax]
lea eax, [esi - 1]
push eax
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1420]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov edx, dword [eax]
lea eax, [ecx + ecx]
lea edx, [edx + ecx*2]
movzx ecx, word [edi + eax - 2]
movzx eax, word [esi]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [edx], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x1860], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x185c], eax
lea eax, [ebp - 0x1860]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
mov dword [ebp - 0x1868], esi
mov dword [ebp - 0x1864], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1868]
push eax
call fcn.10016d60
test eax, eax
jne 0x100076f3
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
add edi, edi
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [eax]
mov ax, word [edi + esi - 2]
mov word [ecx + edi], ax
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1870], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x186c], eax
lea eax, [ebp - 0x1870]
push eax
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x1878], esi
lea eax, [ebp - 0x1878]
mov dword [ebp - 0x1874], edi
jmp 0x10008070
lea eax, [ecx - 1]
cmp edi, eax
jne 0x10007a19
test esi, esi
jle 0x10007a19
lea eax, [esi + 1]
mov dword [ebp - 0x1448], eax
cmp eax, edx
jge 0x10007a19
lea eax, [esi - 1]
mov dword [ebp - 0x187c], edi
mov dword [ebp - 0x1880], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1880]
push eax
call fcn.10016d60
test eax, eax
jne 0x100077f0
lea eax, [esi + 1]
mov dword [ebp - 0x1884], edi
mov dword [ebp - 0x1888], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1888]
push eax
call fcn.10016d60
test eax, eax
jne 0x100077f0
lea eax, [esi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
push esi
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1478], eax
call fcn.10017230
push dword [ebp - 0x1448]
mov esi, dword [eax]
call fcn.10017230
mov eax, dword [eax]
movzx ecx, word [eax + edi]
mov eax, dword [ebp - 0x1478]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [esi + edi], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x1890], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x188c], eax
lea eax, [ebp - 0x1890]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
mov dword [ebp - 0x1898], esi
mov dword [ebp - 0x1894], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1898]
push eax
call fcn.10016d60
test eax, eax
jne 0x100078c3
lea eax, [esi - 1]
mov dword [ebp - 0x189c], edi
mov dword [ebp - 0x18a0], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x18a0]
push eax
call fcn.10016d60
test eax, eax
jne 0x100078c3
lea eax, [esi - 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + edi]
push esi
mov edi, dword [eax]
add edi, ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
movzx ecx, word [edi]
mov eax, dword [eax]
lea eax, [eax + edx*2]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [esi], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x18a8], eax
lea eax, [ebp - 0x18a8]
push eax
mov dword [ebp - 0x18a4], edx
call fcn.10016db0
jmp 0x1000807c
lea eax, [edi - 1]
mov dword [ebp - 0x18b0], esi
mov dword [ebp - 0x18ac], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x18b0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007986
lea eax, [esi + 1]
mov dword [ebp - 0x18b4], edi
mov dword [ebp - 0x18b8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x18b8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007986
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
lea eax, [esi + 1]
push eax
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, dword [eax]
call fcn.10017230
mov eax, dword [eax]
movzx ecx, word [edi + eax - 2]
movzx eax, word [esi + edi]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x18c0], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x18bc], eax
lea eax, [ebp - 0x18c0]
push eax
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x18c4], edi
mov dword [ebp - 0x18c8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x18c8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007a02
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea esi, [edi + edi]
mov edi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
lea ecx, [ebp - 0x1434]
mov eax, dword [eax]
mov ax, word [eax + esi]
mov word [edi + esi], ax
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x18d0], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x18cc], eax
lea eax, [ebp - 0x18d0]
push eax
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x18d8], esi
lea eax, [ebp - 0x18d8]
mov dword [ebp - 0x18d4], edi
jmp 0x10008070
test edi, edi
jne 0x10007cd8
test esi, esi
jle 0x10007cda
lea eax, [esi + 1]
cmp eax, edx
jge 0x10007ea1
mov dword [ebp - 0x18e0], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x18e0]
mov dword [ebp - 0x18dc], edi
push eax
call fcn.10016d60
test eax, eax
jne 0x10007ae1
lea eax, [esi - 1]
mov dword [ebp - 0x18e4], edi
mov dword [ebp - 0x18e8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x18e8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007ae1
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push esi
mov edi, dword [eax]
call fcn.10017230
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
movzx ecx, word [edi]
mov eax, dword [eax]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [esi], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x18f0], eax
lea eax, [ebp - 0x18f0]
push eax
mov dword [ebp - 0x18ec], 0
call fcn.10016db0
jmp 0x1000807c
lea eax, [ebp - 0x18f8]
mov dword [ebp - 0x18f8], esi
push eax
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x18f4], 1
call fcn.10016d60
test eax, eax
jne 0x10007b94
lea eax, [esi - 1]
mov dword [ebp - 0x18fc], 0
mov dword [ebp - 0x1900], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1900]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007b94
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
push esi
mov edi, dword [eax]
call fcn.10017230
mov esi, dword [eax]
mov eax, dword [ebp - 0x1420]
dec eax
push eax
call fcn.10017230
movzx ecx, word [esi + 2]
mov eax, dword [eax]
movzx eax, word [eax]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [edi], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x1908], eax
lea eax, [ebp - 0x1908]
push eax
mov dword [ebp - 0x1904], 0
call fcn.10016db0
jmp 0x1000807c
lea eax, [ebp - 0x1910]
mov dword [ebp - 0x1910], esi
push eax
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x190c], 1
call fcn.10016d60
test eax, eax
jne 0x10007c48
lea eax, [esi + 1]
mov dword [ebp - 0x1914], 0
mov dword [ebp - 0x1918], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1918]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007c48
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push esi
mov edi, dword [eax]
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, dword [eax]
call fcn.10017230
movzx ecx, word [edi]
mov eax, dword [eax]
movzx eax, word [eax + 2]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [esi], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x1920], eax
lea eax, [ebp - 0x1920]
push eax
mov dword [ebp - 0x191c], 0
call fcn.10016db0
jmp 0x1000807c
lea eax, [esi - 1]
mov dword [ebp - 0x15a4], 0
mov dword [ebp - 0x15a8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x15a8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007cbd
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edi, dword [ebp - 0x1420]
mov esi, dword [eax]
lea eax, [edi - 1]
push eax
call fcn.10017230
lea ecx, [ebp - 0x1434]
mov eax, dword [eax]
mov ax, word [eax]
mov word [esi], ax
lea eax, [ebp - 0x15b0]
push eax
mov dword [ebp - 0x15b0], edi
mov dword [ebp - 0x15ac], 0
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x15b8], esi
lea eax, [ebp - 0x15b8]
mov dword [ebp - 0x15b4], 0
jmp 0x10008070
test esi, esi
jne 0x10007ea1
test edi, edi
jne 0x10007db1
lea eax, [ebp - 0x15c0]
mov dword [ebp - 0x15c0], edi
push eax
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x15bc], 1
call fcn.10016d60
test eax, eax
jne 0x10007d92
mov dword [ebp - 0x15c4], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x15c8]
mov dword [ebp - 0x15c8], 1
push eax
call fcn.10016d60
test eax, eax
jne 0x10007d92
push 1
lea ecx, [ebp - 0x142c]
call fcn.10017230
push 0
mov edi, dword [eax]
call fcn.10017230
push 0
mov esi, dword [eax]
call fcn.10017230
movzx ecx, word [edi]
mov edx, dword [eax]
movzx eax, word [esi + 2]
add ecx, eax
lea eax, [ebp - 0x15d0]
shr ecx, 1
mov word [edx], cx
lea ecx, [ebp - 0x1434]
push eax
mov dword [ebp - 0x15d0], 0
mov dword [ebp - 0x15cc], 0
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x15d8], 0
lea eax, [ebp - 0x15d8]
mov dword [ebp - 0x15d4], 0
jmp 0x10008070
lea eax, [ecx - 1]
cmp edi, eax
jne 0x10007ea1
lea eax, [ebp - 0x1640]
mov dword [ebp - 0x1640], 1
push eax
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x163c], edi
call fcn.10016d60
test eax, eax
jne 0x10007e86
lea eax, [edi - 1]
mov dword [ebp - 0x15e0], 0
mov dword [ebp - 0x15dc], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x15e0]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007e86
push 1
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + edi]
push 0
mov edi, dword [eax]
add edi, ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push 0
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
movzx ecx, word [edi]
mov eax, dword [eax]
movzx eax, word [eax + edx*2 - 2]
add ecx, eax
lea eax, [ebp - 0x15e8]
shr ecx, 1
mov word [esi], cx
lea ecx, [ebp - 0x1434]
push eax
mov dword [ebp - 0x15e8], 0
mov dword [ebp - 0x15e4], edx
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x15f0], 0
lea eax, [ebp - 0x15f0]
mov dword [ebp - 0x15ec], edi
jmp 0x10008070
lea eax, [edx - 1]
cmp esi, eax
jne 0x1000805e
test edi, edi
jne 0x10007f7f
lea eax, [esi - 1]
mov dword [ebp - 0x15f4], edi
mov dword [ebp - 0x15f8], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x15f8]
push eax
call fcn.10016d60
test eax, eax
jne 0x10007f64
lea eax, [ebp - 0x1600]
mov dword [ebp - 0x1600], esi
push eax
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x15fc], 1
call fcn.10016d60
test eax, eax
jne 0x10007f64
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edi, dword [eax]
lea eax, [esi - 1]
push eax
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, dword [eax]
call fcn.10017230
mov eax, dword [eax]
movzx ecx, word [eax + 2]
movzx eax, word [esi]
add ecx, eax
mov eax, dword [ebp - 0x1420]
shr ecx, 1
mov word [edi], cx
lea ecx, [ebp - 0x1434]
mov dword [ebp - 0x1608], eax
lea eax, [ebp - 0x1608]
push eax
mov dword [ebp - 0x1604], 0
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x1610], esi
lea eax, [ebp - 0x1610]
mov dword [ebp - 0x160c], 0
jmp 0x10008070
lea eax, [ecx - 1]
cmp edi, eax
jne 0x1000805e
lea eax, [esi - 1]
mov dword [ebp - 0x1614], edi
mov dword [ebp - 0x1618], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1618]
push eax
call fcn.10016d60
test eax, eax
jne 0x1000804a
lea eax, [edi - 1]
mov dword [ebp - 0x1620], esi
mov dword [ebp - 0x161c], eax
lea ecx, [ebp - 0x1434]
lea eax, [ebp - 0x1620]
push eax
call fcn.10016d60
test eax, eax
jne 0x1000804a
push esi
lea ecx, [ebp - 0x142c]
call fcn.10017230
add edi, edi
mov eax, dword [eax]
add eax, edi
mov dword [ebp - 0x1448], eax
lea eax, [esi - 1]
push eax
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, dword [eax]
call fcn.10017230
movzx ecx, word [esi + edi]
mov eax, dword [eax]
movzx eax, word [edi + eax - 2]
add ecx, eax
mov eax, dword [ebp - 0x1448]
shr ecx, 1
mov word [eax], cx
lea ecx, [ebp - 0x1434]
mov eax, dword [ebp - 0x1420]
mov dword [ebp - 0x1628], eax
mov eax, dword [ebp - 0x141c]
mov dword [ebp - 0x1624], eax
lea eax, [ebp - 0x1628]
push eax
call fcn.10016db0
jmp 0x1000807c
mov dword [ebp - 0x1630], esi
lea eax, [ebp - 0x1630]
mov dword [ebp - 0x162c], edi
jmp 0x10008070
mov dword [ebp - 0x1638], esi
lea eax, [ebp - 0x1638]
mov dword [ebp - 0x1634], edi
push eax
lea ecx, [ebp - 0x1488]
call fcn.10016f80
lea ecx, [ebp - 0x14f0]
call fcn.10015000
mov eax, dword [ebp - 0x14f0]
cmp eax, dword [ebp - 0x159c]
jne 0x10006590
push dword [ebp - 0x14dc]
lea ecx, [ebp - 0x1458]
push dword [ebp - 0x14e0]
call fcn.1001a440
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x1458]
mov esi, dword [eax]
mov dword [ebp - 0x1440], esi
cmp esi, eax
je 0x10008d1f
mov edi, dword [ebp - 0x143c]
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x1420], ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x1450], eax
lea eax, [ecx + 2]
mov dword [ebp - 0x1464], eax
lea eax, [ecx + 3]
mov dword [ebp - 0x146c], eax
test ecx, ecx
jle 0x100089bb
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x19ec]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x1000835d
mov ecx, dword [ebp - 0x1450]
cmp ecx, dword [eax + 0x10]
jl 0x1000835d
lea eax, [ebp - 0x1464]
push eax
lea eax, [ebp - 0x1aa0]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1000835d
mov eax, dword [ebp - 0x1464]
cmp eax, dword [ecx + 0x10]
jl 0x1000835d
lea eax, [ebp - 0x146c]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014f70
test eax, eax
jne 0x1000835d
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1464], eax
je 0x1000835d
mov dword [ebp - 0x141c], 0
test edi, edi
jle 0x100082f2
mov eax, dword [ebp - 0x1420]
dec eax
mov dword [ebp - 0x1438], eax
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x146c]
add ecx, ecx
mov edi, dword [eax]
add edi, ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1420]
mov esi, dword [eax]
mov eax, dword [ebp - 0x141c]
lea esi, [esi + eax*2]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1438]
mov edx, dword [eax]
movzx eax, word [edi]
lea edx, [edx + ecx*2]
movzx ecx, word [esi]
add ecx, eax
shr ecx, 1
mov word [edx], cx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x146c]
mov edi, dword [eax]
lea edi, [edi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1450]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1438]
mov edx, dword [eax]
movzx eax, word [edi]
lea edx, [edx + ecx*2]
movzx ecx, word [esi]
add ecx, eax
shr ecx, 1
mov word [edx], cx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1464]
mov edi, dword [eax]
lea edi, [edi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x146c]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
mov eax, dword [eax]
movzx ecx, word [eax + edx*2]
lea eax, [eax + edx*2]
movzx eax, word [edi]
inc edx
add ecx, eax
mov dword [ebp - 0x141c], edx
shr ecx, 1
mov word [esi], cx
cmp edx, dword [ebp - 0x143c]
jge 0x100082e6
mov eax, dword [ebp - 0x1438]
jmp 0x100081b2
mov esi, dword [ebp - 0x1440]
mov edi, dword [ebp - 0x143c]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x1924]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x1928]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x192c]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
jmp 0x10008d0d
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b18]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008525
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x10008525
lea eax, [ebp - 0x1464]
push eax
lea eax, [ebp - 0x1b24]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008525
mov eax, dword [ebp - 0x1464]
cmp eax, dword [ecx + 0x10]
jl 0x10008525
lea eax, [ebp - 0x146c]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014f70
test eax, eax
jne 0x10008525
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1464], eax
jne 0x10008525
xor edi, edi
mov dword [ebp - 0x141c], edi
cmp dword [ebp - 0x143c], edi
jle 0x100084b4
mov eax, dword [ebp - 0x1420]
lea ecx, [eax - 1]
mov dword [ebp - 0x1438], ecx
nop word [eax + eax]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
push dword [ebp - 0x1438]
add edi, edi
mov esi, dword [eax]
call fcn.10017230
push dword [ebp - 0x1438]
mov eax, dword [eax]
movzx eax, word [eax + edi]
mov word [esi + edi], ax
call fcn.10017230
push dword [ebp - 0x1450]
mov esi, dword [eax]
call fcn.10017230
mov ecx, dword [eax]
movzx eax, word [esi + edi]
mov word [ecx + edi], ax
lea ecx, [ebp - 0x142c]
push dword [ebp - 0x1464]
call fcn.10017230
push dword [ebp - 0x1438]
mov esi, dword [eax]
call fcn.10017230
mov eax, dword [eax]
movzx eax, word [eax + edi]
mov word [esi + edi], ax
mov edi, dword [ebp - 0x141c]
mov eax, dword [ebp - 0x1420]
inc edi
mov dword [ebp - 0x141c], edi
cmp edi, dword [ebp - 0x143c]
jl 0x10008420
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x1930]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x1934]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x1938]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
mov edi, dword [ebp - 0x143c]
jmp 0x10008d0d
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b30]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100086da
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x100086da
lea eax, [ebp - 0x1464]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014f70
test eax, eax
jne 0x100086da
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1450], eax
je 0x100086da
xor edi, edi
mov dword [ebp - 0x141c], edi
cmp dword [ebp - 0x143c], edi
jle 0x1000868d
mov esi, dword [ebp - 0x1420]
lea eax, [esi - 1]
mov dword [ebp - 0x1438], eax
nop word [eax + eax]
push eax
lea ecx, [ebp - 0x142c]
call fcn.10017230
lea ecx, [edi + edi]
push esi
mov edi, dword [eax]
add edi, ecx
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1464]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
movzx ecx, word [edi]
mov eax, dword [eax]
lea eax, [eax + edx*2]
movzx eax, word [eax]
add ecx, eax
shr ecx, 1
mov word [esi], cx
lea ecx, [ebp - 0x142c]
push dword [ebp - 0x1450]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1464]
mov edi, dword [eax]
lea edi, [edi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov ecx, dword [ebp - 0x141c]
push dword [ebp - 0x1438]
mov esi, dword [eax]
lea esi, [esi + ecx*2]
lea ecx, [ebp - 0x142c]
call fcn.10017230
mov edx, dword [ebp - 0x141c]
mov eax, dword [eax]
movzx ecx, word [eax + edx*2]
lea eax, [eax + edx*2]
movzx eax, word [esi]
add ecx, eax
shr ecx, 1
mov word [edi], cx
mov edi, edx
inc edi
mov dword [ebp - 0x141c], edi
cmp edi, dword [ebp - 0x143c]
jge 0x10008687
mov esi, dword [ebp - 0x1420]
mov eax, dword [ebp - 0x1438]
jmp 0x100085b0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x193c]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
push esi
lea eax, [ebp - 0x1940]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014fc0
mov edi, dword [ebp - 0x143c]
jmp 0x10008d0d
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b3c]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1000880e
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x1000880e
lea eax, [ebp - 0x1464]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014f70
test eax, eax
jne 0x1000880e
mov eax, dword [ebp - 0x144c]
dec eax
cmp dword [ebp - 0x1450], eax
jne 0x1000880e
mov edi, dword [ebp - 0x143c]
xor ecx, ecx
mov dword [ebp - 0x1438], ecx
test edi, edi
jle 0x100087b9
mov eax, dword [ebp - 0x1420]
lea edx, [eax + eax*2]
shl edx, 2
mov dword [ebp - 0x141c], edx
mov eax, dword [ebp - 0x142c]
lea esi, [ecx + ecx]
mov ecx, dword [eax + edx]
mov eax, dword [eax + edx - 0xc]
movzx eax, word [eax + esi]
mov word [ecx + esi], ax
mov eax, dword [ebp - 0x1450]
mov ecx, dword [ebp - 0x142c]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x141c]
mov eax, dword [ecx + eax - 0xc]
mov ecx, dword [ebp - 0x1438]
inc ecx
mov dword [ebp - 0x1438], ecx
movzx eax, word [eax + esi]
mov word [edx + esi], ax
mov edx, dword [ebp - 0x141c]
cmp ecx, edi
jl 0x10008760
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
lea ecx, [ebp - 0x155c]
mov dword [ebp - 0x155c], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1458]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x1560], esi
lea ecx, [ebp - 0x1560]
jmp 0x10008ce4
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1b48]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1000883f
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jge 0x1000890d
mov eax, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x1420]
dec eax
cmp ecx, eax
je 0x1000890d
mov edi, dword [ebp - 0x143c]
xor edx, edx
mov dword [ebp - 0x141c], edx
test edi, edi
jle 0x100088cf
lea esi, [ecx + ecx*2]
shl esi, 2
mov dword [ebp - 0x1438], esi
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x142c]
lea ecx, [edx + edx]
mov edx, dword [ebp - 0x1438]
mov edi, dword [ebp - 0x1438]
mov esi, dword [eax + esi]
mov edx, dword [eax + edx - 0xc]
add esi, ecx
mov eax, dword [eax + edi + 0xc]
add edx, ecx
movzx ecx, word [eax + ecx]
movzx eax, word [edx]
mov edx, dword [ebp - 0x141c]
add ecx, eax
shr ecx, 1
inc edx
mov word [esi], cx
mov esi, edi
mov dword [ebp - 0x141c], edx
cmp edx, dword [ebp - 0x143c]
jl 0x10008880
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
lea ecx, [ebp - 0x1564]
mov dword [ebp - 0x1564], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1458]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov edi, dword [ebp - 0x143c]
add esp, 8
jmp 0x10008d0d
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x19f8]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x1000893e
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jge 0x10008d02
mov eax, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x1420]
dec eax
cmp ecx, eax
jne 0x10008d02
mov edi, dword [ebp - 0x143c]
xor edx, edx
mov dword [ebp - 0x1438], edx
test edi, edi
jle 0x1000899f
lea esi, [ecx + ecx*2]
nop dword [eax + eax]
mov eax, dword [ebp - 0x142c]
lea ecx, [edx + edx]
mov edx, dword [eax + esi*4]
mov eax, dword [eax + esi*4 - 0xc]
mov ax, word [eax + ecx]
mov word [edx + ecx], ax
mov edx, dword [ebp - 0x1438]
inc edx
mov dword [ebp - 0x1438], edx
cmp edx, edi
jl 0x10008970
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
mov dword [ebp - 0x1568], esi
lea ecx, [ebp - 0x1568]
jmp 0x10008ce4
jne 0x10008d02
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1a04]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008b4a
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x10008b4a
lea eax, [ebp - 0x1464]
push eax
lea eax, [ebp - 0x1a10]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008b4a
mov eax, dword [ebp - 0x1464]
cmp eax, dword [ecx + 0x10]
jl 0x10008b4a
lea eax, [ebp - 0x146c]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014f70
test eax, eax
jne 0x10008b4a
mov edi, dword [ebp - 0x143c]
mov dword [ebp - 0x1438], eax
test edi, edi
jle 0x10008abc
lea esi, [eax + eax]
mov eax, dword [ebp - 0x142c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x24]
movzx eax, word [eax + esi]
mov word [ecx + esi], ax
mov ecx, dword [ebp - 0x142c]
mov eax, dword [ebp - 0x1450]
mov edx, dword [ecx + 0x24]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*4]
movzx eax, word [edx + esi]
mov word [ecx + esi], ax
mov eax, dword [ebp - 0x1464]
mov ecx, dword [ebp - 0x142c]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4]
mov eax, dword [ecx + 0x24]
movzx eax, word [eax + esi]
mov word [edx + esi], ax
mov eax, dword [ebp - 0x1438]
inc eax
mov dword [ebp - 0x1438], eax
cmp eax, edi
jl 0x10008a55
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
lea ecx, [ebp - 0x156c]
mov dword [ebp - 0x156c], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1458]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10015000
lea ecx, [ebp - 0x1570]
mov dword [ebp - 0x1570], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1458]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x158c], esi
lea ecx, [ebp - 0x158c]
jmp 0x10008ce4
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1a1c]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008c61
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jl 0x10008c61
lea eax, [ebp - 0x1464]
push eax
lea ecx, [ebp - 0x1458]
call fcn.10014f70
test eax, eax
jne 0x10008c61
mov edi, dword [ebp - 0x143c]
mov dword [ebp - 0x1438], eax
test edi, edi
jle 0x10008c0c
nop dword [eax]
mov ecx, dword [ebp - 0x142c]
lea esi, [eax + eax]
mov eax, dword [ebp - 0x1464]
mov edx, dword [ecx]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*4]
movzx eax, word [eax + esi]
mov word [edx + esi], ax
mov eax, dword [ebp - 0x1450]
mov ecx, dword [ebp - 0x142c]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x1464]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*4]
movzx eax, word [eax + esi]
mov word [edx + esi], ax
mov eax, dword [ebp - 0x1438]
inc eax
mov dword [ebp - 0x1438], eax
cmp eax, edi
jl 0x10008bb0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
lea ecx, [ebp - 0x1588]
mov dword [ebp - 0x1588], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1458]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x1584], esi
lea ecx, [ebp - 0x1584]
jmp 0x10008ce4
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1a28]
push eax
lea ecx, [ebp - 0x1458]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008c8e
mov eax, dword [ebp - 0x1450]
cmp eax, dword [ecx + 0x10]
jge 0x10008d02
mov edi, dword [ebp - 0x143c]
xor eax, eax
mov dword [ebp - 0x1438], eax
test edi, edi
jle 0x10008ccd
lea ecx, [eax + eax]
mov eax, dword [ebp - 0x142c]
mov edx, dword [eax]
mov eax, dword [eax + 0xc]
mov ax, word [eax + ecx]
mov word [edx + ecx], ax
mov eax, dword [ebp - 0x1438]
inc eax
mov dword [ebp - 0x1438], eax
cmp eax, edi
jl 0x10008ca0
mov esi, dword [ebp - 0x1440]
lea ecx, [ebp - 0x1440]
call fcn.10015000
mov dword [ebp - 0x15a0], esi
lea ecx, [ebp - 0x15a0]
call fcn.10015000
push esi
lea ecx, [ebp - 0x1458]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
add esp, 8
jmp 0x10008d0d
lea ecx, [ebp - 0x1440]
call fcn.10015000
mov esi, dword [ebp - 0x1440]
cmp esi, dword [ebp - 0x1458]
jne 0x100080d0
push dword [ebp - 0x149c]
lea ecx, [ebp - 0x1460]
push dword [ebp - 0x14a0]
call fcn.1001a440
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x1460]
mov esi, dword [eax]
mov dword [ebp - 0x1444], esi
cmp esi, eax
je 0x10009731
mov edi, dword [esi + 0x10]
lea eax, [edi + 1]
mov dword [ebp - 0x1470], eax
lea eax, [edi + 2]
mov dword [ebp - 0x1474], eax
lea eax, [edi + 3]
mov dword [ebp - 0x1468], eax
test edi, edi
jle 0x1000940d
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1a34]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x10008f26
lea ecx, [edi + 1]
cmp ecx, dword [eax + 0x10]
jl 0x10008f26
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1a40]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008f26
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jl 0x10008f26
lea eax, [ebp - 0x1468]
push eax
lea eax, [ebp - 0x1a4c]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008e08
lea eax, [edi + 3]
cmp eax, dword [ecx + 0x10]
jge 0x10008f26
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 2]
dec eax
cmp ecx, eax
je 0x10008f26
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x10008e98
xor esi, esi
mov dword [ebp - 0x1438], 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 + 6]
movzx ecx, word [edx + edi*2 - 2]
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 + 6]
movzx eax, word [edx + edi*2 - 2]
add ecx, eax
shr ecx, 1
sub dword [ebp - 0x1438], 1
mov word [edx + edi*2 + 4], cx
jne 0x10008e30
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
lea ecx, [ebp - 0x157c]
mov dword [ebp - 0x157c], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
lea ecx, [ebp - 0x1554]
mov dword [ebp - 0x1554], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x1550], esi
lea ecx, [ebp - 0x1550]
jmp 0x100096f6
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1a58]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100090b7
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jl 0x100090b7
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1a64]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100090b7
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jl 0x100090b7
lea eax, [ebp - 0x1468]
push eax
lea eax, [ebp - 0x1a70]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10008fb8
lea eax, [edi + 3]
cmp eax, dword [ecx + 0x10]
jge 0x100090b7
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 2]
dec eax
cmp ecx, eax
jne 0x100090b7
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x10009029
xor edx, edx
mov esi, eax
nop dword [eax + 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 eax, dword [ebp - 0x142c]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + edi*2 - 2]
mov word [ecx + edi*2 + 4], ax
sub esi, 1
jne 0x10008fe0
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
lea ecx, [ebp - 0x154c]
mov dword [ebp - 0x154c], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
lea ecx, [ebp - 0x1548]
mov dword [ebp - 0x1548], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x1574], esi
lea ecx, [ebp - 0x1574]
jmp 0x100096f6
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100091e0
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jl 0x100091e0
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1a88]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009117
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jge 0x100091e0
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 1]
dec eax
cmp ecx, eax
je 0x100091e0
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x1000918b
xor esi, esi
mov dword [ebp - 0x1438], 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 + 4]
movzx ecx, word [edx + edi*2 - 2]
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 - 2]
movzx eax, word [edx + edi*2 + 4]
add ecx, eax
shr ecx, 1
sub dword [ebp - 0x1438], 1
mov word [edx + edi*2 + 2], cx
jne 0x10009140
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
lea ecx, [ebp - 0x1578]
mov dword [ebp - 0x1578], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x1508], esi
lea ecx, [ebp - 0x1508]
jmp 0x100096f6
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1a94]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100092ea
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jl 0x100092ea
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1b0c]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009240
lea eax, [edi + 2]
cmp eax, dword [ecx + 0x10]
jge 0x100092ea
mov eax, dword [ebp - 0x143c]
lea ecx, [edi + 1]
dec eax
cmp ecx, eax
jne 0x100092ea
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x10009295
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 0x10009260
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
lea ecx, [ebp - 0x150c]
mov dword [ebp - 0x150c], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x1510], esi
lea ecx, [ebp - 0x1510]
jmp 0x100096f6
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1aac]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009314
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jge 0x1000937b
mov eax, dword [ebp - 0x143c]
dec eax
cmp edi, eax
je 0x1000937b
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x1000935f
xor esi, esi
mov dword [ebp - 0x1438], 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 - 0x1438], 1
mov word [edx + edi*2], cx
jne 0x10009331
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
mov dword [ebp - 0x1514], esi
lea ecx, [ebp - 0x1514]
jmp 0x100096f6
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1ab8]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100093a9
lea eax, [edi + 1]
cmp eax, dword [ecx + 0x10]
jge 0x10009714
mov eax, dword [ebp - 0x143c]
dec eax
cmp edi, eax
jne 0x10009714
mov eax, dword [ebp - 0x144c]
test eax, eax
jle 0x100093f1
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 0x100093d0
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
mov dword [ebp - 0x1518], esi
lea ecx, [ebp - 0x1518]
jmp 0x100096f6
jne 0x10009714
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1ac4]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov edi, dword [ebp - 0x1470]
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x10009591
cmp edi, dword [eax + 0x10]
jl 0x10009591
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1ad0]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10009591
mov eax, dword [ebp - 0x1474]
cmp eax, dword [ecx + 0x10]
jl 0x10009591
lea eax, [ebp - 0x1468]
push eax
lea eax, [ebp - 0x1adc]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100094ae
mov eax, dword [ebp - 0x1468]
cmp eax, dword [ecx + 0x10]
jge 0x10009591
mov edi, dword [ebp - 0x144c]
test edi, edi
jle 0x10009503
xor edx, edx
nop word [eax + eax]
mov eax, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + 6]
mov word [ecx], ax
mov eax, dword [ebp - 0x142c]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + 6]
mov word [ecx + 2], ax
mov eax, dword [ebp - 0x142c]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + 6]
mov word [ecx + 4], ax
sub edi, 1
jne 0x100094c0
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
lea ecx, [ebp - 0x151c]
mov dword [ebp - 0x151c], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
lea ecx, [ebp - 0x1520]
mov dword [ebp - 0x1520], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x1524], esi
lea ecx, [ebp - 0x1524]
jmp 0x100096f6
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1ae8]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x10009683
cmp edi, dword [eax + 0x10]
jl 0x10009683
lea eax, [ebp - 0x1474]
push eax
lea eax, [ebp - 0x1af4]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x100095f1
mov eax, dword [ebp - 0x1474]
cmp eax, dword [ecx + 0x10]
jge 0x10009683
mov edi, dword [ebp - 0x144c]
test edi, edi
jle 0x10009631
xor edx, edx
nop dword [eax]
mov eax, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + 4]
mov word [ecx], ax
mov eax, dword [ebp - 0x142c]
mov ecx, dword [eax + edx - 0xc]
movzx eax, word [ecx + 4]
mov word [ecx + 2], ax
sub edi, 1
jne 0x10009600
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
lea ecx, [ebp - 0x1528]
mov dword [ebp - 0x1528], esi
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
add esp, 8
call fcn.10015000
mov dword [ebp - 0x152c], esi
lea ecx, [ebp - 0x152c]
jmp 0x100096f6
lea eax, [ebp - 0x1470]
push eax
lea eax, [ebp - 0x1b00]
push eax
lea ecx, [ebp - 0x1460]
call fcn.1001a770
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
jne 0x100096aa
cmp edi, dword [eax + 0x10]
jge 0x10009714
mov edi, dword [ebp - 0x144c]
test edi, edi
jle 0x100096df
xor edx, edx
nop word [eax + eax]
mov eax, dword [ebp - 0x142c]
lea edx, [edx + 0xc]
mov ecx, dword [eax + edx - 0xc]
mov ax, word [ecx + 2]
mov word [ecx], ax
sub edi, 1
jne 0x100096c0
mov esi, dword [ebp - 0x1444]
lea ecx, [ebp - 0x1444]
call fcn.10015000
mov dword [ebp - 0x1580], esi
lea ecx, [ebp - 0x1580]
call fcn.10015000
push esi
lea ecx, [ebp - 0x1460]
call fcn.10019470
push 0x14
push eax
call fcn.10022c96
add esp, 8
jmp 0x1000971f
lea ecx, [ebp - 0x1444]
call fcn.10015000
mov esi, dword [ebp - 0x1444]
cmp esi, dword [ebp - 0x1460]
jne 0x10008d50
mov esi, dword [ebp - 0x143c]
mov dword [ebp - 0x14b8], 0
mov dword [ebp - 0x14b4], 0
mov dword [ebp - 0x14b0], 0
test esi, esi
je 0x1000978d
push esi
lea ecx, [ebp - 0x14b8]
call fcn.1001d420
lea edi, [esi*8]
mov esi, dword [ebp - 0x14b8]
push edi
push 0
push esi
call fcn.10025660
lea eax, [esi + edi]
add esp, 0xc
mov esi, dword [ebp - 0x143c]
mov dword [ebp - 0x14b4], eax
mov edi, dword [ebp - 0x144c]
lea eax, [ebp - 0x14b8]
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 - 0x14b8]
test ecx, ecx
je 0x10009811
mov eax, dword [ebp - 0x14b0]
sub eax, ecx
sar eax, 3
lea edx, [eax*8]
mov eax, ecx
cmp edx, 0x1000
jb 0x100097e9
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push edx
push ecx
call fcn.10022c96
add esp, 8
mov dword [ebp - 0x14b8], 0
mov dword [ebp - 0x14b4], 0
mov dword [ebp - 0x14b0], 0
push dword [ebp - 0x14e8]
lea ecx, [ebp - 0x1594]
push dword [ebp - 0x14ec]
call fcn.10019ec0
mov byte [ebp - 4], 0x1b
call fcn.10024309
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 0x10009846
cmp dword [ebp - 0x147c], 0xe
movsd xmm3, qword [ebp - 0x14c8]
movsd xmm2, qword [0x10050270]
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 - 0x1448], edx
jne 0x100098b7
addsd xmm1, qword [0x10050290]
divsd xmm1, xmm2
cvttsd2si edx, xmm1
mov dword [ebp - 0x1448], edx
mov ecx, dword [ebp - 0x1594]
mov eax, edx
neg eax
mov dword [ebp - 0x1534], eax
mov eax, dword [ecx]
mov dword [ebp - 0x14f4], eax
cmp eax, ecx
je 0x10009aaa
nop word [eax + eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov edi, dword [ebp - 0x142c]
mov dword [ebp - 0x14c0], ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x1420], eax
lea esi, [eax + eax]
mov dword [ebp - 0x1540], ecx
mov eax, dword [edi + ecx*4]
mov dword [ebp - 0x1478], eax
mov dword [ebp - 0x14c4], edi
mov dword [ebp - 0x141c], esi
movzx eax, word [eax + esi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm3
jb 0x100099d7
mov ecx, dword [ebp - 0x1534]
mov esi, 0x80000000
cmp ecx, 0x80000000
lea eax, [ecx - 0x80000000]
lea edi, [ecx - 0x80000000]
cmovae edi, eax
lea ecx, [ebp - 0x1418]
sub esi, edi
mov dword [ebp - 0x1438], edi
cmp esi, 0xffffffff
jne 0x1000996b
call fcn.10020d00
mov ecx, eax
jmp 0x100099aa
inc esi
call fcn.10020d00
mul esi
mov dword [ebp - 0x14bc], eax
mov ecx, edx
cmp eax, esi
jae 0x100099aa
mov eax, esi
xor edx, edx
neg eax
div esi
mov edi, edx
cmp dword [ebp - 0x14bc], edi
jae 0x100099a4
lea ecx, [ebp - 0x1418]
call fcn.10020d00
mul esi
mov ecx, edx
cmp eax, edi
jb 0x10009991
mov edi, dword [ebp - 0x1438]
mov eax, dword [ebp - 0x14c0]
lea edx, [ecx + edi]
mov esi, dword [ebp - 0x141c]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x142c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1420]
mov ax, word [eax + ecx*2]
add ax, dx
jmp 0x10009a6e
mov eax, edx
cmp edx, 0x80000000
jb 0x100099f5
cmp eax, 0xffffffff
jne 0x100099f5
lea ecx, [ebp - 0x1418]
call fcn.10020d00
mov edi, eax
jmp 0x10009a52
inc eax
lea ecx, [ebp - 0x1418]
mov dword [ebp - 0x1438], eax
call fcn.10020d00
mov ecx, dword [ebp - 0x1438]
mul ecx
mov dword [ebp - 0x14c0], eax
mov edi, edx
cmp eax, ecx
jae 0x10009a52
mov eax, ecx
xor edx, edx
neg eax
div ecx
mov eax, edx
mov dword [ebp - 0x14bc], eax
cmp dword [ebp - 0x14c0], eax
jae 0x10009a52
mov esi, ecx
lea ecx, [ebp - 0x1418]
call fcn.10020d00
mul esi
mov edi, edx
cmp eax, dword [ebp - 0x14bc]
jb 0x10009a35
mov esi, dword [ebp - 0x141c]
mov ecx, dword [ebp - 0x14c4]
mov eax, dword [ebp - 0x1540]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x1420]
mov ax, word [eax + ecx*2]
add ax, di
movzx ecx, ax
mov eax, dword [ebp - 0x1478]
mov word [esi + eax], cx
lea ecx, [ebp - 0x14f4]
call fcn.10015000
mov eax, dword [ebp - 0x14f4]
mov edx, dword [ebp - 0x1448]
cmp eax, dword [ebp - 0x1594]
jne 0x100098e0
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
cmp edi, 0x71f
je 0x10009abe
cmp edi, 0x4ee
jne 0x10009ca8
mov dword [ebp - 0x14d4], 0
mov dword [ebp - 0x14d0], 0
mov dword [ebp - 0x14cc], 0
test esi, esi
je 0x10009b1a
push esi
lea ecx, [ebp - 0x14d4]
call fcn.1001d420
lea edi, [esi*8]
mov esi, dword [ebp - 0x14d4]
push edi
push 0
push esi
call fcn.10025660
lea eax, [esi + edi]
add esp, 0xc
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
mov dword [ebp - 0x14d0], eax
push ecx
lea eax, [ebp - 0x14d4]
mov byte [ebp - 4], 0x1c
push eax
push edi
lea ecx, [ebp - 0x1504]
call fcn.100170c0
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x14d4]
test edx, edx
je 0x10009b91
mov ecx, dword [ebp - 0x14cc]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x10009b69
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a12f
push ecx
push edx
call fcn.10022c96
add esp, 8
mov dword [ebp - 0x14d4], 0
mov dword [ebp - 0x14d0], 0
mov dword [ebp - 0x14cc], 0
push 5
lea edx, [ebp - 0x142c]
lea ecx, [ebp - 0x19bc]
call fcn.10004790
lea ecx, [ebp - 0x1504]
mov dword [ebp - 0x14c4], eax
add esp, 4
cmp ecx, eax
je 0x10009bf0
call fcn.10018cd0
mov edx, dword [ebp - 0x14c4]
mov ecx, dword [edx]
mov dword [ebp - 0x1504], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x1500], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x14fc], eax
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
lea ecx, [ebp - 0x19bc]
call fcn.10018cd0
xor edx, edx
test esi, esi
jle 0x10009c9d
movsd xmm2, qword [0x10050300]
movsd xmm3, qword [0x100502a8]
test edi, edi
jle 0x10009c94
xor ecx, ecx
mov dword [ebp - 0x1478], edi
mov esi, edi
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x142c]
mov eax, dword [eax + ecx]
mov dword [ebp - 0x1448], eax
mov eax, dword [ebp - 0x1504]
mov eax, dword [eax + ecx]
movsd xmm1, qword [eax + edx*8]
mov eax, dword [ebp - 0x1448]
movzx eax, word [eax + edx*2]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
andps xmm0, xmm2
comisd xmm0, xmm3
jbe 0x10009c80
mov esi, dword [ebp - 0x1448]
cvttsd2si eax, xmm1
mov word [esi + edx*2], ax
mov esi, dword [ebp - 0x1478]
add ecx, 0xc
sub esi, 1
mov dword [ebp - 0x1478], esi
jne 0x10009c30
mov esi, dword [ebp - 0x143c]
inc edx
cmp edx, esi
jl 0x10009c15
lea ecx, [ebp - 0x1504]
call fcn.10018cd0
mov eax, esi
xor ecx, ecx
imul eax, edi
cmp eax, 0x2863c0
jne 0x10009cc2
mov dword [ebp - 0x141c], 0x8c
jmp 0x10009d3a
mov eax, esi
imul eax, edi
cmp eax, 0x8c3020
jne 0x10009cda
mov dword [ebp - 0x141c], 0x8c
jmp 0x10009d3a
mov eax, esi
imul eax, edi
cmp eax, 0x230ac0
jne 0x10009cf2
mov dword [ebp - 0x141c], 0xd8
jmp 0x10009d3a
mov eax, esi
imul eax, edi
cmp eax, 0x230c08
jne 0x10009d0a
mov dword [ebp - 0x141c], 0x46
jmp 0x10009d3a
mov eax, esi
imul eax, edi
cmp eax, 0x15cb608
jne 0x10009d22
mov dword [ebp - 0x141c], 0x8c
jmp 0x10009d3a
mov eax, esi
mov edx, 0x46
imul eax, edi
cmp eax, 0x572d82
cmove ecx, edx
mov dword [ebp - 0x141c], ecx
cmp dword [ebp - 0x147c], 0xc
jne 0x10009d87
test edi, edi
jle 0x10009d87
xor edx, edx
mov dword [ebp - 0x147c], edi
mov eax, edi
xor ecx, ecx
test esi, esi
jle 0x10009d79
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 0x10009d60
mov eax, dword [ebp - 0x147c]
add edx, 0xc
sub eax, 1
mov dword [ebp - 0x147c], eax
jne 0x10009d51
mov edx, esi
xor eax, eax
sub edx, dword [ebp - 0x141c]
cmp edx, esi
jge 0x10009e49
lea esi, [edi + edi*2]
mov ecx, edi
shl esi, 2
mov dword [ebp - 0x1438], esi
mov esi, dword [ebp - 0x143c]
nop dword [eax]
sub dword [ebp - 0x1438], 0xc
inc eax
dec ecx
mov dword [ebp - 0x14c4], eax
mov dword [ebp - 0x141c], ecx
test eax, eax
jle 0x10009dfa
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 0x10009dd0
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x141c]
cmp ecx, edi
jge 0x10009e3a
mov ecx, dword [ebp - 0x1438]
mov esi, edi
sub esi, dword [ebp - 0x141c]
nop dword [eax]
mov eax, dword [ebp - 0x142c]
lea ecx, [ecx + 0xc]
xor edi, edi
mov eax, dword [ecx + eax - 0xc]
mov word [eax + edx*2], di
sub esi, 1
jne 0x10009e10
mov esi, dword [ebp - 0x143c]
mov edi, dword [ebp - 0x144c]
mov ecx, dword [ebp - 0x141c]
mov eax, dword [ebp - 0x14c4]
inc edx
cmp edx, esi
jl 0x10009db0
mov ecx, dword [ebp - 0x14f8]
lea edx, [ebp - 0x142c]
push esi
push edi
call fcn.10004ad0
add esp, 8
lea ecx, [ebp - 0x1594]
call fcn.10004590
lea ecx, [ebp - 0x19c8]
call fcn.10018cd0
lea ecx, [ebp - 0x1460]
call fcn.1000a2e0
lea ecx, [ebp - 0x1458]
call fcn.1000a2e0
mov edx, dword [ebp - 0x1488]
test edx, edx
je 0x10009ee6
mov ecx, dword [ebp - 0x1480]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x10009ebe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push ecx
push edx
call fcn.10022c96
add esp, 8
mov dword [ebp - 0x1488], 0
mov dword [ebp - 0x1484], 0
mov dword [ebp - 0x1480], 0
lea ecx, [ebp - 0x1434]
call fcn.10004590
lea ecx, [ebp - 0x159c]
call fcn.10004590
mov edx, dword [ebp - 0x14ec]
test edx, edx
je 0x10009f57
mov ecx, dword [ebp - 0x14e4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x10009f2f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push ecx
push edx
call fcn.10022c96
add esp, 8
mov dword [ebp - 0x14ec], 0
mov dword [ebp - 0x14e8], 0
mov dword [ebp - 0x14e4], 0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x10009f8b
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10009f81
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push ecx
push edx
call fcn.10022c96
add esp, 8
mov eax, dword [ebp - 0x14ac]
mov edi, dword [ebp - 0x1494]
mov esi, dword [ebp - 0x14a4]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x1448], eax
lea ecx, [ebp - 0x1c00]
call fcn.1000a140
lea ecx, [ebp - 0x142c]
call fcn.10017310
mov ecx, dword [ebp - 0x1448]
test ecx, ecx
je 0x1000a026
sub esi, ecx
mov eax, ecx
and esi, 0xfffffff8
cmp esi, 0x1000
jb 0x10009ff8
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push esi
push ecx
call fcn.10022c96
mov edi, dword [ebp - 0x1494]
add esp, 8
mov dword [ebp - 0x14ac], 0
mov dword [ebp - 0x14a8], 0
mov dword [ebp - 0x14a4], 0
test edi, edi
je 0x1000a07b
mov ecx, dword [ebp - 0x148c]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1000a053
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push ecx
push edi
call fcn.10022c96
add esp, 8
mov dword [ebp - 0x1494], 0
mov dword [ebp - 0x1490], 0
mov dword [ebp - 0x148c], 0
mov edx, dword [ebp - 0x14a0]
test edx, edx
je 0x1000a0d6
mov ecx, dword [ebp - 0x1498]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1000a0ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push ecx
push edx
call fcn.10022c96
add esp, 8
mov dword [ebp - 0x14a0], 0
mov dword [ebp - 0x149c], 0
mov dword [ebp - 0x1498], 0
mov edx, dword [ebp - 0x14e0]
test edx, edx
je 0x1000a10f
mov ecx, dword [ebp - 0x14d8]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1000a105
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000a134
push ecx
push edx
call fcn.10022c96
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.1002294b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1002889a
call fcn.1002889a
int3