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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1f8
mov rax, qword [0x1402de400]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
mov rdi, qword [rsp + 0x270]
mov rbp, qword [r8]
mov r15, rcx
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x268]
mov eax, r9d
mov qword [rsp + 0x90], rcx
mov rcx, qword [rsp + 0x278]
mov rsi, rdx
xor edx, edx
cmp byte [rsp + 0x290], 0x40
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x280]
mov dword [rsp + 0x64], eax
mov qword [rsp + 0x78], r8
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x98], rdx
mov ecx, eax
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x80], edx
jne 0x1400ca71a
mov r14d, reloc.WS2_32.dll_sendto
lea r13, [rsp + 0xc0]
mov r12d, r14d
test eax, eax
js 0x1400ca636
test rbp, rbp
je 0x1400ca636
nop dword [rax]
test ecx, ecx
jle 0x1400ca68c
mov eax, dword [rbp + 0x18]
cmp ecx, eax
jl 0x1400ca68c
mov rbp, qword [rbp]
sub ecx, eax
test rbp, rbp
jne 0x1400ca620
mov rbx, rdx
movzx eax, byte [rbx + 1]
mov ecx, dword [rbx + 4]
mov byte [rsp + 0x40], al
call qword [sym.imp.WS2_32.dll_ntohl]
movzx ecx, word [rbx + 8]
mov r13d, eax
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [rbx + 0xc]
mov word [rsp + 0x42], ax
call qword [sym.imp.WS2_32.dll_ntohl]
mov r10b, byte [rsp + 0x40]
mov ecx, dword [rbx + 0x10]
mov ebp, eax
mov dword [rsp + 0x60], eax
test r10b, 2
je 0x1400ca706
xor eax, eax
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x4c], eax
jmp 0x1400ca799
test rbp, rbp
je 0x1400ca636
mov eax, dword [rbp + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x1400ca6a4
movsxd rbx, ecx
add rbx, qword [rbp + 0x10]
jmp 0x1400ca639
test r12d, r12d
jle 0x1400ca6e0
mov eax, dword [rbp + 0x18]
movsxd rdx, ecx
mov edi, r12d
sub eax, ecx
mov rcx, r13
cmp eax, r12d
cmovl edi, eax
add rdx, qword [rbp + 0x10]
mov r8d, edi
mov ebx, edi
call fcn.1401e3ed0
mov rbp, qword [rbp]
xor edx, edx
sub r12d, edi
add r13, rbx
mov ecx, edx
test rbp, rbp
jne 0x1400ca6a4
jmp 0x1400ca6e5
test rbp, rbp
jne 0x1400ca6f4
test r12d, r12d
jle 0x1400ca6f4
mov rdi, qword [rsp + 0x58]
jmp 0x1400ca636
mov rdi, qword [rsp + 0x58]
lea rbx, [rsp + 0xc0]
jmp 0x1400ca639
call qword [sym.imp.WS2_32.dll_ntohl]
mov dword [rsp + 0x58], 0xffffffff
mov dword [rsp + 0x4c], eax
jmp 0x1400ca794
mov r14d, reloc.WS2_32.dll_recv
lea r13, [rsp + 0xb0]
mov r12d, r14d
test eax, eax
js 0x1400ca752
test rbp, rbp
je 0x1400ca752
test ecx, ecx
jle 0x1400ca7e9
mov eax, dword [rbp + 0x18]
cmp ecx, eax
jl 0x1400ca7e9
mov rbp, qword [rbp]
sub ecx, eax
test rbp, rbp
jne 0x1400ca734
mov rbx, rdx
mov al, byte [rbx + 1]
mov ecx, dword [rbx + 4]
mov byte [rsp + 0x40], al
call qword [sym.imp.WS2_32.dll_ntohl]
movzx ecx, word [rbx + 8]
mov r13d, eax
call qword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, word [rbx + 0xa]
mov word [rsp + 0x42], ax
call qword [sym.imp.WS2_32.dll_ntohs]
mov dword [rsp + 0x4c], r13d
movzx ebp, ax
mov eax, dword [rbx + 0xc]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x60], ebp
mov r10b, byte [rsp + 0x40]
movsxd r12, dword [rsp + 0x260]
cmp r12, r14
jne 0x1400ca86a
mov ecx, r13d
call fcn.1400959b0
mov r8, rax
mov rax, qword [r15 + 8]
mov dword [rax + 0x3cc], 0x30000010
xor eax, eax
mov dword [rsp + 0x20], eax
mov rcx, qword [r15 + 8]
xor r9d, r9d
mov rdx, r15
call fcn.140094490
mov rdi, qword [rsp + 0x70]
mov ebp, 1
mov dword [rdi], ebp
jmp 0x1400cb9f1
test rbp, rbp
je 0x1400ca752
mov eax, dword [rbp + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x1400ca808
movsxd rbx, ecx
add rbx, qword [rbp + 0x10]
jmp 0x1400ca755
test r12d, r12d
jle 0x1400ca844
mov eax, dword [rbp + 0x18]
movsxd rdx, ecx
mov edi, r12d
sub eax, ecx
mov rcx, r13
cmp eax, r12d
cmovl edi, eax
add rdx, qword [rbp + 0x10]
mov r8d, edi
mov ebx, edi
call fcn.1401e3ed0
mov rbp, qword [rbp]
xor edx, edx
sub r12d, edi
add r13, rbx
mov ecx, edx
test rbp, rbp
jne 0x1400ca808
jmp 0x1400ca849
test rbp, rbp
jne 0x1400ca858
test r12d, r12d
jle 0x1400ca858
mov rdi, qword [rsp + 0x58]
jmp 0x1400ca752
mov rdi, qword [rsp + 0x58]
lea rbx, [rsp + 0xb0]
jmp 0x1400ca755
test r10b, 8
je 0x1400ca877
mov byte [rsi + 0x6aa], 1
movzx ebx, r10b
mov eax, ebx
shr eax, 2
not eax
and eax, 1
mov dword [rsp + 0x54], eax
test r15, r15
je 0x1400cb9f1
mov ecx, dword [rsi + 0x4e4]
cmp ecx, r13d
jae 0x1400ca8b0
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cb9c4
cmp ecx, r13d
jbe 0x1400ca8c2
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
jb 0x1400cb9c4
cmp ecx, r13d
je 0x1400cb9c4
mov eax, dword [rsi + 0x4e8]
mov r8d, r13d
sub r8d, eax
mov dword [rsp + 0x50], r8d
cmp r8d, 0x1000
jae 0x1400cb9f1
movzx eax, word [rsi + 0x698]
shl eax, 3
cmp r8d, eax
jb 0x1400ca915
mov edx, r8d
mov rcx, rsi
call fcn.14008db20
test eax, eax
jne 0x1400cb9f1
mov r10b, byte [rsp + 0x40]
mov r8d, dword [rsp + 0x50]
mov ecx, dword [rdi]
cmp r13d, ecx
jae 0x1400ca92b
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400ca939
cmp r13d, ecx
jbe 0x1400ca93c
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400ca93c
mov dword [rdi], r13d
mov rax, qword [rsi + 0x370]
mov r9d, r8d
and r8d, 7
shr r9, 3
movzx ecx, r8b
mov dword [rsp + 0x50], r8d
movzx edx, byte [r9 + rax]
mov qword [rsp + 0x88], r9
shr dl, cl
test dl, 1
jne 0x1400cb9c4
mov rax, qword [rsi + 0x4f0]
movzx edx, byte [r9 + rax]
shr dl, cl
test dl, 1
jne 0x1400cb9c4
mov r9, qword [r15 + 8]
mov r8d, dword [r9 + 0x158]
bt r8d, 0x1c
jb 0x1400cb9a3
bt r8d, 0x1d
jb 0x1400cb9a3
bt dword [r15 + 0x58], 8
jb 0x1400cb9a3
movzx eax, word [rsp + 0x42]
cmp ax, word [rsi + 0x688]
jb 0x1400cac2f
xor eax, eax
mov rbx, rax
mov qword [rsp + 0x68], rax
mov r15, rax
lea r12d, [rax + 8]
lea ebp, [rax + 1]
mov r14d, eax
nop dword [rax]
mov rcx, qword [0x1402e6b48]
call fcn.1401e3610
cmp r12d, 0xb0
mov rdi, rax
jle 0x1400caa8d
xor ecx, ecx
test rax, rax
je 0x1400caa3d
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov dword [rax + 0x18], ecx
mov dword [rax + 0x1c], 2
mov word [rax + 0x20], bp
add rax, 0x50
mov qword [rdi + 0x28], rcx
mov dword [rdi + 0x38], ecx
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x10], rax
mov dword [rdi + 0x3c], ecx
mov dword [rdi + 0x40], ecx
mov word [rdi + 0x44], cx
mov word [rdi + 0x46], cx
mov qword [rdi + 0x48], rcx
mov qword [rdi + 0x50], rcx
mov rcx, qword [0x1402e6b50]
call fcn.1401e3610
mov rcx, qword [0x1402e6b58]
mov rbx, rax
call fcn.1401e3610
mov dword [rax], ebp
or dword [rdi + 0x1c], ebp
xor ecx, ecx
mov qword [rdi + 0x50], rbx
mov qword [rdi + 0x10], rbx
mov rbx, qword [rsp + 0x68]
mov qword [rdi + 0x70], rax
mov qword [rdi + 0x58], rcx
mov qword [rdi + 0x60], rcx
mov dword [rdi + 0x68], 0x800
mov dword [rdi + 0x78], ebp
mov eax, 0x800
jmp 0x1400cab08
test r14b, 2
je 0x1400caadb
test rax, rax
je 0x1400caad4
xor ecx, ecx
mov dword [rax + 0x1c], 2
mov word [rax + 0x20], bp
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov dword [rax + 0x18], ecx
add rax, 0x50
mov qword [rdi + 0x28], rcx
mov dword [rdi + 0x38], ecx
mov qword [rdi + 0x30], rcx
mov dword [rdi + 0x3c], ecx
mov dword [rdi + 0x40], ecx
mov qword [rdi + 0x10], rax
mov word [rdi + 0x44], cx
mov word [rdi + 0x46], cx
mov qword [rdi + 0x48], rcx
mov eax, 0xb0
jmp 0x1400cab01
test rax, rax
je 0x1400caafc
xor ecx, ecx
mov word [rax + 0x20], bp
add rax, 0x28
mov qword [rax - 0x28], rcx
mov qword [rax - 0x20], rcx
mov dword [rax - 0x10], ecx
mov dword [rax - 0xc], ecx
mov qword [rdi + 0x10], rax
mov eax, 0xd8
cmp r12d, eax
cmovl eax, r12d
test rdi, rdi
je 0x1400cabb2
cmp eax, 8
jl 0x1400cabad
sub r12d, eax
test r15, r15
je 0x1400cab27
mov qword [r15], rdi
jmp 0x1400cab2f
mov rbx, rdi
mov qword [rsp + 0x68], rbx
and r14d, 0xfffffffd
mov r15, rdi
test r12d, r12d
jg 0x1400ca9e0
test r14b, 4
je 0x1400cab50
or dword [rdi + 0x1c], 4
nop dword [rax]
test rbx, rbx
je 0x1400cabbf
add qword [rbx + 0x10], 4
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rbx + 0x10]
mov ecx, ebp
mov dword [rdi + 0x18], 8
call sub.WS2_32.dll_htons
mov ecx, 8
mov word [rbx], ax
call sub.WS2_32.dll_htons
mov cx, word [rsp + 0x42]
mov word [rbx + 2], ax
call sub.WS2_32.dll_htons
xor ecx, ecx
mov word [rbx + 4], ax
call sub.WS2_32.dll_htons
mov rcx, qword [rsp + 0xa0]
mov rdx, rdi
mov word [rbx + 6], ax
call fcn.1400aeab0
jmp 0x1400cabbf
mov rcx, rdi
jmp 0x1400cabba
test rbx, rbx
je 0x1400cabbf
mov rcx, rbx
call fcn.140077120
mov eax, ebp
lock xadd dword [0x1402e68c4], eax
mov ecx, dword [rsp + 0x50]
mov rdx, qword [rsi + 0x4f0]
shl bpl, cl
mov rcx, qword [rsp + 0x88]
or byte [rcx + rdx], bpl
mov ecx, dword [rsi + 0x4f8]
cmp r13d, ecx
jae 0x1400cabfd
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cac0b
cmp r13d, ecx
jbe 0x1400cac12
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cac12
mov dword [rsi + 0x4f8], r13d
mov eax, dword [rsi + 0x4e4]
inc eax
cmp r13d, eax
jne 0x1400cb9f1
mov dword [rsi + 0x4e4], r13d
jmp 0x1400cb9f1
movzx r11d, byte [rsp + 0x290]
mov edi, dword [rsp + 0x4c]
cmp r11b, 0x40
jne 0x1400cac86
test r10b, 2
jne 0x1400cac86
test edi, edi
jne 0x1400cac86
lea r9, str.FSN_zero_for_MID_8.8x__but_flags_2.2x
lea rcx, [rsp + 0xe0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebp
call fcn.1401e5d20
test eax, eax
jns 0x1400cae58
mov byte [rsp + 0xe0], dil
jmp 0x1400cae58
cmp dword [rsp + 0x54], 0
movzx edx, byte [rsi + 0x6ca]
mov rbx, qword [rsi + 0x360]
movzx eax, ax
mov rcx, rdx
lea r14, [rax + rax*4]
mov qword [rsp + 0x68], r14
je 0x1400cacd6
mov rbx, qword [rbx + r14*8]
test rbx, rbx
je 0x1400cad05
xor eax, eax
cmp rdx, 1
jne 0x1400cacc0
cmp dword [rbx + 0x1c], ebp
jmp 0x1400cacc4
cmp word [rbx + 0x1c], bp
sete al
test eax, eax
jne 0x1400cad05
mov rbx, qword [rbx + 0x68]
test rbx, rbx
jne 0x1400cacb3
jmp 0x1400cad05
mov rbx, qword [rbx + r14*8 + 0x10]
test edx, edx
je 0x1400cad05
test rbx, rbx
je 0x1400cad05
xor eax, eax
cmp rdx, 1
jne 0x1400cacf1
cmp dword [rbx + 0x1c], ebp
jmp 0x1400cacf5
cmp word [rbx + 0x1c], bp
sete al
test eax, eax
jne 0x1400cad05
mov rbx, qword [rbx + 0x68]
test rbx, rbx
jne 0x1400cace4
movzx eax, r10b
and al, 3
mov byte [rsp + 0x44], al
cmp al, 3
je 0x1400cade1
test rbx, rbx
je 0x1400cad78
cmp dword [rsp + 0x54], 0
je 0x1400cad72
cmp ebp, dword [rbx + 0x1c]
je 0x1400cad35
mov dword [rsp + 0x20], ebp
lea r9, str.Reassembly_problem__MID_8.8x_
jmp 0x1400cad47
test byte [rbx + 3], 4
je 0x1400cad78
mov dword [rsp + 0x20], r13d
lea r9, str.All_fragments_of_a_user_message_must_be_ordered_or_unordered__TSN_8.8x_
lea rcx, [rsp + 0xe0]
or r8, 0xffffffffffffffff
mov edx, 0x100
call fcn.1401e5d20
test eax, eax
jns 0x1400cae58
mov byte [rsp + 0xe0], 0
jmp 0x1400cae58
test byte [rbx + 3], 4
je 0x1400cad3b
mov eax, dword [rsi + 0x584]
add eax, dword [rsi + 0x58c]
add eax, dword [rsi + 0x56c]
cmp eax, dword [0x1402e6a04]
jae 0x1400cad9f
cmp dword [rsi + 0x530], 0
jg 0x1400caf4a
mov rcx, qword [r15]
cmp dword [rcx + 0x15c], 0
jbe 0x1400caec6
bt r8d, 0x17
jae 0x1400cae80
prefetchw byte [r9 + 0x158]
mov eax, dword [r9 + 0x158]
mov ecx, eax
bts ecx, 0x19
lock cmpxchg dword [r9 + 0x158], ecx
test eax, eax
je 0x1400cadc2
jmp 0x1400caec6
test rbx, rbx
je 0x1400cad78
cmp dword [rsp + 0x54], 0
jne 0x1400cae1e
test dl, dl
jne 0x1400cae1e
mov ecx, dword [rbx + 0x2c]
lea eax, [rcx + 1]
cmp r13d, eax
jne 0x1400cae14
cmp byte [rbx + 0x8d], dl
jne 0x1400cae14
mov dword [rsp + 0x20], ecx
lea r9, str.Illegal_message_sequence__missing_end_for_MID:__8.8x
jmp 0x1400cad47
xor eax, eax
mov rbx, rax
jmp 0x1400cad78
lea r9, str.Duplicate_MID_8.8x_detected.
lea rcx, [rsp + 0xe0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov dword [rsp + 0x20], ebp
call fcn.1401e5d20
movzx ecx, byte [rsp + 0xe0]
test eax, eax
mov eax, 0
cmovs ecx, eax
mov byte [rsp + 0xe0], cl
lea rdx, [rsp + 0xe0]
mov ecx, reloc.WS2_32.dll_listen
call fcn.1400956e0
mov r8, rax
mov rax, qword [r15 + 8]
mov dword [rax + 0x3cc], 0x30000011
jmp 0x1400ca7c3
add rcx, 0x108
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [r15]
mov eax, 0x1bc
test word [rcx + 0x178], ax
je 0x1400caeac
lea rdx, [rcx + 0xc8]
call fcn.140072ff0
jmp 0x1400caeb9
add rcx, 0x108
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r10b, byte [rsp + 0x40]
mov r11b, byte [rsp + 0x290]
test r11b, r11b
jne 0x1400caf18
mov ecx, dword [rsi + 0x4ec]
cmp r13d, ecx
jae 0x1400caee5
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400caef3
cmp r13d, ecx
jbe 0x1400caf4a
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400caf4a
mov ecx, dword [rsi + 0x4f8]
cmp r13d, ecx
jae 0x1400caf11
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cb949
cmp r13d, ecx
jbe 0x1400caf4a
mov eax, r13d
jmp 0x1400caf3d
test rbx, rbx
je 0x1400cb949
mov ecx, dword [rbx + 0x28]
cmp edi, ecx
jae 0x1400caf39
mov eax, ecx
sub eax, edi
cmp eax, 0x80000000
ja 0x1400cb949
cmp edi, ecx
jbe 0x1400caf4a
mov eax, edi
sub eax, ecx
cmp eax, 0x80000000
jb 0x1400cb949
test r10b, 2
je 0x1400cb09a
cmp qword [rsi + 0x3a0], 0
jne 0x1400cb09a
test r10b, 4
jne 0x1400cb09a
mov r8b, byte [rsi + 0x6ca]
mov rax, qword [rsi + 0x360]
lea rdx, [rax + r14*8 + 0x20]
cmp r8b, 1
jne 0x1400cafa9
mov ecx, dword [rdx]
cmp ecx, ebp
jae 0x1400caf98
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cafdd
cmp ecx, ebp
jbe 0x1400cafa5
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
jb 0x1400cafdd
cmp ecx, ebp
jmp 0x1400cafd7
movzx ecx, word [rdx]
mov r9d, 0x8000
cmp cx, bp
jae 0x1400cafc6
movzx eax, bp
sub ax, cx
cmp ax, r9w
ja 0x1400cafdd
cmp cx, bp
jbe 0x1400cafd4
movzx eax, cx
sub ax, bp
cmp ax, r9w
jb 0x1400cafdd
cmp cx, bp
jne 0x1400cb09a
movzx ecx, word [rsp + 0x42]
test r8b, r8b
je 0x1400cb025
mov eax, dword [rdx]
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x30], ecx
lea rcx, [rsp + 0xe0]
lea r9, str.Delivered_MID_8.8x__got_TSN_8.8x__SID_4.4x__MID_8.8x
or r8, 0xffffffffffffffff
mov edx, 0x100
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], eax
call fcn.1401e5d20
test eax, eax
jns 0x1400cb072
mov byte [rsp + 0xe0], 0
jmp 0x1400cb072
movzx edx, word [rdx]
movzx eax, bp
lea r9, str.Delivered_SSN_4.4x__got_TSN_8.8x__SID_4.4x__SSN_4.4x
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], edx
lea rcx, [rsp + 0xe0]
or r8, 0xffffffffffffffff
mov edx, 0x100
call fcn.1401e5d20
movzx ecx, byte [rsp + 0xe0]
test eax, eax
mov eax, 0
cmovs ecx, eax
mov byte [rsp + 0xe0], cl
lea rdx, [rsp + 0xe0]
mov ecx, reloc.WS2_32.dll_listen
call fcn.1400956e0
mov r8, rax
mov rax, qword [r15 + 8]
mov dword [rax + 0x3cc], 0x30000012
jmp 0x1400ca7c3
cmp r11b, 0x40
jne 0x1400cb0a6
add r12d, 0xffffffec
jmp 0x1400cb0aa
add r12d, 0xfffffff0
mov r14d, dword [rsp + 0x288]
mov rdi, qword [rsp + 0x78]
mov edx, dword [rsp + 0x64]
mov ebp, 1
test r14d, r14d
jne 0x1400cb0ee
mov rcx, qword [rdi]
mov r9d, ebp
mov r8d, r12d
cmp r11b, 0x40
jne 0x1400cb0e1
add edx, 0x14
call fcn.140077430
mov rdi, rax
jmp 0x1400cb13d
add edx, 0x10
call fcn.140077430
mov rdi, rax
jmp 0x1400cb13d
mov rdi, qword [rdi]
mov rcx, rdi
cmp r11b, 0x40
jne 0x1400cb0ff
add edx, 0x14
jmp 0x1400cb102
add edx, 0x10
call fcn.140077b60
cmp qword [rdi], 0
jne 0x1400cb112
mov ecx, dword [rdi + 0x18]
jmp 0x1400cb12b
xor eax, eax
mov ecx, eax
mov rax, rdi
nop dword [rax]
add ecx, dword [rax + 0x18]
mov rax, qword [rax]
test rax, rax
jne 0x1400cb120
cmp ecx, r12d
jle 0x1400cb13d
mov edx, r12d
sub edx, ecx
mov rcx, rdi
call fcn.140077b60
test rdi, rdi
jne 0x1400cb14f
lock xadd dword [0x1402e68c8], ebp
jmp 0x1400cb9f1
test rbx, rbx
jne 0x1400cb27b
mov rcx, qword [0x1402e64a8]
call fcn.1401e3610
mov rbx, rax
test rax, rax
je 0x1400cb142
mov eax, ebp
lock xadd dword [0x1402e65a4], eax
mov eax, ebp
mov rcx, qword [rsp + 0x90]
lock xadd dword [rcx + 0x1e8], eax
xor edx, edx
mov r8d, 0x98
mov rcx, rbx
call fcn.1401e42d0
mov cx, word [rsp + 0x42]
mov edx, dword [rsp + 0x4c]
mov r9d, dword [rsp + 0x60]
mov word [rbx], cx
mov rcx, qword [rsp + 0x90]
mov dword [rbx + 0x28], edx
mov dword [rbx + 0x1c], r9d
lea rax, [rbx + 0x78]
mov qword [rbx + 0x80], rax
xor r11d, r11d
mov qword [rax], r11
movzx eax, byte [rsp + 0x40]
shl ax, 8
mov word [rbx + 2], ax
mov eax, dword [rsp + 0x58]
mov dword [rbx + 4], eax
mov eax, dword [rsi + 0x510]
mov dword [rbx + 0x2c], 0xffffffff
mov dword [rbx + 0x10], r13d
mov dword [rbx + 0x14], r13d
mov dword [rbx + 8], eax
mov eax, dword [r15 + 0x520]
mov qword [rbx + 0x30], rcx
mov qword [rbx + 0x38], r11
mov dword [rbx + 0x18], eax
mov qword [rbx + 0x50], r15
movzx eax, word [r15 + 0x7e0]
mov word [rbx + 0x88], ax
bt dword [r15 + 0x58], 9
jae 0x1400cb229
mov byte [rbx + 0x8c], bpl
mov r10b, byte [rsp + 0x44]
cmp r10b, 3
jne 0x1400cb272
mov qword [rbx + 0x38], rdi
mov qword [rbx + 0x40], r11
mov rcx, rdi
nop
mov eax, dword [rcx + 0x18]
add dword [rbx + 0x20], eax
cmp qword [rcx], r11
jne 0x1400cb24f
mov qword [rbx + 0x40], rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400cb240
mov byte [rbx + 0x8d], bpl
mov byte [rbx + 0x91], bpl
mov byte [rbx + 0x92], bpl
mov dword [rbx + 0x2c], edx
mov dword [rbx + 0x28], edx
mov dword [rsp + 0x80], ebp
jmp 0x1400cb288
mov r9d, dword [rsp + 0x60]
mov r10b, byte [rsp + 0x44]
xor r11d, r11d
cmp r10b, 3
jne 0x1400cb3b8
cmp qword [rsi + 0x3a0], 0
jne 0x1400cb3ae
cmp dword [rsp + 0x54], 0
je 0x1400cb2f0
mov rax, qword [rsi + 0x360]
mov rcx, qword [rsp + 0x68]
mov edx, r11d
lea r8, [rax + rcx*8]
cmp byte [rsi + 0x6ca], bpl
jne 0x1400cb2ce
mov eax, dword [r8 + 0x20]
inc eax
cmp eax, r9d
jmp 0x1400cb2db
movzx ecx, word [r8 + 0x20]
movzx eax, r9w
inc ecx
cmp ecx, eax
sete dl
test edx, edx
je 0x1400cb3ae
cmp qword [r8], 0
jne 0x1400cb3ae
mov ecx, dword [rsp + 0x50]
mov rdx, qword [rsi + 0x4f0]
mov eax, ebp
shl al, cl
mov rcx, qword [rsp + 0x88]
or byte [rcx + rdx], al
mov ecx, dword [rsi + 0x4f8]
cmp r13d, ecx
jae 0x1400cb324
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cb332
cmp r13d, ecx
jbe 0x1400cb339
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cb339
mov dword [rsi + 0x4f8], r13d
mov r9, qword [r15]
mov rcx, qword [r15 + 8]
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x28], r11d
add r9, 0xc8
mov r8, rbx
mov rdx, r15
mov dword [rsp + 0x20], ebp
call fcn.1400952d0
test byte [rsp + 0x40], 4
jne 0x1400cb377
mov rax, qword [rsi + 0x360]
mov rcx, qword [rsp + 0x68]
inc dword [rax + rcx*8 + 0x20]
mov eax, ebp
lock xadd dword [0x1402e67bc], eax
mov eax, dword [rsi + 0x4e4]
inc eax
cmp r13d, eax
jne 0x1400cb395
mov dword [rsi + 0x4e4], r13d
test r14d, r14d
je 0x1400cb6eb
mov rax, qword [rsp + 0x78]
xor r14d, r14d
mov qword [rax], r14
jmp 0x1400cb6ee
cmp r10b, 3
je 0x1400cb4c7
mov r8, qword [r15 + 0x320]
test r8, r8
jne 0x1400cb412
mov rcx, qword [0x1402e64a0]
call fcn.1401e3610
mov r8, rax
test rax, rax
je 0x1400cb3f4
mov ecx, ebp
lock xadd dword [0x1402e65a0], ecx
mov r10b, byte [rsp + 0x44]
xor r11d, r11d
mov qword [rax + 0x50], r11
mov byte [rax + 0x78], r11b
jmp 0x1400cb45f
lock xadd dword [0x1402e68c8], ebp
test r14d, r14d
jne 0x1400cb9f1
mov rcx, rdi
call fcn.140077120
jmp 0x1400cb9f1
mov rcx, qword [r8 + 0x58]
mov rax, qword [r8 + 0x60]
test rcx, rcx
je 0x1400cb425
mov qword [rcx + 0x60], rax
jmp 0x1400cb42c
mov qword [r15 + 0x328], rax
mov rax, qword [r8 + 0x58]
mov rcx, qword [r8 + 0x60]
mov qword [rcx], rax
or rax, 0xffffffffffffffff
lock xadd dword [0x1402e65b8], eax
mov byte [r8 + 0x78], 0
mov eax, ebp
lock xadd dword [0x1402e6930], eax
mov eax, 0xffff
add word [r15 + 0x6fe], ax
mov eax, dword [rsp + 0x4c]
mov r9b, byte [rsp + 0x40]
mov rcx, qword [rsp + 0x90]
mov dword [r8 + 0x24], eax
mov eax, dword [rsp + 0x60]
mov dword [r8], r13d
mov dword [r8 + 4], eax
mov ax, word [rsp + 0x42]
mov byte [r8 + 0x7c], 0
mov word [r8 + 8], ax
mov eax, dword [rsp + 0x58]
mov dword [r8 + 0xc], eax
mov eax, dword [r15 + 0x568]
mov byte [r8 + 0x28], 0
mov dword [r8 + 0x10], eax
mov byte [r8 + 0x29], r9b
mov qword [r8 + 0x30], rsi
mov eax, ebp
mov word [r8 + 0x70], r12w
mov qword [r8 + 0x50], rcx
lock xadd dword [rcx + 0x1e8], eax
mov qword [r8 + 0x40], rdi
jmp 0x1400cb4d4
mov r8, qword [rsp + 0x98]
mov r9b, byte [rsp + 0x40]
mov ecx, dword [rsp + 0x50]
mov eax, ebp
shl al, cl
cmp dword [0x1402e6a80], 0
mov rcx, qword [rsp + 0x88]
jne 0x1400cb528
mov rdx, qword [rsi + 0x4f0]
or byte [rcx + rdx], al
mov ecx, dword [rsi + 0x4f8]
cmp r13d, ecx
jae 0x1400cb511
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cb51f
cmp r13d, ecx
jbe 0x1400cb561
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cb561
mov dword [rsi + 0x4f8], r13d
jmp 0x1400cb561
mov rdx, qword [rsi + 0x370]
or byte [rcx + rdx], al
mov ecx, dword [rsi + 0x4ec]
cmp r13d, ecx
jae 0x1400cb54c
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cb55a
cmp r13d, ecx
jbe 0x1400cb561
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cb561
mov dword [rsi + 0x4ec], r13d
cmp r10b, 3
jne 0x1400cb6ba
mov rax, qword [rsi + 0x3a0]
test rax, rax
je 0x1400cb63a
mov ecx, dword [rax + 0x14]
cmp r13d, ecx
jae 0x1400cb592
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cb5a8
cmp r13d, ecx
jbe 0x1400cb63a
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cb63a
mov rdx, qword [rsi + 0x3b0]
test rdx, rdx
je 0x1400cb5f1
mov r8d, dword [rbx + 0x10]
nop dword [rax + rax]
mov ecx, dword [rdx + 0x10]
mov r9, qword [rdx + 0x58]
cmp r8d, ecx
jae 0x1400cb5db
mov eax, ecx
sub eax, r8d
cmp eax, 0x80000000
ja 0x1400cb5e9
cmp r8d, ecx
jbe 0x1400cb61a
mov eax, r8d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cb61a
mov rdx, r9
test r9, r9
jne 0x1400cb5c0
mov qword [rbx + 0x58], r11
mov rax, qword [rsi + 0x3b8]
lea rcx, [rbx + 0x58]
mov qword [rbx + 0x60], rax
mov rax, qword [rsi + 0x3b8]
mov qword [rax], rbx
mov qword [rsi + 0x3b8], rcx
jmp 0x1400cb381
mov rax, qword [rdx + 0x60]
mov qword [rbx + 0x58], rdx
lea rcx, [rbx + 0x58]
mov qword [rbx + 0x60], rax
mov rax, qword [rdx + 0x60]
mov qword [rax], rbx
mov qword [rdx + 0x60], rcx
jmp 0x1400cb381
test r9b, 4
je 0x1400cb677
mov edx, dword [rbx + 0x10]
mov rcx, rsi
call fcn.1400c7b00
mov r9, qword [r15]
mov rcx, qword [r15 + 8]
xor eax, eax
add r9, 0xc8
mov r8, rbx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], eax
mov rdx, r15
mov dword [rsp + 0x20], ebp
call fcn.1400952d0
jmp 0x1400cb381
mov rdi, qword [rsp + 0x70]
lea rax, [rsp + 0x48]
mov r8, rbx
mov rdx, rsi
mov rcx, r15
mov r9, rdi
mov qword [rsp + 0x20], rax
call fcn.1400c8550
cmp dword [rdi], 0
je 0x1400cb381
test r14d, r14d
je 0x1400cb9f1
mov rax, qword [rsp + 0x78]
mov qword [rax], 0
jmp 0x1400cb9f1
mov eax, dword [rsp + 0x80]
mov rdi, qword [rsp + 0x70]
mov r9, r8
mov dword [rsp + 0x30], r13d
mov r8, rbx
mov rdx, rsi
mov rcx, r15
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x48], ebp
mov dword [rsp + 0x20], eax
call fcn.1400c9f10
jmp 0x1400cb697
xor r14d, r14d
cmp dword [rsp + 0x54], 0
mov eax, ebp
je 0x1400cb701
lock xadd dword [0x1402e676c], eax
jmp 0x1400cb709
lock xadd dword [0x1402e6770], eax
mov eax, ebp
lock xadd dword [0x1402e6794], eax
cmp dword [rsp + 0x48], 0
je 0x1400cb73d
mov rax, qword [rsi + 0x360]
mov rcx, qword [rsp + 0x68]
xor r9d, r9d
lea r8, [rax + rcx*8]
mov rdx, rsi
mov rcx, r15
call fcn.1400c96e0
mov dword [rsp + 0x48], r14d
mov rbx, qword [rsi + 0x3a0]
test rbx, rbx
je 0x1400cb942
mov ecx, dword [rsi + 0x4e4]
mov edx, dword [rbx + 0x14]
cmp ecx, edx
jae 0x1400cb767
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cb77c
cmp ecx, edx
jbe 0x1400cb774
mov eax, ecx
sub eax, edx
cmp eax, 0x80000000
jb 0x1400cb77c
cmp ecx, edx
jne 0x1400cb942
mov edx, dword [rbx + 0x18]
lea r8, [rbx + 0x1c]
mov rcx, r15
call fcn.14009f2a0
mov r11, qword [rbx]
mov rax, qword [rbx + 8]
test r11, r11
je 0x1400cb79d
mov qword [r11 + 8], rax
jmp 0x1400cb7a4
mov qword [rsi + 0x3a8], rax
mov rdx, qword [rbx + 8]
mov rax, qword [rbx]
mov r8d, ebp
mov qword [rdx], rax
mov rdx, rbx
mov rcx, r15
call fcn.1400b5620
mov rcx, rbx
call fcn.1401e36c8
mov r12, qword [rsi + 0x3a0]
mov r8, qword [rsi + 0x3b0]
test r12, r12
jne 0x1400cb877
test r8, r8
je 0x1400cb942
mov r12, qword [rsp + 0x70]
nop dword [rax]
mov rbx, qword [r8 + 0x58]
mov rax, qword [r8 + 0x60]
test rbx, rbx
je 0x1400cb803
mov qword [rbx + 0x60], rax
jmp 0x1400cb80a
mov qword [rsi + 0x3b8], rax
mov rcx, qword [r8 + 0x60]
mov rax, qword [r8 + 0x58]
mov r9, r12
mov qword [rcx], rax
movzx eax, word [r8]
mov rdx, rsi
lea rcx, [rax + rax*4]
mov rax, qword [rsi + 0x360]
lea rdi, [rax + rcx*8]
lea rax, [rsp + 0x48]
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.1400c8550
cmp dword [r12], 0
jne 0x1400cb9f1
cmp dword [rsp + 0x48], 0
je 0x1400cb868
xor r9d, r9d
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call fcn.1400c96e0
mov dword [rsp + 0x48], r14d
mov r8, rbx
test rbx, rbx
jne 0x1400cb7f0
mov eax, ebp
jmp 0x1400cb9f3
test r8, r8
je 0x1400cb942
mov r13, qword [rsp + 0x70]
nop word [rax + rax]
mov ecx, dword [r8 + 0x10]
mov edx, dword [r12 + 0x14]
mov rbx, qword [r8 + 0x58]
cmp ecx, edx
jae 0x1400cb8b2
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cb942
cmp ecx, edx
jbe 0x1400cb8c2
sub ecx, edx
cmp ecx, 0x80000000
jb 0x1400cb942
mov rax, qword [r8 + 0x60]
test rbx, rbx
je 0x1400cb8d1
mov qword [rbx + 0x60], rax
jmp 0x1400cb8d8
mov qword [rsi + 0x3b8], rax
mov rcx, qword [r8 + 0x60]
mov rax, qword [r8 + 0x58]
mov r9, r13
mov qword [rcx], rax
movzx eax, word [r8]
mov rdx, rsi
lea rcx, [rax + rax*4]
mov rax, qword [rsi + 0x360]
lea rdi, [rax + rcx*8]
lea rax, [rsp + 0x48]
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.1400c8550
cmp dword [r13], 0
jne 0x1400cb9f1
cmp dword [rsp + 0x48], 0
je 0x1400cb936
xor r9d, r9d
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call fcn.1400c96e0
mov dword [rsp + 0x48], r14d
mov r8, rbx
test rbx, rbx
jne 0x1400cb890
mov eax, ebp
jmp 0x1400cb9f3
mov rdx, rsi
mov rcx, r15
call fcn.1400c7930
mov ebp, 1
mov dword [rsi + 0x530], eax
mov eax, dword [rsi + 0x584]
add eax, dword [rsi + 0x58c]
add eax, dword [rsi + 0x56c]
cmp eax, dword [0x1402e6a04]
mov eax, ebp
jb 0x1400cb98f
lock xadd dword [0x1402e68f0], eax
mov rax, qword [rsp + 0xa8]
mov dword [rax], ebp
jmp 0x1400cb9f1
lock xadd dword [0x1402e68f4], eax
mov rax, qword [rsp + 0xa8]
mov dword [rax], ebp
jmp 0x1400cb9f1
lea rdx, [0x14028b986]
mov ecx, 4
call fcn.1400956e0
mov dword [rsp + 0x20], 0
mov r8, rax
jmp 0x1400ca7c9
mov ebp, 1
lock xadd dword [0x1402e6798], ebp
mov eax, dword [rsi + 0x5b4]
cmp eax, 0x14
jae 0x1400cb9ea
mov dword [rsi + rax*4 + 0x5b8], r13d
inc dword [rsi + 0x5b4]
mov byte [rsi + 0x6aa], 1
xor eax, eax
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.1401e42a0
add rsp, 0x1f8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret