Function at 0x402dda
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 0x402eaa
cmp dword [0x7184d0], 0
je 0x402e35
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
lea eax, [ebx + 1]
jmp 0x402eef
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 0x402eed
movsx eax, byte [ebx]
mov dword [esp + 4], eax
mov dword [esp], 0x44eaa8
call sub.msvcrt.dll_strchr
test eax, eax
jne 0x402ea5
dec ebx
cmp ebx, esi
jae 0x402ed1
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 0x402f13
mov dword [esp + 0x1c], ebp
mov dword [esi], 0x45622c
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 0x402fcc
cmp dword [0x7184d0], 0
je 0x402f58
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
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 0x403076
cmp dword [0x7184d0], 0
je 0x403002
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
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 0x403120
cmp dword [0x7184d0], 0
je 0x4030ac
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
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], 0x44eaac
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.0040ee32
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.0040ee32
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 0x403205
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0x45622c
mov dword [esp], ebx
call fcn.0044ab24
cmp byte [esp + 0x24], 0
je 0x4031da
mov dword [esp], ebx
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], ebx
call fcn.0040f9f6
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x4031ea
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 0x4037cf
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 0x403276
mov ebx, edi
mov dword [esp + 0x20], 0x45622c
mov dword [esp], edi
call fcn.0044ab24
cmp byte [esp + 0x24], 0
je 0x40324b
mov dword [esp], edi
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], edi
call fcn.0040f9f6
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x40325b
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 0x4037cf
lea eax, [eax + 2]
mov dword [esp], eax
call fcn.004019f2
mov dword [esp + 0x18], eax
mov byte [eax], 0xa
mov eax, dword [esp + 0x18]
inc eax
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 0x403491
cmp dword [0x7184d0], 0
je 0x4032c6
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x40336b
cmp dword [0x7184d0], 0
je 0x4032f7
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
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 0x403414
cmp dword [0x7184d0], 0
je 0x4033a0
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
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.0040ee32
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.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov ebx, eax
mov esi, eax
sar esi, 0x1f
test esi, esi
jns 0x4034f9
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0x45622c
mov dword [esp], ebx
call fcn.0044ab24
cmp byte [esp + 0x24], 0
je 0x4034ce
mov dword [esp], ebx
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], ebx
call fcn.0040f9f6
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x4034de
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 0x4037cf
mov eax, dword [esp + 0x18]
add eax, ebx
mov byte [eax + 1], 0
call fcn.004125be
mov dword [esp + 4], 0x44eaad
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_strstr
mov ebx, eax
test eax, eax
je 0x40358a
inc ebx
mov dword [esp + 4], 0x44eaad
mov dword [esp], ebx
call sub.msvcrt.dll_strstr
mov esi, eax
test eax, eax
je 0x40353c
mov byte [eax], 0
mov ebp, 0xffffffff
mov edi, 0x44eab0
cld
mov ecx, ebp
mov al, 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x44eab0
mov dword [esp], ebx
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x403584
mov edi, 0x44eab0
cld
mov ecx, ebp
repne scasb al, byte es:[edi]
not ecx
lea ecx, [ecx + ebx - 1]
test ecx, ecx
je 0x403584
mov dword [esp], ebx
call fcn.0041eb80
mov ebx, esi
test esi, esi
jne 0x403522
mov ecx, dword [esp + 0x18]
mov dword [esp], ecx
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 0x403770
cmp dword [0x7184d0], 0
je 0x4035cb
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x403670
cmp dword [0x7184d0], 0
je 0x4035fc
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
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 0x403719
cmp dword [0x7184d0], 0
je 0x4036a5
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
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.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [edi + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x44eac6
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0040ee32
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.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [edi + 8], 0xffffffff
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], 0x45622c
mov dword [esp], ebx
call fcn.0044ab24
cmp byte [esp + 0x24], 0
je 0x4037a9
mov dword [esp], ebx
mov eax, dword [esp + 0x20]
call dword [eax + 0x14]
mov dword [esp], ebx
call fcn.0040f9f6
mov byte [esp + 0x24], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x10]
je 0x4037b9
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