Function at 0x101688a0
Capabilities:
Encrypt data using rc4 ksa

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 0x101ffaf1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x168
mov eax, dword [0x103b9004]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x138], eax
cmp dword [eax + 0x18], 1
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov esi, dword [ebx + 0x1c]
mov dword [ebp - 0x14c], ecx
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x15c], ecx
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x16c], edi
mov dword [ebp - 0x3c], ecx
je 0x1016896e
test cl, 4
jne 0x1016895a
mov ecx, dword [eax + 0x2c]
movss xmm0, dword [ebx + 0x18]
push 0
push 0
push dword [ebx + 0x20]
mov eax, dword [ecx]
push ecx
movss dword [esp], xmm0
push esi
push dword [ebp - 0x15c]
mov eax, dword [eax + 0x60]
push dword [ebp - 0x14c]
push edi
push edx
call eax
test eax, eax
je 0x1016895a
mov eax, 1
jmp 0x1016bc84
mov eax, dword [ebx + 0x20]
shr eax, 0x18
cmp eax, 0xff
jae 0x101689a2
xor eax, eax
jmp 0x1016bc84
test cl, 8
jne 0x101689a2
mov ecx, dword [eax + 0x2c]
movss xmm0, dword [ebx + 0x18]
push 0
push 0
push dword [ebx + 0x20]
mov eax, dword [ecx]
push ecx
movss dword [esp], xmm0
push esi
push dword [ebp - 0x15c]
mov eax, dword [eax + 0x60]
push dword [ebp - 0x14c]
push edi
push edx
call eax
test eax, eax
jne 0x10168950
mov dword [ebp - 0x60], 0x3f800000
mov dword [ebp - 0x6c], 0x3f800000
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x78], 0x3f800000
mov dword [ebp - 0x84], 0x3f800000
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x48], 0x3f800000
mov dword [ebp - 0x54], 0x3f800000
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
test esi, esi
je 0x10168a49
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x5c], xmm0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x54], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x44], xmm0
movss xmm2, dword [ebx + 0x18]
lea ecx, [ebp - 0x6c]
xorps xmm2, xmmword [0x103a6b60]
movss xmm1, dword [ebx + 0x18]
push 0
call fcn.1008e000
movss xmm0, dword [ebp - 0x68]
call fcn.10002550
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x6c]
call fcn.10002550
movss xmm1, dword [ebp - 0x18]
addss xmm1, xmm0
comiss xmm1, dword [0x103a662c]
ja 0x10168ab3
mov edx, dword [ebp - 0x138]
cmp dword [edx + 0x18], 2
jne 0x10168ad8
mov ecx, dword [edx + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
test eax, eax
jne 0x10168ad2
mov edx, dword [ebx + 0x24]
test dl, 0x10
jne 0x10168ad2
jmp 0x10168ab6
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebp - 0x14c]
cmp dword [ecx], 0
jne 0x1016bc47
mov eax, dword [ecx + 4]
test byte [eax + 0xc], 4
jne 0x1016bc47
mov edx, dword [ebp - 0x138]
mov eax, dword [ebx + 0x24]
mov esi, dword [ebp - 0x14c]
mov dword [ebp - 0x148], 2
mov dword [ebp - 0x13c], 0
test al, 0x20
jne 0x10168b5d
cmp dword [edx + 0x18], 1
jne 0x10168b5d
mov ecx, dword [edx + 0x10]
cmp ecx, 1
jle 0x10168b5d
cmp dword [esi], 0
jne 0x10168b1c
mov eax, dword [esi + 4]
test byte [eax + 0xc], 8
jne 0x10168b19
xor eax, eax
jmp 0x10168b1f
mov eax, dword [ebx + 0x24]
and eax, 1
test dword [edx + 0x14], 0x240
je 0x10168b34
mov dword [ebp - 0x148], 3
jmp 0x10168b53
cmp ecx, 0x10
jge 0x10168b45
mov dword [ebp - 0x148], 0
jmp 0x10168b5d
mov dword [ebp - 0x148], 3
test eax, eax
jne 0x10168b5d
mov dword [ebp - 0x13c], 1
mov edi, dword [ebp - 0x15c]
test edi, edi
jne 0x10168b7a
mov ecx, dword [0x103bf3d8]
call fcn.100d1280
mov edi, eax
mov dword [ebp - 0x15c], edi
push esi
mov ecx, edi
call fcn.1016c0a0
xorps xmm0, xmm0
mov dword [ebp - 0x158], eax
movlpd qword [ebp - 0xb4], xmm0
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xb0], esi
mov edi, dword [ebp - 0x150]
mov edx, 0x14
push 0
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.10086a70
mov esi, eax
add esp, 4
mov dword [ebp - 0x12c], esi
test esi, esi
je 0x1016bc2b
movups xmm0, xmmword [ebp - 0x6c]
mov ecx, dword [ebp - 0x138]
lea edx, [ebp - 0xcc]
push edx
movups xmmword [ebp - 0x84], xmm0
mov ecx, dword [ecx + 0x2c]
movq xmm0, qword [ebp - 0x5c]
movq qword [ebp - 0x74], xmm0
mov eax, dword [ecx]
call dword [eax + 0x10]
movss xmm0, dword [ebp - 0xcc]
call fcn.10002550
movss dword [ebp - 0x140], xmm0
movss xmm0, dword [ebp - 0xc0]
call fcn.10002550
movss xmm1, dword [ebp - 0x140]
lea ecx, [ebp - 0x84]
push 0
sub esp, 0xc
movss dword [ebp - 0x130], xmm0
xorps xmm3, xmm3
xorps xmm2, xmm2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
call fcn.1008dc90
movss xmm4, dword [ebp - 0x130]
lea ecx, [ebp - 0x54]
movss xmm1, dword [ebp - 0x140]
xorps xmm3, xmm3
push 0
sub esp, 0xc
xorps xmm2, xmm2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm4
call fcn.1008dc90
movss xmm4, dword [0x103a6180]
test edi, edi
jle 0x10168e40
mov eax, dword [ebp - 0x150]
lea edi, [esi + 0xc]
mov esi, dword [ebp - 0x16c]
add esi, 8
mov dword [ebp - 0x154], eax
nop dword [eax]
nop dword [eax + eax]
movss xmm1, dword [esi - 4]
mov ecx, dword [ebp - 0x148]
movaps xmm3, xmm1
movss dword [edi], xmm1
movss xmm2, dword [esi]
movss dword [edi + 4], xmm2
movaps xmm0, xmm2
mulss xmm3, dword [ebp - 0x54]
mulss xmm2, dword [ebp - 0x48]
mulss xmm0, dword [ebp - 0x4c]
mulss xmm1, dword [ebp - 0x50]
addss xmm3, xmm0
addss xmm2, xmm1
addss xmm3, dword [ebp - 0x44]
addss xmm2, dword [ebp - 0x40]
movss dword [edi], xmm3
movss dword [edi + 4], xmm2
cmp ecx, 3
jae 0x10168d34
xorps xmm0, xmm0
comiss xmm3, xmm0
jb 0x10168d2a
addss xmm3, xmm4
cvttss2si eax, xmm3
test eax, eax
jns 0x10168d56
neg eax
jmp 0x10168d56
subss xmm3, xmm4
cvttss2si eax, xmm3
jmp 0x10168d56
movaps xmm0, xmm3
call fcn.10014c30
movss xmm2, dword [edi + 4]
movss xmm4, dword [0x103a6180]
mov ecx, dword [ebp - 0x148]
cvttss2si eax, xmm0
xorps xmm0, xmm0
comiss xmm2, xmm0
mov dword [edi - 8], eax
jb 0x10168d6e
addss xmm2, xmm4
cvttss2si eax, xmm2
test eax, eax
jns 0x10168d76
neg eax
jmp 0x10168d76
subss xmm2, xmm4
cvttss2si eax, xmm2
mov dword [edi - 4], eax
cmp dword [esi + 8], 0
je 0x10168df0
movss xmm0, dword [esi + 0xc]
lea eax, [ebp - 0x84]
movss xmm1, dword [esi + 0x10]
lea edx, [ebp - 0x9c]
movss xmm2, dword [esi + 0x14]
mov ecx, edx
movss xmm3, dword [esi + 0x18]
push eax
movss dword [ebp - 0x9c], xmm0
movss dword [ebp - 0x98], xmm1
movss dword [ebp - 0x94], xmm2
movss dword [ebp - 0x90], xmm3
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
call fcn.1008dbb0
add esp, 4
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x148]
lea eax, [ebp - 0x9c]
jmp 0x10168dfb
lea eax, [ebp - 0x3c]
push eax
push ecx
lea eax, [ebp - 0x84]
push dword [esi + 4]
mov ecx, dword [ebp - 0x158]
push eax
push dword [esi + 0x20]
push dword [esi - 8]
push dword [ebp - 0x14c]
call fcn.1016c750
movss xmm4, dword [0x103a6180]
add esi, 0x2c
mov dword [edi - 0xc], eax
add edi, 0x14
sub dword [ebp - 0x154], 1
jne 0x10168cc0
mov esi, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x150]
mov eax, dword [ebp - 0x148]
cmp eax, 3
jae 0x10168e5f
cmp edi, 1
jle 0x10168e5f
mov edx, edi
mov ecx, esi
call fcn.10168630
mov eax, dword [ebp - 0x148]
sub esp, 8
lea ecx, [ebp - 0x38]
mov edx, esi
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
push eax
push edi
call fcn.10168550
movss xmm3, dword [ebp - 0x140]
add esp, 0x10
movss xmm0, dword [0x103a625c]
comiss xmm3, xmm0
movss xmm4, dword [ebp - 0x130]
jbe 0x10168ebc
comiss xmm4, xmm0
jbe 0x10168ebc
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
dec edi
mov eax, dword [ebp - 0x2c]
inc ecx
dec dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], eax
jmp 0x10168ec5
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
movd xmm2, eax
xorps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movss xmm0, dword [0x103a6180]
divss xmm2, xmm4
comiss xmm2, xmm1
jb 0x10168ef0
addss xmm2, xmm0
cvttss2si esi, xmm2
test esi, esi
jns 0x10168ef8
neg esi
jmp 0x10168ef8
subss xmm2, xmm0
cvttss2si esi, xmm2
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
divss xmm2, xmm3
comiss xmm2, xmm1
jb 0x10168f18
addss xmm2, xmm0
cvttss2si edx, xmm2
test edx, edx
jns 0x10168f20
neg edx
jmp 0x10168f20
subss xmm2, xmm0
cvttss2si edx, xmm2
movd xmm2, edi
cvtdq2ps xmm2, xmm2
divss xmm2, xmm4
comiss xmm2, xmm1
jb 0x10168f40
addss xmm2, xmm0
cvttss2si ecx, xmm2
test ecx, ecx
jns 0x10168f48
neg ecx
jmp 0x10168f48
subss xmm2, xmm0
cvttss2si ecx, xmm2
movd xmm2, dword [ebp - 0x38]
cvtdq2ps xmm2, xmm2
divss xmm2, xmm3
comiss xmm2, xmm1
jb 0x10168f69
addss xmm2, xmm0
cvttss2si eax, xmm2
test eax, eax
jns 0x10168f71
neg eax
jmp 0x10168f71
subss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x138]
add eax, 0x1c
mov dword [ebp - 0x24], ecx
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], esi
call fcn.1008d4c0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x28]
cmp eax, edx
jle 0x1016bc17
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
cmp ecx, edi
jle 0x1016bc17
movss xmm3, dword [ebp - 0x140]
sub eax, edx
movss xmm0, dword [0x103a6180]
xorps xmm1, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm3
comiss xmm2, xmm1
jb 0x10168fe6
addss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [ebp - 0x160], eax
test eax, eax
jns 0x10168ff4
neg eax
jmp 0x10168fee
subss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [ebp - 0x160], eax
movss xmm4, dword [ebp - 0x130]
sub ecx, edi
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm4
comiss xmm2, xmm1
jb 0x1016901e
addss xmm2, xmm0
cvttss2si esi, xmm2
test esi, esi
jns 0x10169026
neg esi
jmp 0x10169026
subss xmm2, xmm0
cvttss2si esi, xmm2
movd xmm2, edx
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm3
comiss xmm2, xmm1
jb 0x1016904c
addss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [ebp - 0x164], eax
test eax, eax
jns 0x1016905a
neg eax
jmp 0x10169054
subss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [ebp - 0x164], eax
movd xmm2, edi
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm4
comiss xmm2, xmm1
jb 0x10169080
addss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [ebp - 0x168], eax
test eax, eax
jns 0x1016908e
neg eax
jmp 0x10169088
subss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [ebp - 0x168], eax
mov edi, dword [ebp - 0x148]
xorps xmm0, xmm0
cmp edi, 2
jne 0x101691bb
lea ecx, [ebp - 0xac]
movq qword [ebp - 0x8c], xmm0
movups xmmword [ebp - 0xac], xmm0
movups xmmword [ebp - 0x9c], xmm0
call fcn.10095ed0
push 0
push 0
push 0x101
push esi
push dword [ebp - 0x160]
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 3
call fcn.10095fa0
test eax, eax
jne 0x10169106
mov edi, dword [ebp - 0x12c]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0xac]
xor esi, esi
call fcn.10096190
jmp 0x1016bc2b
push 0
lea ecx, [ebp - 0xac]
call fcn.10096a30
mov eax, dword [ebp - 0x150]
test eax, eax
jle 0x1016917a
mov esi, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x168]
add esi, 4
nop dword [eax]
mov ecx, dword [esi - 4]
test ecx, ecx
je 0x1016916c
push 0
push 0
lea eax, [ecx + 8]
push 0
push eax
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 4]
sub eax, dword [ecx]
sub eax, edi
push eax
mov eax, dword [ecx + 4]
lea ecx, [ebp - 0xac]
sub eax, dword [ebp - 0x164]
add eax, dword [esi]
push eax
call fcn.10096e10
mov eax, dword [ebp - 0x150]
add esi, 0x14
sub eax, 1
mov dword [ebp - 0x150], eax
jne 0x10169130
mov edi, dword [ebp - 0x12c]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0xac]
add esp, 4
push 0
push 0
push dword [ebx + 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push eax
call fcn.100c1b30
lea ecx, [ebp - 0xac]
mov esi, eax
call fcn.10096190
jmp 0x1016bc2b
lea ecx, [ebp - 0xf4]
movq qword [ebp - 0xd4], xmm0
movups xmmword [ebp - 0xf4], xmm0
movups xmmword [ebp - 0xe4], xmm0
call fcn.10095ed0
mov eax, dword [ebp - 0x138]
mov byte [ebp - 4], 6
cmp dword [eax + 0x10], 8
jne 0x1016922d
push 0
push 0
push pe_nt_image_headers32
push esi
push dword [ebp - 0x160]
lea ecx, [ebp - 0xf4]
call fcn.10095fa0
test eax, eax
jne 0x1016926e
mov edi, dword [ebp - 0x12c]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0xf4]
xor esi, esi
call fcn.10096190
jmp 0x1016bc2b
push esi
push dword [ebp - 0x160]
mov esi, dword [ebp - 0x138]
lea eax, [ebp - 0xf4]
push eax
mov ecx, esi
call fcn.100c09a0
test eax, eax
jne 0x10169274
mov edi, dword [ebp - 0x12c]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0xf4]
xor esi, esi
call fcn.10096190
jmp 0x1016bc2b
mov esi, dword [ebp - 0x138]
test byte [ebp - 0xe0], 2
jne 0x101692da
cmp dword [ebp - 0xe0], 1
je 0x101692da
push 0xffffffffffffffff
lea ecx, [ebp - 0xf4]
call fcn.10096a30
test byte [esi + 0x14], 1
je 0x101692b8
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xf4]
push 0
push 0
push dword [ebp - 0x24]
mov eax, dword [ecx]
push dword [ebp - 0x28]
push edx
mov eax, dword [eax + 0x44]
call eax
test eax, eax
jne 0x101692f8
mov edi, dword [ebp - 0x12c]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0xf4]
xor esi, esi
call fcn.10096190
jmp 0x1016bc2b
push 0
lea ecx, [ebp - 0xf4]
call fcn.10096a30
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
je 0x101692f8
push 0
call fcn.10096a30
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0xe4]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebp - 0x144], eax
cmp edi, 3
jne 0x10169374
mov edx, dword [ebx + 0x20]
lea ecx, [ebx + 0x20]
push 0
push 0x1000000
call fcn.10168720
mov ecx, dword [ebx + 0x20]
add esp, 8
mov eax, ecx
mov edi, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr edi, 0x18
shr eax, 8
movzx edx, al
movzx eax, cl
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x118], eax
jmp 0x10169398
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x150]
xor ecx, ecx
mov dword [ebp - 0x18], ecx
test eax, eax
jle 0x1016bbc0
mov edx, dword [ebp - 0x12c]
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + ecx*4]
test eax, eax
je 0x1016bbad
mov esi, dword [edx + ecx*4 + 4]
lea edi, [eax + 8]
mov edx, dword [edx + ecx*4 + 8]
sub edx, dword [eax]
add esi, dword [eax + 4]
sub edx, dword [ebp - 0x168]
sub esi, dword [ebp - 0x164]
cmp dword [ebp - 0x148], 0
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x130], edx
mov edx, dword [edi + 8]
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x140], eax
jne 0x1016944b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebx + 0x20]
lea ecx, [ebp - 0xf4]
push edi
push eax
push edx
push dword [ebp - 0x130]
push esi
call fcn.100ef470
test eax, eax
jne 0x1016bba7
push dword [ebp - 0x12c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0xf4]
xor esi, esi
call fcn.10096190
jmp 0x1016bc2b
mov eax, dword [ebx + 0x24]
and eax, 2
mov dword [ebp - 0x178], eax
mov eax, 0x55555556
imul edx
mov eax, dword [ebp - 0x12c]
mov esi, edx
shr esi, 0x1f
add esi, edx
movss xmm0, dword [eax + ecx*4 + 0xc]
mov ecx, 3
mulss xmm0, dword [0x103a6478]
cvttss2si eax, xmm0
cdq
idiv ecx
mov eax, dword [edi]
mov ecx, edi
mov dword [ebp - 0x154], edx
mov eax, dword [eax + 4]
call eax
mov dword [ebp - 0x170], eax
mov eax, dword [edi + 0x18]
mov edi, dword [ebp - 0x124]
mov dword [ebp - 0x16c], eax
xor eax, eax
test edi, edi
lea ecx, [esi + edi]
cmovns eax, edi
mov esi, dword [ebp - 0x160]
cmp ecx, esi
mov dword [ebp - 0x11c], eax
cmovle esi, ecx
mov ecx, eax
mov dword [ebp - 0x120], esi
cmp ecx, esi
jge 0x1016bba7
mov eax, dword [ebp - 0xe0]
shl eax, 8
add eax, dword [ebp - 0xe4]
cmp eax, 0x220
jne 0x1016a9aa
cmp dword [ebp - 0x140], 0
jle 0x1016bba7
mov eax, dword [ebp - 0x130]
imul eax, dword [ebp - 0x158]
mov dword [ebp - 0x104], 0
mov edx, dword [ebp - 0x104]
mov dword [ebp - 0x128], eax
nop
cmp dword [ebp - 0x130], 0
mov esi, dword [ebp - 0x120]
jl 0x1016a97a
mov edi, dword [ebp - 0x130]
cmp edi, dword [ebp - 0xe8]
mov edi, dword [ebp - 0x124]
jge 0x1016a97a
mov eax, ecx
sub eax, edi
lea edx, [edx + eax*2]
add edx, eax
mov eax, dword [ebp - 0x128]
add edx, dword [ebp - 0x170]
mov dword [ebp - 0xf8], edx
lea edi, [eax + ecx*4]
mov eax, dword [ebp - 0x154]
add edi, dword [ebp - 0x174]
cmp dword [ebp - 0x178], 0
mov dword [ebp - 0x100], edi
je 0x10169b99
test eax, eax
jne 0x101696b4
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x100], eax
nop word [eax + eax]
movzx ecx, byte [edx + 2]
lea edi, [edi + 4]
imul ecx, dword [ebp - 0xfc]
mov eax, 0x80808081
imul ecx
movzx eax, byte [edi - 2]
add edx, ecx
mov ecx, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
sub ecx, esi
imul esi, dword [ebp - 0x114]
imul ecx, eax
mov eax, 0x80808081
add ecx, esi
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 2], al
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax + 1]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi - 3]
add edx, ecx
mov ecx, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
sub ecx, esi
imul esi, dword [ebp - 0x108]
imul ecx, eax
mov eax, 0x80808081
add ecx, esi
mov esi, 0xff
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 3], al
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
mov byte [edi - 1], 0xff
imul ecx
movzx eax, byte [edi - 4]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
add edx, 3
mov byte [edi - 4], al
sub dword [ebp - 0x100], 1
mov dword [ebp - 0xf8], edx
jne 0x101695a0
jmp 0x1016a968
mov esi, 0xff
cmp eax, 1
jne 0x10169929
movzx eax, byte [edx + 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, dword [ebp - 0x124]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
cmp dword [ebp - 0x11c], esi
jle 0x101697ca
mov eax, dword [ebp - 0xf8]
mov esi, 0xff
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x120]
add eax, 3
mov edx, dword [ebp - 0x11c]
dec ecx
mov byte [edi + 3], 0xff
inc edx
add edi, 4
mov dword [ebp - 0xf8], eax
cmp edx, ecx
jge 0x1016a968
sub ecx, edx
mov dword [ebp - 0x100], ecx
nop
movzx eax, byte [eax + 1]
lea edi, [edi + 4]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi - 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi - 3]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 3], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
mov byte [edi - 1], 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi - 4]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 4], al
mov eax, dword [ebp - 0xf8]
add eax, 3
sub dword [ebp - 0x100], 1
mov dword [ebp - 0xf8], eax
jne 0x10169800
jmp 0x1016a968
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, dword [ebp - 0x124]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
cmp dword [ebp - 0x11c], esi
jle 0x10169a35
mov eax, dword [ebp - 0xf8]
mov esi, 0xff
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 2]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x120]
add eax, 3
mov edx, dword [ebp - 0x11c]
dec ecx
mov byte [edi + 3], 0xff
inc edx
add edi, 4
mov dword [ebp - 0xf8], eax
cmp edx, ecx
jge 0x1016a968
sub ecx, edx
mov dword [ebp - 0x100], ecx
nop dword [eax]
movzx eax, byte [eax]
lea edi, [edi + 4]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi - 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi - 3]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 3], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 2]
mov byte [edi - 1], 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi - 4]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi - 4], al
mov eax, dword [ebp - 0xf8]
add eax, 3
sub dword [ebp - 0x100], 1
mov dword [ebp - 0xf8], eax
jne 0x10169a70
jmp 0x1016a968
test eax, eax
jne 0x10169e5d
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x10c], eax
nop dword [eax + eax]
cmp dword [ebp - 0x13c], 0
je 0x10169d30
movzx eax, byte [edx + 1]
movzx ecx, byte [edx + 2]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
add edx, ecx
mov cl, byte [edi + 3]
sar edx, 7
mov eax, edx
mov byte [ebp - 0x10d], cl
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x134], eax
test cl, cl
jne 0x10169c60
mov edx, dword [ebp - 0x118]
mov eax, edx
mov ecx, dword [ebp - 0x108]
shr eax, 8
or al, cl
mov byte [edi], dl
mov byte [edi + 1], al
mov eax, edx
shr ecx, 8
shr eax, 0x10
or cl, al
mov eax, dword [ebp - 0x114]
or cl, al
mov byte [edi + 2], cl
mov ecx, eax
mov eax, dword [ebp - 0x108]
shr eax, 0x10
shr ecx, 8
or cl, al
mov eax, edx
mov edx, dword [ebp - 0x134]
shr eax, 0x18
or cl, al
or cl, dl
mov byte [edi + 3], cl
jmp 0x10169e33
test eax, eax
je 0x10169e33
movzx ecx, cl
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x134]
mov cl, dl
sub cl, al
imul eax, edx, 0xff
add cl, byte [ebp - 0x10d]
mov byte [edi + 3], cl
mov edi, 0xff
movzx ecx, cl
cdq
idiv ecx
mov ecx, dword [ebp - 0x100]
sub edi, eax
mov dword [ebp - 0x134], eax
imul eax, dword [ebp - 0x114]
movzx esi, byte [ecx + 2]
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, dword [ebp - 0x134]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, esi
movzx ecx, byte [ecx + 1]
imul eax, dword [ebp - 0x108]
imul ecx, edi
imul esi, dword [ebp - 0x118]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x100]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
movzx ecx, byte [ecx]
imul ecx, edi
mov edi, dword [ebp - 0x100]
add ecx, esi
imul ecx
add edx, ecx
jmp 0x10169e27
movzx eax, byte [edx]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 2]
mov byte [edi + 3], 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov edx, dword [ebp - 0xf8]
add edi, 4
add edx, 3
mov dword [ebp - 0x100], edi
sub dword [ebp - 0x10c], 1
mov dword [ebp - 0xf8], edx
jne 0x10169bb0
jmp 0x1016a968
cmp eax, 1
jne 0x1016a3eb
cmp dword [ebp - 0x13c], 0
je 0x10169ff4
cmp ecx, dword [ebp - 0x124]
jle 0x10169e87
movzx ecx, byte [edx - 1]
movzx eax, byte [edx + 1]
add ecx, eax
jmp 0x10169e8b
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
mov esi, dword [ebp - 0xfc]
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, esi
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x10c], eax
je 0x1016a105
mov cl, byte [edi + 3]
mov byte [ebp - 0x10d], cl
test cl, cl
jne 0x10169f2c
mov edx, dword [ebp - 0x118]
mov eax, edx
mov ecx, dword [ebp - 0x108]
shr eax, 8
or al, cl
mov byte [edi], dl
mov byte [edi + 1], al
mov eax, edx
shr ecx, 8
shr eax, 0x10
or cl, al
mov eax, dword [ebp - 0x114]
or cl, al
mov byte [edi + 2], cl
mov ecx, eax
mov eax, dword [ebp - 0x108]
shr eax, 0x10
shr ecx, 8
or cl, al
mov eax, edx
mov edx, dword [ebp - 0x10c]
shr eax, 0x18
or cl, al
or cl, dl
mov byte [edi + 3], cl
jmp 0x1016a105
movzx ecx, cl
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x10c]
mov cl, dl
sub cl, al
imul eax, edx, 0xff
add cl, byte [ebp - 0x10d]
mov byte [edi + 3], cl
mov edi, 0xff
movzx ecx, cl
cdq
idiv ecx
mov ecx, dword [ebp - 0x100]
sub edi, eax
mov dword [ebp - 0x10c], eax
imul eax, dword [ebp - 0x114]
movzx esi, byte [ecx + 2]
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, dword [ebp - 0x10c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, esi
movzx ecx, byte [ecx + 1]
imul eax, dword [ebp - 0x108]
imul ecx, edi
imul esi, dword [ebp - 0x118]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x100]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
movzx ecx, byte [ecx]
imul ecx, edi
mov edi, dword [ebp - 0x100]
add ecx, esi
imul ecx
add edx, ecx
jmp 0x1016a0f3
cmp ecx, dword [ebp - 0x124]
jle 0x1016a054
movzx eax, byte [edx - 1]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
mov byte [edi + 2], al
movzx eax, byte [edx]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 1]
mov byte [edi + 3], 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, dword [ebp - 0xfc]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov edx, dword [ebp - 0xf8]
add edi, 4
mov ecx, dword [ebp - 0x11c]
add edx, 3
mov eax, dword [ebp - 0x120]
inc ecx
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xf8], edx
cmp ecx, eax
jge 0x1016a968
sub eax, ecx
mov dword [ebp - 0x134], eax
nop word [eax + eax]
cmp dword [ebp - 0x13c], 0
je 0x1016a2bc
movzx eax, byte [edx + 1]
movzx ecx, byte [edx - 1]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, esi
imul ecx
add edx, ecx
mov cl, byte [edi + 3]
sar edx, 7
mov eax, edx
mov byte [ebp - 0x10d], cl
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x10c], eax
test cl, cl
jne 0x1016a1ec
mov edx, dword [ebp - 0x118]
mov eax, edx
mov ecx, dword [ebp - 0x108]
shr eax, 8
or al, cl
mov byte [edi], dl
mov byte [edi + 1], al
mov eax, edx
shr ecx, 8
shr eax, 0x10
or cl, al
mov eax, dword [ebp - 0x114]
or cl, al
mov byte [edi + 2], cl
mov ecx, eax
mov eax, dword [ebp - 0x108]
shr eax, 0x10
shr ecx, 8
or cl, al
mov eax, edx
mov edx, dword [ebp - 0x10c]
shr eax, 0x18
or cl, al
or cl, dl
mov byte [edi + 3], cl
jmp 0x1016a3c1
test eax, eax
je 0x1016a3c1
movzx ecx, cl
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x10c]
mov cl, dl
sub cl, al
imul eax, edx, 0xff
add cl, byte [ebp - 0x10d]
mov byte [edi + 3], cl
mov edi, 0xff
movzx ecx, cl
cdq
idiv ecx
mov ecx, dword [ebp - 0x100]
sub edi, eax
mov dword [ebp - 0x10c], eax
imul eax, dword [ebp - 0x114]
movzx esi, byte [ecx + 2]
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, dword [ebp - 0x10c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, esi
movzx ecx, byte [ecx + 1]
imul eax, dword [ebp - 0x108]
imul ecx, edi
imul esi, dword [ebp - 0x118]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x100]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
movzx ecx, byte [ecx]
imul ecx, edi
mov edi, dword [ebp - 0x100]
add ecx, esi
imul ecx
add edx, ecx
jmp 0x1016a3af
movzx eax, byte [edx - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, esi
mov esi, 0xff
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 1]
mov byte [edi + 3], 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, dword [ebp - 0xfc]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov edx, dword [ebp - 0xf8]
add edi, 4
add edx, 3
mov dword [ebp - 0x100], edi
sub dword [ebp - 0x134], 1
mov dword [ebp - 0xf8], edx
jne 0x1016a140
jmp 0x1016a968
cmp dword [ebp - 0x13c], 0
je 0x1016a578
cmp ecx, dword [ebp - 0x124]
jle 0x1016a411
movzx eax, byte [edx - 1]
movzx ecx, byte [edx - 2]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
jmp 0x1016a414
movzx ecx, byte [edx]
mov esi, dword [ebp - 0xfc]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, esi
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x10c], eax
je 0x1016a68d
mov cl, byte [edi + 3]
mov byte [ebp - 0x10d], cl
test cl, cl
jne 0x1016a4b0
mov edx, dword [ebp - 0x118]
mov eax, edx
mov ecx, dword [ebp - 0x108]
shr eax, 8
or al, cl
mov byte [edi], dl
mov byte [edi + 1], al
mov eax, edx
shr eax, 0x10
shr ecx, 8
or cl, al
mov eax, dword [ebp - 0x114]
or cl, al
mov byte [edi + 2], cl
mov ecx, eax
mov eax, dword [ebp - 0x108]
shr eax, 0x10
shr ecx, 8
or cl, al
mov eax, edx
shr eax, 0x18
or cl, al
mov eax, dword [ebp - 0x10c]
or cl, al
mov byte [edi + 3], cl
jmp 0x1016a68d
movzx ecx, cl
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov cl, byte [ebp - 0x10d]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov eax, dword [ebp - 0x10c]
add cl, al
imul eax, eax, 0xff
mov byte [edi + 3], cl
mov edi, 0xff
movzx ecx, cl
cdq
idiv ecx
mov ecx, dword [ebp - 0x100]
sub edi, eax
mov dword [ebp - 0x10c], eax
imul eax, dword [ebp - 0x114]
movzx esi, byte [ecx + 2]
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, dword [ebp - 0x10c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, esi
movzx ecx, byte [ecx + 1]
imul eax, dword [ebp - 0x108]
imul ecx, edi
imul esi, dword [ebp - 0x118]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x100]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
movzx ecx, byte [ecx]
imul ecx, edi
mov edi, dword [ebp - 0x100]
add ecx, esi
imul ecx
add edx, ecx
jmp 0x1016a67b
cmp ecx, dword [ebp - 0x124]
jle 0x1016a634
movzx eax, byte [edx - 2]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
mov byte [edi + 1], al
movzx eax, byte [edx]
mov esi, 0xff
mov byte [edi + 3], 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, dword [ebp - 0xfc]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov edx, dword [ebp - 0xf8]
add edi, 4
mov ecx, dword [ebp - 0x11c]
add edx, 3
mov eax, dword [ebp - 0x120]
inc ecx
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xf8], edx
cmp ecx, eax
jge 0x1016a968
sub eax, ecx
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x13c], 0
je 0x1016a83e
movzx eax, byte [edx - 1]
movzx ecx, byte [edx - 2]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, esi
imul ecx
add edx, ecx
mov cl, byte [edi + 3]
sar edx, 7
mov eax, edx
mov byte [ebp - 0x10d], cl
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x10c], eax
test cl, cl
jne 0x1016a76e
mov edx, dword [ebp - 0x118]
mov eax, edx
mov ecx, dword [ebp - 0x108]
shr eax, 8
or al, cl
mov byte [edi], dl
mov byte [edi + 1], al
mov eax, edx
shr eax, 0x10
shr ecx, 8
or cl, al
mov eax, dword [ebp - 0x114]
or cl, al
mov byte [edi + 2], cl
mov ecx, eax
mov eax, dword [ebp - 0x108]
shr eax, 0x10
shr ecx, 8
or cl, al
mov eax, edx
shr eax, 0x18
or cl, al
mov eax, dword [ebp - 0x10c]
or cl, al
mov byte [edi + 3], cl
jmp 0x1016a943
test eax, eax
je 0x1016a943
movzx ecx, cl
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov cl, byte [ebp - 0x10d]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub cl, al
mov eax, dword [ebp - 0x10c]
add cl, al
imul eax, eax, 0xff
mov byte [edi + 3], cl
mov edi, 0xff
movzx ecx, cl
cdq
idiv ecx
mov ecx, dword [ebp - 0x100]
sub edi, eax
mov dword [ebp - 0x10c], eax
imul eax, dword [ebp - 0x114]
movzx esi, byte [ecx + 2]
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, dword [ebp - 0x10c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, esi
movzx ecx, byte [ecx + 1]
imul eax, dword [ebp - 0x108]
imul ecx, edi
imul esi, dword [ebp - 0x118]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x100]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
movzx ecx, byte [ecx]
imul ecx, edi
mov edi, dword [ebp - 0x100]
add ecx, esi
imul ecx
add edx, ecx
jmp 0x1016a931
movzx eax, byte [edx - 2]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, esi
mov esi, 0xff
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
mov byte [edi + 3], 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, dword [ebp - 0xfc]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov edx, dword [ebp - 0xf8]
add edi, 4
add edx, 3
mov dword [ebp - 0x100], edi
sub dword [ebp - 0x134], 1
mov dword [ebp - 0xf8], edx
jne 0x1016a6c2
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x104]
add eax, dword [ebp - 0x158]
add edx, dword [ebp - 0x16c]
inc dword [ebp - 0x130]
sub dword [ebp - 0x140], 1
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x104], edx
jne 0x10169520
jmp 0x1016bba7
cmp dword [ebp - 0x140], 0
jle 0x1016bba7
mov eax, dword [ebp - 0x130]
imul eax, dword [ebp - 0x158]
mov dword [ebp - 0x128], 0
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x100], eax
nop word [eax + eax]
cmp dword [ebp - 0x130], 0
jl 0x1016bb7c
mov esi, dword [ebp - 0x130]
cmp esi, dword [ebp - 0xe8]
mov esi, dword [ebp - 0x120]
jge 0x1016bb7c
mov eax, ecx
sub eax, edi
mov edi, ecx
imul edi, dword [ebp - 0x144]
lea edx, [edx + eax*2]
add edx, eax
mov eax, dword [ebp - 0x154]
add edi, dword [ebp - 0x100]
add edx, dword [ebp - 0x170]
add edi, dword [ebp - 0x174]
cmp dword [ebp - 0x178], 0
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x104], edi
je 0x1016b07c
test eax, eax
jne 0x1016ab88
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x10c], eax
nop word [eax + eax]
movzx eax, byte [edx + 2]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x118]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
mov byte [edi], al
add edx, 3
add edi, dword [ebp - 0x144]
sub dword [ebp - 0x10c], 1
mov dword [ebp - 0xf8], edx
jne 0x1016aa60
jmp 0x1016bb64
mov esi, 0xff
cmp eax, 1
jne 0x1016ae0a
movzx eax, byte [edx + 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, dword [ebp - 0x124]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
cmp dword [ebp - 0x11c], esi
jle 0x1016aca2
mov eax, dword [ebp - 0xf8]
mov esi, 0xff
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x118]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x120]
add eax, 3
mov edx, dword [ebp - 0x11c]
dec ecx
add edi, dword [ebp - 0x144]
inc edx
mov dword [ebp - 0xf8], eax
cmp edx, ecx
jge 0x1016bb64
sub ecx, edx
mov dword [ebp - 0x10c], ecx
nop word [eax + eax]
movzx eax, byte [eax + 1]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x114]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x118]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov eax, dword [ebp - 0xf8]
add edi, dword [ebp - 0x144]
add eax, 3
sub dword [ebp - 0x10c], 1
mov dword [ebp - 0xf8], eax
jne 0x1016ace0
jmp 0x1016bb64
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, dword [ebp - 0x124]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
cmp dword [ebp - 0x11c], esi
jle 0x1016af1c
mov eax, dword [ebp - 0xf8]
mov esi, 0xff
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 2]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x118]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x120]
add eax, 3
mov edx, dword [ebp - 0x11c]
dec ecx
add edi, dword [ebp - 0x144]
inc edx
mov dword [ebp - 0xf8], eax
cmp edx, ecx
jge 0x1016bb64
sub ecx, edx
mov dword [ebp - 0x10c], ecx
nop
movzx eax, byte [eax]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 2]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x118]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov eax, dword [ebp - 0xf8]
add edi, dword [ebp - 0x144]
add eax, 3
mov dword [ebp - 0xf8], eax
sub dword [ebp - 0x10c], 1
jne 0x1016af50
jmp 0x1016bb64
test eax, eax
jne 0x1016b289
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x134], eax
nop
cmp dword [ebp - 0x13c], 0
je 0x1016b161
movzx eax, byte [edx + 1]
movzx ecx, byte [edx + 2]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x10c], eax
je 0x1016b262
movzx ecx, byte [edi + 2]
mov esi, 0xff
sub esi, eax
imul eax, dword [ebp - 0x114]
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
movzx ecx, byte [edi + 1]
sar edx, 7
mov eax, edx
imul ecx, esi
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0x108]
imul eax, dword [ebp - 0x10c]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
movzx ecx, byte [edi]
sar edx, 7
mov eax, edx
imul ecx, esi
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0x118]
imul eax, dword [ebp - 0x10c]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
jmp 0x1016b256
movzx eax, byte [edx]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x108]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 2]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
mov edx, dword [ebp - 0xf8]
add edi, dword [ebp - 0x144]
add edx, 3
sub dword [ebp - 0x134], 1
mov dword [ebp - 0xf8], edx
jne 0x1016b090
jmp 0x1016bb64
cmp eax, 1
jne 0x1016b6f7
cmp dword [ebp - 0x13c], 0
je 0x1016b377
cmp ecx, dword [ebp - 0x124]
jle 0x1016b2b3
movzx ecx, byte [edx - 1]
movzx eax, byte [edx + 1]
add ecx, eax
jmp 0x1016b2b7
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
mov esi, 0xff
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
mov eax, dword [ebp - 0x104]
add edx, ecx
sar edx, 7
mov edi, edx
movzx ecx, byte [eax + 2]
mov eax, dword [ebp - 0x114]
shr edi, 0x1f
add edi, edx
imul eax, edi
sub esi, edi
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
movzx ecx, byte [ecx + 1]
mov eax, dword [ebp - 0x108]
imul eax, edi
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
movzx ecx, byte [ecx]
mov eax, dword [ebp - 0x118]
imul eax, edi
mov edi, dword [ebp - 0x104]
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
jmp 0x1016b476
cmp ecx, dword [ebp - 0x124]
jle 0x1016b3d9
movzx eax, byte [edx - 1]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
mov byte [edi + 2], al
movzx eax, byte [edx]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
mov ecx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x120]
inc ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
mov byte [edi], al
add edx, 3
mov eax, dword [ebp - 0x144]
add eax, edi
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x104], eax
cmp ecx, esi
jge 0x1016bb64
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x10c], eax
nop
cmp dword [ebp - 0x13c], 0
je 0x1016b5a7
movzx eax, byte [edx + 1]
movzx ecx, byte [edx - 1]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
add edx, ecx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
je 0x1016b6c4
mov ecx, dword [ebp - 0x104]
mov esi, 0xff
mov eax, dword [ebp - 0x114]
sub esi, edi
imul eax, edi
movzx ecx, byte [ecx + 2]
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, edi
imul eax, dword [ebp - 0x108]
movzx ecx, byte [ecx + 1]
imul ecx, esi
imul edi, dword [ebp - 0x118]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
movzx ecx, byte [ecx]
imul ecx, esi
add ecx, edi
mov edi, dword [ebp - 0x104]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
jmp 0x1016b6ca
movzx eax, byte [edx - 1]
mov esi, 0xff
mov edi, dword [ebp - 0xfc]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, edi
imul ecx
mov eax, dword [ebp - 0x104]
add edx, ecx
sar edx, 7
mov ecx, edx
movzx eax, byte [eax + 2]
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
mov ecx, dword [ebp - 0x104]
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, edi
imul ecx
mov eax, dword [ebp - 0x104]
add edx, ecx
sar edx, 7
mov ecx, edx
movzx eax, byte [eax + 1]
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
mov ecx, dword [ebp - 0x104]
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, edi
mov edi, dword [ebp - 0x104]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul ecx, dword [ebp - 0x118]
imul esi, eax
mov eax, 0x80808081
add esi, ecx
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
jmp 0x1016b6ca
mov edi, dword [ebp - 0x104]
mov edx, dword [ebp - 0xf8]
add edi, dword [ebp - 0x144]
add edx, 3
sub dword [ebp - 0x10c], 1
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x104], edi
jne 0x1016b4c0
jmp 0x1016bb64
cmp dword [ebp - 0x13c], 0
je 0x1016b7db
cmp ecx, dword [ebp - 0x124]
jle 0x1016b71d
movzx eax, byte [edx - 1]
movzx ecx, byte [edx - 2]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
jmp 0x1016b720
movzx ecx, byte [edx]
mov eax, 0xaaaaaaab
mov esi, 0xff
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
mov eax, dword [ebp - 0x104]
add edx, ecx
sar edx, 7
mov edi, edx
movzx ecx, byte [eax + 2]
mov eax, dword [ebp - 0x114]
shr edi, 0x1f
add edi, edx
imul eax, edi
sub esi, edi
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
movzx ecx, byte [ecx + 1]
mov eax, dword [ebp - 0x108]
imul eax, edi
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
movzx ecx, byte [ecx]
mov eax, dword [ebp - 0x118]
imul eax, edi
mov edi, dword [ebp - 0x104]
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
jmp 0x1016b8e0
cmp ecx, dword [ebp - 0x124]
jle 0x1016b89b
movzx eax, byte [edx - 2]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 2]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi + 1]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
mov byte [edi + 1], al
movzx eax, byte [edx]
mov esi, 0xff
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x118]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov ecx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x120]
inc ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf8]
mov byte [edi], al
add edx, 3
mov eax, dword [ebp - 0x144]
add eax, edi
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x104], eax
cmp ecx, esi
jge 0x1016bb64
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x10c], eax
nop dword [eax + eax]
cmp dword [ebp - 0x13c], 0
je 0x1016ba17
movzx eax, byte [edx - 1]
movzx ecx, byte [edx - 2]
add ecx, eax
movzx eax, byte [edx]
add ecx, eax
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
movzx eax, dl
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, dword [ebp - 0xfc]
imul ecx
add edx, ecx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
je 0x1016bb36
mov ecx, dword [ebp - 0x104]
mov esi, 0xff
mov eax, dword [ebp - 0x114]
sub esi, edi
imul eax, edi
movzx ecx, byte [ecx + 2]
imul ecx, esi
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, edi
imul eax, dword [ebp - 0x108]
movzx ecx, byte [ecx + 1]
imul ecx, esi
imul edi, dword [ebp - 0x118]
add ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x104]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, 0x80808081
movzx ecx, byte [ecx]
imul ecx, esi
add ecx, edi
mov edi, dword [ebp - 0x104]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
jmp 0x1016bb3c
movzx eax, byte [edx - 2]
mov esi, 0xff
mov edi, dword [ebp - 0xfc]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, edi
imul ecx
mov eax, dword [ebp - 0x104]
add edx, ecx
sar edx, 7
mov ecx, edx
movzx eax, byte [eax + 2]
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x114]
imul eax, ecx
mov ecx, dword [ebp - 0x104]
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 2], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax - 1]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, edi
imul ecx
mov eax, dword [ebp - 0x104]
add edx, ecx
sar edx, 7
mov ecx, edx
movzx eax, byte [eax + 1]
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x108]
imul eax, ecx
mov ecx, dword [ebp - 0x104]
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
mov esi, 0xff
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [ecx + 1], al
mov eax, dword [ebp - 0xf8]
movzx eax, byte [eax]
movzx ecx, byte [eax + 0x1021f418]
mov eax, 0x80808081
imul ecx, edi
mov edi, dword [ebp - 0x104]
imul ecx
movzx eax, byte [edi]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
imul esi, eax
mov eax, dword [ebp - 0x118]
imul eax, ecx
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [edi], al
jmp 0x1016bb3c
mov edi, dword [ebp - 0x104]
mov edx, dword [ebp - 0xf8]
add edi, dword [ebp - 0x144]
add edx, 3
sub dword [ebp - 0x10c], 1
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x104], edi
jne 0x1016b930
mov edi, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x11c]
add eax, dword [ebp - 0x158]
add edx, dword [ebp - 0x16c]
inc dword [ebp - 0x130]
sub dword [ebp - 0x140], 1
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x128], edx
jne 0x1016a9e0
mov edx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x150]
jl 0x101693b1
cmp dword [ebp - 0xe0], 1
lea eax, [ebp - 0xf4]
mov ecx, dword [ebp - 0x138]
push 0
push 0
jne 0x1016bbea
push dword [ebx + 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push eax
call fcn.100c1b30
jmp 0x1016bbf6
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push eax
call fcn.100c16c0
push dword [ebp - 0x12c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0xf4]
mov esi, 1
call fcn.10096190
jmp 0x1016bc2b
push dword [ebp - 0x12c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov esi, 1
push dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 4], 0xb
call fcn.1016c260
mov eax, esi
jmp 0x1016bc84
push 0
movss xmm0, dword [ebx + 0x18]
and edx, 0x20
push 0
push 0
shl edx, 4
push edx
push 0
push 0
push dword [ebx + 0x20]
push 0
push 0
push esi
push ecx
movss dword [esp], xmm0
push dword [ebp - 0x15c]
push ecx
mov ecx, dword [ebp - 0x138]
push edi
push dword [ebp - 0x150]
call fcn.1016bcb0
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.101f3fd0
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x28