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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov esi, ecx
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ecx + 8]
add ecx, 0xc
lea eax, [ebp - 0x1c]
lea ebx, [ebp - 0x30]
mov dword [ebp - 0x50], ecx
push eax
push ebx
call fcn.0045a3b0
movzx eax, byte [ebp - 0x25]
mov dword [ebp - 0x54], eax
test al, al
jns 0x457a17
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x54], eax
push dword [ebp - 0x30]
call fcn.00494236
add esp, 4
mov eax, dword [esi + 8]
mov ecx, dword [eax + 4]
add ecx, edi
push ebx
call fcn.0042a05a
mov ecx, ebx
push 0x4f226c
call fcn.0043c886
mov ebx, eax
mov eax, dword [eax]
mov dword [ebp - 0x4c], esi
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x4e4884]
mov ecx, ebx
push 0xa
call esi
mov esi, dword [ebp - 0x4c]
mov ebx, eax
lea ecx, [ebp - 0x30]
call fcn.0042bf1e
movsx eax, bl
lea ebx, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.00411310
mov ecx, edi
call fcn.00410780
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x40], 0xffffffff
lea edi, [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
push ebx
push edi
call fcn.0045a3b0
lea ebx, [ebp - 0x1c]
mov ecx, ebx
lea eax, [ebp - 0x30]
push eax
push 0xffffffffffffffff
push dword [esi + 0x90]
push edi
call fcn.00442150
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], 0x56
lea eax, [ebp - 0x38]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x30]
mov edi, eax
mov dword [ebp - 0x20], eax
mov eax, dword [0x4dc8c4]
movzx eax, byte [eax + 0x56]
test al, al
mov esi, ebx
jne 0x457ccc
cmp byte [ebp - 0x11], 0
jns 0x457afe
push dword [ebp - 0x1c]
call fcn.00494236
add esp, 4
mov eax, dword [ebp - 0x4c]
cmp dword [eax + 4], 3
mov ebx, edi
jne 0x457bf7
cmp byte [0x4f2fdc], 0
jne 0x457bf7
mov byte [0x4f2fdc], 1
mov eax, dword [0x4f2fe4]
mov ecx, dword [0x4ed65c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x457d04
mov ecx, dword [ebp - 0x50]
push esi
push ebx
call fcn.0045a3b0
cmp byte [ebp - 0x25], 0
mov edi, ebx
jns 0x457b57
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
add edi, dword [eax + 0x90]
mov esi, dword [eax + 0x94]
mov ebx, dword [eax + 0x98]
test esi, esi
je 0x457b85
push 0x5c
push esi
call fcn.0049df50
add esp, 8
lea ecx, [eax + 1]
test eax, eax
cmove ecx, esi
jmp 0x457b87
xor ecx, ecx
push edi
push ebx
push ecx
push str._s:_d:__s
lea edi, [ebp - 0x1c]
push edi
call fcn.00455db0
add esp, 0x14
cmp byte [ebp - 0x25], 0
jns 0x457bac
push dword [ebp - 0x30]
call fcn.00494236
add esp, 4
movzx eax, byte [ebp - 0x11]
test al, al
lea ebx, [ebp - 0x30]
jns 0x457bcf
mov eax, dword [ebp - 0x18]
test eax, eax
js 0x457ce6
mov edi, dword [ebp - 0x1c]
je 0x457bcf
test edi, edi
je 0x457cf5
push eax
push edi
push dword [0x4f2fe0]
call fcn.0046ad20
add esp, 0xc
cmp byte [ebp - 0x11], 0
jns 0x457bf0
push dword [ebp - 0x1c]
call fcn.00494236
add esp, 4
mov byte [0x4f2fdc], 0
mov ecx, dword [0x4f2fb4]
test ecx, ecx
mov esi, dword [ebp - 0x4c]
je 0x457c3e
mov eax, dword [esi + 4]
mov dword [ebp - 0x50], eax
mov edi, dword [esi + 0x90]
mov ebx, dword [esi + 0x98]
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax + 0x94]
call dword [0x4e4884]
lea eax, [ebp - 0x48]
push eax
push edi
push ebx
lea ebx, [ebp - 0x30]
push esi
mov esi, dword [ebp - 0x4c]
push dword [ebp - 0x50]
call ecx
add esp, 0x14
test al, al
jne 0x457c95
mov eax, dword [0x4ec1c8]
test al, 2
je 0x457c5f
cmp byte [ebp - 0x3d], 0
lea eax, [ebp - 0x48]
jns 0x457c53
mov eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x4ec1c8]
test al, 1
je 0x457c95
call fcn.00457240
test al, al
je 0x457c95
mov dword [ebp - 0x30], 0xffffffff
movzx eax, byte [ebp - 0x3d]
test al, al
cmovs eax, dword [ebp - 0x44]
lea ecx, [ebp - 0x48]
cmovs ecx, dword [ebp - 0x48]
push 0
push ebx
push eax
push ecx
push dword [0x4f2fc0]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [esi + 4], 3
jne 0x457ca9
mov ecx, esi
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x54]
call fcn.00457df0
cmp byte [ebp - 0x3d], 0
jns 0x457cba
push dword [ebp - 0x48]
call fcn.00494236
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004961ed
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
movzx edx, al
lea ecx, [ebp - 0x20]
call fcn.004584c0
cmp byte [ebp - 0x11], 0
jns 0x457afe
jmp 0x457af3
push str....._third_partylibc_srcinclude_string_view:311:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
push 0x4d348e
call fcn.00424574
push str....._third_partylibc_srcinclude_string_view:313:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
push 0x4d348e
call fcn.00424574
push 0x4f2fe4
call fcn.004942a7
add esp, 4
cmp dword [0x4f2fe4], 0xffffffff
jne 0x457b42
push 0x400
push str.LOG_FATAL
call fcn.0046ace0
add esp, 8
mov dword [0x4f2fe0], eax
push 0x4f2fe4
call fcn.0049431d
add esp, 4
jmp 0x457b42