Function at 0x473560
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xbc
call fcn.005e38a0
mov eax, dword [0x6c6e10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x20]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x88], edx
xor edx, edx
or ebx, 0xffffffff
push edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x98], esi
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xa4], edx
cmp eax, edx
jne 0x4735cf
mov dword [ebp - 0xb0], 0x68468c
mov eax, dword [ebp - 0xb0]
cmp esi, edx
jne 0x4735d9
mov dword [ebp - 0x98], eax
cmp eax, edx
jne 0x47360e
push 0x143
push str.....cryptoevpevp_lib.c
push 0x9f
push 0xa2
push 6
call fcn.004058f0
mov ecx, dword [ebp - 0xb4]
or esi, 0xffffffff
add esp, 0x14
mov dword [ebp - 0xac], esi
xor edx, edx
jmp 0x473619
mov eax, dword [eax + 8]
mov dword [ebp - 0xac], eax
mov esi, eax
cmp dword [ebp + 0xc], edx
jle 0x473baa
cmp edi, edx
jle 0x473baa
cmp ecx, edi
jl 0x473b8f
lea edx, [esi + esi + 2]
cmp ecx, edx
jl 0x473b8f
mov eax, ecx
sub eax, esi
push 0x9d
dec eax
push str.....crypto_rsa_rsa_oaep.c
push eax
mov dword [ebp - 0x9c], eax
call fcn.00413cb0
add esp, 0xc
mov dword [ebp - 0x94], eax
test eax, eax
jne 0x473686
push 0x9f
push str.....crypto_rsa_rsa_oaep.c
push 0x41
push 0x99
push 4
call fcn.004058f0
add esp, 0x14
jmp 0x473ab0
mov eax, dword [ebp - 0xb4]
push 0xa3
push str.....crypto_rsa_rsa_oaep.c
push eax
call fcn.00413cb0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xa4], ecx
test ecx, ecx
jne 0x4736b2
push 0xa6
jmp 0x47366b
mov eax, dword [ebp - 0xb4]
add dword [ebp + 0x10], edi
add ecx, eax
mov dword [ebp - 0xa4], ecx
test eax, eax
jle 0x473708
mov dword [ebp - 0xa4], eax
jmp 0x4736d3
mov edi, dword [ebp + 0x14]
mov edx, edi
lea eax, [edi - 1]
not edx
shr eax, 0x1f
shr edx, 0x1f
and eax, edx
dec eax
mov edx, eax
and edx, 1
sub edi, edx
mov dword [ebp + 0x14], edi
mov edi, dword [ebp + 0x10]
sub edi, edx
and al, byte [edi]
dec ecx
dec dword [ebp - 0xa4]
mov dword [ebp + 0x10], edi
mov byte [ecx], al
jne 0x4736d0
mov dword [ebp - 0xa4], ecx
movzx eax, byte [ecx]
lea edx, [eax - 1]
not eax
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
neg edx
lea eax, [ecx + 1]
mov dword [ebp - 0x8c], edx
mov edx, dword [ebp - 0x98]
push edx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x9c]
push eax
lea edx, [ebp - 0x44]
lea ecx, [esi + ecx + 1]
push esi
push edx
mov dword [ebp - 0x90], ecx
call fcn.00473bc0
add esp, 0x10
test eax, eax
jne 0x473ab0
xor edi, edi
test esi, esi
jle 0x473775
mov ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0x44]
sub ecx, eax
lea eax, [ebp + edi - 0x44]
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc edi
cmp edi, esi
jl 0x473767
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
push eax
push esi
push ecx
push edi
lea ecx, [ebp - 0x44]
call fcn.00473bc0
add esp, 0x10
test eax, eax
jne 0x473ab6
mov edx, dword [ebp - 0x9c]
test edx, edx
jle 0x4737c6
mov ecx, dword [ebp - 0x90]
mov eax, edi
sub ecx, edi
mov dword [ebp - 0x98], edx
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec dword [ebp - 0x98]
jne 0x4737b8
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x88]
push eax
push 0
lea ecx, [ebp - 0x84]
push ecx
mov ecx, dword [ebp + 0x18]
push edx
call fcn.00417d00
add esp, 0x10
test eax, eax
je 0x473ab6
push esi
lea eax, [ebp - 0x84]
push eax
push edi
call fcn.00587b90
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
neg ecx
and dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x9c]
add esp, 0xc
xor edi, edi
cmp dword [ebp - 0xac], ecx
jge 0x4738a6
lea ebx, [ebx]
mov edx, dword [ebp - 0x94]
movzx ecx, byte [esi + edx]
mov eax, ecx
xor eax, 1
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
lea eax, [ecx - 1]
not ecx
shr ecx, 0x1f
shr eax, 0x1f
and eax, ecx
mov ecx, edi
not ecx
neg edx
and ecx, edx
mov dword [ebp - 0x88], ecx
not ecx
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x90]
and ebx, dword [ebp - 0xa8]
neg eax
or edi, edx
and ecx, esi
or eax, edi
and dword [ebp - 0x8c], eax
or ecx, ebx
inc esi
mov dword [ebp - 0xa8], ecx
cmp esi, dword [ebp - 0x9c]
jl 0x473830
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ebp + 0xc]
mov ebx, ecx
sub ebx, dword [ebp - 0xa8]
sub ecx, dword [ebp - 0xac]
dec ebx
mov edx, esi
sub edx, ebx
xor edx, ebx
mov eax, ebx
xor eax, esi
or edx, eax
xor edx, esi
shr edx, 0x1f
dec edx
and edx, edi
and dword [ebp - 0x8c], edx
lea edi, [ecx - 1]
mov eax, edi
sub eax, esi
xor eax, esi
mov edx, edi
xor edx, esi
or eax, edx
xor eax, edi
shr eax, 0x1f
neg eax
mov dword [ebp - 0x88], eax
not eax
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x90]
lea edx, [ecx - 1]
and edi, esi
and eax, edx
or eax, edi
mov edi, 1
mov dword [ebp - 0xa0], edx
mov dword [ebp + 0xc], eax
cmp edx, edi
jle 0x4739cb
sub ecx, ebx
dec ecx
mov dword [ebp - 0x88], ecx
lea ebx, [ebx]
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0xac]
and eax, edi
lea ecx, [eax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, dword [ebp - 0x9c]
sub eax, edi
inc edx
dec ecx
cmp edx, eax
jge 0x4739ba
movzx ecx, cl
mov esi, ecx
not esi
mov dword [ebp - 0xb8], esi
mov esi, dword [ebp - 0x94]
add esi, edx
sub eax, edx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0xa8], eax
jmp 0x473986
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xb0], ecx
mov cl, byte [esi]
mov dword [ebp - 0x98], eax
mov al, byte [esi + edi]
mov edx, dword [ebp - 0xb0]
and dl, al
mov eax, dword [ebp - 0x98]
and al, cl
or dl, al
mov byte [esi], dl
inc esi
dec dword [ebp - 0xa8]
jne 0x473980
add edi, edi
cmp edi, dword [ebp - 0xa0]
jl 0x473930
mov eax, dword [ebp + 0xc]
xor esi, esi
test eax, eax
jle 0x473a4e
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xac]
mov edi, ebx
lea eax, [edx + ecx + 1]
neg edi
mov dword [ebp - 0xa0], eax
nop
mov edx, dword [ebp - 0xa0]
mov eax, edi
xor eax, ebx
mov ecx, esi
xor ecx, ebx
or eax, ecx
mov ecx, dword [ebp - 0xbc]
mov cl, byte [ecx + esi]
xor eax, esi
shr eax, 0x1f
neg eax
and eax, dword [ebp - 0x8c]
inc esi
movzx eax, al
mov dword [ebp - 0x90], eax
not eax
mov dword [ebp - 0x88], eax
mov al, byte [edx + esi - 1]
mov edx, dword [ebp - 0x88]
and dl, cl
mov ecx, dword [ebp - 0x90]
and cl, al
mov eax, dword [ebp - 0xbc]
or dl, cl
mov byte [eax + esi - 1], dl
inc edi
cmp esi, dword [ebp + 0xc]
jl 0x4739f0
push 0x107
push str.....crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call fcn.004058f0
mov esi, dword [ebp - 0x8c]
add esp, 0x14
and esi, 1
call fcn.00406ca0
test eax, eax
je 0x473ab0
mov edx, dword [eax + 0x180]
lea ecx, [esi - 1]
shr ecx, 0x1f
not esi
shr esi, 0x1f
and ecx, esi
neg ecx
mov dword [ebp - 0xa0], ecx
not ecx
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x88]
and ecx, 2
or dword [eax + edx*4], ecx
mov edi, dword [ebp - 0x94]
lea edx, [ebp - 0x44]
push 0x40
push edx
call fcn.00587b20
add esp, 8
test edi, edi
je 0x473afe
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x473adc
push eax
push edi
call fcn.00587b20
add esp, 8
mov esi, dword [fcn.00413ef0]
test esi, esi
je 0x473b46
cmp esi, fcn.00413ef0
je 0x473b46
push 0x10b
push str.....crypto_rsa_rsa_oaep.c
push edi
call esi
add esp, 0xc
mov esi, dword [fcn.00413ef0]
mov edi, dword [ebp - 0xa4]
test edi, edi
je 0x473b5a
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x473b28
push eax
push edi
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x473b51
cmp esi, fcn.00413ef0
je 0x473b51
push 0x10c
push str.....crypto_rsa_rsa_oaep.c
push edi
call esi
add esp, 0xc
jmp 0x473b5a
push edi
call fcn.005dcea1
add esp, 4
jmp 0x473b04
push edi
call fcn.005dcea1
add esp, 4
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xa0], eax
not eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x88]
pop edi
and eax, ebx
pop esi
or eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret
push 0x98
push str.....crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call fcn.004058f0
add esp, 0x14
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
or eax, 0xffffffff
pop ebx
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret