Function at 0x470e60
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [0x5080f4]
xor eax, esp
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x2c], eax
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
test ecx, ecx
je 0x4711e2
test eax, eax
jne 0x470ea3
cmp edx, 0xffffffff
je 0x4711e2
cmp dword [ebp + 0xc], 0xd
jb 0x4711fa
mov eax, dword [ecx + 1]
lea esi, [edi + 4]
mov edx, 0x1000
mov dword [esp + 0x48], esi
cmp eax, edx
lea ebx, [edi + 0xc]
mov dword [esp + 0x24], ebx
cmovb eax, edx
mov dword [esp + 0x14], eax
mov al, byte [ecx]
cmp al, 0xe1
jb 0x470edc
mov eax, 4
jmp 0x471241
xor edx, edx
movzx eax, al
mov ecx, 9
div ecx
mov ecx, 5
mov byte [esp + 0x10], dl
xor edx, edx
movzx eax, al
div ecx
push esi
mov byte [esp + 0x15], dl
mov ecx, ebx
lea edx, [esp + 0x14]
mov byte [esp + 0x16], al
call fcn.00479340
add esp, 4
test eax, eax
jne 0x471241
mov ebx, dword [esp + 0x14]
mov ecx, 0xfff
cmp ebx, 0x40000000
jb 0x470f2f
mov ecx, 0x3fffff
jmp 0x470f3d
cmp ebx, 0x400000
mov eax, 0xfffff
cmovae ecx, eax
lea eax, [ecx + ebx]
not ecx
and eax, ecx
lea edx, [edi + 0xc]
cmp eax, ebx
mov ecx, ebx
cmovae ecx, eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0xc], ecx
test eax, eax
je 0x470f5e
cmp ecx, dword [edx + 0x14]
je 0x470fa1
push eax
push esi
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x4d9444]
call esi
add esp, 8
mov dword [edi + 0x1c], 0
mov esi, dword [edi + 4]
lea eax, [edi + 4]
mov ecx, esi
push dword [esp + 0xc]
push eax
call dword [0x4d9444]
call esi
add esp, 8
mov dword [edi + 0x1c], eax
lea edx, [edi + 0xc]
test eax, eax
je 0x471219
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [edx + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [edx + 0x14], ecx
mov dword [edx], eax
mov edx, dword [esp + 0x28]
mov dword [edi + 0x24], 0
mov dword [edi + 0x58], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x50], 0x114
cmp edx, 0xffffffff
je 0x470ff9
mov ecx, dword [ebx + 9]
mov eax, dword [ebx + 5]
test ecx, ecx
jl 0x470ff9
jg 0x470fed
test eax, eax
jb 0x470ff9
push ecx
push eax
mov ecx, edx
call fcn.00471c00
add esp, 8
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x47103c
mov eax, dword [ebx + 9]
mov ecx, dword [ebx + 5]
test eax, eax
jl 0x47103c
jg 0x471013
test ecx, ecx
je 0x47103c
test eax, eax
ja 0x47103c
jb 0x47101f
cmp ecx, 0x7fffffff
jae 0x47103c
mov eax, dword [edx + 8]
sub eax, dword [edx]
cmp ecx, eax
jbe 0x47103c
cmp ecx, 0x7fffffff
ja 0x47125f
push ecx
mov ecx, edx
call fcn.004719a0
mov edx, dword [esp + 0x1c]
xorps xmm0, xmm0
mov ebx, dword [ebp + 0xc]
movlpd qword [esp + 0x48], xmm0
add ebx, 0xfffffff3
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
lea eax, [edx + 0xd]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
nop dword [eax + eax]
mov dword [edi + 0x24], 0
test eax, eax
jb 0x471087
ja 0x471082
cmp ebx, 0xffffffff
jbe 0x471087
or eax, 0xffffffff
jmp 0x471089
mov eax, ebx
mov dword [esp + 0x24], eax
mov eax, dword [edx + 5]
mov edx, dword [edx + 9]
mov dword [esp + 0x30], edx
mov edx, eax
mov dword [esp + 0x10], eax
sub edx, esi
mov eax, dword [esp + 0x30]
sbb eax, ecx
mov ecx, dword [edi + 0x20]
test eax, eax
ja 0x4710b2
jb 0x4710b4
cmp edx, ecx
jb 0x4710b4
mov edx, ecx
test edx, edx
je 0x4711ce
xor eax, eax
cmp dword [esp + 0x30], eax
jl 0x4710db
mov ecx, dword [esp + 0x10]
jg 0x4710ce
test ecx, ecx
je 0x4710db
sub ecx, esi
cmp dword [edi + 0x20], ecx
mov ecx, 1
cmovae eax, ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], 0
push ecx
push eax
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x18]
lea ecx, [edi + 0xc]
call fcn.00479030
add esp, 0x10
test eax, eax
jne 0x4712a7
mov eax, dword [esp + 0x24]
sub ebx, eax
mov dword [esp + 0x48], 0
sbb dword [esp + 0x20], 0
add dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
cmp eax, 0xffffffff
je 0x471152
push 0
lea ecx, [esp + 0x4c]
push ecx
push dword [edi + 0x24]
push dword [edi + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x471264
add esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
adc ecx, 0
mov dword [esp + 0x18], ecx
jmp 0x471156
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x471184
mov ecx, dword [edi + 0x1c]
push dword [esp + 0x2c]
mov eax, dword [edi + 0x24]
add eax, ecx
push eax
push ecx
push dword [edx + 4]
mov ecx, edx
call fcn.0042e960
add esi, dword [edi + 0x24]
mov ecx, dword [esp + 0x18]
adc ecx, 0
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x10]
cmp eax, 1
je 0x4711ab
cmp eax, 4
je 0x4711ab
mov eax, ebx
or eax, dword [esp + 0x20]
je 0x471288
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
jmp 0x471070
mov edx, dword [esp + 0x28]
cmp edx, 0xffffffff
je 0x4711ce
mov ebx, dword [esp + 0x1c]
cmp dword [ebx + 5], esi
jne 0x4711c2
cmp dword [ebx + 9], ecx
je 0x4711ce
push ecx
push esi
mov ecx, edx
call fcn.00471c00
add esp, 8
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00484d55
mov esp, ebp
pop ebp
ret 0x10
push 0x57
lea ecx, [esp + 0x38]
call fcn.0043e050
push 0x5057bc
mov eax, ecx
push eax
call fcn.004a0209
push str.Unable_to_read_LZMA_header_
push 0xd
lea ecx, [esp + 0x3c]
call fcn.0043e0b0
push 0x5057bc
lea eax, [esp + 0x38]
push eax
call fcn.004a0209
mov eax, dword [esp + 0x48]
push dword [edx + 8]
push eax
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4d9444]
call esi
mov eax, dword [esp + 0x2c]
add esp, 8
mov dword [eax + 8], 0
mov eax, 2
push str.Unable_to_allocate_LZMA_context_
push eax
lea ecx, [esp + 0x3c]
call fcn.0043e0b0
push 0x5057bc
lea eax, [esp + 0x38]
push eax
call fcn.004a0209
call fcn.0040cf60
push str.Unable_to_write_uncompressed_data_to_the_disk_
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0x3c]
call fcn.0043e0b0
push 0x5057bc
lea eax, [esp + 0x38]
push eax
call fcn.004a0209
push str.The_LZMA_stream_has_ended_prematurely_
push 1
lea ecx, [esp + 0x3c]
call fcn.0043e0b0
push 0x5057bc
lea eax, [esp + 0x38]
push eax
call fcn.004a0209
push str.Unable_to_decompress_LZMA_stream_
push eax
lea ecx, [esp + 0x3c]
call fcn.0043e0b0
push 0x5057bc
lea eax, [esp + 0x38]
push eax
call fcn.004a0209
int3