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

Disassembly:
mov qword [rsp + 0x18], r8
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 rdi, qword [rsp + 0xd0]
mov r10, r8
mov r15, qword [rsp + 0xc8]
mov r12d, r9d
mov rsi, qword [rcx + 0x10]
mov rbx, rcx
mov dword [rsp + 0x30], 0
movzx r8d, byte [rdi]
mov eax, dword [rdi + 4]
mov dword [rsp + 0x34], r8d
mov dword [rsp + 0xb8], eax
test r15, r15
je 0x140136a03
movzx eax, byte [r15 + 1]
jmp 0x140136a05
xor eax, eax
mov r13, qword [rsp + 0xc0]
mov dword [rsp + 0xc8], eax
test r13, r13
je 0x140136a2b
cmp qword [r13], 0
jne 0x140136a4f
xor r13d, r13d
mov qword [rsp + 0xc0], r13
test eax, eax
jne 0x140136a4f
mov r8d, dword [rsp + 0xd8]
mov rcx, rsi
mov edx, dword [rdx + 0x10]
call fcn.14011c130
mov r8d, dword [rsp + 0x34]
mov r10, qword [rsp + 0xb0]
mov eax, dword [rdi + 8]
movsxd r14, dword [r10]
test eax, eax
jne 0x140136a84
test r13, r13
je 0x140136a76
mov rax, qword [r13]
test byte [r13 + 0x1c], 1
mov ecx, dword [rax]
lea edx, [rcx + 1]
cmovne edx, ecx
add dword [rbx + 0x54], edx
mov dword [rsp + 0x30], edx
mov eax, dword [rbx + 0x54]
inc eax
mov dword [rdi + 8], eax
add dword [rbx + 0x54], r14d
jmp 0x140136a95
mov ecx, dword [rbx + 0x54]
add eax, r14d
cmp eax, ecx
jle 0x140136a95
lea eax, [rcx + r14]
mov dword [rbx + 0x54], eax
mov ebp, dword [rdi + 8]
mov dword [rdi + 0xc], r14d
test r12d, r12d
js 0x140136ad3
xor edi, edi
test r14d, r14d
jle 0x140136afd
nop dword [rax + rax]
lea eax, [rdi + rbp]
mov r9d, edi
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov edx, PathResolve
mov rcx, rsi
call fcn.140167a30
inc edi
cmp edi, r14d
jl 0x140136ab0
jmp 0x140136afd
cmp r8b, 3
je 0x140136afd
lea eax, [r8 - 9]
test al, 0xfa
jne 0x140136aec
cmp r8b, 0xe
je 0x140136aec
mov r9b, 1
jmp 0x140136aef
xor r9b, r9b
mov r8d, ebp
mov rdx, r10
mov rcx, rbx
call fcn.1401462d0
cmp dword [rsp + 0xc8], 0
je 0x140136d08
movzx ecx, byte [r15 + 1]
sub ecx, 1
je 0x140136cd7
cmp ecx, 1
je 0x140136b40
mov edi, dword [rsp + 0xd8]
mov r9d, r14d
mov edx, dword [r15 + 4]
mov r8d, edi
mov rcx, rbx
mov dword [rsp + 0x20], ebp
call fcn.14011bc90
jmp 0x140136cea
mov eax, dword [rbx + 0x54]
mov rcx, rsi
lea edi, [rax + 1]
add eax, r14d
mov dword [rbx + 0x54], eax
mov edx, dword [r15 + 8]
mov dword [rsp + 0xc8], edi
call fcn.140167e90
mov ecx, dword [r15 + 8]
test ecx, ecx
jns 0x140136b6c
mov ecx, dword [rsi + 0x3c]
dec ecx
mov rax, qword [rsi]
cmp byte [rax + 0x51], 0
je 0x140136b7e
lea rax, [0x14037ad18]
jmp 0x140136b8d
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
lea rax, [rax + rcx*8]
mov byte [rax], 0x1a
xor r12d, r12d
mov dword [rax + 4], 1
mov dword [rax + 8], edi
mov eax, dword [rsi + 0x3c]
add eax, r14d
mov dword [rsp + 0x3c], eax
test r14d, r14d
jle 0x140136cba
mov eax, dword [rsp + 0xc8]
xor edi, edi
sub eax, ebp
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x38], eax
mov r13, r14
nop word [rax + rax]
mov rax, qword [rsp + 0xb0]
mov rcx, rbx
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + rdi]
call fcn.1401480e0
mov ecx, dword [rsp + 0x38]
lea r8d, [r12 + rbp]
mov r9d, dword [rsp + 0x3c]
add ecx, r8d
mov r15, rax
mov dword [rsp + 0x20], ecx
lea eax, [r14 - 1]
mov rcx, rsi
cmp r12d, eax
cmovge r9d, dword [rsp + 0xd8]
xor edx, edx
cmp r12d, eax
setge dl
add edx, 0x4e
call fcn.140167a30
mov r8, qword [rsi + 8]
mov rcx, qword [rsi]
test r8, r8
je 0x140136c72
cmp byte [rcx + 0x51], 0
jne 0x140136c72
movsxd rax, dword [rsi + 0x3c]
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 - 0x17]
mov r8, qword [rdi - 8]
call fcn.1401255e0
test r15, r15
jne 0x140136c63
mov qword [rdi - 8], r15
mov byte [rdi - 0x17], r15b
mov rdi, qword [rsp + 0x40]
jmp 0x140136c7f
mov qword [rdi - 8], r15
mov byte [rdi - 0x17], 0xfc
mov rdi, qword [rsp + 0x40]
jmp 0x140136c7f
mov r8, r15
mov edx, 0xfffffffc
call fcn.1401255e0
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140136c95
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x80
add rdi, 0x28
inc r12d
mov qword [rsp + 0x40], rdi
sub r13, 1
jne 0x140136bd0
mov r13, qword [rsp + 0xc0]
mov edi, dword [rsp + 0xc8]
lea eax, [r14 - 1]
mov r9d, edi
mov r8d, ebp
mov dword [rsp + 0x20], eax
mov edx, 0x1f
mov rcx, rsi
call fcn.140167a30
jmp 0x140136ce3
mov edx, dword [r15 + 8]
mov rcx, rsi
call fcn.140167e90
mov edi, dword [rsp + 0xd8]
mov r15, qword [rsp + 0xa8]
test r13, r13
jne 0x140136d10
mov edx, dword [r15 + 0x10]
mov r8d, edi
mov rcx, rsi
call fcn.14011c130
jmp 0x140136d10
mov r15, qword [rsp + 0xa8]
mov edx, dword [rsp + 0x34]
lea eax, [rdx - 1]
cmp eax, 0xd
ja case.0x140136d34.4
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x137418]
add rcx, r8
jmp rcx
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140136d46
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x140136d52
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r9d, r14d
mov dword [rsp + 0x20], edi
mov r8d, ebp
mov edx, PathResolve
mov rcx, rsi
call fcn.140167a30
mov r8d, dword [rsp + 0xb8]
xor r14d, r14d
mov r9d, edi
mov dword [rsp + 0x20], r14d
mov rcx, rsi
lea edx, [r14 + 0x6f]
call fcn.140167a30
test edi, edi
je case.0x140136d34.4
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae case.0x140136d34.4
mov ecx, r14d
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x140136dc6
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140136da7
movzx eax, dl
mov dword [rbx + rax*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp case.0x140136d34.4
mov byte [rax + 6], 1
jmp case.0x140136d34.4
mov r8d, dword [rsp + 0xb8]
mov r9d, ebp
mov edx, WSACleanup
mov dword [rsp + 0x20], r14d
mov rcx, rsi
call fcn.140167a30
jmp case.0x140136d34.4
mov edx, dword [rsp + 0x30]
mov ecx, dword [rbx + 0x44]
mov r15d, dword [rbx + 0x48]
lea r12d, [rdx + 1]
cmp edx, ecx
jge 0x140136e13
lea eax, [r15 + r12]
sub ecx, r12d
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], ecx
jmp 0x140136e20
mov eax, dword [rbx + 0x54]
lea r15d, [rax + 1]
add eax, r12d
mov dword [rbx + 0x54], eax
lea edi, [r15 + rdx]
mov r9d, r14d
mov edx, PathResolve
mov dword [rsp + 0x20], edi
mov r8d, ebp
mov rcx, rsi
call fcn.140167a30
mov ebp, dword [rsp + 0xb8]
xor r14d, r14d
cmp byte [rsp + 0x34], 6
jne 0x140136e86
mov r9d, dword [rsi + 0x3c]
lea r8d, [rbp + 1]
add r9d, 4
mov dword [rsp + 0x28], r14d
lea edx, [r14 + 0x46]
mov dword [rsp + 0x20], r15d
mov rcx, rsi
call fcn.140167b10
mov r9d, r15d
mov dword [rsp + 0x20], r14d
lea r8d, [rbp + 1]
mov rcx, rsi
lea edx, [r14 + 0x6f]
call fcn.140167a30
test r13, r13
je 0x140136eb9
mov eax, dword [rsp + 0x30]
mov r9d, edi
mov rbp, qword [rsp + 0xa8]
mov rdx, r13
mov dword [rsp + 0x28], eax
mov r8, rbp
mov rcx, rbx
mov dword [rsp + 0x20], 1
call fcn.140131970
jmp 0x140136f59
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140136ec9
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x140136ed5
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r9d, edi
mov dword [rsp + 0x20], r14d
mov r8d, ebp
mov edx, 0x4b
mov rcx, rsi
call fcn.140167a30
mov r9d, r15d
mov dword [rsp + 0x20], edi
mov r8d, ebp
mov edx, 0x54
mov rcx, rsi
call fcn.140167a30
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140136f1a
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
test edi, edi
je 0x140136f51
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x140136f51
mov ecx, r14d
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x140136f4d
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140136f31
movzx eax, dl
mov dword [rbx + rax*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp 0x140136f51
mov byte [rax + 6], 1
mov rbp, qword [rsp + 0xa8]
mov r8d, r12d
mov edx, r15d
mov rcx, rbx
call fcn.140145c80
cmp r12d, dword [rbx + 0x44]
jle 0x140137404
mov dword [rbx + 0x44], r12d
mov dword [rbx + 0x48], r15d
jmp 0x140137404
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xd0]
inc r14
mov rax, qword [rax + 8]
movzx edi, byte [r14]
mov rcx, qword [rax]
call fcn.140144fc0
test al, al
je 0x140136fbc
test dil, dil
je 0x140136fc5
cmp al, 0x43
jge 0x140136fb8
cmp dil, 0x43
jge 0x140136fb8
mov al, 0x41
jmp 0x140136fc8
mov al, 0x43
jmp 0x140136fc8
test dil, dil
jne 0x140136fc5
mov al, 0x41
jmp 0x140136fc8
add al, dil
mov byte [r14], al
test r13, r13
je 0x140136ff6
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 1
mov r9d, ebp
mov r8, r15
mov rdx, r13
mov rcx, rbx
call fcn.140131970
jmp case.0x140136d34.4
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140137007
inc dword [rbx + 0x54]
mov r15d, dword [rbx + 0x54]
jmp 0x140137014
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov r15d, dword [rbx + rax*4 + 0x24]
mov r9d, 1
mov dword [rsp + 0x20], r15d
mov r8d, ebp
mov rcx, rsi
lea edx, [r9 + 0x30]
call fcn.140167a30
mov r8, qword [rsi + 8]
mov rcx, qword [rsi]
test r8, r8
je 0x140137090
cmp byte [rcx + 0x51], 0
jne 0x140137090
test eax, eax
jns 0x140137049
mov eax, dword [rsi + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.1401255e0
mov qword [rdi + 0x10], 0
test r14, r14
jne 0x140137075
mov byte [rdi + 1], r14b
jmp 0x14013709d
mov rcx, qword [rsi]
mov r8d, 1
mov rdx, r14
call fcn.140142330
mov qword [rdi + 0x10], rax
mov byte [rdi + 1], 0xff
jmp 0x14013709d
mov r8, r14
mov edx, 1
call fcn.1401255e0
mov r8d, 1
mov edx, ebp
mov rcx, rbx
call fcn.140145c80
mov r8d, dword [rsp + 0xb8]
mov r9d, r15d
mov edx, WSAStartup
mov dword [rsp + 0x20], 0
mov rcx, rsi
call fcn.140167a30
mov edx, r15d
mov rcx, rbx
call fcn.14015cda0
mov rbp, qword [rsp + 0xa8]
mov r8d, dword [rbp + 0xc]
test r8d, r8d
je 0x140137106
mov r9d, dword [rsp + 0xe0]
mov edx, 0x8d
mov rcx, rsi
mov dword [rsp + 0x20], 0
call fcn.140167a30
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r9d, dword [rsp + 0xb8]
mov edx, reloc.OLEAUT32.dll_SafeArrayUnaccessData
mov rcx, rsi
mov dword [rsp + 0x20], 0
lea r8d, [rdx - 0x16]
call fcn.140167a30
jmp case.0x140136d34.4
test r13, r13
je 0x1401370d8
jmp 0x140136fd0
test r13, r13
je 0x14013715e
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
jmp 0x140136fe0
mov dword [rsp + 0x20], 0
mov rcx, rsi
cmp dl, 0xd
jne 0x14013718b
mov rax, qword [rsp + 0xd0]
xor r9d, r9d
mov r8d, dword [rax + 4]
lea edx, [r9 + 0x14]
call fcn.140167a30
jmp 0x1401370d8
mov r9d, r14d
mov r8d, ebp
mov edx, 0x21
call fcn.140167a30
mov r8d, r14d
mov edx, ebp
mov rcx, rbx
call fcn.140145c80
jmp 0x1401370d8
xor eax, eax
mov dword [rsp + 0xc8], eax
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x40], rax
movsxd r12, dword [rax]
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x1401371db
inc dword [rbx + 0x54]
mov r15d, dword [rbx + 0x54]
jmp 0x1401371e8
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov r15d, dword [rbx + rax*4 + 0x24]
mov ecx, dword [rbx + 0x44]
lea r13d, [r12 + 2]
mov edi, dword [rbx + 0x48]
mov dword [rsp + 0xb0], edi
cmp r13d, ecx
jg 0x14013720e
lea eax, [rdi + r13]
sub ecx, r13d
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], ecx
jmp 0x140137221
mov eax, dword [rbx + 0x54]
lea edi, [rax + 1]
add eax, r13d
mov dword [rbx + 0x54], eax
mov dword [rsp + 0xb0], edi
mov ecx, dword [rsp + 0xb8]
lea eax, [rdi + r12]
mov dword [rsp + 0x3c], eax
inc eax
mov dword [rsp + 0xd0], eax
cmp dl, 8
jne 0x140137268
xor r9d, r9d
mov dword [rsp + 0x28], r14d
lea r8d, [rcx + 1]
mov dword [rsp + 0x20], ebp
mov rcx, rsi
lea edx, [r9 + 0x46]
call fcn.140167b10
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0xd0]
mov r9d, r14d
mov dword [rsp + 0x20], eax
mov r8d, ebp
mov edx, PathResolve
mov rcx, rsi
call fcn.140167a30
cmp byte [rsp + 0x34], 8
jne 0x1401372c4
mov r8d, dword [rsp + 0xb8]
mov edx, WSAStartup
mov r9d, dword [rsp + 0xd0]
inc r8d
mov rcx, rsi
mov dword [rsp + 0x20], 0
call fcn.140167a30
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x1401372c4
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x10
test r12, r12
jle 0x140137324
mov r14d, dword [rsp + 0xb0]
xor edi, edi
mov rbx, qword [rsp + 0x40]
nop dword [rax + rax]
mov rax, qword [rbx + 8]
lea r8d, [rbp - 1]
mov r9d, r14d
mov dword [rsp + 0x20], 0
mov edx, 0x20
movzx ecx, word [rdi + rax + 0x20]
add r8d, ecx
mov rcx, rsi
call fcn.140167a30
inc r14d
lea rdi, [rdi + 0x28]
sub r12, 1
jne 0x1401372e0
mov rbx, qword [rsp + 0xa0]
mov edi, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0x3c]
xor r14d, r14d
mov r8d, dword [rsp + 0xb8]
mov rcx, rsi
mov dword [rsp + 0x20], r14d
lea edx, [r14 + 0x4a]
call fcn.140167a30
mov r9d, r13d
mov dword [rsp + 0x20], r15d
mov r8d, edi
lea edx, [r14 + 0x31]
mov rcx, rsi
call fcn.140167a30
mov r8d, dword [rsp + 0xb8]
lea edx, [r14 + 0x6f]
mov r9d, r15d
mov dword [rsp + 0x20], r14d
mov rcx, rsi
call fcn.140167a30
mov eax, dword [rsp + 0xc8]
test eax, eax
je 0x1401373a3
mov edx, dword [rsi + 0x3c]
cmp edx, eax
jbe 0x140137399
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
lea ecx, [rdx - 1]
mov dword [rax + 0x64], ecx
test r15d, r15d
je 0x1401373e2
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x1401373e2
mov ecx, r14d
lea rax, [rbx + 0x88]
nop dword [rax + rax]
cmp dword [rax + 0xc], r15d
je 0x1401373de
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1401373c0
movzx eax, dl
mov dword [rbx + rax*4 + 0x24], r15d
inc byte [rbx + 0x1f]
jmp 0x1401373e2
mov byte [rax + 6], 1
mov r8d, r13d
mov edx, edi
mov rcx, rbx
call fcn.140145c80
cmp r13d, dword [rbx + 0x44]
jle case.0x140136d34.4
mov dword [rbx + 0x44], r13d
mov dword [rbx + 0x48], edi
mov rbp, qword [rsp + 0xa8]
cmp qword [rsp + 0xc0], 0
jne 0x140137106
jmp 0x1401370e0