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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
mov rax, rsp
sub rsp, 0x98
mov qword [rax - 8], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x28], r12
mov rbp, rcx
mov rsi, qword [rbp]
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r14
mov r14, qword [rcx + 0x10]
mov rcx, qword [rdx + 0x40]
mov qword [rax - 0x40], r15
movzx r12d, word [rcx + 0x1a]
mov rdx, qword [rcx + 0x20]
mov eax, dword [rbp + 0x54]
mov qword [rsp + 0x40], rcx
movzx ecx, word [rcx + 0x18]
lea r15d, [rax + 1]
lea r13d, [rcx + r9]
mov dword [rsp + 0xb8], ecx
mov rcx, r14
add eax, r13d
mov dword [rbp + 0x54], eax
call fcn.00448ef0
test rax, rax
mov rbx, rax
jne 0x4566e9
mov qword [rsp + 0x30], rax
jmp 0x45672f
cmp byte [rbx], 0
je 0x4566f8
nop
inc rax
cmp byte [rax], 0
jne 0x4566f0
sub eax, ebx
mov rcx, rsi
and eax, 0x3fffffff
inc eax
movsxd rdi, eax
mov rdx, rdi
call fcn.0043b030
test rax, rax
mov rsi, rax
mov qword [rsp + 0x30], rax
je 0x45672a
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call sub.msvcrt.dll_memcpy
test rsi, rsi
jne 0x456737
mov rax, qword [rbp]
mov byte [rax + 0x50], 1
test r12w, r12w
je 0x4568d1
mov rax, qword [rsp + 0xa8]
movsxd rbx, dword [r14 + 0x3c]
mov ebp, dword [rax + 8]
mov rax, qword [r14 + 0x30]
cmp dword [rax + 0x60], ebx
jg 0x45676a
mov edx, 1
mov rcx, r14
call fcn.00441a80
test eax, eax
jne 0x4567b0
inc dword [r14 + 0x3c]
mov rcx, qword [r14 + 8]
mov edi, dword [rsp + 0xb0]
lea rdx, [rbx + rbx*2]
test edi, edi
mov eax, WSAGetLastError
mov r8d, 0x69
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 4], ebp
cmovne eax, r8d
xor esi, esi
mov dword [rcx + rdx*8 + 8], esi
mov dword [rcx + rdx*8 + 0xc], esi
mov qword [rcx + rdx*8 + 0x10], rsi
mov byte [rcx + rdx*8 + 1], sil
mov byte [rcx + rdx*8], al
jmp 0x4567b9
mov edi, dword [rsp + 0xb0]
xor esi, esi
mov rax, qword [r14 + 0x30]
movsxd rbx, dword [r14 + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x4567de
mov edx, 1
mov rcx, r14
call fcn.00441a80
test eax, eax
je 0x4567de
mov ebx, 1
jmp 0x456809
mov rax, qword [r14 + 8]
inc dword [r14 + 0x3c]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], reloc.WS2_32.dll_recv
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], rsi
mov byte [rax + rcx*8 + 1], 0
mov edx, 0x41
mov eax, 0x3e
test edi, edi
cmovne edx, eax
movzx esi, r12w
mov r8d, ebp
xor r9d, r9d
mov rcx, r14
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], r15d
call fcn.0044f840
mov r8, qword [rsp + 0xa8]
mov dword [r8 + 0x14], eax
mov edx, dword [r14 + 0x3c]
cmp edx, ebx
jbe 0x456855
mov eax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
xor ebx, ebx
dec ecx
test esi, esi
mov dword [rax + 0x64], ecx
jle 0x4568d9
nop
nop
mov rax, qword [r14 + 0x30]
movsxd rdi, dword [r14 + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x45688e
mov edx, 1
mov rcx, r14
call fcn.00441a80
test eax, eax
jne 0x4568c1
mov rcx, qword [r14 + 8]
inc dword [r14 + 0x3c]
lea rdx, [rdi + rdi*2]
lea eax, [rbx + r15]
mov byte [rcx + rdx*8], Ordinal_50
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 4], ebp
mov dword [rcx + rdx*8 + 8], ebx
mov qword [rcx + rdx*8 + 0x10], 0
mov dword [rcx + rdx*8 + 0xc], eax
mov byte [rcx + rdx*8 + 1], 0
inc ebx
cmp ebx, esi
jl 0x456870
mov r8, qword [rsp + 0xa8]
jmp 0x4568d9
mov r8, qword [rsp + 0xa8]
movsxd rcx, r13d
movzx r13d, r12w
movzx eax, r12w
cmp r13d, dword [rsp + 0xb8]
mov qword [rsp + 0x48], rcx
jge 0x456c94
mov rcx, qword [rsp + 0x30]
lea r12, [rax + rcx]
lea rcx, [rax*8]
mov qword [rsp + 0x38], rcx
nop
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0xa0]
lea edi, [r13 + r15]
mov rax, qword [rax + 0x30]
mov r9d, r13d
mov dword [rsp + 0x28], edi
mov rbp, qword [rcx + rax]
mov eax, dword [rsp + 0xb0]
mov rcx, rbx
mov rdx, rbp
mov dword [rsp + 0x20], eax
call fcn.0044ba60
cmp eax, edi
mov esi, eax
je 0x4569e4
cmp qword [rsp + 0x48], 1
jne 0x45699a
test r15d, r15d
je 0x45698c
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x45698c
xor ecx, ecx
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], r15d
je 0x456991
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x456970
movzx eax, dl
mov dword [rbx + rax*4 + 0x24], r15d
inc byte [rbx + 0x1f]
mov r15d, esi
jmp 0x4569e4
mov byte [rax + 6], 1
mov r15d, esi
jmp 0x4569e4
mov rax, qword [r14 + 0x30]
movsxd rbx, dword [r14 + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x4569b8
mov edx, 1
mov rcx, r14
call fcn.00441a80
test eax, eax
jne 0x4569e4
inc dword [r14 + 0x3c]
mov rax, qword [r14 + 8]
lea rcx, [rbx + rbx*2]
xor edx, edx
mov byte [rax + rcx*8], Ordinal_35
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
test byte [rbp + 0x1a], 0x81
jne 0x456c51
mov rax, qword [rbp]
mov rsi, qword [rax + 0x18]
mov rcx, rsi
nop
nop
movzx eax, byte [rcx]
cmp al, 0x9e
je 0x456a0b
cmp al, 0x9d
jne 0x456a11
mov rcx, qword [rcx + 0x10]
jmp 0x456a00
movzx eax, byte [rcx]
cmp al, 0x9f
jne 0x456a1b
mov al, byte [rcx + 0x36]
cmp al, 0x61
je 0x456ab8
cmp al, 0x83
jbe 0x456a57
cmp al, 0x86
jbe 0x456ab8
cmp al, 0x9a
jne 0x456a57
movzx eax, word [rcx + 0x30]
test ax, ax
js 0x456ab8
movsx rax, ax
lea rdx, [rax + rax*2]
mov rax, qword [rcx + 0x40]
mov rcx, qword [rax + 8]
shl rdx, 4
cmp byte [rdx + rcx + 0x28], 0
jne 0x456ab8
mov rax, qword [rsp + 0xa8]
movsxd rbx, dword [r14 + 0x3c]
mov edi, dword [rax + 0xc]
mov rax, qword [r14 + 0x30]
cmp dword [rax + 0x60], ebx
jg 0x456a80
mov edx, 1
mov rcx, r14
call fcn.00441a80
test eax, eax
jne 0x456ab8
mov rcx, qword [r14 + 8]
inc dword [r14 + 0x3c]
lea rdx, [rbx + rbx*2]
lea eax, [r13 + r15]
mov byte [rcx + rdx*8], Ordinal_79
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 8], edi
mov dword [rcx + rdx*8 + 0xc], 0
mov qword [rcx + rdx*8 + 0x10], 0
mov dword [rcx + rdx*8 + 4], eax
mov byte [rcx + rdx*8 + 1], 0
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x456c5d
test rsi, rsi
movzx ebx, byte [r12]
mov rax, rsi
je 0x456af8
mov ecx, dword [rax + 4]
bt ecx, 0xc
jae 0x456af8
bt ecx, 0x12
jae 0x456aef
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
jmp 0x456af3
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x456ad3
bt dword [rax + 4], 9
jae 0x456b35
xor al, al
test bl, bl
je 0x456b0b
add al, bl
cmp al, 0x41
jne 0x456b10
mov byte [r12], 0x41
movzx edx, byte [r12]
cmp dl, 0x41
je 0x456c37
nop
movzx eax, byte [rsi]
cmp al, 0x9e
je 0x456b2f
cmp al, 0x9d
jne 0x456bcd
mov rsi, qword [rsi + 0x10]
jmp 0x456b20
movzx ecx, byte [rax]
cmp ecx, 0x77
jne 0x456b52
mov rax, qword [rax + 0x20]
mov rcx, qword [rax]
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx]
call fcn.00450d60
jmp 0x456ba7
cmp ecx, 0x26
jne 0x456b64
mov rcx, qword [rax + 8]
xor edx, edx
call fcn.00447700
jmp 0x456ba7
cmp ecx, 0x9c
je 0x456b7c
cmp ecx, 0x9a
je 0x456b7c
cmp ecx, 0x9f
jne 0x456ba4
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x456ba4
movsx rcx, word [rax + 0x30]
test ecx, ecx
jns 0x456b92
mov al, 0x44
jmp 0x456baf
mov rax, qword [rdx + 8]
lea rcx, [rcx + rcx*2]
add rcx, rcx
movzx eax, byte [rax + rcx*8 + 0x29]
jmp 0x456ba7
mov al, byte [rax + 1]
test al, al
je 0x456b01
test bl, bl
je 0x456b05
cmp al, 0x43
jge 0x456b10
cmp bl, 0x43
jl 0x456b0b
jmp 0x456b10
movzx eax, byte [rsi]
cmp al, 0x9f
jne 0x456bd7
mov al, byte [rsi + 0x36]
movzx ecx, al
sub ecx, 0x61
je 0x456c2b
sub ecx, 0x23
je 0x456c1a
dec ecx
je 0x456c09
dec ecx
je 0x456c37
cmp ecx, 0x14
jne 0x456c43
cmp word [rsi + 0x30], 0
jge 0x456c4a
cmp dl, 0x44
je 0x456c37
cmp dl, 0x43
je 0x456c37
mov rax, qword [rsp + 0x30]
jmp 0x456c5d
cmp dl, 0x45
je 0x456c37
cmp dl, 0x43
je 0x456c37
mov rax, qword [rsp + 0x30]
jmp 0x456c5d
cmp dl, 0x44
je 0x456c37
cmp dl, 0x43
je 0x456c37
mov rax, qword [rsp + 0x30]
jmp 0x456c5d
xor eax, eax
cmp dl, 0x42
sete al
test eax, eax
je 0x456c58
mov rax, qword [rsp + 0x30]
mov byte [r12], 0x41
jmp 0x456c5d
mov rax, qword [rsp + 0x30]
jmp 0x456c5d
mov rax, qword [rsp + 0x30]
jmp 0x456c5d
mov rax, qword [rsp + 0x30]
jmp 0x456c5d
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0xa8]
inc r13d
add rcx, 8
inc r12
cmp r13d, dword [rsp + 0xb8]
mov qword [rsp + 0x38], rcx
jl 0x456910
mov rcx, qword [rsp + 0xc0]
mov qword [rcx], rax
jmp 0x456ca4
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x30]
mov qword [rax], rcx
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
mov eax, r15d
mov r15, qword [rsp + 0x58]
add rsp, 0x98
ret