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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
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 r14d, edx
mov rdi, rcx
call fcn.180118590
mov rbx, rax
mov eax, dword [rdi + 0x54]
dec eax
mov rcx, rbx
mov dword [rsp + 0x44], eax
call fcn.18013f640
mov rbp, qword [rsp + 0xc0]
xor r9d, r9d
mov r12d, eax
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0xd8], r9d
jge 0x180089437
mov rcx, qword [rbx + 0x30]
movsxd rdx, dword [rbx + 0x3c]
movzx r8d, byte [rbp + 0x2c]
cmp dword [rcx + 0x64], edx
jg 0x18008940a
mov dword [rsp + 0x20], r9d
mov edx, 0x88
mov r9d, eax
mov rcx, rbx
call fcn.1800cfb00
xor r9d, r9d
jmp 0x180089437
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rbx + 0x3c], eax
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x88
mov byte [rax + rcx*8 + 3], r9b
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
mov r15d, dword [rbp + 0x28]
mov esi, r9d
mov r13d, dword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
test r15d, r15d
jle 0x1800894ed
mov rdi, qword [rsp + 0xc0]
mov r14, rbp
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r14]
mov rax, qword [rbx + 0x30]
inc edx
movsxd rcx, dword [rbx + 0x3c]
add edx, r13d
cmp dword [rax + 0x64], ecx
jg 0x1800894a2
mov dword [rsp + 0x20], r9d
mov r8d, edx
mov r9d, r12d
mov edx, 0x4c
mov rcx, rbx
call fcn.1800cfb00
xor r9d, r9d
jmp 0x1800894ce
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x4c
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
mov r15d, dword [rdi + 0x28]
inc esi
add r14, 4
cmp esi, r15d
jl 0x180089470
mov rdi, qword [rsp + 0xa0]
mov r14d, dword [rsp + 0xa8]
cmp dword [rsp + 0xe0], 0
jne 0x180089b14
mov rsi, qword [rsp + 0xb8]
test rsi, rsi
jne 0x1800897b5
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x18008951c
inc dword [rdi + 0x58]
mov esi, dword [rdi + 0x58]
jmp 0x180089528
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov esi, dword [rdi + rax*4 + 0x28]
mov rax, qword [rbx + 0x30]
lea edx, [r13 + 1]
add edx, dword [rbp]
movsxd rcx, dword [rbx + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180089559
mov dword [rsp + 0x20], r9d
mov r8d, edx
mov r9d, esi
mov edx, 0x1f
mov rcx, rbx
call fcn.1800cfb00
xor r9d, r9d
jmp 0x180089584
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x1f
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r9
mov rax, qword [rbx + 0x30]
movsxd rbp, dword [rbx + 0x3c]
cmp dword [rax + 0x64], ebp
jg 0x1800895ac
mov dword [rsp + 0x20], r9d
mov r8d, esi
xor r9d, r9d
mov rcx, rbx
lea edx, [r9 + 0x26]
call fcn.1800cfb00
mov ebp, eax
jmp 0x1800895de
lea eax, [rbp + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rbp*2]
mov rax, qword [rbx + 8]
add rcx, rbp
mov word [rax + rcx*8], 0x26
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r9
mov rax, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xb0]
cmp r15, qword [rax]
jne 0x18008962e
cmp dword [rsp + 0xd8], 1
jne 0x18008962e
mov r9d, r12d
mov dword [rsp + 0x20], esi
mov r8d, r13d
mov edx, 0x4f
mov rcx, rbx
call fcn.1801355a0
mov rax, qword [rbx]
cmp byte [rax + 0x55], 0
jne 0x18008962e
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov byte [rax + rcx*8 - 0x15], 0x90
mov r8d, r14d
mov dword [rsp + 0x20], 0x36
mov r14d, dword [rsp + 0x44]
mov r9, r15
mov edx, r14d
mov rcx, rdi
call fcn.18011e280
mov rax, qword [rbx + 0x30]
movsxd rcx, dword [rbx + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180089674
xor r9d, r9d
mov dword [rsp + 0x20], esi
mov r8d, r14d
mov rcx, rbx
lea edx, [r9 + 0x46]
call fcn.1800cfb00
xor r13d, r13d
jmp 0x1800896a3
lea eax, [rcx + 1]
xor r13d, r13d
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x46
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], r13
mov rax, qword [rbx + 0x30]
movsxd rcx, dword [rbx + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x1800896c9
xor r8d, r8d
mov dword [rsp + 0x20], r13d
mov r9d, r12d
mov rcx, rbx
lea edx, [r8 + 0xd]
call fcn.1800cfb00
jmp 0x1800896f6
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], select
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov ecx, dword [rbx + 0x3c]
lea rdx, [0x1801eea88]
mov rax, qword [rbx + 0x30]
lea r9d, [rcx - 2]
dec ecx
mov dword [rax + 0x6c], ecx
mov rax, qword [rbx]
mov r8d, dword [rbx + 0x3c]
cmp byte [rax + 0x55], 0
je 0x18008971f
mov rax, rdx
jmp 0x180089738
lea eax, [r8 - 1]
test r9d, r9d
cmovns eax, r9d
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 8], r8d
mov rax, qword [rbx + 0x30]
mov ecx, dword [rbx + 0x3c]
dec ecx
mov dword [rax + 0x6c], ecx
mov rax, qword [rbx]
mov r8d, dword [rbx + 0x3c]
cmp byte [rax + 0x55], 0
jne 0x18008976c
lea eax, [r8 - 1]
test ebp, ebp
cmovns eax, ebp
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
lea rdx, [rax + rcx*8]
mov dword [rdx + 8], r8d
test esi, esi
je 0x180089b1c
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x180089b1c
mov ecx, r13d
lea rax, [rdi + 0x90]
nop
cmp dword [rax + 0xc], esi
je 0x1800897ac
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x180089790
mov dword [rdi + rdx*4 + 0x28], esi
inc byte [rdi + 0x1f]
jmp 0x180089b1c
mov byte [rax + 6], 1
jmp 0x180089b1c
mov ecx, dword [rdi + 0x48]
mov ebp, dword [rdi + 0x4c]
mov dword [rsp + 0x48], ebp
cmp r15d, ecx
jg 0x1800897d3
lea eax, [r15 + rbp]
sub ecx, r15d
mov dword [rdi + 0x4c], eax
mov dword [rdi + 0x48], ecx
jmp 0x1800897e3
mov eax, dword [rdi + 0x58]
lea ebp, [rax + 1]
add eax, r15d
mov dword [rdi + 0x58], eax
mov dword [rsp + 0x48], ebp
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x1800897f4
inc dword [rdi + 0x58]
mov r12d, dword [rdi + 0x58]
jmp 0x180089801
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov r12d, dword [rdi + rax*4 + 0x28]
mov rax, qword [rbx + 0x30]
movsxd rcx, dword [rbx + 0x3c]
mov edx, dword [rsi + 0x58]
mov r8d, dword [rsp + 0x44]
mov dword [rsp + 0xe0], r12d
cmp dword [rax + 0x64], ecx
jg 0x180089835
mov r9d, edx
mov dword [rsp + 0x20], r14d
mov edx, 0x36
mov rcx, rbx
call fcn.1800cfb00
jmp 0x180089861
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x36
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], r9
mov rdx, rsi
mov rcx, rdi
call fcn.180141eb0
movsxd r14, r15d
test r15d, r15d
jle 0x1800898fe
mov rdi, qword [rsp + 0xc8]
xor r8d, r8d
mov esi, r8d
nop word [rax + rax]
mov rax, qword [rbx + 0x30]
lea edx, [r13 + 1]
add edx, dword [rdi + rsi*4]
movsxd rcx, dword [rbx + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x1800898c1
mov dword [rsp + 0x20], r8d
mov r9d, ebp
mov r8d, edx
mov rcx, rbx
mov edx, 0x1e
call fcn.1800cfb00
xor r8d, r8d
jmp 0x1800898ec
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x1e
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
inc ebp
inc rsi
cmp rsi, r14
jl 0x180089890
mov rdi, qword [rsp + 0xa0]
mov rax, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xb0]
cmp r9, qword [rax]
jne 0x180089a5d
cmp dword [rsp + 0xd8], 1
jne 0x180089a5d
mov ecx, dword [rbx + 0x3c]
lea ebp, [rcx + 1]
add ebp, r15d
test r15d, r15d
jle 0x180089a03
mov rdi, qword [rsp + 0xc8]
xor esi, esi
mov r12, qword [rsp + 0xb8]
nop dword [rax]
mov rax, qword [r12 + 8]
lea r8d, [r13 + 1]
add r8d, dword [rdi + rsi*4]
lea edx, [r13 + 1]
movsx ecx, word [rax + rsi*2]
mov rax, qword [rbx + 0x30]
add edx, ecx
cmp cx, word [r9 + 0x3c]
movsxd rcx, dword [rbx + 0x3c]
cmove edx, r13d
cmp dword [rax + 0x64], ecx
jg 0x18008999b
mov dword [rsp + 0x20], edx
mov r9d, ebp
mov edx, 0x4e
mov rcx, rbx
call fcn.1800cfb00
mov r9, qword [rsp + 0xb0]
jmp 0x1800899ca
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x4e
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], 0
mov rax, qword [rbx]
cmp byte [rax + 0x55], 0
jne 0x1800899e4
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov byte [rax + rcx*8 - 0x15], 0x10
inc rsi
cmp rsi, r14
jl 0x180089950
mov ecx, dword [rbx + 0x3c]
mov rdi, qword [rsp + 0xa0]
mov r12d, dword [rsp + 0xe0]
mov rax, qword [rbx + 0x30]
xor r13d, r13d
mov esi, dword [rsp + 0x40]
cmp dword [rax + 0x64], ecx
jg 0x180089a2c
mov r9d, esi
mov dword [rsp + 0x20], r13d
xor r8d, r8d
lea edx, [r13 + 0xd]
mov rcx, rbx
call fcn.1800cfb00
jmp 0x180089a64
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], select
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
jmp 0x180089a64
mov esi, dword [rsp + 0x40]
xor r13d, r13d
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rdi]
call fcn.180119030
mov ebp, dword [rsp + 0x48]
mov r9d, r15d
mov dword [rsp + 0x30], r15d
mov r8d, ebp
mov qword [rsp + 0x28], rax
mov edx, 0x31
mov rcx, rbx
mov dword [rsp + 0x20], r12d
call fcn.180135610
mov r14d, dword [rsp + 0x44]
mov r9d, esi
mov r8d, r14d
mov dword [rsp + 0x28], r13d
mov edx, 0x45
mov dword [rsp + 0x20], r12d
mov rcx, rbx
call fcn.180135730
test r12d, r12d
je 0x180089af3
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x180089af3
mov ecx, r13d
lea rax, [rdi + 0x90]
cmp dword [rax + 0xc], r12d
je 0x180089aef
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x180089ad4
mov dword [rdi + rdx*4 + 0x28], r12d
inc byte [rdi + 0x1f]
jmp 0x180089af3
mov byte [rax + 6], 1
mov r8d, r15d
mov edx, ebp
mov rcx, rdi
call fcn.1800fc570
mov r12d, dword [rsp + 0x40]
cmp r15d, dword [rdi + 0x48]
jle 0x180089b1c
mov dword [rdi + 0x48], r15d
mov dword [rdi + 0x4c], ebp
jmp 0x180089b1c
mov r14d, dword [rsp + 0x44]
xor r13d, r13d
mov rdx, qword [rsp + 0xc0]
movzx ecx, byte [rdx + 0x2c]
test cl, cl
jne 0x180089c32
mov rax, qword [rdi]
test dword [rax + 0x2c], 0x1000000
jne 0x180089c32
cmp qword [rdi + 0x1c8], 0
jne 0x180089c32
cmp byte [rdi + 0x20], cl
jne 0x180089c32
mov rcx, rdi
call fcn.180118590
mov rcx, qword [rdi + 0x1c8]
mov rsi, rax
test rcx, rcx
cmovne rdi, rcx
mov byte [rdi + 0x21], 1
mov rcx, qword [rax + 0x30]
movsxd rdx, dword [rax + 0x3c]
cmp dword [rcx + 0x64], edx
jg 0x180089ba1
mov edx, reloc.WS2_32.dll_setsockopt
mov dword [rsp + 0x20], r13d
mov r8d, 0x313
mov rcx, rax
lea r9d, [rdx - 0x13]
call fcn.1800cfb00
mov edx, eax
jmp 0x180089bd0
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x3c], eax
mov rax, qword [rsi + 8]
mov word [rax + rcx*8], reloc.WS2_32.dll_setsockopt
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 0x313
mov qword [rax + rcx*8 + 8], 2
mov qword [rax + rcx*8 + 0x10], r13
mov r8, qword [rsi]
cmp byte [r8 + 0x55], 0
jne 0x180089cb2
test edx, edx
jns 0x180089be7
mov edx, dword [rsi + 0x3c]
dec edx
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x180089c11
mov r9d, 0xfffffffe
xor r8d, r8d
mov rcx, rsi
call fcn.18014e490
mov r8, qword [rsi]
cmp byte [r8 + 0x55], 0
jne 0x180089cb2
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov byte [rax + rcx*8 - 0x15], 4
jmp 0x180089cb2
mov r8d, dword [rsp + 0xd8]
movzx eax, cl
test r8d, r8d
jle 0x180089c5c
test cl, cl
jne 0x180089c5c
mov rax, qword [rdi + 0x1c8]
test rax, rax
cmovne rdi, rax
mov byte [rdi + 0x21], 1
movzx eax, byte [rdx + 0x2c]
movsxd rcx, dword [rbx + 0x3c]
movzx edx, al
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x64], ecx
jg 0x180089c86
mov r9d, r8d
mov dword [rsp + 0x20], r13d
mov r8d, edx
mov rcx, rbx
mov edx, 0x87
call fcn.1800cfb00
jmp 0x180089cb2
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x87
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov r9, qword [rbx + 0x30]
mov rdx, qword [r9 + 0x88]
test rdx, rdx
je 0x180089cd3
mov eax, 0xffffffff
sub eax, r12d
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
dec eax
mov dword [r9 + 0x6c], eax
mov rax, qword [rbx + 0x30]
movsxd rcx, dword [rbx + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180089d02
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov r8d, r14d
mov rcx, rbx
lea edx, [r9 + 0x3d]
call fcn.1800cfb00
jmp 0x180089d2e
lea eax, [rcx + 1]
mov dword [rbx + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 8]
mov word [rax + rcx*8], 0x3d
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r13
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret