Function at 0x1402ec260
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 [0x14040b018]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov r12, qword [rdx]
movzx eax, byte [r12]
cmp eax, 0x33
je 0x1402ec2b8
mov rcx, qword [r15 + 0x10]
cmp eax, 0x30
je 0x1402ec2cf
cmp eax, 0x2b
jne 0x1402ec318
mov rdx, qword [r12 + 0x18]
mov rcx, r15
mov r8d, esi
call fcn.1402c04e0
mov esi, eax
jmp 0x1402ec85f
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x1402ec39c
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 0x1402ec85f
mov ebp, r9d
mov r13d, dword [rsp + 0x120]
mov r8, qword [r14 + 0x58]
test byte [r8 + 0x39], 4
jne 0x1402ec34f
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1402ec34f
mov rax, qword [rax + 0x38]
movsxd rdx, ebp
cmp byte [rax + rdx], 0
je 0x1402ec34f
xor eax, eax
test r13d, r13d
sete al
mov r13d, eax
xor edi, edi
test ebp, ebp
mov qword [rsp + 0x30], r8
jle 0x1402ec3b9
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 0x1402ec383
cmp qword [r9], r12
je 0x1402ec904
cmp r8, r10
setb r11b
lea r9, [rdx + r8]
inc r9
inc r8
cmp r9, 1
jne 0x1402ec370
jmp 0x1402ec3bc
mov dword [rsp + 0x20], 0
mov edx, 0x4b
xor r8d, r8d
mov r9d, esi
call fcn.140287840
jmp 0x1402ec85f
xor r11d, r11d
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 0x3c]
cmp eax, ebp
jle 0x1402ec3f0
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 0x1402ec3d7
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 0x1402ec42b
mov rcx, qword [r12 + 0x20]
mov rcx, qword [rcx + 0x20]
cmp dword [rcx], 1
jne 0x1402ec9a0
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.1402c8810
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 0x1402ec4ce
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 0x1402ec4de
mov dword [rsp + 0x20], 0
xor r9d, r9d
call fcn.140287840
mov rcx, qword [rsp + 0x30]
or byte [rcx + 0x39], 8
cmp dword [r14 + 0x48], 0
jne 0x1402ec4fc
mov eax, dword [r15 + 0x44]
dec eax
mov dword [r15 + 0x44], eax
mov dword [r14 + 0x10], eax
cmp dword [rsp + 0x44], 0
jle 0x1402ec514
mov eax, dword [rcx + 0x38]
bt eax, 0x14
jb 0x1402ec514
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 0x1402ec57a
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 0x1402ec850
mov rcx, qword [rdi]
mov rdx, r15
call fcn.140252440
cmp byte [rsp + 0x74], 0
je 0x1402ec85f
jmp 0x1402ec9e7
shl rax, 2
lea r13, [rax + rax*4]
mov rax, qword [r14 + 0x50]
mov qword [rsp + 0x38], rax
lea rdx, [r13 + 0x10]
call fcn.140252670
mov r8, qword [rsp + 0x30]
test rax, rax
je 0x1402ec535
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 0x1402ec5d4
mov r8, qword [rdx - 8]
mov rcx, rsi
call fcn.140336540
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 0x1402ec7cd
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 0x1402ec7b9
cmp dword [rsp + 0x68], 1
jne 0x1402ec683
mov ebp, dword [rsp + 0x94]
mov eax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402ec699
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 0x1402ec6f7
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1402ec6b1
movsxd rax, r15d
inc r15d
mov r9d, dword [rcx + rax*4]
jmp 0x1402ec6b4
mov dword [rsp + 0x20], 0
mov rcx, r10
mov edx, 0x87
mov r8d, ebp
mov r9d, esi
jmp 0x1402ec711
xor r9d, r9d
mov ebp, dword [rsp + 0x94]
mov eax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402ec702
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 0x1402ec71b
mov dword [rsp + 0x20], esi
mov rcx, r10
mov edx, 0x69
mov r8d, ebp
call fcn.140287840
mov r10, qword [rsp + 0x50]
mov dword [r14 + 4], eax
movsxd rax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402ec756
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 0x1402ec776
mov dword [rsp + 0x20], 0
mov rcx, r10
mov edx, 0x30
mov r8d, esi
xor r9d, r9d
call fcn.140287840
mov r10, qword [rsp + 0x50]
mov r8, qword [rsp + 0x30]
test rdi, rdi
je 0x1402ec787
mov byte [r14 + 0x10], 0xb8
jmp 0x1402ec7b0
mov dword [r14], ebp
mov al, byte [rsp + 0x38]
mov byte [r14 + 0x10], al
mov eax, dword [rsp + 0x44]
test eax, eax
jle 0x1402ec7a8
mov ecx, dword [rsp + 0x58]
mov dword [r14 + 8], ecx
mov dword [r14 + 0xc], eax
jmp 0x1402ec7b0
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 0x1402ec623
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 0x1402ec556
test dword [r8 + 0x38], 0x100400
jne 0x1402ec556
mov r8d, dword [r14 + 8]
movsxd rax, dword [r10 + 0x90]
cmp dword [r10 + 0x94], eax
jle 0x1402ecd72
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 0x1402ec556
mov r11d, dword [rsp + 0x74]
test r11b, 1
jne 0x1402ec9e7
mov rax, qword [r14 + 0x58]
test byte [rax + 0x3a], 0x20
je 0x1402ec873
test byte [rbx + 0x15], 8
jne 0x1402ec9e7
movzx edx, word [rbx + 0x12]
test dl, 4
jne 0x1402ec9e7
lea r8, [rbx + 0x12]
xor eax, eax
mov ecx, 4
cmp dword [r14], 0
je 0x1402ec89f
mov r9, qword [rbx]
test byte [r9 + 4], 1
je 0x1402ec9e7
mov r9, qword [rbx + 0x30]
test qword [r14 + 0x60], r9
jne 0x1402ec9e7
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 0x1402ec9e7
mov r8, qword [rbx + 8]
mov r8, qword [r8 + 0x20]
imul rdx, rdx, 0x38
dec byte [r8 + rdx + 0x16]
jne 0x1402ec9e7
lea rbx, [r8 + rdx]
add r8, rdx
add r8, 0x12
movzx edx, word [r8]
test dl, 4
je 0x1402ec88b
jmp 0x1402ec9e7
movzx edx, word [rbx + 0x12]
test dl, 4
jne 0x1402ec9e0
lea r8, [rbx + 0x12]
xor eax, eax
mov ecx, 4
mov r9, rbx
mov esi, dword [rsp + 0x128]
cmp dword [r14], 0
je 0x1402ec93a
mov r10, qword [r9]
test byte [r10 + 4], 1
je 0x1402ec855
mov r10, qword [r9 + 0x30]
test qword [r14 + 0x60], r10
jne 0x1402ec855
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 0x1402ec855
mov r8, qword [r9 + 8]
mov r8, qword [r8 + 0x20]
imul rdx, rdx, 0x38
dec byte [r8 + rdx + 0x16]
jne 0x1402ec855
lea r9, [r8 + rdx]
add r8, rdx
add r8, 0x12
movzx edx, word [r8]
test dl, 4
je 0x1402ec926
jmp 0x1402ec855
cmp dword [r12 + 0x2c], 0
je 0x1402eca15
and eax, 0x2000000
je 0x1402eca15
mov rax, qword [r12 + 0x10]
mov cl, byte [rax]
cmp cl, 0xa3
jne 0x1402ec9be
mov cl, byte [rax + 2]
cmp cl, 0x80
je 0x1402ecd07
movzx ecx, cl
mov esi, 1
cmp ecx, 0xa4
je 0x1402ecd0b
jmp 0x1402ecd14
mov esi, dword [rsp + 0x128]
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.140334bf0
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 0x1402eca3a
mov rdx, r12
xor r8d, r8d
xor r9d, r9d
mov rsi, rcx
call fcn.1402cac70
mov qword [rsp + 0x38], rax
mov r9, qword [rsp + 0x30]
jmp 0x1402eca49
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 0x1402eca60
xor ebp, ebp
jmp 0x1402ecddb
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x20]
test rax, rax
je 0x1402eccde
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 0x1402eca9f
xor edx, edx
jmp 0x1402ecaa7
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 0x1402ecbed
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 0x1402ecaee
inc r15
movzx eax, word [r9 + 0x3c]
cmp r15, rax
jl 0x1402ecacf
jmp 0x1402ecbf2
movsxd rsi, dword [rax + 0x24]
dec rsi
shl rsi, 5
mov r8, qword [r13 + rsi + 8]
test r8, r8
je 0x1402ecadc
test r14, r14
je 0x1402ecb31
movsxd rax, dword [r14]
cmp dword [r14 + 4], eax
jle 0x1402ecb43
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 0x1402ecb60
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, r8
call fcn.1402efa60
jmp 0x1402ecb53
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, r14
call fcn.1402efac0
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 0x1402ecadc
mov r8, qword [rdx + rsi + 8]
test rbp, rbp
je 0x1402ecbaa
movsxd rax, dword [rbp]
cmp dword [rbp + 4], eax
jle 0x1402ecbbc
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 0x1402ecbd9
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, r8
call fcn.1402efa60
jmp 0x1402ecbcc
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rdx, rbp
call fcn.1402efac0
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 0x1402ecadc
xor r14d, r14d
xor ebp, ebp
test r13, r13
je 0x1402ecc0e
mov rcx, qword [rsp + 0x58]
mov rdx, r13
call fcn.140289170
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x30]
test rdx, rdx
mov r15, qword [rsp + 0x60]
je 0x1402ecc34
mov rcx, qword [rsp + 0x58]
call fcn.140289170
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 0x1402ecc87
cmp dword [rbp], 1
jne 0x1402ecc87
mov rsi, qword [rbp + 8]
mov qword [rbp + 8], 0
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1402ecc83
mov rcx, qword [rsp + 0x58]
call fcn.14027bf30
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 0x1402eccb4
movsxd rcx, dword [rax]
test rcx, rcx
jle 0x1402eccb4
add rax, 0x20
xor edx, edx
mov word [rax], 0
inc rdx
add rax, 0x20
cmp rdx, rcx
jl 0x1402ecca3
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx + 0x50]
test rcx, rcx
mov ebp, dword [rsp + 0x44]
jne 0x1402eca90
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x67], 0
mov eax, 5
jne 0x1402eca59
mov esi, edi
shl rsi, 2
mov rcx, qword [r15]
test rcx, rcx
je 0x1402ecd8b
cmp byte [rcx + 0x67], 0
jne 0x1402ecdaa
mov rdx, rsi
call fcn.140252670
jmp 0x1402ecd93
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 0x1402ecd35
cmp byte [rcx + 0x67], 0
jne 0x1402ecd54
mov rdx, rsi
call fcn.140252670
jmp 0x1402ecd3d
mov rcx, rsi
call fcn.140247f50
mov rbp, rax
test rax, rax
je 0x1402ecd54
mov rcx, rbp
xor edx, edx
mov r8, rsi
call fcn.1403369a0
jmp 0x1402ecd56
xor ebp, ebp
lea rax, [rsp + 0x94]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x20], rbp
jmp 0x1402ec448
mov dword [rsp + 0x20], edx
mov rcx, r10
mov edx, 0x7d
xor r9d, r9d
call fcn.140287840
jmp 0x1402ec556
mov rcx, rsi
call fcn.140247f50
mov rbp, rax
test rax, rax
je 0x1402ecdaa
mov rcx, rbp
xor edx, edx
mov r8, rsi
call fcn.1403369a0
jmp 0x1402ecdac
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.1402c8810
mov ecx, dword [rsi]
mov dword [r12 + 0x2c], ecx
mov rdx, qword [rsp + 0x38]
test rdx, rdx
mov qword [rsp + 0x48], rbp
je 0x1402ec45c
mov rcx, qword [rsp + 0x58]
mov esi, eax
call fcn.14027bf30
mov eax, esi
jmp 0x1402ec45c