Function at 0x10023153
Capabilities:
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1009aaae
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x415c
call fcn.10063e20
mov eax, dword [0x100cc5b0]
xor eax, esp
mov dword [esp + 0x4158], eax
push ebx
push esi
push edi
mov eax, dword [0x100cc5b0]
xor eax, esp
push eax
lea eax, [esp + 0x4170]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push eax
lea eax, [esp + 0x74]
xor ebx, ebx
push eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], fcn.1001e449
mov dword [esp + 0x40], 0x1001e43b
mov dword [esp + 0x58], fcn.1001e449
mov dword [esp + 0x5c], 0x1001e43b
call fcn.1001e650
pop ecx
pop ecx
test eax, eax
je 0x100231e9
push str.can_not_open_input_file
push str._nERROR:__s_n
jmp 0x1002377d
lea eax, [esp + 0x68]
mov dword [esp + 0x68], 0x1001e7ef
mov dword [esp + 0x6c], 0x1001e811
mov dword [esp + 0xc4], 0x1002092a
mov dword [esp + 0xc8], 0x1002097a
mov dword [esp + 0xcc], 0x1002098a
mov dword [esp + 0xd0], 0x100209d6
mov dword [esp + 0xd4], eax
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xd8], ebx
call fcn.1001e5d8
lea eax, [esp + 0x74]
call fcn.1001eda8
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x38]
push eax
lea edx, [esp + 0xcc]
lea ecx, [esp + 0x7c]
call fcn.1002045c
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
je 0x1002327b
lea esi, [esp + 0x34]
lea eax, [esp + 0x74]
call fcn.1001edd7
mov dword [esp + 0x10], edi
cmp edi, ebx
jne 0x10023717
push 0x100b1354
mov esi, str.xlte
push esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebx
call fcn.1005fb50
pop ecx
pop ecx
test eax, eax
jne 0x10023361
mov dword [esp + 0x20], 1
or dword [esp + 0x58], 0xffffffff
xor eax, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x90], ebx
jbe 0x10023708
mov edi, dword [esp + 0x84]
add edi, 0x1d
mov dword [esp + 0x14], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x20], ebx
jne 0x10023300
cmp byte [edi - 4], bl
je 0x10023300
cmp dword [esp + 0x30], ebx
je 0x1002369d
mov ecx, eax
mov eax, dword [esp + 0xb4]
mov esi, dword [eax + ecx*4 + 4]
sub esi, dword [eax + ecx*4]
cmp esi, dword [esp + 0x44]
jbe 0x1002333c
push dword [esp + 0x18]
call fcn.1005f6fe
pop ecx
lea eax, [esi + esi]
push eax
push ebx
mov dword [esp + 0x4c], esi
call fcn.1001e449
pop ecx
pop ecx
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x100236bc
push dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x78]
call fcn.1001fdb0
pop ecx
cmp dword [esp + 0x20], ebx
je 0x100234cc
cmp byte [edi], bl
je 0x100233cd
mov ecx, dword [edi - 9]
jmp 0x100233cf
push 0x100b1358
push esi
call fcn.1005fb50
pop ecx
pop ecx
test eax, eax
jne 0x1002337f
mov dword [esp + 0x28], 1
jmp 0x100232b5
push 0x100b135c
push esi
call fcn.1005fb50
pop ecx
pop ecx
test eax, eax
je 0x100232b5
push esi
push esi
call fcn.1005fb50
pop ecx
pop ecx
test eax, eax
jne 0x100233ae
mov dword [esp + 0x30], 1
jmp 0x100232b5
push 0x100b1360
mov edi, str._nERROR:__s_n
push edi
call fcn.1005fa87
pop ecx
pop ecx
mov dword [esp + 0x10], 0xb
jmp 0x1002371c
xor ecx, ecx
movzx eax, byte [edi - 4]
push eax
lea eax, [esp + 0x4104]
call fcn.1001eb53
lea eax, [esp + 0x412c]
pop ecx
mov ecx, dword [edi - 0x11]
mov dword [esp + 0x10], eax
mov eax, dword [edi - 0x15]
xor esi, esi
jmp 0x100233f8
xor ebx, ebx
push ebx
push 0xa
push ecx
push eax
call fcn.10064d40
add cl, 0x30
mov byte [esp + esi + 0x4148], cl
mov ecx, edx
mov edx, eax
inc esi
or edx, ecx
mov dword [esp + 0x60], ebx
jne 0x100233f6
mov ecx, dword [esp + 0x10]
mov al, byte [esp + esi + 0x4147]
dec esi
inc dword [esp + 0x10]
mov byte [ecx], al
test esi, esi
jne 0x10023419
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov byte [eax], bl
cmp byte [edi - 1], bl
je 0x1002344f
add edi, 0xffffffe3
push edi
lea edi, [esp + 0x410c]
call fcn.1001e9c2
pop ecx
jmp 0x10023469
mov eax, 0x20202020
lea edi, [esp + 0x4108]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x411b], bl
lea eax, [esp + 0x4128]
push eax
lea eax, [esp + 0x4104]
push eax
lea eax, [esp + 0x4110]
push eax
push str._s__s__10s
call fcn.1005fa87
push dword [esp + 0x28]
call fcn.1001e916
add esp, 0x14
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x10023706
mov eax, dword [esp + 0x14]
cmp byte [eax - 4], bl
je 0x100234b7
push 0x100b1384
call fcn.1005fa87
pop ecx
push 0x100b1388
call fcn.1005fa87
mov edi, dword [esp + 0x18]
xor ebx, ebx
jmp 0x1002369c
mov esi, str.Testing
cmp dword [esp + 0x28], ebx
jne 0x100234dc
mov esi, str.Extracting
call fcn.1005f8d2
add eax, 0x20
push eax
push esi
call fcn.1005f7cc
mov esi, dword [esp + 0x20]
push esi
call fcn.1001e916
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x10023708
cmp byte [edi - 4], bl
je 0x10023516
push 0x100b1384
call fcn.1005fa87
pop ecx
jmp 0x10023560
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x38]
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x98]
call fcn.10020750
add esp, 0x24
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x10023708
cmp dword [esp + 0x28], ebx
jne 0x10023692
xor ecx, ecx
mov dword [esp + 0x14], esi
cmp word [esi], bx
je 0x1002359b
mov eax, esi
cmp word [eax], 0x2f
jne 0x10023592
cmp dword [esp + 0x30], ebx
je 0x1002358b
push 0x5c
pop edx
mov word [eax], dx
jmp 0x10023592
add eax, 2
mov dword [esp + 0x14], eax
inc ecx
lea eax, [esi + ecx*2]
cmp word [eax], bx
jne 0x10023577
push dword [esp + 0x48]
lea ecx, [esp + 0x40e8]
call fcn.1000f6ca
push dword [esp + 0x14]
mov dword [esp + 0x417c], ebx
call fcn.1005d0d1
pop ecx
push eax
push dword [esp + 0x18]
lea ecx, [esp + 0x40ec]
call fcn.100104a9
cmp byte [edi - 4], bl
je 0x100235f9
push 0x100b1388
call fcn.1005fa87
or dword [esp + 0x417c], 0xffffffff
pop ecx
push ebx
push 1
lea ecx, [esp + 0x40ec]
call fcn.1000f89d
jmp 0x1002369d
cmp dword [esp + 0x40f8], 8
mov edx, dword [esp + 0x40e4]
jae 0x10023611
lea edx, [esp + 0x40e4]
lea ecx, [esp + 0x3c]
call fcn.1001e683
test eax, eax
jne 0x100236c6
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x2c]
lea esi, [esp + 0x5c]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.1001e79a
pop ecx
pop ecx
test eax, eax
jne 0x100236ff
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x5c], eax
jne 0x100236ff
lea esi, [esp + 0x3c]
call fcn.1001e727
test eax, eax
jne 0x100236f8
cmp byte [edi], bl
je 0x1002367b
push dword [edi - 9]
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
or dword [esp + 0x4178], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x40ec]
call fcn.1000f89d
push 0x100b1388
call fcn.1005fa87
pop ecx
mov eax, dword [esp + 0x1c]
inc eax
add edi, 0x20
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edi
cmp eax, dword [esp + 0x90]
jb 0x100232e3
jmp 0x10023708
mov dword [esp + 0x10], 2
jmp 0x10023708
push str.can_not_open_output_file
push str._nERROR:__s_n
call fcn.1005fa87
or dword [esp + 0x4180], 0xffffffff
pop ecx
pop ecx
push ebx
push 1
lea ecx, [esp + 0x40ec]
mov dword [esp + 0x18], 0xb
call fcn.1000f89d
jmp 0x10023708
push str.can_not_close_output_file
jmp 0x100236cb
push str.can_not_write_output_file
jmp 0x100236cb
xor ebx, ebx
push dword [esp + 0x2c]
lea eax, [esp + 0x38]
push eax
call dword [esp + 0x40]
pop ecx
pop ecx
mov edi, str._nERROR:__s_n
lea esi, [esp + 0x34]
lea eax, [esp + 0x74]
call fcn.1001edd7
push dword [esp + 0x18]
call fcn.1005f6fe
pop ecx
lea esi, [esp + 0x70]
call fcn.1001e727
mov eax, dword [esp + 0x10]
cmp eax, ebx
jne 0x10023752
push str._nEverything_is_Ok_n
call fcn.1005fa87
xor eax, eax
jmp 0x10023786
cmp eax, 4
jne 0x1002375f
push str.decoder_doesnt_support_this_archive
push edi
jmp 0x1002377d
cmp eax, 2
jne 0x1002376b
push str.can_not_allocate_memory
jmp 0x1002375c
cmp eax, 3
jne 0x10023777
push str.CRC_error
jmp 0x1002375c
push eax
push str._nERROR__d_n
call fcn.1005fa87
xor eax, eax
pop ecx
inc eax
pop ecx
mov ecx, dword [esp + 0x4170]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4158]
xor ecx, esp
call fcn.1005c747
mov esp, ebp
pop ebp
ret