Function at 0x6fa156f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
test ebx, ebx
je 0x6fa15bab
test esi, esi
jne 0x6fa15717
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x6fa15b88
mov edx, dword [ebx + 0x10f8]
mov eax, 0x10
test edx, edx
jne 0x6fa15a74
cmp dword [ebx + 0x10fc], 0xf
ja 0x6fa15a74
mov eax, dword [ebx + 0x10f0]
mov dword [esp], eax
call fcn.6fa1c390
test eax, eax
jne 0x6fa15a74
mov edi, dword [ebx + 0x10fc]
mov ebp, dword [esp + 0x48]
add ebp, edi
cmp ebp, 0xc
jbe 0x6fa15765
or dword [ebx + 0x10f4], 1
xor ebp, ebp
test edi, edi
jne 0x6fa15a25
mov ecx, dword [esp + 0x48]
and ecx, 0xfffffff0
je 0x6fa15ba4
lea edx, [ecx - 1]
mov dword [esp + 0x1c], eax
mov eax, dword [esi]
xor dword [ebx + 0x10b0], eax
mov dword [esp + 0x14], ecx
lea edi, [ebx + 0x10b0]
mov ebp, dword [esi + 4]
shr edx, 4
xor dword [ebx + 0x10b4], ebp
mov ecx, dword [esi + 8]
and edx, 3
xor dword [ebx + 0x10b8], ecx
mov dword [esp + 0x18], edx
mov ebp, 0x10
mov edx, dword [esi + 0xc]
xor dword [ebx + 0x10bc], edx
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
mov ecx, dword [esp + 0x18]
adc dword [ebx + 0x1104], 0
cmp dword [esp + 0x14], 0x10
mov eax, dword [esp + 0x1c]
jbe 0x6fa15a23
test ecx, ecx
je 0x6fa158fb
cmp ecx, 1
je 0x6fa158a2
cmp ecx, 2
je 0x6fa15853
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x10]
xor dword [ebx + 0x10b0], eax
mov ebp, dword [esi + 0x14]
xor dword [ebx + 0x10b4], ebp
mov ebp, 0x20
mov edx, dword [esi + 0x18]
xor dword [ebx + 0x10b8], edx
mov ecx, dword [esi + 0x1c]
xor dword [ebx + 0x10bc], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
mov eax, dword [esp + 0x18]
adc dword [ebx + 0x1104], 0
mov dword [esp + 0x18], eax
mov eax, dword [esi + ebp]
xor dword [ebx + 0x10b0], eax
mov edx, dword [esi + ebp + 4]
xor dword [ebx + 0x10b4], edx
mov ecx, dword [esi + ebp + 8]
xor dword [ebx + 0x10b8], ecx
mov eax, dword [esi + ebp + 0xc]
xor dword [ebx + 0x10bc], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
mov eax, dword [esp + 0x18]
add dword [ebx + 0x1100], 0x80
adc dword [ebx + 0x1104], 0
add ebp, 0x10
mov edx, dword [esi + ebp]
xor dword [ebx + 0x10b0], edx
mov ecx, dword [esi + ebp + 4]
xor dword [ebx + 0x10b4], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esi + ebp + 8]
xor dword [ebx + 0x10b8], eax
mov edx, dword [esi + ebp + 0xc]
xor dword [ebx + 0x10bc], edx
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
mov eax, dword [esp + 0x18]
adc dword [ebx + 0x1104], 0
add ebp, 0x10
cmp dword [esp + 0x14], ebp
jbe 0x6fa15a23
mov dword [esp + 0x18], eax
mov ecx, dword [esi + ebp]
xor dword [ebx + 0x10b0], ecx
mov eax, dword [esi + ebp + 4]
xor dword [ebx + 0x10b4], eax
mov edx, dword [esi + ebp + 8]
xor dword [ebx + 0x10b8], edx
mov ecx, dword [esi + ebp + 0xc]
xor dword [ebx + 0x10bc], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
adc dword [ebx + 0x1104], 0
mov eax, dword [esi + ebp + 0x10]
xor dword [ebx + 0x10b0], eax
mov edx, dword [esi + ebp + 0x14]
xor dword [ebx + 0x10b4], edx
mov ecx, dword [esi + ebp + 0x18]
xor dword [ebx + 0x10b8], ecx
mov eax, dword [esi + ebp + 0x1c]
xor dword [ebx + 0x10bc], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
adc dword [ebx + 0x1104], 0
mov edx, dword [esi + ebp + 0x20]
xor dword [ebx + 0x10b0], edx
mov ecx, dword [esi + ebp + 0x24]
xor dword [ebx + 0x10b4], ecx
mov eax, dword [esi + ebp + 0x28]
xor dword [ebx + 0x10b8], eax
mov edx, dword [esi + ebp + 0x2c]
xor dword [ebx + 0x10bc], edx
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
adc dword [ebx + 0x1104], 0
mov ecx, dword [esi + ebp + 0x30]
xor dword [ebx + 0x10b0], ecx
mov eax, dword [esi + ebp + 0x34]
xor dword [ebx + 0x10b4], eax
mov edx, dword [esi + ebp + 0x38]
xor dword [ebx + 0x10b8], edx
mov ecx, dword [esi + ebp + 0x3c]
xor dword [ebx + 0x10bc], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
adc dword [ebx + 0x1104], 0
add ebp, 0x40
cmp dword [esp + 0x14], ebp
ja 0x6fa158ff
mov eax, dword [esp + 0x18]
add esi, ebp
cmp dword [esp + 0x48], ebp
jbe 0x6fa15a74
mov edi, dword [esp + 0x48]
mov ecx, dword [ebx + 0x10fc]
mov dword [esp + 0x14], eax
sub edi, ebp
mov ebp, edi
lea edi, [ebx + 0x10b0]
add ebp, esi
lea edx, [ecx + 1]
add esi, 1
mov dword [ebx + 0x10fc], edx
movzx eax, byte [esi - 1]
cmp edx, 0x10
mov byte [ebx + ecx + 0x10e0], al
je 0x6fa15a80
cmp esi, ebp
je 0x6fa15a70
mov ecx, edx
jmp 0x6fa15a45
mov eax, dword [esp + 0x14]
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx ecx, byte [ebx + 0x10e0]
movzx edx, byte [ebx + 0x10e1]
xor byte [ebx + 0x10b0], cl
xor byte [ebx + 0x10b1], dl
movzx eax, byte [ebx + 0x10e2]
movzx ecx, byte [ebx + 0x10e3]
movzx edx, byte [ebx + 0x10e4]
xor byte [ebx + 0x10b2], al
xor byte [ebx + 0x10b3], cl
xor byte [ebx + 0x10b4], dl
movzx eax, byte [ebx + 0x10e5]
movzx ecx, byte [ebx + 0x10e6]
movzx edx, byte [ebx + 0x10e7]
xor byte [ebx + 0x10b5], al
xor byte [ebx + 0x10b6], cl
movzx eax, byte [ebx + 0x10e8]
xor byte [ebx + 0x10b7], dl
movzx ecx, byte [ebx + 0x10e9]
movzx edx, byte [ebx + 0x10ea]
xor byte [ebx + 0x10b8], al
xor byte [ebx + 0x10b9], cl
xor byte [ebx + 0x10ba], dl
movzx eax, byte [ebx + 0x10eb]
movzx ecx, byte [ebx + 0x10ec]
xor byte [ebx + 0x10bb], al
xor byte [ebx + 0x10bc], cl
movzx edx, byte [ebx + 0x10ed]
movzx eax, byte [ebx + 0x10ee]
movzx ecx, byte [ebx + 0x10ef]
xor byte [ebx + 0x10bd], dl
xor byte [ebx + 0x10be], al
xor byte [ebx + 0x10bf], cl
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.6fa15fa0
add dword [ebx + 0x1100], 0x80
mov dword [ebx + 0x10fc], 0
adc dword [ebx + 0x1104], 0
cmp esi, ebp
je 0x6fa15a70
xor edx, edx
mov ecx, edx
jmp 0x6fa15a45
mov dword [esp + 8], 0x21
mov dword [esp + 4], str.src_encauth_gcm_gcm_add_iv.c
mov dword [esp], str.IV___NULL
call fcn.6fa1c350
mov ebp, edi
jmp 0x6fa15a25
mov dword [esp + 8], 0x1f
mov dword [esp + 4], str.src_encauth_gcm_gcm_add_iv.c
mov dword [esp], 0x6fab107d
call fcn.6fa1c350
nop
nop
nop
nop
nop
nop
nop
nop
nop