Function at 0x415b00
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x5c]
test edx, edx
jle 0x415df0
test ebx, ebx
jle 0x415df0
cmp ebx, dword [esp + 0x60]
jg 0x415db3
cmp dword [esp + 0x60], 0xa
jle 0x415db3
mov eax, dword [esp + 0x60]
mov dword [esp + 8], 0xbe
mov dword [esp + 4], str..._crypto_rsa_rsa_pk1.c
mov dword [esp], eax
call fcn.004ce330
test eax, eax
je 0x415df7
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x60]
add edi, eax
add esi, ebx
mov edx, edi
nop
mov ebp, ebx
lea eax, [ebx - 1]
sub edx, 1
not ebp
and ebp, eax
sar ebp, 0x1f
mov eax, ebp
add ebp, 1
sub esi, ebp
sub ebx, ebp
mov ebp, edi
not eax
sub ebp, edx
and al, byte [esi]
mov byte [edx], al
cmp ecx, ebp
jg 0x415b70
mov ecx, dword [esp + 0x18]
movzx ebx, al
xor ebp, ebp
mov edi, 2
mov eax, ebx
sub ebx, 1
movzx edx, byte [ecx + 1]
not eax
and eax, ebx
xor edx, 2
movzx edx, dl
mov ebx, edx
sub edx, 1
not ebx
and eax, ebx
and eax, edx
xor edx, edx
sar eax, 0x1f
mov dword [esp + 0x18], eax
lea esi, cs:[esi]
movzx eax, byte [ecx + edi]
mov ebx, eax
sub eax, 1
not ebx
and ebx, eax
mov eax, ebp
sar ebx, 0x1f
not eax
and eax, ebx
or ebp, ebx
mov esi, eax
not eax
and esi, edi
and eax, edx
add edi, 1
or esi, eax
mov edx, esi
cmp dword [esp + 0x60], edi
jg 0x415bd0
lea eax, [edx - 0xa]
mov ebx, edx
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x18]
xor ebx, 0xa
mov dword [esp + 0x28], eax
xor eax, 0xa
mov edi, 1
or eax, ebx
mov ebx, dword [esp + 0x54]
xor eax, edx
add edx, 1
sub ebp, edx
mov edx, dword [esp + 0x54]
sar eax, 0x1f
xor ebx, ebp
not eax
sub edx, ebp
and eax, esi
xor edx, ebp
or edx, ebx
xor edx, dword [esp + 0x54]
sar edx, 0x1f
not edx
and edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
lea esi, [eax - 0xb]
xor edx, esi
mov eax, esi
sub eax, dword [esp + 0x54]
xor eax, dword [esp + 0x54]
or eax, edx
mov dword [esp + 0x24], esi
xor eax, esi
sar eax, 0x1f
mov edx, eax
not eax
and edx, esi
and eax, dword [esp + 0x54]
or edx, eax
mov dword [esp + 0x20], edx
cmp esi, 1
jle 0x415ce7
mov dword [esp + 0x2c], ebp
lea esi, cs:[esi]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x60]
and eax, edi
sub ebp, edi
mov ebx, eax
sub eax, 1
not ebx
and ebx, eax
sar ebx, 0x1f
mov eax, ebx
not eax
cmp ebp, 0xb
jle 0x415cdb
mov dword [esp + 0x18], ecx
movzx esi, al
add ebp, ecx
lea eax, [ecx + 0xb]
or ebx, 0xffffff00
lea esi, cs:[esi]
movzx edx, byte [eax + edi]
movzx ecx, byte [eax]
add eax, 1
and edx, esi
and ecx, ebx
or edx, ecx
mov byte [eax - 1], dl
cmp ebp, eax
jne 0x415cc0
mov ecx, dword [esp + 0x18]
add edi, edi
cmp dword [esp + 0x24], edi
jg 0x415c88
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x50]
xor edx, edx
test eax, eax
je 0x415d33
lea esi, [esi]
mov eax, edx
mov ebx, ebp
mov edi, dword [esp + 0x1c]
sub eax, ebp
xor ebx, edx
xor eax, ebp
or eax, ebx
movzx ebx, byte [ecx + edx + 0xb]
xor eax, edx
sar eax, 0x1f
and eax, edi
movzx eax, al
mov edi, eax
not eax
and ebx, edi
movzx edi, byte [esi + edx]
and edi, eax
mov eax, dword [esp + 0x20]
or ebx, edi
mov byte [esi + edx], bl
add edx, 1
cmp edx, eax
jne 0x415cf8
mov eax, dword [esp + 0x60]
mov dword [esp], ecx
mov dword [esp + 0xc], 0x106
mov dword [esp + 4], eax
mov dword [esp + 8], str..._crypto_rsa_rsa_pk1.c
call fcn.004ce740
call fcn.0049b030
mov dword [esp + 8], str.RSA_padding_check_PKCS1_type_2
mov dword [esp + 4], 0x10d
mov dword [esp], str..._crypto_rsa_rsa_pk1.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0x9f
mov dword [esp], 4
call fcn.0049b230
mov esi, dword [esp + 0x1c]
mov eax, esi
and eax, 1
mov dword [esp], eax
call fcn.0049aee0
mov edx, esi
mov eax, esi
and eax, ebp
not edx
or eax, edx
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0049b030
mov dword [esp + 8], str.RSA_padding_check_PKCS1_type_2
mov dword [esp + 4], 0xba
mov dword [esp], str..._crypto_rsa_rsa_pk1.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0x9f
mov dword [esp], 4
call fcn.0049b230
mov eax, 0xffffffff
jmp 0x415dab
call fcn.0049b030
mov dword [esp + 8], str.RSA_padding_check_PKCS1_type_2
mov dword [esp + 4], 0xc0
mov dword [esp], str..._crypto_rsa_rsa_pk1.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0100
mov dword [esp], 4
call fcn.0049b230
jmp 0x415df0