Function at 0x14009d410
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rax, qword [rdx + 0x40]
mov r14, rcx
mov r15, qword [rcx + 0x10]
mov qword [rsp + 0x40], rax
movzx ecx, word [rax + 0x18]
movzx r13d, word [rax + 0x1a]
mov rdx, qword [rax + 0x20]
mov eax, dword [r14 + 0x54]
mov dword [rsp + 0xb8], ecx
add ecx, r9d
mov dword [rsp + 0x30], ecx
lea esi, [rax + 1]
add eax, ecx
mov rcx, r15
mov dword [r14 + 0x54], eax
call fcn.1400772e0
mov rbx, qword [r14]
mov rdi, rax
test rax, rax
jne 0x14009d487
xor r12d, r12d
mov qword [rsp + 0x38], r12
jmp 0x14009d511
cmp byte [rax], 0
je 0x14009d498
nop dword [rax]
inc rax
cmp byte [rax], 0
jne 0x14009d490
sub eax, edi
xor r12d, r12d
and eax, 0x3fffffff
lea ebp, [rax + 1]
test rbx, rbx
je 0x14009d4d9
cmp byte [rbx + 0x50], r12b
je 0x14009d4ba
mov ecx, r12d
mov qword [rsp + 0x38], rcx
jmp 0x14009d50c
cmp byte [rbx + 0x14a], r12b
je 0x14009d4d9
movzx eax, word [rbx + 0x148]
cmp rbp, rax
jbe 0x14009d6f4
inc dword [rbx + 0x158]
mov rcx, rbp
call fcn.14001c4a0
mov qword [rsp + 0x38], rax
mov rcx, rax
test rax, rax
jne 0x14009d4fc
test rbx, rbx
je 0x14009d4f7
mov byte [rbx + 0x50], 1
test rax, rax
je 0x14009d50c
mov r8, rbp
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rsp + 0x38]
test rcx, rcx
jne 0x14009d518
mov rax, qword [r14]
mov byte [rax + 0x50], 1
test r13w, r13w
je 0x14009d634
mov r9, qword [rsp + 0xa8]
mov edx, WSAGetLastError
mov ebx, dword [rsp + 0xb0]
mov eax, 0x69
test ebx, ebx
mov dword [rsp + 0x20], r12d
mov rcx, r15
mov r14d, dword [r9 + 8]
cmovne edx, eax
xor r9d, r9d
mov r8d, r14d
call fcn.14003f920
xor r9d, r9d
mov dword [rsp + 0x20], r12d
xor r8d, r8d
mov edx, reloc.WS2_32.dll_recv
mov rcx, r15
call fcn.14003f920
mov edi, eax
mov edx, 0x41
mov eax, 0x3e
mov dword [rsp + 0x20], esi
test ebx, ebx
mov r8d, r14d
mov rcx, r15
cmovne edx, eax
xor r9d, r9d
call fcn.14003f920
mov r8, r13
mov r9d, 0xfffffff2
mov edx, eax
mov rcx, r15
mov ebx, eax
call fcn.14003ff50
mov r8, qword [rsp + 0xa8]
mov dword [r8 + 0x14], ebx
mov edx, dword [r15 + 0x3c]
cmp edx, edi
jbe 0x14009d5c7
mov rax, qword [r15 + 8]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r15 + 0x3c]
mov ebx, r12d
mov rax, qword [r15 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
test r13d, r13d
je 0x14009d745
mov rax, qword [r15 + 0x30]
movsxd rdi, dword [r15 + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x14009d5f9
mov rcx, r15
call fcn.14003f870
test eax, eax
jne 0x14009d625
mov rax, qword [r15 + 8]
lea rcx, [rdi + rdi*2]
inc dword [r15 + 0x3c]
mov word [rax + rcx*8], 0x2f
mov byte [rax + rcx*8 + 3], 0
lea rdx, [rax + rcx*8]
lea eax, [rbx + rsi]
mov dword [rdx + 4], r14d
mov dword [rdx + 0xc], eax
mov dword [rdx + 8], ebx
mov qword [rdx + 0x10], r12
inc ebx
cmp ebx, r13d
jl 0x14009d5e0
mov r14, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xa8]
movzx eax, word [rsp + 0xb8]
cmp r13d, eax
jae 0x14009d8fd
mov rbp, qword [rsp + 0x38]
lea rcx, [r13*8]
add rbp, r13
mov qword [rsp + 0xa0], rcx
nop word [rax + rax]
mov rax, qword [rsp + 0x40]
lea ebx, [rsi + r13]
mov dword [rsp + 0x28], ebx
mov r9d, r13d
mov rax, qword [rax + 0x30]
mov rdi, qword [rcx + rax]
mov rcx, r14
mov eax, dword [rsp + 0xb0]
mov rdx, rdi
mov dword [rsp + 0x20], eax
call fcn.14009d140
mov r8d, eax
cmp eax, ebx
je 0x14009d770
cmp dword [rsp + 0x30], 1
jne 0x14009d75b
test esi, esi
je 0x14009d756
cmp byte [r14 + 0x1f], 8
jae 0x14009d756
mov ecx, r12d
lea rax, [r14 + 0x88]
cmp dword [rax + 0xc], esi
je 0x14009d752
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14009d6d1
movzx eax, byte [r14 + 0x1f]
mov dword [r14 + rax*4 + 0x24], esi
mov esi, r8d
inc byte [r14 + 0x1f]
jmp 0x14009d770
mov rcx, qword [rbx + 0x160]
mov qword [rsp + 0x38], rcx
test rcx, rcx
jne 0x14009d710
inc dword [rbx + 0x15c]
jmp 0x14009d4d9
mov rax, qword [rcx]
mov qword [rbx + 0x160], rax
mov eax, dword [rbx + 0x14c]
inc eax
mov dword [rbx + 0x14c], eax
inc dword [rbx + 0x154]
cmp eax, dword [rbx + 0x150]
jle 0x14009d4fc
mov dword [rbx + 0x150], eax
jmp 0x14009d4fc
mov r14, qword [rsp + 0xa0]
jmp 0x14009d63c
mov byte [rax + 6], 1
mov esi, r8d
jmp 0x14009d770
mov r9d, ebx
mov dword [rsp + 0x20], r12d
mov edx, 0x22
mov rcx, r15
call fcn.14003f920
test byte [rdi + 0x1a], 0x81
jne 0x14009d8b8
mov rax, qword [rdi]
mov rbx, qword [rax + 0x18]
mov rax, rbx
movzx edx, byte [rax]
lea ecx, [rdx + 0x63]
cmp cl, 1
ja 0x14009d795
mov rax, qword [rax + 0x10]
jmp 0x14009d784
cmp dl, 0x9f
jne 0x14009d79e
movzx edx, byte [rax + 0x36]
movzx edx, dl
sub edx, 0x61
je 0x14009d813
sub edx, 0x23
je 0x14009d813
sub edx, 1
je 0x14009d813
sub edx, 1
je 0x14009d813
cmp edx, 0x14
jne 0x14009d7f1
test dword [rax + 4], 0x100000
jne 0x14009d7e8
movsx rcx, word [rax + 0x30]
test cx, cx
js 0x14009d7e3
lea rdx, [rcx + rcx*2]
mov rcx, qword [rax + 0x40]
add rdx, rdx
mov rax, qword [rcx + 8]
cmp byte [rax + rdx*8 + 0x28], 0
je 0x14009d7e8
mov eax, r12d
jmp 0x14009d7ed
mov eax, 1
test eax, eax
je 0x14009d813
mov r9, qword [rsp + 0xa8]
lea r8d, [rsi + r13]
mov edx, 0x4c
mov dword [rsp + 0x20], r12d
mov rcx, r15
mov r9d, dword [r9 + 0xc]
call fcn.14003f920
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14009d8bd
movzx edx, byte [rbp]
mov rcx, rbx
call fcn.1400549e0
cmp al, 0x41
jne 0x14009d834
mov byte [rbp], al
movzx edx, byte [rbp]
cmp dl, 0x41
je 0x14009d8b4
nop dword [rax]
movzx ecx, byte [rbx]
lea eax, [rcx + 0x63]
cmp al, 1
ja 0x14009d850
mov rbx, qword [rbx + 0x10]
jmp 0x14009d840
cmp cl, 0x9f
jne 0x14009d859
movzx ecx, byte [rbx + 0x36]
movzx ecx, cl
sub ecx, 0x61
je 0x14009d8a7
sub ecx, 0x23
je 0x14009d898
sub ecx, 1
je 0x14009d889
sub ecx, 1
je 0x14009d8b4
cmp ecx, 0x14
jne 0x14009d8b8
cmp word [rbx + 0x30], 0
jge 0x14009d884
sub dl, 0x43
cmp dl, 1
jbe 0x14009d8b4
mov eax, r12d
jmp 0x14009d8b0
sub dl, 0x43
test dl, 0xfd
jne 0x14009d8b8
mov eax, 1
jmp 0x14009d8b0
sub dl, 0x43
cmp dl, 1
ja 0x14009d8b8
mov eax, 1
jmp 0x14009d8b0
cmp dl, 0x42
mov eax, r12d
sete al
test eax, eax
je 0x14009d8b8
mov byte [rbp], 0x41
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0xa0]
inc r13d
movzx edx, word [rsp + 0xb8]
add rcx, 8
mov r8, qword [rsp + 0xa8]
inc rbp
mov qword [rsp + 0xa0], rcx
cmp r13d, edx
jl 0x14009d670
mov rcx, qword [rsp + 0xc0]
mov qword [rcx], rax
jmp 0x14009d90d
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x38]
mov qword [rax], rcx
mov eax, esi
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret