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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
movaps xmmword [rsp + 0xa0], xmm6
mov r14, r8
mov rbx, rdx
mov r15, rcx
mov esi, dword [rsp + 0x128]
mov rax, qword [0x1403e4018]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov r12, qword [rdx]
movzx eax, byte [r12]
cmp eax, 0x33
je 0x1402d3c38
mov rcx, qword [r15 + 0x10]
cmp eax, 0x30
je 0x1402d3c4f
cmp eax, 0x2b
jne 0x1402d3c98
mov rdx, qword [r12 + 0x18]
mov rcx, r15
mov r8d, esi
call fcn.1402a7e60
mov esi, eax
jmp 0x1402d41df
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x1402d3d1c
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], esi
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x1402d41df
mov ebp, r9d
mov r13d, dword [rsp + 0x120]
mov r8, qword [r14 + 0x58]
test byte [r8 + 0x39], 4
jne 0x1402d3ccf
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1402d3ccf
mov rax, qword [rax + 0x38]
movsxd rdx, ebp
cmp byte [rax + rdx], 0
je 0x1402d3ccf
xor eax, eax
test r13d, r13d
sete al
mov r13d, eax
xor edi, edi
test ebp, ebp
mov qword [rsp + 0x30], r8
jle 0x1402d3d39
mov rax, qword [r8 + 0x48]
mov r10d, ebp
mov rdx, r10
neg rdx
mov r11b, 1
mov r8d, 1
mov r9, qword [rax + r8*8 - 8]
test r9, r9
je 0x1402d3d03
cmp qword [r9], r12
je 0x1402d4284
cmp r8, r10
setb r11b
lea r9, [rdx + r8]
inc r9
inc r8
cmp r9, 1
jne 0x1402d3cf0
jmp 0x1402d3d3c
mov dword [rsp + 0x20], 0
mov edx, 0x4b
xor r8d, r8d
mov r9d, esi
call fcn.14026f1c0
jmp 0x1402d41df
xor r11d, r11d
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 0x3c]
cmp eax, ebp
jle 0x1402d3d70
mov rdx, qword [rsp + 0x30]
mov r10, qword [rdx + 0x48]
movsxd rdx, ebp
xor edi, edi
mov r8, qword [r10 + rdx*8]
xor r9d, r9d
cmp qword [r8], r12
sete r9b
add edi, r9d
inc rdx
cmp rax, rdx
jne 0x1402d3d57
mov dword [rsp + 0x94], 0
mov eax, dword [r12 + 4]
bt eax, 0xc
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x44], ebp
mov dword [rsp + 0x74], r11d
mov qword [rsp + 0x60], r15
jae 0x1402d3dab
mov rcx, qword [r12 + 0x20]
mov rcx, qword [rcx + 0x20]
cmp dword [rcx], 1
jne 0x1402d4320
lea rax, [rsp + 0x94]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
xor eax, eax
mov qword [rsp + 0x48], rax
mov rcx, r15
mov rdx, r12
mov r8d, 4
xor r9d, r9d
call fcn.1402b0190
mov rcx, qword [rsp + 0x50]
xor ebp, ebp
test r13d, r13d
sete bpl
mov dword [rsp + 0x68], eax
cmp eax, 4
cmovne ebp, r13d
mov r8d, dword [rsp + 0x94]
xor eax, eax
test ebp, ebp
sete al
lea edx, [rax*4 + 0x20]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x1402d3e4e
lea r9d, [rax + 1]
mov dword [rcx + 0x90], r9d
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], dl
mov word [rcx + rax*8 + 2], 0
mov dword [rcx + rax*8 + 4], r8d
mov byte [rcx + rax*8 + 1], 0
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x1402d3e5e
mov dword [rsp + 0x20], 0
xor r9d, r9d
call fcn.14026f1c0
mov rcx, qword [rsp + 0x30]
or byte [rcx + 0x39], 8
cmp dword [r14 + 0x48], 0
jne 0x1402d3e7c
mov eax, dword [r15 + 0x44]
dec eax
mov dword [r15 + 0x44], eax
mov dword [r14 + 0x10], eax
cmp dword [rsp + 0x44], 0
jle 0x1402d3e94
mov eax, dword [rcx + 0x38]
bt eax, 0x14
jb 0x1402d3e94
or eax, 0x40000
mov dword [rcx + 0x38], eax
movsxd r15, dword [r14 + 0x48]
movsxd rax, edi
add rax, r15
mov dword [r14 + 0x48], eax
mov rcx, qword [rbx + 8]
mov rdi, qword [rcx]
mov rcx, qword [rdi]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
je 0x1402d3efa
mov qword [r14 + 0x50], 0
mov dword [r14 + 0x48], 0
mov esi, dword [rsp + 0x128]
mov rdi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x48]
test r15, r15
je 0x1402d41d0
mov rcx, qword [rdi]
mov rdx, r15
call fcn.140239dc0
cmp byte [rsp + 0x74], 0
je 0x1402d41df
jmp 0x1402d4367
shl rax, 2
lea r13, [rax + rax*4]
mov rax, qword [r14 + 0x50]
mov qword [rsp + 0x38], rax
lea rdx, [r13 + 0x10]
call fcn.140239ff0
mov r8, qword [rsp + 0x30]
test rax, rax
je 0x1402d3eb5
mov rsi, rax
mov qword [rsp + 0x78], r14
mov rax, qword [rdi + 0x60]
mov qword [rsi], rax
mov qword [rsi + 8], r13
mov qword [rdi + 0x60], rsi
add rsi, 0x10
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x1402d3f54
mov r8, qword [rdx - 8]
mov rcx, rsi
call fcn.14031b320
mov r8, qword [rsp + 0x30]
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x50], rsi
movzx eax, word [r8 + 0x3c]
cmp eax, dword [rsp + 0x44]
mov r10, qword [rsp + 0x50]
jle 0x1402d414d
test ebp, ebp
sete dl
lea rcx, [r15 + r15*4]
lea r14, [rsi + rcx*4]
or dl, 0x26
mov byte [rsp + 0x38], dl
mov edx, dword [rsp + 0x44]
movsxd r13, edx
mov esi, dword [rsp + 0x128]
mov ecx, esi
sub ecx, edx
mov dword [rsp + 0x58], ecx
xor edi, edi
xorps xmm6, xmm6
xor r15d, r15d
mov rcx, qword [r8 + 0x48]
mov rcx, qword [rcx + r13*8]
cmp qword [rcx], r12
jne 0x1402d4139
cmp dword [rsp + 0x68], 1
jne 0x1402d4003
mov ebp, dword [rsp + 0x94]
mov eax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402d4019
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r10 + 0x90], edx
mov rdx, qword [r10 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x87
mov dword [rdx + rcx*8 + 4], ebp
mov dword [rdx + rcx*8 + 8], esi
mov dword [rdx + rcx*8 + 0xc], 0
jmp 0x1402d4077
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1402d4031
movsxd rax, r15d
inc r15d
mov r9d, dword [rcx + rax*4]
jmp 0x1402d4034
mov dword [rsp + 0x20], 0
mov rcx, r10
mov edx, 0x87
mov r8d, ebp
mov r9d, esi
jmp 0x1402d4091
xor r9d, r9d
mov ebp, dword [rsp + 0x94]
mov eax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402d4082
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r10 + 0x90], edx
mov rdx, qword [r10 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], WSAGetLastError
mov dword [rdx + rcx*8 + 4], ebp
mov dword [rdx + rcx*8 + 8], r9d
mov dword [rdx + rcx*8 + 0xc], esi
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x1402d409b
mov dword [rsp + 0x20], esi
mov rcx, r10
mov edx, 0x69
mov r8d, ebp
call fcn.14026f1c0
mov r10, qword [rsp + 0x50]
mov dword [r14 + 4], eax
movsxd rax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402d40d6
lea ecx, [rax + 1]
mov dword [r10 + 0x90], ecx
mov rcx, qword [r10 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x30
mov dword [rcx + rax*8 + 4], esi
movups xmmword [rcx + rax*8 + 8], xmm6
jmp 0x1402d40f6
mov dword [rsp + 0x20], 0
mov rcx, r10
mov edx, 0x30
mov r8d, esi
xor r9d, r9d
call fcn.14026f1c0
mov r10, qword [rsp + 0x50]
mov r8, qword [rsp + 0x30]
test rdi, rdi
je 0x1402d4107
mov byte [r14 + 0x10], 0xb8
jmp 0x1402d4130
mov dword [r14], ebp
mov al, byte [rsp + 0x38]
mov byte [r14 + 0x10], al
mov eax, dword [rsp + 0x44]
test eax, eax
jle 0x1402d4128
mov ecx, dword [rsp + 0x58]
mov dword [r14 + 8], ecx
mov dword [r14 + 0xc], eax
jmp 0x1402d4130
mov dword [r14 + 0xc], 0
add r14, 0x14
movzx eax, word [r8 + 0x3c]
inc r13
movzx ecx, ax
dec rdi
inc esi
cmp r13, rcx
jl 0x1402d3fa3
mov edx, dword [rsp + 0x44]
test edx, edx
mov esi, dword [rsp + 0x128]
mov r14, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x48]
jle 0x1402d3ed6
test dword [r8 + 0x38], 0x100400
jne 0x1402d3ed6
mov r8d, dword [r14 + 8]
movsxd rax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402d46f2
lea ecx, [rax + 1]
mov dword [r10 + 0x90], ecx
mov rcx, qword [r10 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x7d
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], 0
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x1402d3ed6
mov r11d, dword [rsp + 0x74]
test r11b, 1
jne 0x1402d4367
mov rax, qword [r14 + 0x58]
test byte [rax + 0x3a], 0x20
je 0x1402d41f3
test byte [rbx + 0x15], 8
jne 0x1402d4367
movzx edx, word [rbx + 0x12]
test dl, 4
jne 0x1402d4367
lea r8, [rbx + 0x12]
xor eax, eax
mov ecx, 4
cmp dword [r14], 0
je 0x1402d421f
mov r9, qword [rbx]
test byte [r9 + 4], 1
je 0x1402d4367
mov r9, qword [rbx + 0x30]
test qword [r14 + 0x60], r9
jne 0x1402d4367
bt edx, 0xa
mov r9d, 0x200
cmovae r9d, ecx
sub eax, 1
cmovb r9d, ecx
or r9d, edx
mov word [r8], r9w
mov edx, dword [rbx + 0x18]
test edx, edx
js 0x1402d4367
mov r8, qword [rbx + 8]
mov r8, qword [r8 + 0x20]
imul rdx, rdx, 0x38
dec byte [r8 + rdx + 0x16]
jne 0x1402d4367
lea rbx, [r8 + rdx]
add r8, rdx
add r8, 0x12
movzx edx, word [r8]
test dl, 4
je 0x1402d420b
jmp 0x1402d4367
movzx edx, word [rbx + 0x12]
test dl, 4
jne 0x1402d4360
lea r8, [rbx + 0x12]
xor eax, eax
mov ecx, 4
mov r9, rbx
mov esi, dword [rsp + 0x128]
cmp dword [r14], 0
je 0x1402d42ba
mov r10, qword [r9]
test byte [r10 + 4], 1
je 0x1402d41d5
mov r10, qword [r9 + 0x30]
test qword [r14 + 0x60], r10
jne 0x1402d41d5
bt edx, 0xa
mov r10d, 0x200
cmovae r10d, ecx
sub eax, 1
cmovb r10d, ecx
or r10d, edx
mov word [r8], r10w
mov edx, dword [r9 + 0x18]
test edx, edx
js 0x1402d41d5
mov r8, qword [r9 + 8]
mov r8, qword [r8 + 0x20]
imul rdx, rdx, 0x38
dec byte [r8 + rdx + 0x16]
jne 0x1402d41d5
lea r9, [r8 + rdx]
add r8, rdx
add r8, 0x12
movzx edx, word [r8]
test dl, 4
je 0x1402d42a6
jmp 0x1402d41d5
cmp dword [r12 + 0x2c], 0
je 0x1402d4395
and eax, 0x2000000
je 0x1402d4395
mov rax, qword [r12 + 0x10]
mov cl, byte [rax]
cmp cl, 0xa3
jne 0x1402d433e
mov cl, byte [rax + 2]
cmp cl, 0x80
je 0x1402d4687
movzx ecx, cl
mov esi, 1
cmp ecx, 0xa4
je 0x1402d468b
jmp 0x1402d4694
mov esi, dword [rsp + 0x128]
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.140319a10
mov eax, esi
movaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r15]
test r12, r12
je 0x1402d43ba
mov rdx, r12
xor r8d, r8d
xor r9d, r9d
mov rsi, rcx
call fcn.1402b25f0
mov qword [rsp + 0x38], rax
mov r9, qword [rsp + 0x30]
jmp 0x1402d43c9
xor eax, eax
mov qword [rsp + 0x38], rax
mov r9, qword [rsp + 0x30]
mov rsi, rcx
mov eax, 5
mov qword [rsp + 0x58], rsi
cmp byte [rsi + 0x67], 0
je 0x1402d43e0
xor ebp, ebp
jmp 0x1402d475b
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
test rax, rax
je 0x1402d465e
mov rcx, rax
movsxd rax, ebp
mov qword [rsp + 0x88], rax
xorps xmm6, xmm6
mov dword [rsp + 0x84], r13d
mov qword [rsp + 0x78], r14
mov rax, qword [rsp + 0x38]
cmp rcx, qword [rax + 0x20]
je 0x1402d441f
xor edx, edx
jmp 0x1402d4427
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0x20]
mov qword [rsp + 0x68], rcx
mov r13, qword [rcx + 0x20]
movzx eax, word [r9 + 0x3c]
cmp eax, ebp
mov qword [rsp + 0x48], rdx
jle 0x1402d456d
mov r15, qword [rsp + 0x88]
xor ebp, ebp
xor r14d, r14d
mov rax, qword [r9 + 0x48]
mov rax, qword [rax + r15*8]
cmp qword [rax], r12
je 0x1402d446e
inc r15
movzx eax, word [r9 + 0x3c]
cmp r15, rax
jl 0x1402d444f
jmp 0x1402d4572
movsxd rsi, dword [rax + 0x24]
dec rsi
shl rsi, 5
mov r8, qword [r13 + rsi + 8]
test r8, r8
je 0x1402d445c
test r14, r14
je 0x1402d44b1
movsxd rax, dword [r14]
cmp dword [r14 + 4], eax
jle 0x1402d44c3
lea ecx, [rax + 1]
mov dword [r14], ecx
shl rax, 5
movups xmmword [r14 + rax + 0x10], xmm6
mov qword [r14 + rax + 0x20], 0
mov qword [r14 + rax + 8], r8
jmp 0x1402d44e0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, r8
call fcn.1402d73e0
jmp 0x1402d44d3
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, r14
call fcn.1402d7440
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x30]
mov r14, rax
lea rax, [rsi + r13]
add rax, 8
mov qword [rax], 0
test rdx, rdx
je 0x1402d445c
mov r8, qword [rdx + rsi + 8]
test rbp, rbp
je 0x1402d452a
movsxd rax, dword [rbp]
cmp dword [rbp + 4], eax
jle 0x1402d453c
lea ecx, [rax + 1]
mov dword [rbp], ecx
shl rax, 5
movups xmmword [rbp + rax + 0x10], xmm6
mov qword [rbp + rax + 0x20], 0
mov qword [rbp + rax + 8], r8
jmp 0x1402d4559
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, r8
call fcn.1402d73e0
jmp 0x1402d454c
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, rbp
call fcn.1402d7440
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x30]
mov rbp, rax
lea rax, [rdx + rsi]
add rax, 8
mov qword [rax], 0
jmp 0x1402d445c
xor r14d, r14d
xor ebp, ebp
test r13, r13
je 0x1402d458e
mov rcx, qword [rsp + 0x58]
mov rdx, r13
call fcn.140270af0
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x30]
test rdx, rdx
mov r15, qword [rsp + 0x60]
je 0x1402d45b4
mov rcx, qword [rsp + 0x58]
call fcn.140270af0
mov r9, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x10]
mov qword [rax + 0x20], rbp
mov rax, qword [rsp + 0x68]
mov qword [rax + 0x20], r14
test rbp, rbp
mov r14, qword [rsp + 0x78]
mov r13d, dword [rsp + 0x84]
je 0x1402d4607
cmp dword [rbp], 1
jne 0x1402d4607
mov rsi, qword [rbp + 8]
mov qword [rbp + 8], 0
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1402d4603
mov rcx, qword [rsp + 0x58]
call fcn.1402638b0
mov rax, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov qword [rax + 0x10], rsi
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x48]
test rax, rax
je 0x1402d4634
movsxd rcx, dword [rax]
test rcx, rcx
jle 0x1402d4634
add rax, 0x20
xor edx, edx
mov word [rax], 0
inc rdx
add rax, 0x20
cmp rdx, rcx
jl 0x1402d4623
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx + 0x50]
test rcx, rcx
mov ebp, dword [rsp + 0x44]
jne 0x1402d4410
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x67], 0
mov eax, 5
jne 0x1402d43d9
mov esi, edi
shl rsi, 2
mov rcx, qword [r15]
test rcx, rcx
je 0x1402d470b
cmp byte [rcx + 0x67], 0
jne 0x1402d472a
mov rdx, rsi
call fcn.140239ff0
jmp 0x1402d4713
mov rax, qword [rax + 0x20]
add rax, 0x20
mov rax, qword [rax]
mov esi, dword [rax]
cmp edi, esi
cmovg esi, edi
shl rsi, 2
mov rcx, qword [r15]
test rcx, rcx
je 0x1402d46b5
cmp byte [rcx + 0x67], 0
jne 0x1402d46d4
mov rdx, rsi
call fcn.140239ff0
jmp 0x1402d46bd
mov rcx, rsi
call fcn.14022f8d0
mov rbp, rax
test rax, rax
je 0x1402d46d4
mov rcx, rbp
xor edx, edx
mov r8, rsi
call fcn.14031b780
jmp 0x1402d46d6
xor ebp, ebp
lea rax, [rsp + 0x94]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x20], rbp
jmp 0x1402d3dc8
mov dword [rsp + 0x20], edx
mov rcx, r10
mov edx, 0x7d
xor r9d, r9d
call fcn.14026f1c0
jmp 0x1402d3ed6
mov rcx, rsi
call fcn.14022f8d0
mov rbp, rax
test rax, rax
je 0x1402d472a
mov rcx, rbp
xor edx, edx
mov r8, rsi
call fcn.14031b780
jmp 0x1402d472c
xor ebp, ebp
mov rdx, qword [rsp + 0x38]
lea rsi, [rsp + 0x94]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbp
mov rcx, r15
mov r8d, 4
xor r9d, r9d
call fcn.1402b0190
mov ecx, dword [rsi]
mov dword [r12 + 0x2c], ecx
mov rdx, qword [rsp + 0x38]
test rdx, rdx
mov qword [rsp + 0x48], rbp
je 0x1402d3ddc
mov rcx, qword [rsp + 0x58]
mov esi, eax
call fcn.1402638b0
mov eax, esi
jmp 0x1402d3ddc