Function at 0x1011a700
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xc4
call fcn.101bea50
mov eax, dword [0x102f8384]
xor eax, esp
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc8]
push ebx
mov dword [esp + 0x40], eax
xor ebx, ebx
mov eax, dword [esp + 0xdc]
push ebp
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], ebx
push esi
push edi
test eax, eax
jne 0x1011a772
call fcn.100e0ff0
mov dword [esp + 0x30], eax
test ebp, ebp
push eax
cmove ebp, eax
mov dword [esp + 0x48], ebp
call fcn.10056170
add esp, 4
mov edi, eax
mov dword [esp + 0x1c], edi
cmp dword [esp + 0xdc], ebx
jle 0x1011ae22
mov esi, dword [esp + 0xe4]
test esi, esi
jle 0x1011ae22
mov ecx, dword [esp + 0x3c]
cmp ecx, esi
jl 0x1011adfb
lea eax, [edi*2 + 2]
cmp ecx, eax
jl 0x1011adfb
mov ebp, ecx
push 0xcd
sub ebp, edi
dec ebp
push str.crypto_rsa_rsa_oaep.c
push ebp
mov dword [esp + 0x30], ebp
call fcn.1004b3d0
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1011a814
call fcn.1004b6c0
push str.RSA_padding_check_PKCS1_OAEP_mgf1
push 0xcf
push str.crypto_rsa_rsa_oaep.c
call fcn.1004b7c0
push 0
push 0xc0100
push 4
call fcn.1004b870
add esp, 0x18
jmp 0x1011ad43
push 0xd3
push str.crypto_rsa_rsa_oaep.c
push dword [esp + 0x44]
call fcn.1004b3d0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x28], ecx
test ecx, ecx
jne 0x1011a845
call fcn.1004b6c0
push str.RSA_padding_check_PKCS1_OAEP_mgf1
push 0xd5
jmp 0x1011a7f4
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x3c]
add edx, esi
add ecx, eax
mov dword [esp + 0x28], ecx
test eax, eax
jle 0x1011a890
mov ebx, eax
mov ebp, ecx
mov eax, esi
lea ecx, [esi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec ebp
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
and cl, byte [edx]
mov byte [ebp], cl
sub ebx, 1
jne 0x1011a860
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
push dword [esp + 0x44]
movzx ebx, byte [ecx]
lea eax, [ecx + 1]
add eax, edi
lea esi, [ecx + 1]
push ebp
push eax
lea ebx, [ebx - 1]
mov dword [esp + 0x44], eax
shr ebx, 0x1f
lea eax, [esp + 0x5c]
push edi
neg ebx
mov dword [esp + 0x20], esi
push eax
mov dword [esp + 0x28], ebx
call fcn.1011a530
add esp, 0x14
test eax, eax
jne 0x1011ad43
xor edx, edx
test edi, edi
jle 0x1011a9e7
cmp edi, 8
jb 0x1011a9d1
lea eax, [esi - 1]
lea ebp, [esp + 0x50]
add eax, edi
cmp ebp, eax
lea ecx, [esp + edi + 0x4f]
mov ebp, dword [esp + 0x24]
ja 0x1011a8fb
cmp ecx, esi
jae 0x1011a9d1
cmp edi, 0x40
jb 0x1011a9a0
mov eax, edi
and eax, 0x8000003f
jns 0x1011a912
dec eax
or eax, 0xffffffc0
inc eax
lea ebp, [esp + 0x50]
mov ecx, edi
sub ebp, esi
lea ebx, [esp + 0x50]
mov dword [esp + 0x48], ebp
sub ecx, eax
mov edi, dword [esp + 0x48]
lea ebp, [esp + 0x60]
sub ebp, esi
lea eax, [esi + 0x20]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
nop dword [eax]
movups xmm0, xmmword [ebx + edx]
lea eax, [eax + 0x40]
movups xmm1, xmmword [eax - 0x60]
xorps xmm1, xmm0
movups xmmword [ebx + edx], xmm1
movups xmm0, xmmword [esp + edx + 0x60]
movups xmm1, xmmword [eax - 0x50]
xorps xmm1, xmm0
movups xmmword [esp + edx + 0x60], xmm1
add edx, 0x40
movups xmm0, xmmword [edi + eax - 0x40]
movups xmm1, xmmword [eax - 0x40]
xorps xmm1, xmm0
movups xmmword [edi + eax - 0x40], xmm1
movups xmm1, xmmword [eax - 0x30]
movups xmm0, xmmword [esi + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [esi + eax - 0x40], xmm1
cmp edx, ecx
jl 0x1011a940
mov edi, dword [esp + 0x1c]
mov eax, edi
mov esi, dword [esp + 0x10]
and al, 0x3f
mov ebx, dword [esp + 0x14]
cmp al, 8
jb 0x1011a9cd
mov eax, edi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x1011a9ae
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, edi
sub ecx, eax
movq xmm1, qword [esi + edx]
movq xmm0, qword [esp + edx + 0x50]
xorps xmm1, xmm0
movq qword [esp + edx + 0x50], xmm1
add edx, 8
cmp edx, ecx
jl 0x1011a9b2
cmp edx, edi
jge 0x1011a9e7
lea eax, [esp + 0x50]
sub esi, eax
lea ecx, [esp + 0x50]
add ecx, edx
inc edx
mov al, byte [esi + ecx]
xor byte [ecx], al
cmp edx, edi
jl 0x1011a9d7
push dword [esp + 0x44]
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x54]
push edi
push eax
push ebp
push esi
call fcn.1011a530
add esp, 0x14
test eax, eax
jne 0x1011ad43
xor edx, edx
test ebp, ebp
jle 0x1011ab37
cmp ebp, 8
jb 0x1011ab10
mov ecx, dword [esp + 0x38]
lea eax, [ecx - 1]
add eax, ebp
cmp esi, eax
ja 0x1011aa34
lea eax, [esi - 1]
add eax, ebp
cmp eax, ecx
jae 0x1011ab10
cmp ebp, 0x40
jb 0x1011aac8
mov eax, ebp
and eax, 0x8000003f
jns 0x1011aa4b
dec eax
or eax, 0xffffffc0
inc eax
mov edi, dword [esp + 0x38]
add ecx, 0x30
mov dword [esp + 0x14], ebp
sub dword [esp + 0x14], eax
sub edi, esi
mov dword [esp + 0x10], edi
lea eax, [esi + 0x10]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
nop dword [eax + eax]
movups xmm0, xmmword [eax - 0x10]
add edx, 0x40
lea ecx, [ecx + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ecx - 0x70]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [esi + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ecx - 0x50]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [ecx - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x14]
jl 0x1011aa70
mov esi, dword [esp + 0x20]
mov eax, ebp
and al, 0x3f
cmp al, 8
jb 0x1011ab10
mov eax, ebp
and eax, reloc.WS2_32.dll_getsockopt
jns 0x1011aad6
dec eax
or eax, 0xfffffff8
inc eax
mov edi, dword [esp + 0x38]
mov ecx, ebp
sub ecx, eax
sub edi, esi
mov dword [esp + 0x10], edi
lea eax, [edx + esi]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
nop
movq xmm1, qword [eax + ebp]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
xorps xmm1, xmm0
movq qword [eax - 8], xmm1
cmp edx, ecx
jl 0x1011aaf0
mov ebp, dword [esp + 0x24]
cmp edx, ebp
jge 0x1011ab37
mov edi, dword [esp + 0x38]
lea ecx, [edx + esi]
sub edi, esi
mov esi, ebp
sub esi, edx
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x1011ab21
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
push 0
push dword [esp + 0x34]
lea eax, [esp + 0x98]
push 0
push eax
push dword [esp + 0x100]
push dword [esp + 0x2c]
call fcn.10056d00
add esp, 0x18
test eax, eax
je 0x1011ad43
push edi
lea eax, [esp + 0x94]
push eax
push esi
call fcn.100f2370
mov edx, dword [esp + 0x28]
add esp, 0xc
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and ebx, ecx
mov dword [esp + 0x14], ebx
xor ebx, ebx
cmp edx, ebp
jl 0x1011ada4
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xdc]
mov eax, ebp
sub eax, dword [esp + 0x2c]
mov ecx, edi
dec eax
sub ecx, eax
mov dword [esp + 0x40], eax
xor ecx, eax
xor eax, edi
or ecx, eax
xor ecx, edi
shr ecx, 0x1f
dec ecx
and ecx, ebx
mov ebx, dword [esp + 0xdc]
and esi, ecx
mov dword [esp + 0x14], esi
mov esi, ebp
sub esi, edx
lea edi, [esi - 1]
mov ecx, edi
mov dword [esp + 0x44], edi
sub ecx, ebx
mov eax, edi
xor ecx, ebx
xor eax, ebx
or ecx, eax
xor ecx, edi
shr ecx, 0x1f
neg ecx
mov dword [esp + 0x18], ecx
not ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
and eax, edi
and ecx, ebx
mov ebx, 1
or ecx, eax
mov dword [esp + 0x30], ecx
cmp edi, ebx
jle 0x1011ac9a
sub esi, dword [esp + 0x40]
inc edx
mov dword [esp + 0x48], edx
lea eax, [esi - 1]
mov dword [esp + 0x2c], eax
and eax, ebx
mov edi, ebp
sub edi, ebx
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
cmp edx, edi
jge 0x1011ac86
mov esi, dword [esp + 0x20]
movzx eax, cl
add esi, edx
mov ebp, eax
mov dword [esp + 0x34], eax
not ebp
sub edi, edx
nop
mov dword [esp + 0x18], eax
lea esi, [esi + 1]
movzx eax, byte [esi + ebx - 1]
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
and dl, al
movzx eax, byte [esi - 1]
and cl, al
mov eax, dword [esp + 0x34]
or cl, dl
mov byte [esi - 1], cl
sub edi, 1
jne 0x1011ac50
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
add ebx, ebx
cmp ebx, dword [esp + 0x44]
jl 0x1011ac23
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
xor esi, esi
test ecx, ecx
jle 0x1011ad11
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
inc ebp
shr ecx, 0x1f
neg edi
mov dword [esp + 0x34], ecx
add ebp, edx
nop dword [eax]
mov eax, edi
lea ebp, [ebp + 1]
shr eax, 0x1f
inc edi
xor al, cl
or al, cl
neg al
movzx ecx, al
movzx eax, bl
and ecx, eax
movzx eax, byte [ebp - 1]
mov dword [esp + 0x18], ecx
not ecx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
and dl, al
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + esi]
and cl, al
mov eax, dword [esp + 0x4c]
or cl, dl
mov byte [eax + esi], cl
inc esi
mov ecx, dword [esp + 0x34]
cmp esi, dword [esp + 0x30]
jl 0x1011acc0
mov ebp, dword [esp + 0x24]
call fcn.1004b6c0
push str.RSA_padding_check_PKCS1_OAEP_mgf1
push 0x13a
push str.crypto_rsa_rsa_oaep.c
call fcn.1004b7c0
push 0
push 0x79
push 4
call fcn.1004b870
mov eax, ebx
and eax, 1
push eax
call fcn.1004acc0
add esp, 0x1c
lea eax, [esp + 0x50]
push 0x40
push eax
call fcn.1004f4b0
push 0x13f
push str.crypto_rsa_rsa_oaep.c
push ebp
push dword [esp + 0x34]
call fcn.1004b4d0
push 0x140
push str.crypto_rsa_rsa_oaep.c
push dword [esp + 0x5c]
push dword [esp + 0x4c]
call fcn.1004b4d0
mov dword [esp + 0x40], ebx
add esp, 0x28
not ebx
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x18]
and ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
or eax, ecx
jmp 0x1011ae25
mov esi, dword [esp + 0x20]
movzx esi, byte [edi + esi]
mov eax, ebx
mov edx, esi
not eax
xor edx, 1
dec edx
shr edx, 0x1f
neg edx
and eax, edx
or ebx, edx
mov dword [esp + 0x18], eax
not eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
and ecx, edi
and eax, dword [esp + 0x2c]
inc edi
or eax, ecx
mov dword [esp + 0x2c], eax
lea eax, [esi - 1]
mov esi, dword [esp + 0x14]
shr eax, 0x1f
neg eax
or eax, ebx
and esi, eax
mov dword [esp + 0x14], esi
cmp edi, ebp
jl 0x1011ada0
mov edx, dword [esp + 0x1c]
jmp 0x1011ab9b
call fcn.1004b6c0
push str.RSA_padding_check_PKCS1_OAEP_mgf1
push 0xc8
push str.crypto_rsa_rsa_oaep.c
call fcn.1004b7c0
push 0
push 0x79
push 4
call fcn.1004b870
add esp, 0x18
or eax, 0xffffffff
mov ecx, dword [esp + 0xd0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101bdc82
add esp, 0xc4
ret