Function at 0x43a4e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x142c
call fcn.0049f010
mov eax, dword [0x4d3100]
xor eax, esp
mov dword [esp + 0x1428], eax
push ebx
push esi
push edi
mov eax, ecx
lea ecx, [esp + 0x28]
push 0
push ecx
push 0
push 0
push eax
mov dword [esp + 0x30], eax
call fcn.00494895
lea ecx, [esp + 0x3c]
add esp, 0x14
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x43a520
mov eax, dword [str..mjo]
mov dword [ecx], eax
mov al, byte [0x4c3ba8]
mov byte [ecx + 4], al
lea ecx, [esp + 0x28]
call fcn.004829b0
lea ecx, [esp + 0x28]
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43a550
sub ecx, edx
cmp ecx, 0x7f
jbe 0x43a572
push 0x7f
lea eax, [esp + 0x2c]
push eax
push 0x4c5330
call fcn.00439f00
add esp, 0xc
mov esi, dword [0x4e6824]
xor edi, edi
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [esp + 0xc], edi
test esi, esi
je 0x43a680
lea esp, [esp]
push 0x7ff
lea eax, [esp + 0xc34]
push esi
push eax
call fcn.00495450
add esp, 0xc
lea eax, [esp + 0x28]
push 0x7ff
push eax
lea eax, [esp + 0x438]
push eax
call fcn.00495450
add esp, 0xc
lea ecx, [esp + 0xc30]
call fcn.004826b0
lea ecx, [esp + 0x430]
call fcn.004826b0
lea edx, [esp + 0x430]
lea ecx, [esp + 0xc30]
call fcn.00482780
test eax, eax
je 0x43a5fe
mov esi, dword [esi + 0xa8]
test esi, esi
jne 0x43a590
jmp 0x43a684
lea ecx, [esp + 0x28]
call fcn.00481730
mov edi, eax
cmp edi, 0xffffffff
jne 0x43a621
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
jmp 0x43a645
lea eax, [esp + 0x10]
push eax
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x14]
xor eax, eax
add eax, dword [esp + 0x10]
adc ecx, 0
cmp dword [esi + 0x80], eax
jne 0x43a659
cmp dword [esi + 0x84], ecx
je 0x43aa75
push dword [esi + 0xa0]
mov edi, 1
mov dword [esp + 0x10], edi
call fcn.00494034
add esp, 4
push dword [esi + 0xa4]
call fcn.00494034
add esp, 4
mov edi, edi
test edi, edi
jne 0x43a6ba
push 0xd0
call fcn.00497cab
mov esi, eax
add esp, 4
test esi, esi
jne 0x43a6aa
push 0x10
push str.malloc
push 0x4c9a90
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0xb0
push 0
push esi
call fcn.0049cbc0
add esp, 0xc
cmp dword [0x53bf90], 0
jne 0x43a6e1
push 0x575f18
call ebx
push 0x4801a0
call fcn.0049543a
add esp, 4
mov dword [0x53bf90], 1
lea edx, [esp + 0x328]
lea ecx, [esp + 0x28]
call fcn.00482070
test eax, eax
jne 0x43a7b0
xor edx, edx
mov ecx, str.scenario
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario9
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario8
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario7
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario6
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario5
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario4
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario3
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario2
call fcn.00480f10
xor edx, edx
mov ecx, str.scenario1
call fcn.00480f10
cmp dword [0x53bf90], 0
jne 0x43a798
push 0x575f18
call ebx
push 0x4801a0
call fcn.0049543a
add esp, 4
mov dword [0x53bf90], 1
lea edx, [esp + 0x328]
lea ecx, [esp + 0x28]
call fcn.00482070
test eax, eax
je 0x43a9c7
lea ecx, [esp + 0x28]
call fcn.00481730
mov edi, eax
cmp edi, 0xffffffff
jne 0x43a7d3
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
jmp 0x43a7f7
lea eax, [esp + 0x20]
push eax
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x24]
xor ecx, ecx
add ecx, dword [esp + 0x20]
adc eax, 0
cmp dword [0x53bf90], 0
mov dword [esi + 0x80], ecx
mov dword [esi + 0x84], eax
jne 0x43a82a
push 0x575f18
call ebx
push 0x4801a0
call fcn.0049543a
add esp, 4
mov dword [0x53bf90], 1
mov edx, 0x4c3d40
lea ecx, [esp + 0x28]
call fcn.004810b0
mov edi, eax
test edi, edi
jne 0x43a866
mov edi, edi
lea eax, [esp + 0x28]
push eax
push str.Ffopen_:
call fcn.004857d0
add esp, 8
lea ecx, [esp + 0x28]
mov edx, 0x4c3d40
call fcn.004810b0
mov edi, eax
test edi, edi
je 0x43a840
push edi
push 1
lea eax, [esp + 0x230]
push 0x10
push eax
call fcn.00495739
add esp, 0x10
cmp eax, 1
jne 0x43a9c3
mov ecx, str.MajiroObjV1.000
lea edx, [esp + 0x228]
lea ebx, [eax + 0xb]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x43a8ae
add ecx, 4
add edx, 4
sub ebx, 4
jae 0x43a893
mov dword [esp + 0x18], 0
jmp 0x43a8dd
mov ecx, str.MajiroObjX1.000
lea edx, [esp + 0x228]
mov ebx, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x43a9bd
add ecx, 4
add edx, 4
sub ebx, 4
jae 0x43a8c0
mov dword [esp + 0x18], 1
push edi
push 1
lea eax, [esi + 0x94]
push 4
push eax
call fcn.00495739
add esp, 0x10
cmp eax, 1
jne 0x43a9bd
push edi
push eax
lea eax, [esi + 0x98]
push 4
push eax
call fcn.00495739
add esp, 0x10
cmp eax, 1
jne 0x43a9bd
push edi
push eax
lea ebx, [esi + 0x8c]
push 4
push ebx
call fcn.00495739
add esp, 0x10
cmp eax, 1
jne 0x43a9bd
mov eax, dword [ebx]
lea eax, [eax*8 + 0x40]
push eax
call fcn.00497cab
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x43a965
push 0x10
push str.malloc
push 0x4c9a90
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx]
push edi
push 1
shl eax, 3
push eax
push ecx
mov dword [esi + 0xa0], ecx
call fcn.00495739
add esp, 0x10
cmp eax, 1
jne 0x43a9bd
push edi
push eax
lea ebx, [esi + 0x90]
push 4
push ebx
call fcn.00495739
add esp, 0x10
cmp eax, 1
jne 0x43a9bd
mov ecx, dword [ebx]
add ecx, 0x20
call fcn.00484ed0
push edi
push 1
push dword [ebx]
mov dword [esi + 0xa4], eax
push eax
call fcn.00495739
add esp, 0x10
cmp eax, 1
je 0x43aa04
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov edi, dword [esp + 0xc]
push dword [esp + 0x1c]
push str.MajiroObj_:
call fcn.004857d0
mov eax, dword [esi + 0xa0]
add esp, 8
test eax, eax
je 0x43a9eb
push eax
call fcn.00494034
add esp, 4
mov eax, dword [esi + 0xa4]
test eax, eax
je 0x43a9fe
push eax
call fcn.00494034
add esp, 4
push esi
jmp 0x43a676
push edi
call fcn.00494b54
add esp, 4
cmp dword [esp + 0x18], 0
je 0x43aa25
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0xa4]
call fcn.00487100
lea ecx, [esp + 0x28]
mov edx, esi
mov eax, ecx
sub edx, eax
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x43aa30
mov ecx, esi
call fcn.00486f40
cmp dword [esp + 0xc], 0
mov dword [esi + 0x88], eax
jne 0x43aa62
mov eax, dword [0x4e6824]
mov dword [esi + 0xa8], eax
mov dword [0x4e6824], esi
mov edx, dword [esi + 0x98]
mov ecx, esi
call fcn.00439af0
mov dword [esi + 0x9c], eax
mov ecx, dword [esp + 0x1434]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00493955
mov esp, ebp
pop ebp
ret