Function at 0x403947
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 0x5c4eb0
push str.CALMIFInfo::ReadLog
push 5
mov esi, ecx
xor ebx, ebx
call fcn.00424dad
lea edi, [esi + 0x158]
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x403976
mov eax, dword [edi]
jmp 0x403978
mov eax, edi
push eax
call fcn.004366b8
pop ecx
test eax, eax
je 0x40400d
cmp dword [edi + 0x14], 8
jb 0x40398f
mov edi, dword [edi]
push 0x40
push 0x5c5118
push edi
call fcn.0058eded
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x403fea
push ebx
push 0xac
push 1
push esi
call fcn.0058f434
mov edi, eax
add esp, 0x10
test edi, edi
je 0x403fea
push ebx
call fcn.0058f249
pop ecx
test eax, eax
jne 0x403fea
mov eax, 0xac
cmp edi, eax
jae 0x4039ed
sub eax, edi
push eax
lea eax, [edi + esi]
push 0
push eax
call fcn.0058e700
add esp, 0xc
mov edi, 0xac
mov dword [ebp - 4], esi
push edi
lea eax, [ebp - 4]
mov ecx, esi
push eax
push 4
lea eax, [esi + 0xac]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xb0]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xb4]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xb8]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xbc]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xc0]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xc4]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xc8]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xcc]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xd0]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xd4]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xd8]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xdc]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xe0]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xe4]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xe8]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xec]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xf0]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xf4]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xf8]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0xfc]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x100]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x104]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x108]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x10c]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x110]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x114]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x118]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x11c]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x120]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x124]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x128]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x12c]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x130]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x134]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x138]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x13c]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x140]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x144]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x148]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x14c]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x150]
push eax
call fcn.00401f2a
test eax, eax
je 0x403fea
mov eax, esi
mov ecx, esi
sub eax, dword [ebp - 4]
add eax, edi
push eax
lea eax, [ebp - 4]
push eax
push 4
lea eax, [esi + 0x154]
push eax
call fcn.00401f2a
test eax, eax
jne 0x40400d
push 0x5c4ee8
push str.CALMIFInfo::ReadLog
push 5
call fcn.00424dad
add esp, 0xc
test ebx, ebx
je 0x404009
push ebx
call fcn.0058f1d2
pop ecx
xor eax, eax
jmp 0x40402f
push 0x5c4ecc
push str.CALMIFInfo::ReadLog
push 5
call fcn.00424dad
add esp, 0xc
test ebx, ebx
je 0x40402c
push ebx
call fcn.0058f1d2
pop ecx
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret