Function at 0x43de00
Capabilities:
Create directory
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x4ab468
mov eax, dword fs:[0]
push eax
mov eax, 0x4568
call fcn.004800e0
mov eax, dword [0x4d4f10]
xor eax, esp
mov dword [esp + 0x4560], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4d4f10]
xor eax, esp
push eax
lea eax, [esp + 0x457c]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
push str._n7z_ANSI_C_Decoder_16.02_:_Igor_Pavlov_:_Public_domain_:_2016_05_21_n_n
mov dword [esp + 0x4588], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x44], ebx
call fcn.0047b096
add esp, 4
lea eax, [esp + 0x70]
push esi
push eax
mov dword [esp + 0x40], fcn.00494780
mov dword [esp + 0x44], fcn.00494770
mov dword [esp + 0x68], fcn.00494780
mov dword [esp + 0x6c], fcn.00494770
call fcn.00494430
add esp, 8
test eax, eax
je 0x43dec7
push str.can_not_open_input_file
push str._nERROR:__s_n
call fcn.0047b096
add esp, 8
cmp dword [esp + 0x45a4], 8
jb 0x43debd
mov ecx, dword [esp + 0x4590]
push ecx
call fcn.0047afc0
add esp, 4
mov eax, 1
jmp 0x43e5e4
lea edx, [esp + 0x68]
push edx
call fcn.004946c0
add esp, 4
lea eax, [esp + 0xf4]
push ebx
push eax
call fcn.00497370
lea edx, [esp + 0xfc]
lea ecx, [esp + 0x70]
push edx
mov dword [esp + 0x110], ecx
call fcn.004973a0
add esp, 0xc
call fcn.004973d0
lea eax, [esp + 0x74]
push eax
call fcn.004948b0
add esp, 4
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x80]
push ecx
call fcn.00496f30
mov esi, eax
add esp, 0x10
mov edi, 1
cmp esi, ebx
jne 0x43e52e
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
mov ecx, 0x4be0d4
mov eax, str.xlte
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43df76
test dl, dl
je 0x43df72
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43df76
add eax, 2
add ecx, 2
test dl, dl
jne 0x43df56
xor eax, eax
jmp 0x43df7b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x43e07b
mov dword [esp + 0x2c], edi
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x24], ebx
mov dword [esp + 0x50], ebx
cmp dword [esp + 0xb4], ebx
jbe 0x43e518
mov ecx, ebx
and ecx, 7
xor edx, edx
mov eax, 0x80
sar eax, cl
mov ecx, dword [esp + 0xbc]
mov edi, ebx
shr edi, 3
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], edx
test byte [edi + ecx], al
mov dword [esp + 0x20], eax
mov eax, edx
setne al
mov dword [esp + 0x54], edi
mov ebp, eax
mov dword [esp + 0x5c], ebp
cmp dword [esp + 0x2c], edx
jne 0x43dff0
cmp ebp, edx
je 0x43dff0
cmp dword [esp + 0x30], edx
je 0x43e4d5
push 0
lea ecx, [esp + 0x78]
push ebx
push ecx
call fcn.00497130
mov esi, eax
add esp, 0xc
cmp esi, dword [esp + 0x40]
jbe 0x43e032
mov edx, dword [esp + 0x1c]
push edx
push 0
call fcn.00494770
lea eax, [esi + esi]
push eax
push 0
mov dword [esp + 0x50], esi
call fcn.00494780
add esp, 0x10
mov dword [esp + 0x1c], eax
test eax, eax
je 0x43e4e5
mov esi, dword [esp + 0x1c]
push esi
lea ecx, [esp + 0x78]
push ebx
push ecx
call fcn.00497130
add esp, 0xc
cmp dword [esp + 0x2c], 0
je 0x43e239
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x43e143
mov dl, byte [esp + 0x20]
test byte [edi + eax], dl
je 0x43e143
mov eax, dword [esp + 0xcc]
mov eax, dword [eax + ebx*4]
jmp 0x43e145
mov ecx, 0x4be0d8
mov eax, str.xlte
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43e0a5
test dl, dl
je 0x43e0a1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43e0a5
add eax, 2
add ecx, 2
test dl, dl
jne 0x43e085
xor eax, eax
jmp 0x43e0aa
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x43e0b7
mov dword [esp + 0x34], edi
jmp 0x43df87
mov ecx, 0x4be0dc
mov eax, str.xlte
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43e0e1
test dl, dl
je 0x43e0dd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43e0e1
add eax, 2
add ecx, 2
test dl, dl
jne 0x43e0c1
xor eax, eax
jmp 0x43e0e6
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x43df87
mov ecx, str.xlte
mov eax, ecx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x43e115
test dl, dl
je 0x43e111
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x43e115
add eax, 2
add ecx, 2
test dl, dl
jne 0x43e0f5
xor eax, eax
jmp 0x43e11a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x43e127
mov dword [esp + 0x30], edi
jmp 0x43df87
push 0x4be0e0
push str._nERROR:__s_n
call fcn.0047b096
add esp, 8
mov esi, 0xb
jmp 0x43e52e
xor eax, eax
push ebp
lea ecx, [esp + 0x4138]
call fcn.0043dda0
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + ebx*8 + 8]
mov edx, dword [eax + ebx*8 + 0xc]
add esp, 4
sub ecx, dword [eax + ebx*8]
sbb edx, dword [eax + ebx*8 + 4]
push edx
push ecx
lea ecx, [esp + 0x4144]
call fcn.0043da50
mov eax, dword [esp + 0xd8]
add esp, 8
test eax, eax
je 0x43e1ac
mov cl, byte [esp + 0x20]
test byte [edi + eax], cl
je 0x43e1ac
mov edx, dword [esp + 0xd4]
lea eax, [edx + ebx*8]
push eax
lea edi, [esp + 0x4118]
call fcn.0043db30
add esp, 4
jmp 0x43e1e4
mov eax, 0x20202020
mov dword [esp + 0x4114], eax
mov dword [esp + 0x4118], eax
mov dword [esp + 0x411c], eax
mov dword [esp + 0x4120], eax
mov word [esp + 0x4124], ax
mov byte [esp + 0x4126], al
mov byte [esp + 0x4127], 0
lea ecx, [esp + 0x413c]
push ecx
lea edx, [esp + 0x4138]
push edx
lea eax, [esp + 0x411c]
push eax
push str._s__s__10s
call fcn.0047b096
push esi
call fcn.0043d9f0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x43e518
test ebp, ebp
je 0x43e22a
push 0x4bcd58
call fcn.0047b096
add esp, 4
push 0x4bc1f0
call fcn.0047b096
jmp 0x43e4d2
cmp dword [esp + 0x34], 0
mov esi, str.Testing
jne 0x43e24a
mov esi, str.Extracting
call fcn.00482d82
add eax, 0x20
push eax
push esi
call fcn.004a05aa
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0043d9f0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x18], esi
test esi, esi
jne 0x43e518
test ebp, ebp
je 0x43e287
push 0x4bcd58
call fcn.0047b096
add esp, 4
jmp 0x43e2d1
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x70]
push edx
push ebx
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0x98]
push ecx
call fcn.00496f70
mov esi, eax
add esp, 0x28
mov dword [esp + 0x18], eax
test esi, esi
jne 0x43e518
cmp dword [esp + 0x34], 0
jne 0x43e4c4
xor edx, edx
push 0x410
push edx
lea eax, [esp + 0x4166]
push eax
mov word [esp + 0x4168], dx
call fcn.0047ecc0
mov eax, dword [esp + 0x459c]
add esp, 0xc
cmp dword [esp + 0x45a4], 8
jae 0x43e314
lea eax, [esp + 0x4590]
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43e316
lea edi, [esp + 0x415c]
sub eax, edx
add edi, 0xfffffffe
lea ecx, [ecx]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x43e330
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x415c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x43e356
mov ecx, dword [0x4be11c]
mov eax, dword [esp + 0x1c]
mov dword [edi], ecx
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43e370
lea edi, [esp + 0x415c]
sub eax, edx
add edi, 0xfffffffe
jmp 0x43e390
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x43e390
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
lea ebp, [esp + 0x415c]
cmp word [esp + 0x415c], di
je 0x43e415
mov esi, ebp
movzx eax, word [esi]
cmp ax, 0x2f
je 0x43e3d0
cmp ax, 0x5c
jne 0x43e402
cmp dword [esp + 0x30], 0
je 0x43e3ff
xor edx, edx
push edx
lea eax, [esp + 0x4160]
push eax
mov word [esi], dx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x43e3f5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x5c
mov word [esi], cx
jmp 0x43e402
lea ebp, [esi + 2]
inc edi
cmp word [esp + edi*2 + 0x415c], 0
lea esi, [esp + edi*2 + 0x415c]
jne 0x43e3c1
cmp dword [esp + 0x5c], 0
je 0x43e438
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x43e4c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x43e4c4
lea edx, [esp + 0x44]
push ebp
push edx
call fcn.00494490
add esp, 8
test eax, eax
jne 0x43e4ec
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x48]
push ecx
add edx, eax
push edx
lea ecx, [esp + 0x4c]
push ecx
call fcn.00494560
add esp, 0xc
test eax, eax
jne 0x43e4fa
mov edx, dword [esp + 0x48]
cmp edx, dword [esp + 0x28]
jne 0x43e4fa
lea eax, [esp + 0x44]
push eax
call fcn.004944b0
add esp, 4
test eax, eax
jne 0x43e4f3
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x43e4c4
mov cl, byte [esp + 0x20]
mov edx, dword [esp + 0x54]
test byte [edx + eax], cl
je 0x43e4c4
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + ebx*4]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x4bc1f0
call fcn.0047b096
mov esi, dword [esp + 0x1c]
add esp, 4
inc ebx
cmp ebx, dword [esp + 0xb4]
jb 0x43dfa4
jmp 0x43e518
mov esi, 2
jmp 0x43e518
push str.can_not_open_output_file
jmp 0x43e4ff
push str.can_not_close_output_file
jmp 0x43e4ff
push str.can_not_write_output_file
push str._nERROR:__s_n
call fcn.0047b096
mov dword [esp + 0x20], 0xb
mov esi, dword [esp + 0x20]
add esp, 8
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x3c]
push eax
call dword [esp + 0x44]
add esp, 8
xor ebx, ebx
lea edi, [ebx + 1]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x78]
push edx
call fcn.004948f0
mov eax, dword [esp + 0x24]
push eax
push ebx
call fcn.00494770
lea ecx, [esp + 0x80]
push ecx
call fcn.004944b0
add esp, 0x14
cmp esi, ebx
jne 0x43e587
push str._nEverything_is_Ok_n
call fcn.0047b096
add esp, 4
cmp dword [esp + 0x45a4], 8
jb 0x43e583
mov edx, dword [esp + 0x4590]
push edx
call fcn.0047afc0
add esp, 4
xor eax, eax
jmp 0x43e5e4
cmp esi, 4
jne 0x43e598
push str.decoder_doesnt_support_this_archive
push str._nERROR:__s_n
jmp 0x43e5c0
cmp esi, 2
jne 0x43e5a9
push str.can_not_allocate_memory
push str._nERROR:__s_n
jmp 0x43e5c0
cmp esi, 3
jne 0x43e5ba
push str.CRC_error
push str._nERROR:__s_n
jmp 0x43e5c0
push esi
push str._nERROR__d_n
call fcn.0047b096
add esp, 8
cmp dword [esp + 0x45a4], 8
jb 0x43e5e2
mov eax, dword [esp + 0x4590]
push eax
call fcn.0047afc0
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x457c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4560]
xor ecx, esp
call fcn.0047afcb
add esp, 0x4574
ret 0x1c