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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
cmp dword [ebx + 0x506c], 1
jne 0x401e96
cmp byte [esi + 0x11], 0x6e
je 0x401da8
lea eax, [esi + 0x12]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], eax
lea eax, [ebx + 0x3068]
mov dword [esp], eax
call fcn.00408a50
mov dword [esp + 0x18], eax
test eax, eax
je 0x401eac
lea eax, [ebx + 0x68]
mov dword [esp + 4], 0x419161
mov dword [esp], eax
call fcn.004047f0
mov ebp, eax
test eax, eax
je 0x401e18
mov dword [esp + 8], 0
mov eax, dword [esi + 4]
add eax, dword [ebx]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0040fc80
test eax, eax
js 0x401e70
cmp byte [esi + 0x10], 1
je 0x401dc8
mov dword [esp], 0x2000
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
je 0x401ed2
mov esi, dword [esi + 0xc]
xor edi, edi
test esi, esi
jne 0x401d2a
jmp 0x401e38
mov eax, dword [esp + 0x18]
mov dword [esp + 8], 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 4], eax
call sub.msvcrt.dll_fwrite
test eax, eax
je 0x401e40
sub esi, dword [esp + 0x10]
sbb edi, dword [esp + 0x14]
mov edx, edi
or edx, esi
je 0x401e38
mov eax, 0x2000
mov dword [esp + 0x10], esi
cmp eax, esi
mov eax, 0
mov dword [esp + 0x14], edi
sbb eax, edi
jae 0x401d52
mov dword [esp + 0x10], 0x2000
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.msvcrt.dll_fread
test eax, eax
jne 0x401cf0
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], str.Failed_to_extract__s:_failed_to_read_data_chunk__n
mov edi, 0xffffffff
mov dword [esp], str.fread
mov dword [esp + 8], eax
call fcn.00403190
mov dword [esp], ebx
call sub.msvcrt.dll_free
jmp 0x401dde
mov edx, esi
mov eax, ebx
call fcn.00401b80
mov edi, eax
test eax, eax
js 0x401e00
add esp, 0x2c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0
mov ecx, dword [esp + 0x18]
mov edx, esi
mov eax, ebp
call fcn.00401640
mov edi, eax
mov dword [esp], ebp
call sub.msvcrt.dll_fclose
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_fclose
add esp, 0x2c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
add esi, 0x12
mov dword [esp], str.Failed_to_create_symbolic_link__s__n
mov dword [esp + 4], esi
call fcn.00403030
jmp 0x401db7
mov eax, dword [esp + 0x1c]
mov dword [esp], str.Failed_to_extract__s:_failed_to_open_archive_file__n
mov edi, 0xffffffff
mov dword [esp + 4], eax
call fcn.00403030
jmp 0x401de6
xor edi, edi
jmp 0x401d97
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], str.Failed_to_extract__s:_failed_to_write_data_chunk__n
mov edi, 0xffffffff
mov dword [esp], str.fwrite
mov dword [esp + 8], eax
call fcn.00403190
jmp 0x401d97
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], str.Failed_to_extract__s:_failed_to_seek_to_the_entrys_data__n
mov edi, 0xffffffff
mov dword [esp], str.fseek
mov dword [esp + 8], eax
call fcn.00403190
jmp 0x401dde
mov dword [esp], str.pyi_arch_extract2fs_was_called_before_temporary_directory_was_initialized__n
mov edi, 0xffffffff
call fcn.00403030
jmp 0x401db7
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], str.Failed_to_extract__s:_failed_to_open_target_file__n
mov edi, 0xffffffff
mov dword [esp], str.fopen
mov dword [esp + 8], eax
call fcn.00403190
jmp 0x401db7
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], str.Failed_to_extract__s:_failed_to_allocate_temporary_buffer__n
or edi, 0xffffffff
mov dword [esp], str.malloc
mov dword [esp + 8], eax
call fcn.00403190
jmp 0x401dde