Function at 0x100a7020
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov ebx, eax
mov edi, ecx
mov eax, edi
and eax, 0x1f
mov esi, 0
jne 0x100a7049
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
jmp 0x100a708c
mov esi, 0x20
sub esi, eax
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x38]
mov edx, dword [esi*4 + 0x10148060]
sar ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x4c]
imul ecx, dword [esp + 0x50]
mov ebp, ebx
sar ebp, 5
add ecx, ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x18], 1
lea ecx, [ebp + ecx*4]
cmp dword [esp + 0x3c], esi
jl 0x100a70b1
mov ebp, dword [esp + 0x3c]
sub ebp, esi
sar ebp, 5
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], ebp
test ebp, ebp
jne 0x100a70d2
mov dword [esp + 0x20], ebp
jmp 0x100a7129
mov ebp, dword [esp + 0x3c]
sub ebp, esi
and edx, dword [ebp*4 + 0x10148058]
xor esi, esi
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], esi
jmp 0x100a7129
cmp dword [esp + 0x18], 0
mov dword [esp + 0x20], 1
je 0x100a70f1
lea esi, [eax + 4]
lea ebp, [ecx + 4]
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], ebp
jmp 0x100a712d
mov esi, dword [esp + 0x34]
imul esi, dword [esp + 0x38]
mov ebp, edi
sar ebp, 5
add esi, ebp
mov ebp, dword [esp + 0x30]
lea esi, [ebp + esi*4]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x4c]
imul esi, dword [esp + 0x50]
mov ebp, ebx
sar ebp, 5
add esi, ebp
mov ebp, dword [esp + 0x48]
lea esi, [ebp + esi*4]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x3c]
add ebp, edi
and ebp, 0x1f
cmp dword [esp + 0x28], 1
je 0x100a71aa
test ebp, ebp
je 0x100a71aa
cmp dword [esp + 0x18], 0
mov ebp, dword [ebp*4 + 0x10147fd8]
mov dword [esp + 0x28], 1
mov dword [esp + 0x10], ebp
je 0x100a716d
mov ebx, dword [esp + 0x1c]
lea edi, [eax + ebx*4 + 4]
lea ebx, [ecx + ebx*4 + 4]
mov dword [esp + 0x3c], ebx
jmp 0x100a71b6
mov ebp, dword [esp + 0x34]
imul ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
add ebp, esi
sar edi, 5
add edi, ebp
mov ebp, dword [esp + 0x30]
lea edi, [ebp + edi*4]
mov ebp, dword [esp + 0x4c]
imul ebp, dword [esp + 0x50]
add ebp, esi
mov esi, dword [esp + 0x48]
sar ebx, 5
add ebx, ebp
lea esi, [esi + ebx*4]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x24]
jmp 0x100a71b6
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x28], 0
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
add ebp, 0xfffffffe
cmp ebp, 0x1a
ja case.0x100a71d1.3
movzx ebp, byte [ebp + 0x100a7e48]
jmp dword [ebp*4 + 0x100a7e14]
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a7226
test ebp, ebp
jle 0x100a7226
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x24], ebp
jmp 0x100a71f9
mov ebx, dword [esp + 0x44]
and ebx, dword [eax]
mov ebp, edx
and ebp, dword [ecx]
or ebx, ebp
mov dword [eax], ebx
mov ebx, dword [esp + 0x34]
add ebx, ebx
add ebx, ebx
add eax, ebx
mov ebx, dword [esp + 0x4c]
add ebx, ebx
add ebx, ebx
add ecx, ebx
sub dword [esp + 0x24], 1
jne 0x100a71f5
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
cmp dword [esp + 0x20], 0
je 0x100a726f
test ebp, ebp
jle 0x100a726f
mov dword [esp + 0x44], ebp
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7254
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov ebp, dword [ecx + eax]
mov dword [eax], ebp
add eax, 4
sub edx, 1
jne 0x100a7243
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7235
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
add edx, edx
add esi, esi
add edx, edx
not eax
add esi, esi
mov ecx, ebp
lea ebx, [ebx]
mov ebx, dword [esp + 0x3c]
mov ebx, dword [ebx]
and ebx, dword [esp + 0x10]
add dword [esp + 0x3c], esi
mov ebp, eax
and ebp, dword [edi]
or ebx, ebp
mov dword [edi], ebx
add edi, edx
sub ecx, 1
jne 0x100a72a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a7315
test ebp, ebp
jle 0x100a7315
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x24], ebp
jmp 0x100a72e6
mov ebx, dword [esp + 0x44]
and ebx, dword [eax]
mov ebp, dword [ecx]
not ebp
and ebp, edx
or ebp, ebx
mov ebx, dword [esp + 0x34]
add ebx, ebx
add ebx, ebx
mov dword [eax], ebp
add eax, ebx
mov ebx, dword [esp + 0x4c]
add ebx, ebx
add ebx, ebx
add ecx, ebx
sub dword [esp + 0x24], 1
jne 0x100a72e2
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
cmp dword [esp + 0x20], 0
je 0x100a7360
test ebp, ebp
jle 0x100a7360
mov dword [esp + 0x44], ebp
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7345
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov ebp, dword [eax + ecx]
not ebp
mov dword [eax], ebp
add eax, 4
sub edx, 1
jne 0x100a7332
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7324
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
add edx, edx
add esi, esi
add edx, edx
not eax
add esi, esi
mov ecx, ebp
jmp 0x100a7390
mov ebx, dword [esp + 0x3c]
mov ebx, dword [ebx]
add dword [esp + 0x3c], esi
not ebx
and ebx, dword [esp + 0x10]
mov ebp, eax
and ebp, dword [edi]
or ebx, ebp
mov dword [edi], ebx
add edi, edx
sub ecx, 1
jne 0x100a7390
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a7405
test ebp, ebp
jle 0x100a7405
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebp
mov edi, edi
mov esi, dword [eax]
mov ebp, dword [ecx]
or ebp, esi
and esi, ebx
and ebp, edx
or ebp, esi
mov esi, dword [esp + 0x34]
add esi, esi
add esi, esi
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x44], 1
jne 0x100a73d0
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a744e
test ebp, ebp
jle 0x100a744e
mov dword [esp + 0x44], ebp
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7433
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov ebp, dword [eax + ecx]
or dword [eax], ebp
add eax, 4
sub edx, 1
jne 0x100a7422
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7414
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
add esi, esi
add ebx, ebx
add esi, esi
not ecx
add ebx, ebx
mov edx, ebp
lea esp, [esp]
mov eax, dword [edi]
mov ebp, dword [esp + 0x3c]
mov ebp, dword [ebp]
add dword [esp + 0x3c], ebx
or ebp, eax
and ebp, dword [esp + 0x10]
and eax, ecx
or ebp, eax
mov dword [edi], ebp
add edi, esi
sub edx, 1
jne 0x100a7480
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
je 0x100a74e9
cmp dword [esp + 0x40], 0
jle 0x100a74e9
mov ebx, dword [esp + 0x40]
mov ebp, edx
not ebp
mov dword [esp + 0x44], ebx
mov ebx, edx
and ebx, dword [ecx]
or ebx, ebp
and dword [eax], ebx
mov ebx, dword [esp + 0x34]
add ebx, ebx
add ebx, ebx
add eax, ebx
mov ebx, dword [esp + 0x4c]
add ebx, ebx
add ebx, ebx
add ecx, ebx
sub dword [esp + 0x44], 1
jne 0x100a74c2
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a7538
cmp dword [esp + 0x40], 0
jle 0x100a7538
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], edx
nop
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a751d
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov edi, edi
mov ebp, dword [eax + ecx]
and dword [eax], ebp
add eax, 4
sub edx, 1
jne 0x100a7510
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7500
cmp dword [esp + 0x28], 0
je 0x100a7e0c
mov ecx, dword [esp + 0x40]
test ecx, ecx
jle 0x100a7e0c
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x4c]
add edx, edx
mov eax, ebx
add esi, esi
add edx, edx
not eax
add esi, esi
jmp 0x100a7570
mov ebp, dword [esp + 0x3c]
mov ebp, dword [ebp]
add dword [esp + 0x3c], esi
and ebp, ebx
or ebp, eax
and dword [edi], ebp
add edi, edx
sub ecx, 1
jne 0x100a7570
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a75e9
test ebp, ebp
jle 0x100a75e9
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebp
jmp 0x100a75b4
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov ebp, dword [ecx]
xor ebp, esi
and ebx, esi
mov esi, dword [esp + 0x34]
add esi, esi
and ebp, edx
add esi, esi
or ebp, ebx
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x18], 1
jne 0x100a75b0
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a7632
test ebp, ebp
jle 0x100a7632
mov dword [esp + 0x44], ebp
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7617
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov ebp, dword [eax + ecx]
xor dword [eax], ebp
add eax, 4
sub edx, 1
jne 0x100a7606
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a75f8
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
lea edx, [eax*4]
add esi, esi
mov dword [esp + 0x44], edx
not ecx
add esi, esi
mov edx, ebp
mov ebx, dword [ebx]
mov eax, dword [edi]
xor ebx, eax
and ebx, dword [esp + 0x10]
mov ebp, ecx
and ebp, eax
or ebx, ebp
mov dword [edi], ebx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
add edi, esi
sub edx, 1
mov dword [esp + 0x3c], ebx
jne 0x100a7668
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a76ed
test ebp, ebp
jle 0x100a76ed
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebp
jmp 0x100a76b6
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov ebp, dword [ecx]
and ebx, esi
not ebp
or ebp, esi
mov esi, dword [esp + 0x34]
add esi, esi
and ebp, edx
add esi, esi
or ebp, ebx
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x18], 1
jne 0x100a76b2
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a773e
test ebp, ebp
jle 0x100a773e
mov dword [esp + 0x44], ebp
lea esp, [esp]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7723
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov edi, edi
mov ebp, dword [eax + ecx]
not ebp
or dword [eax], ebp
add eax, 4
sub edx, 1
jne 0x100a7710
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7700
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
lea edx, [eax*4]
add esi, esi
mov dword [esp + 0x44], edx
not ecx
add esi, esi
mov edx, ebp
mov ebx, dword [ebx]
mov eax, dword [edi]
not ebx
or ebx, eax
and ebx, dword [esp + 0x10]
mov ebp, ecx
and ebp, eax
or ebx, ebp
mov dword [edi], ebx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
add edi, esi
sub edx, 1
mov dword [esp + 0x3c], ebx
jne 0x100a7774
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
je 0x100a77e9
cmp dword [esp + 0x40], 0
jle 0x100a77e9
mov ebx, dword [esp + 0x40]
mov ebp, edx
not ebp
mov dword [esp + 0x44], ebx
lea ecx, [ecx]
mov ebx, dword [ecx]
not ebx
and ebx, edx
or ebx, ebp
and dword [eax], ebx
mov ebx, dword [esp + 0x34]
add ebx, ebx
add ebx, ebx
add eax, ebx
mov ebx, dword [esp + 0x4c]
add ebx, ebx
add ebx, ebx
add ecx, ebx
sub dword [esp + 0x44], 1
jne 0x100a77c0
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a783a
cmp dword [esp + 0x40], 0
jle 0x100a783a
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], eax
nop
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a781f
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov edi, edi
mov ebp, dword [eax + ecx]
not ebp
and dword [eax], ebp
add eax, 4
sub edx, 1
jne 0x100a7810
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7800
cmp dword [esp + 0x28], 0
je 0x100a7e0c
mov ecx, dword [esp + 0x40]
test ecx, ecx
jle 0x100a7e0c
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x4c]
add edx, edx
mov eax, ebx
add esi, esi
add edx, edx
not eax
add esi, esi
lea esp, [esp]
mov ebp, dword [esp + 0x3c]
mov ebp, dword [ebp]
add dword [esp + 0x3c], esi
not ebp
and ebp, ebx
or ebp, eax
and dword [edi], ebp
add edi, edx
sub ecx, 1
jne 0x100a7870
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a78eb
test ebp, ebp
jle 0x100a78eb
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebp
jmp 0x100a78b4
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov ebp, esi
and ebx, esi
mov esi, dword [esp + 0x34]
not ebp
or ebp, dword [ecx]
add esi, esi
and ebp, edx
add esi, esi
or ebp, ebx
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x18], 1
jne 0x100a78b0
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a7941
test ebp, ebp
jle 0x100a7941
mov dword [esp + 0x44], ebp
lea ebx, [ebx]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7926
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov edi, edi
mov ebp, dword [eax]
not ebp
or ebp, dword [eax + ecx]
add eax, 4
sub edx, 1
mov dword [eax - 4], ebp
jne 0x100a7910
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7900
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
lea eax, [edx*4]
add esi, esi
not ecx
add esi, esi
mov dword [esp + 0x44], eax
mov edx, ebp
mov eax, dword [edi]
mov ebp, eax
not ebp
or ebp, dword [ebx]
mov ebx, ecx
and ebp, dword [esp + 0x10]
and ebx, eax
or ebp, ebx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
mov dword [edi], ebp
add edi, esi
sub edx, 1
mov dword [esp + 0x3c], ebx
jne 0x100a7977
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a79fe
test ebp, ebp
jle 0x100a79fe
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebp
jmp 0x100a79c7
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov ebp, esi
and ebx, esi
mov esi, dword [esp + 0x34]
not ebp
and ebp, edx
and ebp, dword [ecx]
add esi, esi
add esi, esi
or ebp, ebx
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x18], 1
jne 0x100a79c3
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a7a56
test ebp, ebp
jle 0x100a7a56
mov dword [esp + 0x24], ebp
lea ecx, [ecx]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7a3b
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov dword [esp + 0x44], edx
mov edx, dword [eax]
mov ebp, dword [eax + ecx]
not edx
and ebp, edx
mov dword [eax], ebp
add eax, 4
sub dword [esp + 0x44], 1
jne 0x100a7a22
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x24], 1
jne 0x100a7a10
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
lea edx, [eax*4]
add esi, esi
mov dword [esp + 0x44], edx
not ecx
add esi, esi
mov edx, ebp
lea esp, [esp]
mov eax, dword [edi]
mov ebp, eax
not ebp
and ebp, dword [ebx]
mov ebx, ecx
and ebp, dword [esp + 0x10]
and ebx, eax
or ebp, ebx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
mov dword [edi], ebp
add edi, esi
sub edx, 1
mov dword [esp + 0x3c], ebx
jne 0x100a7a90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a7b1b
test ebp, ebp
jle 0x100a7b1b
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebp
jmp 0x100a7ae4
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov ebp, dword [ecx]
or ebp, esi
and ebx, esi
mov esi, dword [esp + 0x34]
not ebp
add esi, esi
and ebp, edx
add esi, esi
or ebp, ebx
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x18], 1
jne 0x100a7ae0
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a7b71
test ebp, ebp
jle 0x100a7b71
mov dword [esp + 0x44], ebp
lea ebx, [ebx]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7b56
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov edi, edi
mov ebp, dword [ecx + eax]
or ebp, dword [eax]
add eax, 4
sub edx, 1
not ebp
mov dword [eax - 4], ebp
jne 0x100a7b40
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7b30
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
lea edx, [eax*4]
add esi, esi
mov dword [esp + 0x44], edx
not ecx
add esi, esi
mov edx, ebp
mov ebx, dword [ebx]
mov eax, dword [edi]
or ebx, eax
not ebx
and ebx, dword [esp + 0x10]
mov ebp, ecx
and ebp, eax
or ebx, ebp
mov dword [edi], ebx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
add edi, esi
sub edx, 1
mov dword [esp + 0x3c], ebx
jne 0x100a7ba7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a7c2e
test ebp, ebp
jle 0x100a7c2e
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebp
jmp 0x100a7bf7
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov ebp, esi
and ebp, dword [ecx]
and ebx, esi
mov esi, dword [esp + 0x34]
not ebp
add esi, esi
and ebp, edx
add esi, esi
or ebp, ebx
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x18], 1
jne 0x100a7bf3
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a7c81
test ebp, ebp
jle 0x100a7c81
mov dword [esp + 0x44], ebp
lea ecx, [ecx]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7c66
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov edi, edi
mov ebp, dword [ecx + eax]
and ebp, dword [eax]
add eax, 4
sub edx, 1
not ebp
mov dword [eax - 4], ebp
jne 0x100a7c50
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7c40
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
lea edx, [eax*4]
add esi, esi
mov dword [esp + 0x44], edx
not ecx
add esi, esi
mov edx, ebp
mov ebx, dword [ebx]
mov eax, dword [edi]
and ebx, eax
not ebx
and ebx, dword [esp + 0x10]
mov ebp, ecx
and ebp, eax
or ebx, ebp
mov dword [edi], ebx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
add edi, esi
sub edx, 1
mov dword [esp + 0x3c], ebx
jne 0x100a7cb7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp dword [esp + 0x18], 0
mov ebp, dword [esp + 0x40]
je 0x100a7d3e
test ebp, ebp
jle 0x100a7d3e
mov ebx, edx
not ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebp
jmp 0x100a7d07
mov ebx, dword [esp + 0x44]
mov esi, dword [eax]
mov ebp, dword [ecx]
xor ebp, esi
and ebx, esi
mov esi, dword [esp + 0x34]
not ebp
add esi, esi
and ebp, edx
add esi, esi
or ebp, ebx
mov dword [eax], ebp
add eax, esi
mov esi, dword [esp + 0x4c]
add esi, esi
add esi, esi
add ecx, esi
sub dword [esp + 0x18], 1
jne 0x100a7d03
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x100a7d91
test ebp, ebp
jle 0x100a7d91
mov dword [esp + 0x44], ebp
lea ecx, [ecx]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x100a7d76
mov ecx, ebx
mov eax, esi
sub ecx, esi
mov edi, edi
mov ebp, dword [ecx + eax]
xor ebp, dword [eax]
add eax, 4
sub edx, 1
not ebp
mov dword [eax - 4], ebp
jne 0x100a7d60
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
add eax, eax
add eax, eax
add ebx, eax
sub dword [esp + 0x44], 1
jne 0x100a7d50
cmp dword [esp + 0x28], 0
je 0x100a7e0c
test ebp, ebp
jle 0x100a7e0c
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
lea edx, [eax*4]
add esi, esi
mov dword [esp + 0x44], edx
not ecx
add esi, esi
mov edx, ebp
nop
mov ebx, dword [ebx]
mov eax, dword [edi]
xor ebx, eax
not ebx
and ebx, dword [esp + 0x10]
mov ebp, ecx
and ebp, eax
or ebx, ebp
mov dword [edi], ebx
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x44]
add edi, esi
sub edx, 1
mov dword [esp + 0x3c], ebx
jne 0x100a7dc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov eax, dword [esp + 0x44]
push eax
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, 0x1c
ret