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

Disassembly:
mov qword [rsp + 0x20], r9
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, 0xc8
mov r10, qword [rcx + 0x10]
xor r12d, r12d
mov edi, r12d
mov qword [rsp + 0x60], r12
mov dword [rsp + 0x58], r12d
mov rsi, r8
mov dword [rsp + 0x5c], r12d
mov rbx, rdx
mov qword [rsp + 0x68], r10
mov r13, rcx
xor r15b, r15b
call fcn.1800f4040
mov r14, qword [rbx + 0x20]
mov ebp, r12d
mov rdx, qword [rsp + 0x130]
mov r11d, r12d
mov rcx, qword [rsi + 0x20]
movabs r8, 0x8000000000000000
mov dword [rsp + 0x78], eax
movsxd rax, dword [rbx + 0x14]
mov rdx, qword [rdx + 0x48]
imul rax, rax, 0x38
mov dword [rsp + 0x40], r12d
add rax, r14
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], r12
cmp r14, rax
jae 0x1800807e0
lea rcx, [0x180086be0]
lea r8, [0x1800e9c30]
nop dword [rax]
mov rbx, qword [r14]
cmp qword [rdx], r12
jne 0x18008068f
test byte [r14 + 0x1c], 2
jne 0x18008068f
test byte [rbx + 4], 1
jne 0x18008068f
mov eax, dword [rsi + 0x48]
xorps xmm0, xmm0
movups xmmword [rsp + 0xb0], xmm0
mov rdx, rbx
mov byte [rsp + 0xb4], 3
movups xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x98], rcx
lea rcx, [rsp + 0x90]
movups xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xa0], r8
mov dword [rsp + 0xb8], eax
call fcn.180155380
cmp byte [rsp + 0xb4], r12b
je 0x180080685
mov rcx, qword [r13]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call fcn.1800867e0
mov rbx, qword [r13]
mov rbp, rax
test rdi, rdi
jne 0x1800801d7
mov rdi, rax
mov qword [rsp + 0x60], rax
jmp 0x180080681
test rbp, rbp
je 0x180080681
mov rcx, rdi
call fcn.1800846a0
test eax, eax
jne 0x18008045b
mov rcx, rbp
call fcn.1800846a0
test eax, eax
jne 0x18008045b
cmp dword [rbx + 0x150], r12d
jne 0x180080267
mov eax, 0x48
cmp ax, word [rbx + 0x154]
jbe 0x180080222
inc dword [rbx + 0x164]
jmp 0x1800802c6
mov rsi, qword [rbx + 0x170]
test rsi, rsi
jne 0x180080239
inc dword [rbx + 0x168]
jmp 0x1800802c6
mov rax, qword [rsi]
mov qword [rbx + 0x170], rax
mov eax, dword [rbx + 0x158]
inc eax
mov dword [rbx + 0x158], eax
inc dword [rbx + 0x160]
cmp eax, dword [rbx + 0x15c]
jle 0x1800802d9
mov dword [rbx + 0x15c], eax
jmp 0x1800802d9
cmp byte [rbx + 0x55], r12b
je 0x1800802c1
mov rsi, r12
test dword [rdi + 4], 0x4000
jne 0x18008033c
mov rdx, qword [rdi + 0x10]
mov rcx, rbx
call fcn.1800ff150
mov rdx, qword [rdi + 0x18]
mov rcx, rbx
call fcn.1800ff150
mov eax, dword [rdi + 4]
bt eax, 0x10
jae 0x1800802ad
mov rdx, qword [rdi + 8]
mov rcx, rbx
call fcn.1800f83c0
mov eax, dword [rdi + 4]
mov rdx, qword [rdi + 0x20]
mov rcx, rbx
bt eax, 0xb
jae 0x180080337
call fcn.18012df60
jmp 0x18008033c
mov eax, 0x48
mov rdx, rax
mov rcx, rbx
call fcn.180082740
mov rsi, rax
test rax, rax
je 0x180080270
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov rcx, rsi
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x30], xmm0
mov qword [rsi + 0x40], rax
mov eax, 0xffffffff
mov word [rsi + 0x32], ax
mov byte [rsi], 0x48
mov dword [rsi + 0x28], 1
mov qword [rsi + 0x18], rbp
mov eax, dword [rbp + 4]
and eax, 0x200100
mov qword [rsi + 0x10], rdi
or dword [rsi + 4], eax
mov eax, dword [rdi + 4]
and eax, 0x200100
or dword [rsi + 4], eax
call fcn.180087030
mov rdi, rsi
mov qword [rsp + 0x60], rsi
jmp 0x180080679
call fcn.1800ffe70
test dword [rdi + 4], 0x8000
jne 0x1800803e8
cmp qword [rbx + 0x290], r12
je 0x180080362
mov rdx, rdi
mov rcx, rbx
call fcn.1800d60e0
jmp 0x1800803e8
cmp rdi, qword [rbx + 0x178]
jb 0x18008038d
cmp rdi, qword [rbx + 0x180]
jae 0x18008038d
mov rax, qword [rbx + 0x170]
mov qword [rdi], rax
dec dword [rbx + 0x158]
mov qword [rbx + 0x170], rdi
jmp 0x1800803e8
cmp dword [0x1801e5920], r12d
je 0x1800803df
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800803a8
call qword [0x1801e59a8]
mov rcx, rdi
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rdi
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800803e8
call qword [0x1801e59b8]
jmp 0x1800803e8
mov rcx, rdi
call qword [0x1801e5950]
test dword [rbp + 4], 0x4000
jne 0x18008043a
mov rdx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.1800ff150
mov rdx, qword [rbp + 0x18]
mov rcx, rbx
call fcn.1800ff150
mov eax, dword [rbp + 4]
bt eax, 0x10
jae 0x180080421
mov rdx, qword [rbp + 8]
mov rcx, rbx
call fcn.1800f83c0
mov eax, dword [rbp + 4]
mov rdx, qword [rbp + 0x20]
mov rcx, rbx
bt eax, 0xb
jae 0x180080435
call fcn.18012df60
jmp 0x18008043a
call fcn.1800ffe70
test dword [rbp + 4], 0x8000
jne 0x18008044e
mov rdx, rbp
mov rcx, rbx
call fcn.1800f83c0
mov rdi, rsi
mov qword [rsp + 0x60], rsi
jmp 0x180080679
test dword [rdi + 4], 0x4000
jne 0x1800804ad
mov rdx, qword [rdi + 0x10]
mov rcx, rbx
call fcn.1800ff150
mov rdx, qword [rdi + 0x18]
mov rcx, rbx
call fcn.1800ff150
mov eax, dword [rdi + 4]
bt eax, 0x10
jae 0x180080494
mov rdx, qword [rdi + 8]
mov rcx, rbx
call fcn.1800f83c0
mov eax, dword [rdi + 4]
mov rdx, qword [rdi + 0x20]
mov rcx, rbx
bt eax, 0xb
jae 0x1800804a8
call fcn.18012df60
jmp 0x1800804ad
call fcn.1800ffe70
test dword [rdi + 4], 0x8000
jne 0x18008055e
test rbx, rbx
je 0x180080503
cmp qword [rbx + 0x290], r12
je 0x1800804d8
mov rdx, rdi
mov rcx, rbx
call fcn.1800d60e0
jmp 0x18008055e
cmp rdi, qword [rbx + 0x178]
jb 0x180080503
cmp rdi, qword [rbx + 0x180]
jae 0x180080503
mov rax, qword [rbx + 0x170]
mov qword [rdi], rax
dec dword [rbx + 0x158]
mov qword [rbx + 0x170], rdi
jmp 0x18008055e
cmp dword [0x1801e5920], r12d
je 0x180080555
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18008051e
call qword [0x1801e59a8]
mov rcx, rdi
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rdi
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18008055e
call qword [0x1801e59b8]
jmp 0x18008055e
mov rcx, rdi
call qword [0x1801e5950]
mov rdx, rbp
mov rcx, rbx
call fcn.1800ff150
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x44], r12d
lea rcx, [0x1801a9ed4]
call fcn.180117c50
test eax, eax
mov esi, r12d
mov eax, 2
cmove esi, eax
mov edx, esi
add rdx, 0x48
cmp dword [rbx + 0x150], r12d
jne 0x180080649
movzx eax, word [rbx + 0x154]
cmp rdx, rax
jbe 0x180080602
inc dword [rbx + 0x164]
mov rcx, rbx
call fcn.180082740
mov qword [rsp + 0x60], rax
mov rdi, rax
test rax, rax
je 0x180080679
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
mov qword [rdi + 0x40], rax
mov eax, 0xffffffff
mov word [rdi + 0x32], ax
mov byte [rdi], 0x84
test esi, esi
jne 0x18008065d
mov eax, dword [rsp + 0x44]
or dword [rdi + 4], 0x400
mov dword [rdi + 8], eax
jmp 0x180080672
mov rdi, qword [rbx + 0x170]
mov qword [rsp + 0x60], rdi
test rdi, rdi
jne 0x18008061b
inc dword [rbx + 0x168]
jmp 0x1800805b1
mov rax, qword [rdi]
mov qword [rbx + 0x170], rax
mov eax, dword [rbx + 0x158]
inc eax
mov dword [rbx + 0x158], eax
inc dword [rbx + 0x160]
cmp eax, dword [rbx + 0x15c]
jle 0x1800805ca
mov dword [rbx + 0x15c], eax
jmp 0x1800805ca
cmp byte [rbx + 0x55], r12b
je 0x1800805b1
mov rdi, r12
mov qword [rsp + 0x60], r12
jmp 0x180080679
lea rcx, [rdi + 0x48]
mov qword [rdi + 8], rcx
movzx eax, byte [0x1801a9ed4]
mov byte [rcx], al
mov byte [rcx + 1], r12b
mov dword [rdi + 0x28], 1
mov rsi, qword [rsp + 0x120]
mov ebp, dword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov eax, dword [rsi + 0x48]
cmp dword [r14 + 0xc], eax
jne 0x1800807b1
test byte [r14 + 0x1a], 0x82
je 0x1800807b1
mov rax, qword [rsp + 0x128]
test qword [r14 + 0x28], rax
jne 0x1800807b1
movsxd rax, dword [r14 + 0x10]
test eax, eax
js 0x1800807b1
mov rdx, rax
mov rax, qword [rsi + 0x20]
shl rdx, 5
mov rcx, qword [rax + 8]
movzx ebx, byte [rdx + rcx + 0x19]
mov rcx, qword [r14]
call fcn.18007f9d0
movsx ecx, al
sub ecx, 0x41
je 0x180080707
mov eax, r12d
cmp ecx, 1
je 0x1800806f9
cmp bl, 0x43
setge al
jmp 0x1800806ff
cmp bl, 0x42
sete al
test eax, eax
je 0x1800807a7
movsxd rcx, dword [r14 + 0x10]
cmp ecx, 0x40
jl 0x18008071c
movabs rbx, 0x8000000000000000
jmp 0x180080724
mov ebx, 1
shl rbx, cl
test r15b, r15b
jne 0x180080754
mov rax, rcx
lea rdx, str.automatic_index_on__s__s_
mov rcx, qword [rsp + 0x70]
shl rax, 5
mov r9, qword [rcx + 8]
mov r8, qword [rcx]
mov ecx, 0x11c
mov r9, qword [rax + r9]
call fcn.18006eed0
mov r15b, 1
mov r11, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
test r11, rbx
jne 0x1800807b1
mov rcx, qword [r13]
lea esi, [rbp + 1]
mov r8d, esi
call fcn.180158be0
test eax, eax
jne 0x1800812ca
mov r11, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
or r11, rbx
movsxd rcx, ebp
mov ebp, esi
mov dword [rsp + 0x40], esi
mov rsi, qword [rsp + 0x120]
mov rax, qword [rdx + 0x38]
mov qword [rsp + 0x48], r11
mov qword [rax + rcx*8], r14
jmp 0x1800807b1
mov r11, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
add r14, 0x38
lea rcx, [0x180086be0]
lea r8, [0x1800e9c30]
cmp r14, qword [rsp + 0x80]
jb 0x180080130
mov rcx, qword [rsp + 0x70]
movabs r8, 0x8000000000000000
not r11
mov word [rdx + 0x2c], bp
or r11, r8
mov word [rdx + 0x18], bp
mov dword [rdx + 0x28], 0x4241
mov r13d, 0x3f
mov r9, qword [rsi + 0x60]
movsx r8d, word [rcx + 0x3e]
and r11, r9
mov qword [rsp + 0x48], r11
cmp r13w, r8w
jge 0x18008081c
mov r10d, r13d
mov dword [rsp + 0x44], r13d
jmp 0x18008082a
mov dword [rsp + 0x44], r8d
mov r10d, r8d
cmp r12w, r8w
jge 0x180080848
mov edx, r12d
nop dword [rax]
mov ecx, ebp
mov eax, edx
inc ebp
bt r11, rax
cmovae ebp, ecx
inc edx
cmp edx, r10d
jl 0x180080830
mov dword [rsp + 0x40], ebp
test r9, r9
jns 0x180080857
add ebp, 0xffffffc1
add ebp, r8d
mov dword [rsp + 0x40], ebp
mov r8, qword [rsp + 0x110]
lea esi, [rbp + 1]
movsx rbp, si
movsx r15d, si
mov r8, qword [r8]
lea eax, [r15 + rbp]
lea ecx, [rax*2 + 9]
add ecx, ebp
lea eax, [rbp + 0xd]
and ecx, 0xfffffff8
lea eax, [rcx + rax*8]
movsxd rbx, eax
test r8, r8
je 0x180080917
cmp dword [r8 + 0x150], r12d
jne 0x18008090c
movzx eax, word [r8 + 0x154]
cmp rbx, rax
jbe 0x1800808b9
inc dword [r8 + 0x164]
mov rdx, rbx
mov rcx, r8
call fcn.180082740
jmp 0x18008091f
mov r14, qword [r8 + 0x170]
test r14, r14
jne 0x1800808d9
inc dword [r8 + 0x168]
mov rdx, rbx
mov rcx, r8
call fcn.180082740
jmp 0x18008091f
mov rax, qword [r14]
mov qword [r8 + 0x170], rax
mov eax, dword [r8 + 0x158]
inc eax
mov dword [r8 + 0x158], eax
inc dword [r8 + 0x160]
cmp eax, dword [r8 + 0x15c]
jle 0x180080922
mov dword [r8 + 0x15c], eax
jmp 0x180080922
cmp byte [r8 + 0x55], r12b
je 0x1800808ac
mov r14, r12
jmp 0x180080922
mov rcx, rbx
call fcn.18011da50
mov r14, rax
test r14, r14
je 0x1800812c2
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.180162c50
mov r10d, dword [rsp + 0x40]
lea rcx, [r14 + 0x68]
mov rbx, qword [rsp + 0x70]
lea rdx, [rcx + rbp*8]
mov qword [r14 + 0x40], rcx
lea eax, [r15 + 1]
movsxd rcx, eax
mov word [r14 + 0x60], si
mov rsi, qword [rsp + 0x118]
mov qword [r14 + 0x10], rdx
lea rax, [rdx + rcx*2]
mov word [r14 + 0x5e], r10w
mov qword [r14 + 8], rax
lea rax, [rax + rbp*2]
mov qword [r14 + 0x38], rax
lea rbp, [0x1801a459c]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x88], r12
mov qword [rax + 0x20], r14
lea rax, str.auto_index
mov qword [r14], rax
mov qword [r14 + 0x18], rbx
mov rsi, qword [rsi + 0x20]
cmp rsi, qword [rsp + 0x80]
jae 0x180080b0d
mov r13, qword [rsp + 0x110]
xor r15d, r15d
mov rdi, qword [rsp + 0x120]
xor ebp, ebp
nop dword [rax + rax]
mov eax, dword [rdi + 0x48]
cmp dword [rsi + 0xc], eax
jne 0x180080adf
test byte [rsi + 0x1a], 0x82
je 0x180080adf
mov rax, qword [rsp + 0x128]
test qword [rsi + 0x28], rax
jne 0x180080adf
movsxd rax, dword [rsi + 0x10]
test eax, eax
js 0x180080adf
mov rdx, rax
mov rax, qword [rdi + 0x20]
shl rdx, 5
mov rcx, qword [rax + 8]
movzx ebx, byte [rdx + rcx + 0x19]
mov rcx, qword [rsi]
call fcn.18007f9d0
movsx ecx, al
sub ecx, 0x41
je 0x180080a45
xor eax, eax
cmp ecx, 1
je 0x180080a37
cmp bl, 0x43
setge al
jmp 0x180080a3d
cmp bl, 0x42
sete al
test eax, eax
je 0x180080adf
mov edx, dword [rsi + 0x10]
cmp edx, 0x40
jl 0x180080a59
movabs rax, 0x8000000000000000
jmp 0x180080a63
mov ecx, edx
mov eax, 1
shl rax, cl
mov r8, qword [rsp + 0x88]
test r8, rax
jne 0x180080adf
mov rcx, qword [rsi]
or r8, rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x88], r8
mov word [rax + rbp], dx
mov rdx, qword [rcx + 0x10]
mov rbx, qword [rcx + 0x18]
test dword [rdx + 4], 0x100
jne 0x180080ab5
test rbx, rbx
je 0x180080aa5
test dword [rbx + 4], 0x100
jne 0x180080ab2
mov rcx, r13
call fcn.1800fedd0
test rax, rax
jne 0x180080ac9
mov rdx, rbx
mov rcx, r13
call fcn.1800fedd0
lea rcx, [0x1801a459c]
test rax, rax
je 0x180080acc
mov rcx, qword [rax]
mov rax, qword [r14 + 0x40]
inc r12d
add rbp, 2
mov qword [r15 + rax], rcx
add r15, 8
add rsi, 0x38
cmp rsi, qword [rsp + 0x80]
jb 0x1800809d0
mov rdi, qword [rsp + 0x60]
lea rbp, [0x1801a459c]
mov r10d, dword [rsp + 0x40]
mov r13d, 0x3f
mov rbx, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x44]
xor ecx, ecx
test r9d, r9d
jle 0x180080b5b
mov r11, qword [rsp + 0x48]
movsxd rax, r12d
lea rdx, [rax*8]
lea r8, [rax + rax]
nop dword [rax]
mov eax, ecx
bt r11, rax
jae 0x180080b54
mov rax, qword [r14 + 8]
inc r12d
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [r14 + 0x40]
mov qword [rdx + rax], rbp
add rdx, 8
inc ecx
cmp ecx, r9d
jl 0x180080b30
mov rax, qword [rsp + 0x120]
cmp qword [rax + 0x60], 0
jge 0x180080baa
cmp r13w, word [rbx + 0x3e]
jge 0x180080baa
movsxd rax, r12d
lea rcx, [rax*8]
lea rdx, [rax + rax]
mov rax, qword [r14 + 8]
lea rdx, [rdx + 2]
inc r12d
lea rcx, [rcx + 8]
mov word [rdx + rax - 2], r13w
inc r13d
mov rax, qword [r14 + 0x40]
mov qword [rcx + rax - 8], rbp
movsx eax, word [rbx + 0x3e]
cmp r13d, eax
jl 0x180080b80
mov rax, qword [r14 + 8]
mov edx, 0xffffffff
mov rbx, qword [rsp + 0x110]
xor r13d, r13d
mov r15, qword [rsp + 0x130]
movsxd rcx, r12d
mov word [rax + rcx*2], dx
lea edx, [r10 + 1]
mov rax, qword [r14 + 0x40]
mov qword [rax + rcx*8], rbp
mov eax, dword [rbx + 0x54]
mov rbp, qword [rsp + 0x68]
mov dword [r15 + 8], eax
inc dword [rbx + 0x54]
mov r8d, dword [r15 + 8]
mov rax, qword [rbp + 0x30]
movsxd rcx, dword [rbp + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180080c0f
mov r9d, edx
mov dword [rsp + 0x20], r13d
lea edx, [r13 + 0x38]
mov rcx, rbp
call fcn.1800cfb00
jmp 0x180080c3b
lea eax, [rcx + 1]
mov dword [rbp + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbp + 8]
mov word [rax + rcx*8], 0x38
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], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov rsi, qword [rbx + 0x10]
mov rdx, r14
mov rcx, rbx
call fcn.18011c2d0
mov rbx, rax
mov rax, qword [rsi]
cmp byte [rax + 0x55], 0
je 0x180080cd3
test rbx, rbx
je 0x180080d0f
cmp qword [rax + 0x290], 0
jne 0x180080d0f
add dword [rbx], 0xffffffff
jne 0x180080d0f
cmp dword [0x1801e5920], 0
je 0x180080cc8
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x180080c91
call qword [0x1801e59a8]
mov rcx, rbx
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rbx
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x180080d0f
call qword [0x1801e59b8]
jmp 0x180080d0f
mov rcx, rbx
call qword [0x1801e5950]
jmp 0x180080d0f
movsxd rax, dword [rsi + 0x3c]
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 8]
cmp byte [rax + rdx*8 - 0x17], 0
lea r10, [rax + rdx*8]
je 0x180080d01
mov r9d, 0xfffffffa
lea rdx, [r10 - 0x18]
mov r8, rbx
mov rcx, rsi
call fcn.18014e490
jmp 0x180080d0f
test rbx, rbx
je 0x180080d0f
mov qword [r10 - 8], rbx
mov byte [r10 - 0x17], 0xfa
mov rsi, qword [rsp + 0x110]
inc dword [rsi + 0x78]
movzx eax, byte [r15 + 0x2c]
imul r15, rax, 0x78
mov rax, qword [rsp + 0x118]
mov rax, qword [rax]
add r15, qword [rax + 8]
mov rax, qword [rbp + 0x30]
test byte [r15 + 0x48], 0x10
je 0x180080e5a
movsxd r8, dword [rbp + 0x3c]
mov esi, dword [r15 + 0x3c]
mov dword [rsp + 0x5c], r8d
cmp dword [rax + 0x64], r8d
jg 0x180080d71
xor r9d, r9d
mov dword [rsp + 0x20], r13d
xor r8d, r8d
mov rcx, rbp
lea edx, [r9 + 0x16]
call fcn.1800cfb00
mov dword [rsp + 0x5c], eax
jmp 0x180080d9e
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [rbp + 0x3c], eax
mov rax, qword [rbp + 8]
mov word [rax + rcx*8], socket
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 4], 0
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov rax, qword [rbp + 0x30]
movsxd rcx, dword [rbp + 0x3c]
mov edx, dword [r15 + 0x38]
cmp dword [rax + 0x64], ecx
jg 0x180080dc7
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, esi
mov rcx, rbp
lea edx, [r9 + 0x10]
call fcn.1800cfb00
jmp 0x180080df2
lea eax, [rcx + 1]
mov dword [rbp + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbp + 8]
mov word [rax + rcx*8], reloc.WS2_32.dll_recv
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r13
mov rax, qword [rbp + 0x30]
movsxd rbx, dword [rbp + 0x3c]
cmp dword [rax + 0x64], ebx
jg 0x180080e25
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov r8d, esi
mov rcx, rbp
lea edx, [r9 + 0x12]
call fcn.1800cfb00
mov rsi, qword [rsp + 0x110]
mov ebx, eax
jmp 0x180080eb4
lea rcx, [rbx + rbx*2]
lea eax, [rbx + 1]
mov dword [rbp + 0x3c], eax
mov rax, qword [rbp + 8]
mov dword [rax + rcx*8 + 4], esi
mov rsi, qword [rsp + 0x110]
mov word [rax + rcx*8], reloc.WS2_32.dll_select
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r13
jmp 0x180080eb4
mov rdx, qword [rsp + 0x130]
movsxd rbx, dword [rbp + 0x3c]
mov edx, dword [rdx + 4]
cmp dword [rax + 0x64], ebx
jg 0x180080e89
xor r9d, r9d
mov dword [rsp + 0x20], r13d
mov r8d, edx
mov rcx, rbp
lea edx, [r9 + 0x6c]
call fcn.1800cfb00
mov ebx, eax
jmp 0x180080eb4
lea rcx, [rbx + rbx*2]
lea eax, [rbx + 1]
mov dword [rbp + 0x3c], eax
mov rax, qword [rbp + 8]
mov word [rax + rcx*8], WSAGetLastError
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r13
test rdi, rdi
je 0x180080f47
mov rsi, qword [rbp + 0x30]
mov edx, dword [rsi + 0x80]
mov dword [rsp + 0x58], edx
lea eax, [rdx + 1]
mov dword [rsi + 0x80], eax
lea eax, [rdx - 1]
test edx, eax
jne 0x180080f03
mov rcx, qword [rsi]
lea eax, [rdx*2 + 1]
mov rdx, qword [rsi + 0x88]
movsxd r8, eax
shl r8, 2
call fcn.1800f8550
mov edx, dword [rsp + 0x58]
mov qword [rsi + 0x88], rax
mov rcx, qword [rsi + 0x88]
test rcx, rcx
je 0x180080f19
movsxd rax, edx
mov dword [rcx + rax*4], 0xffffffff
mov rsi, qword [rsp + 0x110]
not edx
mov dword [rsp + 0x58], edx
mov r8d, edx
mov rdx, rdi
mov r9d, reloc.WS2_32.dll_recv
mov rcx, rsi
call fcn.1800ff280
mov rax, qword [rsp + 0x50]
or dword [rax + 0x28], 0x20000
movzx eax, byte [rsi + 0x1f]
test al, al
jne 0x180080f57
inc dword [rsi + 0x58]
mov esi, dword [rsi + 0x58]
jmp 0x180080f63
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov esi, dword [rsi + rax*4 + 0x28]
mov rax, qword [rsp + 0x130]
mov r9d, esi
mov rcx, qword [rsp + 0x110]
mov rdx, r14
mov dword [rsp + 0x38], r13d
mov qword [rsp + 0x30], r13
mov r8d, dword [rax + 4]
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], r13d
call fcn.180117160
mov rcx, qword [rbp + 0x30]
mov r14d, eax
mov r9, qword [rsp + 0x130]
movsxd rdx, dword [rbp + 0x3c]
mov r8d, dword [r9 + 8]
cmp dword [rcx + 0x64], edx
jg 0x180080fd1
mov r9d, esi
mov dword [rsp + 0x20], r13d
mov edx, WSAGetLastError
mov rcx, rbp
call fcn.1800cfb00
mov r9, qword [rsp + 0x130]
jmp 0x180080ffd
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rbp + 0x3c], eax
mov rax, qword [rbp + 8]
mov word [rax + rcx*8], WSAStartup
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov rax, qword [rbp]
cmp byte [rax + 0x55], 0
jne 0x180081018
movsxd rax, dword [rbp + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 8]
mov byte [rax + rcx*8 - 0x15], 0x10
test rdi, rdi
je 0x180081045
mov rdx, qword [rbp + 0x30]
mov r8, qword [rdx + 0x88]
test r8, r8
je 0x18008103d
mov eax, dword [rsp + 0x58]
not eax
movsxd rcx, eax
mov eax, dword [rbp + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rbp + 0x3c]
dec eax
mov dword [rdx + 0x6c], eax
test byte [r15 + 0x48], 0x10
lea rbp, [0x1801eea88]
je 0x18008117f
mov ecx, dword [rsp + 0x5c]
mov r10, qword [rsp + 0x68]
test ecx, ecx
jns 0x18008106a
mov ecx, dword [r10 + 0x3c]
dec ecx
mov rax, qword [r10]
cmp byte [rax + 0x55], 0
je 0x180081078
mov rcx, rbp
jmp 0x180081087
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r10 + 8]
lea rcx, [rax + rcx*8]
lea eax, [r14 + r12]
mov r14, qword [rsp + 0x68]
mov dword [rcx + 8], eax
mov ecx, ebx
mov r11d, dword [r15 + 0x40]
mov r10d, dword [r9 + 4]
mov r8d, dword [r14 + 0x3c]
test ebx, ebx
jns 0x1800810a9
lea ecx, [r8 - 1]
mov rax, qword [r14]
cmp byte [rax + 0x55], 0
je 0x1800810b7
mov rdx, rbp
jmp 0x1800810c6
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rdx, [rax + rcx*8]
cmp ebx, r8d
jge 0x18008111c
add rdx, 4
sub r8d, ebx
mov r9d, r8d
cmp dword [rdx], r10d
jne 0x18008110e
movzx eax, byte [rdx - 4]
cmp al, 0x2f
jne 0x1800810fa
mov ecx, dword [rdx + 4]
mov eax, dword [rdx + 8]
add ecx, r11d
mov dword [rdx], ecx
mov byte [rdx - 4], 0x1e
mov dword [rdx + 4], eax
mov dword [rdx + 8], r13d
jmp 0x18008110e
cmp al, 0x67
jne 0x18008110e
mov eax, dword [rdx + 4]
mov dword [rdx], eax
mov dword [rdx + 4], 1
mov byte [rdx - 4], 0x25
add rdx, 0x18
sub r9, 1
jne 0x1800810d5
mov r8d, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
cmp dword [rax + 0x64], r8d
jg 0x180081147
xor r8d, r8d
mov dword [rsp + 0x20], r13d
mov r9d, ebx
mov rcx, r14
lea edx, [r8 + 0xd]
call fcn.1800cfb00
and dword [r15 + 0x48], 0xffffffef
jmp 0x1800811dc
lea eax, [r8 + 1]
mov dword [r14 + 0x3c], eax
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 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], ebx
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
and dword [r15 + 0x48], 0xffffffef
jmp 0x1800811dc
mov r14, qword [rsp + 0x68]
lea edx, [rbx + 1]
mov r8d, dword [r9 + 4]
mov rax, qword [r14 + 0x30]
movsxd rcx, dword [r14 + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x1800811af
mov r9d, edx
mov dword [rsp + 0x20], r13d
mov edx, 7
mov rcx, r14
call fcn.1800cfb00
jmp 0x1800811dc
lea eax, [rcx + 1]
mov dword [r14 + 0x3c], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 8]
mov word [rax + rcx*8], 7
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], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov rax, qword [r14]
cmp byte [rax + 0x55], 0
jne 0x1800811f6
movsxd rax, dword [r14 + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
mov byte [rax + rcx*8 - 0x15], 3
mov rax, qword [r14 + 0x30]
mov ecx, dword [r14 + 0x3c]
dec ecx
mov dword [rax + 0x6c], ecx
mov rax, qword [r14]
mov edx, dword [r14 + 0x3c]
cmp byte [rax + 0x55], 0
je 0x180081215
mov rax, rbp
jmp 0x18008122b
lea eax, [rdx - 1]
test ebx, ebx
cmovns eax, ebx
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
test esi, esi
je 0x180081279
mov rax, qword [rsp + 0x110]
movzx ecx, byte [rax + 0x1f]
cmp cl, 8
jae 0x180081279
add rax, 0x90
nop dword [rax]
cmp dword [rax + 0xc], esi
je 0x180081275
inc r13d
add rax, 0x14
cmp r13d, 0xa
jl 0x180081250
mov r13, qword [rsp + 0x110]
mov dword [r13 + rcx*4 + 0x28], esi
inc byte [r13 + 0x1f]
jmp 0x180081281
mov byte [rax + 6], 1
mov r13, qword [rsp + 0x110]
mov rcx, r13
call fcn.1800fc310
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x6c], ecx
mov ecx, dword [rsp + 0x78]
mov edx, dword [r14 + 0x3c]
test ecx, ecx
jns 0x1800812a5
lea ecx, [rdx - 1]
mov rax, qword [r14]
cmp byte [rax + 0x55], 0
jne 0x1800812bd
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rbp, [rax + rcx*8]
mov dword [rbp + 8], edx
jmp 0x1800812ca
mov r13, qword [rsp + 0x110]
mov rbx, qword [r13]
test rdi, rdi
je 0x180081489
test dword [rdi + 4], 0x4000
jne 0x1800813d7
mov rdx, qword [rdi + 0x10]
mov rcx, rbx
call fcn.1800ff150
mov rdx, qword [rdi + 0x18]
mov rcx, rbx
call fcn.1800ff150
test dword [rdi + 4], 0x10000
je 0x1800813bb
mov rsi, qword [rdi + 8]
test rsi, rsi
je 0x1800813bb
test rbx, rbx
je 0x180081360
cmp qword [rbx + 0x290], 0
je 0x180081335
mov rdx, rsi
mov rcx, rbx
call fcn.1800d60e0
jmp 0x1800813bb
cmp rsi, qword [rbx + 0x178]
jb 0x180081360
cmp rsi, qword [rbx + 0x180]
jae 0x180081360
mov rax, qword [rbx + 0x170]
mov qword [rsi], rax
dec dword [rbx + 0x158]
mov qword [rbx + 0x170], rsi
jmp 0x1800813bb
cmp dword [0x1801e5920], 0
je 0x1800813b2
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x18008137b
call qword [0x1801e59a8]
mov rcx, rsi
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rsi
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x1800813bb
call qword [0x1801e59b8]
jmp 0x1800813bb
mov rcx, rsi
call qword [0x1801e5950]
test dword [rdi + 4], 0x800
mov rcx, rbx
mov rdx, qword [rdi + 0x20]
je 0x1800813d2
call fcn.18012df60
jmp 0x1800813d7
call fcn.1800ffe70
test dword [rdi + 4], 0x8000
jne 0x180081489
test rbx, rbx
je 0x18008142e
cmp qword [rbx + 0x290], 0
je 0x180081403
mov rdx, rdi
mov rcx, rbx
call fcn.1800d60e0
jmp 0x180081489
cmp rdi, qword [rbx + 0x178]
jb 0x18008142e
cmp rdi, qword [rbx + 0x180]
jae 0x18008142e
mov rax, qword [rbx + 0x170]
mov qword [rdi], rax
dec dword [rbx + 0x158]
mov qword [rbx + 0x170], rdi
jmp 0x180081489
cmp dword [0x1801e5920], 0
je 0x180081480
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x180081449
call qword [0x1801e59a8]
mov rcx, rdi
call qword [0x1801e5960]
dec qword [0x1801ee598]
movsxd rcx, eax
sub qword [0x1801ee550], rcx
mov rcx, rdi
call qword [0x1801e5950]
mov rcx, qword [0x1801ee840]
test rcx, rcx
je 0x180081489
call qword [0x1801e59b8]
jmp 0x180081489
mov rcx, rdi
call qword [0x1801e5950]
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret