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

Disassembly:
push 0xffffffffffffffff
push 0x453309
mov eax, dword fs:[0]
push eax
sub esp, 0x1ec
mov eax, dword [0x467340]
xor eax, esp
mov dword [esp + 0x1e8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x467340]
xor eax, esp
push eax
lea eax, [esp + 0x200]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x34], ebp
mov dword [ebp], 0x45d6a0
xor ebx, ebx
mov dword [esp + 0x208], ebx
cmp byte [0x46aa30], bl
je 0x41fc88
mov dword [esp + 0xf0], 0xf
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
lea eax, [esp + 0x54]
push eax
mov byte [esp + 0x20c], 2
call fcn.0041ffe0
lea esi, [esp + 0x18]
mov byte [esp + 0x208], 3
call fcn.0041f710
mov edi, eax
push ebp
lea esi, [esp + 0x3c]
mov byte [esp + 0x20c], 4
call fcn.0041f800
mov esi, eax
push 0x45d614
push ecx
mov byte [esp + 0x210], 5
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push ecx
push 0x45d618
push ecx
push str.______n
push ecx
mov ecx, dword [ebp + 8]
push ecx
push ecx
push 0x45d620
push ecx
lea edx, [ebp + 0xc]
push edx
push ecx
push 0x45d624
push ecx
push edi
push ecx
push 0x45d628
push ecx
push esi
push ecx
lea eax, [esp + 0xac]
push 0x45d62c
push eax
call fcn.00407a60
add esp, 0xc
push eax
call fcn.00420940
add esp, 0xc
push eax
call fcn.00407a60
add esp, 0xc
push eax
call fcn.00420940
add esp, 0xc
push eax
call fcn.00407a60
add esp, 0xc
push eax
call fcn.00420940
add esp, 0xc
push eax
call fcn.00407a60
add esp, 0xc
push eax
call fcn.00410140
add esp, 4
push eax
call fcn.00407a60
add esp, 0xc
push eax
call fcn.00407a60
add esp, 0xc
push eax
call fcn.00409e00
add esp, 4
push eax
call fcn.00407a60
mov edi, 0x10
add esp, 8
cmp dword [esp + 0x50], edi
jb 0x41fa11
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004308f5
add esp, 4
mov byte [esp + 0x208], 3
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
cmp dword [esp + 0x30], edi
jb 0x41fa3c
mov edx, dword [esp + 0x1c]
push edx
call fcn.004308f5
add esp, 4
lea ecx, [esp + 0x18]
lea eax, [esp + 0x54]
call fcn.004200e0
push ebx
push eax
or eax, 0xffffffff
lea esi, [esp + 0xe0]
mov byte [esp + 0x210], 6
call fcn.0040de20
mov byte [esp + 0x208], 3
cmp dword [esp + 0x30], edi
jb 0x41fa7d
mov eax, dword [esp + 0x1c]
push eax
call fcn.004308f5
add esp, 4
push 1
push 0x45d630
lea eax, [esp + 0xe0]
call fcn.0040d8e0
lea eax, [ebp + 0x28]
lea ecx, [esp + 0x18]
call fcn.004200e0
push ebx
push eax
or eax, 0xffffffff
lea esi, [esp + 0xe0]
mov byte [esp + 0x210], 7
call fcn.0040de20
mov byte [esp + 0x208], 3
cmp dword [esp + 0x30], edi
jb 0x41fad0
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004308f5
add esp, 4
push 1
push 0x45d634
lea eax, [esp + 0xe0]
call fcn.0040d8e0
cmp dword [0x468438], ebx
jne 0x41fbb0
push 0x103
lea edx, [esp + 0xf9]
push ebx
push edx
mov byte [esp + 0x100], bl
call fcn.004375f0
add esp, 0xc
push 0x104
lea eax, [esp + 0xf8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0xf4]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x41fb30
sub eax, edx
push eax
lea ecx, [esp + 0xf8]
push ecx
mov ecx, 0x468424
call fcn.00406050
push 1
push 0x45d5d8
mov edi, 0x468424
call fcn.00406590
push eax
xor ecx, ecx
lea esi, [esp + 0x1c]
mov edx, edi
call fcn.00406190
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [esp + 0x214], 8
call fcn.00406480
mov byte [esp + 0x208], 3
cmp dword [esp + 0x30], 0x10
jb 0x41fb9a
mov edx, dword [esp + 0x1c]
push edx
call fcn.004308f5
add esp, 4
push 0xa
push 0x45d638
mov eax, 0x468424
call fcn.0040d8e0
mov edi, 0x10
mov eax, dword [esp + 0xdc]
cmp dword [esp + 0xf0], edi
jae 0x41fbc7
lea eax, [esp + 0xdc]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x468428]
cmp dword [0x46843c], edi
jae 0x41fbe0
mov eax, 0x468428
push 0x45d644
push eax
call fcn.00432bde
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x41fc25
mov eax, dword [esp + 0xdc]
cmp dword [esp + 0xf0], edi
jae 0x41fc0b
lea eax, [esp + 0xdc]
mov ecx, dword [esp + 0xec]
push esi
push ecx
push 1
push eax
call fcn.004320c5
push esi
call fcn.004321be
add esp, 0x14
lea ecx, [esp + 0xa0]
mov byte [esp + 0x208], 2
call fcn.00420070
lea edx, [esp + 0xa0]
push edx
mov dword [esp + 0xa4], vtable.std::ios_base.0
call fcn.0042f6c0
add esp, 4
cmp dword [esp + 0xf0], edi
jb 0x41fc6d
mov eax, dword [esp + 0xdc]
push eax
call fcn.004308f5
add esp, 4
mov dword [esp + 0xf0], 0xf
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
jmp 0x41fc8d
mov edi, 0x10
lea esi, [ebp + 0x74]
mov ecx, esi
mov byte [esp + 0x208], bl
call fcn.00420070
push esi
mov dword [esi], vtable.std::ios_base.0
call fcn.0042f6c0
add esp, 4
cmp dword [ebp + 0x24], edi
jb 0x41fcbe
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004308f5
add esp, 4
mov dword [ebp + 0x24], 0xf
mov dword [ebp + 0x20], ebx
mov byte [ebp + 0x10], bl
mov ecx, dword [esp + 0x200]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1e8]
xor ecx, esp
call fcn.00430900
add esp, 0x1f8
ret