Function at 0x100a7e70
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x70]
mov ecx, edi
and ecx, 0x1f
mov ebp, 0
jne 0x100a7e8b
xor esi, esi
jmp 0x100a7e92
mov esi, 0x20
sub esi, ecx
mov edx, dword [esp + 0x54]
and edx, 0x1f
mov dword [esp + 0x3c], esi
jne 0x100a7ea3
xor eax, eax
jmp 0x100a7eaa
mov eax, 0x20
sub eax, edx
mov dword [esp + 0x40], eax
cmp esi, ebp
jne 0x100a7ec0
cmp eax, ebp
jne 0x100a7ec0
xor ebx, ebx
mov dword [esp + 0x10], ebp
xor esi, esi
jmp 0x100a7edf
cmp eax, esi
jle 0x100a7ec8
sub eax, esi
jmp 0x100a7ecd
sub eax, esi
add eax, 0x20
mov esi, dword [eax*4 + 0x10148060]
mov ebx, 0x20
mov dword [esp + 0x10], eax
sub ebx, eax
mov dword [esp + 0x20], ebx
cmp edx, ebp
jne 0x100a7efe
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x54]
xor ecx, ecx
jmp 0x100a7f80
mov eax, 0x20
sub eax, edx
mov ebp, dword [eax*4 + 0x10148060]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0x58]
sar edx, 5
add eax, edx
mov edx, dword [esp + 0x4c]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x6c]
imul edx, dword [esp + 0x74]
sar edi, 5
add edx, edi
mov edi, dword [esp + 0x68]
lea edx, [edi + edx*4]
mov edi, 0x20
sub edi, ecx
mov ecx, dword [esp + 0x38]
cmp ecx, edi
mov dword [esp + 0x44], 1
jle 0x100a7f78
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x20]
xor ecx, ecx
cmp edi, dword [esp + 0x3c]
mov dword [esp + 0x34], 0
setge cl
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x38]
jmp 0x100a7f84
mov dword [esp + 0x34], 1
mov edi, dword [esp + 0x5c]
cmp edi, ecx
jl 0x100a7fa3
sub edi, ecx
sar edi, 5
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], edi
test edi, edi
jne 0x100a7fc0
mov dword [esp + 0x2c], edi
jmp 0x100a8012
sub edi, ecx
and ebp, dword [edi*4 + 0x10148058]
xor ecx, ecx
mov dword [esp + 0x38], 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], ecx
jmp 0x100a8012
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
add ecx, edi
mov edi, dword [esp + 0x50]
imul edi, dword [esp + 0x58]
sar ecx, 5
add ecx, edi
mov edi, dword [esp + 0x4c]
lea ecx, [edi + ecx*4]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
add ecx, edi
mov edi, dword [esp + 0x6c]
imul edi, dword [esp + 0x74]
sar ecx, 5
add ecx, edi
mov edi, dword [esp + 0x68]
lea ecx, [edi + ecx*4]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
add ecx, edi
and ecx, 0x1f
mov edi, 1
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x38], edi
je 0x100a80a2
test ecx, ecx
je 0x100a80a2
mov ecx, dword [ecx*4 + 0x10147fd8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x54]
add ecx, edi
mov edi, dword [esp + 0x50]
imul edi, dword [esp + 0x58]
sar ecx, 5
add ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
add edi, ecx
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx + edi*4]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x40]
add ecx, edi
mov edi, dword [esp + 0x6c]
imul edi, dword [esp + 0x74]
sar ecx, 5
add ecx, dword [esp + 0x1c]
add edi, ecx
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + edi*4]
mov dword [esp + 0x30], ecx
xor ecx, ecx
cmp dword [esp + 0x5c], ebx
setg cl
mov dword [esp + 0x40], ecx
jmp 0x100a80aa
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x44]
add edi, 0xfffffffe
cmp edi, 0x1a
ja case.0x100a80c5.3
movzx edi, byte [edi + 0x100a9508]
jmp dword [edi*4 + 0x100a94d4]
test ecx, ecx
mov ecx, dword [esp + 0x60]
je 0x100a8150
test ecx, ecx
jle 0x100a8150
mov edi, ebp
not edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8119
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x5c], edi
je 0x100a8121
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x20]
jmp 0x100a8121
mov ecx, ebx
shr edi, cl
mov dword [esp + 0x5c], edi
mov edi, dword [eax]
and edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
and ecx, ebp
or edi, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], edi
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x70], 1
jne 0x100a80e4
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x28]
je 0x100a81e4
test ecx, ecx
jle 0x100a81e4
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
nop
cmp dword [esp + 0x1c], 0
jle 0x100a81bf
mov ecx, dword [esp + 0x14]
sub ecx, ebp
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x1c]
mov edx, esi
not edx
mov eax, ebp
mov dword [esp + 0x54], ecx
nop
mov edi, dword [eax]
mov ecx, dword [esp + 0x10]
mov ebp, dword [eax + 4]
shl edi, cl
mov ecx, ebx
shr ebp, cl
mov ecx, dword [esp + 0x70]
and edi, edx
add eax, 4
and ebp, esi
or edi, ebp
sub dword [esp + 0x54], 1
mov dword [ecx + eax - 4], edi
jne 0x100a8190
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x18]
add eax, eax
add eax, eax
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
add eax, eax
add eax, eax
add ebp, eax
sub dword [esp + 0x5c], 1
mov dword [esp + 0x18], ebp
jne 0x100a8170
cmp dword [esp + 0x38], 0
je 0x100a94cb
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
add eax, eax
add eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
add eax, eax
add eax, eax
not edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x70], ecx
lea ecx, [ecx]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x10]
shl eax, cl
cmp dword [esp + 0x40], 0
je 0x100a8243
mov ebp, dword [ebp + 4]
mov ecx, ebx
shr ebp, cl
mov ecx, esi
not ecx
and ecx, eax
and ebp, esi
or ebp, ecx
mov eax, ebp
and eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
add ebp, dword [esp + 0x5c]
mov ecx, edx
and ecx, dword [edi]
mov dword [esp + 0x30], ebp
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x70], 1
jne 0x100a8220
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a82ec
cmp dword [esp + 0x60], 0
jle 0x100a82ec
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
lea esp, [esp]
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a82bb
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a82bf
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a82bf
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
and ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
not edi
and edi, ebp
or edi, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], edi
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8290
cmp dword [esp + 0x2c], 0
je 0x100a8390
cmp dword [esp + 0x60], 0
jle 0x100a8390
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x6c]
lea eax, [edx*4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
lea edx, [ecx*4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x44], eax
cmp dword [esp + 0x1c], 0
jle 0x100a8379
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
sub ecx, eax
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x1c]
mov edx, esi
not edx
mov dword [esp + 0x64], ecx
lea esp, [esp]
mov edi, dword [eax]
mov ecx, dword [esp + 0x10]
mov ebp, dword [eax + 4]
shl edi, cl
mov ecx, ebx
shr ebp, cl
mov ecx, dword [esp + 0x70]
and edi, edx
add eax, 4
and ebp, esi
or edi, ebp
sub dword [esp + 0x64], 1
not edi
mov dword [eax + ecx - 4], edi
jne 0x100a8350
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], edx
add dword [esp + 0x18], eax
sub dword [esp + 0x44], 1
jne 0x100a8328
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a94cb
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
lea edx, [ecx*4]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x54], edx
lea edx, [ecx*4]
not ebp
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x64], eax
jmp 0x100a83e0
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
shl eax, cl
cmp dword [esp + 0x40], 0
je 0x100a8406
mov ebp, dword [edi + 4]
mov ecx, ebx
shr ebp, cl
mov ecx, esi
not ecx
and ecx, eax
and ebp, esi
or ebp, ecx
mov eax, ebp
mov ebp, dword [esp + 0x70]
add edi, dword [esp + 0x5c]
not eax
and eax, dword [esp + 0x24]
mov ecx, ebp
and ecx, dword [edx]
or eax, ecx
mov dword [edx], eax
add edx, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a83e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a84a4
cmp dword [esp + 0x60], 0
jle 0x100a84a4
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8471
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a8475
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a8475
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, ecx
and ecx, dword [esp + 0x54]
or ebx, edi
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8446
cmp dword [esp + 0x2c], 0
je 0x100a8525
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a8525
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
nop
test edi, edi
jle 0x100a8504
mov edx, dword [esp + 0x18]
mov ecx, esi
not ecx
mov dword [esp + 0x70], ecx
sub edx, eax
mov dword [esp + 0x54], edi
mov edi, dword [edx + eax + 4]
mov ebp, dword [edx + eax]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
or dword [eax - 4], edi
sub dword [esp + 0x54], 1
jne 0x100a84d6
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x18], ecx
sub dword [esp + 0x5c], 1
mov dword [esp + 0x14], eax
jne 0x100a84c0
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
not eax
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
lea eax, [edx*4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ecx
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp dword [esp + 0x40], 0
je 0x100a8593
mov eax, dword [ebp + 4]
mov ecx, ebx
shr eax, cl
mov ecx, esi
not ecx
and ecx, edx
and eax, esi
or eax, ecx
mov edx, eax
mov eax, dword [edi]
add ebp, dword [esp + 0x5c]
mov ecx, eax
and eax, dword [esp + 0x70]
or ecx, edx
and ecx, dword [esp + 0x24]
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a8570
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a862d
cmp dword [esp + 0x60], 0
jle 0x100a862d
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8606
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a860a
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
mov ebx, dword [esp + 0x20]
jmp 0x100a860a
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x50]
add ecx, ecx
and edi, ebp
or edi, dword [esp + 0x54]
add ecx, ecx
and dword [eax], edi
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a85d7
cmp dword [esp + 0x2c], 0
je 0x100a86ce
cmp dword [esp + 0x60], 0
jle 0x100a86ce
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x6c]
lea eax, [edx*4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
lea edx, [ecx*4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x44], eax
lea esp, [esp]
cmp dword [esp + 0x1c], 0
jle 0x100a86b7
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, esi
not eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x14]
sub edx, eax
mov dword [esp + 0x64], ecx
mov edi, dword [eax + edx + 4]
mov ebp, dword [eax + edx]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
and dword [eax - 4], edi
sub dword [esp + 0x64], 1
jne 0x100a8691
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], edx
add dword [esp + 0x18], eax
sub dword [esp + 0x44], 1
jne 0x100a8670
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a94cb
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
lea edx, [ecx*4]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x54], edx
lea edx, [ecx*4]
not ebp
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x64], eax
lea esp, [esp]
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
shl eax, cl
cmp dword [esp + 0x40], 0
je 0x100a8746
mov ebp, dword [edi + 4]
mov ecx, ebx
shr ebp, cl
mov ecx, esi
not ecx
and ecx, eax
and ebp, esi
or ebp, ecx
mov eax, ebp
mov ebp, dword [esp + 0x70]
and eax, dword [esp + 0x24]
add edi, dword [esp + 0x5c]
or eax, ebp
and dword [edx], eax
add edx, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a8720
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a87de
cmp dword [esp + 0x60], 0
jle 0x100a87de
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a87ab
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a87af
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a87af
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, ecx
and ecx, dword [esp + 0x54]
xor ebx, edi
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8780
cmp dword [esp + 0x2c], 0
je 0x100a8865
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a8865
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
lea ecx, [ecx]
test edi, edi
jle 0x100a8844
mov edx, dword [esp + 0x18]
mov ecx, esi
not ecx
mov dword [esp + 0x70], ecx
sub edx, eax
mov dword [esp + 0x54], edi
mov edi, dword [eax + edx + 4]
mov ebp, dword [eax + edx]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
xor dword [eax - 4], edi
sub dword [esp + 0x54], 1
jne 0x100a8816
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x18], ecx
sub dword [esp + 0x5c], 1
mov dword [esp + 0x14], eax
jne 0x100a8800
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
not eax
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
lea eax, [edx*4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ecx
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp dword [esp + 0x40], 0
je 0x100a88d3
mov eax, dword [ebp + 4]
mov ecx, ebx
shr eax, cl
mov ecx, esi
not ecx
and ecx, edx
and eax, esi
or eax, ecx
mov edx, eax
mov eax, dword [edi]
add ebp, dword [esp + 0x5c]
mov ecx, eax
and eax, dword [esp + 0x70]
xor ecx, edx
and ecx, dword [esp + 0x24]
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a88b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a8975
cmp dword [esp + 0x60], 0
jle 0x100a8975
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8942
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a8946
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a8946
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, dword [esp + 0x20]
not edi
or edi, ecx
and ecx, dword [esp + 0x54]
and edi, ebp
or edi, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], edi
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8917
cmp dword [esp + 0x2c], 0
je 0x100a8a11
cmp dword [esp + 0x60], 0
jle 0x100a8a11
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x6c]
lea eax, [edx*4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
lea edx, [ecx*4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x44], eax
cmp dword [esp + 0x1c], 0
jle 0x100a89fa
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, esi
not eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x14]
sub edx, eax
mov dword [esp + 0x64], ecx
mov edi, dword [eax + edx + 4]
mov ebp, dword [eax + edx]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
not edi
or dword [eax - 4], edi
sub dword [esp + 0x64], 1
jne 0x100a89d2
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], edx
add dword [esp + 0x18], eax
sub dword [esp + 0x44], 1
jne 0x100a89b1
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a94cb
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
not ecx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x50]
lea edx, [ecx*4]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x54], edx
lea edx, [ecx*4]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x64], eax
lea esp, [esp]
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
shl eax, cl
cmp dword [esp + 0x40], 0
je 0x100a8a82
mov ebp, dword [edi + 4]
mov ecx, ebx
shr ebp, cl
mov ecx, esi
not ecx
and ecx, eax
and ebp, esi
or ebp, ecx
mov eax, ebp
mov ecx, dword [edx]
add edi, dword [esp + 0x5c]
not eax
or eax, ecx
and eax, dword [esp + 0x24]
and ecx, dword [esp + 0x70]
or eax, ecx
mov dword [edx], eax
add edx, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a8a60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a8b1e
cmp dword [esp + 0x60], 0
jle 0x100a8b1e
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8af5
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a8af9
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
mov ebx, dword [esp + 0x20]
jmp 0x100a8af9
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x50]
not edi
add ecx, ecx
and edi, ebp
or edi, dword [esp + 0x54]
add ecx, ecx
and dword [eax], edi
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8ac6
cmp dword [esp + 0x2c], 0
je 0x100a8bc0
cmp dword [esp + 0x60], 0
jle 0x100a8bc0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x6c]
lea eax, [edx*4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
lea edx, [ecx*4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x44], eax
lea ebx, [ebx]
cmp dword [esp + 0x1c], 0
jle 0x100a8ba9
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, esi
not eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x14]
sub edx, eax
mov dword [esp + 0x64], ecx
mov edi, dword [eax + edx + 4]
mov ebp, dword [eax + edx]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
not edi
and dword [eax - 4], edi
sub dword [esp + 0x64], 1
jne 0x100a8b81
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], edx
add dword [esp + 0x18], eax
sub dword [esp + 0x44], 1
jne 0x100a8b60
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a94cb
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
lea edx, [ecx*4]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x54], edx
lea edx, [ecx*4]
not ebp
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x64], eax
jmp 0x100a8c10
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
shl eax, cl
cmp dword [esp + 0x40], 0
je 0x100a8c36
mov ebp, dword [edi + 4]
mov ecx, ebx
shr ebp, cl
mov ecx, esi
not ecx
and ecx, eax
and ebp, esi
or ebp, ecx
mov eax, ebp
mov ebp, dword [esp + 0x70]
add edi, dword [esp + 0x5c]
not eax
and eax, dword [esp + 0x24]
or eax, ebp
and dword [edx], eax
add edx, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a8c10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a8cd2
cmp dword [esp + 0x60], 0
jle 0x100a8cd2
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8c9d
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a8ca1
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a8ca1
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, ecx
and ecx, dword [esp + 0x54]
not ebx
or ebx, edi
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8c72
cmp dword [esp + 0x2c], 0
je 0x100a8d5c
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a8d5c
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
test edi, edi
jle 0x100a8d3b
mov edx, dword [esp + 0x18]
mov ecx, esi
not ecx
mov dword [esp + 0x70], ecx
sub edx, eax
mov dword [esp + 0x54], edi
mov edi, dword [eax + edx + 4]
mov ebp, dword [eax + edx]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
mov ecx, dword [eax]
and edi, esi
not ecx
and ebp, dword [esp + 0x70]
add eax, 4
or edi, ebp
or edi, ecx
sub dword [esp + 0x54], 1
mov dword [eax - 4], edi
jne 0x100a8d07
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x18], ecx
sub dword [esp + 0x5c], 1
mov dword [esp + 0x14], eax
jne 0x100a8cf1
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
not eax
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
lea eax, [edx*4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ecx
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp dword [esp + 0x40], 0
je 0x100a8dca
mov eax, dword [ebp + 4]
mov ecx, ebx
shr eax, cl
mov ecx, esi
not ecx
and ecx, edx
and eax, esi
or eax, ecx
mov edx, eax
mov eax, dword [edi]
add ebp, dword [esp + 0x5c]
mov ecx, eax
and eax, dword [esp + 0x70]
not ecx
or ecx, edx
and ecx, dword [esp + 0x24]
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a8da7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a8e74
cmp dword [esp + 0x60], 0
jle 0x100a8e74
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8e3f
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a8e43
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a8e43
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, ecx
and ecx, dword [esp + 0x54]
not ebx
and ebx, edi
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8e14
cmp dword [esp + 0x2c], 0
je 0x100a8f05
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a8f05
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
test edi, edi
jle 0x100a8ee4
mov edx, dword [esp + 0x18]
mov ecx, esi
not ecx
mov dword [esp + 0x70], ecx
sub edx, eax
mov dword [esp + 0x54], edi
lea ecx, [ecx]
mov edi, dword [eax + edx + 4]
mov ebp, dword [eax + edx]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
mov ecx, dword [eax]
and edi, esi
not ecx
and ebp, dword [esp + 0x70]
add eax, 4
or edi, ebp
and edi, ecx
sub dword [esp + 0x54], 1
mov dword [eax - 4], edi
jne 0x100a8eb0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x18], ecx
sub dword [esp + 0x5c], 1
mov dword [esp + 0x14], eax
jne 0x100a8e97
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
not eax
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
lea eax, [edx*4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ecx
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp dword [esp + 0x40], 0
je 0x100a8f73
mov eax, dword [ebp + 4]
mov ecx, ebx
shr eax, cl
mov ecx, esi
not ecx
and ecx, edx
and eax, esi
or eax, ecx
mov edx, eax
mov eax, dword [edi]
add ebp, dword [esp + 0x5c]
mov ecx, eax
and eax, dword [esp + 0x70]
not ecx
and ecx, edx
and ecx, dword [esp + 0x24]
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a8f50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a9021
cmp dword [esp + 0x60], 0
jle 0x100a9021
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a8fec
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a8ff0
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a8ff0
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, ecx
and ecx, dword [esp + 0x54]
or ebx, edi
not ebx
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a8fc1
cmp dword [esp + 0x2c], 0
je 0x100a90b4
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a90b4
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
test edi, edi
jle 0x100a9093
mov edx, dword [esp + 0x18]
mov ecx, esi
not ecx
mov dword [esp + 0x70], ecx
sub edx, eax
mov dword [esp + 0x54], edi
lea ebx, [ebx]
mov edi, dword [edx + eax + 4]
mov ebp, dword [edx + eax]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
or edi, dword [eax - 4]
sub dword [esp + 0x54], 1
not edi
mov dword [eax - 4], edi
jne 0x100a9060
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x18], ecx
sub dword [esp + 0x5c], 1
mov dword [esp + 0x14], eax
jne 0x100a9044
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
not eax
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
lea eax, [edx*4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ecx
nop
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp dword [esp + 0x40], 0
je 0x100a9123
mov eax, dword [ebp + 4]
mov ecx, ebx
shr eax, cl
mov ecx, esi
not ecx
and ecx, edx
and eax, esi
or eax, ecx
mov edx, eax
mov eax, dword [edi]
add ebp, dword [esp + 0x5c]
mov ecx, eax
and eax, dword [esp + 0x70]
or ecx, edx
not ecx
and ecx, dword [esp + 0x24]
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a9100
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a91d1
cmp dword [esp + 0x60], 0
jle 0x100a91d1
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a919c
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a91a0
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a91a0
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, ecx
and ecx, dword [esp + 0x54]
and ebx, edi
not ebx
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a9171
cmp dword [esp + 0x2c], 0
je 0x100a9264
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a9264
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
test edi, edi
jle 0x100a9243
mov edx, dword [esp + 0x18]
mov ecx, esi
not ecx
mov dword [esp + 0x70], ecx
sub edx, eax
mov dword [esp + 0x54], edi
lea ebx, [ebx]
mov edi, dword [edx + eax + 4]
mov ebp, dword [edx + eax]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
and edi, dword [eax - 4]
sub dword [esp + 0x54], 1
not edi
mov dword [eax - 4], edi
jne 0x100a9210
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x18], ecx
sub dword [esp + 0x5c], 1
mov dword [esp + 0x14], eax
jne 0x100a91f4
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
not eax
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
lea eax, [edx*4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ecx
nop
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp dword [esp + 0x40], 0
je 0x100a92d3
mov eax, dword [ebp + 4]
mov ecx, ebx
shr eax, cl
mov ecx, esi
not ecx
and ecx, edx
and eax, esi
or eax, ecx
mov edx, eax
mov eax, dword [edi]
add ebp, dword [esp + 0x5c]
mov ecx, eax
and eax, dword [esp + 0x70]
and ecx, edx
not ecx
and ecx, dword [esp + 0x24]
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a92b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
test ecx, ecx
je 0x100a9381
cmp dword [esp + 0x60], 0
jle 0x100a9381
mov ecx, ebp
not ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x34], 0
mov edi, dword [edx]
jne 0x100a934c
mov ecx, dword [esp + 0x10]
shl edi, cl
cmp dword [esp + 0x3c], 0
je 0x100a9350
mov ecx, ebx
mov ebx, dword [edx + 4]
shr ebx, cl
mov ecx, esi
not ecx
and ecx, edi
and ebx, esi
or ebx, ecx
mov edi, ebx
jmp 0x100a9350
mov ecx, ebx
shr edi, cl
mov ecx, dword [eax]
mov ebx, ecx
and ecx, dword [esp + 0x54]
xor ebx, edi
not ebx
and ebx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov dword [eax], ebx
mov ebx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add edx, ecx
sub dword [esp + 0x5c], 1
jne 0x100a9321
cmp dword [esp + 0x2c], 0
je 0x100a9414
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x100a9414
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
test edi, edi
jle 0x100a93f3
mov edx, dword [esp + 0x18]
mov ecx, esi
not ecx
mov dword [esp + 0x70], ecx
sub edx, eax
mov dword [esp + 0x54], edi
lea ebx, [ebx]
mov edi, dword [eax + edx + 4]
mov ebp, dword [eax + edx]
mov ecx, ebx
shr edi, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
add eax, 4
and edi, esi
and ebp, dword [esp + 0x70]
or edi, ebp
xor edi, dword [eax - 4]
sub dword [esp + 0x54], 1
not edi
mov dword [eax - 4], edi
jne 0x100a93c0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
add ecx, ecx
add ecx, ecx
add dword [esp + 0x18], ecx
sub dword [esp + 0x5c], 1
mov dword [esp + 0x14], eax
jne 0x100a93a4
cmp dword [esp + 0x38], 0
je 0x100a94cb
mov ecx, dword [esp + 0x60]
test ecx, ecx
jle 0x100a94cb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
not eax
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
lea eax, [edx*4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], ecx
nop
mov edx, dword [ebp]
mov ecx, dword [esp + 0x10]
shl edx, cl
cmp dword [esp + 0x40], 0
je 0x100a9483
mov eax, dword [ebp + 4]
mov ecx, ebx
shr eax, cl
mov ecx, esi
not ecx
and ecx, edx
and eax, esi
or eax, ecx
mov edx, eax
mov eax, dword [edi]
add ebp, dword [esp + 0x5c]
mov ecx, eax
and eax, dword [esp + 0x70]
xor ecx, edx
not ecx
and ecx, dword [esp + 0x24]
or ecx, eax
mov dword [edi], ecx
add edi, dword [esp + 0x54]
sub dword [esp + 0x64], 1
jne 0x100a9460
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov edx, dword [esp + 0x64]
push edx
push str.Operation__x_invalid_n
call dword [sym.imp.MSVCR90.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret