Function at 0x140161cb0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rbx
push rsi
push rdi
lea rbp, [r11 - 0x118]
sub rsp, 0x1f8
mov rax, qword [0x1402581e0]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rsi, qword [rbp + 0x168]
mov rdi, r8
xor ebx, ebx
shr rdi, 3
mov qword [rbp + 0x30], rcx
mov dword [rsp + 0x40], 0
lea eax, [rdi - 0x14]
mov qword [rbp - 8], rsi
mov qword [rbp - 0x18], rdi
test eax, 0xfffffff3
jne 0x140163171
cmp edi, 0x18
je 0x140163171
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
mov qword [r11 - 0x40], r15
test r9, r9
mov eax, 0x200
lea r15, [0x140228860]
cmovne r15, r9
cmp rdx, rax
cmovb rdx, rax
mov qword [rbp + 0x18], r15
lea r14, [rdx + 0x3f]
and r14, 0xffffffffffffffc0
mov qword [rbp + 0x20], r14
call fcn.14010b4d0
mov r12, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x140163132
call fcn.140133a40
mov r13, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14016240d
mov rcx, r12
call fcn.14010b650
mov rcx, r12
call fcn.14010b730
mov rcx, r12
mov qword [rbp], rax
call fcn.14010b730
mov rcx, r12
mov qword [rbp + 0x28], rax
call fcn.14010b730
mov rcx, r12
mov r13, rax
call fcn.14010b730
mov rcx, r12
mov qword [rbp - 0x10], rax
call fcn.14010b730
mov rcx, r12
mov qword [rbp + 0x38], rax
call fcn.14010b730
mov rcx, r12
mov qword [rbp + 8], rax
call fcn.14010b730
mov rcx, r12
mov qword [rbp - 0x28], rax
call fcn.14010b730
lea r8d, [r14 - 1]
lea rdx, [0x140218a08]
mov rcx, rax
mov qword [rbp - 0x20], rax
call fcn.1400d5690
test eax, eax
je 0x140162408
movsxd r14, edi
mov qword [rbp + 0x10], r14
test rsi, rsi
je 0x140161e32
mov ecx, dword [rsi]
dec ecx
je 0x140161e1f
dec ecx
je 0x140161e13
xor eax, eax
jmp 0x140161e37
mov r8, rsi
mov edx, ebx
xor ecx, ecx
call qword [rsi + reloc.WS2_32.dll_recv]
jmp 0x140161e37
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x140161e32
mov r8, qword [rsi + 8]
mov edx, ebx
xor ecx, ecx
call rax
mov eax, 1
inc ebx
mov dword [rsp + 0x44], ebx
test eax, eax
je 0x140162408
mov rax, qword [0x1402ddb70]
test rax, rax
jne 0x140161e98
cmp qword [0x1402ddd30], rax
je 0x140161e8a
lea edx, [rax + 1]
lea rcx, [0x1402ddd30]
call fcn.140131310
mov rcx, rax
test rax, rax
je 0x140161e8a
mov rax, qword [rax + 0x38]
mov qword [0x1402ddb70], rax
test rax, rax
jne 0x140161f81
call fcn.1400f5ea0
lea rax, [0x140276160]
mov qword [0x1402ddb70], rax
mov r8, qword [rax + 0x20]
test r8, r8
je 0x140161ead
lea rcx, [rbp + 0xa0]
mov edx, edi
call r8
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x60]
mov r8, r14
call sub.MSVCR120.dll_memcpy
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x80]
mov r8, r14
call sub.MSVCR120.dll_memcpy
lea rax, [r14 - 1]
test rax, rax
js 0x140161eeb
nop
inc byte [rbp + rax + 0x60]
jne 0x140161eeb
dec rax
jns 0x140161ee0
xor eax, eax
lea rcx, [rbp - 0x58]
xor r8d, r8d
mov qword [rbp - 0x48], rax
or dword [rbp - 0x48], 1
mov rdx, r15
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
call fcn.1400fb400
test eax, eax
je 0x140161f8d
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x58]
mov r8, r14
call qword [rbp - 0x30]
test eax, eax
je 0x140161f8d
mov rax, qword [rbp - 0x58]
cmp dword [rax + 8], 0x40
jg 0x1401628a6
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x58]
call qword [rax + 0x20]
mov ebx, eax
mov rax, qword [rbp - 0x58]
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140161f67
lea rcx, [rbp - 0x58]
call rdx
or dword [rbp - 0x48], 2
mov rax, qword [rbp - 0x58]
movsxd r8, dword [rax + 0x60]
mov rcx, qword [rbp - 0x40]
xor edx, edx
call sub.MSVCR120.dll_memset
test ebx, ebx
je 0x140161f8d
mov edi, 1
jmp 0x140161f8f
mov qword [0x1402ddb68], rcx
jmp 0x140161e98
xor edi, edi
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140162007
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140161fb1
test byte [rbp - 0x48], 2
jne 0x140161fb1
lea rcx, [rbp - 0x58]
call rdx
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140162007
movsxd rdx, dword [rax + 0x60]
test edx, edx
je 0x140162007
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140162007
test byte [rbp - 0x48], 4
jne 0x140162007
call fcn.140011ba0
mov rax, qword [0x1402ddc88]
mov rbx, qword [rbp - 0x40]
test rax, rax
je 0x140161fe9
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162007
mov edx, 1
xor ecx, ecx
call rax
mov rbx, qword [rbp - 0x38]
test rbx, rbx
je 0x140162081
mov rax, qword [rbx]
test rax, rax
je 0x140162026
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x140162026
mov rcx, rbx
call rdx
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140162034
call fcn.1400eb860
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140162042
call fcn.1400eb860
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140162050
call fcn.1400f5ea0
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162063
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162081
mov edx, 1
xor ecx, ecx
call rax
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x14016208f
call fcn.1400f5ea0
xor eax, eax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
test edi, edi
je 0x140162408
mov qword [rbp - 0x78], rax
or dword [rbp - 0x78], 1
lea rcx, [rsp + 0x78]
xor r8d, r8d
mov rdx, r15
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
call fcn.1400fb400
test eax, eax
je 0x14016214d
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x78]
mov r8, r14
call qword [rbp - 0x60]
test eax, eax
je 0x14016214d
mov rax, qword [rsp + 0x78]
cmp dword [rax + 8], 0x40
jg 0x1401628dd
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x78]
call qword [rax + 0x20]
mov ebx, eax
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140162133
lea rcx, [rsp + 0x78]
call rdx
or dword [rbp - 0x78], 2
mov rax, qword [rsp + 0x78]
movsxd r8, dword [rax + 0x60]
mov rcx, qword [rbp - 0x70]
xor edx, edx
call sub.MSVCR120.dll_memset
test ebx, ebx
je 0x14016214d
mov edi, 1
jmp 0x14016214f
xor edi, edi
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1401621ca
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140162174
test byte [rbp - 0x78], 2
jne 0x140162174
lea rcx, [rsp + 0x78]
call rdx
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1401621ca
movsxd rdx, dword [rax + 0x60]
test edx, edx
je 0x1401621ca
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x1401621ca
test byte [rbp - 0x78], 4
jne 0x1401621ca
call fcn.140011ba0
mov rax, qword [0x1402ddc88]
mov rbx, qword [rbp - 0x70]
test rax, rax
je 0x1401621ac
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x1401621ca
mov edx, 1
xor ecx, ecx
call rax
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x140162244
mov rax, qword [rbx]
test rax, rax
je 0x1401621e9
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x1401621e9
mov rcx, rbx
call rdx
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1401621f7
call fcn.1400eb860
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140162205
call fcn.1400eb860
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140162213
call fcn.1400f5ea0
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162226
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162244
mov edx, 1
xor ecx, ecx
call rax
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x140162252
call fcn.1400f5ea0
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
test edi, edi
je 0x140162408
mov rdi, qword [rbp - 0x18]
xor edx, edx
test edi, edi
jle 0x1401622e9
cmp edi, 0x20
jb 0x1401622e9
mov eax, edi
xor r8d, r8d
and eax, 0x8000001f
jge 0x140162297
dec eax
or eax, 0xffffffe0
inc eax
mov r9d, edi
sub r9d, eax
nop dword [rax]
movsxd rax, r8d
add rdx, 0x20
movdqu xmm0, xmmword [rbp + rax + 0x40]
movdqu xmm1, xmmword [rbp + rax + 0x80]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x40], xmm1
lea eax, [r8 + 0x10]
add r8d, 0x20
movsxd rcx, eax
movdqu xmm0, xmmword [rbp + rcx + 0x40]
movdqu xmm1, xmmword [rbp + rcx + 0x80]
pxor xmm1, xmm0
movdqu xmmword [rbp + rcx + 0x40], xmm1
cmp r8d, r9d
jl 0x1401622a0
cmp rdx, r14
jge 0x140162304
nop
movzx eax, byte [rbp + rdx + 0x80]
inc rdx
xor byte [rbp + rdx + 0x3f], al
cmp rdx, r14
jl 0x1401622f0
or byte [rbp + 0x40], 0x80
mov rbx, qword [rbp - 0x10]
or byte [rbp + r14 + 0x3f], 1
lea rcx, [rbp + 0x40]
mov r8, rbx
mov edx, edi
call fcn.1400d4d60
test rax, rax
je 0x140162408
mov r9d, 1
mov r8, r12
mov rcx, rbx
lea edx, [r9 + 0x31]
mov qword [rsp + 0x20], rsi
call fcn.140161120
test eax, eax
jg 0x140162356
jne 0x140162408
mov ebx, dword [rsp + 0x44]
jmp 0x140161e00
test rsi, rsi
je 0x1401623c1
mov ecx, dword [rsi]
dec ecx
je 0x14016237e
dec ecx
jne 0x140162408
xor edx, edx
mov r8, rsi
lea ecx, [rdx + 2]
call qword [rsi + reloc.WS2_32.dll_recv]
test eax, eax
je 0x140162408
jmp 0x140162392
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x140162392
mov r8, qword [rsi + 8]
xor edx, edx
lea ecx, [rdx + 2]
call rax
mov ecx, dword [rsi]
dec ecx
je 0x1401623ad
dec ecx
jne 0x140162408
xor edx, edx
mov r8, rsi
lea ecx, [rdx + 3]
call qword [rsi + reloc.WS2_32.dll_recv]
test eax, eax
je 0x140162408
jmp 0x1401623c1
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1401623c1
mov r8, qword [rsi + 8]
xor edx, edx
lea ecx, [rdx + 3]
call rax
mov rcx, qword [rbp + 0x20]
movabs rax, 0xcccccccccccccccd
xor r15d, r15d
dec rcx
mul rcx
mov r12, rdx
shr r12, 7
dec r14
test r15d, r15d
je 0x14016243c
test rsi, rsi
je 0x14016243c
mov ecx, dword [rsi]
dec ecx
je 0x140162428
dec ecx
jne 0x140162403
mov r8, rsi
mov edx, r15d
call qword [rsi + reloc.WS2_32.dll_recv]
test eax, eax
jne 0x14016243c
mov r12, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov eax, dword [r12 + 0x34]
test eax, eax
je 0x140162ec1
dec eax
xor esi, esi
mov dword [r12 + 0x34], eax
jmp 0x140162f32
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x14016243c
mov r8, qword [rsi + 8]
mov edx, r15d
xor ecx, ecx
call rax
cmp dword [r13 + 0xc], 1
jge 0x14016249e
mov edx, 1
mov rcx, r13
call fcn.1400d49f0
mov rdi, rax
test rax, rax
je 0x1401624b9
mov rbx, qword [r13]
test rbx, rbx
je 0x140162492
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162474
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162492
mov edx, 1
xor ecx, ecx
call rax
mov qword [r13], rdi
mov dword [r13 + 0xc], 1
mov rax, qword [r13]
mov dword [r13 + 0x10], 0
mov qword [rax], 0
mov dword [r13 + 8], 0
xor esi, esi
test r12d, r12d
js 0x140162715
mov rax, r14
test r14, r14
js 0x1401624db
nop dword [rax]
inc byte [rbp + rax + 0x60]
jne 0x1401624db
dec rax
jns 0x1401624d0
mov rdx, qword [rbp + 0x18]
xor eax, eax
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x58], rax
or dword [rsp + 0x58], 1
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
call fcn.1400fb400
test eax, eax
je 0x140162581
mov r8, qword [rbp + 0x10]
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x48]
call qword [rsp + reloc.WS2_32.dll_WSASetLastError]
test eax, eax
je 0x140162581
mov rax, qword [rsp + 0x48]
cmp dword [rax + 8], 0x40
jg 0x140162914
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x48]
call qword [rax + 0x20]
mov ebx, eax
mov rax, qword [rsp + 0x48]
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140162566
lea rcx, [rsp + 0x48]
call rdx
or dword [rsp + 0x58], 2
mov rax, qword [rsp + 0x48]
movsxd r8, dword [rax + 0x60]
mov rcx, qword [rsp + 0x60]
xor edx, edx
call sub.MSVCR120.dll_memset
test ebx, ebx
je 0x140162581
mov edi, 1
jmp 0x140162583
xor edi, edi
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x140162602
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x1401625a9
test byte [rsp + 0x58], 2
jne 0x1401625a9
lea rcx, [rsp + 0x48]
call rdx
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x140162602
movsxd rdx, dword [rax + 0x60]
test edx, edx
je 0x140162602
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140162602
test byte [rsp + 0x58], 4
jne 0x140162602
call fcn.140011ba0
mov rax, qword [0x1402ddc88]
mov rbx, qword [rsp + 0x60]
test rax, rax
je 0x1401625e4
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162602
mov edx, 1
xor ecx, ecx
call rax
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x14016267d
mov rax, qword [rbx]
test rax, rax
je 0x140162622
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x140162622
mov rcx, rbx
call rdx
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140162630
call fcn.1400eb860
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14016263e
call fcn.1400eb860
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14016264c
call fcn.1400f5ea0
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x14016265f
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x14016267d
mov edx, 1
xor ecx, ecx
call rax
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14016268c
call fcn.1400f5ea0
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
test edi, edi
je 0x140162403
mov rbx, qword [rbp]
mov rdi, qword [rbp - 0x18]
lea rcx, [rbp + 0x40]
mov r8, rbx
mov edx, edi
call fcn.1400d4d60
test rax, rax
je 0x140162403
lea r8d, [rdi*8]
mov rdx, rbx
mov rcx, rbx
imul r8d, esi
call fcn.1400d5690
test eax, eax
je 0x140162403
mov r8, rbx
mov rdx, r13
mov rcx, r13
call fcn.14012eaa0
test eax, eax
je 0x140162403
inc esi
cmp esi, r12d
jle 0x1401624c4
jmp 0x14016271d
mov rbx, qword [rbp]
mov rdi, qword [rbp - 0x18]
mov rax, qword [rbp + 0x20]
dec eax
js 0x140162403
cdq
and edx, 0x3f
add eax, edx
mov ecx, eax
and eax, 0x3f
sub eax, edx
sar ecx, 6
mov r9d, eax
cmp ecx, dword [r13 + 8]
jge 0x140162403
test eax, eax
jne 0x140162750
mov dword [r13 + 8], ecx
jmp 0x140162772
lea eax, [rcx + 1]
movsxd rdx, ecx
mov ecx, r9d
mov dword [r13 + 8], eax
mov rax, qword [r13]
lea r8, [rax + rdx*8]
or rax, 0xffffffffffffffff
shl rax, cl
not rax
and qword [r8], rax
mov edx, dword [r13 + 8]
test edx, edx
jle 0x1401627a6
lea eax, [rdx - 1]
movsxd rcx, eax
mov rax, qword [r13]
lea r8, [rax + rcx*8]
nop dword [rax + rax]
mov rax, qword [r8]
lea r8, [r8 - 8]
test rax, rax
jne 0x1401627a2
dec edx
test edx, edx
jg 0x140162790
mov dword [r13 + 8], edx
mov rsi, qword [rbp + 0x38]
mov rdx, r13
mov rcx, rsi
call fcn.1400d4c10
test rax, rax
je 0x140162403
mov r8, qword [rbp - 0x20]
mov rdx, rsi
mov rcx, rsi
call fcn.14012eaa0
test eax, eax
je 0x140162403
mov rdx, qword [rbp - 0x10]
mov rcx, rbx
call fcn.1400d5490
test eax, eax
je 0x140162403
mov rax, qword [rsp + 0x38]
mov rdx, qword [rbp + 8]
mov r9, rbx
mov r8, rsi
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.14015fce0
test eax, eax
je 0x140162403
mov rdx, qword [rbp + 8]
lea r8, [0x140218a08]
mov rcx, rbx
call fcn.14012ee50
test eax, eax
je 0x140162403
mov rdx, rsi
mov rsi, qword [rbp - 0x28]
mov r8, rbx
mov rcx, rsi
call fcn.14012ee50
test eax, eax
je 0x140162403
mov rdx, qword [rbp - 0x20]
mov rcx, rsi
call fcn.1400d4f50
mov rsi, qword [rbp - 8]
test eax, eax
js 0x140162880
mov r8, qword [rsp + 0x38]
mov rcx, qword [rbp - 0x28]
mov r9d, 1
lea edx, [r9 + 0x31]
mov qword [rsp + 0x20], rsi
call fcn.140161120
test eax, eax
jg 0x14016294b
jne 0x140162403
inc r15d
cmp r15d, 0x1000
jl 0x1401623e2
mov r14, qword [rbp + 0x10]
mov r15, qword [rbp + 0x18]
mov r12, qword [rsp + 0x38]
mov ebx, dword [rsp + 0x44]
jmp 0x140161e00
lea r9, str.ctx__digest__md_size___EVP_MAX_MD_SIZE
lea rdx, [0x140274498]
lea rcx, str._s__d_:_OpenSSL_internal_error__assertion_failed:__s_n
mov r8d, 0x10f
call fcn.1400f6440
mov ecx, reloc.WS2_32.dll_shutdown
call qword [sym.imp.MSVCR120.dll_raise]
mov ecx, 3
call qword [sym.imp.MSVCR120.dll__exit]
int3
lea r9, str.ctx__digest__md_size___EVP_MAX_MD_SIZE
lea rdx, [0x140274498]
lea rcx, str._s__d_:_OpenSSL_internal_error__assertion_failed:__s_n
mov r8d, 0x10f
call fcn.1400f6440
mov ecx, reloc.WS2_32.dll_shutdown
call qword [sym.imp.MSVCR120.dll_raise]
mov ecx, 3
call qword [sym.imp.MSVCR120.dll__exit]
int3
lea r9, str.ctx__digest__md_size___EVP_MAX_MD_SIZE
lea rdx, [0x140274498]
lea rcx, str._s__d_:_OpenSSL_internal_error__assertion_failed:__s_n
mov r8d, 0x10f
call fcn.1400f6440
mov ecx, reloc.WS2_32.dll_shutdown
call qword [sym.imp.MSVCR120.dll_raise]
mov ecx, 3
call qword [sym.imp.MSVCR120.dll__exit]
int3
test rsi, rsi
je 0x14016298b
mov ecx, dword [rsi]
dec ecx
je 0x140162974
dec ecx
jne 0x140162403
lea edx, [rcx + 1]
mov r8, rsi
lea ecx, [rdx + 1]
call qword [rsi + reloc.WS2_32.dll_recv]
test eax, eax
je 0x140162403
jmp 0x14016298b
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x14016298b
mov r8, qword [rsi + 8]
mov edx, 1
lea ecx, [rdx + 1]
call rax
mov r14, qword [rbp - 0x28]
mov rdi, qword [rbp - 0x20]
lea r8, [0x140218a08]
mov rdx, r14
mov rcx, rdi
call fcn.14012ee50
mov r12, qword [rsp + 0x38]
test eax, eax
je 0x140162408
mov r15, qword [rbp - 0x10]
mov r8, rdi
xor edx, edx
mov rcx, rbx
mov r9, r15
mov qword [rsp + 0x20], r12
call fcn.14015fce0
test eax, eax
je 0x140162408
mov edx, 2
mov rcx, rdi
call fcn.1400d4ce0
mov r13, qword [rsp + 0x30]
test eax, eax
je 0x14016240d
mov r8, r12
mov rdx, r14
mov rcx, r13
call fcn.140133b80
test eax, eax
je 0x14016240d
mov qword [rsp + 0x28], r13
mov r13, qword [rbp + 0x28]
mov r9, r14
mov r8, rbx
mov rdx, rdi
mov rcx, r13
mov qword [rsp + 0x20], r12
call fcn.140131a00
test eax, eax
je 0x140162408
nop word [rax + rax]
cmp dword [r13 + 8], 1
jne 0x140162a8b
mov rax, qword [r13]
cmp qword [rax], 1
jne 0x140162a8b
cmp dword [r13 + 0x10], 0
jne 0x140162a8b
lea r8, [0x140218a08]
mov rdx, rdi
mov rcx, rdi
call fcn.14012eaa0
test eax, eax
je 0x140162408
mov rax, qword [rsp + 0x30]
mov r9, r14
mov r8, rbx
mov qword [rsp + 0x28], rax
mov rdx, rdi
mov rcx, r13
mov qword [rsp + 0x20], r12
call fcn.140131a00
test eax, eax
jne 0x140162a30
jmp 0x140162408
mov edx, 3
mov rcx, rsi
lea r8d, [rdx - 2]
call fcn.140160d70
test eax, eax
je 0x140162408
mov rsi, qword [rbp + 0x30]
mov dword [rsp + 0x40], 1
mov rbx, qword [rsi + 0x10]
test rbx, rbx
je 0x140162b35
mov rdi, qword [rbx]
test rdi, rdi
je 0x140162af8
test byte [rbx + 0x14], 2
jne 0x140162af8
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162ada
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162aff
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140162bc3
test rax, rax
je 0x140162b17
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162b3c
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov rbx, qword [rsi + 0x18]
test rbx, rbx
je 0x140162be4
mov rdi, qword [rbx]
test rdi, rdi
je 0x140162b88
test byte [rbx + 0x14], 2
jne 0x140162b88
test rax, rax
je 0x140162b63
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162b88
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140162bd6
test rax, rax
je 0x140162b9c
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162be4
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
jmp 0x140162be4
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
jmp 0x140162b3c
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
mov rbx, qword [rsi + 0x20]
test rbx, rbx
je 0x140162c72
mov rdi, qword [rbx]
test rdi, rdi
je 0x140162c30
test byte [rbx + 0x14], 2
jne 0x140162c30
test rax, rax
je 0x140162c0b
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162c30
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140162c64
test rax, rax
je 0x140162c44
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162c72
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140162c72
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
test r14, r14
je 0x140162d28
call fcn.1400d4910
mov rbx, rax
test rax, rax
je 0x140162d28
mov rdx, r14
mov rcx, rax
call fcn.1400d4c10
test rax, rax
jne 0x140162d2a
mov rdi, qword [rbx]
test rdi, rdi
je 0x140162cdf
test byte [rbx + 0x14], 2
jne 0x140162cdf
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162cc1
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162ce6
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140162d1a
test rax, rax
je 0x140162cfa
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162d28
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140162d28
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
xor ebx, ebx
mov qword [rsi + 0x10], rbx
test r15, r15
je 0x140162de4
call fcn.1400d4910
mov rbx, rax
test rax, rax
je 0x140162de4
mov rdx, r15
mov rcx, rax
call fcn.1400d4c10
test rax, rax
jne 0x140162de6
mov rdi, qword [rbx]
test rdi, rdi
je 0x140162d9b
test byte [rbx + 0x14], 2
jne 0x140162d9b
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162d7d
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162da2
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140162dd6
test rax, rax
je 0x140162db6
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162de4
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140162de4
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
xor ebx, ebx
mov qword [rsi + 0x18], rbx
call fcn.1400d4910
mov rbx, rax
test rax, rax
je 0x140162e97
mov rdx, r13
mov rcx, rax
call fcn.1400d4c10
test rax, rax
jne 0x140162e99
mov rdi, qword [rbx]
test rdi, rdi
je 0x140162e4e
test byte [rbx + 0x14], 2
jne 0x140162e4e
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162e30
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162e55
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140162e89
test rax, rax
je 0x140162e69
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162e97
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140162e97
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
xor ebx, ebx
cmp qword [rsi + 0x10], 0
mov qword [rsi + 0x20], rbx
je 0x140162eb4
cmp qword [rsi + 0x18], 0
je 0x140162eb4
test rbx, rbx
jne 0x140162408
mov dword [rsp + 0x40], 0
jmp 0x140162408
dec dword [r12 + 0x28]
mov rax, qword [r12 + 0x20]
mov ecx, dword [r12 + 0x28]
mov r9d, dword [rax + rcx*4]
mov r8d, dword [r12 + 0x30]
cmp r9d, r8d
jae 0x140162f26
mov eax, dword [r12 + 0x18]
sub r8d, r9d
lea edx, [rax - 1]
sub eax, r8d
and edx, 0xf
mov dword [r12 + 0x18], eax
test r8d, r8d
je 0x140162f26
nop dword [rax]
dec r8d
test edx, edx
jne 0x140162f1f
mov rax, qword [r12 + 8]
mov edx, reloc.WS2_32.dll_ntohs
mov rcx, qword [rax + 0x180]
mov qword [r12 + 8], rcx
jmp 0x140162f21
dec edx
test r8d, r8d
jne 0x140162f00
xor esi, esi
mov dword [r12 + 0x30], r9d
mov dword [r12 + 0x38], esi
mov rcx, r12
call fcn.14010b5b0
test r13, r13
je 0x140163132
lea rbx, [r13 + 8]
test rbx, rbx
je 0x140162fc8
mov rdi, qword [rbx]
test rdi, rdi
je 0x140162f8b
test byte [rbx + 0x14], 2
jne 0x140162f8b
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162f6d
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162f92
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163056
test rax, rax
je 0x140162faa
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140162fcf
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
lea rbx, [r13 + 0x20]
test rbx, rbx
je 0x14016306f
mov rdi, qword [rbx]
test rdi, rdi
je 0x14016301b
test byte [rbx + 0x14], 2
jne 0x14016301b
test rax, rax
je 0x140162ff6
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x14016301b
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163065
test rax, rax
je 0x14016302f
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x14016306f
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
jmp 0x14016306f
bts ecx, 0xf
mov qword [rbx], rsi
mov dword [rbx + 0x14], ecx
jmp 0x140162fcf
bts ecx, 0xf
mov qword [rbx], rsi
mov dword [rbx + 0x14], ecx
lea rbx, [r13 + 0x38]
test rbx, rbx
je 0x140163100
mov rdi, qword [rbx]
test rdi, rdi
je 0x1401630bb
test byte [rbx + 0x14], 2
jne 0x1401630bb
test rax, rax
je 0x140163096
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x1401630bb
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x1401630f6
test rax, rax
je 0x1401630cf
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402ddc88]
test rax, rax
je 0x140163100
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402ddc88]
jmp 0x140163100
bts ecx, 0xf
mov qword [rbx], rsi
mov dword [rbx + 0x14], ecx
test byte [r13 + 0x60], 1
je 0x140163132
test rax, rax
je 0x140163113
xor edx, edx
mov rcx, r13
call rax
mov rcx, r13
call qword [sub.MSVCR120.dll_free]
mov r8, qword [0x1402ddc88]
test r8, r8
je 0x140163132
mov edx, 1
xor ecx, ecx
call r8
mov eax, dword [rsp + 0x40]
mov r14, qword [rsp + 0x1e0]
mov r13, qword [rsp + 0x1e8]
mov r12, qword [rsp + 0x1f0]
mov r15, qword [rsp + 0x1d8]
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1401bddc0
add rsp, 0x1f8
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor eax, eax
jmp 0x140163156