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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x440
mov eax, dword [0x4f2d80]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
push 0xa
lea ecx, [esi + 8]
call fcn.00440850
lea ecx, [esi + 8]
call fcn.0042d1b0
lea eax, [ebp - 0x420]
push eax
lea ecx, [esi + 0xc]
call fcn.0042e880
mov eax, dword [0x4f4a3c]
test eax, eax
je 0x441383
mov edx, dword [esi + 0xa0]
lea ecx, [ebp - 0x420]
push ecx
mov ecx, dword [esi + 0xa8]
push edx
mov edx, dword [esi + 0xa4]
push ecx
mov ecx, dword [esi]
push edx
push ecx
call eax
add esp, 0x14
test al, al
je 0x441383
cmp dword [ebp - 0x40c], 0x10
jb 0x441588
mov edx, dword [ebp - 0x420]
push edx
jmp 0x441580
test byte [0x4f1d28], 2
je 0x4413aa
cmp dword [ebp - 0x40c], 0x10
mov eax, dword [ebp - 0x420]
jae 0x4413a1
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4413af
cmp dword [esi], 2
jl 0x4413e9
cmp dword [ebp - 0x40c], 0x10
mov eax, dword [ebp - 0x420]
jae 0x4413c4
lea eax, [ebp - 0x420]
push eax
push 0x4c3b68
call fcn.00494e0d
add eax, 0x40
push eax
call fcn.0049390b
call fcn.00494e0d
add eax, 0x40
push eax
call fcn.00494db1
add esp, 0x10
test byte [0x4f1d28], 1
je 0x441497
push 0
push 0
call fcn.004410d0
add esp, 8
cmp dword [0x4f4a48], 0
jne 0x44141b
mov eax, dword [0x4f4a4c]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x441426
mov ecx, dword [0x4f4a44]
call fcn.00449830
call fcn.00441240
test al, al
je 0x441475
mov ecx, dword [0x4f4a2c]
push 2
push 0
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [ebp - 0x40c], 0x10
mov eax, dword [ebp - 0x420]
jae 0x441457
lea eax, [ebp - 0x420]
mov ecx, dword [ebp - 0x410]
push 0
lea edx, [ebp - 0x440]
push edx
mov edx, dword [0x4f4a2c]
push ecx
push eax
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [0x4f4a48], 0
jne 0x44148c
mov eax, dword [0x4f4a4c]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x441497
mov ecx, dword [0x4f4a44]
call fcn.00449840
mov eax, dword [esi]
cmp eax, 4
jne 0x441518
mov ecx, dword [ebp - 0x410]
mov eax, 0x400
cmp ecx, eax
jae 0x4414af
mov eax, ecx
cmp dword [ebp - 0x40c], 0x10
mov ecx, dword [ebp - 0x420]
jae 0x4414c4
lea ecx, [ebp - 0x420]
push eax
push ecx
lea ecx, [ebp - 0x404]
push ecx
call fcn.00491b40
lea edx, [ebp - 0x404]
push edx
call fcn.00449880
add esp, 0x10
call fcn.00449850
test al, al
je 0x4414f1
call fcn.00449860
jmp 0x441570
cmp dword [0x4f4a34], 0
je 0x4414ea
lea eax, [ebp - 0x43c]
push eax
lea ecx, [esi + 0xc]
call fcn.0042e880
lea ecx, [ebp - 0x43c]
push ecx
call dword [0x4f4a34]
jmp 0x441555
cmp eax, 3
jne 0x441570
cmp dword [0x4f4a38], 0
lea eax, [ebp - 0x43c]
lea ecx, [esi + 0xc]
push eax
je 0x441544
call fcn.0042e880
lea ecx, [ebp - 0x43c]
push ecx
call dword [0x4f4a38]
jmp 0x441555
call fcn.0042e880
lea ecx, [ebp - 0x43c]
push ecx
call fcn.00440070
add esp, 4
cmp dword [ebp - 0x428], 0x10
jb 0x441570
mov edx, dword [ebp - 0x43c]
push edx
call fcn.00491b32
add esp, 4
cmp dword [ebp - 0x40c], 0x10
jb 0x441588
mov eax, dword [ebp - 0x420]
push eax
call fcn.00491b32
add esp, 4
mov ecx, dword [esi + 0xac]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [esi + 8]
mov eax, dword [edx + 4]
add esi, 0x58
mov dword [eax + esi - 0x50], 0x4c35fc
lea ecx, [esi - 0x4c]
mov dword [esi - 0x4c], 0x4c2cc4
call fcn.0042b210
lea ecx, [esi - 0x4c]
call fcn.0042b6d0
mov ecx, dword [esi - 0x50]
mov edx, dword [ecx + 4]
mov dword [edx + esi - 0x50], 0x4c2bd8
push esi
mov dword [esi], vtable.std::ios_base.0
call fcn.0047e609
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049269f
mov esp, ebp
pop ebp
ret