Function at 0x1800e6c10
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x2c0]
mov eax, 0x3c0
call fcn.1801c83e0
sub rsp, rax
mov rax, qword [0x1802d1460]
xor rax, rsp
mov qword [rbp + 0x2a0], rax
mov rax, qword [rbp + 0x320]
mov rsi, qword [rbp + 0x330]
mov ebx, 8
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 0x338]
mov qword [rsp + 0x78], r9
mov r13, r8
mov qword [rbp - 0x60], r8
mov qword [rbp - 0x68], rdx
mov qword [rbp - 0x78], rax
mov r14, rcx
mov qword [rbp - 0x70], rcx
mov edi, 0x40
mov dword [rsp + 0x4c], Ordinal_46
mov dword [rsp + 0x28], ebx
mov r12b, 1
cmp rsi, 0x100000
jb 0x1800e6cb0
lea r8, str.data_plus_mac_plus_padding_size___1024__1024
lea rcx, [0x1802d0068]
mov edx, 0x1c7
call fcn.18000c6f0
mov rcx, r14
call fcn.18001d210
mov rcx, rax
call fcn.180002af0
mov r11d, eax
cmp eax, 0x2a1
jg 0x1800e6d7f
je 0x1800e6d6b
cmp eax, 4
je 0x1800e6d3a
cmp eax, edi
je 0x1800e6d11
cmp eax, 0x2a0
jne 0x1800e6d8d
lea rcx, [rbp - 0x10]
call fcn.180046030
test eax, eax
jle 0x1800e6db2
lea rax, [0x1800e6a90]
lea r14, [0x1800472b0]
mov ecx, reloc.WLDAP32.dll_Ordinal_32
jmp 0x1800e6e04
lea rcx, [rbp - 0x10]
call fcn.180044910
test eax, eax
jle 0x1800e6db2
lea rax, [0x1800e6a00]
lea r14, [0x180045e10]
mov ecx, reloc.WS2_32.dll_sendto
jmp 0x1800e6e04
lea rcx, [rbp - 0x10]
call fcn.1800353e0
test eax, eax
jle 0x1800e6db2
mov edx, gethostbyname
lea rax, [0x1800e6980]
lea r14, [0x180035f70]
mov ecx, reloc.WS2_32.dll_recv
xor r12b, r12b
mov dword [rsp + 0x4c], edx
jmp 0x1800e6e09
lea rcx, [rbp - 0x10]
call fcn.1800475f0
test eax, eax
jle 0x1800e6db2
mov ecx, gethostbyname
jmp 0x1800e6dea
sub r11d, 0x2a2
je 0x1800e6ddb
dec r11d
je 0x1800e6db9
lea r8, [0x1802cfff4]
lea rcx, [0x1802d0078]
mov edx, 0x209
call fcn.18000c6f0
test r13, r13
je 0x1800e6db2
mov qword [r13], 0
xor eax, eax
jmp 0x1800e7410
lea rcx, [rbp - 0x10]
call fcn.180045fc0
test eax, eax
jle 0x1800e6db2
lea rax, [0x1800e6a90]
lea r14, [0x1800472b0]
mov ecx, Ordinal_32
jmp 0x1800e6e04
lea rcx, [rbp - 0x10]
call fcn.180047680
test eax, eax
jle 0x1800e6db2
mov ecx, edi
mov ebx, reloc.WS2_32.dll_recv
lea r14, [0x1800499f0]
lea rax, [0x1800e6b70]
lea edi, [rbx + 0x70]
mov dword [rsp + 0x28], ebx
mov edx, Ordinal_41
movzx r10d, byte [rbp + 0x348]
mov qword [rsp + 0x3b8], r15
mov r15d, reloc.WS2_32.dll_listen
mov dword [rsp + 0x24], ecx
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x2c], r15d
test r10b, r10b
je 0x1800e6e47
mov eax, dword [rbp + 0x340]
lea r15d, [rdx + rax + 0xb]
mov dword [rsp + 0x2c], r15d
test r10b, r10b
mov eax, 2
mov r9d, 6
cmovne r9d, eax
xor edx, edx
mov eax, esi
mov esi, dword [rbp + 0x328]
sub eax, ecx
xor r13d, r13d
add eax, r15d
sub esi, ecx
xor ecx, ecx
add eax, ebx
add esi, r15d
mov dword [rsp + 0x34], r9d
lea eax, [rax + rdi - 1]
mov dword [rsp + 0x30], r13d
div edi
xor edx, edx
mov r8d, eax
mov eax, esi
div edi
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x48], edx
xor edx, edx
lea eax, [rsi + rbx]
div edi
test r10b, r10b
setne cl
mov dword [rsp + 0x5c], eax
add ecx, r9d
cmp r8d, ecx
jbe 0x1800e6ebd
mov r13d, r8d
sub r13d, r9d
mov dword [rsp + 0x30], r13d
imul r13d, edi
shl esi, 3
test r10b, r10b
jne 0x1800e6f41
lea rcx, [rbp + 0x120]
mov r8d, edi
xor edx, edx
lea esi, [rsi + rdi*8]
mov ebx, edi
call fcn.1801c9e80
mov eax, dword [rbp + 0x340]
cmp eax, 0x80
jbe 0x1800e6f06
lea r8, str.mac_secret_length___sizeof_hmac_pad_
lea rcx, str.._ssl_s3_cbc.c
mov edx, 0x271
call fcn.18000c6f0
mov eax, dword [rbp + 0x340]
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp + 0x120]
mov r8d, eax
call fcn.1801c9a10
test edi, edi
je 0x1800e6f2f
lea rax, [rbp + 0x120]
xor byte [rax], 0x36
inc rax
dec rbx
jne 0x1800e6f24
lea rdx, [rbp + 0x120]
lea rcx, [rbp - 0x10]
call r14
mov ebx, dword [rsp + 0x28]
xor edx, edx
lea rcx, [rbp + 0xd0]
test r12b, r12b
je 0x1800e6f96
lea eax, [rbx - 4]
mov r8d, eax
mov ebx, eax
call fcn.1801c9e80
mov r8d, dword [rsp + 0x28]
mov edx, esi
lea eax, [r8 - 3]
shr edx, 0x10
mov r11d, esi
mov byte [rbp + rax + 0xd0], dl
lea eax, [r8 - 2]
shr r11d, 0x18
mov edx, esi
mov byte [rbp + rbx + 0xd0], r11b
shr edx, 8
mov byte [rbp + rax + 0xd0], dl
lea eax, [r8 - 1]
jmp 0x1800e6fd1
mov r8d, ebx
call fcn.1801c9e80
lea eax, [rbx - 5]
mov r11d, esi
shr r11d, 0x18
mov edx, esi
mov byte [rbp + rax + 0xd0], r11b
lea eax, [rbx - 6]
shr edx, 0x10
mov byte [rbp + rax + 0xd0], dl
lea eax, [rbx - 7]
mov edx, esi
shr edx, 8
mov byte [rbp + rax + 0xd0], dl
lea eax, [rbx - 8]
mov byte [rbp + rax + 0xd0], sil
test r13d, r13d
je 0x1800e7105
cmp byte [rbp + 0x348], 0
je 0x1800e708d
cmp r15d, edi
jbe 0x1800e7406
mov rsi, qword [rsp + 0x78]
lea rcx, [rbp - 0x10]
mov ebx, r15d
mov rdx, rsi
sub ebx, edi
call r14
mov edx, edi
lea rcx, [rbp + 0x1a0]
mov r8d, ebx
add rdx, rsi
mov r12d, ebx
call fcn.1801c9a10
mov rdx, qword [rsp + 0x50]
mov r8d, edi
lea rcx, [rbp + rbx + 0x1a0]
sub r8d, ebx
call fcn.1801c9a10
lea rdx, [rbp + 0x1a0]
lea rcx, [rbp - 0x10]
call r14
xor edx, edx
mov eax, r13d
div edi
dec eax
cmp eax, 1
jbe 0x1800e7105
mov r15, qword [rsp + 0x50]
mov ebx, edi
lea esi, [rax - 1]
nop word [rax + rax]
mov edx, ebx
lea rcx, [rbp - 0x10]
sub rdx, r12
add rdx, r15
call r14
add ebx, edi
dec rsi
jne 0x1800e7070
mov r15d, dword [rsp + 0x2c]
jmp 0x1800e7105
mov rcx, qword [rsp + 0x78]
mov r12, qword [rsp + 0x50]
lea r8d, [rdi - 0xd]
mov rax, qword [rcx]
mov rdx, r12
mov qword [rbp + 0x1a0], rax
mov eax, dword [rcx + 8]
mov dword [rbp + 0x1a8], eax
movzx eax, byte [rcx + 0xc]
lea rcx, [rbp + 0x1ad]
mov byte [rbp + 0x1ac], al
call fcn.1801c9a10
lea rdx, [rbp + 0x1a0]
lea rcx, [rbp - 0x10]
call r14
xor edx, edx
mov eax, r13d
div edi
cmp eax, 1
jbe 0x1800e7105
mov ebx, edi
lea esi, [rax - 1]
nop word [rax + rax]
mov eax, ebx
lea rcx, [rbp - 0x10]
lea rdx, [rax + r12 - 0xd]
call r14
add ebx, edi
dec rsi
jne 0x1800e70f0
mov r12d, dword [rsp + 0x30]
movsxd rcx, dword [rsp + 0x28]
xor eax, eax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0xf8], rax
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x110], rax
mov qword [rbp + 0x118], rax
mov eax, dword [rsp + 0x34]
add eax, r12d
movsxd r8, r13d
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x80], r8
mov dword [rsp + 0x70], eax
cmp r12d, eax
ja 0x1800e7367
nop dword [rax + rax]
mov eax, r12d
xor ebx, ebx
xor r11d, r11d
xor eax, dword [rsp + 0x60]
lea r14d, [rax - 1]
not eax
shr eax, 0x1f
shr r14d, 0x1f
and r14b, al
mov eax, r12d
xor eax, dword [rsp + 0x5c]
neg r14b
lea esi, [rax - 1]
not eax
shr esi, 0x1f
shr eax, 0x1f
and sil, al
neg sil
test edi, edi
je 0x1800e72f6
mov r10d, dword [rsp + 0x48]
movzx edx, r14b
mov dword [rsp + 0x2c], edx
mov rdx, qword [rsp + 0x50]
lea eax, [r10 + 1]
shr eax, 0x1f
mov r9d, r10d
mov dword [rsp + 0x64], eax
movzx eax, sil
shr r9d, 0x1f
not al
mov dword [rsp + 0x58], r9d
or al, r14b
mov byte [rsp + 0x20], al
mov eax, edi
sub eax, ecx
movsxd rcx, r15d
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x78]
sub rdx, rcx
sub rdx, rax
lea r12, [r8 + rax]
mov eax, r10d
neg eax
mov qword [rbp - 0x58], rdx
mov dword [rsp + 0x34], eax
mov eax, edi
add r8, rax
mov qword [rbp - 0x80], r8
xor r10b, r10b
cmp r13d, r15d
jae 0x1800e7224
movzx r10d, byte [r12]
jmp 0x1800e723b
mov ecx, r15d
mov eax, r13d
add rcx, qword [rbp + 0x330]
cmp rax, rcx
jae 0x1800e723b
movzx r10d, byte [rdx + r12]
mov ecx, dword [rsp + 0x34]
mov r8d, ebx
inc r13d
add ecx, ebx
shr r8d, 0x1f
inc r12
shr ecx, 0x1f
movzx eax, r8b
xor al, r9b
xor cl, r9b
mov r9d, ebx
or cl, al
mov eax, dword [rsp + 0x48]
inc eax
xor cl, r8b
sub r9d, eax
dec cl
shr r9d, 0x1f
movzx edx, cl
mov ecx, dword [rsp + 0x64]
and edx, dword [rsp + 0x2c]
xor r9b, cl
movzx eax, cl
xor al, r8b
or r9b, al
movzx eax, dl
and dl, 0x80
xor r9b, r8b
not al
dec r9b
and al, r10b
and r9b, r14b
or al, dl
not r9b
and r9b, al
and r9b, byte [rsp + 0x20]
cmp ebx, dword [rsp + 0x6c]
jb 0x1800e72d3
mov rax, qword [rbp - 0x50]
movsxd rcx, edi
movzx edx, sil
sub rax, rcx
add rax, r11
movzx ecx, byte [rbp + rax + 0xd0]
and cl, dl
not dl
and r9b, dl
or r9b, cl
mov rdx, qword [rbp - 0x58]
mov byte [rbp + r11 + 0x220], r9b
mov r9d, dword [rsp + 0x58]
inc ebx
inc r11
cmp ebx, edi
jb 0x1800e7215
mov r12d, dword [rsp + 0x30]
lea rdx, [rbp + 0x220]
lea rcx, [rbp - 0x10]
call qword [rsp + 0x40]
lea rdx, [rbp + 0x220]
lea rcx, [rbp - 0x10]
call qword [rsp + gethostname]
mov r14d, dword [rsp + 0x24]
test r14d, r14d
je 0x1800e734a
xor ecx, ecx
mov r8d, r14d
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 0x220]
inc rcx
and al, sil
or byte [rbp + rcx + 0xdf], al
dec r8
jne 0x1800e7330
mov ecx, dword [rsp + 0x28]
mov r8, qword [rbp - 0x80]
inc r12d
mov dword [rsp + 0x30], r12d
cmp r12d, dword [rsp + 0x70]
jbe 0x1800e7170
jmp 0x1800e736c
mov r14d, dword [rsp + 0x24]
lea rcx, [rbp - 0x48]
call fcn.1800343c0
mov rdx, qword [rbp - 0x70]
lea rcx, [rbp - 0x48]
mov rdx, qword [rdx]
xor r8d, r8d
call fcn.180034430
test eax, eax
jle 0x1800e73fd
cmp byte [rbp + 0x348], 0
je 0x1800e7431
mov eax, dword [rsp + 0x4c]
lea rcx, [rbp + 0x120]
mov edx, 0x5c
mov r8d, eax
mov ebx, eax
call fcn.1801c9e80
mov r8d, dword [rbp + 0x340]
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp - 0x48]
call fcn.180034690
test eax, eax
jle 0x1800e73fd
lea rdx, [rbp + 0x120]
lea rcx, [rbp - 0x48]
mov r8d, ebx
call fcn.180034690
test eax, eax
jle 0x1800e73fd
lea rdx, [rbp + 0xe0]
lea rcx, [rbp - 0x48]
mov r8d, r14d
call fcn.180034690
test eax, eax
jg 0x1800e7479
lea rcx, [rbp - 0x48]
call fcn.180034750
xor eax, eax
mov r15, qword [rsp + 0x3b8]
mov rcx, qword [rbp + 0x2a0]
xor rcx, rsp
call fcn.1801c74b0
add rsp, 0x3c0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
test edi, edi
je 0x1800e744b
lea rax, [rbp + 0x120]
mov ecx, edi
nop
xor byte [rax], 0x6a
inc rax
dec rcx
jne 0x1800e7440
lea rdx, [rbp + 0x120]
lea rcx, [rbp - 0x48]
mov r8d, edi
call fcn.180034690
test eax, eax
jle 0x1800e73fd
lea rdx, [rbp + 0xe0]
lea rcx, [rbp - 0x48]
mov r8d, r14d
call fcn.180034690
test eax, eax
jle 0x1800e73fd
mov rdx, qword [rbp - 0x68]
lea r8, [rsp + 0x68]
lea rcx, [rbp - 0x48]
call fcn.180034850
mov r11, qword [rbp - 0x60]
test r11, r11
je 0x1800e749b
mov eax, dword [rsp + 0x68]
mov qword [r11], rax
lea rcx, [rbp - 0x48]
call fcn.180034750
mov eax, 1
jmp 0x1800e7408