Function at 0x100a6a10
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x18]
push ebp
mov ebp, ecx
push esi
mov esi, dword [esp + 0x30]
sar ebp, 5
push edi
mov edi, dword [esp + 0x20]
and ecx, 0x1f
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], ecx
je 0x100a6a40
mov ecx, dword [ecx*4 + 0x10147fd8]
mov dword [esp + 0x10], ecx
mov ecx, esi
imul ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x2c]
sar edx, 5
add ecx, edx
mov edx, dword [esp + 0x30]
lea ecx, [edx + ecx*4]
mov edx, edi
imul edx, dword [esp + 0x28]
sar ebx, 5
add edx, ebx
mov ebx, dword [esp + 0x1c]
lea edx, [ebx + edx*4]
lea ebx, [ebp - 2]
cmp ebx, 0x1a
ja case.0x100a6a7d.3
movzx ebx, byte [ebx + 0x100a6ffc]
jmp dword [ebx*4 + 0x100a6fc8]
test eax, eax
jle 0x100a6fbf
mov ebx, dword [esp + 0x10]
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
mov ebp, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebp, ebp
jle 0x100a6ac3
mov ebx, ebp
mov edi, edi
mov ebp, dword [edi]
mov dword [esi], ebp
add esi, 4
add edi, 4
sub ebx, 1
jne 0x100a6ab0
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x14], 0
je 0x100a6ad8
mov edi, dword [edi]
mov ebp, ebx
not ebp
and ebp, dword [esi]
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6aa0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
mov ebx, dword [esp + 0x10]
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
lea esp, [esp]
mov ebp, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebp, ebp
jle 0x100a6b35
mov ebx, ebp
mov edi, edi
mov ebp, dword [edi]
not ebp
mov dword [esi], ebp
add esi, 4
add edi, 4
sub ebx, 1
jne 0x100a6b20
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x14], 0
je 0x100a6b4c
mov edi, dword [edi]
mov ebp, ebx
not ebp
and ebp, dword [esi]
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6b10
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
lea esp, [esp]
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6b9f
lea esp, [esp]
mov ebp, dword [edi]
or dword [esi], ebp
add esi, 4
add edi, 4
sub ebx, 1
jne 0x100a6b90
cmp dword [esp + 0x14], 0
je 0x100a6bba
mov ebp, dword [edi]
mov ebx, dword [esi]
mov edi, dword [esp + 0x10]
or ebp, ebx
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6b80
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
mov ebx, dword [esp + 0x20]
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
jmp 0x100a6bf0
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6c0b
mov ebp, dword [edi]
and dword [esi], ebp
add esi, 4
add edi, 4
sub ebx, 1
jne 0x100a6bf8
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x14], 0
je 0x100a6c20
mov ebp, dword [edi]
mov edi, dword [esp + 0x10]
and ebp, edi
not edi
or ebp, edi
and dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6bf0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
lea ecx, [ecx]
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6c6f
lea esp, [esp]
mov ebp, dword [edi]
xor dword [esi], ebp
add esi, 4
add edi, 4
sub ebx, 1
jne 0x100a6c60
cmp dword [esp + 0x14], 0
je 0x100a6c8a
mov ebp, dword [edi]
mov ebx, dword [esi]
mov edi, dword [esp + 0x10]
xor ebp, ebx
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6c50
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6cd4
mov ebp, dword [edi]
not ebp
or dword [esi], ebp
add esi, 4
add edi, 4
sub ebx, 1
jne 0x100a6cc3
cmp dword [esp + 0x14], 0
je 0x100a6cf1
mov ebp, dword [edi]
mov ebx, dword [esi]
mov edi, dword [esp + 0x10]
not ebp
or ebp, ebx
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6cb7
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
mov ebx, dword [esp + 0x20]
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6d45
lea ebx, [ebx]
mov ebp, dword [edi]
not ebp
and dword [esi], ebp
add esi, 4
add edi, 4
sub ebx, 1
jne 0x100a6d30
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x14], 0
je 0x100a6d5c
mov ebp, dword [edi]
mov edi, dword [esp + 0x10]
not ebp
and ebp, edi
not edi
or ebp, edi
and dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6d22
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
lea esp, [esp]
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6db4
lea esp, [esp]
mov ebp, dword [esi]
not ebp
or ebp, dword [edi]
add esi, 4
mov dword [esi - 4], ebp
add edi, 4
sub ebx, 1
jne 0x100a6da0
cmp dword [esp + 0x14], 0
je 0x100a6dd1
mov ebx, dword [esi]
mov ebp, ebx
not ebp
or ebp, dword [edi]
mov edi, dword [esp + 0x10]
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6d90
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
mov edi, edi
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6e24
lea esp, [esp]
mov ebp, dword [esi]
not ebp
and ebp, dword [edi]
add esi, 4
mov dword [esi - 4], ebp
add edi, 4
sub ebx, 1
jne 0x100a6e10
cmp dword [esp + 0x14], 0
je 0x100a6e41
mov ebx, dword [esi]
mov ebp, ebx
not ebp
and ebp, dword [edi]
mov edi, dword [esp + 0x10]
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6e00
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
mov edi, edi
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6e94
lea esp, [esp]
mov ebp, dword [esi]
or ebp, dword [edi]
add esi, 4
not ebp
mov dword [esi - 4], ebp
add edi, 4
sub ebx, 1
jne 0x100a6e80
cmp dword [esp + 0x14], 0
je 0x100a6eb1
mov ebp, dword [edi]
mov ebx, dword [esi]
mov edi, dword [esp + 0x10]
or ebp, ebx
not ebp
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6e70
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
mov edi, edi
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6f04
lea esp, [esp]
mov ebp, dword [esi]
and ebp, dword [edi]
add esi, 4
not ebp
mov dword [esi - 4], ebp
add edi, 4
sub ebx, 1
jne 0x100a6ef0
cmp dword [esp + 0x14], 0
je 0x100a6f21
mov ebx, dword [esi]
mov ebp, ebx
and ebp, dword [edi]
mov edi, dword [esp + 0x10]
not ebp
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6ee0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
jle 0x100a6fbf
add edi, edi
add edi, edi
add esi, esi
add esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], esi
mov edi, edi
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov esi, edx
test ebx, ebx
jle 0x100a6f74
lea esp, [esp]
mov ebp, dword [esi]
xor ebp, dword [edi]
add esi, 4
not ebp
mov dword [esi - 4], ebp
add edi, 4
sub ebx, 1
jne 0x100a6f60
cmp dword [esp + 0x14], 0
je 0x100a6f91
mov ebp, dword [edi]
mov ebx, dword [esi]
mov edi, dword [esp + 0x10]
xor ebp, ebx
not ebp
and ebp, edi
not edi
and edi, ebx
or ebp, edi
mov dword [esi], ebp
add ecx, dword [esp + 0x34]
add edx, dword [esp + 0x24]
sub eax, 1
jne 0x100a6f50
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push ebp
push str.Operation__d_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, 8
ret