Function at 0x140053d80
Capabilities:
Move file

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x290]
sub rsp, 0x390
mov rax, qword [0x1400f5608]
xor rax, rsp
mov qword [rbp + 0x280], rax
mov ebx, edx
mov r15, rcx
xor esi, esi
mov dword [rsp + 0x20], esi
call fcn.14003b6d0
mov qword [rsp + 0x48], rax
lea rdi, [0x1400c7098]
mov qword [rbp + 0x150], rdi
mov qword [rbp + 0x1e0], rsi
mov qword [rbp + 0x208], rsi
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x210], xmm0
lea r14, vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x1d8], r14
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x158]
lea rcx, [rbp + 0x150]
call fcn.14002aee0
nop
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea r13, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx + 0x150], r13
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0x14c], edx
lea rcx, [rbp + 0x158]
call fcn.140018780
lea r12, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + 0x158], r12
mov qword [rbp + 0x1c0], rsi
mov dword [rbp + 0x1c8], 4
mov rdx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x140053e86
mov rdx, qword [r15]
mov r8, qword [r15 + 0x10]
lea rcx, [rbp + 0x150]
call fcn.14000e6f0
lea rdx, [0x1400c2730]
mov rcx, rax
call fcn.14000e1c0
mov rcx, rax
mov edx, ebx
call fcn.14004ee60
nop
mov qword [rbp + 0x240], rsi
mov qword [rbp + 0x250], rsi
mov r9d, send
mov qword [rbp + 0x258], r9
mov byte [rbp + 0x240], 0
mov dword [rsp + 0x20], 5
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov ecx, dword [rbp + 0x1c8]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x140053f1d
mov rax, qword [rbp + 0x198]
mov r8, qword [rax]
test r8, r8
je 0x140053f1d
mov rax, qword [rbp + 0x178]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x1c0]
cmovb r8, qword [rbp + 0x1c0]
sub r8, rdx
jmp 0x140053f57
test cl, 4
jne 0x140053f4d
mov rax, qword [rbp + 0x190]
mov rcx, qword [rax]
test rcx, rcx
je 0x140053f4d
mov rax, qword [rbp + 0x170]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x1a8]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x140053f57
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x140053f6f
lea rcx, [rbp + 0x240]
call fcn.14000b430
mov r9, qword [rbp + 0x258]
lea rcx, [rbp + 0x240]
cmp r9, 0x10
cmovae rcx, qword [rbp + 0x240]
call fcn.14009ee30
test eax, eax
je 0x140053f90
call fcn.14009571c
mov rdx, qword [rbp + 0x258]
cmp rdx, 0x10
jb 0x140053fd1
inc rdx
mov rcx, qword [rbp + 0x240]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140053fcc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400547a2
call fcn.14008b4c8
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0xd0], rsi
mov qword [rbp + 0xf8], rsi
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x100], xmm0
mov qword [rbp + 0xc8], r14
mov dword [rsp + 0x20], recv
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x40]
call fcn.14002aee0
nop
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x40], r13
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0x3c], edx
lea rcx, [rbp + 0x48]
call fcn.140018780
mov qword [rbp + 0x48], r12
mov qword [rbp + 0xb0], rsi
mov dword [rbp + 0xb8], 4
mov qword [rsp + 0x50], rdi
mov qword [rbp - 0x20], rsi
mov qword [rbp + 8], rsi
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x10], xmm0
mov qword [rbp - 0x28], r14
mov r14d, 0x1b
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x50]
call fcn.14002aee0
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x50], r13
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rsp + rcx + 0x4c], edx
lea rcx, [rsp + 0x58]
call fcn.140018780
mov qword [rsp + 0x58], r12
mov qword [rbp - 0x40], rsi
mov dword [rbp - 0x38], 4
lea r13d, [rbx - 1]
cmp r13d, 1
jl 0x140054635
xor ebx, ebx
lea rcx, [rbp + 0x48]
call fcn.140019c00
lea r12, [0x1400f5158]
cmp qword [0x1400f5170], 0x10
cmovae r12, qword [0x1400f5158]
mov rsi, qword [0x1400f5168]
mov edi, dword [rbp + 0xb8]
and edi, 0xffffffdf
cmp rsi, 0x7fffffff
ja 0x14005479c
test rsi, rsi
je 0x140054206
mov eax, edi
and eax, 6
cmp al, 6
je 0x140054206
cmp rsi, 0x1000
jb 0x140054158
lea rcx, [rsi + 0x27]
cmp rcx, rsi
jbe 0x1400547a8
call fcn.14008b48c
test rax, rax
je 0x140054796
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x140054163
mov rcx, rsi
call fcn.14008b48c
mov rbx, rax
mov r8, rsi
mov rdx, r12
mov rcx, rbx
call fcn.14008d5b0
lea rdx, [rbx + rsi]
mov qword [rbp + 0xb0], rdx
mov r8d, edi
and r8d, 4
mov r9d, ebx
jne 0x1400541ab
mov rax, qword [rbp + 0x60]
mov qword [rax], rbx
mov rax, qword [rbp + 0x80]
mov qword [rax], rbx
sub edx, ebx
mov rax, qword [rbp + 0x98]
mov dword [rax], edx
mov rdx, qword [rbp + 0xb0]
test dil, 2
jne 0x1400541ff
test dil, 0x18
mov rcx, rbx
cmovne rcx, rdx
mov rax, qword [rbp + 0x68]
mov qword [rax], rbx
mov rax, qword [rbp + 0x88]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [rbp + 0xa0]
mov dword [rax], edx
test r8d, r8d
je 0x1400541ff
mov rax, qword [rbp + 0x60]
mov qword [rax], rbx
mov rax, qword [rbp + 0x80]
xor ebx, ebx
mov qword [rax], rbx
mov rax, qword [rbp + 0x98]
mov dword [rax], r9d
or edi, 1
jmp 0x14005420d
xor ebx, ebx
or edi, 1
jmp 0x14005420d
mov qword [rbp + 0xb0], rbx
mov dword [rbp + 0xb8], edi
lea rcx, [rsp + 0x58]
call fcn.140019c00
lea r12, [0x1400f5158]
cmp qword [0x1400f5170], 0x10
cmovae r12, qword [0x1400f5158]
mov rsi, qword [0x1400f5168]
mov edi, dword [rbp - 0x38]
and edi, 0xffffffdf
cmp rsi, 0x7fffffff
ja 0x14005479c
test rsi, rsi
je 0x140054328
mov eax, edi
and eax, 6
cmp al, 6
je 0x140054328
cmp rsi, 0x1000
jb 0x140054296
lea rcx, [rsi + 0x27]
cmp rcx, rsi
jbe 0x1400547a8
call fcn.14008b48c
test rax, rax
je 0x140054796
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1400542a1
mov rcx, rsi
call fcn.14008b48c
mov rbx, rax
mov r8, rsi
mov rdx, r12
mov rcx, rbx
call fcn.14008d5b0
lea rdx, [rbx + rsi]
mov qword [rbp - 0x40], rdx
mov r8d, edi
and r8d, 4
mov r9d, ebx
jne 0x1400542de
mov rax, qword [rsp + 0x70]
mov qword [rax], rbx
mov rax, qword [rbp - 0x70]
mov qword [rax], rbx
sub edx, ebx
mov rax, qword [rbp - 0x58]
mov dword [rax], edx
mov rdx, qword [rbp - 0x40]
test dil, 2
jne 0x140054323
test dil, 0x18
mov rcx, rbx
cmovne rcx, rdx
mov rax, qword [rsp + 0x78]
mov qword [rax], rbx
mov rax, qword [rbp - 0x68]
mov qword [rax], rcx
sub edx, ecx
mov rax, qword [rbp - 0x50]
mov dword [rax], edx
test r8d, r8d
je 0x140054323
mov rax, qword [rsp + 0x70]
mov qword [rax], rbx
mov rax, qword [rbp - 0x70]
xor esi, esi
mov qword [rax], rsi
mov rax, qword [rbp - 0x58]
mov dword [rax], r9d
or edi, 1
jmp 0x14005432c
mov qword [rbp - 0x40], rbx
mov dword [rbp - 0x38], edi
mov rdx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x14005433c
mov rdx, qword [r15]
mov r8, qword [r15 + 0x10]
lea rcx, [rbp + 0x40]
call fcn.14000e6f0
lea rdx, [0x1400c2730]
mov rcx, rax
call fcn.14000e1c0
mov rcx, rax
mov edx, r13d
call fcn.14001df90
mov rdx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x140054370
mov rdx, qword [r15]
mov r8, qword [r15 + 0x10]
lea rcx, [rsp + 0x50]
call fcn.14000e6f0
lea rdx, [0x1400c2730]
mov rcx, rax
call fcn.14000e1c0
mov rcx, rax
lea edx, [r13 + 1]
call fcn.14001df90
nop
xor ebx, ebx
mov qword [rbp + 0x240], rbx
mov qword [rbp + 0x250], rbx
mov qword [rbp + 0x258], shutdown
mov byte [rbp + 0x240], bl
or r14d, 0x40
mov dword [rsp + 0x20], r14d
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov ecx, dword [rbp + 0xb8]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x140054404
mov rax, qword [rbp + 0x88]
mov r8, qword [rax]
test r8, r8
je 0x140054404
mov rax, qword [rbp + 0x68]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0xb0]
cmovb r8, qword [rbp + 0xb0]
sub r8, rdx
jmp 0x14005443b
test cl, 4
jne 0x140054431
mov rax, qword [rbp + 0x80]
mov rcx, qword [rax]
test rcx, rcx
je 0x140054431
mov rax, qword [rbp + 0x60]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x98]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x14005443b
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x14005444c
lea rcx, [rbp + 0x240]
call fcn.14000b430
and r14d, 0xffffffbf
or r14d, 0x20
mov qword [rbp + 0x260], rbx
mov qword [rbp + 0x270], rbx
mov r9d, send
mov qword [rbp + 0x278], r9
mov byte [rbp + 0x260], 0
bts r14d, 8
mov dword [rsp + 0x20], r14d
xorps xmm0, xmm0
movups xmmword [rbp + 0x130], xmm0
mov ecx, dword [rbp - 0x38]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1400544b7
mov rax, qword [rbp - 0x68]
mov r8, qword [rax]
test r8, r8
je 0x1400544b7
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax]
cmp r8, qword [rbp - 0x40]
cmovb r8, qword [rbp - 0x40]
sub r8, rdx
jmp 0x1400544ed
test cl, 4
jne 0x1400544df
mov rax, qword [rbp - 0x70]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400544df
mov rax, qword [rsp + 0x70]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x58]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x1400544ed
mov r8, qword [rbp + 0x138]
mov rdx, qword [rbp + 0x130]
test rdx, rdx
je 0x140054505
lea rcx, [rbp + 0x260]
call fcn.14000b430
mov r9, qword [rbp + 0x278]
btr r14d, 8
bts r14d, 7
lea rcx, [rbp + 0x260]
cmp r9, 0x10
cmovae rcx, qword [rbp + 0x260]
call fcn.14009ee30
test eax, eax
je 0x140054530
call fcn.14009571c
lea rdx, [rbp + 0x260]
cmp qword [rbp + 0x278], 0x10
cmovae rdx, qword [rbp + 0x260]
lea rcx, [rbp + 0x240]
cmp qword [rbp + 0x258], 0x10
cmovae rcx, qword [rbp + 0x240]
call fcn.14009ef10
test eax, eax
jne 0x14005456c
mov r9d, ebx
jmp 0x140054574
call fcn.14009571c
mov r9d, dword [rax]
lea r8, [rbp + 0x260]
lea rdx, [rbp + 0x240]
mov rcx, qword [rsp + 0x48]
call fcn.1400512c0
nop
mov rdx, qword [rbp + 0x278]
cmp rdx, 0x10
jb 0x1400545ce
inc rdx
mov rcx, qword [rbp + 0x260]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400545c9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400547ae
call fcn.14008b4c8
mov qword [rbp + 0x270], rbx
mov qword [rbp + 0x278], shutdown
mov byte [rbp + 0x260], 0
mov rdx, qword [rbp + 0x258]
cmp rdx, 0x10
jb 0x140054628
inc rdx
mov rcx, qword [rbp + 0x240]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054623
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140054796
call fcn.14008b4c8
dec r13d
cmp r13d, 1
jge 0x1400540d3
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rsi, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsp + rcx + 0x50], rsi
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rsp + rcx + 0x4c], edx
lea rcx, [rsp + 0x58]
call fcn.140018b50
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rdi, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], rdi
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x4c], edx
lea rbx, vtable.std::ios_base.0
mov qword [rbp - 0x28], rbx
lea rcx, [rbp - 0x28]
call fcn.140067b08
nop
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x40], rsi
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0x3c], edx
lea rcx, [rbp + 0x48]
call fcn.140018b50
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x40], rdi
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx + 0x3c], edx
mov qword [rbp + 0xc8], rbx
lea rcx, [rbp + 0xc8]
call fcn.140067b08
nop
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x150], rsi
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0x14c], edx
lea rcx, [rbp + 0x158]
call fcn.140018b50
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x150], rdi
mov rax, qword [rbp + 0x150]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx + 0x14c], edx
mov qword [rbp + 0x1d8], rbx
lea rcx, [rbp + 0x1d8]
call fcn.140067b08
nop
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.14008bad0
mov rbx, qword [rsp + 0x3e0]
add rsp, 0x390
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140091b3c
nop
call fcn.140066eec
nop
call fcn.140091b3c
nop
call fcn.14000add0
nop
call fcn.140091b3c
int3