Function at 0x140162b60
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rbx
push r13
push r14
lea rbp, [r11 - 0x118]
sub rsp, 0x1f8
mov rax, qword [0x140264330]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov r13, qword [rbp + 0x168]
mov r14, r8
xor ebx, ebx
shr r14, 3
mov qword [rbp + 0x30], rcx
mov dword [rsp + 0x40], 0
lea eax, [r14 - 0x14]
mov qword [rbp + 0x18], r14
test eax, 0xfffffff3
jne 0x140164001
cmp r14d, 0x18
je 0x140164001
mov qword [r11 - 0x28], rsi
mov qword [r11 - 0x30], rdi
mov qword [r11 - 0x38], r12
test r9, r9
mov eax, 0x200
lea r12, [0x1402339a0]
cmovne r12, r9
cmp rdx, rax
mov qword [r11 - 0x40], r15
cmovb rdx, rax
mov qword [rbp + 0x20], r12
lea rdi, [rdx + 0x3f]
and rdi, 0xffffffffffffffc0
mov qword [rbp + 0x28], rdi
call fcn.14010c4b0
mov r15, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x140163fc0
call fcn.140134990
mov rsi, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140163204
mov rcx, r15
call fcn.14010c630
mov rcx, r15
call fcn.14010c710
mov rcx, r15
mov qword [rbp + 0x10], rax
call fcn.14010c710
mov rcx, r15
mov qword [rbp + 0x38], rax
call fcn.14010c710
mov rcx, r15
mov qword [rbp - 0x20], rax
call fcn.14010c710
mov rcx, r15
mov qword [rbp - 0x10], rax
call fcn.14010c710
mov rcx, r15
mov qword [rbp - 0x28], rax
call fcn.14010c710
mov rcx, r15
mov qword [rbp], rax
call fcn.14010c710
mov rcx, r15
mov qword [rbp - 0x18], rax
call fcn.14010c710
lea r8d, [rdi - 1]
lea rdx, [0x1402237d8]
mov rcx, rax
mov qword [rbp - 8], rax
call fcn.1400d66a0
test eax, eax
je 0x140163204
movsxd rsi, r14d
mov qword [rbp + 8], rsi
test r13, r13
je 0x140162ce6
mov ecx, dword [r13]
dec ecx
je 0x140162cd3
dec ecx
je 0x140162cc6
xor eax, eax
jmp 0x140162ceb
mov r8, r13
mov edx, ebx
xor ecx, ecx
call qword [r13 + reloc.WS2_32.dll_recv]
jmp 0x140162ceb
mov rax, qword [r13 + 0x10]
test rax, rax
je 0x140162ce6
mov r8, qword [r13 + 8]
mov edx, ebx
xor ecx, ecx
call rax
mov eax, 1
inc ebx
mov dword [rsp + 0x44], ebx
test eax, eax
je 0x1401631ff
mov rax, qword [0x1402ead70]
test rax, rax
jne 0x140162d4c
cmp qword [0x1402eaf30], rax
je 0x140162d3e
lea edx, [rax + 1]
lea rcx, [0x1402eaf30]
call fcn.140132240
mov rcx, rax
test rax, rax
je 0x140162d3e
mov rax, qword [rax + 0x38]
mov qword [0x1402ead70], rax
test rax, rax
jne 0x140162e35
call fcn.1400f6e80
lea rax, [0x1402822c0]
mov qword [0x1402ead70], rax
mov r8, qword [rax + 0x20]
test r8, r8
je 0x140162d62
lea rcx, [rbp + 0xa0]
mov edx, r14d
call r8
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x60]
mov r8, rsi
call sub.MSVCR120.dll_memcpy
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x80]
mov r8, rsi
call sub.MSVCR120.dll_memcpy
lea rax, [rsi - 1]
test rax, rax
js 0x140162d9f
inc byte [rbp + rax + 0x60]
jne 0x140162d9f
dec rax
jns 0x140162d94
xor eax, eax
lea rcx, [rbp - 0x58]
xor r8d, r8d
mov qword [rbp - 0x48], rax
or dword [rbp - 0x48], 1
mov rdx, r12
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.1400fc3e0
test eax, eax
je 0x140162e41
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x58]
mov r8, rsi
call qword [rbp - 0x30]
test eax, eax
je 0x140162e41
mov rax, qword [rbp - 0x58]
cmp dword [rax + 8], 0x40
jg 0x140163726
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 0x140162e1b
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 0x140162e41
mov edi, 1
jmp 0x140162e43
mov qword [0x1402ead68], rcx
jmp 0x140162d4c
xor edi, edi
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140162ebb
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140162e65
test byte [rbp - 0x48], 2
jne 0x140162e65
lea rcx, [rbp - 0x58]
call rdx
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x140162ebb
movsxd rdx, dword [rax + 0x60]
test edx, edx
je 0x140162ebb
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140162ebb
test byte [rbp - 0x48], 4
jne 0x140162ebb
call fcn.140012ba0
mov rax, qword [0x1402eae88]
mov rbx, qword [rbp - 0x40]
test rax, rax
je 0x140162e9d
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140162ebb
mov edx, 1
xor ecx, ecx
call rax
mov rbx, qword [rbp - 0x38]
test rbx, rbx
je 0x140162f35
mov rax, qword [rbx]
test rax, rax
je 0x140162eda
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x140162eda
mov rcx, rbx
call rdx
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x140162ee8
call fcn.1400ec820
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140162ef6
call fcn.1400ec820
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140162f04
call fcn.1400f6e80
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140162f17
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140162f35
mov edx, 1
xor ecx, ecx
call rax
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x140162f43
call fcn.1400f6e80
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 0x1401631ff
mov qword [rbp - 0x78], rax
or dword [rbp - 0x78], 1
lea rcx, [rsp + 0x78]
xor r8d, r8d
mov rdx, r12
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.1400fc3e0
test eax, eax
je 0x140163001
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x78]
mov r8, rsi
call qword [rbp - 0x60]
test eax, eax
je 0x140163001
mov rax, qword [rsp + 0x78]
cmp dword [rax + 8], 0x40
jg 0x14016375d
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 0x140162fe7
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 0x140163001
mov edi, 1
jmp 0x140163003
xor edi, edi
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14016307e
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140163028
test byte [rbp - 0x78], 2
jne 0x140163028
lea rcx, [rsp + 0x78]
call rdx
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14016307e
movsxd rdx, dword [rax + 0x60]
test edx, edx
je 0x14016307e
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x14016307e
test byte [rbp - 0x78], 4
jne 0x14016307e
call fcn.140012ba0
mov rax, qword [0x1402eae88]
mov rbx, qword [rbp - 0x70]
test rax, rax
je 0x140163060
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x14016307e
mov edx, 1
xor ecx, ecx
call rax
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x1401630f8
mov rax, qword [rbx]
test rax, rax
je 0x14016309d
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x14016309d
mov rcx, rbx
call rdx
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1401630ab
call fcn.1400ec820
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1401630b9
call fcn.1400ec820
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1401630c7
call fcn.1400f6e80
mov rax, qword [0x1402eae88]
test rax, rax
je 0x1401630da
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x1401630f8
mov edx, 1
xor ecx, ecx
call rax
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x140163106
call fcn.1400f6e80
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 0x1401631ff
xor ecx, ecx
test r14d, r14d
jle 0x140163178
cmp r14d, 0x10
jb 0x140163178
mov eax, r14d
xor edx, edx
and eax, 0x8000000f
jge 0x140163149
dec eax
or eax, 0xfffffff0
inc eax
mov r8d, r14d
sub r8d, eax
nop
movsxd rax, edx
add edx, 0x10
add rcx, 0x10
movdqu xmm0, xmmword [rbp + rax + 0x40]
movdqu xmm1, xmmword [rbp + rax + 0x80]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x40], xmm1
cmp edx, r8d
jl 0x140163150
cmp rcx, rsi
jge 0x140163194
nop dword [rax]
movzx eax, byte [rbp + rcx + 0x80]
inc rcx
xor byte [rbp + rcx + 0x3f], al
cmp rcx, rsi
jl 0x140163180
or byte [rbp + 0x40], 0x80
mov rdi, qword [rbp - 0x10]
or byte [rbp + rsi + 0x3f], 1
lea rcx, [rbp + 0x40]
mov r8, rdi
mov edx, r14d
call fcn.1400d5d70
test rax, rax
je 0x1401631ff
mov r9d, 1
mov r8, r15
mov rcx, rdi
lea edx, [r9 + 0x31]
mov qword [rsp + 0x20], r13
call fcn.140161fd0
test eax, eax
jg 0x1401631de
jne 0x1401631ff
mov ebx, dword [rsp + 0x44]
jmp 0x140162cb1
test r13, r13
je 0x140163261
mov ecx, dword [r13]
dec ecx
je 0x14016321b
dec ecx
jne 0x1401631ff
xor edx, edx
mov r8, r13
lea ecx, [rdx + 2]
call qword [r13 + reloc.WS2_32.dll_recv]
test eax, eax
jne 0x14016322f
mov rsi, qword [rsp + 0x30]
mov eax, dword [r15 + 0x34]
test eax, eax
je 0x140163d53
dec eax
mov dword [r15 + 0x34], eax
jmp 0x140163db5
mov rax, qword [r13 + 0x10]
test rax, rax
je 0x14016322f
mov r8, qword [r13 + 8]
xor edx, edx
lea ecx, [rdx + 2]
call rax
mov ecx, dword [r13]
dec ecx
je 0x14016324d
dec ecx
jne 0x1401631ff
xor edx, edx
mov r8, r13
lea ecx, [rdx + 3]
call qword [r13 + reloc.WS2_32.dll_recv]
test eax, eax
je 0x1401631ff
jmp 0x140163261
mov rax, qword [r13 + 0x10]
test rax, rax
je 0x140163261
mov r8, qword [r13 + 8]
xor edx, edx
lea ecx, [rdx + 3]
call rax
mov rcx, qword [rbp + 0x28]
mov rbx, qword [rbp - 0x20]
movabs rax, 0xcccccccccccccccd
dec rcx
xor r15d, r15d
lea r14, [rsi - 1]
mul rcx
mov r12, rdx
shr r12, 7
test r15d, r15d
je 0x1401632c9
test r13, r13
je 0x1401632c9
mov ecx, dword [r13]
dec ecx
je 0x1401632b5
dec ecx
jne 0x1401632ab
mov r8, r13
mov edx, r15d
call qword [r13 + reloc.WS2_32.dll_recv]
test eax, eax
jne 0x1401632c9
mov r15, qword [rsp + 0x38]
jmp 0x1401631ff
mov rax, qword [r13 + 0x10]
test rax, rax
je 0x1401632c9
mov r8, qword [r13 + 8]
mov edx, r15d
xor ecx, ecx
call rax
cmp dword [rbx + 0xc], 1
jge 0x14016332b
mov edx, 1
mov rcx, rbx
call fcn.1400d5a00
mov rdi, rax
test rax, rax
je 0x140163343
mov rbx, qword [rbx]
test rbx, rbx
je 0x14016331d
mov rax, qword [0x1402eae88]
test rax, rax
je 0x1401632ff
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x14016331d
mov edx, 1
xor ecx, ecx
call rax
mov rbx, qword [rbp - 0x20]
mov qword [rbx], rdi
mov dword [rbx + 0xc], 1
mov rax, qword [rbx]
mov dword [rbx + 0x10], 0
mov qword [rax], 0
mov dword [rbx + 8], 0
xor esi, esi
test r12d, r12d
js 0x1401635a1
nop
mov rax, r14
test r14, r14
js 0x140163363
inc byte [rbp + rax + 0x60]
jne 0x140163363
dec rax
jns 0x140163358
mov rdx, qword [rbp + 0x20]
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.1400fc3e0
test eax, eax
je 0x140163409
mov r8, qword [rbp + 8]
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x48]
call qword [rsp + reloc.WS2_32.dll_WSASetLastError]
test eax, eax
je 0x140163409
mov rax, qword [rsp + 0x48]
cmp dword [rax + 8], 0x40
jg 0x140163794
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 0x1401633ee
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 0x140163409
mov edi, 1
jmp 0x14016340b
xor edi, edi
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14016348a
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x140163431
test byte [rsp + 0x58], 2
jne 0x140163431
lea rcx, [rsp + 0x48]
call rdx
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14016348a
movsxd rdx, dword [rax + 0x60]
test edx, edx
je 0x14016348a
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14016348a
test byte [rsp + 0x58], 4
jne 0x14016348a
call fcn.140012ba0
mov rax, qword [0x1402eae88]
mov rbx, qword [rsp + 0x60]
test rax, rax
je 0x14016346c
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x14016348a
mov edx, 1
xor ecx, ecx
call rax
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x140163505
mov rax, qword [rbx]
test rax, rax
je 0x1401634aa
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x1401634aa
mov rcx, rbx
call rdx
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1401634b8
call fcn.1400ec820
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1401634c6
call fcn.1400ec820
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1401634d4
call fcn.1400f6e80
mov rax, qword [0x1402eae88]
test rax, rax
je 0x1401634e7
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163505
mov edx, 1
xor ecx, ecx
call rax
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140163514
call fcn.1400f6e80
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 0x1401632ab
mov rdi, qword [rbp + 0x10]
mov rbx, qword [rbp + 0x18]
lea rcx, [rbp + 0x40]
mov r8, rdi
mov edx, ebx
call fcn.1400d5d70
test rax, rax
je 0x1401632ab
lea r8d, [rbx*8]
mov rdx, rdi
mov rcx, rdi
imul r8d, esi
call fcn.1400d66a0
test eax, eax
je 0x1401632ab
mov rbx, qword [rbp - 0x20]
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
call fcn.14012fa10
test eax, eax
je 0x1401632ab
inc esi
cmp esi, r12d
jle 0x140163350
jmp 0x1401635a5
mov rdi, qword [rbp + 0x10]
mov rax, qword [rbp + 0x28]
dec eax
js 0x1401632ab
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 [rbx + 8]
jge 0x1401632ab
test eax, eax
jne 0x1401635d6
mov dword [rbx + 8], ecx
jmp 0x1401635f6
lea eax, [rcx + 1]
movsxd rdx, ecx
mov ecx, r9d
mov dword [rbx + 8], eax
mov rax, qword [rbx]
lea r8, [rax + rdx*8]
or rax, 0xffffffffffffffff
shl rax, cl
not rax
and qword [r8], rax
mov edx, dword [rbx + 8]
test edx, edx
jle 0x140163625
lea eax, [rdx - 1]
movsxd rcx, eax
mov rax, qword [rbx]
lea r8, [rax + rcx*8]
nop word [rax + rax]
mov rax, qword [r8]
lea r8, [r8 - 8]
test rax, rax
jne 0x140163622
dec edx
test edx, edx
jg 0x140163610
mov dword [rbx + 8], edx
mov rsi, qword [rbp - 0x28]
mov rdx, rbx
mov rcx, rsi
call fcn.1400d5c20
test rax, rax
je 0x1401632ab
mov r8, qword [rbp - 8]
mov rdx, rsi
mov rcx, rsi
call fcn.14012fa10
test eax, eax
je 0x1401632ab
mov rdx, qword [rbp - 0x10]
mov rcx, rdi
call fcn.1400d64a0
test eax, eax
je 0x1401632ab
mov rsi, qword [rsp + 0x38]
mov r8, qword [rbp - 0x28]
mov rdx, qword [rbp]
mov r9, rdi
xor ecx, ecx
mov qword [rsp + 0x20], rsi
call fcn.140160b90
test eax, eax
je 0x140163d43
mov rdx, qword [rbp]
lea r8, [0x1402237d8]
mov rcx, rdi
call fcn.14012fdc0
test eax, eax
je 0x140163d43
mov rdx, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x18]
mov r8, rdi
call fcn.14012fdc0
test eax, eax
je 0x140163d43
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp - 0x18]
call fcn.1400d5f60
test eax, eax
js 0x1401636fc
mov r8, rsi
mov rsi, qword [rbp - 0x18]
mov r9d, 1
lea edx, [r9 + 0x31]
mov rcx, rsi
mov qword [rsp + 0x20], r13
call fcn.140161fd0
test eax, eax
jg 0x1401637cb
jne 0x1401632ab
inc r15d
cmp r15d, 0x1000
jl 0x140163287
mov rsi, qword [rbp + 8]
mov r14, qword [rbp + 0x18]
mov r15, qword [rsp + 0x38]
mov r12, qword [rbp + 0x20]
mov ebx, dword [rsp + 0x44]
jmp 0x140162cb1
lea r9, str.ctx__digest__md_size___EVP_MAX_MD_SIZE
lea rdx, [0x1402805f8]
lea rcx, str._s__d_:_OpenSSL_internal_error__assertion_failed:__s_n
mov r8d, 0x10f
call fcn.1400f7420
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, [0x1402805f8]
lea rcx, str._s__d_:_OpenSSL_internal_error__assertion_failed:__s_n
mov r8d, 0x10f
call fcn.1400f7420
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, [0x1402805f8]
lea rcx, str._s__d_:_OpenSSL_internal_error__assertion_failed:__s_n
mov r8d, 0x10f
call fcn.1400f7420
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 r13, r13
je 0x14016380e
mov ecx, dword [r13]
dec ecx
je 0x1401637f7
dec ecx
jne 0x1401632ab
lea edx, [rcx + 1]
mov r8, r13
lea ecx, [rdx + 1]
call qword [r13 + reloc.WS2_32.dll_recv]
test eax, eax
je 0x1401632ab
jmp 0x14016380e
mov rax, qword [r13 + 0x10]
test rax, rax
je 0x14016380e
mov r8, qword [r13 + 8]
mov edx, 1
lea ecx, [rdx + 1]
call rax
mov rbx, qword [rbp - 8]
lea r8, [0x1402237d8]
mov rdx, rsi
mov rcx, rbx
call fcn.14012fdc0
mov r15, qword [rsp + 0x38]
test eax, eax
je 0x1401631ff
mov r14, qword [rbp - 0x10]
mov r8, rbx
xor edx, edx
mov rcx, rdi
mov r9, r14
mov qword [rsp + 0x20], r15
call fcn.140160b90
test eax, eax
je 0x1401631ff
mov edx, 2
mov rcx, rbx
call fcn.1400d5cf0
test eax, eax
je 0x1401631ff
mov r12, qword [rsp + 0x30]
mov r8, r15
mov rdx, rsi
mov rcx, r12
call fcn.140134ad0
test eax, eax
je 0x140163d4b
mov qword [rsp + 0x28], r12
mov r12, qword [rbp + 0x38]
mov r9, rsi
mov r8, rdi
mov rdx, rbx
mov rcx, r12
mov qword [rsp + 0x20], r15
call fcn.140132930
test eax, eax
je 0x1401631ff
nop dword [rax]
cmp dword [r12 + 8], 1
jne 0x14016390d
mov rax, qword [r12]
cmp qword [rax], 1
jne 0x14016390d
cmp dword [r12 + 0x10], 0
jne 0x14016390d
lea r8, [0x1402237d8]
mov rdx, rbx
mov rcx, rbx
call fcn.14012fa10
test eax, eax
je 0x1401631ff
mov rax, qword [rsp + 0x30]
mov r9, rsi
mov r8, rdi
mov qword [rsp + 0x28], rax
mov rdx, rbx
mov rcx, r12
mov qword [rsp + 0x20], r15
call fcn.140132930
test eax, eax
jne 0x1401638b0
jmp 0x1401631ff
mov edx, 3
mov rcx, r13
lea r8d, [rdx - 2]
call fcn.140161c20
test eax, eax
je 0x1401631ff
mov r13, qword [rbp + 0x30]
mov dword [rsp + 0x40], 1
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x1401639b7
mov rdi, qword [rbx]
test rdi, rdi
je 0x14016397a
test byte [rbx + 0x14], 2
jne 0x14016397a
mov rax, qword [0x1402eae88]
test rax, rax
je 0x14016395c
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163981
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163a45
test rax, rax
je 0x140163999
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x1401639be
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov rbx, qword [r13 + 0x18]
test rbx, rbx
je 0x140163a66
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163a0a
test byte [rbx + 0x14], 2
jne 0x140163a0a
test rax, rax
je 0x1401639e5
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163a0a
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163a58
test rax, rax
je 0x140163a1e
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163a66
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
jmp 0x140163a66
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
jmp 0x1401639be
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
mov rbx, qword [r13 + 0x20]
test rbx, rbx
je 0x140163af4
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163ab2
test byte [rbx + 0x14], 2
jne 0x140163ab2
test rax, rax
je 0x140163a8d
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163ab2
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163ae6
test rax, rax
je 0x140163ac6
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163af4
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140163af4
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
test rsi, rsi
je 0x140163baa
call fcn.1400d5920
mov rbx, rax
test rax, rax
je 0x140163baa
mov rdx, rsi
mov rcx, rax
call fcn.1400d5c20
test rax, rax
jne 0x140163bac
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163b61
test byte [rbx + 0x14], 2
jne 0x140163b61
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163b43
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163b68
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163b9c
test rax, rax
je 0x140163b7c
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163baa
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140163baa
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
xor ebx, ebx
mov qword [r13 + 0x10], rbx
test r14, r14
je 0x140163c66
call fcn.1400d5920
mov rbx, rax
test rax, rax
je 0x140163c66
mov rdx, r14
mov rcx, rax
call fcn.1400d5c20
test rax, rax
jne 0x140163c68
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163c1d
test byte [rbx + 0x14], 2
jne 0x140163c1d
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163bff
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163c24
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163c58
test rax, rax
je 0x140163c38
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163c66
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140163c66
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
xor ebx, ebx
mov qword [r13 + 0x18], rbx
call fcn.1400d5920
mov rbx, rax
test rax, rax
je 0x140163d19
mov rdx, r12
mov rcx, rax
call fcn.1400d5c20
test rax, rax
jne 0x140163d1b
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163cd0
test byte [rbx + 0x14], 2
jne 0x140163cd0
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163cb2
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163cd7
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163d0b
test rax, rax
je 0x140163ceb
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163d19
mov edx, 1
xor ecx, ecx
call rax
jmp 0x140163d19
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
xor ebx, ebx
cmp qword [r13 + 0x10], 0
mov qword [r13 + 0x20], rbx
je 0x140163d36
cmp qword [r13 + 0x18], 0
je 0x140163d36
test rbx, rbx
jne 0x1401631ff
mov dword [rsp + 0x40], 0
jmp 0x1401631ff
mov r15, rsi
jmp 0x1401631ff
mov rsi, r12
jmp 0x140163204
dec dword [r15 + 0x28]
mov rax, qword [r15 + 0x20]
mov ecx, dword [r15 + 0x28]
mov r9d, dword [rax + rcx*4]
mov r8d, dword [r15 + 0x30]
cmp r9d, r8d
jae 0x140163da9
mov eax, dword [r15 + 0x18]
sub r8d, r9d
lea edx, [rax - 1]
sub eax, r8d
and edx, 0xf
mov dword [r15 + 0x18], eax
test r8d, r8d
je 0x140163da9
dec r8d
test edx, edx
jne 0x140163da2
mov rax, qword [r15 + 8]
mov edx, reloc.WS2_32.dll_ntohs
mov rcx, qword [rax + 0x180]
mov qword [r15 + 8], rcx
jmp 0x140163da4
dec edx
test r8d, r8d
jne 0x140163d85
mov dword [r15 + 0x30], r9d
mov dword [r15 + 0x38], 0
mov rcx, r15
call fcn.14010c590
test rsi, rsi
je 0x140163fc0
lea rbx, [rsi + 8]
test rbx, rbx
je 0x140163e4b
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163e0e
test byte [rbx + 0x14], 2
jne 0x140163e0e
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163df0
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163e15
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163ed9
test rax, rax
je 0x140163e2d
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163e52
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
lea rbx, [rsi + 0x20]
test rbx, rbx
je 0x140163efa
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163e9e
test byte [rbx + 0x14], 2
jne 0x140163e9e
test rax, rax
je 0x140163e79
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163e9e
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163eec
test rax, rax
je 0x140163eb2
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163efa
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
jmp 0x140163efa
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
jmp 0x140163e52
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
lea rbx, [rsi + 0x38]
test rbx, rbx
je 0x140163f8f
mov rdi, qword [rbx]
test rdi, rdi
je 0x140163f46
test byte [rbx + 0x14], 2
jne 0x140163f46
test rax, rax
je 0x140163f21
xor edx, edx
mov rcx, rdi
call rax
mov rcx, rdi
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163f46
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
mov ecx, dword [rbx + 0x14]
test cl, 1
je 0x140163f81
test rax, rax
je 0x140163f5a
xor edx, edx
mov rcx, rbx
call rax
mov rcx, rbx
call qword [sub.MSVCR120.dll_free]
mov rax, qword [0x1402eae88]
test rax, rax
je 0x140163f8f
mov edx, 1
xor ecx, ecx
call rax
mov rax, qword [0x1402eae88]
jmp 0x140163f8f
bts ecx, 0xf
mov qword [rbx], 0
mov dword [rbx + 0x14], ecx
test byte [rsi + 0x60], 1
je 0x140163fc0
test rax, rax
je 0x140163fa1
xor edx, edx
mov rcx, rsi
call rax
mov rcx, rsi
call qword [sub.MSVCR120.dll_free]
mov r8, qword [0x1402eae88]
test r8, r8
je 0x140163fc0
mov edx, 1
xor ecx, ecx
call r8
mov eax, dword [rsp + 0x40]
mov r12, qword [rsp + 0x1e0]
mov rdi, qword [rsp + 0x1e8]
mov rsi, qword [rsp + 0x1f0]
mov r15, qword [rsp + 0x1d8]
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1401bb2c0
add rsp, 0x1f8
pop r14
pop r13
pop rbx
pop rbp
ret
xor eax, eax
jmp 0x140163fe4