Function at 0x403d90
Capabilities:
Read file on windows

Disassembly:
mov ecx, dword [ecx + 4]
jmp 0x405c90
sub esp, 0x410
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x5c]
xor ebp, ebp
push edi
cmp eax, ebp
je 0x405cb1
push eax
call fcn.0041cbd4
add esp, 4
mov dword [esi + 0x5c], ebp
cmp dword [esi + 0x38], ebp
je 0x405cfc
mov ebx, 0x10
cmp dword [esi + 0x3c], ebx
jb 0x405cc5
mov eax, dword [esi + 0x28]
jmp 0x405cc8
lea eax, [esi + 0x28]
push 0x432060
push eax
call fcn.0041d29f
add esp, 8
mov dword [esi + 0x5c], eax
cmp eax, ebp
jne 0x405d20
cmp dword [esi + 0x3c], ebx
jb 0x405ce7
mov eax, dword [esi + 0x28]
jmp 0x405cea
lea eax, [esi + 0x28]
push ebp
push eax
push 0x2710
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
call fcn.004051d0
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x405d13
push eax
call fcn.0041cbd4
add esp, 4
mov dword [esi + 0x5c], 0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x410
ret
push 2
push ebp
push eax
call fcn.0041ce47
add esp, 0xc
test eax, eax
je 0x405d59
cmp dword [esi + 0x3c], ebx
jb 0x405d47
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 4]
push ebp
push eax
push 0x2718
jmp 0x405cf7
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 4]
push ebp
lea eax, [esi + 0x28]
push eax
push 0x2718
jmp 0x405cf7
mov edx, dword [esi + 0x5c]
push edx
call fcn.0041d16d
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
add esp, 4
mov dword [esp + 0x1c], edi
call edx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405d78
sub eax, edx
add eax, 0x19
mov dword [esp + 0x10], eax
cmp edi, eax
jae 0x405daf
cmp dword [esi + 0x3c], ebx
jb 0x405da0
mov eax, dword [esi + 0x28]
push ebp
push eax
push 0x2714
jmp 0x405cf1
push ebp
lea eax, [esi + 0x28]
push eax
push 0x2714
jmp 0x405cf1
xor bl, bl
mov edi, 0xfffffff7
mov ecx, dword [esi + 0x5c]
push 2
push edi
push ecx
call fcn.0041ce47
add esp, 0xc
test eax, eax
jne 0x405e30
mov edx, dword [esi + 0x5c]
push edx
push 9
lea eax, [esp + 0x28]
push 1
push eax
call fcn.0041ca88
add esp, 0x10
cmp eax, 9
jne 0x405e30
mov ecx, dword [esi + 0x5c]
push ecx
mov byte [esp + 0x2d], 0
inc ebp
dec edi
call fcn.0041d16d
add esp, 4
cmp eax, dword [esp + 0x10]
jb 0x405e32
mov ecx, str._SFX_____
lea eax, [esp + 0x20]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405e25
test dl, dl
je 0x405e21
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405e25
add eax, 2
add ecx, 2
test dl, dl
jne 0x405e05
xor eax, eax
jmp 0x405e2a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405db6
jmp 0x405e32
mov bl, 1
dec ebp
test bl, bl
je 0x405e69
cmp dword [esi + 0x3c], 0x10
jb 0x405e53
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
push 0
push eax
push 0x2718
jmp 0x405cf7
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
push 0
lea eax, [esi + 0x28]
push eax
push 0x2718
jmp 0x405cf7
mov ecx, str._SFX_____
lea eax, [esp + 0x20]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x405e92
test dl, dl
je 0x405e8e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x405e92
add eax, 2
add ecx, 2
test dl, dl
jne 0x405e72
xor eax, eax
jmp 0x405e97
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x405ec1
cmp dword [esi + 0x3c], 0x10
jb 0x405eb1
mov eax, dword [esi + 0x28]
push 0
push eax
push 0x2715
jmp 0x405cf1
push 0
lea eax, [esi + 0x28]
push eax
push 0x2715
jmp 0x405cf1
mov edx, dword [esi + 0x5c]
mov ecx, 0xffffffef
push 2
sub ecx, ebp
push ecx
push edx
call fcn.0041ce47
add esp, 0xc
test eax, eax
je 0x405f01
cmp dword [esi + 0x3c], 0x10
jb 0x405ef1
mov eax, dword [esi + 0x28]
push 0
push eax
push 0x2718
jmp 0x405cf1
push 0
lea eax, [esi + 0x28]
push eax
push 0x2718
jmp 0x405cf1
mov ecx, dword [esi + 0x5c]
push ecx
push 1
lea edx, [esp + 0x1c]
push 4
push edx
call fcn.0041ca88
add esp, 0x10
cmp eax, 1
je 0x405f31
cmp dword [esi + 0x3c], 0x10
jb 0x405ef1
mov eax, dword [esi + 0x28]
push 0
push eax
push 0x2718
jmp 0x405cf1
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00406e20
mov edx, dword [esi + 4]
add esp, 4
push eax
push 0x4319e7
mov dword [esp + 0x1c], eax
mov dword [esi + 0x60], eax
mov ecx, dword [edx + 4]
push 0xe
call fcn.004051d0
mov eax, dword [esi + 0x5c]
push eax
push 1
lea ecx, [esp + 0x20]
push 4
push ecx
call fcn.0041ca88
add esp, 0x10
cmp eax, 1
je 0x405f92
cmp dword [esi + 0x3c], 0x10
jb 0x405e53
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
push 0
push eax
push 0x2718
jmp 0x405cf7
mov eax, dword [esp + 0x18]
push eax
call fcn.00406e20
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx]
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esi + 0x64], eax
cmp edx, dword [esp + 0x1c]
jbe 0x405fcd
cmp dword [esi + 0x3c], 0x10
jb 0x405eb1
mov eax, dword [esi + 0x28]
push 0
push eax
push 0x2715
jmp 0x405cf1
mov ecx, dword [esi + 0x5c]
push 0
push eax
push ecx
call fcn.0041ce47
add esp, 0xc
test eax, eax
je 0x406000
cmp dword [esi + 0x3c], 0x10
jb 0x405e53
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
push 0
push eax
push 0x2718
jmp 0x405cf7
push str._____SFX
mov ecx, esi
call fcn.00405890
test al, al
je 0x405cfc
push 0x431fd0
mov ecx, esi
call fcn.00405890
test al, al
je 0x405cfc
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
push eax
mov ecx, esi
call fcn.00405890
test al, al
je 0x405cfc
mov ecx, esi
call fcn.00405b00
test al, al
je 0x405cfc
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x410
ret