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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2c8
mov rax, qword [r8 + 0x58]
mov ebp, dword [r8]
mov rsi, qword [rax + 0x60]
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r14, [rsi + 0x10]
mov qword [rsp + 0x320], r8
mov r13, rcx
lea rdi, [rsi + 0x108]
mov dword [rsp + 0x3c], r9d
mov rcx, r14
mov qword [rsp + 0x48], rax
call rax
mov rdx, qword [rsi + 0x110]
test rdx, rdx
je 0x530bfb
mov rbx, rdi
mov rax, rdx
jmp 0x530034
mov rbx, rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x530042
cmp ebp, dword [rax + 0x20]
jbe 0x530028
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x530034
cmp rdi, rbx
je 0x53038b
cmp ebp, dword [rbx + 0x20]
jb 0x530388
add rbx, 0x28
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r14
mov qword [rsp + 0x40], rax
call rax
lea rax, [r13 + 0x10]
mov r8, qword [rbx + 0x38]
mov rcx, r13
mov qword [r13], rax
mov rdx, qword [rbx + 0x30]
mov qword [rsp + 0x50], rax
add r8, rdx
call fcn.005281b0
xor r8d, r8d
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 0
mov dword [rsp + 0x128], 0
mov word [rsp + 0x12c], r8w
mov eax, dword [rbx + 0x70]
mov qword [rsp + 0xc0], 0
test ah, 8
jne 0x530ac0
test ah, 0x10
jne 0x530958
test al, 2
jne 0x530858
test al, 0x40
jne 0x530800
test al, 8
jne 0x530750
test ah, 0x40
jne 0x5306a8
test al, 0x10
jne 0x5305f8
test al, 0x20
jne 0x5304f0
mov rdi, qword [rsp + 0x320]
cmp dword [rdi], 0x40
je 0x5303e0
test ah, 2
jne 0x530498
mov rax, qword [0x009f6350]
lea r15, [rsp + 0x80]
lea rbp, [rsp + 0x90]
lea r14, [rsp + 0xa0]
lea rdi, [rsp + 0xb0]
mov rbx, qword [rax + 0x168]
cmp rbx, qword [rax + 0x170]
jne 0x530298
jmp 0x530360
cmp rsi, 1
jne 0x530348
movzx eax, byte [r12]
mov byte [rsp + 0xb0], al
mov rax, rdi
mov qword [rsp + 0xa8], rsi
mov byte [rax + rsi], 0
mov rax, qword [rsp + 0x320]
cmp qword [rbx + 0x18], 0
mov qword [rsp + 0x78], rax
je 0x530be4
lea r12, [rsp + 0x130]
lea rdx, [rbx + 8]
lea r8, [rsp + 0x78]
mov rcx, r12
call qword [rbx + 0x20]
mov r8, r12
mov rdx, r14
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x53025c
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
cmp rcx, rdi
je 0x53026e
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x80]
cmp rcx, rbp
je 0x530280
call sym.operator_delete_void_
mov rax, qword [0x009f6350]
add rbx, 0x28
cmp qword [rax + 0x170], rbx
je 0x530360
mov r12, qword [rbx]
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x80], rbp
test r12, r12
je 0x5302bb
mov rcx, r12
call sym.strlen
lea r8, [r12 + rax]
xor r9d, r9d
mov rdx, r12
mov rcx, r15
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag_
mov rsi, qword [rsp + 0x88]
mov qword [rsp + 0xa0], rdi
mov r12, qword [rsp + 0x80]
mov qword [rsp + 0x130], rsi
cmp rsi, 0xf
jbe 0x5301e0
lea rdx, [rsp + 0x130]
xor r8d, r8d
mov rcx, r14
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_create_unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0xa0], rax
mov rcx, rax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0xb0], rax
mov r8, rsi
mov rdx, r12
call sym.memcpy
mov rsi, qword [rsp + 0x130]
mov rax, qword [rsp + 0xa0]
jmp 0x5301f9
test rsi, rsi
jne 0x530c13
mov rax, rdi
jmp 0x5301f9
cmp byte [rsp + 0x3c], 0
jne 0x530b20
mov rax, r13
add rsp, 0x2c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, rdi
mov r9d, dword [rdx + 0x20]
mov rax, rdi
test r9d, r9d
je 0x5303b5
nop word [rax + rax]
mov rax, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x5303be
mov r9d, dword [rdx + 0x20]
test r9d, r9d
jne 0x5303a0
mov rdx, qword [rdx + 0x18]
test rdx, rdx
jne 0x5303ac
cmp rdi, rax
je 0x530bf8
cmp dword [rax + 0x20], 1
ja 0x530bf8
lea rbx, [rax + 0x28]
jmp 0x530058
test ah, 4
je 0x530193
movzx ecx, word [rdi + 0x50]
mov dword [rsp + 0x20], 0
lea r12, [rsp + 0xc0]
mov edx, 1
lea r9, [rsp + 0x12e]
mov r8, r12
lea rbp, [rsp + 0xa0]
mov byte [rsp + 0xc0], 0
call method.el::base::utils::Str.convertAndAddToBuff_unsigned_long_long__int__char__char_const__bool_
mov rdx, r12
mov rcx, rbp
call fcn.0052e330
lea r12, [rsp + 0x130]
lea rdx, str._vlevel
mov rcx, r12
call fcn.0052e330
mov r8, rbp
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x53046c
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x530486
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
test ah, 2
je 0x53019c
nop word [rax + rax]
mov rax, qword [rsp + 0x320]
lea r12, [rsp + 0x130]
lea rdx, str._msg
mov rcx, r12
lea rbx, [rax + 0x60]
call fcn.0052e330
mov r8, rbx
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x53019c
call sym.operator_delete_void_
jmp 0x53019c
mov rax, qword [0x009f6350]
mov rdi, qword [rsp + 0x320]
lea r12, [rsp + 0xc0]
mov r9d, 0x64
mov rdx, r12
mov byte [rsp + 0xc0], 0
mov rax, qword [rax + 0x50]
mov rcx, qword [rdi + 8]
lea r8, [rax + 0xe8]
call method.el::base::utils::File.buildStrippedFilename_char_const__char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__unsigned_long_long_
mov r8, r12
lea r9, [rsp + 0x12e]
nop word [rax + rax]
mov rax, r8
add r8, 1
cmp byte [r8 - 1], 0
je 0x530b4e
cmp r8, r9
jne 0x530540
nop word [rax + rax]
mov rax, qword [rsp + 0x320]
mov edx, 0xa
lea rbp, [rsp + 0xa0]
mov ecx, dword [rax + 0x28]
mov dword [rsp + 0x20], 0
call method.el::base::utils::Str.convertAndAddToBuff_unsigned_long_long__int__char__char_const__bool_
mov rdx, r12
mov rcx, rbp
call fcn.0052e330
lea r12, [rsp + 0x130]
lea rdx, str._loc
mov rcx, r12
call fcn.0052e330
mov r8, rbp
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x5305cf
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x5305e9
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x530182
mov rax, qword [rsp + 0x320]
lea r12, [rsp + 0xc0]
mov edx, 0xa
lea r9, [rsp + 0x12e]
mov r8, r12
lea rbp, [rsp + 0xa0]
mov byte [rsp + 0xc0], 0
mov ecx, dword [rax + 0x28]
mov dword [rsp + 0x20], 0
call method.el::base::utils::Str.convertAndAddToBuff_unsigned_long_long__int__char__char_const__bool_
mov rdx, r12
mov rcx, rbp
call fcn.0052e330
lea r12, [rsp + 0x130]
lea rdx, str._line
mov rcx, r12
call fcn.0052e330
mov r8, rbp
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x530682
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x53069c
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x53017a
mov rax, qword [rsp + 0x320]
lea r12, [rsp + 0xc0]
lea r9, [0x008b6ffa]
mov r8d, 0x64
mov rdx, r12
lea rbp, [rsp + 0xa0]
mov byte [rsp + 0xc0], 0
lea rcx, [rax + 8]
call method.el::base::utils::File.buildBaseFilename_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char__unsigned_long_long__char_const_
mov rdx, r12
mov rcx, rbp
call fcn.0052e330
lea r12, [rsp + 0x130]
lea rdx, str._fbase
mov rcx, r12
call fcn.0052e330
mov r8, rbp
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x53072b
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x530745
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x530172
mov rax, qword [0x009f6350]
mov rdi, qword [rsp + 0x320]
lea r12, [rsp + 0xc0]
mov r9d, 0x64
mov rdx, r12
lea rbp, [rsp + 0xa0]
mov byte [rsp + 0xc0], 0
mov rax, qword [rax + 0x50]
mov rcx, qword [rdi + 8]
lea r8, [rax + 0xe8]
call method.el::base::utils::File.buildStrippedFilename_char_const__char__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__unsigned_long_long_
mov rdx, r12
mov rcx, rbp
call fcn.0052e330
lea r12, [rsp + 0x130]
lea rdx, str._file
mov rcx, r12
call fcn.0052e330
mov r8, rbp
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x5307de
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x5307f8
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x530169
mov rax, qword [rsp + 0x320]
lea r12, [rsp + 0x130]
lea rdx, str._func
mov rcx, r12
lea rsi, [rax + 0x30]
call fcn.0052e330
mov r8, rsi
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x53084b
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x530161
mov rax, qword [rsp + 0x320]
mov rcx, r14
mov edi, dword [rax]
mov rax, qword [rsp + 0x48]
call rax
mov rdx, qword [rsi + 0x140]
lea rbp, [rsi + 0x138]
test rdx, rdx
je 0x530bec
mov rsi, rbp
mov rax, rdx
jmp 0x53089c
mov rsi, rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x5308aa
cmp edi, dword [rax + 0x20]
jbe 0x530890
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x53089c
cmp rbp, rsi
je 0x530b6f
cmp edi, dword [rsi + 0x20]
jb 0x530b6c
add rsi, 0x24
lea r12, [rsp + 0x130]
mov rcx, r14
mov rax, qword [rsp + 0x40]
call rax
mov rcx, r12
mov rdi, qword [rbx + 0x50]
call method.el::base::utils::DateTime.gettimeofday_timeval___clone_.part.0_
lea rbp, [rsp + 0xa0]
mov rdx, qword [rsp + 0x130]
mov r9, rsi
mov r8, rdi
mov rcx, rbp
call method.el::base::utils::DateTime.timevalToString_abi:cxx11__timeval__char_const__el::base::SubsecondPrecision_const_
lea rdx, str._datetime
mov rcx, r12
call fcn.0052e330
mov r8, rbp
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x530933
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x53094d
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x530159
lea r12, [rsp + 0x130]
mov rdi, qword [0x009f6350]
mov rcx, r12
call fcn.00824f10
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
lea rax, [rsp + 0x140]
mov rcx, rax
mov qword [rsp + 0x60], rax
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
lea r15, [rsp + 0x80]
lea rdx, [rsp + 0x148]
mov rcx, r15
call method.std::__cxx11::basic_stringbuf_char__std::char_traits_char___std::allocator_char___.str___const
mov rcx, r12
call fcn.008259b0
lea rax, [rdi + 0x10]
mov qword [rsp + 0x58], rax
mov rcx, rax
mov rax, qword [rsp + 0x48]
call rax
mov rbp, qword [rdi + 0x148]
lea rax, [rdi + 0x140]
mov qword [rsp + 0x68], rax
test rbp, rbp
je 0x530b98
mov rdi, rax
jmp 0x5309ec
mov rdi, rbp
mov rbp, qword [rbp + 0x10]
test rbp, rbp
je 0x530a05
lea rcx, [rbp + 0x20]
mov rdx, r15
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.compare_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__const
test eax, eax
jns 0x5309e0
mov rbp, qword [rbp + 0x18]
test rbp, rbp
jne 0x5309ec
cmp qword [rsp + 0x68], rdi
je 0x530b98
lea rdx, [rdi + 0x20]
mov rcx, r15
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.compare_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__const
test eax, eax
js 0x530b98
lea r15, [rsp + 0xb0]
mov r8, qword [rdi + 0x48]
lea rbp, [rsp + 0xa0]
mov qword [rsp + 0xa0], r15
mov rdx, qword [rdi + 0x40]
mov rcx, rbp
add r8, rdx
call fcn.005281b0
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
call rax
lea rdx, str._thread
mov rcx, r12
call fcn.0052e330
mov r8, rbp
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
cmp rcx, qword [rsp + 0x60]
je 0x530a8c
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
cmp rcx, r15
je 0x530a9e
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x80]
lea rbp, [rsp + 0x90]
cmp rcx, rbp
je 0x530ab8
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x530151
mov rax, qword [rsp + 0x320]
lea r12, [rsp + 0x130]
lea rdx, str._app
mov rcx, r12
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x58], rax
lea rdi, [rax + 0x1f0]
call fcn.0052e330
mov r8, rdi
mov rdx, r12
mov rcx, r13
call method.el::base::utils::Str.replaceFirstWithEscape_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__s
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x140]
cmp rcx, rax
je 0x530b17
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x530148
movabs rax, 0x3fffffffffffffff
cmp qword [r13 + 8], rax
je 0x530c07
mov r8d, 1
lea rdx, [0x008b7414]
mov rcx, r13
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_append_char_const__unsigned_long_long_
jmp 0x53036b
cmp rax, r9
jae 0x530c1b
mov byte [rax], 0x3a
cmp r8, r9
jae 0x530560
mov byte [r8], 0
jmp 0x530560
mov rsi, rbp
mov rax, rbp
jmp 0x530b84
mov rax, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x530bd0
mov ecx, dword [rdx + 0x20]
test ecx, ecx
jne 0x530b78
mov rdx, qword [rdx + 0x18]
jmp 0x530b7f
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
lea rbp, [rsp + 0xa0]
lea r15, [rsp + 0xb0]
mov rcx, rbp
mov qword [rsp + 0xa0], r15
add r8, rdx
call fcn.005281b0
jmp 0x530a4f
cmp rbp, rax
je 0x530be9
cmp dword [rax + 0x20], 1
ja 0x530be9
lea rsi, [rax + 0x24]
jmp 0x5308c0
call method.std.__throw_bad_function_call__
mov rbp, rsi
lea rcx, str.map::at
call method.std.__throw_out_of_range_char_const_
mov rdi, rbx
lea rcx, str.map::at
call method.std.__throw_out_of_range_char_const_
lea rcx, [0x008b6ffc]
call method.std.__throw_length_error_char_const_
mov rcx, rdi
jmp 0x530321
mov r8, rax
jmp 0x530560