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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x50b384]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
mov eax, dword [edi]
cmp eax, dword [0x50e248]
jl 0x444888
lea esi, [edi + 4]
push 0xa
mov ecx, esi
call fcn.004442f0
mov ecx, esi
call fcn.0040a39c
lea ecx, [ebp - 0x20]
lea esi, [edi + 8]
push ecx
mov ecx, esi
call fcn.00409507
mov eax, dword [0x50e264]
test eax, eax
je 0x444697
mov ecx, dword [edi]
lea edx, [ebp - 0x20]
push edx
push ecx
call eax
add esp, 8
test al, al
je 0x444697
cmp dword [ebp - 8], 0x10
jb 0x444888
mov edx, dword [ebp - 0x1c]
push edx
call fcn.0048e976
add esp, 4
jmp 0x444888
mov eax, dword [0x50e240]
push ebx
mov ebx, 0x10
test eax, eax
je 0x4446dd
cmp dword [edi], 1
jg 0x4446dd
cmp dword [eax + 0x18], ebx
jb 0x4446b5
mov ecx, dword [eax + 4]
jmp 0x4446b8
lea ecx, [eax + 4]
mov eax, dword [eax + 0x14]
push ecx
push eax
mov eax, dword [edi + 0x84]
push eax
lea ecx, [ebp - 0x20]
call fcn.00443770
test eax, eax
je 0x4446dd
lea ecx, [ebp - 0x20]
call fcn.00401992
jmp 0x444887
mov eax, dword [0x509dac]
cmp eax, 2
je 0x4446ec
cmp eax, 3
jne 0x4446fe
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 8], ebx
jae 0x4446f7
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [edi], 2
jl 0x444733
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 8], ebx
jae 0x44470e
lea eax, [ebp - 0x1c]
push eax
push 0x4e8098
call fcn.004938cf
add eax, 0x40
push eax
call fcn.004937b3
call fcn.004938cf
add eax, 0x40
push eax
call fcn.00493757
add esp, 0x10
mov eax, dword [0x509dac]
test eax, eax
je 0x4447fb
cmp eax, 2
je 0x4447fb
call fcn.00443970
test al, al
je 0x4447fb
cmp dword [0x50e24c], 0
jne 0x444775
call fcn.00443ae0
mov ecx, dword [0x50e26c]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x4447a3
mov eax, dword [0x50e268]
test eax, eax
jne 0x44479c
push 0x18
call fcn.0048eb1c
add esp, 4
test eax, eax
je 0x444795
mov ecx, eax
call fcn.004481d0
jmp 0x444797
xor eax, eax
mov dword [0x50e268], eax
mov ecx, eax
call fcn.00448200
mov edx, dword [0x50e254]
push 2
push 0
push 0
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 8], ebx
jae 0x4447c1
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
push 0
lea ecx, [ebp - 0x40]
push ecx
push edx
push eax
mov eax, dword [0x50e254]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [0x50e24c], 0
jne 0x4447f0
mov ecx, dword [0x50e26c]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x4447fb
mov ecx, dword [0x50e268]
call fcn.00448210
mov eax, dword [edi]
cmp eax, 4
jne 0x444832
call fcn.0044d030
test al, al
je 0x444812
call fcn.0044d040
jmp 0x444876
cmp dword [0x50e25c], 0
je 0x44480b
lea edx, [ebp - 0x3c]
push edx
mov ecx, esi
call fcn.00409507
lea eax, [ebp - 0x3c]
push eax
call dword [0x50e25c]
jmp 0x44486b
cmp eax, 3
jne 0x444876
cmp dword [0x50e260], 0
je 0x444857
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, esi
call fcn.00409507
lea edx, [ebp - 0x3c]
push edx
call dword [0x50e260]
jmp 0x44486b
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.00409507
lea ecx, [ebp - 0x3c]
push ecx
call fcn.004437e0
add esp, 4
lea ecx, [ebp - 0x3c]
call fcn.00401992
cmp dword [ebp - 8], ebx
jb 0x444887
mov edx, dword [ebp - 0x1c]
push edx
call fcn.0048e976
add esp, 4
pop ebx
mov eax, dword [edi + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea esi, [edi + 0x50]
mov ecx, esi
call fcn.00407319
push esi
mov dword [esi], vtable.std::ios_base.0
call fcn.0048e01b
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
xor ecx, ebp
pop esi
call fcn.0048ebcd
mov esp, ebp
pop ebp
ret