Function at 0x1400cca00
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 [0x1402e0068]
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 0x1400ccbba
mov r14d, reloc.WS2_32.dll_sendto
lea r13, [rsp + 0xc0]
mov r12d, r14d
test eax, eax
js 0x1400ccad6
test rbp, rbp
je 0x1400ccad6
nop dword [rax]
test ecx, ecx
jle 0x1400ccb2c
mov eax, dword [rbp + 0x18]
cmp ecx, eax
jl 0x1400ccb2c
mov rbp, qword [rbp]
sub ecx, eax
test rbp, rbp
jne 0x1400ccac0
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 0x1400ccba6
xor eax, eax
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x4c], eax
jmp 0x1400ccc39
test rbp, rbp
je 0x1400ccad6
mov eax, dword [rbp + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x1400ccb44
movsxd rbx, ecx
add rbx, qword [rbp + 0x10]
jmp 0x1400ccad9
test r12d, r12d
jle 0x1400ccb80
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.1401e75a0
mov rbp, qword [rbp]
xor edx, edx
sub r12d, edi
add r13, rbx
mov ecx, edx
test rbp, rbp
jne 0x1400ccb44
jmp 0x1400ccb85
test rbp, rbp
jne 0x1400ccb94
test r12d, r12d
jle 0x1400ccb94
mov rdi, qword [rsp + 0x58]
jmp 0x1400ccad6
mov rdi, qword [rsp + 0x58]
lea rbx, [rsp + 0xc0]
jmp 0x1400ccad9
call qword [sym.imp.WS2_32.dll_ntohl]
mov dword [rsp + 0x58], 0xffffffff
mov dword [rsp + 0x4c], eax
jmp 0x1400ccc34
mov r14d, reloc.WS2_32.dll_recv
lea r13, [rsp + 0xb0]
mov r12d, r14d
test eax, eax
js 0x1400ccbf2
test rbp, rbp
je 0x1400ccbf2
test ecx, ecx
jle 0x1400ccc89
mov eax, dword [rbp + 0x18]
cmp ecx, eax
jl 0x1400ccc89
mov rbp, qword [rbp]
sub ecx, eax
test rbp, rbp
jne 0x1400ccbd4
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 0x1400ccd0a
mov ecx, r13d
call fcn.140097e40
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.140096920
mov rdi, qword [rsp + 0x70]
mov ebp, 1
mov dword [rdi], ebp
jmp 0x1400cde91
test rbp, rbp
je 0x1400ccbf2
mov eax, dword [rbp + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x1400ccca8
movsxd rbx, ecx
add rbx, qword [rbp + 0x10]
jmp 0x1400ccbf5
test r12d, r12d
jle 0x1400ccce4
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.1401e75a0
mov rbp, qword [rbp]
xor edx, edx
sub r12d, edi
add r13, rbx
mov ecx, edx
test rbp, rbp
jne 0x1400ccca8
jmp 0x1400ccce9
test rbp, rbp
jne 0x1400cccf8
test r12d, r12d
jle 0x1400cccf8
mov rdi, qword [rsp + 0x58]
jmp 0x1400ccbf2
mov rdi, qword [rsp + 0x58]
lea rbx, [rsp + 0xb0]
jmp 0x1400ccbf5
test r10b, 8
je 0x1400ccd17
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 0x1400cde91
mov ecx, dword [rsi + 0x4e4]
cmp ecx, r13d
jae 0x1400ccd50
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cde64
cmp ecx, r13d
jbe 0x1400ccd62
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
jb 0x1400cde64
cmp ecx, r13d
je 0x1400cde64
mov eax, dword [rsi + 0x4e8]
mov r8d, r13d
sub r8d, eax
mov dword [rsp + 0x50], r8d
cmp r8d, 0x1000
jae 0x1400cde91
movzx eax, word [rsi + 0x698]
shl eax, 3
cmp r8d, eax
jb 0x1400ccdb5
mov edx, r8d
mov rcx, rsi
call fcn.14008ffb0
test eax, eax
jne 0x1400cde91
mov r10b, byte [rsp + 0x40]
mov r8d, dword [rsp + 0x50]
mov ecx, dword [rdi]
cmp r13d, ecx
jae 0x1400ccdcb
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400ccdd9
cmp r13d, ecx
jbe 0x1400ccddc
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400ccddc
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 0x1400cde64
mov rax, qword [rsi + 0x4f0]
movzx edx, byte [r9 + rax]
shr dl, cl
test dl, 1
jne 0x1400cde64
mov r9, qword [r15 + 8]
mov r8d, dword [r9 + 0x158]
bt r8d, 0x1c
jb 0x1400cde43
bt r8d, 0x1d
jb 0x1400cde43
bt dword [r15 + 0x58], 8
jb 0x1400cde43
movzx eax, word [rsp + 0x42]
cmp ax, word [rsi + 0x688]
jb 0x1400cd0cf
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 [0x1402e8788]
call fcn.1401e6440
cmp r12d, 0xb0
mov rdi, rax
jle 0x1400ccf2d
xor ecx, ecx
test rax, rax
je 0x1400ccedd
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 [0x1402e8790]
call fcn.1401e6440
mov rcx, qword [0x1402e8798]
mov rbx, rax
call fcn.1401e6440
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 0x1400ccfa8
test r14b, 2
je 0x1400ccf7b
test rax, rax
je 0x1400ccf74
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 0x1400ccfa1
test rax, rax
je 0x1400ccf9c
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 0x1400cd052
cmp eax, 8
jl 0x1400cd04d
sub r12d, eax
test r15, r15
je 0x1400ccfc7
mov qword [r15], rdi
jmp 0x1400ccfcf
mov rbx, rdi
mov qword [rsp + 0x68], rbx
and r14d, 0xfffffffd
mov r15, rdi
test r12d, r12d
jg 0x1400cce80
test r14b, 4
je 0x1400ccff0
or dword [rdi + 0x1c], 4
nop dword [rax]
test rbx, rbx
je 0x1400cd05f
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.1400b0f40
jmp 0x1400cd05f
mov rcx, rdi
jmp 0x1400cd05a
test rbx, rbx
je 0x1400cd05f
mov rcx, rbx
call fcn.1400795b0
mov eax, ebp
lock xadd dword [0x1402e8504], 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 0x1400cd09d
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cd0ab
cmp r13d, ecx
jbe 0x1400cd0b2
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cd0b2
mov dword [rsi + 0x4f8], r13d
mov eax, dword [rsi + 0x4e4]
inc eax
cmp r13d, eax
jne 0x1400cde91
mov dword [rsi + 0x4e4], r13d
jmp 0x1400cde91
movzx r11d, byte [rsp + 0x290]
mov edi, dword [rsp + 0x4c]
cmp r11b, 0x40
jne 0x1400cd126
test r10b, 2
jne 0x1400cd126
test edi, edi
jne 0x1400cd126
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.1401e8b60
test eax, eax
jns 0x1400cd2f8
mov byte [rsp + 0xe0], dil
jmp 0x1400cd2f8
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 0x1400cd176
mov rbx, qword [rbx + r14*8]
test rbx, rbx
je 0x1400cd1a5
xor eax, eax
cmp rdx, 1
jne 0x1400cd160
cmp dword [rbx + 0x1c], ebp
jmp 0x1400cd164
cmp word [rbx + 0x1c], bp
sete al
test eax, eax
jne 0x1400cd1a5
mov rbx, qword [rbx + 0x68]
test rbx, rbx
jne 0x1400cd153
jmp 0x1400cd1a5
mov rbx, qword [rbx + r14*8 + 0x10]
test edx, edx
je 0x1400cd1a5
test rbx, rbx
je 0x1400cd1a5
xor eax, eax
cmp rdx, 1
jne 0x1400cd191
cmp dword [rbx + 0x1c], ebp
jmp 0x1400cd195
cmp word [rbx + 0x1c], bp
sete al
test eax, eax
jne 0x1400cd1a5
mov rbx, qword [rbx + 0x68]
test rbx, rbx
jne 0x1400cd184
movzx eax, r10b
and al, 3
mov byte [rsp + 0x44], al
cmp al, 3
je 0x1400cd281
test rbx, rbx
je 0x1400cd218
cmp dword [rsp + 0x54], 0
je 0x1400cd212
cmp ebp, dword [rbx + 0x1c]
je 0x1400cd1d5
mov dword [rsp + 0x20], ebp
lea r9, str.Reassembly_problem__MID_8.8x_
jmp 0x1400cd1e7
test byte [rbx + 3], 4
je 0x1400cd218
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.1401e8b60
test eax, eax
jns 0x1400cd2f8
mov byte [rsp + 0xe0], 0
jmp 0x1400cd2f8
test byte [rbx + 3], 4
je 0x1400cd1db
mov eax, dword [rsi + 0x584]
add eax, dword [rsi + 0x58c]
add eax, dword [rsi + 0x56c]
cmp eax, dword [0x1402e8644]
jae 0x1400cd23f
cmp dword [rsi + 0x530], 0
jg 0x1400cd3ea
mov rcx, qword [r15]
cmp dword [rcx + 0x15c], 0
jbe 0x1400cd366
bt r8d, 0x17
jae 0x1400cd320
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 0x1400cd262
jmp 0x1400cd366
test rbx, rbx
je 0x1400cd218
cmp dword [rsp + 0x54], 0
jne 0x1400cd2be
test dl, dl
jne 0x1400cd2be
mov ecx, dword [rbx + 0x2c]
lea eax, [rcx + 1]
cmp r13d, eax
jne 0x1400cd2b4
cmp byte [rbx + 0x8d], dl
jne 0x1400cd2b4
mov dword [rsp + 0x20], ecx
lea r9, str.Illegal_message_sequence__missing_end_for_MID:__8.8x
jmp 0x1400cd1e7
xor eax, eax
mov rbx, rax
jmp 0x1400cd218
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.1401e8b60
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.140097b70
mov r8, rax
mov rax, qword [r15 + 8]
mov dword [rax + 0x3cc], 0x30000011
jmp 0x1400ccc63
add rcx, 0x108
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [r15]
mov eax, 0x1bc
test word [rcx + 0x178], ax
je 0x1400cd34c
lea rdx, [rcx + 0xc8]
call fcn.140075480
jmp 0x1400cd359
add rcx, 0x108
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r10b, byte [rsp + 0x40]
mov r11b, byte [rsp + 0x290]
test r11b, r11b
jne 0x1400cd3b8
mov ecx, dword [rsi + 0x4ec]
cmp r13d, ecx
jae 0x1400cd385
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cd393
cmp r13d, ecx
jbe 0x1400cd3ea
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cd3ea
mov ecx, dword [rsi + 0x4f8]
cmp r13d, ecx
jae 0x1400cd3b1
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cdde9
cmp r13d, ecx
jbe 0x1400cd3ea
mov eax, r13d
jmp 0x1400cd3dd
test rbx, rbx
je 0x1400cdde9
mov ecx, dword [rbx + 0x28]
cmp edi, ecx
jae 0x1400cd3d9
mov eax, ecx
sub eax, edi
cmp eax, 0x80000000
ja 0x1400cdde9
cmp edi, ecx
jbe 0x1400cd3ea
mov eax, edi
sub eax, ecx
cmp eax, 0x80000000
jb 0x1400cdde9
test r10b, 2
je 0x1400cd53a
cmp qword [rsi + 0x3a0], 0
jne 0x1400cd53a
test r10b, 4
jne 0x1400cd53a
mov r8b, byte [rsi + 0x6ca]
mov rax, qword [rsi + 0x360]
lea rdx, [rax + r14*8 + 0x20]
cmp r8b, 1
jne 0x1400cd449
mov ecx, dword [rdx]
cmp ecx, ebp
jae 0x1400cd438
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cd47d
cmp ecx, ebp
jbe 0x1400cd445
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
jb 0x1400cd47d
cmp ecx, ebp
jmp 0x1400cd477
movzx ecx, word [rdx]
mov r9d, 0x8000
cmp cx, bp
jae 0x1400cd466
movzx eax, bp
sub ax, cx
cmp ax, r9w
ja 0x1400cd47d
cmp cx, bp
jbe 0x1400cd474
movzx eax, cx
sub ax, bp
cmp ax, r9w
jb 0x1400cd47d
cmp cx, bp
jne 0x1400cd53a
movzx ecx, word [rsp + 0x42]
test r8b, r8b
je 0x1400cd4c5
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.1401e8b60
test eax, eax
jns 0x1400cd512
mov byte [rsp + 0xe0], 0
jmp 0x1400cd512
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.1401e8b60
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.140097b70
mov r8, rax
mov rax, qword [r15 + 8]
mov dword [rax + 0x3cc], 0x30000012
jmp 0x1400ccc63
cmp r11b, 0x40
jne 0x1400cd546
add r12d, 0xffffffec
jmp 0x1400cd54a
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 0x1400cd58e
mov rcx, qword [rdi]
mov r9d, ebp
mov r8d, r12d
cmp r11b, 0x40
jne 0x1400cd581
add edx, 0x14
call fcn.1400798c0
mov rdi, rax
jmp 0x1400cd5dd
add edx, 0x10
call fcn.1400798c0
mov rdi, rax
jmp 0x1400cd5dd
mov rdi, qword [rdi]
mov rcx, rdi
cmp r11b, 0x40
jne 0x1400cd59f
add edx, 0x14
jmp 0x1400cd5a2
add edx, 0x10
call fcn.140079ff0
cmp qword [rdi], 0
jne 0x1400cd5b2
mov ecx, dword [rdi + 0x18]
jmp 0x1400cd5cb
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 0x1400cd5c0
cmp ecx, r12d
jle 0x1400cd5dd
mov edx, r12d
sub edx, ecx
mov rcx, rdi
call fcn.140079ff0
test rdi, rdi
jne 0x1400cd5ef
lock xadd dword [0x1402e8508], ebp
jmp 0x1400cde91
test rbx, rbx
jne 0x1400cd71b
mov rcx, qword [0x1402e80e8]
call fcn.1401e6440
mov rbx, rax
test rax, rax
je 0x1400cd5e2
mov eax, ebp
lock xadd dword [0x1402e81e4], 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.1401e6750
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 0x1400cd6c9
mov byte [rbx + 0x8c], bpl
mov r10b, byte [rsp + 0x44]
cmp r10b, 3
jne 0x1400cd712
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 0x1400cd6ef
mov qword [rbx + 0x40], rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x1400cd6e0
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 0x1400cd728
mov r9d, dword [rsp + 0x60]
mov r10b, byte [rsp + 0x44]
xor r11d, r11d
cmp r10b, 3
jne 0x1400cd858
cmp qword [rsi + 0x3a0], 0
jne 0x1400cd84e
cmp dword [rsp + 0x54], 0
je 0x1400cd790
mov rax, qword [rsi + 0x360]
mov rcx, qword [rsp + 0x68]
mov edx, r11d
lea r8, [rax + rcx*8]
cmp byte [rsi + 0x6ca], bpl
jne 0x1400cd76e
mov eax, dword [r8 + 0x20]
inc eax
cmp eax, r9d
jmp 0x1400cd77b
movzx ecx, word [r8 + 0x20]
movzx eax, r9w
inc ecx
cmp ecx, eax
sete dl
test edx, edx
je 0x1400cd84e
cmp qword [r8], 0
jne 0x1400cd84e
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 0x1400cd7c4
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cd7d2
cmp r13d, ecx
jbe 0x1400cd7d9
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cd7d9
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.140097760
test byte [rsp + 0x40], 4
jne 0x1400cd817
mov rax, qword [rsi + 0x360]
mov rcx, qword [rsp + 0x68]
inc dword [rax + rcx*8 + 0x20]
mov eax, ebp
lock xadd dword [0x1402e83fc], eax
mov eax, dword [rsi + 0x4e4]
inc eax
cmp r13d, eax
jne 0x1400cd835
mov dword [rsi + 0x4e4], r13d
test r14d, r14d
je 0x1400cdb8b
mov rax, qword [rsp + 0x78]
xor r14d, r14d
mov qword [rax], r14
jmp 0x1400cdb8e
cmp r10b, 3
je 0x1400cd967
mov r8, qword [r15 + 0x320]
test r8, r8
jne 0x1400cd8b2
mov rcx, qword [0x1402e80e0]
call fcn.1401e6440
mov r8, rax
test rax, rax
je 0x1400cd894
mov ecx, ebp
lock xadd dword [0x1402e81e0], ecx
mov r10b, byte [rsp + 0x44]
xor r11d, r11d
mov qword [rax + 0x50], r11
mov byte [rax + 0x78], r11b
jmp 0x1400cd8ff
lock xadd dword [0x1402e8508], ebp
test r14d, r14d
jne 0x1400cde91
mov rcx, rdi
call fcn.1400795b0
jmp 0x1400cde91
mov rcx, qword [r8 + 0x58]
mov rax, qword [r8 + 0x60]
test rcx, rcx
je 0x1400cd8c5
mov qword [rcx + 0x60], rax
jmp 0x1400cd8cc
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 [0x1402e81f8], eax
mov byte [r8 + 0x78], 0
mov eax, ebp
lock xadd dword [0x1402e8570], 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 0x1400cd974
mov r8, qword [rsp + 0x98]
mov r9b, byte [rsp + 0x40]
mov ecx, dword [rsp + 0x50]
mov eax, ebp
shl al, cl
cmp dword [0x1402e86c0], 0
mov rcx, qword [rsp + 0x88]
jne 0x1400cd9c8
mov rdx, qword [rsi + 0x4f0]
or byte [rcx + rdx], al
mov ecx, dword [rsi + 0x4f8]
cmp r13d, ecx
jae 0x1400cd9b1
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cd9bf
cmp r13d, ecx
jbe 0x1400cda01
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cda01
mov dword [rsi + 0x4f8], r13d
jmp 0x1400cda01
mov rdx, qword [rsi + 0x370]
or byte [rcx + rdx], al
mov ecx, dword [rsi + 0x4ec]
cmp r13d, ecx
jae 0x1400cd9ec
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cd9fa
cmp r13d, ecx
jbe 0x1400cda01
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cda01
mov dword [rsi + 0x4ec], r13d
cmp r10b, 3
jne 0x1400cdb5a
mov rax, qword [rsi + 0x3a0]
test rax, rax
je 0x1400cdada
mov ecx, dword [rax + 0x14]
cmp r13d, ecx
jae 0x1400cda32
mov eax, ecx
sub eax, r13d
cmp eax, 0x80000000
ja 0x1400cda48
cmp r13d, ecx
jbe 0x1400cdada
mov eax, r13d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cdada
mov rdx, qword [rsi + 0x3b0]
test rdx, rdx
je 0x1400cda91
mov r8d, dword [rbx + 0x10]
nop dword [rax + rax]
mov ecx, dword [rdx + 0x10]
mov r9, qword [rdx + 0x58]
cmp r8d, ecx
jae 0x1400cda7b
mov eax, ecx
sub eax, r8d
cmp eax, 0x80000000
ja 0x1400cda89
cmp r8d, ecx
jbe 0x1400cdaba
mov eax, r8d
sub eax, ecx
cmp eax, 0x80000000
jae 0x1400cdaba
mov rdx, r9
test r9, r9
jne 0x1400cda60
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 0x1400cd821
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 0x1400cd821
test r9b, 4
je 0x1400cdb17
mov edx, dword [rbx + 0x10]
mov rcx, rsi
call fcn.1400c9fa0
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.140097760
jmp 0x1400cd821
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.1400ca9f0
cmp dword [rdi], 0
je 0x1400cd821
test r14d, r14d
je 0x1400cde91
mov rax, qword [rsp + 0x78]
mov qword [rax], 0
jmp 0x1400cde91
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.1400cc3b0
jmp 0x1400cdb37
xor r14d, r14d
cmp dword [rsp + 0x54], 0
mov eax, ebp
je 0x1400cdba1
lock xadd dword [0x1402e83ac], eax
jmp 0x1400cdba9
lock xadd dword [0x1402e83b0], eax
mov eax, ebp
lock xadd dword [0x1402e83d4], eax
cmp dword [rsp + 0x48], 0
je 0x1400cdbdd
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.1400cbb80
mov dword [rsp + 0x48], r14d
mov rbx, qword [rsi + 0x3a0]
test rbx, rbx
je 0x1400cdde2
mov ecx, dword [rsi + 0x4e4]
mov edx, dword [rbx + 0x14]
cmp ecx, edx
jae 0x1400cdc07
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cdc1c
cmp ecx, edx
jbe 0x1400cdc14
mov eax, ecx
sub eax, edx
cmp eax, 0x80000000
jb 0x1400cdc1c
cmp ecx, edx
jne 0x1400cdde2
mov edx, dword [rbx + 0x18]
lea r8, [rbx + 0x1c]
mov rcx, r15
call fcn.1400a1730
mov r11, qword [rbx]
mov rax, qword [rbx + 8]
test r11, r11
je 0x1400cdc3d
mov qword [r11 + 8], rax
jmp 0x1400cdc44
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.1400b7ab0
mov rcx, rbx
call fcn.1401e64f8
mov r12, qword [rsi + 0x3a0]
mov r8, qword [rsi + 0x3b0]
test r12, r12
jne 0x1400cdd17
test r8, r8
je 0x1400cdde2
mov r12, qword [rsp + 0x70]
nop dword [rax]
mov rbx, qword [r8 + 0x58]
mov rax, qword [r8 + 0x60]
test rbx, rbx
je 0x1400cdca3
mov qword [rbx + 0x60], rax
jmp 0x1400cdcaa
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.1400ca9f0
cmp dword [r12], 0
jne 0x1400cde91
cmp dword [rsp + 0x48], 0
je 0x1400cdd08
xor r9d, r9d
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call fcn.1400cbb80
mov dword [rsp + 0x48], r14d
mov r8, rbx
test rbx, rbx
jne 0x1400cdc90
mov eax, ebp
jmp 0x1400cde93
test r8, r8
je 0x1400cdde2
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 0x1400cdd52
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cdde2
cmp ecx, edx
jbe 0x1400cdd62
sub ecx, edx
cmp ecx, 0x80000000
jb 0x1400cdde2
mov rax, qword [r8 + 0x60]
test rbx, rbx
je 0x1400cdd71
mov qword [rbx + 0x60], rax
jmp 0x1400cdd78
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.1400ca9f0
cmp dword [r13], 0
jne 0x1400cde91
cmp dword [rsp + 0x48], 0
je 0x1400cddd6
xor r9d, r9d
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call fcn.1400cbb80
mov dword [rsp + 0x48], r14d
mov r8, rbx
test rbx, rbx
jne 0x1400cdd30
mov eax, ebp
jmp 0x1400cde93
mov rdx, rsi
mov rcx, r15
call fcn.1400c9dd0
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 [0x1402e8644]
mov eax, ebp
jb 0x1400cde2f
lock xadd dword [0x1402e8530], eax
mov rax, qword [rsp + 0xa8]
mov dword [rax], ebp
jmp 0x1400cde91
lock xadd dword [0x1402e8534], eax
mov rax, qword [rsp + 0xa8]
mov dword [rax], ebp
jmp 0x1400cde91
lea rdx, [0x14028e586]
mov ecx, 4
call fcn.140097b70
mov dword [rsp + 0x20], 0
mov r8, rax
jmp 0x1400ccc69
mov ebp, 1
lock xadd dword [0x1402e83d8], ebp
mov eax, dword [rsi + 0x5b4]
cmp eax, 0x14
jae 0x1400cde8a
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.1401e6720
add rsp, 0x1f8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret