Function at 0x140052110
Capabilities:
Print debug messages
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x498
mov rsi, rcx
mov rax, qword [0x1400d5038]
xor rax, rsp
mov qword [rsp + 0x490], rax
lea rax, [0x1400bfe80]
mov qword [rcx], rax
lea r14, [rcx + 0x10]
lea rdi, [rcx + 0x18]
lea rdx, [rsp + 0x90]
mov rcx, rdi
call fcn.14001b064
movzx r13d, byte [rsp + 0xa7]
test r13b, r13b
jns 0x14005217d
mov rcx, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
call fcn.140080b9c
mov rax, qword [rsi + 0x10]
movsxd rcx, dword [rax + 4]
add rcx, r14
lea rbx, [rsp + 0x90]
mov rdx, rbx
call fcn.140025806
lea rdx, [0x1400e66a8]
mov rcx, rbx
call fcn.14003af54
mov rcx, qword [rax]
mov r8, qword [rcx + 0x38]
mov rcx, rax
mov dl, 0xa
mov rax, r8
call qword [0x1400f7008]
mov ebp, eax
mov rcx, rbx
call fcn.14002780e
mov rcx, r14
mov edx, ebp
call fcn.14001a964
mov rcx, r14
call fcn.140019db0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x60], rax
movaps xmm0, xmmword [0x1400bea10]
movaps xmmword [rsp + 0x50], xmm0
lea r14, [rsp + 0x50]
mov rcx, rdi
mov rdx, r14
call fcn.14001b064
movzx ecx, byte [rsp + 0x67]
mov r15, rcx
test cl, cl
jns 0x140052214
mov r15, qword [rsp + 0x58]
mov rax, qword [rsi + 0x118]
cmp r15, rax
jb 0x1400528d4
test cl, cl
jns 0x14005222d
mov r14, qword [rsp + 0x50]
add r14, rax
sub r15, rax
je 0x14005223e
test r14, r14
je 0x14005230d
movabs rbp, 0x7fffffffffffffef
cmp r15, rbp
ja 0x140052817
cmp r15, 0x16
ja 0x14005226b
mov byte [rsp + 0x8f], r15b
lea r12, [rsp + 0x78]
cmp r12, r14
jbe 0x1400522b5
jmp 0x1400522be
mov rbx, rdi
mov rdi, r13
mov r13, r15
or r13, 0xf
inc r13
mov rcx, r13
call fcn.140080b60
mov r12, rax
mov qword [rsp + 0x78], rax
add rbp, 0x11
or rbp, r13
mov r13, rdi
mov rdi, rbx
lea rbx, [rsp + 0x90]
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x80], r15
cmp r12, r14
ja 0x1400522be
lea rax, [r12 + r15]
cmp rax, r14
ja 0x140052339
mov rcx, r12
mov rdx, r14
mov r8, r15
call fcn.140083b80
mov byte [r12 + r15], 0
mov eax, dword [rsi + 0x128]
mov rcx, qword [rsi + 0x120]
mov dword [rsp + 0x74], eax
mov qword [rsp + 0x68], rcx
test byte [0x1400d7470], 0x19
jne 0x140052365
cmp byte [rsp + 0x8f], 0
js 0x1400523ae
cmp dword [rsi + 8], 3
je 0x1400523c2
jmp 0x1400524d9
lea rax, str.basic_string_const_char__n__detected_nullptr
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__n__0____s___nullptr
mov r8d, 0x37f
call fcn.140020b04
lea rax, str.char_traits::copy_overlapped_range
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__stringchar_traits.h
lea r9, str.__s2_____s1____s2_____s1__n
mov r8d, 0xee
call fcn.140020b04
lea rax, [rsp + 0x68]
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x74]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0xa0], rax
lea rcx, str.LogMessage
lea rdx, [rsp + 0x90]
call fcn.140052e00
cmp byte [rsp + 0x8f], 0
jns 0x1400522fe
mov rcx, qword [rsp + 0x78]
call fcn.140080b9c
cmp dword [rsi + 8], 3
jne 0x1400524d9
cmp byte [0x1400e91b4], 0
jne 0x1400524d9
mov byte [0x1400e91b4], 1
mov eax, dword [0x1400e91c0]
mov ecx, dword [0x1400e47b4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140052892
mov rcx, rdi
mov rdx, rbx
call fcn.14001b064
cmp byte [rsp + 0xa7], 0
jns 0x140052418
mov rbx, qword [rsp + 0x90]
add rbx, qword [rsi + 0x118]
mov ebp, dword [rsi + 0x128]
mov r14, qword [rsi + 0x120]
test r14, r14
je 0x14005244b
mov rcx, r14
mov edx, 0x5c
call fcn.140084638
lea r8, [rax + 1]
test rax, rax
cmove r8, r14
jmp 0x14005244e
xor r8d, r8d
mov qword [rsp + 0x20], rbx
lea rdx, str._s:_d:__s
lea rbx, [rsp + 0x78]
mov rcx, rbx
mov r9d, ebp
call fcn.14004f830
cmp byte [rsp + 0xa7], 0
jns 0x140052481
mov rcx, qword [rsp + 0x90]
call fcn.140080b9c
movzx eax, byte [rsp + 0x8f]
test al, al
cmovs rbx, qword [rsp + 0x78]
cmovs rax, qword [rsp + 0x80]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rax
mov rcx, qword [0x1400e91b8]
lea rdx, [rsp + 0x90]
call fcn.1400658b0
cmp byte [rsp + 0x8f], 0
jns 0x1400524d2
mov rcx, qword [rsp + 0x78]
call fcn.140080b9c
mov byte [0x1400e91b4], 0
mov rax, qword [0x1400e9170]
test rax, rax
je 0x140052515
mov r9, qword [rsi + 0x118]
mov r8d, dword [rsi + 0x128]
mov rdx, qword [rsi + 0x120]
mov ecx, dword [rsi + 8]
lea r10, [rsp + 0x50]
mov qword [rsp + 0x20], r10
call qword [0x1400f7008]
test al, al
jne 0x14005278b
mov eax, dword [0x1400d854c]
test al, 2
je 0x14005253e
cmp byte [rsp + 0x67], 0
jns 0x14005252d
mov rcx, qword [rsp + 0x50]
jmp 0x140052532
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x1400d854c]
test al, 4
jne 0x14005254d
cmp dword [rsi + 8], 2
jl 0x140052598
cmp eax, 1
ja 0x140052598
movzx ebx, byte [rsp + 0x67]
test bl, bl
cmovs rbx, qword [rsp + 0x58]
lea r14, [rsp + 0x50]
cmovs r14, qword [rsp + 0x50]
test rbx, rbx
je 0x140052598
xor r15d, r15d
nop dword [rax]
mov r8d, ebx
sub r8d, r15d
lea rdx, [r14 + r15]
mov ecx, 2
call fcn.140097e88
test eax, eax
js 0x140052592
mov eax, eax
add r15, rax
cmp r15, rbx
jb 0x140052570
mov eax, dword [0x1400d854c]
test al, 1
je 0x1400525e8
call fcn.1400518d0
test al, al
je 0x1400525e8
mov dword [rsp + 0x90], 0xaaaaaaaa
movzx r8d, byte [rsp + 0x67]
test r8b, r8b
cmovs r8d, dword [rsp + 0x58]
lea rdx, [rsp + 0x50]
cmovs rdx, qword [rsp + 0x50]
mov rcx, qword [0x1400e9188]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [rsi + 8], 3
jne 0x14005278b
lea rbx, [rsp + 0x90]
mov r8d, 0x400
mov rcx, rbx
mov dl, 0xaa
call fcn.140084230
cmp byte [rsp + 0x67], 0
jns 0x140052618
mov rdx, qword [rsp + 0x50]
jmp 0x14005261d
lea rdx, [rsp + 0x50]
mov r8d, 0x400
mov rcx, rbx
call fcn.140050360
mov rcx, rbx
call fcn.140019ae0
mov eax, dword [0x1400e91b0]
mov ecx, dword [0x1400e47b4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14005281c
mov rax, qword [0x1400e91a0]
cmp rax, qword [0x1400e91a8]
movabs rax, 0xaaaaaaaaaaaaaaaa
je 0x1400528d7
mov qword [rsp + 0x78], rax
mov eax, dword [0x1400e91b0]
mov ecx, dword [0x1400e47b4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140052857
mov rdx, qword [0x1400e91a8]
test rdx, rdx
mov rax, qword [0x1400e9198]
cmove rdx, rax
dec rdx
cmp rax, rdx
jb 0x1400528da
shl rdx, 3
add rdx, qword [0x1400e9190]
lea rcx, [rsp + 0x78]
call fcn.1400544e0
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140052781
cmp byte [rsp + 0x67], 0
jns 0x1400526f2
mov r14, qword [rsp + 0x50]
jmp 0x1400526f7
lea r14, [rsp + 0x50]
mov rcx, r14
add rcx, r13
mov qword [rsp + 0x40], rcx
je 0x1400528dd
call fcn.14009d410
mov qword [rsp + 0x48], rax
mov rax, qword [rsi + 0x118]
sub r13, rax
add r14, rax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r13
mov r8d, dword [rsi + 0x128]
mov rdx, qword [rsi + 0x120]
mov eax, 1
lock xadd dword [rbx], eax
test eax, eax
jle 0x1400528e0
cmp eax, 0x7fffffff
je 0x1400528e3
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 8]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x30]
mov rcx, rbx
call qword [0x1400f7008]
lock dec dword [rbx]
jne 0x140052781
mov rcx, rbx
call fcn.140054470
lea rcx, [rsp + 0x78]
call fcn.140054510
cmp byte [rsp + 0x67], 0
jns 0x14005279c
mov rcx, qword [rsp + 0x50]
call fcn.140080b9c
lea rcx, [rsi + 0x12c]
call fcn.140069fa0
mov rax, qword [rsi + 0x10]
movsxd rax, dword [rax + 4]
lea rcx, [0x1400bfdf8]
mov qword [rsi + rax + 0x10], rcx
lea rax, [0x1400bfe00]
mov qword [rsi + 0x18], rax
cmp byte [rsi + 0x6f], 0
jns 0x1400527d6
mov rcx, qword [rsi + 0x58]
call fcn.140080b9c
sub rsi, 0xffffffffffffff80
mov rcx, rdi
call fcn.140019a8a
mov rcx, rdi
call fcn.140019ae0
mov rcx, rsi
call fcn.140019a84
mov rcx, qword [rsp + 0x490]
xor rcx, rsp
call fcn.1400820f0
nop
add rsp, 0x498
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400952f0
lea rcx, [0x1400e91b0]
call fcn.140080cc0
cmp dword [0x1400e91b0], 0xffffffff
jne 0x140052658
xorps xmm0, xmm0
movups xmmword [0x1400e91a0], xmm0
movups xmmword [0x1400e9190], xmm0
lea rcx, [0x1400e91b0]
call fcn.140080d58
jmp 0x140052658
lea rcx, [0x1400e91b0]
call fcn.140080cc0
cmp dword [0x1400e91b0], 0xffffffff
jne 0x1400526a0
xorps xmm0, xmm0
movups xmmword [0x1400e91a0], xmm0
movups xmmword [0x1400e9190], xmm0
lea rcx, [0x1400e91b0]
call fcn.140080d58
jmp 0x1400526a0
lea rcx, [0x1400e91c0]
call fcn.140080cc0
cmp dword [0x1400e91c0], 0xffffffff
jne 0x1400523fb
lea rcx, str.LOG_FATAL
mov edx, 0x400
call fcn.140065880
mov qword [0x1400e91b8], rax
lea rcx, [0x1400e91c0]
call fcn.140080d58
jmp 0x1400523fb
int3
int3
int3
int3
int3
int3