Function at 0x49dad0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [0x592830]
xor eax, esp
mov dword [esp + 0xc0], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x14]
push esi
mov esi, edx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x1c]
xor edx, edx
push edi
xor edi, edi
mov dword [esp + 0x40], ecx
test eax, eax
mov ecx, 0x547470
cmovne ecx, eax
test ebx, ebx
cmove ebx, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
test ecx, ecx
jne 0x49db5e
push 0x139
push str.cryptoevpevp_lib.c
push 0x9f
mov edx, 0xa2
lea ecx, [edi + 6]
call fcn.004144f0
add esp, 0xc
or ebx, 0xffffffff
jmp 0x49db61
mov ebx, dword [ecx + 8]
mov dword [esp + 0x2c], ebx
test esi, esi
jle 0x49e00c
mov esi, dword [ebp + 0xc]
test esi, esi
jle 0x49e00c
mov ecx, dword [esp + 0x34]
cmp ecx, esi
jl 0x49dfee
lea eax, [ebx*2 + 2]
cmp ecx, eax
jl 0x49dfee
sub ecx, ebx
dec ecx
push 0x9e
mov edx, str.crypto_rsa_rsa_oaep.c
mov dword [esp + 0x1c], ecx
call fcn.0042e6b0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x49dbd9
push 0xa0
push str.crypto_rsa_rsa_oaep.c
push 0x41
mov edx, 0xa1
mov ecx, 4
call fcn.004144f0
add esp, 0xc
xor ebx, ebx
jmp 0x49df3c
mov ecx, dword [esp + 0x34]
push 0xa4
mov edx, str.crypto_rsa_rsa_oaep.c
call fcn.0042e6b0
mov edi, eax
add esp, 4
test edi, edi
jne 0x49dbfc
push 0xa7
jmp 0x49dbb9
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 8]
add edi, eax
add edx, esi
mov dword [esp + 0x20], edi
test eax, eax
jle 0x49dc42
mov ebx, dword [esp + 0x20]
mov edi, eax
mov eax, esi
not eax
lea ecx, [esi - 1]
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
dec ebx
and cl, byte [edx]
sub esi, eax
mov byte [ebx], cl
dec edi
jne 0x49dc15
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
movzx eax, byte [edi]
push dword [esp + 0x28]
lea ecx, [eax - 1]
push dword [esp + 0x1c]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
lea eax, [edi + 1]
add eax, ebx
mov dword [esp + 0x18], ecx
push eax
mov edx, ebx
lea ecx, [esp + 0x54]
lea esi, [edi + 1]
mov dword [esp + 0x50], eax
call fcn.0049e030
add esp, 0xc
test eax, eax
jne 0x49df38
xor edx, edx
test ebx, ebx
jle 0x49dca0
lea eax, [esp + 0x48]
sub esi, eax
nop
lea ecx, [esp + 0x48]
add ecx, edx
inc edx
mov al, byte [ecx + esi]
xor byte [ecx], al
cmp edx, ebx
jl 0x49dc90
push dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push ebx
push eax
mov ecx, esi
call fcn.0049e030
add esp, 0xc
test eax, eax
jne 0x49df32
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x49dce3
mov ebx, dword [esp + 0x44]
mov ecx, esi
sub ebx, esi
mov edx, eax
mov al, byte [ebx + ecx]
xor byte [ecx], al
inc ecx
dec edx
jne 0x49dcd6
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebp + 0x18]
push ecx
push dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x90]
push 0
push eax
call fcn.00424440
add esp, 0x10
test eax, eax
je 0x49df32
xor dl, dl
test ebx, ebx
je 0x49dd31
lea edi, [esp + 0x88]
mov ecx, esi
sub edi, esi
mov esi, ebx
lea esp, [esp]
mov al, byte [edi + ecx]
xor al, byte [ecx]
lea ecx, [ecx + 1]
or dl, al
dec esi
jne 0x49dd20
mov esi, dword [esp + 0x14]
movzx eax, dl
xor edx, edx
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
neg ecx
and dword [esp + 0x10], ecx
mov edi, ebx
cmp ebx, dword [esp + 0x18]
jge 0x49ddaf
xor ebx, ebx
movzx esi, byte [edi + esi]
mov eax, esi
xor eax, 1
mov ecx, ebx
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
not ecx
and ecx, edx
mov eax, ecx
not eax
and eax, dword [esp + 0x3c]
and ecx, edi
or eax, ecx
mov dword [esp + 0x3c], eax
lea eax, [esi - 1]
shr eax, 0x1f
not esi
shr esi, 0x1f
and eax, esi
mov esi, dword [esp + 0x14]
or ebx, edx
neg eax
or eax, ebx
and dword [esp + 0x10], eax
inc edi
cmp edi, dword [esp + 0x18]
jl 0x49dd53
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
mov eax, esi
sub eax, dword [esp + 0x3c]
mov ecx, edi
dec eax
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x38], eax
xor eax, edi
or ecx, eax
xor ecx, edi
shr ecx, 0x1f
dec ecx
and ecx, edx
and dword [esp + 0x10], ecx
sub esi, ebx
lea ecx, [esi - 1]
mov edx, ecx
sub edx, edi
xor edx, edi
mov eax, ecx
xor eax, edi
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
lea ecx, [esi - 1]
mov edi, edx
not edi
and edi, dword [esp + 0x30]
mov eax, ecx
and eax, edx
or edi, eax
mov dword [esp + 0x28], edi
mov edi, 1
mov dword [esp + 0x1c], ecx
cmp ecx, edi
jle 0x49de75
sub esi, dword [esp + 0x38]
lea edx, [ebx + 1]
mov dword [esp + 0x30], edx
lea eax, [esi - 1]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x18]
and eax, edi
sub esi, edi
lea ecx, [eax - 1]
shr ecx, 0x1f
not eax
shr eax, 0x1f
and ecx, eax
dec ecx
cmp edx, esi
jge 0x49de69
add edx, dword [esp + 0x14]
sub esi, dword [esp + 0x30]
movzx ebx, cl
lea esp, [esp]
mov cl, byte [edx + edi]
mov al, bl
not al
and al, byte [edx]
and cl, bl
or cl, al
mov byte [edx], cl
lea edx, [edx + 1]
dec esi
jne 0x49de50
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
add edi, edi
cmp edi, dword [esp + 0x1c]
jl 0x49de24
xor esi, esi
cmp dword [esp + 0x28], esi
jle 0x49dedf
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x38]
movzx eax, dl
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
inc eax
shr ebx, 0x1f
neg edi
add eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov ecx, esi
shr ecx, 0x1f
mov edx, edi
shr edx, 0x1f
xor dl, bl
mov al, bl
xor al, cl
or dl, al
mov eax, dword [esp + 0x24]
xor dl, cl
mov al, byte [eax + esi]
neg dl
movzx ecx, dl
and ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
and al, cl
not cl
and cl, byte [edx + esi]
inc esi
or al, cl
mov byte [edx + esi - 1], al
inc edi
cmp esi, dword [esp + 0x28]
jl 0x49dea2
push 0x108
push str.crypto_rsa_rsa_oaep.c
push 0x79
mov edx, 0xa1
mov ecx, 4
call fcn.004144f0
add esp, 0xc
call fcn.00414f30
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
mov esi, eax
test esi, esi
je 0x49df3c
mov ecx, dword [esi + 0x188]
mov edx, ebx
and edx, 1
lea eax, [edx - 1]
shr eax, 0x1f
not edx
shr edx, 0x1f
and eax, edx
dec eax
and eax, 2
or dword [esi + ecx*4 + 8], eax
jmp 0x49df3c
mov ebx, dword [esp + 0x10]
jmp 0x49df40
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push 0x40
lea eax, [esp + 0x4c]
push 0
push eax
mov eax, dword [fcn.004f2670]
call eax
mov eax, dword [fcn.004f2670]
add esp, 0xc
push dword [esp + 0x18]
push 0
push esi
call eax
mov eax, dword [0x59fb4c]
add esp, 0xc
test eax, eax
je 0x49df75
push 0
push esi
call eax
add esp, 8
push esi
call dword [0x594128]
mov eax, dword [0x59fb4c]
add esp, 4
test eax, eax
je 0x49df91
push 1
push 0
call eax
add esp, 8
push dword [esp + 0x34]
mov eax, dword [fcn.004f2670]
push 0
push edi
call eax
mov eax, dword [0x59fb4c]
add esp, 0xc
test eax, eax
je 0x49dfb3
push 0
push edi
call eax
add esp, 8
push edi
call dword [0x594128]
mov eax, dword [0x59fb4c]
add esp, 4
test eax, eax
je 0x49dfcf
push 1
push 0
call eax
add esp, 8
mov eax, ebx
and eax, dword [esp + 0x38]
not ebx
or eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.004ebb9e
mov esp, ebp
pop ebp
ret
push 0x99
push str.crypto_rsa_rsa_oaep.c
push 0x79
mov edx, 0xa1
mov ecx, 4
call fcn.004144f0
add esp, 0xc
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.004ebb9e
mov esp, ebp
pop ebp
ret