Function at 0x403110
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x474c1a
mov eax, dword fs:[0]
push eax
mov eax, 0x5094
call fcn.0046bf00
mov eax, dword [0x490018]
xor eax, esp
mov dword [esp + 0x5090], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x490018]
xor eax, esp
push eax
lea eax, [esp + 0x50a8]
mov dword fs:[0], eax
mov edi, ecx
xor ebp, ebp
mov dword [esp + 0x2c], edi
cmp edi, ebp
je 0x4031f4
push edi
lea eax, [esp + 0x70]
push eax
call fcn.00406360
mov dword [esp + 0x50b0], ebp
lea ecx, [esp + 0x6c]
call fcn.0042deb0
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00405f70
mov byte [esp + 0x50b0], 1
cmp dword [esp + 0x48], ebp
je 0x4031af
lea eax, [esp + 0x34]
call fcn.0042d310
lea esi, [esp + 0x34]
call fcn.0042d860
call fcn.0042d750
call fcn.0042d6d0
mov esi, dword [esp + 0x70]
mov ebx, 8
cmp dword [esp + 0x84], ebx
jae 0x4031c5
lea esi, [esp + 0x70]
call fcn.00402650
test eax, eax
jne 0x4031fb
mov byte [esp + 0x50b0], al
lea edx, [esp + 0x34]
push edx
call fcn.004063d0
mov dword [esp + 0x50b0], 0xffffffff
lea eax, [esp + 0x6c]
push eax
call fcn.004063d0
xor eax, eax
jmp 0x403b2d
lea edx, [esp + 0x1c]
mov ecx, edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
call fcn.00402a40
mov edi, eax
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x84], ebx
jae 0x403221
lea eax, [esp + 0x70]
push ebp
push 0x80
push 3
push ebp
push 7
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [esp + 0x14], ebx
cmp ebx, 0xffffffff
jne 0x40326d
mov byte [esp + 0x50b0], 0
lea ecx, [esp + 0x34]
push ecx
call fcn.004063d0
mov dword [esp + 0x50b0], ebx
lea edx, [esp + 0x6c]
push edx
call fcn.004063d0
xor eax, eax
jmp 0x403b2d
mov ecx, ebx
call fcn.00402600
push 0x4fff
mov esi, eax
mov ebp, edx
mov byte [esp + 0xa8], 0
push 0
test edi, edi
je 0x40353b
lea eax, [esp + 0xad]
push eax
mov dword [esp + 0x24], 0
call sub.MSVCR90.dll_memset
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
add esp, 0xc
sub esi, eax
sbb ebp, ecx
js 0x4032c6
jg 0x4032bf
cmp esi, 0x5000
jbe 0x4032c6
mov esi, 0x5000
xor ebp, ebp
push ecx
push eax
push ebx
mov dword [esp + 0x30], esi
call fcn.004025b0
add esp, 0xc
push 0
lea ecx, [esp + 0x1c]
push ecx
push esi
lea edx, [esp + 0xb0]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor edi, edi
mov dword [esp + 0x20], edi
test ebp, ebp
jl 0x403502
jg 0x403304
test esi, esi
jbe 0x403502
mov eax, dword [esp + 0x20]
mov ecx, edi
add ecx, 7
adc eax, 0
cmp eax, ebp
lea esi, [esp + edi + 0xa4]
jg 0x403393
jl 0x403323
cmp ecx, dword [esp + 0x24]
jae 0x403393
push 4
push str.Rar_
push esi
call dword [sym.imp.MSVCR90.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x403393
cmp byte [esp + edi + 0xa8], 0x1a
jne 0x4034e0
cmp byte [esp + edi + 0xa9], 7
jne 0x4034e0
cmp byte [esp + edi + 0xaa], al
jne 0x4034e0
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x50b0], 0
lea eax, [esp + 0x34]
push eax
call fcn.004063d0
mov dword [esp + 0x50b0], 0xffffffff
lea ecx, [esp + 0x6c]
push ecx
jmp 0x403b23
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, edi
add eax, 4
mov ebx, edx
adc ebx, 0
cmp ebx, ebp
mov dword [esp + 0x2c], eax
jg 0x4033f5
jl 0x4033b3
cmp eax, ecx
jae 0x4033bb
cmp dword [esi], 0x41474745
je 0x403361
cmp ebx, ebp
jg 0x4033f5
jl 0x4033c5
cmp eax, ecx
jae 0x4033cd
cmp dword [esi], 0x15a4c41
je 0x403361
cmp ebx, ebp
jg 0x4033f5
jl 0x4033d7
cmp eax, ecx
jae 0x4033df
cmp dword [esi], 0xafbc7a37
je 0x403361
cmp ebx, ebp
jg 0x4033f5
jl 0x4033e9
cmp eax, ecx
jae 0x4033f5
cmp dword [esi], 0x587a37fd
je 0x403361
mov ecx, edi
add ecx, 8
mov eax, edx
adc eax, 0
cmp eax, ebp
jg 0x403428
jl 0x40340b
cmp ecx, dword [esp + 0x24]
jae 0x403428
push 7
push str.ACE
push esi
call dword [sym.imp.MSVCR90.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x403502
mov edx, dword [esp + 0x20]
mov ecx, edi
add ecx, 5
mov eax, edx
adc eax, 0
cmp eax, ebp
jg 0x403461
jl 0x40343e
cmp ecx, dword [esp + 0x24]
jae 0x403461
cmp byte [esp + edi + 0xa8], 0x2d
jne 0x403461
push 3
push 0x47d628
push esi
call dword [sym.imp.MSVCR90.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x403361
push 3
push 0x47d62c
push esi
call dword [sym.imp.MSVCR90.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x403361
cmp ebx, ebp
jg 0x4034b2
jl 0x40348a
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x24]
jae 0x403496
cmp dword [esi], 0x4034b50
je 0x403361
cmp ebx, ebp
jg 0x4034b2
jl 0x4034a6
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x2c], ecx
jae 0x4034b2
cmp dword [esi], 0x2b9d6e06
je 0x403361
mov edx, 0xea60
cmp word [esi], dx
jne 0x4034e0
cmp byte [esi + 6], 1
jne 0x4034e0
cmp byte [esi + 0xa], 4
ja 0x4034e0
movzx eax, word [esi + 2]
cmp ax, 1
jbe 0x4034e0
mov ecx, 0xa28
cmp ax, cx
jbe 0x403361
mov eax, dword [esp + 0x20]
add edi, 1
adc eax, 0
cmp eax, ebp
mov dword [esp + 0x20], eax
jl 0x403304
jg 0x403502
cmp edi, dword [esp + 0x24]
jb 0x403304
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x50b0], 0
lea eax, [esp + 0x34]
push eax
call fcn.004063d0
mov dword [esp + 0x50b0], 0xffffffff
lea ecx, [esp + 0x6c]
push ecx
call fcn.004063d0
xor eax, eax
jmp 0x403b2d
lea edx, [esp + 0xad]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
test ebp, ebp
jl 0x403568
jg 0x403559
cmp esi, 0x5000
jbe 0x403568
mov edi, 0x5000
mov dword [esp + 0x20], 0
jmp 0x40356e
mov edi, esi
mov dword [esp + 0x20], ebp
push 0
push 0
push ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], 0
call fcn.004025b0
add esp, 0xc
push 0
lea eax, [esp + 0x1c]
push eax
push edi
lea ecx, [esp + 0xb0]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0xa4]
cmp eax, 0x41474745
ja 0x4035e3
je 0x403afa
cmp eax, 0x7054842
ja 0x4035d1
je 0x403afa
cmp eax, 0x15a4c41
je 0x403afa
cmp eax, 0x4034b50
jmp 0x403612
cmp eax, 0x8074b50
je 0x403afa
cmp eax, 0x21726152
jmp 0x403612
cmp eax, 0x587a37fd
ja 0x403602
je 0x403afa
cmp eax, 0x44445a53
je 0x403afa
cmp eax, 0x4643534d
jmp 0x403612
cmp eax, 0x8c655d13
je 0x403afa
cmp eax, 0xafbc7a37
je 0x403afa
movzx eax, word [esp + 0xa4]
cmp eax, 0x9d1f
jg 0x403768
je 0x403781
cmp eax, 0x4148
jg 0x40375e
je 0x403781
cmp eax, 0xb1a
je 0x403781
cmp eax, 0x1e1f
je 0x403781
mov edi, dword [sym.imp.MSVCR90.dll_strncmp]
push 7
lea eax, [esp + 0xaf]
push str.ACE
push eax
call edi
add esp, 0xc
test eax, eax
je 0x4036f0
push 3
lea ecx, [esp + 0xaa]
push 0x47d628
push ecx
call edi
add esp, 0xc
test eax, eax
jne 0x40369c
cmp byte [esp + 0xaa], 0x2d
je 0x403afa
push 3
lea edx, [esp + 0xa8]
push 0x47d630
push edx
call edi
add esp, 0xc
test eax, eax
je 0x403afa
push 0x2d
lea eax, [esp + 0xa8]
push str._This_file_must_be_converted_with_BinHex_4.0_
push eax
call edi
add esp, 0xc
test eax, eax
je 0x403afa
push 3
lea ecx, [esp + 0xa8]
push 0x47d664
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x403afa
mov al, byte [esp + 0xa4]
cmp al, 0x1a
jne 0x4037af
cmp byte [esp + 0xa5], 8
ja 0x4037b7
lea eax, [esp + 0xa6]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403717
sub eax, edx
je 0x4037b7
lea eax, [esp + 0xa6]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403730
sub eax, edx
cmp eax, 0xd
jae 0x4037b7
push 0
push 2
push ebp
push esi
call fcn.0046bd70
mov edi, dword [esp + 0xb2]
xor ecx, ecx
cmp ecx, edx
jg 0x4037b7
jl 0x403781
cmp edi, eax
jae 0x4037b7
jmp 0x403781
cmp eax, 0x8b1f
jmp 0x403652
cmp eax, 0x9e1f
je 0x403781
cmp eax, 0xa01f
je 0x403781
cmp eax, 0xea60
jne 0x403658
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x50b0], 0
lea ecx, [esp + 0x34]
push ecx
call fcn.004063d0
mov dword [esp + 0x50b0], 0xffffffff
lea edx, [esp + 0x6c]
push edx
jmp 0x403b23
test al, al
je 0x4038dd
cmp byte [esp + 0x108], 0
je 0x4038dd
cmp byte [esp + 0x110], 0
je 0x4038dd
cmp byte [esp + 0x118], 0
je 0x4038dd
cmp byte [esp + 0x120], 0
je 0x4038dd
cmp byte [esp + 0x12c], 0
je 0x4038dd
cmp byte [esp + 0x138], 0
je 0x4038dd
mov al, byte [esp + 0x107]
test al, al
je 0x403822
cmp al, 0x30
je 0x403822
cmp al, 0x20
jne 0x4038dd
mov al, byte [esp + 0x10f]
test al, al
je 0x403839
cmp al, 0x30
je 0x403839
cmp al, 0x20
jne 0x4038dd
mov al, byte [esp + 0x12b]
test al, al
je 0x403850
cmp al, 0x30
je 0x403850
cmp al, 0x20
jne 0x4038dd
mov al, byte [esp + 0x137]
test al, al
je 0x403863
cmp al, 0x30
je 0x403863
cmp al, 0x20
jne 0x4038dd
mov al, byte [esp + 0x13f]
test al, al
je 0x403876
cmp al, 0x30
je 0x403876
cmp al, 0x20
jne 0x4038dd
mov al, byte [esp + 0x1a4]
test al, al
je 0x403889
cmp al, 0x30
je 0x403889
cmp al, 0x20
jne 0x4038dd
mov al, byte [esp + 0x1aa]
test al, al
je 0x40389c
cmp al, 0x30
je 0x40389c
cmp al, 0x20
jne 0x4038dd
mov al, byte [esp + 0x1ec]
test al, al
je 0x4038af
cmp al, 0x30
je 0x4038af
cmp al, 0x20
jne 0x4038dd
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x50b0], 0
lea eax, [esp + 0x34]
push eax
call fcn.004063d0
mov dword [esp + 0x50b0], 0xffffffff
lea ecx, [esp + 0x6c]
push ecx
jmp 0x403b23
mov edx, esi
sub edx, 4
mov eax, ebp
sbb eax, 0
push eax
push edx
push ebx
call fcn.004025b0
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
add esp, 0xc
push 0
lea ecx, [esp + 0x1c]
push ecx
push 4
lea edx, [esp + 0xb0]
push edx
push ebx
call edi
mov eax, dword [esp + 0xa4]
cmp eax, 0x25a4c43
je 0x403afa
cmp eax, 0x35a4c43
je 0x403afa
xor eax, eax
xor ecx, ecx
test ebp, ebp
jl 0x403947
jg 0x40393b
cmp esi, 0x4000
jbe 0x403947
sub esi, 0x4000
sbb ebp, eax
mov eax, esi
mov ecx, ebp
push ecx
push eax
push ebx
call fcn.004025b0
add esp, 0xc
push 0
lea eax, [esp + 0x1c]
push eax
push 0x4000
lea ecx, [esp + 0xb0]
push ecx
push ebx
call edi
mov esi, dword [esp + 0x18]
add esi, 0xffffffea
cmp esi, 0xffffffff
jle 0x4039c4
mov edi, dword [sym.imp.MSVCR90.dll_strncmp]
jmp 0x403980
mov eax, dword [esp + esi + 0xa4]
cmp eax, 0x6054b50
je 0x4038af
cmp eax, 0x2014b50
je 0x4038af
sub esi, 1
js 0x4039bf
push 2
lea edx, [esp + esi + 0xa8]
push 0x47d668
push edx
call edi
add esp, 0xc
test eax, eax
je 0x4039bf
sub esi, 1
jns 0x4039a2
cmp esi, 0xffffffff
jg 0x403980
xor ebx, ebx
cmp dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
jl 0x403a98
jg 0x4039e1
cmp dword [esp + 0x1c], 4
jbe 0x403a98
mov esi, dword [esp + 0x14]
push 0
push 0
push esi
call fcn.004025b0
add esp, 0xc
push 0
lea edx, [esp + 0x1c]
push edx
push 0x4000
lea eax, [esp + 0xb0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0xa4]
cmp eax, 0x4034b50
je 0x403a95
cmp eax, 0x8074b50
je 0x403a95
cmp dword [esp + 0x18], 3
mov ebp, 1
jbe 0x403a68
mov esi, 3
lea edi, [esp + 0xa5]
sub edi, esi
push 2
lea ecx, [edi + esi]
push 0x47d668
push ecx
call dword [sym.imp.MSVCR90.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x403a64
inc esi
inc ebp
cmp esi, dword [esp + 0x18]
jb 0x403a44
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
add ebx, ebp
adc eax, 0
mov ecx, ebx
add ecx, 4
mov dword [esp + 0x28], eax
adc eax, 0
cmp eax, dword [esp + 0x20]
jl 0x4039e5
jg 0x403a9c
cmp ecx, dword [esp + 0x1c]
jb 0x4039e5
jmp 0x403a9c
push esi
jmp 0x403afb
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
call fcn.00402ee0
test eax, eax
je 0x403aaf
push esi
jmp 0x403782
cmp dword [esp + 0x4c], 8
mov eax, dword [esp + 0x38]
jae 0x403abe
lea eax, [esp + 0x38]
push eax
call fcn.00402cc0
add esp, 4
test eax, eax
je 0x403502
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x50b0], 0
lea eax, [esp + 0x34]
push eax
call fcn.004063d0
mov dword [esp + 0x50b0], 0xffffffff
lea ecx, [esp + 0x6c]
push ecx
jmp 0x403b23
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esp + 0x50b0], 0
lea edx, [esp + 0x34]
push edx
call fcn.004063d0
mov dword [esp + 0x50b0], 0xffffffff
lea eax, [esp + 0x6c]
push eax
call fcn.004063d0
mov eax, 1
mov ecx, dword [esp + 0x50a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x5090]
xor ecx, esp
call fcn.00428cb4
add esp, 0x50a0
ret