Function at 0x1400191e0
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 rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x8b8]
sub rsp, 0x9b8
movzx edi, byte [rcx + 0x408]
lea rbx, [rcx + 0xd7c0]
movsxd r11, edx
mov r10d, 1
mov r12, rcx
mov qword [rbp - 0x68], r10
mov qword [rsp + 0x78], r10
lea eax, [r11 + 1]
cdqe
sar rax, 1
add rax, rcx
mov ecx, dword [rbp + 0x930]
movzx edx, byte [rax + rdi*4 + 0xd0ad]
xor edi, edi
mov rax, r11
mov dword [rbp + 0x910], edx
mov qword [rbp - 0x60], rax
mov r14d, edi
shl rax, 7
mov r13d, edi
add rbx, rax
mov qword [rsp + 0x70], rdi
xor eax, eax
mov qword [rsp + 0x50], rbx
cmp ecx, 0x3f
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
setle r14b
mov qword [rbp - 0x40], rax
dec r14d
mov qword [rbp - 0x38], rax
lea r8d, [rax + 0x40]
mov qword [rsp + 0x40], rdi
mov eax, VarI4FromDisp
mov dword [rbp + 0x7b0], edi
sub eax, ecx
and r14d, eax
add r14d, ecx
test r14d, r14d
jle 0x14001a197
mov r10d, dword [r12 + 0xda24]
mov ebx, dword [rbp + 0x908]
mov r15d, dword [rbp + 0x908]
mov r11d, dword [rbp + 0x908]
mov dword [rsp + 0x68], r10d
mov ecx, edi
movsxd r13, r14d
mov rdi, qword [rbp + 0x928]
movsx eax, word [r9 + r13*2]
test eax, eax
sets cl
neg ecx
mov dword [rbp + 0x930], ecx
lea esi, [rcx + rax]
lea rax, [0x140000000]
xor esi, ecx
movzx eax, byte [rax + r13 + 0x13a240]
movsx edi, word [rdi + rax*2]
mov dword [rsp + 0x6c], edi
cmp esi, 1
jg 0x140019a6a
test esi, esi
jne 0x140019340
cmp r14d, 1
jle 0x140019338
lea ecx, [r14 - 1]
movsxd rax, ecx
cmp word [r9 + rax*2], 0
jne 0x140019338
mov r14d, ecx
cmp ecx, 1
jg 0x140019321
xor r13d, r13d
mov edx, r13d
jmp 0x140019350
add edi, ecx
xor edi, ecx
mov edx, edi
mov dword [rsp + 0x6c], edi
imul edx, edi
xor r13d, r13d
mov rcx, qword [rsp + 0x50]
mov r9d, r8d
movsxd rdi, r14d
and r8d, 0x3f
sub r9d, r14d
lea rax, [rdi + rdi]
movzx r10d, word [rax + rcx]
mov qword [rbp - 0x78], rax
movsxd rax, r8d
mov eax, dword [rbp + rax*4 + 0x7b0]
add eax, edx
mov dword [rsp + 0x3c], eax
mov dword [rbp + rdi*4 + 0x7b0], eax
test r10d, r10d
jle 0x14001943b
cmp r10d, 4
jge 0x1400193a2
lea eax, [r10 - 1]
lea r10, [0x140000000]
jmp 0x14001940b
test r10d, r10d
mov ecx, r10d
mov edx, r13d
setne dl
shr ecx, 1
or ecx, r10d
lea r10, [0x140000000]
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
shr eax, 1
inc eax
imul ecx, eax, 0x77cb531
shr rcx, 0x1b
movzx eax, byte [rcx + r10 + 0x13a4e0]
mov ecx, r13d
add eax, 0xfffffffd
add edx, eax
mov eax, 3
cmp edx, 3
setle cl
sub eax, edx
dec ecx
and eax, ecx
add eax, 3
add eax, edx
movzx ecx, byte [rdi + r10 + 0x148790]
add ecx, dword [rbp + 0x910]
shl rcx, 5
movsxd rdx, eax
add rcx, rdx
movzx edx, byte [rdx + r10 + 0x13a220]
add edx, dword [r12 + rcx*8 + 0xda2c]
mov dword [rsp + 0x2c], edx
jmp 0x140019440
mov dword [rsp + 0x2c], r13d
or r13d, 0xffffffff
lea eax, [r14 + 0x3e]
sar eax, 6
mov dword [rsp + 0x58], eax
xor edx, edx
mov dword [rsp + 0x20], r13d
nop word [rax + rax]
mov rax, qword [rsp + 0x70]
mov ecx, r8d
sar rax, cl
test al, 1
je 0x1400197d1
movsxd r10, r8d
lea edx, [r9 + 0x37]
shl r10, 5
sar edx, 6
add edx, 7
movzx eax, byte [rbp + r10 - 0x40]
mov ecx, eax
mov dword [rsp + 0x64], eax
and ecx, 1
sar eax, 1
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x5c], eax
lea rax, [0x140000000]
movzx ecx, byte [rdi + rax + 0x148790]
lea rdi, [0x140000000]
add ecx, dword [rbp + 0x910]
shl rcx, 5
mov qword [rsp + 0x30], rcx
movsxd rax, edx
add rcx, rax
movzx eax, byte [rax + rdi + 0x13a220]
mov edi, dword [r12 + rcx*8 + 0xda2c]
mov ecx, dword [rbp + r10 - 0x3c]
add edi, eax
add edi, dword [rsp + 0x2c]
movsxd rax, r8d
mov eax, dword [rbp + rax*4 + 0x7b0]
mov dword [rsp + 0x48], eax
mov eax, edi
imul eax, dword [r12 + 0xda24]
add ecx, eax
sub ecx, dword [rsp + 0x48]
add ecx, dword [rsp + 0x3c]
cmp ecx, r13d
ja 0x140019532
mov ebx, dword [rbp + r10 - 0x38]
lea eax, [r8*2 + 1]
add ebx, edi
mov dword [rsp + 0x28], eax
xor eax, eax
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x24], eax
lea r11d, [r9 - 1]
mov r15d, edx
mov r13d, ecx
mov eax, dword [rsp + 0x58]
add eax, 0x10
cmp r9d, eax
jge 0x1400197b4
mov rcx, qword [rbp + 0x918]
movsxd rdx, r8d
lea rax, [rdx + rdx]
mov qword [rbp - 0x70], rax
movsx eax, word [rax + rcx]
mov edi, eax
shr edi, 0x1f
neg edi
lea r13d, [rax + rdi]
xor r13d, edi
cmp r13d, 2
jg 0x14001967e
cmp r9d, 6
jge 0x140019586
lea eax, [r9 + 0x16]
mov r10d, edi
mov dword [rsp + 0x38], eax
neg r10d
jmp 0x1400195b2
lea edx, [r9 + 0x36]
mov r10d, r9d
sar edx, 6
lea eax, [rdx + 0x1c]
mov dword [rsp + 0x38], eax
lea ecx, [rdx + 2]
mov eax, edi
shl eax, cl
sub r10d, eax
lea eax, [rdx*4]
sub r10d, eax
movsxd rdx, r8d
sub r10d, 6
mov rcx, qword [rbp + 0x928]
lea r12, [0x140000000]
lea rax, [0x140000000]
movzx eax, byte [rdx + rax + 0x13a240]
movsx edx, word [rcx + rax*2]
mov rax, qword [rbp - 0x70]
add edx, edi
mov rcx, qword [rbp + 0x920]
xor edx, edi
movzx eax, word [rax + rcx]
mov rcx, qword [rsp + 0x30]
sub edx, eax
movsxd rax, dword [rsp + 0x38]
add rcx, rax
imul edx, edx
movzx eax, byte [rax + r12 + 0x13a220]
mov r12, qword [rbp + 0x900]
mov ecx, dword [r12 + rcx*8 + 0xda2c]
add ecx, eax
mov eax, dword [rsp + 0x60]
add ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x4c], ecx
movsxd rcx, dword [rsp + 0x5c]
lea rax, [rax + rcx*2]
shl rax, 4
mov qword [rbp - 0x80], rax
mov ecx, dword [rbp + rax - 0x4c]
add ecx, edx
mov edx, dword [rsp + 0x4c]
mov eax, edx
imul eax, dword [r12 + 0xda24]
add ecx, eax
sub ecx, dword [rsp + 0x48]
add ecx, dword [rsp + 0x3c]
cmp ecx, dword [rsp + 0x20]
ja 0x14001967b
mov eax, dword [rsp + 0x64]
mov r11d, r10d
mov r15d, dword [rsp + 0x38]
mov dword [rsp + 0x28], eax
lea eax, [rdi + 1]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp - 0x80]
mov ebx, dword [rbp + rcx - 0x48]
add ebx, edx
xor eax, edi
mov dword [rsp + 0x24], eax
movsxd rdx, r8d
mov eax, dword [rsp + 0x58]
add eax, 2
cmp r9d, eax
jge 0x1400197af
lea eax, [r13 - 2]
cmp eax, 2
ja 0x1400197af
mov rcx, qword [rsp + 0x30]
lea r12, [0x140000000]
mov r10d, r9d
sar r10d, 1
lea eax, [r10 + 0x1e]
cdqe
add rcx, rax
movzx eax, byte [rax + r12 + 0x13a220]
mov r12, qword [rbp + 0x900]
mov ecx, dword [r12 + rcx*8 + 0xda2c]
add ecx, eax
lea eax, [rdi + r13]
add ecx, dword [rsp + 0x2c]
xor eax, edi
mov r13, qword [rbp + 0x920]
mov dword [rsp + 0x4c], ecx
xor ecx, ecx
cmp eax, 2
lea rax, [0x140000000]
movzx eax, byte [rdx + rax + 0x13a240]
mov rdx, qword [rbp + 0x928]
setg cl
mov dword [rsp + 0x38], ecx
add ecx, 2
mov dword [rsp + 0x30], ecx
movsx edx, word [rdx + rax*2]
mov rax, qword [rbp - 0x70]
add edx, edi
xor edx, edi
movzx eax, word [rax + r13]
mov r13d, dword [rsp + 0x20]
imul eax, ecx
movsxd rcx, dword [rsp + 0x5c]
sub edx, eax
mov eax, dword [rsp + 0x60]
imul edx, edx
lea rax, [rax + rcx*2]
shl rax, 4
mov qword [rbp - 0x80], rax
mov ecx, dword [rbp + rax - 0x4c]
add ecx, edx
mov edx, dword [rsp + 0x4c]
mov eax, edx
imul eax, dword [r12 + 0xda24]
add ecx, eax
sub ecx, dword [rsp + 0x48]
add ecx, dword [rsp + 0x3c]
cmp ecx, r13d
ja 0x1400197b4
mov rax, qword [rbp - 0x80]
lea r15d, [r10 + 0x1e]
mov r11d, dword [rsp + 0x38]
mov r13d, ecx
mov dword [rsp + 0x20], ecx
lea ecx, [r10 + 1]
mov ebx, dword [rbp + rax - 0x48]
mov eax, dword [rsp + 0x64]
add ebx, edx
mov dword [rsp + 0x28], eax
mov eax, edi
shl eax, cl
mov ecx, r10d
shl r11d, cl
sub r11d, eax
lea eax, [r9 - 1]
sar eax, 1
add r11d, eax
mov eax, dword [rsp + 0x30]
add eax, edi
xor eax, edi
mov dword [rsp + 0x24], eax
jmp 0x1400197b4
mov r13d, dword [rsp + 0x20]
mov r10, qword [rsp + 0x78]
mov ecx, r8d
mov rax, r10
movsxd rdi, r14d
sar rax, cl
test al, 1
je 0x140019918
xor edx, edx
jmp 0x1400197d6
mov r10, qword [rsp + 0x78]
movsxd rcx, r8d
mov eax, edx
shl rcx, 5
movzx r8d, byte [rbp + rcx - 0x50]
shr r8d, 1
cmp dword [rbp + rcx - 0x44], 0
setne al
sub r8d, eax
and r8d, 0x3f
je 0x140019804
mov r9d, r8d
sub r9d, r14d
jmp 0x140019460
mov rcx, qword [rsp + 0x50]
lea r9, [rdi + rdi]
movzx eax, word [r9 + rcx]
cmp eax, 0xfff
jge 0x1400198be
inc eax
lea r8, [0x140000000]
cmp eax, 4
jge 0x14001982f
dec eax
jmp 0x14001988c
test eax, eax
mov ecx, eax
setne dl
shr ecx, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
shr eax, 1
inc eax
imul ecx, eax, 0x77cb531
shr rcx, 0x1b
movzx eax, byte [rcx + r8 + 0x13a4e0]
add eax, 0xfffffffd
add edx, eax
xor eax, eax
mov ecx, eax
cmp edx, 3
mov eax, 3
setle cl
sub eax, edx
dec ecx
and eax, ecx
add eax, 3
add eax, edx
movzx ecx, byte [rdi + r8 + 0x148790]
add ecx, dword [rbp + 0x910]
movsxd rdx, eax
shl rcx, 5
add rcx, rdx
movzx eax, byte [rdx + r8 + 0x13a220]
mov edx, dword [r12 + rcx*8 + 0xda2c]
add edx, eax
sub edx, dword [rsp + 0x2c]
jmp 0x1400198df
lea rax, [0x140000000]
movzx ecx, byte [rdi + rax + 0x148790]
add ecx, dword [rbp + 0x910]
shl rcx, 8
mov edx, dword [rcx + r12 + 0xda2c]
mov ecx, edx
imul ecx, dword [rsp + 0x68]
add ecx, dword [rsp + 0x3c]
cmp ecx, r13d
jbe 0x1400198fe
cmp r15d, 8
jg 0x14001991c
lea eax, [r11 + r14]
cmp eax, 0x3f
jne 0x14001991c
xor eax, eax
mov r13d, ecx
mov r8d, eax
mov dword [rsp + 0x28], eax
mov r15d, eax
mov dword [rsp + 0x24], eax
mov r11d, eax
mov ebx, edx
jmp 0x140019925
mov r9, qword [rbp - 0x78]
mov eax, dword [rsp + 0x24]
mov r8d, dword [rsp + 0x28]
bts r10, rdi
mov r12, rdi
shl r12, 5
mov qword [rsp + 0x78], r10
mov byte [rbp + r12 - 0x50], r8b
mov byte [rbp + r12 - 0x4f], r15b
mov word [rbp + r12 - 0x4e], r11w
mov dword [rbp + r12 - 0x4c], r13d
mov dword [rbp + r12 - 0x48], ebx
mov dword [rbp + r12 - 0x44], eax
test esi, esi
je 0x14001a152
mov esi, dword [rbp + 0x930]
lea r8, [0x140000000]
cmp r14d, dword [rbp + 0x940]
mov edi, 9
mov rax, qword [rbp + 0x920]
mov r10d, dword [rsp + 0x68]
movzx r9d, word [r9 + rax]
mov eax, 0
cmovl r10d, eax
sub r9d, dword [rsp + 0x6c]
sub edi, esi
movsxd rax, r14d
movsxd rdx, edi
mov byte [rbp + r12 - 0x3f], dil
imul r9d, r9d
movzx ecx, byte [rax + r8 + 0x148790]
movzx eax, byte [rdx + r8 + 0x13a220]
add ecx, dword [rbp + 0x910]
shl rcx, 5
add rcx, rdx
mov rdx, qword [rbp + 0x900]
mov r8d, dword [rdx + rcx*8 + 0xda2c]
lea ecx, [r14 + 1]
mov rdx, qword [rsp + 0x40]
add r8d, eax
add r8d, dword [rsp + 0x2c]
and ecx, 0x3f
sar rdx, cl
movzx eax, cl
add al, al
movsxd rcx, ecx
and edx, 1
add al, dl
mov byte [rbp + r12 - 0x40], al
xor eax, eax
mov word [rbp + r12 - 0x3e], ax
movsxd rax, edx
lea rdx, [rax + rcx*2]
mov eax, r8d
imul eax, r10d
add rdx, rdx
mov edi, dword [rbp + rdx*8 - 0x4c]
add edi, r9d
add edi, eax
lea eax, [rsi + 1]
xor eax, esi
mov dword [rbp + r12 - 0x3c], edi
mov ecx, dword [rbp + rdx*8 - 0x48]
mov rsi, qword [rsp + 0x70]
add ecx, r8d
mov dword [rbp + r12 - 0x34], eax
movsxd rax, r14d
bts rsi, rax
mov dword [rbp + r12 - 0x38], ecx
xor eax, eax
mov qword [rsp + 0x70], rsi
cmp edi, r13d
mov ecx, r14d
mov r13, qword [rsp + 0x40]
setb al
shl rax, cl
or r13, rax
mov qword [rsp + 0x40], r13
jmp 0x14001a157
cmp r14d, dword [rbp + 0x940]
lea rbx, [0x140000000]
mov rax, qword [rsp + 0x50]
mov r11d, 0
mov r8, qword [rbp + 0x920]
cmovl r10d, r11d
add edi, ecx
mov dword [rbp + r13*4 + 0x7b0], r11d
xor edi, ecx
movzx eax, word [rax + r13*2]
movzx r9d, word [r8 + r13*2]
test eax, eax
jle 0x140019b4b
cmp eax, 4
jge 0x140019ab5
dec eax
jmp 0x140019b13
test eax, eax
mov ecx, eax
mov edx, r11d
setne dl
shr ecx, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
shr eax, 1
inc eax
imul ecx, eax, 0x77cb531
shr rcx, 0x1b
movzx eax, byte [rcx + rbx + 0x13a4e0]
mov ecx, r11d
add eax, 0xfffffffd
add edx, eax
mov eax, 3
cmp edx, 3
setle cl
sub eax, edx
dec ecx
and eax, ecx
add eax, 3
add eax, edx
movzx ecx, byte [rbx + r13 + 0x148790]
add ecx, dword [rbp + 0x910]
shl rcx, 5
movsxd rdx, eax
add rcx, rdx
movzx r8d, byte [rdx + rbx + 0x13a220]
add r8d, dword [r12 + rcx*8 + 0xda2c]
mov ecx, dword [rbp + 0x930]
mov edx, dword [rbp + 0x910]
jmp 0x140019b4e
mov r8d, r11d
cmp esi, 2
jg 0x140019c74
movzx eax, byte [rbx + r13 + 0x148790]
lea r11d, [r9 + r9]
add edx, eax
sub r11d, edi
mov edi, ecx
shl rdx, 5
neg edi
lea r15d, [rdi + 0xb]
add edi, 9
movsxd rax, r15d
lea rcx, [rax + rdx]
movzx eax, byte [rax + rbx + 0x13a220]
mov ebx, dword [r12 + rcx*8 + 0xda2c]
mov ecx, r10d
add ebx, eax
mov eax, r11d
imul eax, r11d
add ebx, r8d
imul ecx, ebx
sub r11d, r9d
imul r11d, r11d
lea r9, [0x140000000]
add eax, ecx
movsxd rcx, edi
add rdx, rcx
movzx ecx, byte [rcx + r9 + 0x13a220]
mov edx, dword [r12 + rdx*8 + 0xda2c]
add edx, ecx
add edx, r8d
mov ecx, edx
imul ecx, r10d
add r11d, ecx
cmp r11d, eax
ja 0x140019be5
mov r15d, edi
mov ebx, edx
mov eax, r11d
dec esi
xor ecx, ecx
mov r11d, ecx
mov r10d, dword [rbp + 0x930]
mov rdi, qword [rsp + 0x40]
lea edx, [r14 + 1]
and edx, 0x3f
mov r8, r13
shl r8, 5
mov ecx, edx
sar rdi, cl
add cl, cl
and edi, 1
movsxd rdx, edx
add cl, dil
mov byte [rbp + r8 - 0x40], cl
movsxd rcx, edi
mov byte [rbp + r8 - 0x3f], r15b
mov word [rbp + r8 - 0x3e], r11w
lea rdi, [rcx + rdx*2]
add rdi, rdi
mov edx, dword [rbp + rdi*8 - 0x4c]
add edx, eax
lea eax, [r10 + rsi]
xor eax, r10d
mov dword [rbp + r8 - 0x3c], edx
mov ecx, dword [rbp + rdi*8 - 0x48]
add ecx, ebx
mov dword [rbp + r8 - 0x34], eax
mov rax, qword [rsp + 0x70]
bts rax, r13
mov dword [rbp + r8 - 0x38], ecx
mov rcx, qword [rsp + 0x40]
bts rcx, r13
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x40], rcx
mov r13, rcx
jmp 0x14001a15e
cmp esi, 3
jg 0x140019d20
mov r11d, ecx
lea eax, [r9 + r9*2]
sub eax, edi
mov ecx, r10d
mov dword [rsp + 0x30], eax
neg r11d
movzx eax, byte [rbx + r13 + 0x148790]
mov r15d, ntohs
mov edi, dword [rsp + 0x30]
add edx, eax
mov eax, edi
shl rdx, 5
imul eax, edi
sub edi, r9d
lea r9, [0x140000000]
imul edi, edi
mov ebx, dword [r12 + rdx*8 + 0xda94]
inc ebx
add ebx, r8d
imul ecx, ebx
add eax, ecx
lea ecx, [r11 + 0xb]
mov dword [rsp + 0x30], ecx
movsxd rcx, ecx
add rdx, rcx
movzx ecx, byte [rcx + r9 + 0x13a220]
mov r9d, dword [r12 + rdx*8 + 0xda2c]
add r9d, ecx
add r9d, r8d
mov ecx, r9d
imul ecx, r10d
mov r10d, dword [rbp + 0x930]
add edi, ecx
cmp edi, eax
ja 0x140019bf1
mov r15d, dword [rsp + 0x30]
xor eax, eax
mov r11d, eax
mov ebx, r9d
mov eax, edi
dec esi
jmp 0x140019bf1
mov eax, r9d
imul eax, esi
sub eax, edi
cmp esi, 6
jg 0x140019dd6
mov r11d, ecx
mov dword [rsp + 0x30], eax
movzx eax, byte [rbx + r13 + 0x148790]
lea r15d, [rsi + 0xa]
mov edi, dword [rsp + 0x30]
add edx, eax
shl rdx, 5
neg r11d
movsxd rax, r15d
lea rcx, [rax + rdx]
movzx eax, byte [rax + rbx + 0x13a220]
mov ebx, dword [r12 + rcx*8 + 0xda2c]
mov ecx, r10d
add ebx, eax
mov eax, edi
imul eax, edi
add ebx, r8d
imul ecx, ebx
sub edi, r9d
lea r9, [0x140000000]
imul edi, edi
add eax, ecx
lea ecx, [r15 - 1]
mov dword [rsp + 0x30], ecx
movsxd rcx, ecx
add rdx, rcx
movzx ecx, byte [rcx + r9 + 0x13a220]
mov r9d, dword [r12 + rdx*8 + 0xda2c]
add r9d, ecx
add r9d, r8d
mov ecx, r9d
imul ecx, r10d
mov r10d, dword [rbp + 0x930]
add edi, ecx
cmp edi, eax
ja 0x140019bf1
mov r15d, dword [rsp + 0x30]
mov ebx, r9d
mov eax, edi
dec esi
jmp 0x140019bf1
imul eax, eax
mov r11d, esi
cmp esi, 8
jg 0x140019e67
add ecx, ecx
lea r9d, [r9 + r9*2]
sub r11d, ecx
add r9d, r9d
movzx ecx, byte [rbx + r13 + 0x148790]
sub r9d, edi
add edx, ecx
imul r9d, r9d
shl rdx, 5
mov ecx, r10d
sub r11d, 7
mov r15d, send
mov ebx, dword [r12 + rdx*8 + 0xdab4]
mov edx, dword [r12 + rdx*8 + 0xdaac]
add ebx, 2
add ebx, r8d
add edx, r8d
imul ecx, ebx
add eax, ecx
lea ecx, [rdx + 1]
imul ecx, r10d
mov r10d, dword [rbp + 0x930]
add r9d, ecx
cmp r9d, eax
ja 0x140019bf1
mov r15d, reloc.WS2_32.dll_recv
lea ebx, [rdx + 1]
mov r11d, r10d
mov eax, r9d
neg r11d
lea esi, [r15 - 0xa]
jmp 0x140019bf1
cmp esi, 0xc
jg 0x140019eff
lea ecx, [rcx*4]
mov r15d, socket
sub r11d, ecx
lea r9d, [r9*8]
movzx ecx, byte [rbx + r13 + 0x148790]
sub r9d, edi
add edx, ecx
imul r9d, r9d
shl rdx, 5
mov ecx, r10d
sub r11d, 9
mov ebx, dword [r12 + rdx*8 + 0xdabc]
mov edx, dword [r12 + rdx*8 + 0xdab4]
add ebx, 3
add ebx, r8d
add edx, r8d
imul ecx, ebx
add eax, ecx
lea ecx, [rdx + 2]
imul ecx, r10d
mov r10d, dword [rbp + 0x930]
add r9d, ecx
cmp r9d, eax
ja 0x140019bf1
lea eax, [r10 + r10]
mov r15d, send
mov r11d, 1
lea ebx, [rdx + 2]
sub r11d, eax
mov eax, r9d
lea esi, [r15 - 9]
jmp 0x140019bf1
cmp esi, 0x14
jg 0x140019f9b
lea ecx, [rcx*8]
mov r15d, reloc.WS2_32.dll_send
sub r11d, ecx
lea r9d, [r9 + r9*2]
movzx ecx, byte [rbx + r13 + 0x148790]
sub r11d, 0xd
add edx, ecx
shl r9d, 2
shl rdx, 5
sub r9d, edi
mov ecx, r10d
imul r9d, r9d
mov ebx, dword [r12 + rdx*8 + 0xdac4]
mov edx, dword [r12 + rdx*8 + 0xdabc]
add ebx, 4
add ebx, r8d
add edx, r8d
imul ecx, ebx
add eax, ecx
lea ecx, [rdx + 3]
imul ecx, r10d
mov r10d, dword [rbp + 0x930]
add r9d, ecx
cmp r9d, eax
ja 0x140019bf1
lea eax, [r10*4]
mov r15d, socket
mov r11d, 3
lea ebx, [rdx + 3]
sub r11d, eax
mov eax, r9d
lea esi, [r15 - 6]
jmp 0x140019bf1
cmp esi, 0x24
jg 0x14001a033
shl ecx, 4
lea r9d, [r9 + r9*4]
sub r11d, ecx
shl r9d, 2
movzx ecx, byte [rbx + r13 + 0x148790]
sub r9d, edi
add edx, ecx
imul r9d, r9d
shl rdx, 5
mov ecx, r10d
sub r11d, 0x15
mov r15d, socket
mov ebx, dword [r12 + rdx*8 + 0xdacc]
mov edx, dword [r12 + rdx*8 + 0xdac4]
add ebx, 5
add ebx, r8d
add edx, r8d
imul ecx, ebx
add eax, ecx
lea ecx, [rdx + 4]
imul ecx, r10d
mov r10d, dword [rbp + 0x930]
add r9d, ecx
cmp r9d, eax
ja 0x140019bf1
lea eax, [r10*8]
mov r15d, reloc.WS2_32.dll_send
mov r11d, 7
lea ebx, [rdx + 4]
sub r11d, eax
mov eax, r9d
lea esi, [r15 + 1]
jmp 0x140019bf1
cmp esi, 0x44
jg 0x14001a0c9
shl ecx, 5
lea r9d, [r9 + r9*8]
sub r11d, ecx
shl r9d, 2
movzx ecx, byte [rbx + r13 + 0x148790]
sub r9d, edi
add edx, ecx
imul r9d, r9d
shl rdx, 5
mov ecx, r10d
sub r11d, 0x25
mov r15d, socket
mov ebx, dword [r12 + rdx*8 + 0xdad4]
mov edx, dword [r12 + rdx*8 + 0xdacc]
add ebx, 6
add ebx, r8d
add edx, r8d
imul ecx, ebx
add eax, ecx
lea ecx, [rdx + 5]
imul ecx, r10d
mov r10d, dword [rbp + 0x930]
add r9d, ecx
cmp r9d, eax
jae 0x140019bf1
mov r15d, socket
lea ebx, [rdx + 5]
mov eax, r10d
mov r11d, reloc.WS2_32.dll_ntohs
shl eax, 4
sub r11d, eax
mov eax, r9d
lea esi, [r15 + 0x10]
jmp 0x140019bf1
shl ecx, 9
mov r15d, socket
sub r11d, ecx
imul r9d, r9d, 0x44
movzx ecx, byte [rbx + r13 + 0x148790]
sub r11d, 0x45
add edx, ecx
mov ecx, r10d
shl rdx, 5
sub r9d, edi
imul r9d, r9d
mov ebx, dword [r12 + rdx*8 + 0xdadc]
mov edx, dword [r12 + rdx*8 + 0xdad4]
add ebx, 0xa
add ebx, r8d
add edx, r8d
imul ecx, ebx
add eax, ecx
lea ecx, [rdx + 6]
imul ecx, r10d
add r9d, ecx
cmp r9d, eax
jae 0x140019bea
mov r10d, dword [rbp + 0x930]
lea ebx, [rdx + 6]
mov eax, r10d
mov r15d, socket
shl eax, 5
mov r11d, 0x1f
sub r11d, eax
mov eax, r9d
lea esi, [r15 + 0x2f]
jmp 0x140019bf1
mov r13, qword [rsp + 0x40]
mov r12, qword [rbp + 0x900]
mov edx, dword [rbp + 0x910]
mov r8d, r14d
mov r9, qword [rbp + 0x918]
dec r14d
mov r10d, dword [r12 + 0xda24]
mov edi, 0
test r14d, r14d
jg 0x1400192d3
mov r11d, dword [rbp + 0x908]
lea r10d, [rdi + 1]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rbp + 0x938]
mov ecx, reloc.OLEAUT32.dll_VarI4FromDisp
movsx rax, di
mov rdi, r9
rep stosw word [rdi], ax
mov rax, qword [r12 + 0x88]
mov rsi, qword [rsi]
mov qword [rbp + 0x910], rax
sar r13, 1
and r13d, 1
movsxd r8, r11d
mov eax, r13d
add rax, rax
mov edx, r13d
mov qword [rbp + 0x900], rdx
mov eax, dword [rbp + rax*8 - 0x28]
mov dword [rbp + 0x930], eax
mov rax, r8
shl rax, 6
mov qword [rbp - 0x78], rax
nop
mov byte [rsi], r11b
mov byte [rsi + 1], r10b
movsxd rdi, r10d
lea rcx, [rdi + rax]
movzx eax, word [r12 + rcx*2 + 0xd7c0]
lea r14, [r12 + rcx*8]
mov word [rsi + 2], ax
mov rax, qword [r14 + 0xd1c0]
mov qword [rsi + 8], rax
lea rax, [rdi + rdi]
movzx r9d, word [rax + rbx]
lea r15, [rax + rbx]
mov ebx, edx
add rsi, 0x10
add rbx, rax
add rbx, rbx
movzx r13d, byte [rbp + rbx*8 - 0x4f]
cmp r13b, 7
jl 0x14001a319
test r9d, r9d
jle 0x14001a267
mov r8d, r10d
mov edx, r11d
mov rcx, r12
call fcn.1400190d0
mov r11d, dword [rbp + 0x908]
xor eax, eax
mov r8, qword [rbp - 0x60]
mov word [r15], ax
mov rdx, qword [r14 + 0xd1c0]
movzx r9d, byte [rbp + rbx*8 - 0x50]
lea rax, [rdx + 1]
mov qword [r14 + 0xd1c0], rax
mov rax, qword [r12 + r8*8 + 0xd190]
mov rcx, qword [rax + rdi*8]
mov byte [rdx + rcx], r13b
mov rax, qword [r12 + r8*8 + 0xd1a8]
mov r8d, r9d
sar r8d, 1
and r9d, 1
mov r10d, r8d
mov qword [rbp - 0x68], r10
mov rcx, qword [rax + rdi*8]
movzx eax, word [rbp + rbx*8 - 0x4e]
mov word [rcx + rdx*2], ax
lea eax, [r8 - 1]
movsx ecx, word [rbp + rbx*8 - 0x44]
and eax, 0x3f
mov rbx, qword [rsp + 0x50]
movsxd rdi, eax
mov rax, qword [rbp + 0x920]
movsx edx, word [rax + rdi*2]
mov rax, qword [rbp + 0x910]
imul edx, ecx
test r8d, r8d
movsxd r8, r11d
movzx ecx, byte [rdi + rax]
mov rax, qword [rbp + 0x918]
mov word [rax + rcx*2], dx
mov edx, r9d
mov rax, qword [rbp - 0x78]
mov qword [rbp + 0x900], rdx
jne 0x14001a1f0
mov rax, qword [rbp + 0x938]
mov qword [rax], rsi
mov eax, dword [rbp + 0x930]
jmp 0x14001a374
inc r9d
cmp r9d, 0xfff
jl 0x14001a343
mov r8d, r10d
mov edx, r11d
mov rcx, r12
call fcn.1400190d0
mov rdx, qword [rbp + 0x900]
xor eax, eax
mov r10, qword [rbp - 0x68]
mov r9d, eax
mov rcx, qword [rsp + 0x50]
mov r8d, dword [rbp + 0x930]
movsxd rax, r10d
add rax, rax
mov word [rax + rcx], r9w
mov ecx, edx
add rcx, rax
mov rax, qword [rbp + 0x938]
add rcx, rcx
mov qword [rax], rsi
sub r8d, dword [rbp + rcx*8 - 0x48]
mov eax, r8d
add rsp, 0x9b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret