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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
mov eax, dword [0x4995b0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
lea ebx, [esi + 8]
push ebx
call fcn.0040efa0
add esp, 4
lea eax, [ebp - 0x434]
lea ecx, [esi + 0xc]
push eax
call fcn.00409dc0
mov eax, dword [0x49c2ac]
test eax, eax
je 0x4472d4
lea ecx, [ebp - 0x434]
push ecx
push dword [esi + 0xa0]
push dword [esi + 0xa8]
push dword [esi + 0xa4]
push dword [esi]
call eax
add esp, 0x14
test al, al
jne 0x447526
test byte [0x4990b0], 2
je 0x4472fa
cmp dword [ebp - 0x420], 0x10
lea eax, [ebp - 0x434]
cmovae eax, dword [ebp - 0x434]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4472ff
cmp dword [esi], 2
jl 0x447338
cmp dword [ebp - 0x420], 0x10
lea eax, [ebp - 0x434]
cmovae eax, dword [ebp - 0x434]
push eax
push 0x483210
call fcn.00458d4a
add eax, 0x40
push eax
call fcn.0045986f
call fcn.00458d4a
add eax, 0x40
push eax
call fcn.004583e4
add esp, 0x10
test byte [0x4990b0], 1
je 0x447443
push 0
push 0
call fcn.004480d0
add esp, 8
cmp dword [0x49c2bc], 0
jne 0x44736a
push 0xffffffffffffffff
push dword [0x49c2b4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x447375
mov ecx, dword [0x49c2b0]
call fcn.0044b390
call fcn.00448220
test al, al
je 0x447421
push 2
push 0
push 0
push dword [0x49c29c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x434]
mov dword [ebp - 0x408], 0xf
push eax
lea ecx, [ebp - 0x41c]
mov dword [ebp - 0x40c], 0
mov byte [ebp - 0x41c], 0
call fcn.004086e0
lea eax, [ebp - 0x41c]
push 0
push eax
call fcn.00424a80
mov ecx, eax
call fcn.00424ab0
cmp dword [ebp - 0x408], 0x10
lea ecx, [ebp - 0x438]
push 0
push ecx
push dword [ebp - 0x40c]
lea eax, [ebp - 0x41c]
cmovae eax, dword [ebp - 0x41c]
push eax
push dword [0x49c29c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0x408], 0x10
jb 0x447421
push dword [ebp - 0x41c]
call fcn.00454c01
add esp, 4
cmp dword [0x49c2bc], 0
jne 0x447438
push dword [0x49c2b4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x447443
mov ecx, dword [0x49c2b0]
call fcn.0044b3a0
mov eax, dword [esi]
cmp eax, 4
jne 0x4474cf
mov ecx, 0x400
lea eax, [ebp - 0x434]
cmp dword [ebp - 0x424], ecx
cmovb ecx, dword [ebp - 0x424]
cmp dword [ebp - 0x420], 0x10
cmovae eax, dword [ebp - 0x434]
test ecx, ecx
je 0x447489
push ecx
push eax
lea eax, [ebp - 0x404]
push eax
call fcn.004568d0
add esp, 0xc
lea eax, [ebp - 0x404]
push eax
call fcn.0044d9d0
add esp, 4
call fcn.0044d9a0
test al, al
je 0x4474a8
call fcn.0044d9b0
jmp 0x447526
cmp dword [0x49c2a4], 0
je 0x4474a1
lea eax, [ebp - 0x41c]
push eax
lea ecx, [esi + 0xc]
call fcn.00409dc0
lea eax, [ebp - 0x41c]
push eax
call dword [0x49c2a4]
jmp 0x44750c
cmp eax, 3
jne 0x447526
cmp dword [0x49c2a8], 0
lea eax, [ebp - 0x41c]
lea ecx, [esi + 0xc]
push eax
je 0x4474fb
call fcn.00409dc0
lea eax, [ebp - 0x41c]
push eax
call dword [0x49c2a8]
jmp 0x44750c
call fcn.00409dc0
lea eax, [ebp - 0x41c]
push eax
call fcn.00447b50
add esp, 4
cmp dword [ebp - 0x408], 0x10
jb 0x447526
push dword [ebp - 0x41c]
call fcn.00454c01
add esp, 4
cmp dword [ebp - 0x420], 0x10
jb 0x44753d
push dword [ebp - 0x434]
call fcn.00454c01
add esp, 4
push dword [esi + 0xac]
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea esi, [ebx + 0x50]
mov ecx, esi
call fcn.00409650
push esi
mov dword [esi], vtable.std::ios_base.0
call fcn.00451440
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00458fb5
mov esp, ebp
pop ebp
ret