Function at 0x402ca6
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x60]
mov ebp, 0xffffffff
mov edi, ebx
mov dl, 0
cld
mov ecx, ebp
mov al, dl
repne scasb al, byte es:[edi]
mov esi, ecx
not esi
mov edi, str.arc.ini
mov ecx, ebp
repne scasb al, byte es:[edi]
not ecx
lea edi, [esi + ecx - 2]
mov dword [esp], edi
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x402d76
cmp dword [0x6fb4d0], 0
je 0x402d01
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
lea eax, [ebx + 1]
jmp 0x402dbb
mov ebp, eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov esi, ebp
mov dword [esp + 4], 0
mov dword [esp], ebp
call sub.msvcrt.dll_strchr
lea ebx, [eax - 1]
cmp ebx, ebp
jb 0x402db9
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x436282
call sub.msvcrt.dll_strchr
test eax, eax
jne 0x402d71
dec ebx
cmp ebx, esi
jae 0x402d9d
mov eax, esi
mov dword [esp + 4], str.arc.ini
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
lea esi, [esp + 0x20]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x402ddf
mov dword [esp + 0x1c], ebp
mov dword [esi], 0x4397cc
mov dword [esi + 8], 0xffffffff
mov byte [esi + 4], 0
lea ebx, [esi + 0xc]
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x402e98
cmp dword [0x6fb4d0], 0
je 0x402e24
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
lea ebx, [esi + 0x18]
mov dword [esp], 0x10000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x402f42
cmp dword [0x6fb4d0], 0
je 0x402ece
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
lea ebx, [esi + 0x10]
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x402fec
cmp dword [0x6fb4d0], 0
je 0x402f78
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x14], eax
mov dword [esp + 4], 0x436286
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call fcn.0040d56a
mov ecx, dword [esp + 0x1c]
mov dword [esp + 4], ecx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call fcn.0040d56a
mov dword [esp], ebp
call sub.msvcrt.dll_free
lea ebx, [esp + 0x20]
lea esi, [esp + 0x28]
mov dword [esp + 8], 0x180
mov dword [esp + 4], 0x8000
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call sub.msvcrt.dll__wopen
mov dword [esi], eax
mov eax, dword [ebx + 8]
not eax
shr eax, 0x1f
test al, al
jne 0x4030d1
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0x4397cc
mov dword [esp], ebx
call fcn.00432ea4
cmp byte [esp + 0x24], 0
je 0x4030a6
mov dword [esp], ebx
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], ebx
call fcn.0040df3c
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x4030b6
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x403675
lea edi, [esp + 0x20]
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll__filelengthi64
mov ebx, eax
test edx, edx
jns 0x403142
mov ebx, edi
mov dword [esp + 0x20], 0x4397cc
mov dword [esp], edi
call fcn.00432ea4
cmp byte [esp + 0x24], 0
je 0x403117
mov dword [esp], edi
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], edi
call fcn.0040df3c
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x403127
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x403675
lea eax, [eax + 2]
mov dword [esp], eax
call fcn.00401942
mov ebp, eax
mov byte [eax], 0xa
lea eax, [eax + 1]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll__read
test eax, eax
jns 0x403359
cmp dword [0x6fb4d0], 0
je 0x40318e
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x403233
cmp dword [0x6fb4d0], 0
je 0x4031bf
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov ebx, eax
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
jne 0x4032dc
cmp dword [0x6fb4d0], 0
je 0x403268
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [ebx], 0x4f525245
mov dword [ebx + 4], 0x66203a52
mov dword [ebx + 8], 0x20656c69
mov dword [ebx + 0xc], 0x64616572
mov dword [ebx + 0x10], 0x65706f20
mov dword [ebx + 0x14], 0x69746172
mov dword [ebx + 0x18], 0x66206e6f
mov dword [ebx + 0x1c], 0x656c6961
mov word [ebx + 0x20], 0x64
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov esi, eax
sar esi, 0x1f
test esi, esi
jns 0x4033bf
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0x4397cc
mov dword [esp], ebx
call fcn.00432ea4
cmp byte [esp + 0x24], 0
je 0x403394
mov dword [esp], ebx
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], ebx
call fcn.0040df3c
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x4033a4
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x403675
lea eax, [ebp + eax]
mov byte [eax + 1], 0
call fcn.0040f28e
mov dword [esp + 4], 0x436287
mov dword [esp], ebp
call sub.msvcrt.dll_strstr
mov ebx, eax
test eax, eax
je 0x403434
inc ebx
mov dword [esp + 4], 0x436287
mov dword [esp], ebx
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x4033fc
mov byte [eax], 0
mov edi, 0x43628a
cld
mov al, 0
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x43628a
mov dword [esp], ebx
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40342e
mov dword [esp], ebx
call fcn.00419c40
mov ebx, esi
test esi, esi
jne 0x4033e2
mov dword [esp], ebp
call sub.msvcrt.dll_free
lea edi, [esp + 0x20]
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll__close
test eax, eax
je 0x403616
cmp dword [0x6fb4d0], 0
je 0x403471
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x403516
cmp dword [0x6fb4d0], 0
je 0x4034a2
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov esi, eax
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
jne 0x4035bf
cmp dword [0x6fb4d0], 0
je 0x40354b
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [edi + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4362a0
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0040d56a
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], ebx
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [edi + 8], 0xffffffff
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0x4397cc
mov dword [esp], ebx
call fcn.00432ea4
cmp byte [esp + 0x24], 0
je 0x40364f
mov dword [esp], ebx
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], ebx
call fcn.0040df3c
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x40365f
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_free
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret