Function at 0x10036550
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x78
call fcn.100d6420
mov eax, dword [0x10151618]
xor eax, esp
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x80]
push ebx
mov ebx, dword [esp + 0x90]
push ebp
mov ebp, dword [esp + 0x8c]
push esi
mov esi, dword [esp + 0x94]
push edi
mov edi, dword [esp + 0x8c]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
call sym.LIBEAY32.dll_EVP_MD_CTX_init
add esp, 4
test esi, esi
jne 0x100365b5
mov dword [esp + 0x14], ebp
push ebp
call sym.LIBEAY32.dll_EVP_MD_size
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x18], ebp
jl 0x10036936
mov eax, dword [esp + 0xa0]
cmp eax, 0xffffffff
jne 0x1003662a
mov dword [esp + 0xa0], ebp
mov edx, dword [edi + 0x10]
push edx
call sym.LIBEAY32.dll_BN_num_bits
mov esi, eax
sub esi, 1
push edi
and esi, 7
call sym.LIBEAY32.dll_RSA_size
mov edi, eax
mov ecx, esi
mov eax, 0xff
shl eax, cl
mov cl, byte [ebx]
add esp, 8
test cl, al
je 0x1003665a
push 0x76
push str..crypto_rsa_rsa_pss.c
push 0x85
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x10036936
cmp eax, 0xfffffffe
jne 0x10036638
mov dword [esp + 0xa0], eax
jmp 0x100365df
jge 0x100365df
push 0x6f
push str..crypto_rsa_rsa_pss.c
push 0x88
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x10036936
test esi, esi
jne 0x10036664
add ebx, 1
sub edi, 1
lea edx, [ebp + 2]
cmp edi, edx
jge 0x10036688
push 0x7e
push str..crypto_rsa_rsa_pss.c
push 0x6d
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x10036936
mov ecx, edi
sub ecx, ebp
lea eax, [ecx - 2]
cmp dword [esp + 0xa0], eax
jle 0x1003669f
push 0x82
jmp 0x1003666d
cmp byte [ebx + edi - 1], 0xbc
je 0x100366c9
push 0x86
push str..crypto_rsa_rsa_pss.c
push 0x86
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x10036936
lea edi, [ecx - 1]
push 0x8b
lea ecx, [ebx + edi]
push str..crypto_rsa_rsa_pss.c
push edi
mov dword [esp + 0x28], ecx
call sym.LIBEAY32.dll_CRYPTO_malloc
mov ebp, eax
add esp, 0xc
test ebp, ebp
mov dword [esp + 0x20], ebp
jne 0x10036710
push 0x8d
push str..crypto_rsa_rsa_pss.c
push 0x41
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x10036929
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
push edi
push ebp
call sym.LIBEAY32.dll_PKCS1_MGF1
add esp, 0x14
test eax, eax
jl 0x10036929
test edi, edi
jle 0x10036751
mov ecx, ebx
mov eax, ebp
sub ecx, ebp
mov ebp, edi
lea ecx, [ecx]
mov dl, byte [ecx + eax]
xor byte [eax], dl
add eax, 1
sub ebp, 1
jne 0x10036740
mov ebp, dword [esp + 0x20]
test esi, esi
je 0x10036766
mov ecx, 8
sub ecx, esi
mov eax, 0xff
sar eax, cl
and byte [ebp], al
xor esi, esi
cmp byte [ebp], 0
jne 0x1003677e
lea eax, [edi - 1]
cmp esi, eax
jge 0x1003677e
add esi, 1
cmp byte [esi + ebp], 0
je 0x10036771
mov cl, byte [esi + ebp]
add esi, 1
cmp cl, 1
je 0x100367ac
push 0x98
push str..crypto_rsa_rsa_pss.c
push 0x87
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x10036929
mov eax, dword [esp + 0xa0]
test eax, eax
jl 0x100367e2
mov edx, edi
sub edx, esi
cmp edx, eax
je 0x100367e2
push 0x9c
push str..crypto_rsa_rsa_pss.c
push 0x88
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x10036929
mov eax, dword [esp + 0x28]
push 0
push eax
lea ecx, [esp + 0x34]
push ecx
call sym.LIBEAY32.dll_EVP_DigestInit_ex
add esp, 0xc
test eax, eax
je 0x10036929
push 8
lea edx, [esp + 0x30]
push 0x100f7fc8
push edx
call sym.LIBEAY32.dll_EVP_DigestUpdate
add esp, 0xc
test eax, eax
je 0x10036929
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push ebx
push eax
lea ecx, [esp + 0x34]
push ecx
call sym.LIBEAY32.dll_EVP_DigestUpdate
add esp, 0xc
test eax, eax
je 0x10036929
sub edi, esi
je 0x10036856
push edi
add esi, ebp
lea edx, [esp + 0x30]
push esi
push edx
call sym.LIBEAY32.dll_EVP_DigestUpdate
add esp, 0xc
test eax, eax
je 0x10036929
push 0
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x34]
push ecx
call sym.LIBEAY32.dll_EVP_DigestFinal_ex
add esp, 0xc
test eax, eax
je 0x10036929
cmp ebx, 4
mov ecx, dword [esp + 0x1c]
mov eax, ebx
lea edx, [esp + 0x44]
jb 0x10036895
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x10036899
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x10036881
test eax, eax
je 0x100368f6
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x100368e8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x100368f6
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x100368e8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x100368f6
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x100368e8
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x100368f6
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x100368f6
test esi, esi
mov eax, 1
jg 0x100368f8
or eax, 0xffffffff
jmp 0x100368f8
xor eax, eax
test eax, eax
je 0x10036921
push 0xaa
push str..crypto_rsa_rsa_pss.c
push 0x68
push 0x95
push 4
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
mov dword [esp + 0x10], 0
jmp 0x10036929
mov dword [esp + 0x10], 1
test ebp, ebp
je 0x10036936
push ebp
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
lea eax, [esp + 0x2c]
push eax
call sym.LIBEAY32.dll_EVP_MD_CTX_cleanup
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100d6528
add esp, 0x78
ret