Function at 0x4227e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4224
call fcn.00461a60
mov eax, dword [0x4b206c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
mov dword [ebp - 0x4080], 0
mov ecx, dword [ebp + 8]
push ebx
mov dword [ebp - 0x40a8], eax
mov eax, dword [eax]
mov dword [ebp - 0x40a4], ecx
push esi
push edi
test eax, eax
je 0x4229a0
mov dword [ebp - 0x40b8], eax
lea eax, [ebp - 0x40c0]
mov dword [ebp - 0x40c0], 0x422710
mov dword [ebp - 0x40bc], 0x422670
mov dword [ebp - 0x4070], 0x43e086
mov dword [ebp - 0x406c], 0x43e0d9
mov dword [ebp - 0x4068], 0x43e0e9
mov dword [ebp - 0x4064], 0x43e133
mov dword [ebp - 0x4060], eax
mov dword [ebp - 0x4094], 0x43e001
mov dword [ebp - 0x4090], 0x43e019
mov dword [ebp - 0x40b4], 0x43e001
mov dword [ebp - 0x40b0], 0x43e019
call fcn.0043bafd
xorps xmm0, xmm0
mov dword [ebp - 0x4140], 0
lea eax, [ebp - 0x40b4]
mov dword [ebp - 0x413c], 0
push eax
lea eax, [ebp - 0x4094]
mov dword [ebp - 0x4118], 0
push eax
lea edx, [ebp - 0x4070]
mov dword [ebp - 0x4100], 0
lea ecx, [ebp - 0x4140]
movlpd qword [ebp - 0x4108], xmm0
movups xmmword [ebp - 0x4138], xmm0
mov dword [ebp - 0x40fc], 0
movups xmmword [ebp - 0x4128], xmm0
mov dword [ebp - 0x40f8], 0
movups xmmword [ebp - 0x40d4], xmm0
movups xmmword [ebp - 0x40f4], xmm0
movups xmmword [ebp - 0x40e4], xmm0
call fcn.0043db9f
mov ebx, eax
add esp, 8
mov dword [ebp - 0x4098], ebx
test ebx, ebx
je 0x4229b8
lea edx, [ebp - 0x4094]
lea ecx, [ebp - 0x4140]
call fcn.0043bc44
test ebx, ebx
je 0x4229b8
cmp dword [0x4b6c14], 2
jg 0x42298b
push 2
push 0x18f
push str.e:_se9_src_base360lzma_utillzma_util.cc
lea ecx, [ebp - 0x4170]
call fcn.00419b20
push ebx
push ecx
mov edx, str.Error_returned_by_SzArchiveOpen:
lea ecx, [eax + 8]
call fcn.0041a680
add esp, 4
mov ecx, eax
call fcn.0041a870
mov eax, 1
jmp 0x422991
mov eax, dword [ebp - 0x4080]
test al, 1
je 0x4229a0
lea ecx, [ebp - 0x4170]
call fcn.00419d30
mov eax, 6
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00460c27
mov esp, ebp
pop ebp
ret 8
xor ebx, ebx
mov dword [ebp - 0x4084], 0
mov dword [ebp - 0x40a0], 0xffffffff
mov dword [ebp - 0x409c], 0
cmp dword [ebp - 0x4100], ebx
jbe 0x422c94
mov ecx, ebx
mov edx, 0x80
and ecx, 7
mov eax, ebx
sar edx, cl
mov ecx, dword [ebp - 0x40f8]
shr eax, 3
test byte [eax + ecx], dl
jne 0x422c87
mov esi, dword [ebp - 0x40cc]
mov eax, dword [esi + ebx*4 + 4]
sub eax, dword [esi + ebx*4]
cmp eax, 1
jb 0x422f09
push eax
lea ecx, [ebp - 0x407c]
call fcn.00423290
mov edx, dword [esi + ebx*4 + 4]
mov eax, dword [esi + ebx*4]
sub edx, eax
mov edi, dword [ebp - 0x407c]
test edi, edi
je 0x422a60
mov ecx, dword [ebp - 0x40c8]
lea esi, [ecx + eax*2]
test edx, edx
je 0x422a60
mov ecx, edi
sub esi, edi
nop word [eax + eax]
mov ax, word [esi + ecx]
lea ecx, [ecx + 2]
mov word [ecx - 2], ax
sub edx, 1
jne 0x422a50
mov eax, dword [ebp - 0x4078]
xor ecx, ecx
mov byte [ebp - 0x4088], cl
add eax, 0xfffffffe
push dword [ebp - 0x4088]
mov word [ebp - 0x1c], cx
lea ecx, [ebp - 0x1c]
push eax
push edi
mov dword [ebp - 8], 7
mov dword [ebp - 0xc], 0
call fcn.00423880
push 1
push 0
lea eax, [ebp - 0x408c]
mov dword [ebp - 0x408c], 0x2f
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040e450
cmp eax, 0xffffffff
je 0x422ba3
push 0xffffffffffffffff
inc eax
mov dword [ebp - 0x20], 7
xor ecx, ecx
mov dword [ebp - 0x24], 0
push eax
lea eax, [ebp - 0x1c]
mov word [ebp - 0x34], cx
push eax
lea ecx, [ebp - 0x34]
call fcn.00401cc4
mov eax, dword [ebp - 8]
cmp eax, 8
jb 0x422b30
mov ecx, dword [ebp - 0x1c]
inc eax
cmp eax, 0x7fffffff
ja 0x422f5c
add eax, eax
cmp eax, 0x1000
jb 0x422b27
test cl, 0x1f
jne 0x422f5c
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x422f5c
sub ecx, eax
cmp ecx, 4
jb 0x422f5c
cmp ecx, 0x23
ja 0x422f5c
mov ecx, eax
push ecx
call fcn.00460c6b
add esp, 4
xor eax, eax
mov dword [ebp - 8], 7
mov word [ebp - 0x1c], ax
lea ecx, [ebp - 0x1c]
lea eax, [ebp - 0x34]
mov dword [ebp - 0xc], 0
push eax
call fcn.004022f4
mov eax, dword [ebp - 0x20]
cmp eax, 8
jb 0x422ba3
mov ecx, dword [ebp - 0x34]
inc eax
cmp eax, 0x7fffffff
ja 0x422f5c
add eax, eax
cmp eax, 0x1000
jb 0x422b9a
test cl, 0x1f
jne 0x422f5c
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x422f5c
sub ecx, eax
cmp ecx, 4
jb 0x422f5c
cmp ecx, 0x23
ja 0x422f5c
mov ecx, eax
push ecx
call fcn.00460c6b
add esp, 4
mov esi, dword [ebp + 0xc]
sub esp, 8
mov ecx, esp
cmp dword [esi + 0x14], 8
jb 0x422bb5
mov eax, dword [esi]
jmp 0x422bb7
mov eax, esi
mov dword [ecx], eax
sub esp, 8
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov ecx, esp
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
mov dword [ecx], eax
mov eax, dword [ebp - 0xc]
mov dword [ecx + 4], eax
call fcn.00417330
add esp, 0x10
test al, al
jne 0x422cd6
mov eax, dword [ebp - 8]
cmp eax, 8
jb 0x422c3a
mov ecx, dword [ebp - 0x1c]
inc eax
cmp eax, 0x7fffffff
ja 0x422f5c
add eax, eax
cmp eax, 0x1000
jb 0x422c31
test cl, 0x1f
jne 0x422f5c
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x422f5c
sub ecx, eax
cmp ecx, 4
jb 0x422f5c
cmp ecx, 0x23
ja 0x422f5c
mov ecx, eax
push ecx
call fcn.00460c6b
add esp, 4
xor eax, eax
mov dword [ebp - 8], 7
mov dword [ebp - 0xc], 0
mov word [ebp - 0x1c], ax
test edi, edi
je 0x422c87
mov eax, dword [ebp - 0x4074]
lea ecx, [ebp - 0x407c]
sub eax, edi
sar eax, 1
push eax
push edi
call fcn.00423450
mov dword [ebp - 0x407c], 0
mov dword [ebp - 0x4078], 0
mov dword [ebp - 0x4074], 0
inc ebx
cmp ebx, dword [ebp - 0x4100]
jb 0x4229e4
mov ebx, dword [ebp - 0x4098]
push dword [ebp - 0x4084]
lea eax, [ebp - 0x4094]
push eax
call dword [ebp - 0x4090]
add esp, 8
lea edx, [ebp - 0x4094]
lea ecx, [ebp - 0x4140]
call fcn.0043bc44
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00460c27
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x40b4]
push eax
lea eax, [ebp - 0x4094]
push eax
lea eax, [ebp - 0x408c]
push eax
lea eax, [ebp - 0x4088]
push eax
lea eax, [ebp - 0x409c]
push eax
lea eax, [ebp - 0x4084]
push eax
lea eax, [ebp - 0x40a0]
push eax
push ebx
lea edx, [ebp - 0x4070]
lea ecx, [ebp - 0x4140]
call fcn.0043de91
mov ebx, eax
add esp, 0x20
test ebx, ebx
je 0x422df7
cmp dword [0x4b6c14], 2
jg 0x422d66
push 2
push 0x1ba
push str.e:_se9_src_base360lzma_utillzma_util.cc
lea ecx, [ebp - 0x4220]
call fcn.00419b20
push ebx
push ecx
mov edx, str.Error_returned_by_SzExtract:
lea ecx, [eax + 8]
call fcn.0041a680
add esp, 4
mov ecx, eax
call fcn.0041a870
mov eax, 4
jmp 0x422d6c
mov eax, dword [ebp - 0x4080]
test al, 4
je 0x422d7b
lea ecx, [ebp - 0x4220]
call fcn.00419d30
mov ebx, 6
mov eax, dword [ebp - 8]
cmp eax, 8
jb 0x422dd3
mov ecx, dword [ebp - 0x1c]
inc eax
cmp eax, 0x7fffffff
ja 0x422f5c
add eax, eax
cmp eax, 0x1000
jb 0x422dca
test cl, 0x1f
jne 0x422f61
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x422f66
sub ecx, eax
cmp ecx, 4
jb 0x422f6b
cmp ecx, 0x23
ja 0x422f70
mov ecx, eax
push ecx
call fcn.00460c6b
add esp, 4
xor eax, eax
mov dword [ebp - 8], 7
lea ecx, [ebp - 0x407c]
mov dword [ebp - 0xc], 0
mov word [ebp - 0x1c], ax
call fcn.00423260
jmp 0x422c9a
sub esp, 8
mov ecx, esp
push esi
call fcn.0040387d
lea eax, [ebp - 0x4c]
push eax
sub esp, 8
mov ecx, esp
push dword [ebp - 0x40a4]
call fcn.0040387d
lea ecx, [ebp - 0x34]
call fcn.0040cfd0
mov ecx, eax
call fcn.0040d7f0
lea ecx, [ebp - 0x34]
call fcn.0040d070
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040d5f0
mov ecx, dword [ebp - 0x40a8]
push eax
call fcn.00422760
lea ecx, [ebp - 0x34]
call fcn.0040d070
cmp dword [ebp - 0x38], 8
lea eax, [ebp - 0x4c]
push 0
cmovae eax, dword [ebp - 0x4c]
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x422e8d
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp - 0x4c]
mov ebx, eax
call fcn.0040d070
jmp 0x422d80
mov edi, dword [ebp - 0x408c]
lea eax, [ebp - 0x40ac]
push 0
push eax
mov eax, dword [ebp - 0x4088]
add eax, dword [ebp - 0x4084]
push edi
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x422edd
cmp dword [ebp - 0x40ac], edi
jne 0x422edd
mov eax, dword [ebp - 0x40e4]
cmp byte [eax], 0
je 0x422ef9
push dword [ebp - 0x40e0]
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x422ef9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x4c]
call fcn.0040d070
jmp 0x422d80
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x422eec
jmp 0x422e78
cmp dword [0x4b6c14], 2
jg 0x422f3d
push 2
push 0x1a3
push str.e:_se9_src_base360lzma_utillzma_util.cc
lea ecx, [ebp - 0x4220]
call fcn.00419b20
mov edx, str.Couldnt_get_file_name
lea ecx, [eax + 8]
call fcn.0041a680
mov eax, 2
jmp 0x422f43
mov eax, dword [ebp - 0x4080]
test al, 2
je 0x422f52
lea ecx, [ebp - 0x4220]
call fcn.00419d30
mov ebx, 6
jmp 0x422c9a
call fcn.004662a1
call fcn.004662a1
call fcn.004662a1
call fcn.004662a1
call fcn.004662a1
int3