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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc8
mov r14, qword [rcx + 0x10]
xor r12d, r12d
mov qword [rsp + 0x50], r12
mov r13, r8
mov dword [rsp + 0x40], r12d
mov rsi, rdx
mov qword [rsp + 0x80], r14
mov rdi, rcx
xor r15b, r15b
call fcn.140076f80
mov r8d, dword [rdi + 0x5c]
xor r9d, r9d
mov rcx, rax
mov dword [rsp + 0x20], r12d
lea edx, [r8 + 1]
mov dword [rdi + 0x5c], edx
lea edx, [r12 + 0x2c]
call fcn.140037d60
movsxd rcx, dword [rsi + 0x14]
mov ebp, r12d
mov rbx, qword [rsi + 0x20]
mov r9, qword [r13 + 0x20]
mov dword [rsp + 0x68], eax
imul rax, rcx, 0x38
mov rcx, qword [rsp + 0x130]
add rax, rbx
mov dword [rsp + 0x110], r12d
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x70], rax
mov rdx, qword [rcx + 0x48]
movabs rcx, 0x8000000000000000
mov qword [rsp + 0x48], rdx
cmp rbx, rax
jae 0x140089e52
lea rcx, [0x14004fa60]
lea r8, [0x14004fad0]
nop word [rax + rax]
cmp qword [rdx], 0
mov rsi, qword [rbx]
jne 0x140089d3b
test byte [rbx + 0x1c], 2
jne 0x140089d3b
test byte [rsi + 4], 1
jne 0x140089d3b
xor eax, eax
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xb0], rax
lea rcx, [rsp + 0x90]
mov qword [rsp + 0xb8], rax
mov rdx, rsi
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rax
mov eax, dword [r13 + 0x48]
mov dword [rsp + 0xb8], eax
mov byte [rsp + 0xb4], 3
mov qword [rsp + 0x98], r8
call fcn.14004adc0
cmp byte [rsp + 0xb4], 0
je 0x140089d36
mov rcx, qword [rdi]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
call fcn.14004ea80
mov rdx, qword [rsp + 0x50]
mov r8, rax
mov rcx, qword [rdi]
call fcn.14004e410
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x48]
mov eax, dword [r13 + 0x48]
cmp dword [rbx + 0xc], eax
jne 0x140089e26
test byte [rbx + 0x1a], 0x82
je 0x140089e26
mov rax, qword [rsp + 0x128]
test qword [rbx + 0x28], rax
jne 0x140089e26
movsxd rax, dword [rbx + 0x10]
test eax, eax
js 0x140089e26
lea rdx, [rax + rax*2]
mov rax, qword [r13 + 0x20]
add rdx, rdx
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0x29]
mov rcx, qword [rbx]
call fcn.14004db30
test eax, eax
je 0x140089e21
movsxd rcx, dword [rbx + 0x10]
cmp ecx, 0x40
jl 0x140089da9
movabs rsi, 0x8000000000000000
jmp 0x140089db1
mov esi, 1
shl rsi, cl
test r15b, r15b
jne 0x140089de1
mov rax, qword [rsp + 0x60]
lea rcx, [rcx + rcx*2]
add rcx, rcx
lea rdx, str.automatic_index_on__s__s_
mov r9, qword [rax + 8]
mov r8, qword [rax]
mov r9, qword [r9 + rcx*8]
mov ecx, 0x11c
call fcn.140019990
mov r15b, 1
mov rdx, qword [rsp + 0x48]
test r12, rsi
jne 0x140089e26
mov rcx, qword [rdi]
inc ebp
mov r8d, ebp
call fcn.14008aaf0
test eax, eax
jne 0x14008a67e
movsxd r9, dword [rsp + 0x110]
or r12, rsi
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x110], ebp
mov rax, qword [rdx + 0x38]
mov qword [rax + r9*8], rbx
jmp 0x140089e26
mov rdx, qword [rsp + 0x48]
add rbx, 0x38
lea rcx, [0x14004fa60]
lea r8, [0x14004fad0]
cmp rbx, qword [rsp + 0x70]
jb 0x140089c90
mov r9, qword [rsp + 0x60]
movabs rcx, 0x8000000000000000
not r12
mov word [rdx + 0x2c], bp
or r12, rcx
mov word [rdx + 0x18], bp
mov dword [rdx + 0x28], 0x4241
xor ecx, ecx
mov r8, qword [r13 + 0x60]
mov r13d, 0x3f
movzx edx, word [r9 + 0x3e]
and r12, r8
mov qword [rsp + 0x88], r12
cmp r13w, dx
jge 0x140089e93
mov r9d, r13d
mov dword [rsp + 0x58], r13d
jmp 0x140089ea1
movsx r9d, dx
mov dword [rsp + 0x58], r9d
test r9d, r9d
jle 0x140089eb9
mov eax, ecx
bt r12, rax
jae 0x140089eab
inc ebp
inc ecx
cmp ecx, r9d
jl 0x140089ea1
mov dword [rsp + 0x110], ebp
test r8, r8
jns 0x140089ecd
movsx eax, dx
add ebp, 0xffffffc1
add ebp, eax
mov dword [rsp + 0x110], ebp
mov rcx, qword [rdi]
lea ebx, [rbp + 1]
movsx rsi, bx
movsx ebp, bx
lea eax, [rsi + rbp]
lea edx, [rax*2 + 9]
add edx, esi
lea eax, [rsi*8 + 7]
and edx, 0xfffffff8
and eax, 0xfffffff8
add edx, 0x68
add eax, edx
movsxd r12, eax
mov rdx, r12
call fcn.140017900
mov r15, rax
test rax, rax
je 0x14008a67e
mov r8, r12
xor edx, edx
mov rcx, rax
call fcn.1400c1990
mov r11, qword [rsp + 0x60]
lea rcx, [rsi*8 + 7]
mov word [r15 + 0x60], bx
lea rdx, [r15 + 0x68]
dec bx
mov qword [r15 + 0x40], rdx
and rcx, 0xfffffffffffffff8
mov word [r15 + 0x5e], bx
mov rbx, qword [rsp + 0x118]
lea eax, [rbp + 1]
add rdx, rcx
xor r12d, r12d
movsxd rcx, eax
mov qword [r15 + 0x10], rdx
lea rax, [rdx + rcx*2]
mov qword [r15 + 8], rax
lea rax, [rax + rsi*2]
mov qword [r15 + 0x38], rax
lea rsi, str.BINARY
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x20], r15
lea rax, str.auto_index
mov qword [r15], rax
mov qword [r15 + 0x18], r11
mov rbx, qword [rbx + 0x20]
cmp rbx, qword [rsp + 0x70]
jae 0x14008a0cb
mov rcx, qword [rsp + 0x120]
xor ebp, ebp
xor r14d, r14d
mov r13d, ebp
nop word [rax + rax]
mov eax, dword [rcx + 0x48]
cmp dword [rbx + 0xc], eax
jne 0x14008a0a9
test byte [rbx + 0x1a], 0x82
je 0x14008a0a9
mov rax, qword [rsp + 0x128]
test qword [rbx + 0x28], rax
jne 0x14008a0a9
movsxd rax, dword [rbx + 0x10]
test eax, eax
js 0x14008a0a9
lea rdx, [rax + rax*2]
mov rax, qword [rcx + 0x20]
add rdx, rdx
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0x29]
mov rcx, qword [rbx]
call fcn.14004db30
test eax, eax
je 0x14008a0a1
mov ecx, dword [rbx + 0x10]
cmp ecx, 0x40
jl 0x14008a01c
movabs rax, 0x8000000000000000
jmp 0x14008a024
mov eax, 1
shl rax, cl
test r13, rax
jne 0x14008a0a1
mov rdx, qword [rbx]
or r13, rax
mov rcx, qword [r15 + 8]
movzx eax, word [rbx + 0x10]
mov word [r14 + rcx], ax
mov rsi, qword [rdx + 0x18]
mov rdx, qword [rdx + 0x10]
test dword [rdx + 4], 0x100
jne 0x14008a06b
test rsi, rsi
je 0x14008a05b
test dword [rsi + 4], 0x100
jne 0x14008a068
mov rcx, rdi
call fcn.14004d880
test rax, rax
jne 0x14008a084
mov rdx, rsi
mov rcx, rdi
call fcn.14004d880
test rax, rax
jne 0x14008a084
lea rsi, str.BINARY
mov rcx, rsi
jmp 0x14008a08e
mov rcx, qword [rax]
lea rsi, str.BINARY
mov rax, qword [r15 + 0x40]
inc r12d
add r14, 2
mov qword [rax + rbp], rcx
add rbp, 8
mov rcx, qword [rsp + 0x120]
add rbx, 0x38
cmp rbx, qword [rsp + 0x70]
jb 0x140089fb0
mov r14, qword [rsp + 0x80]
mov r13d, 0x3f
mov r11, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x58]
xor ecx, ecx
test r9d, r9d
jle 0x14008a11b
mov r10, qword [rsp + 0x88]
movsxd rax, r12d
lea rdx, [rax*8]
lea r8, [rax + rax]
nop
mov eax, ecx
bt r10, rax
jae 0x14008a114
mov rax, qword [r15 + 8]
inc r12d
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [r15 + 0x40]
mov qword [rdx + rax], rsi
add rdx, 8
inc ecx
cmp ecx, r9d
jl 0x14008a0f0
mov rax, qword [rsp + 0x120]
cmp qword [rax + 0x60], 0
jge 0x14008a16b
cmp r13w, word [r11 + 0x3e]
jge 0x14008a16b
movsxd rax, r12d
lea rcx, [rax*8]
lea rdx, [rax + rax]
mov rax, qword [r15 + 8]
lea rdx, [rdx + 2]
inc r12d
lea rcx, [rcx + 8]
mov word [rdx + rax - 2], r13w
inc r13d
mov rax, qword [r15 + 0x40]
mov qword [rcx + rax - 8], rsi
movsx eax, word [r11 + 0x3e]
cmp r13d, eax
jl 0x14008a140
mov rax, qword [r15 + 8]
or edx, 0xffffffff
mov rbp, qword [rsp + 0x130]
mov r9d, dword [rsp + 0x110]
movsxd rcx, r12d
mov dword [rsp + 0x20], 0
mov word [rax + rcx*2], dx
mov edx, 0x38
mov rax, qword [r15 + 0x40]
mov qword [rax + rcx*8], rsi
mov rcx, r14
mov eax, dword [rdi + 0x50]
mov dword [rbp + 8], eax
inc dword [rdi + 0x50]
mov r8d, dword [rbp + 8]
inc r9d
call fcn.140037d60
mov rbx, qword [rdi + 0x10]
mov rdx, r15
mov rcx, rdi
call fcn.1400603b0
mov rcx, qword [rbx]
mov rsi, rax
mov rax, qword [rbx + 8]
test rax, rax
je 0x14008a21a
cmp byte [rcx + 0x51], 0
jne 0x14008a21a
mov edx, dword [rbx + 0x3c]
dec edx
movsxd rdx, edx
lea r8, [rdx + rdx*2]
movsx edx, byte [rax + r8*8 + 1]
lea rbx, [rax + r8*8]
mov r8, qword [rax + r8*8 + 0x10]
call fcn.1400384b0
xor r8d, r8d
mov qword [rbx + 0x10], r8
test rsi, rsi
jne 0x14008a210
mov qword [rbx + 0x10], r8
mov byte [rbx + 1], r8b
jmp 0x14008a22a
mov qword [rbx + 0x10], rsi
mov byte [rbx + 1], 0xfa
jmp 0x14008a22a
mov r8, rsi
mov edx, 0xfffffffa
call fcn.1400384b0
xor r8d, r8d
inc dword [rdi + 0x70]
xor r9d, r9d
movzx eax, byte [rbp + 0x2c]
mov rcx, r14
imul r13, rax, 0x78
mov rax, qword [rsp + 0x118]
mov dword [rsp + 0x20], r8d
mov rax, qword [rax]
add r13, qword [rax + 8]
test byte [r13 + 0x48], 0x10
je 0x14008a2e1
mov ebx, dword [r13 + 0x3c]
lea edx, [r9 + 0x17]
xor r8d, r8d
call fcn.140037d60
mov rcx, qword [r14 + 0x30]
mov ebp, eax
movsxd rsi, dword [r14 + 0x3c]
mov eax, dword [r13 + 0x38]
mov dword [rsp + 0x120], eax
cmp dword [rcx + 0x60], esi
jg 0x14008a290
mov rcx, r14
call fcn.140037cb0
test eax, eax
jne 0x14008a2c5
inc dword [r14 + 0x3c]
lea rcx, [rsi + rsi*2]
mov rax, qword [r14 + 8]
xor r8d, r8d
mov edx, dword [rsp + 0x120]
mov word [rax + rcx*8], sendto
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r8
jmp 0x14008a2c8
xor r8d, r8d
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov r8d, ebx
mov rcx, r14
lea edx, [r9 + 0x14]
call fcn.140037d60
jmp 0x14008a2f6
mov r8d, dword [rbp + 4]
mov edx, 0x6d
call fcn.140037d60
mov ebp, dword [rsp + 0x120]
mov r10, qword [rsp + 0x50]
mov ebx, eax
test r10, r10
je 0x14008a387
mov rsi, qword [r14 + 0x30]
mov edx, dword [rsi + 0x78]
mov dword [rsp + 0x40], edx
lea eax, [rdx + 1]
mov dword [rsi + 0x78], eax
lea eax, [rdx - 1]
test edx, eax
jne 0x14008a34b
mov rcx, qword [rsi]
lea eax, [rdx*2 + 1]
mov rdx, qword [rsi + 0x80]
movsxd r8, eax
shl r8, 2
call fcn.140017ab0
mov edx, dword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
mov qword [rsi + 0x80], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x14008a361
movsxd rax, edx
mov dword [rcx + rax*4], 0xffffffff
not edx
mov r9d, sendto
mov dword [rsp + 0x40], edx
mov r8d, edx
mov rdx, r10
mov rcx, rdi
call fcn.140053640
mov rax, qword [rsp + 0x48]
or dword [rax + 0x28], 0x20000
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x14008a397
inc dword [rdi + 0x54]
mov esi, dword [rdi + 0x54]
jmp 0x14008a3a3
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov esi, dword [rdi + rax*4 + 0x24]
mov rcx, qword [rsp + 0x130]
xor eax, eax
mov dword [rsp + 0x38], eax
mov r9d, esi
mov qword [rsp + 0x30], rax
mov rdx, r15
mov qword [rsp + 0x28], rax
mov r8d, dword [rcx + 4]
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.140062ab0
mov dword [rsp + 0x120], eax
mov r9d, esi
mov rax, qword [rsp + 0x130]
mov edx, WSAStartup
mov rcx, r14
mov dword [rsp + 0x20], 0
mov r8d, dword [rax + 8]
call fcn.140037d60
mov rcx, qword [r14]
lea r15, [0x140120b10]
mov edx, dword [r14 + 0x3c]
dec edx
cmp byte [rcx + 0x51], 0
je 0x14008a417
mov rax, r15
jmp 0x14008a426
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
cmp qword [rsp + 0x50], 0
mov byte [rax + 3], 0x10
je 0x14008a45c
mov rdx, qword [r14 + 0x30]
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x14008a453
mov eax, dword [rsp + 0x40]
not eax
movsxd rcx, eax
mov eax, dword [r14 + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [r14 + 0x3c]
dec eax
mov dword [rdx + 0x64], eax
test byte [r13 + 0x48], 0x10
je 0x14008a549
test ebp, ebp
jns 0x14008a471
mov ebp, dword [r14 + 0x3c]
dec ebp
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
je 0x14008a47f
mov rcx, r15
jmp 0x14008a48e
movsxd rax, ebp
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rcx, [rax + rcx*8]
mov eax, dword [rsp + 0x120]
add eax, r12d
mov dword [rcx + 8], eax
mov ecx, ebx
mov rax, qword [rsp + 0x130]
mov r10d, dword [r13 + 0x40]
mov r9d, dword [rax + 4]
test ebx, ebx
jns 0x14008a4b7
mov ecx, dword [r14 + 0x3c]
dec ecx
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
je 0x14008a4c5
mov rdx, r15
jmp 0x14008a4d4
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rdx, [rax + rcx*8]
mov eax, dword [r14 + 0x3c]
cmp ebx, eax
jge 0x14008a52b
add rdx, 4
sub eax, ebx
mov r8d, eax
cmp dword [rdx], r9d
jne 0x14008a521
movzx eax, byte [rdx - 4]
cmp al, 0x2f
jne 0x14008a50d
mov ecx, dword [rdx + 4]
mov eax, dword [rdx + 8]
add ecx, r10d
mov dword [rdx], ecx
mov byte [rdx - 4], 0x1f
mov dword [rdx + 4], eax
mov dword [rdx + 8], 0
jmp 0x14008a521
cmp al, 0x68
jne 0x14008a521
mov eax, dword [rdx + 4]
mov dword [rdx], eax
mov dword [rdx + 4], 1
mov byte [rdx - 4], 0x25
add rdx, 0x18
sub r8, 1
jne 0x14008a4e5
xor ebp, ebp
mov r9d, ebx
xor r8d, r8d
mov dword [rsp + 0x20], ebp
mov rcx, r14
lea edx, [rbp + 0xe]
call fcn.140037d60
and dword [r13 + 0x48], 0xffffffef
jmp 0x14008a56a
mov rax, qword [rsp + 0x130]
lea r9d, [rbx + 1]
xor ebp, ebp
mov rcx, r14
mov dword [rsp + 0x20], ebp
mov r8d, dword [rax + 4]
lea edx, [rbp + 8]
call fcn.140037d60
mov rax, qword [r14]
mov ecx, dword [r14 + 0x3c]
dec ecx
cmp byte [rax + 0x51], 0
je 0x14008a57e
mov rax, r15
jmp 0x14008a58d
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov byte [rax + 3], 3
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov edx, dword [r14 + 0x3c]
test ebx, ebx
jns 0x14008a5a9
lea ebx, [rdx - 1]
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
je 0x14008a5b7
mov rax, r15
jmp 0x14008a5c6
movsxd rax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
test esi, esi
je 0x14008a600
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x14008a600
mov ecx, ebp
lea rax, [rdi + 0x88]
nop
cmp dword [rax + 0xc], esi
je 0x14008a5fc
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14008a5e0
movzx eax, dl
mov dword [rdi + rax*4 + 0x24], esi
inc byte [rdi + 0x1f]
jmp 0x14008a600
mov byte [rax + 6], 1
dec dword [rdi + 0x70]
lea rcx, [rdi + 0x94]
mov r8d, 0xa
mov edx, dword [rcx]
test edx, edx
je 0x14008a63c
mov eax, dword [rdi + 0x70]
cmp dword [rcx - 4], eax
jle 0x14008a63c
cmp byte [rcx - 6], 0
je 0x14008a63a
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x14008a636
movzx eax, al
mov dword [rdi + rax*4 + 0x24], edx
inc byte [rdi + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], ebp
add rcx, 0x14
sub r8, 1
jne 0x14008a610
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov ecx, dword [rsp + 0x68]
mov edx, dword [r14 + 0x3c]
test ecx, ecx
jns 0x14008a662
lea ecx, [rdx - 1]
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
jne 0x14008a67a
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea r15, [rax + rcx*8]
mov dword [r15 + 8], edx
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rdi]
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.14004e850