Function at 0x40dba0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42a474
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x435398]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 4], 1
mov eax, dword [ebp + 0xc]
xor ebx, ebx
cmp dword [ebp + 0x20], 0x10
mov byte [ebp - 0x9d], bl
jae 0x40dbf2
lea eax, [ebp + 0xc]
push ebx
push 0x8000080
push 3
push ebx
push 1
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
mov dword [ebp - 0xa4], edi
cmp edi, 0xffffffff
jne 0x40dd4c
cmp byte [ebp + 0x40], bl
jne 0x40dd10
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edi, [ebp - 0xc4]
call fcn.004284c4
mov esi, eax
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x64]
push str.File:
push edx
mov byte [ebp - 4], 2
call fcn.00405b62
push str._rError:
push eax
lea eax, [ebp - 0x9c]
push eax
mov byte [ebp - 4], 3
call fcn.00405b14
push esi
push eax
lea ecx, [ebp - 0x48]
push ecx
mov byte [ebp - 4], 4
call fcn.00405bb4
mov esi, 0x10
add esp, 0x28
cmp dword [eax + 0x18], esi
jb 0x40dc84
mov eax, dword [eax + 4]
jmp 0x40dc87
add eax, 4
push ebx
push str.Failed_to_open_archive_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebp - 0x30], esi
jb 0x40dca6
mov edx, dword [ebp - 0x44]
push edx
call fcn.00411c84
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
cmp dword [ebp - 0x84], esi
jb 0x40dccb
mov eax, dword [ebp - 0x98]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
cmp dword [ebp - 0x4c], esi
jb 0x40dcee
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x60], bl
cmp dword [ebp - 0xac], esi
jb 0x40dd15
mov edx, dword [ebp - 0xc0]
push edx
call fcn.00411c84
add esp, 4
jmp 0x40dd15
mov edi, 0xf
mov esi, 0x10
cmp dword [ebp + 0x20], esi
jb 0x40dd2b
mov eax, dword [ebp + 0xc]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0xc], bl
cmp dword [ebp + 0x3c], esi
jb 0x40dd45
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.00411c84
add esp, 4
xor al, al
jmp 0x40e3c3
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 2
push ebx
push ebx
push edi
call esi
lea esp, [esp]
push 1
push ebx
push 0xffffffffffffffe9
push edi
call esi
cmp eax, 0x16
jbe 0x40de4c
push ebx
lea edx, [ebp - 0xc8]
push edx
push 0x16
lea eax, [ebp - 0x28]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0x16
lea ecx, [ebp - 0x28]
push str.chunked_installer_tail
push ecx
call fcn.00413201
add esp, 0xc
test eax, eax
jne 0x40dd60
push 1
push ebx
push 0x14
push edi
call esi
mov dword [ebp - 0x4c], 0xf
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x60], bl
mov esi, dword [ebp - 0xa4]
lea eax, [ebp - 0x9d]
push eax
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 8
call fcn.0040d920
add esp, 4
test al, al
je 0x40e3df
push str.chunked_installer_tail
call fcn.00411910
mov esi, eax
mov eax, dword [ebp - 0x50]
add esp, 4
mov edi, eax
cmp eax, esi
jb 0x40ddf0
mov eax, esi
cmp dword [ebp - 0x4c], 0x10
mov ecx, dword [ebp - 0x60]
jae 0x40ddfc
lea ecx, [ebp - 0x60]
push eax
push str.chunked_installer_tail
push ecx
call fcn.0041028c
add esp, 0xc
cmp eax, ebx
jne 0x40df82
cmp edi, esi
jb 0x40df82
xor eax, eax
cmp edi, esi
setne al
cmp eax, ebx
jne 0x40df82
cmp dword [ebp - 0x4c], 0x10
mov byte [ebp - 0x9d], 1
jb 0x40dda5
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.00411c84
add esp, 4
jmp 0x40dda5
cmp byte [ebp + 0x40], bl
jne 0x40df42
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edi, [ebp - 0xc4]
call fcn.004284c4
mov esi, eax
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x64]
push str.File:
push eax
mov byte [ebp - 4], 5
call fcn.00405b62
push str._rError:
push eax
lea ecx, [ebp - 0x9c]
push ecx
mov byte [ebp - 4], 6
call fcn.00405b14
push esi
push eax
lea edx, [ebp - 0x48]
push edx
mov byte [ebp - 4], 7
call fcn.00405bb4
mov esi, 0x10
add esp, 0x28
cmp dword [eax + 0x18], esi
jb 0x40deb6
mov eax, dword [eax + 4]
jmp 0x40deb9
add eax, 4
push ebx
push str.Failed_to_initialize_archive_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebp - 0x30], esi
jb 0x40ded8
mov eax, dword [ebp - 0x44]
push eax
call fcn.00411c84
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
cmp dword [ebp - 0x84], esi
jb 0x40defd
mov ecx, dword [ebp - 0x98]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
cmp dword [ebp - 0x4c], esi
jb 0x40df20
mov edx, dword [ebp - 0x60]
push edx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x60], bl
cmp dword [ebp - 0xac], esi
jb 0x40df47
mov eax, dword [ebp - 0xc0]
push eax
call fcn.00411c84
add esp, 4
jmp 0x40df47
mov edi, 0xf
mov esi, 0x10
cmp dword [ebp + 0x20], esi
jb 0x40df5d
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0xc], bl
cmp dword [ebp + 0x3c], esi
jb 0x40dd45
mov edx, dword [ebp + 0x28]
push edx
call fcn.00411c84
add esp, 4
xor al, al
jmp 0x40e3c3
mov edi, 0xf
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x7c], bl
mov esi, dword [ebp - 0xa4]
lea edx, [ebp - 0x9d]
push edx
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 9
call fcn.0040d920
add esp, 4
test al, al
je 0x40e3eb
push str.value
call fcn.00411910
mov esi, eax
mov eax, dword [ebp - 0x50]
add esp, 4
mov edi, eax
cmp eax, esi
jb 0x40dfce
mov eax, esi
cmp dword [ebp - 0x4c], 0x10
mov ecx, dword [ebp - 0x60]
jae 0x40dfda
lea ecx, [ebp - 0x60]
push eax
push str.value
push ecx
call fcn.0041028c
add esp, 0xc
cmp eax, ebx
jne 0x40e12c
cmp edi, esi
jb 0x40e12c
xor eax, eax
cmp edi, esi
setne al
cmp eax, ebx
jne 0x40e12c
mov edi, 0xf
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
mov esi, dword [ebp - 0xa4]
lea eax, [ebp - 0x9d]
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xa
call fcn.0040d920
add esp, 4
test al, al
je 0x40e409
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x100]
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xec], ebx
mov byte [ebp - 0xfc], bl
call fcn.004040e9
push 0xffffffffffffffff
mov byte [ebp - 4], 0xb
push ebx
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xd0], ebx
mov byte [ebp - 0xe0], bl
call fcn.004040e9
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0x100]
push eax
push ecx
lea ebx, [ebp - 0x128]
mov byte [ebp - 4], 0xc
call fcn.00404e35
mov esi, 0x10
cmp dword [ebp - 0xcc], esi
jb 0x40e0bf
mov edx, dword [ebp - 0xe0]
push edx
call fcn.00411c84
add esp, 4
xor eax, eax
mov dword [ebp - 0xcc], 0xf
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xe0], al
cmp dword [ebp - 0xe8], esi
jb 0x40e0ee
mov eax, dword [ebp - 0xfc]
push eax
call fcn.00411c84
add esp, 4
cmp dword [ebp - 0x30], esi
jb 0x40e0ff
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.00411c84
add esp, 4
xor ebx, ebx
mov esi, 0x10
cmp dword [ebp - 0x68], esi
jb 0x40e117
mov eax, dword [ebp - 0x7c]
push eax
call fcn.00411c84
add esp, 4
cmp dword [ebp - 0x4c], esi
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x7c], bl
jmp 0x40de35
push str.file
call fcn.00411910
mov edx, dword [ebp - 0x50]
add esp, 4
push eax
push str.file
push edx
push ebx
lea ecx, [ebp - 0x64]
call fcn.00404506
test eax, eax
jne 0x40e320
mov edi, 0xf
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
mov esi, dword [ebp - 0xa4]
lea eax, [ebp - 0x9d]
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xe
call fcn.0040d920
add esp, 4
test al, al
je 0x40e42a
lea ecx, [ebp - 0x9d]
push ecx
lea ecx, [ebp - 0x9c]
call fcn.0040d920
add esp, 4
test al, al
je 0x40e49e
cmp dword [ebp - 0x6c], ebx
je 0x40e233
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x100]
push ecx
call fcn.0040494d
mov edx, dword [ebp - 0xa8]
push eax
push edx
lea ebx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call fcn.00404e35
mov esi, 0x10
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0xcc], esi
jb 0x40e202
mov eax, dword [ebp - 0xe0]
push eax
call fcn.00411c84
add esp, 4
xor eax, eax
mov dword [ebp - 0xcc], 0xf
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xe0], al
cmp dword [ebp - 0xe8], esi
jb 0x40e231
mov ecx, dword [ebp - 0xfc]
push ecx
call fcn.00411c84
add esp, 4
xor ebx, ebx
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp - 0xc4]
push ecx
call fcn.00405bb4
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x10
call fcn.004040e9
mov edi, 0x10
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0xac], edi
jb 0x40e27a
mov edx, dword [ebp - 0xc0]
push edx
call fcn.00411c84
add esp, 4
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x30], edi
jae 0x40e285
lea eax, [ebp - 0x44]
push ebx
push 0x8000080
push 2
push ebx
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40e512
mov eax, dword [ebp - 0x98]
cmp dword [ebp - 0x84], edi
jae 0x40e2bb
lea eax, [ebp - 0x98]
mov edx, dword [ebp - 0x88]
push ebx
lea ecx, [ebp - 0xc8]
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x84], edi
jb 0x40e2f0
mov eax, dword [ebp - 0x98]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x84], 0xf
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
cmp dword [ebp - 0x30], edi
jb 0x40e101
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.00411c84
add esp, 4
jmp 0x40e101
push str.stub
call fcn.00411910
mov edx, dword [ebp - 0x50]
add esp, 4
push eax
push str.stub
push edx
push ebx
lea ecx, [ebp - 0x64]
call fcn.00404506
test eax, eax
jne 0x40e101
mov esi, 0x10
cmp dword [ebp - 0x68], esi
jb 0x40e35e
mov eax, dword [ebp - 0x7c]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x7c], bl
cmp dword [ebp - 0x4c], esi
jb 0x40e37c
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.00411c84
add esp, 4
mov edx, dword [ebp - 0xa4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x10
cmp dword [ebp + 0x20], esi
jb 0x40e39f
mov eax, dword [ebp + 0xc]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp + 0x20], 0xf
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0xc], bl
cmp dword [ebp + 0x3c], esi
jb 0x40e3bd
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.00411c84
add esp, 4
mov al, byte [ebp - 0x9d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00411fc4
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x4c], 0x10
jb 0x40e37c
mov edx, dword [ebp - 0x60]
push edx
jmp 0x40e374
mov esi, 0x10
cmp dword [ebp - 0x68], esi
jb 0x40e401
mov eax, dword [ebp - 0x7c]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x68], edi
jmp 0x40e365
mov esi, 0x10
cmp dword [ebp - 0x30], esi
jb 0x40e41f
mov edx, dword [ebp - 0x44]
push edx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
jmp 0x40e3f0
mov esi, 0x10
cmp dword [ebp - 0x84], esi
jb 0x40e446
mov edx, dword [ebp - 0x98]
push edx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
cmp dword [ebp - 0x30], esi
jb 0x40e469
mov eax, dword [ebp - 0x44]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
cmp dword [ebp - 0x68], esi
jb 0x40e483
mov ecx, dword [ebp - 0x7c]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x7c], bl
cmp dword [ebp - 0x4c], esi
jb 0x40e37c
mov edx, dword [ebp - 0x60]
push edx
jmp 0x40e374
mov esi, 0x10
cmp dword [ebp - 0x84], esi
jb 0x40e4ba
mov eax, dword [ebp - 0x98]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
cmp dword [ebp - 0x30], esi
jb 0x40e4dd
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
cmp dword [ebp - 0x68], esi
jb 0x40e4f7
mov edx, dword [ebp - 0x7c]
push edx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x7c], bl
cmp dword [ebp - 0x4c], esi
jb 0x40e37c
mov eax, dword [ebp - 0x60]
push eax
jmp 0x40e374
cmp byte [ebp + 0x40], bl
jne 0x40e61a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edi, [ebp - 0xe4]
call fcn.004284c4
mov esi, eax
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0xc4]
push str.File:
push edx
mov byte [ebp - 4], 0x11
call fcn.00405b62
push str._rError:
push eax
lea eax, [ebp - 0x11c]
push eax
mov byte [ebp - 4], 0x12
call fcn.00405b14
push esi
push eax
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 0x13
call fcn.00405bb4
mov edi, 0x10
add esp, 0x28
cmp dword [eax + 0x18], edi
jb 0x40e57f
mov eax, dword [eax + 4]
jmp 0x40e582
add eax, 4
push ebx
push str.Failed_to_extract_file_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebp - 0x14], edi
jb 0x40e5a1
mov edx, dword [ebp - 0x28]
push edx
call fcn.00411c84
add esp, 4
mov esi, 0xf
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
cmp dword [ebp - 0x104], edi
jb 0x40e5c6
mov eax, dword [ebp - 0x118]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x108], ebx
mov byte [ebp - 0x118], bl
cmp dword [ebp - 0xac], edi
jb 0x40e5ef
mov ecx, dword [ebp - 0xc0]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xb0], ebx
mov byte [ebp - 0xc0], bl
cmp dword [ebp - 0xcc], edi
jb 0x40e61f
mov edx, dword [ebp - 0xe0]
push edx
call fcn.00411c84
add esp, 4
jmp 0x40e61f
mov esi, 0xf
cmp dword [ebp - 0x84], edi
jb 0x40e636
mov eax, dword [ebp - 0x98]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x88], ebx
mov byte [ebp - 0x98], bl
cmp dword [ebp - 0x30], edi
jb 0x40e659
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
cmp dword [ebp - 0x68], edi
jb 0x40e673
mov edx, dword [ebp - 0x7c]
push edx
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x7c], bl
cmp dword [ebp - 0x4c], edi
jb 0x40e68d
mov eax, dword [ebp - 0x60]
push eax
call fcn.00411c84
add esp, 4
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x60], bl
cmp dword [ebp + 0x20], edi
jb 0x40e6a7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00411c84
add esp, 4
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0xc], bl
cmp dword [ebp + 0x3c], edi
jb 0x40dd45
mov edx, dword [ebp + 0x28]
push edx
call fcn.00411c84
add esp, 4
xor al, al
jmp 0x40e3c3