Function at 0x4fb760
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3c
call fcn.005e28b0
push ebx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx + 0x24]
push esi
mov dword [ebp - 0x30], 0
test eax, eax
jne 0x4fb7b8
cmp dword [ebx + 0x28], eax
jne 0x4fb7b8
mov eax, dword [ebx + 0x20]
lea esi, [ebx + 0x14]
push eax
call fcn.0042bc70
add esp, 4
test eax, eax
jne 0x4fb7bc
push 0xbd
push str.....crypto_bn_bn_ctx.c
push 0x6d
push 0x81
push 3
call fcn.004058f0
add esp, 0x14
inc dword [ebx + 0x24]
jmp 0x4fb7bc
inc eax
mov dword [ebx + 0x24], eax
mov ecx, ebx
call fcn.0042bbb0
mov ecx, ebx
mov dword [ebp - 0xc], eax
call fcn.0042bbb0
mov ecx, ebx
mov dword [ebp - 0x1c], eax
call fcn.0042bbb0
mov esi, eax
mov ecx, ebx
mov dword [ebp - 0x10], esi
call fcn.0042bbb0
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4fbb99
mov ecx, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0xc]
push ecx
call fcn.004faf40
add esp, 4
test eax, eax
je 0x4fbb98
mov edx, esi
cmp dword [edx + 4], 0
je 0x4fbb98
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp - 0x18]
push edi
call fcn.0040a9b0
add esp, 4
test eax, eax
je 0x4fbb98
mov eax, dword [ebp - 0x10]
push eax
call fcn.0040a5c0
push esi
mov dword [ebp - 0x14], eax
call fcn.0040a5c0
mov edi, dword [edi + 4]
mov esi, dword [ebp - 0x10]
push edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], edi
call fcn.0040b740
add esp, 0xc
test eax, eax
je 0x4fbb98
mov ecx, esi
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [ebp - 8], edx
cmp eax, edi
jge 0x4fb878
mov ecx, edi
lea edx, [edx + eax*4]
sub ecx, eax
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 4]
mov ecx, esi
mov esi, dword [ebp - 0xc]
push edi
mov dword [ecx + 4], edi
call fcn.0040b740
add esp, 4
test eax, eax
je 0x4fbb98
mov ebx, dword [esi]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x2c], ebx
mov dword [ebx], 1
cmp edx, 1
jle 0x4fb8ac
lea edi, [ebx + 4]
lea ecx, [edx - 1]
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x1c]
mov dword [ecx + 4], edx
cmp edx, dword [edi + 8]
jle 0x4fb8e6
push edx
push edi
call fcn.0040a860
mov esi, eax
add esp, 8
test esi, esi
je 0x4fbb95
cmp dword [edi], 0
je 0x4fb8de
push 1
push edi
call fcn.0040a600
add esp, 8
mov edx, dword [ebp - 4]
mov dword [edi], esi
mov dword [edi + 8], edx
mov edx, dword [ebp - 4]
mov edi, dword [edi]
mov dword [ebp - 0x24], edi
test edx, edx
jle 0x4fb8f8
mov ecx, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], edx
mov edx, dword [ecx]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x14], 0
je 0x4fb9b2
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
test al, 1
jne 0x4fb9b5
mov edx, dword [ebx]
mov esi, dword [ebp + 0x10]
mov esi, dword [esi]
mov esi, dword [esi]
mov edi, eax
mov eax, edx
and eax, 1
neg eax
and esi, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
xor edx, esi
dec eax
xor esi, esi
test eax, eax
jle 0x4fb99d
mov eax, dword [ebp - 8]
sub eax, ebx
mov dword [ebp - 0x34], eax
mov eax, 0xfffffffc
sub eax, ebx
lea ecx, [ebx + 4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + ecx]
mov ebx, eax
shl ebx, 0x1f
shr edi, 1
or ebx, edi
mov edi, dword [ebp - 8]
mov dword [edi + esi*4], ebx
mov edi, eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
add eax, dword [ebp - 0x38]
shr edx, 1
mov eax, dword [eax + ecx + 4]
and eax, dword [ebp - 0x3c]
inc esi
xor eax, dword [ecx]
add ecx, 4
mov ebx, eax
shl ebx, 0x1f
or ebx, edx
mov edx, eax
mov eax, dword [ebp - 4]
mov dword [ecx - 8], ebx
dec eax
cmp esi, eax
jl 0x4fb955
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 8]
shr edi, 1
shr edx, 1
dec dword [ebp - 0x14]
mov dword [ecx + esi*4], edi
mov dword [ebx + esi*4], edx
jne 0x4fb910
jmp 0x4fb9b5
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
cmp esi, 0x20
jg 0x4fb9d0
mov eax, dword [ecx]
test eax, eax
je 0x4fbb95
cmp eax, 1
je 0x4fbaff
mov edx, dword [ebp - 0x28]
cmp esi, edx
jge 0x4fba0d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0x18], eax
mov eax, dword [eax]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], ebx
mov ecx, edx
cmp dword [ebp - 4], 0
jle 0x4fba43
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
sub edi, ecx
sub esi, ecx
mov edx, ebx
mov eax, ecx
sub edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x34], ecx
lea esp, [esp]
mov ecx, dword [edi + eax]
xor dword [eax], ecx
mov ecx, dword [esi + eax]
xor dword [edx + eax], ecx
add eax, 4
dec dword [ebp - 0x34]
jne 0x4fba30
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x28]
jne 0x4fb906
mov ecx, dword [ebp - 8]
dec eax
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov edi, dword [ecx + eax*4]
test edi, edi
jne 0x4fba70
test eax, eax
je 0x4fba70
mov edi, dword [ecx + eax*4 - 4]
dec eax
test edi, edi
je 0x4fba63
mov esi, edi
shr esi, 0x10
mov ecx, esi
neg ecx
shr ecx, 0x1f
neg ecx
mov edx, ecx
xor ebx, ebx
test edi, edi
setne bl
and edx, 0x10
xor esi, edi
and esi, ecx
xor esi, edi
mov ecx, esi
shr ecx, 8
add ebx, edx
mov edx, ecx
neg edx
xor ecx, esi
shr edx, 0x1f
neg edx
and ecx, edx
xor esi, ecx
mov edi, edx
mov ecx, esi
shr ecx, 4
mov edx, ecx
neg edx
xor ecx, esi
shr edx, 0x1f
neg edx
and ecx, edx
xor esi, ecx
and edi, 8
add ebx, edi
mov edi, edx
mov ecx, esi
shr ecx, 2
mov edx, ecx
neg edx
xor ecx, esi
shr edx, 0x1f
neg edx
and ecx, edx
xor ecx, esi
shr ecx, 1
neg ecx
shr ecx, 0x1f
and edi, 4
add ebx, edi
and edx, 2
neg ecx
add edx, ebx
mov ebx, dword [ebp - 0x2c]
and ecx, 1
shl eax, 5
add edx, ecx
add eax, edx
mov dword [ebp - 0x14], eax
jmp 0x4fb906
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 4]
test eax, eax
jle 0x4fbb20
mov ecx, dword [edx]
lea ecx, [ecx + eax*4]
mov edi, edi
sub ecx, 4
cmp dword [ecx], 0
jne 0x4fbb1d
dec eax
test eax, eax
jg 0x4fbb10
mov dword [edx + 4], eax
mov edi, dword [edx + 4]
test edi, edi
jne 0x4fbb2d
mov edx, dword [ebp - 0xc]
mov dword [edx + 0xc], edi
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0xc]
cmp esi, ebx
je 0x4fbb8a
cmp edi, dword [esi + 8]
jle 0x4fbb64
push edi
push esi
call fcn.0040a860
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4fbb95
cmp dword [esi], 0
je 0x4fbb5c
push 1
push esi
call fcn.0040a600
add esp, 8
mov dword [esi], ebx
mov ebx, dword [ebp - 0xc]
mov dword [esi + 8], edi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x4fbb7e
mov ecx, dword [ebx]
mov edx, dword [esi]
add eax, eax
add eax, eax
push eax
push ecx
push edx
call fcn.005e02e0
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
test esi, esi
je 0x4fbb95
mov dword [ebp - 0x30], 1
mov ebx, dword [ebp + 0x14]
pop edi
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4fbbad
dec eax
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x30]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec dword [ebx + 0x18]
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x14]
mov esi, dword [edx + eax*4]
mov eax, dword [ebx + 0x20]
cmp esi, eax
jae 0x4fbbf3
mov ecx, dword [ebx + 0xc]
sub eax, esi
mov edx, eax
lea eax, [ecx - 1]
sub ecx, edx
and eax, 0xf
mov dword [ebx + 0xc], ecx
test edx, edx
je 0x4fbbf3
dec edx
test eax, eax
jne 0x4fbbee
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x140]
mov eax, 0xf
mov dword [ebx + 4], ecx
jmp 0x4fbbef
dec eax
test edx, edx
jne 0x4fbbd6
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x20], esi
pop esi
mov dword [ebx + 0x28], 0
pop ebx
mov esp, ebp
pop ebp
ret