Function at 0x43227d
Capabilities:
Print debug messages
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x310
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov byte [ebp - 1], bl
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x4322a4
push eax
call sub.MFC42.DLL_operatordelete
pop ecx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
push 2
push dword [esi]
call dword [sym.imp.MSVCRT.dll__open]
pop ecx
cmp eax, 0xffffffff
pop ecx
mov dword [ebp - 8], eax
jne 0x4322d8
call dword [sym.imp.MSVCRT.dll__errno]
push dword [eax]
push dword [esi]
push str.open__s_return__1__errno_d_n
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0xc
mov byte [ebp - 1], bl
jmp 0x432465
push 0x103
lea eax, [ebp - 0x110]
push dword [esi]
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
mov byte [ebp - 0xd], bl
lea eax, [ebp - 0x110]
push 0x5c
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
pop ecx
cmp eax, ebx
pop ecx
je 0x43230c
mov byte [eax], 0x2f
jmp 0x4322f8
lea eax, [ebp - 0x110]
push eax
push 1
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
cmp eax, ebx
mov dword [ebp - 0xc], eax
jne 0x432363
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x310]
push dword [esi]
push str.KCBPXML::ReloadXMLFile__s__CreateSemaphore_return_NULL__error_d_n
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.MSVCRT.dll_printf]
pop ecx
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x432429
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x4323a5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x310]
push dword [esi]
push str.KCBPXML::ReloadXMLFile__s__WaitForSingleObject_return_FAILED__error_d_n
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.MSVCRT.dll_printf]
pop ecx
lea eax, [ebp - 0x310]
jmp 0x432357
mov edi, dword [sym.imp.MSVCRT.dll__lseek]
push 2
push ebx
push dword [ebp - 8]
call edi
add esp, 0xc
cmp eax, 1
mov dword [esi + 8], eax
jl 0x432426
add eax, 2
push eax
call sub.MFC42.DLL_operatornew
cmp eax, ebx
pop ecx
mov dword [esi + 4], eax
je 0x432426
push ebx
push ebx
push dword [ebp - 8]
call edi
add esp, 0xc
cmp eax, 0xffffffff
je 0x432414
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp - 8]
call dword [sym.imp.MSVCRT.dll__read]
add esp, 0xc
cmp eax, 0xffffffff
je 0x432414
mov ecx, dword [esi + 8]
cmp eax, ecx
jg 0x432414
sub ecx, eax
add eax, dword [esi + 4]
inc ecx
inc ecx
push ecx
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov byte [ebp - 1], 1
jmp 0x432429
mov eax, dword [esi + 8]
inc eax
inc eax
push eax
push ebx
push dword [esi + 4]
call sub.MSVCRT.dll_memset
add esp, 0xc
mov byte [ebp - 1], bl
cmp dword [ebp - 0xc], ebx
je 0x43245b
push ebx
push 1
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
jne 0x432452
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.KCBPXML::ReloadXMLFile_ReleaseSemaphore_return_NULL__error_d_n
call dword [sym.imp.MSVCRT.dll_printf]
pop ecx
pop ecx
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 8]
call dword [sym.imp.MSVCRT.dll__close]
pop ecx
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x432503
push 0x44a058
push str.____
push eax
mov ecx, esi
call fcn.0043250b
mov edi, dword [sym.imp.MSVCRT.dll_strstr]
push 0x44a04c
push dword [esi + 4]
call edi
pop ecx
test eax, eax
pop ecx
jne 0x4324e8
push 0x44a048
push dword [esi + 4]
call edi
pop ecx
test eax, eax
pop ecx
jne 0x4324e8
push 0x44a044
push dword [esi + 4]
call edi
pop ecx
test eax, eax
pop ecx
jne 0x4324e8
push 0x44a040
push dword [esi + 4]
call edi
pop ecx
test eax, eax
pop ecx
jne 0x4324e8
push 0x44a03c
push dword [esi + 4]
call edi
pop ecx
test eax, eax
pop ecx
jne 0x4324e8
push 0x44a038
push dword [esi + 4]
call edi
pop ecx
test eax, eax
pop ecx
je 0x4324f7
push 0x44a034
mov ecx, esi
push dword [esi + 4]
call fcn.0043259b
push dword [esi + 4]
call sub.MSVCRT.dll_strlen
pop ecx
mov dword [esi + 8], eax
mov al, byte [ebp - 1]
pop edi
pop esi
pop ebx
leave
ret