Function at 0x527650
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 0x52828b
mov rbx, rdi
mov rax, rdx
jmp 0x5276c4
mov rbx, rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x5276d2
cmp ebp, dword [rax + 0x20]
jbe 0x5276b8
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x5276c4
cmp rdi, rbx
je 0x527a1b
cmp ebp, dword [rbx + 0x20]
jb 0x527a18
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.0051f930
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 0x528150
test ah, 0x10
jne 0x527fe8
test al, 2
jne 0x527ee8
test al, 0x40
jne 0x527e90
test al, 8
jne 0x527de0
test ah, 0x40
jne 0x527d38
test al, 0x10
jne 0x527c88
test al, 0x20
jne 0x527b80
mov rdi, qword [rsp + 0x320]
cmp dword [rdi], 0x40
je 0x527a70
test ah, 2
jne 0x527b28
mov rax, qword [0x00a59330]
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 0x527928
jmp 0x5279f0
cmp rsi, 1
jne 0x5279d8
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 0x528274
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 0x5278ec
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
cmp rcx, rdi
je 0x5278fe
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x80]
cmp rcx, rbp
je 0x527910
call sym.operator_delete_void_
mov rax, qword [0x00a59330]
add rbx, 0x28
cmp qword [rax + 0x170], rbx
je 0x5279f0
mov r12, qword [rbx]
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x80], rbp
test r12, r12
je 0x52794b
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 0x527870
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 0x527889
test rsi, rsi
jne 0x5282a3
mov rax, rdi
jmp 0x527889
cmp byte [rsp + 0x3c], 0
jne 0x5281b0
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 0x527a45
nop word [rax + rax]
mov rax, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x527a4e
mov r9d, dword [rdx + 0x20]
test r9d, r9d
jne 0x527a30
mov rdx, qword [rdx + 0x18]
test rdx, rdx
jne 0x527a3c
cmp rdi, rax
je 0x528288
cmp dword [rax + 0x20], 1
ja 0x528288
lea rbx, [rax + 0x28]
jmp 0x5276e8
test ah, 4
je 0x527823
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.005259c0
lea r12, [rsp + 0x130]
lea rdx, str._vlevel
mov rcx, r12
call fcn.005259c0
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 0x527afc
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x527b16
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
test ah, 2
je 0x52782c
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.005259c0
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 0x52782c
call sym.operator_delete_void_
jmp 0x52782c
mov rax, qword [0x00a59330]
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 0x5281de
cmp r8, r9
jne 0x527bd0
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.005259c0
lea r12, [rsp + 0x130]
lea rdx, str._loc
mov rcx, r12
call fcn.005259c0
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 0x527c5f
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x527c79
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x527812
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.005259c0
lea r12, [rsp + 0x130]
lea rdx, str._line
mov rcx, r12
call fcn.005259c0
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 0x527d12
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x527d2c
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x52780a
mov rax, qword [rsp + 0x320]
lea r12, [rsp + 0xc0]
lea r9, [0x0091b75a]
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.005259c0
lea r12, [rsp + 0x130]
lea rdx, str._fbase
mov rcx, r12
call fcn.005259c0
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 0x527dbb
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x527dd5
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x527802
mov rax, qword [0x00a59330]
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.005259c0
lea r12, [rsp + 0x130]
lea rdx, str._file
mov rcx, r12
call fcn.005259c0
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 0x527e6e
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x527e88
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x5277f9
mov rax, qword [rsp + 0x320]
lea r12, [rsp + 0x130]
lea rdx, str._func
mov rcx, r12
lea rsi, [rax + 0x30]
call fcn.005259c0
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 0x527edb
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x5277f1
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 0x52827c
mov rsi, rbp
mov rax, rdx
jmp 0x527f2c
mov rsi, rax
mov rax, qword [rax + 0x10]
test rax, rax
je 0x527f3a
cmp edi, dword [rax + 0x20]
jbe 0x527f20
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x527f2c
cmp rbp, rsi
je 0x5281ff
cmp edi, dword [rsi + 0x20]
jb 0x5281fc
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.005259c0
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 0x527fc3
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xb0]
cmp rcx, rax
je 0x527fdd
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x5277e9
lea r12, [rsp + 0x130]
mov rdi, qword [0x00a59330]
mov rcx, r12
call fcn.0081e4e0
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.0081ef80
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 0x528228
mov rdi, rax
jmp 0x52807c
mov rdi, rbp
mov rbp, qword [rbp + 0x10]
test rbp, rbp
je 0x528095
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 0x528070
mov rbp, qword [rbp + 0x18]
test rbp, rbp
jne 0x52807c
cmp qword [rsp + 0x68], rdi
je 0x528228
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 0x528228
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.0051f930
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
call rax
lea rdx, str._thread
mov rcx, r12
call fcn.005259c0
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 0x52811c
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
cmp rcx, r15
je 0x52812e
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x80]
lea rbp, [rsp + 0x90]
cmp rcx, rbp
je 0x528148
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x5277e1
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.005259c0
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 0x5281a7
call sym.operator_delete_void_
mov eax, dword [rbx + 0x70]
jmp 0x5277d8
movabs rax, 0x3fffffffffffffff
cmp qword [r13 + 8], rax
je 0x528297
mov r8d, 1
lea rdx, [0x0091bb74]
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 0x5279fb
cmp rax, r9
jae 0x5282ab
mov byte [rax], 0x3a
cmp r8, r9
jae 0x527bf0
mov byte [r8], 0
jmp 0x527bf0
mov rsi, rbp
mov rax, rbp
jmp 0x528214
mov rax, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
je 0x528260
mov ecx, dword [rdx + 0x20]
test ecx, ecx
jne 0x528208
mov rdx, qword [rdx + 0x18]
jmp 0x52820f
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.0051f930
jmp 0x5280df
cmp rbp, rax
je 0x528279
cmp dword [rax + 0x20], 1
ja 0x528279
lea rsi, [rax + 0x24]
jmp 0x527f50
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, [0x0091b75c]
call method.std.__throw_length_error_char_const_
mov rcx, rdi
jmp 0x5279b1
mov r8, rax
jmp 0x527bf0