Function at 0x401000
Capabilities:
Read file on windows
Set console window title
Terminate process
Write file on windows

Disassembly:
push ebx
mov ebx, esp
and esp, 0xffffff80
push ebp
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push esi
push edi
sub esp, 0xe70
xor eax, eax
push eax
push eax
push 3
mov esi, dword [ebx + 0xc]
call fcn.00407210
stmxcsr dword [ebp - 0xdf8]
add esp, 0xc
or dword [ebp - 0xdf8], 0x8000
ldmxcsr dword [ebp - 0xdf8]
call fcn.004064c0
push 2
mov dword [ebp - 0x14], 0x42306c
mov dword [ebp - 0x4d8], str.srep_virtual_memory.tmp
mov dword [ebp - 0x18], 0
call fcn.0040e29d
push 0
push eax
call fcn.0040e321
push eax
lea ecx, [ebp - 0x738]
mov eax, dword [ebx + 8]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.00405e90
add esp, 8
cmp dword [ebp - 0x60c], 0
je 0x4010aa
lea ecx, [ebp - 0x738]
call fcn.00405b60
mov eax, 0xffffffff
lea esp, [ebp - 8]
pop edi
pop esi
pop ebp
mov esp, ebx
pop ebx
ret
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
movq xmm0, qword [0x422700]
mov dword [esp], str.Memory
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x422a8f
call fcn.004067a0
mov dword [ebp - 0x740], eax
mov dword [ebp - 0x744], edx
mov eax, 0x80000000
xor edx, edx
mov ecx, dword [ebp - 0x740]
sub ecx, eax
mov eax, dword [ebp - 0x744]
sbb eax, edx
jb 0x401112
or ecx, eax
je 0x401112
mov dword [ebp - 0x740], 0x5dc00000
mov dword [ebp - 0x744], 0
xor ecx, ecx
mov edx, 0x800000
lea edi, [esi + 4]
mov dword [ebp - 0xc34], ecx
mov dword [ebp - 0xc38], 3
mov dword [ebp - 0xc40], ecx
mov dword [ebp - 0xc44], ecx
mov dword [ebp - 0xc3c], ecx
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x73c], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], ecx
cmp dword [edi], 0
je 0x401ecf
mov dword [ebp - 0xc48], ecx
mov dword [ebp - 0xc30], esi
mov dword [ebp - 0xc50], edi
mov eax, 0x3c0
pxor xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
movups xmmword [ebp - 0x88], xmm0
movq qword [ebp - 0x78], xmm0
pxor xmm0, xmm0
movups xmmword [ebp + eax - 0x468], xmm0
movups xmmword [ebp + eax - 0x478], xmm0
movups xmmword [ebp + eax - 0x488], xmm0
movups xmmword [ebp + eax - 0x498], xmm0
sub eax, 0x40
jne 0x40118f
mov eax, dword [ebp - 0xc30]
mov esi, 0x422a93
mov edi, dword [eax + 4]
mov dword [ebp - 0xc4c], edi
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4011e8
test dl, dl
je 0x4011e4
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4011e8
add edi, 2
add esi, 2
test dl, dl
jne 0x4011c8
xor eax, eax
jmp 0x4011ed
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401200
mov dword [ebp - 0xc34], 1
jmp 0x401eaa
mov esi, 0x422a95
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40122b
test dl, dl
je 0x401227
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40122b
add edi, 2
add esi, 2
test dl, dl
jne 0x40120b
xor eax, eax
jmp 0x401230
sbb eax, eax
or eax, 1
test eax, eax
je 0x4011f1
mov esi, 0x422a98
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40125f
test dl, dl
je 0x40125b
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40125f
add edi, 2
add esi, 2
test dl, dl
jne 0x40123f
xor eax, eax
jmp 0x401264
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401277
mov dword [ebp - 0xc34], 2
jmp 0x401eaa
mov esi, 0x422a9b
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4012a2
test dl, dl
je 0x40129e
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4012a2
add edi, 2
add esi, 2
test dl, dl
jne 0x401282
xor eax, eax
jmp 0x4012a7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4012b7
mov dword [ebp - 0x28], 1
jmp 0x401eaa
mov esi, str._mmap
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4012e2
test dl, dl
je 0x4012de
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4012e2
add edi, 2
add esi, 2
test dl, dl
jne 0x4012c2
xor eax, eax
jmp 0x4012e7
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, str._nommap
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40131a
test dl, dl
je 0x401316
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40131a
add edi, 2
add esi, 2
test dl, dl
jne 0x4012fa
xor eax, eax
jmp 0x40131f
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, 0x422ab1
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401352
test dl, dl
je 0x40134e
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401352
add edi, 2
add esi, 2
test dl, dl
jne 0x401332
xor eax, eax
jmp 0x401357
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, 0x422ab4
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40138a
test dl, dl
je 0x401386
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40138a
add edi, 2
add esi, 2
test dl, dl
jne 0x40136a
xor eax, eax
jmp 0x40138f
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, 0x422ab8
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4013c2
test dl, dl
je 0x4013be
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4013c2
add edi, 2
add esi, 2
test dl, dl
jne 0x4013a2
xor eax, eax
jmp 0x4013c7
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov edx, 0x422ab1
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4013f8
mov eax, edx
add edx, ecx
call fcn.00407580
mov edx, eax
mov ecx, 0x422ab1
mov eax, dword [ebp - 0xc4c]
mov dword [ebp - 0xc54], edx
call fcn.004075b0
mov dword [ebp - 0xc58], eax
test eax, eax
jne 0x401445
mov eax, dword [ebp - 0xc4c]
add eax, dword [ebp - 0xc54]
je 0x401445
push 0x2e
push dword [ebp - 0xc4c]
call fcn.00406280
add esp, 8
test eax, eax
jne 0x401eaa
jmp 0x402322
mov edx, 0x422abc
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40146e
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422abc
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x4015cc
add esi, dword [ebp - 0xc4c]
je 0x4015cc
mov eax, dword [ebp - 0xc4c]
movsx edx, byte [eax + 2]
push edx
mov dword [ebp - 0xc5c], edx
call fcn.0040e463
add esp, 4
test eax, eax
jne 0x4014c2
cmp dword [ebp - 0xc5c], 0x78
jne 0x4015cc
jmp 0x4014d4
cmp dword [ebp - 0xc5c], 0x78
je 0x4014d4
add dword [ebp - 0xc5c], 0xffffffd0
jmp 0x4014de
mov dword [ebp - 0xc5c], 5
cmp dword [ebp - 0xc5c], 5
ja 0x4015a8
mov eax, dword [ebp - 0xc4c]
mov esi, 0x42306c
mov dword [ebp - 0x18], 0
lea edi, [eax + 3]
mov dword [ebp - 0xc60], edi
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401526
test dl, dl
je 0x401522
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401526
add edi, 2
add esi, 2
test dl, dl
jne 0x401506
xor eax, eax
jmp 0x40152b
sbb eax, eax
or eax, 1
test eax, eax
je 0x401597
mov esi, 0x422abf
mov edi, dword [ebp - 0xc60]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40155a
test dl, dl
je 0x401556
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40155a
add edi, 2
add esi, 2
test dl, dl
jne 0x40153a
xor eax, eax
jmp 0x40155f
sbb eax, eax
or eax, 1
test eax, eax
je 0x401597
mov esi, 0x422ac1
mov edi, dword [ebp - 0xc60]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40158e
test dl, dl
je 0x40158a
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40158e
add edi, 2
add esi, 2
test dl, dl
jne 0x40156e
xor eax, eax
jmp 0x401593
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4015a8
mov eax, dword [ebp - 0xc5c]
mov dword [ebp - 0xc38], eax
jmp 0x401eaa
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 2
mov ecx, 0x62
mov dword [edx], 0
call fcn.00403440
mov dword [ebp - 0x1c], eax
jmp 0x401eaa
mov esi, 0x422ac3
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4015f7
test dl, dl
je 0x4015f3
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4015f7
add edi, 2
add esi, 2
test dl, dl
jne 0x4015d7
xor eax, eax
jmp 0x4015fc
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, 0x422ac6
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40162f
test dl, dl
je 0x40162b
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40162f
add edi, 2
add esi, 2
test dl, dl
jne 0x40160f
xor eax, eax
jmp 0x401634
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov edx, 0x422aca
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401665
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422aca
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x4016dd
add esi, dword [ebp - 0xc4c]
je 0x4016dd
mov eax, dword [ebp - 0xc4c]
movsx edx, byte [eax + 2]
push edx
call fcn.0040e463
add esp, 4
test eax, eax
je 0x4016dd
push 0
mov edx, dword [ebp - 0xc4c]
lea eax, [ebp - 0xc64]
push eax
add edx, 2
push edx
call fcn.0040e748
add esp, 0xc
mov edx, dword [ebp - 0xc64]
movsx eax, byte [edx]
cmp eax, 0x2f
je 0x40233f
test eax, eax
je 0x401eaa
mov dword [ebp - 0x18], 1
jmp 0x401eaa
mov esi, str._ia_
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401708
test dl, dl
je 0x401704
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401708
add edi, 2
add esi, 2
test dl, dl
jne 0x4016e8
xor eax, eax
jmp 0x40170d
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, str._ia
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401740
test dl, dl
je 0x40173c
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401740
add edi, 2
add esi, 2
test dl, dl
jne 0x401720
xor eax, eax
jmp 0x401745
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, 0x422ad7
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401778
test dl, dl
je 0x401774
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401778
add edi, 2
add esi, 2
test dl, dl
jne 0x401758
xor eax, eax
jmp 0x40177d
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, str._slp_
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4017b0
test dl, dl
je 0x4017ac
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4017b0
add edi, 2
add esi, 2
test dl, dl
jne 0x401790
xor eax, eax
jmp 0x4017b5
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, str._slp
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4017e8
test dl, dl
je 0x4017e4
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4017e8
add edi, 2
add esi, 2
test dl, dl
jne 0x4017c8
xor eax, eax
jmp 0x4017ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov esi, 0x422ae8
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401820
test dl, dl
je 0x40181c
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401820
add edi, 2
add esi, 2
test dl, dl
jne 0x401800
xor eax, eax
jmp 0x401825
sbb eax, eax
or eax, 1
test eax, eax
je 0x401eaa
mov edx, 0x422ae8
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401856
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422ae8
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x40187a
add esi, dword [ebp - 0xc4c]
jne 0x401e99
mov edx, 0x422aeb
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4018a3
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422aeb
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x4018f8
add esi, dword [ebp - 0xc4c]
je 0x4018f8
mov eax, dword [ebp - 0xc4c]
cmp byte [eax + 3], 0
jne 0x4018d8
mov eax, 0xffffffff
mov edx, eax
jmp 0x4018e8
lea edx, [ebp - 0x18]
add eax, 3
mov ecx, 0x6d
call fcn.004037c0
mov dword [0x42f040], eax
mov dword [0x42f044], edx
jmp 0x401eaa
mov edx, str._index
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401921
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, str._index
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401952
add esi, dword [ebp - 0xc4c]
je 0x401952
mov eax, dword [ebp - 0xc4c]
lea edx, [eax + 7]
mov dword [ebp - 0x14], edx
jmp 0x401eaa
mov edx, str._temp
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40197b
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, str._temp
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x4019ac
add esi, dword [ebp - 0xc4c]
je 0x4019ac
mov eax, dword [ebp - 0xc4c]
lea edx, [eax + 6]
mov dword [ebp - 0x24], edx
jmp 0x401eaa
mov edx, str._vmfile
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4019d5
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, str._vmfile
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401a09
add esi, dword [ebp - 0xc4c]
je 0x401a09
mov eax, dword [ebp - 0xc4c]
lea edx, [eax + 8]
mov dword [ebp - 0x4d8], edx
jmp 0x401eaa
mov edx, str._vmblock
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401a32
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, str._vmblock
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401a73
add esi, dword [ebp - 0xc4c]
je 0x401a73
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 9
mov ecx, 0x6d
call fcn.00403440
mov dword [ebp - 0x73c], eax
jmp 0x401eaa
mov edx, str._mem
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401a9c
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, str._mem
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401ae3
add esi, dword [ebp - 0xc4c]
je 0x401ae3
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 4
mov ecx, 0x6d
call fcn.00403500
mov dword [ebp - 0x740], eax
mov dword [ebp - 0x744], edx
jmp 0x401eaa
mov edx, 0x422b16
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401b0c
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422b16
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401b4d
add esi, dword [ebp - 0xc4c]
je 0x401b4d
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 2
mov ecx, 0x62
call fcn.00403440
mov dword [ebp - 0xc3c], eax
jmp 0x401eaa
mov edx, 0x422b19
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401b76
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422b19
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401bb7
add esi, dword [ebp - 0xc4c]
je 0x401bb7
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 2
mov ecx, 0x62
call fcn.00403440
mov dword [ebp - 0xc48], eax
jmp 0x401eaa
cmp dword [ebp - 0xc58], 0
jne 0x401be9
mov eax, dword [ebp - 0xc54]
add eax, dword [ebp - 0xc4c]
je 0x401be9
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 2
mov ecx, 0x62
call fcn.004037c0
jmp 0x401eaa
mov edx, 0x422b1c
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401c12
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422b1c
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401c50
add esi, dword [ebp - 0xc4c]
je 0x401c50
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 2
mov ecx, 0x6d
call fcn.00403440
mov dword [ebp - 0x20], eax
jmp 0x401eaa
mov esi, 0x422b1f
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401c7b
test dl, dl
je 0x401c77
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401c7b
add edi, 2
add esi, 2
test dl, dl
jne 0x401c5b
xor eax, eax
jmp 0x401c80
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401c97
xor eax, eax
mov dword [ebp - 0xc40], eax
mov dword [ebp - 0xc44], eax
jmp 0x401eaa
mov esi, 0x422b23
mov edi, dword [ebp - 0xc4c]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x401cc2
test dl, dl
je 0x401cbe
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x401cc2
add edi, 2
add esi, 2
test dl, dl
jne 0x401ca2
xor eax, eax
jmp 0x401cc7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x401ce4
mov dword [ebp - 0xc40], 0x20000000
mov dword [ebp - 0xc44], 0
jmp 0x401eaa
mov edx, 0x422a95
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401d0d
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422a95
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401e50
add esi, dword [ebp - 0xc4c]
je 0x401e50
mov eax, dword [ebp - 0xc4c]
mov edx, 0x3a
add eax, 2
lea ecx, [ebp - 0xdf8]
mov dword [esp + 0xc], 0x64
call fcn.004036d0
test eax, eax
jle 0x401eaa
cmp dword [ebp - 0x18], 0
jne 0x401eaa
mov dword [ebp - 0xc68], eax
xor edi, edi
mov esi, dword [ebp - 0xc44]
mov eax, dword [ebp + edi*4 - 0xdf8]
movsx eax, byte [eax]
add eax, 0xffffff9f
cmp eax, 0xb
ja 0x401de4
movzx eax, byte [eax + 0x423040]
add eax, 0x401d97
jmp eax
mov ecx, 0x6d
lea edx, [ebp - 0x18]
mov eax, dword [ebp + edi*4 - 0xdf8]
call fcn.00403500
mov dword [ebp - 0xc40], eax
mov esi, edx
jmp 0x401e12
cmp dword [ebp - 0x18], 0
jne 0x401e2d
inc edi
cmp edi, dword [ebp - 0xc68]
jl 0x401d76
mov dword [ebp - 0xc44], esi
jmp 0x401eaa
mov dword [ebp - 0xc44], esi
lea eax, [ebp - 0x458]
push dword [ebp + edi*4 - 0xdf8]
push str._d_s
push eax
call fcn.00403720
add esp, 0xc
jmp 0x401eaa
mov edx, 0x422b2c
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x401e79
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
mov ecx, 0x422b2c
mov edx, esi
mov eax, dword [ebp - 0xc4c]
call fcn.004075b0
test eax, eax
jne 0x401eaa
add esi, dword [ebp - 0xc4c]
je 0x401eaa
mov eax, dword [ebp - 0xc4c]
lea edx, [ebp - 0x18]
add eax, 2
call fcn.00403780
mov eax, dword [ebp - 0xc30]
add eax, 4
mov dword [ebp - 0xc30], eax
cmp dword [eax + 4], 0
jne 0x40116f
mov ecx, dword [ebp - 0xc48]
mov edi, dword [ebp - 0xc50]
movups xmm0, xmmword [0x420200]
movups xmmword [ebp - 0xc58], xmm0
cmp dword [edi + 4], 0
je 0x4032b0
mov esi, dword [ebp - 0xc38]
lea edx, [esi - 1]
cmp edx, 1
mov edx, 0
setbe dl
mov dword [ebp - 0xc68], edx
test esi, esi
jne 0x401f18
cmp dword [ebp - 0xc68], 0
jne 0x401090
test ecx, ecx
je 0x401f57
jmp 0x401f79
cmp dword [ebp - 0xc68], 0
je 0x401f53
mov edx, dword [ebp - 0xc40]
or edx, dword [ebp - 0xc44]
jne 0x401090
test ecx, ecx
jne 0x401f4f
mov edx, dword [ebp - 0xc3c]
mov eax, 0x1000
test edx, edx
cmove edx, eax
mov dword [ebp - 0xc3c], edx
jmp 0x401fa1
je 0x401fa1
jmp 0x401fa7
test ecx, ecx
jne 0x401f79
cmp dword [ebp - 0xc3c], 0
jne 0x401f7b
mov dword [ebp - 0xc3c], 0x200
test ecx, ecx
jne 0x401fa7
cmp dword [ebp - 0xc68], 0
jne 0x401fa1
jmp 0x401f7b
jne 0x401fa7
cmp dword [ebp - 0xc38], 5
jne 0x401fa1
mov eax, dword [ebp - 0xc3c]
mov edx, 2
inc eax
call fcn.00406260
mov dword [ebp - 0xc3c], eax
shr dword [ebp - 0xc3c], 1
mov ecx, dword [ebp - 0xc3c]
mov eax, ecx
mov edx, 2
mov dword [ebp - 0xc48], ecx
call fcn.00406240
mov ecx, dword [ebp - 0xc48]
cmp ecx, eax
je 0x401fcc
cmp dword [ebp - 0xc68], 0
je 0x401fd5
mov dword [ebp - 0x2c], 0
jmp 0x401ff1
push 2
call fcn.0040e29d
push str.Warning:__l_parameter_should_be_power_of_2__otherwise_compressed_file_may_be_corrupt_n
push eax
call fcn.00406760
add esp, 0xc
mov dword [ebp - 0x2c], 1
mov eax, dword [edi + 4]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4032a9
cmp dword [ebp - 0xc34], 1
jne 0x4032a9
mov eax, dword [edi + 8]
mov dword [ebp - 0x50], eax
test eax, eax
je 0x40318c
mov esi, 0x422b2f
mov edi, dword [ebp - 0x30]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x402042
test dl, dl
je 0x40203e
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x402042
add edi, 2
add esi, 2
test dl, dl
jne 0x402022
xor eax, eax
jmp 0x402047
sbb eax, eax
or eax, 1
test eax, eax
je 0x402093
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x50]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x402071
test dl, dl
je 0x40206d
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x402071
add edi, 2
add esi, 2
test dl, dl
jne 0x402051
xor eax, eax
jmp 0x402076
sbb eax, eax
or eax, 1
test eax, eax
je 0x402360
push 0x422b31
push dword [ebp - 0x30]
call fcn.0040e821
mov dword [ebp - 0x34], eax
add esp, 8
jmp 0x4020a0
push 0
call fcn.0040e29d
mov dword [ebp - 0x34], eax
add esp, 4
cmp dword [ebp - 0x34], 0
je 0x40317d
mov esi, 0x422b2f
mov edi, dword [ebp - 0x50]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4020d2
test dl, dl
je 0x4020ce
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4020d2
add edi, 2
add esi, 2
test dl, dl
jne 0x4020b2
xor eax, eax
jmp 0x4020d7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4020ea
push 1
call fcn.0040e29d
mov dword [ebp - 0x48], eax
add esp, 4
jmp 0x4020fd
push 0x422b34
push dword [ebp - 0x50]
call fcn.0040e821
mov dword [ebp - 0x48], eax
add esp, 8
cmp dword [ebp - 0x48], 0
je 0x40316e
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0
je 0x402124
push 0x422b31
push dword [ebp - 0x14]
call fcn.0040e821
mov dword [ebp - 0x4c], eax
add esp, 8
jmp 0x40212a
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
je 0x40315f
push 0
call fcn.0040e29d
add esp, 4
cmp eax, dword [ebp - 0x34]
jne 0x40214c
mov dword [ebp - 0x34], 0
jmp 0x402162
push dword [ebp - 0x34]
call fcn.00412ce9
push 0x8000
push eax
call fcn.00412507
add esp, 0xc
push 1
call fcn.0040e29d
add esp, 4
cmp eax, dword [ebp - 0x48]
jne 0x40217a
mov dword [ebp - 0x48], 0
jmp 0x402190
push dword [ebp - 0x48]
call fcn.00412ce9
push 0x8000
push eax
call fcn.00412507
add esp, 0xc
push 0
call fcn.0040e29d
push 0x410
mov ecx, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
lea eax, [ebp - 0xc58]
push edx
push eax
cmove ecx, edx
mov dword [ebp - 0x4c], ecx
call fcn.004078a0
add esp, 0x10
mov esi, 0x422b2f
mov edi, dword [ebp - 0x30]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4021e1
test dl, dl
je 0x4021dd
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4021e1
add edi, 2
add esi, 2
test dl, dl
jne 0x4021c1
xor eax, eax
jmp 0x4021e6
sbb eax, eax
or eax, 1
test eax, eax
je 0x4021fb
push dword [ebp - 0x34]
call fcn.00412ce9
push eax
call fcn.0040e974
add esp, 8
cmp dword [ebp - 0x34], 0
je 0x4030ca
mov ecx, dword [ebp - 0x4d8]
lea edx, [ebp - 0x848]
test cl, 3
je 0x402225
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x40222a
inc edx
test cl, 3
jne 0x402216
call fcn.004078d0
push 0x1000410
call fcn.0040abcb
mov dword [ebp - 0x38], eax
push dword [ebp - 0x20]
call fcn.0040abcb
mov dword [ebp - 0x3c], eax
add esp, 8
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x73c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
lea eax, [esi + edx + 0x1800410]
mov edx, dword [ebp - 0x740]
lea edi, [eax + esi*4]
sub edx, edi
lea ecx, [esi*4]
mov dword [ebp - 0xc68], ecx
mov ecx, 0
mov esi, dword [ebp - 0x744]
sbb esi, ecx
jb 0x402290
mov edx, dword [ebp - 0x740]
sub edx, eax
mov dword [ebp - 0xc68], edx
lea ecx, [ebp - 0x478]
call fcn.004063c0
mov eax, dword [ebp - 0xc68]
xor edi, edi
and eax, 0xfff00000
lea ecx, [ebp - 0x848]
shr eax, 4
mov edx, eax
shl edx, 4
sub edx, eax
mov esi, dword [ebp - 0x73c]
add edx, 0xffffffc4
push 8
mov dword [ebp - 0x46c], edi
mov dword [ebp - 0x468], edi
mov dword [ebp - 0x464], edx
mov dword [ebp - 0x4d8], ecx
mov dword [ebp - 0x4d4], edi
mov dword [ebp - 0x4d0], esi
mov dword [ebp - 0x4cc], edi
mov dword [ebp - 0x4c8], edi
mov dword [ebp - 0x4c4], edi
mov dword [ebp - 0x4c0], edi
mov dword [ebp - 0x4bc], edi
mov dword [ebp - 0x4b8], edi
mov dword [ebp - 0x4b4], edi
call fcn.0040abd4
add esp, 4
test eax, eax
jne 0x40236c
call fcn.0040eb54
push 0x65
push dword [ebp - 0xc4c]
call fcn.00406280
add esp, 8
test eax, eax
jne 0x401eaa
jmp 0x401445
push 0
inc edx
lea eax, [ebp - 0xc64]
push eax
push edx
call fcn.0040e748
add esp, 0xc
mov eax, dword [ebp - 0xc64]
movsx eax, byte [eax]
jmp 0x4016c9
push str.Input_and_output_files_should_have_different_names
push 3
call fcn.00406c80
mov dword [ebp - 0x4c4], eax
mov dword [eax], edi
mov dword [eax + 4], edi
pxor xmm0, xmm0
mov edx, dword [ebp - 0x4c4]
lea eax, [ebp - 0x4c4]
push 0x30
mov dword [edx], eax
mov dword [eax + 0x14], edi
movq qword [eax + 0x1c], xmm0
movq qword [eax + 0x24], xmm0
mov dword [eax + 0x64], edi
mov dword [eax + 0x68], edi
call fcn.0040abd4
mov edx, eax
add esp, 4
test edx, edx
je 0x40231d
mov dword [edx], edx
cmp edx, 0xfffffffc
je 0x4023ba
mov dword [edx + 4], edx
cmp edx, 0xfffffff8
je 0x4023c2
mov dword [edx + 8], edx
add esp, 0xfffffff0
mov eax, 1
mov byte [edx + 0xc], al
lea ecx, [ebp - 0x498]
mov byte [edx + 0xd], al
mov dword [ecx + 0x38], edx
lea edx, [ebp - 0x44]
mov dword [esp], edx
movq xmm0, qword [0x422708]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x460]
movq qword [ecx - 0x38], xmm0
mov dword [ecx - 0x28], 0xffffffff
mov dword [ecx - 0x20], 0
movq qword [ecx - 0x30], xmm0
call fcn.004063d0
add esp, 8
cmp dword [ebp - 0x34], 0
je 0x4030a1
push dword [ebp - 0x34]
push 0x10
push 1
lea eax, [ebp - 0xc58]
push eax
call fcn.0040ed7e
mov esi, eax
add esp, 0x10
test esi, esi
jl 0x402fd6
cmp esi, 0x10
jne 0x402fc7
cmp dword [ebp - 0xc58], 0x26351817
jne 0x402fc7
cmp dword [ebp - 0xc54], 0x50455253
jne 0x402fc7
mov eax, dword [ebp - 0xc50]
mov dword [ebp - 0xc68], eax
movzx eax, al
mov dword [ebp - 0x58], eax
lea edx, [eax - 1]
cmp edx, 3
ja 0x402fa8
mov esi, dword [ebp - 0xc68]
shr esi, 0x10
mov eax, dword [ebp - 0xc4c]
and esi, 0xff
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x34], 0
je 0x402f83
push dword [ebp - 0x34]
push esi
push 1
lea eax, [ebp - 0xc58]
push eax
call fcn.0040ed7e
mov edi, eax
add esp, 0x10
test edi, edi
jl 0x402eb8
cmp edi, esi
jne 0x402d0d
mov eax, dword [ebp - 0xc68]
xor edx, edx
shr eax, 0x18
add eax, 0x10
mov ecx, dword [ebp - 0x58]
cmp ecx, 1
cmove edx, ecx
movzx eax, al
add eax, 0xc
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x744], edx
cmp ecx, 3
jne 0x402de6
cmp dword [ebp - 0x58], 2
jbe 0x402506
cmp dword [ebp - 0x1c], 0xffffffff
je 0x402537
mov esi, 0x422b2f
mov edi, dword [ebp - 0x50]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x40252e
test dl, dl
je 0x40252a
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x40252e
add edi, 2
add esi, 2
test dl, dl
jne 0x40250e
xor eax, eax
jmp 0x402533
sbb eax, eax
or eax, 1
test eax, eax
je 0x402542
cmp dword [ebp - 0x24], 0
jne 0x402558
jmp 0x402aae
cmp dword [ebp - 0x24], 0
je 0x402dda
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0
je 0x402dce
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0
je 0x402aae
push 0x422b34
push dword [ebp - 0x24]
call fcn.0040e821
mov esi, eax
add esp, 8
cmp esi, dword [ebp - 0x48]
je 0x402583
test esi, esi
je 0x402dbf
call fcn.004064c0
xor eax, eax
mov dword [ebp - 0xc60], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0xc68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0xc5c], esi
cmp dword [ebp - 0x34], 0
je 0x402d99
push dword [ebp - 0x34]
push dword [ebp - 0x54]
push 1
lea eax, [ebp - 0xc58]
push eax
call fcn.0040ed7e
add esp, 0x10
test eax, eax
jl 0x402cf3
je 0x402ab6
cmp eax, 8
jb 0x4025ec
cmp dword [ebp - 0xc58], 0
jne 0x4025ec
cmp dword [ebp - 0xc54], 0
je 0x402ab6
cmp eax, dword [ebp - 0x54]
jne 0x402d0d
mov eax, dword [ebp - 0xc58]
mov esi, dword [ebp - 0xc50]
mov edi, dword [ebp - 0xc54]
mov dword [ebp - 0x73c], eax
lea edx, [eax + esi]
mov dword [ebp - 0x740], edx
cmp edi, dword [ebp - 0x20]
ja 0x402d89
cmp dword [ebp - 0x740], 0x1000410
ja 0x402d75
cmp dword [ebp - 0x73c], 0x1000410
ja 0x402d75
cmp esi, 0x1000410
ja 0x402d75
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x6c], eax
add eax, edi
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x70], edx
adc edx, 0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x4c], 0
je 0x402d55
push dword [ebp - 0x4c]
push esi
push 1
push dword [ebp - 0x38]
call fcn.0040ed7e
add esp, 0x10
cmp eax, esi
jne 0x402d3c
cmp dword [ebp - 0x58], 4
jne 0x4026b5
mov edx, dword [ebp - 0xc68]
xor ecx, ecx
mov eax, dword [edx]
add edx, 4
and eax, 0xfffffffc
cmp edx, 1
mov dword [ebp - 0xc68], edx
setb cl
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xc60], ecx
jmp 0x4026be
mov eax, dword [ebp - 0x38]
lea edx, [eax + esi]
mov dword [ebp - 0x60], edx
add esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0
je 0x402d1c
push dword [ebp - 0x34]
push dword [ebp - 0x73c]
push 1
push esi
call fcn.0040ed7e
add esp, 0x10
test eax, eax
jl 0x402cf3
cmp eax, dword [ebp - 0x73c]
jne 0x402d0d
mov eax, dword [ebp - 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x10], eax
mov edx, dword [ebp - 0x40]
mov dword [esp + 0x14], edx
mov ecx, dword [ebp - 0x60]
mov dword [esp + 0x18], ecx
lea ecx, [ebp - 0x478]
mov dword [esp + 0x1c], esi
mov esi, dword [ebp - 0x740]
add esi, dword [ebp - 0x38]
mov dword [esp + 0x20], esi
lea esi, [ebp - 0x4d8]
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0x24], eax
lea edx, [eax + edi]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
lea eax, [ebp - 0x460]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
mov edx, dword [ebp - 0x1c]
mov dword [esp + 0x38], edx
mov eax, dword [ebp - 0x744]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xc5c]
call fcn.004038d0
test al, al
je 0x402d01
cmp dword [ebp - 0x58], 4
mov eax, dword [ebp - 0x40]
cmove eax, dword [ebp - 0x60]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x48], 0
je 0x402cd0
push dword [ebp - 0x48]
push edi
push 1
push dword [ebp - 0x3c]
call fcn.0040f03f
add esp, 0x10
cmp eax, edi
jne 0x402c00
cmp dword [ebp - 0x24], 0
je 0x4027dd
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0
je 0x4027dd
push 0
push dword [ebp - 0x70]
push dword [ebp - 0x6c]
push dword [ebp - 0xc5c]
call fcn.0040f358
push dword [ebp - 0xc5c]
push edi
push 1
push dword [ebp - 0x3c]
call fcn.0040f03f
add esp, 0x20
cmp eax, edi
jne 0x402b30
cmp dword [ebp - 0xc60], 0
je 0x4025a2
mov esi, dword [ebp - 0xc5c]
mov edi, dword [ebp - 0x460]
lea eax, [ebp - 0x73c]
push edi
lea ecx, [ebp - 0x460]
mov edx, dword [edi]
push edx
push eax
call fcn.00405d60
push 0x30
push dword [ebp - 0x460]
call fcn.0040ac04
add esp, 8
lea ecx, [ebp - 0x4d8]
call fcn.00405c60
mov edx, dword [ebp - 0x478]
test edx, edx
je 0x4028af
mov ecx, dword [ebp - 0x470]
mov edi, edx
sub ecx, edx
sar ecx, 2
cmp ecx, 0x3fffffff
ja 0x40231d
lea eax, [ecx*4]
cmp eax, 0x1000
jb 0x402891
lea ecx, [ecx*4 + 0x23]
cmp ecx, eax
jbe 0x40231d
mov eax, ecx
test dl, 0x1f
jne 0x40231d
mov edi, dword [edx - 4]
cmp edi, edx
jae 0x40231d
sub edx, edi
cmp edx, 4
jb 0x40231d
cmp edx, 0x23
ja 0x40231d
push eax
push edi
call fcn.0040ac04
add esp, 8
xor eax, eax
mov dword [ebp - 0x478], eax
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x470], eax
cmp dword [ebp - 0x34], 0
je 0x402b14
mov eax, dword [0x44f89c]
mov byte [0x44f898], 1
mov dword [ebp - 0x70], eax
test eax, eax
je 0x402912
mov dword [0x44f89c], eax
mov edx, dword [0x44f894]
test edx, edx
je 0x4028f9
mov dword [0x44f89c], eax
xor eax, eax
push eax
push dword [ebp - 0x70]
mov dword [0x44f8a0], eax
push edx
mov edx, dword [edx]
call dword [edx + 0x28]
mov edx, dword [0x44f894]
jmp 0x402906
cmp byte [0x44f898], 0
je 0x402ac8
mov dword [0x44f89c], 0
jmp 0x402918
mov edx, dword [0x44f894]
test edx, edx
je 0x402932
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov dword [0x44f894], 0
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp byte [0x44f8a4], 0
je 0x40294d
push 0x42f080
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
mov byte [0x44f8a4], 0
cmp byte [0x44f8a5], 0
je 0x402968
push 0x42f080
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov byte [0x44f8a5], 0
push 2
call fcn.0040e29d
push 0x423070
push eax
call fcn.00406760
add esp, 0xc
cmp dword [ebp - 0x34], 0
je 0x40298e
push dword [ebp - 0x34]
call fcn.0040f3e9
add esp, 4
cmp dword [ebp - 0x48], 0
je 0x40299f
push dword [ebp - 0x48]
call fcn.0040f3e9
add esp, 4
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x4c]
je 0x4029ba
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x4c]
je 0x4029ba
push dword [ebp - 0x4c]
call fcn.0040f3e9
add esp, 4
cmp dword [ebp - 0x24], 0
je 0x4029d9
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0
je 0x4029d9
push esi
call fcn.0040f3e9
push dword [ebp - 0x24]
call fcn.0040f462
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x70], eax
test eax, eax
jne 0x402a49
cmp dword [ebp - 0x2c], 0
jne 0x402a2b
cmp dword [ebp - 0x28], 0
je 0x402a2b
mov esi, 0x422b2f
mov edi, dword [ebp - 0x30]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x402a17
test dl, dl
je 0x402a13
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x402a17
add edi, 2
add esi, 2
test dl, dl
jne 0x4029f7
xor eax, eax
jmp 0x402a1c
sbb eax, eax
or eax, 1
test eax, eax
je 0x402a2b
push dword [ebp - 0x30]
call fcn.0040f462
add esp, 4
lea ecx, [ebp - 0x738]
call fcn.00405b60
xor eax, eax
cmp dword [ebp - 0x2c], 0
seta al
lea esp, [ebp - 8]
pop edi
pop esi
pop ebp
mov esp, ebx
pop ebx
ret
mov esi, 0x422b2f
mov edi, dword [ebp - 0x50]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x402a71
test dl, dl
je 0x402a6d
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x402a71
add edi, 2
add esi, 2
test dl, dl
jne 0x402a51
xor eax, eax
jmp 0x402a76
sbb eax, eax
or eax, 1
test eax, eax
je 0x402a85
push dword [ebp - 0x50]
call fcn.0040f462
add esp, 4
cmp dword [ebp - 0x14], 0
je 0x402a96
push dword [ebp - 0x14]
call fcn.0040f462
add esp, 4
lea ecx, [ebp - 0x738]
call fcn.00405b60
mov eax, dword [ebp - 0x70]
lea esp, [ebp - 8]
pop edi
pop esi
pop ebp
mov esp, ebx
pop ebx
ret
mov esi, dword [ebp - 0x48]
jmp 0x402576
cmp dword [ebp - 0x45c], 1
je 0x4027ea
jmp 0x4025ec
mov dword [0x44f89c], eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0x44f894
push 0x423074
push 1
push 0
push 0x423084
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edx, dword [0x44f894]
test edx, edx
jne 0x4028e0
mov byte [0x44f898], 1
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [0x44f894]
jmp 0x402906
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call fcn.00407120
add esp, 0xc
jmp 0x4028b9
push 2
mov esi, dword [ebp - 0xc5c]
call fcn.0040e29d
push str._n__ERROR__Cant_write_to_output_file__disk_full__
push eax
call fcn.00406760
add esp, 0xc
mov edi, dword [ebp - 0x460]
lea eax, [ebp - 0xc68]
push edi
mov dword [ebp - 0x18], 3
lea ecx, [ebp - 0x460]
mov edx, dword [edi]
push edx
push eax
call fcn.00405d60
push 0x30
push dword [ebp - 0x460]
call fcn.0040ac04
add esp, 8
lea ecx, [ebp - 0x4d8]
call fcn.00405c60
mov edx, dword [ebp - 0x478]
test edx, edx
je 0x4028af
mov ecx, dword [ebp - 0x470]
mov edi, edx
sub ecx, edx
sar ecx, 2
cmp ecx, 0x3fffffff
ja 0x40231d
lea eax, [ecx*4]
cmp eax, 0x1000
jb 0x402891
lea ecx, [ecx*4 + 0x23]
cmp ecx, eax
jbe 0x40231d
mov eax, ecx
test dl, 0x1f
jne 0x40231d
mov edi, dword [edx - 4]
cmp edi, edx
jae 0x40231d
sub edx, edi
cmp edx, 4
jb 0x40231d
cmp edx, 0x23
ja 0x40231d
jmp 0x402891
push 2
mov esi, dword [ebp - 0xc5c]
call fcn.0040e29d
push str._n__ERROR__Cant_write_to_output_file__disk_full__
push eax
call fcn.00406760
add esp, 0xc
mov edi, dword [ebp - 0x460]
lea eax, [ebp - 0xc60]
push edi
mov dword [ebp - 0x18], 3
lea ecx, [ebp - 0x460]
mov edx, dword [edi]
push edx
push eax
call fcn.00405d60
push 0x30
push dword [ebp - 0x460]
call fcn.0040ac04
add esp, 8
lea ecx, [ebp - 0x4d8]
call fcn.00405c60
mov edx, dword [ebp - 0x478]
test edx, edx
je 0x4028af
mov ecx, dword [ebp - 0x470]
mov edi, edx
sub ecx, edx
sar ecx, 2
cmp ecx, 0x3fffffff
ja 0x40231d
lea eax, [ecx*4]
cmp eax, 0x1000
jb 0x402891
lea ecx, [ecx*4 + 0x23]
cmp ecx, eax
jbe 0x40231d
mov eax, ecx
test dl, 0x1f
jne 0x40231d
mov edi, dword [edx - 4]
cmp edi, edx
jae 0x40231d
sub edx, edi
cmp edx, 4
jb 0x40231d
cmp edx, 0x23
ja 0x40231d
jmp 0x402891
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00405a80
add esp, 8
test eax, eax
jge 0x4027a0
mov esi, dword [ebp - 0xc5c]
mov dword [ebp - 0x18], eax
jmp 0x4027f0
push str.Decompression_problem:_broken_compressed_data
push 4
call fcn.00406c80
push dword [ebp - 0x30]
push str.Decompression_problem:_unexpected_end_of_file__s_or_I_O_error
push 4
call fcn.00406c80
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
mov dword [esp], esi
mov eax, dword [ecx - 4]
mov dword [esp + 4], eax
call fcn.00403330
add esp, 8
jmp 0x4026df
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
cmp byte [eax], 0
cmovne edx, eax
push edx
push str.Decompression_problem:_unexpected_end_of_file__s_or_I_O_error
push 4
call fcn.00406c80
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.00403330
add esp, 8
jmp 0x40267d
mov eax, edx
push 0x1000410
push eax
push str.Decompression_problem:_compressed_block_size_is__u_bytes__while_maximum_supported_size_is__u_bytes
push 4
call fcn.00406c80
push dword [ebp - 0x20]
push edi
push str.Decompression_problem:_uncompressed_block_size_is__u_bytes__while_maximum_supported_size_is__u_bytes
push 4
call fcn.00406c80
add esp, 0xfffffff0
lea eax, [ebp - 0xc58]
lea ecx, [ebp - 0x738]
mov dword [esp], eax
mov edx, dword [ebp - 0x54]
mov dword [esp + 4], edx
call fcn.00403330
add esp, 8
jmp 0x4025c3
push dword [ebp - 0x24]
push str.Cant_open_tempfile__s_for_write
push 3
call fcn.00406c80
push str.Writing_decompressed_data_to_stdout_without_tempfile_isnt_supported_for_this_file_and_settings
push 3
call fcn.00406c80
mov dword [ebp - 0x24], str.srep_data.tmp
jmp 0x402537
mov ecx, dword [ebp - 0x460]
lea eax, [ebp - 0xc5c]
push ecx
mov edx, dword [ecx]
lea ecx, [ebp - 0x460]
push edx
push eax
mov dword [ebp - 0x18], 0xffffffff
call fcn.00405d60
push 0x30
push dword [ebp - 0x460]
call fcn.0040ac04
add esp, 8
lea ecx, [ebp - 0x4d8]
call fcn.00405c60
mov edx, dword [ebp - 0x478]
test edx, edx
jne 0x402e35
xor esi, esi
jmp 0x4028af
mov eax, dword [ebp - 0x470]
mov esi, edx
sub eax, edx
sar eax, 2
cmp eax, 0x3fffffff
ja 0x40231d
lea ecx, [eax*4]
cmp ecx, 0x1000
jb 0x402e95
lea eax, [eax*4 + 0x23]
cmp eax, ecx
jbe 0x40231d
mov ecx, eax
test dl, 0x1f
jne 0x40231d
mov esi, dword [edx - 4]
cmp esi, edx
jae 0x40231d
sub edx, esi
cmp edx, 4
jb 0x40231d
cmp edx, 0x23
ja 0x40231d
push ecx
push esi
call fcn.0040ac04
add esp, 8
xor esi, esi
mov dword [ebp - 0x478], esi
mov dword [ebp - 0x474], esi
mov dword [ebp - 0x470], esi
jmp 0x4028af
mov ecx, dword [ebp - 0x460]
lea eax, [ebp - 0x744]
push ecx
mov edx, dword [ecx]
lea ecx, [ebp - 0x460]
push edx
push eax
mov dword [ebp - 0x18], edi
call fcn.00405d60
push 0x30
push dword [ebp - 0x460]
call fcn.0040ac04
add esp, 8
lea ecx, [ebp - 0x4d8]
call fcn.00405c60
mov edx, dword [ebp - 0x478]
test edx, edx
je 0x402e2e
mov eax, dword [ebp - 0x470]
mov esi, edx
sub eax, edx
sar eax, 2
cmp eax, 0x3fffffff
ja 0x40231d
lea ecx, [eax*4]
cmp ecx, 0x1000
jb 0x402f60
lea eax, [eax*4 + 0x23]
cmp eax, ecx
jbe 0x40231d
mov ecx, eax
test dl, 0x1f
jne 0x40231d
mov esi, dword [edx - 4]
cmp esi, edx
jae 0x40231d
sub edx, esi
cmp edx, 4
jb 0x40231d
cmp edx, 0x23
ja 0x40231d
push ecx
push esi
call fcn.0040ac04
add esp, 8
xor esi, esi
mov dword [ebp - 0x478], esi
mov dword [ebp - 0x474], esi
mov dword [ebp - 0x470], esi
jmp 0x4028af
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
lea eax, [ebp - 0xc58]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.00403330
mov edi, eax
add esp, 8
jmp 0x4024bb
push dword [ebp - 0x30]
mov eax, 4
push eax
push 1
push dword [0x42c064]
push dword [ebp - 0x58]
push str.Incompatible_compressed_data_format:_v_d___s_supports_only_v_d..v_d__in_file__s
push eax
call fcn.00406c80
push dword [ebp - 0x30]
push str.Not_an_SREP_compressed_file:__s
push 4
call fcn.00406c80
mov ecx, dword [ebp - 0x460]
lea eax, [ebp - 0x740]
push ecx
mov edx, dword [ecx]
lea ecx, [ebp - 0x460]
push edx
push eax
mov dword [ebp - 0x18], esi
call fcn.00405d60
push 0x30
push dword [ebp - 0x460]
call fcn.0040ac04
add esp, 8
lea ecx, [ebp - 0x4d8]
call fcn.00405c60
mov edx, dword [ebp - 0x478]
test edx, edx
je 0x402e2e
mov eax, dword [ebp - 0x470]
mov esi, edx
sub eax, edx
sar eax, 2
cmp eax, 0x3fffffff
ja 0x40231d
lea ecx, [eax*4]
cmp ecx, 0x1000
jb 0x40307e
lea eax, [eax*4 + 0x23]
cmp eax, ecx
jbe 0x40231d
mov ecx, eax
test dl, 0x1f
jne 0x40231d
mov esi, dword [edx - 4]
cmp esi, edx
jae 0x40231d
sub edx, esi
cmp edx, 4
jb 0x40231d
cmp edx, 0x23
ja 0x40231d
push ecx
push esi
call fcn.0040ac04
add esp, 8
xor esi, esi
mov dword [ebp - 0x478], esi
mov dword [ebp - 0x474], esi
mov dword [ebp - 0x470], esi
jmp 0x4028af
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
lea eax, [ebp - 0xc58]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.00403330
mov esi, eax
add esp, 8
jmp 0x402433
add esp, 0xfffffff0
lea ecx, [ebp - 0x738]
lea eax, [ebp - 0x848]
mov dword [esp], str.TempPath
mov dword [esp + 4], eax
call fcn.004062f0
mov esi, eax
add esp, 8
cmp esi, 2
jge 0x403132
lea edi, [ebp - 0x710]
mov edx, edi
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40311f
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
lea eax, [ebp - 0x848]
push esi
push edi
push eax
call fcn.00407a30
add esp, 0xc
cmp byte [ebp + esi - 0x849], 0x5c
je 0x403149
mov eax, 0x5c
mov word [ebp + esi - 0x848], ax
mov edx, dword [ebp - 0x4d8]
lea eax, [ebp - 0x848]
call fcn.00407a60
jmp 0x40222a
push dword [ebp - 0x14]
push str.Cant_open_index_file__s_for_write
push 3
call fcn.00406c80
push dword [ebp - 0x50]
push str.Cant_open__s_for_write
push 3
call fcn.00406c80
push dword [ebp - 0x30]
push str.Cant_open__s_for_read
push 3
call fcn.00406c80
mov edx, dword [ebp - 0x30]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4031b3
mov eax, edx
add edx, ecx
call fcn.00407580
mov edx, dword [str..srep]
mov esi, eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4031df
mov eax, edx
add edx, ecx
call fcn.00407580
lea edx, [esi + eax + 2]
push edx
call fcn.0040abcb
mov dword [ebp - 0x50], eax
add esp, 4
mov edx, eax
mov ecx, dword [ebp - 0x30]
test cl, 3
je 0x403208
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x40320d
inc edx
test cl, 3
jne 0x4031f9
call fcn.004078d0
push 0
push dword [ebp - 0x30]
call fcn.00406280
mov edx, dword [str..srep]
add esp, 8
mov dword [ebp - 0xc68], edx
mov edi, eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40324c
mov eax, edx
add edx, ecx
call fcn.00407580
mov esi, eax
sub edi, esi
mov eax, edi
mov edx, dword [ebp - 0xc68]
call fcn.00407be0
test eax, eax
jne 0x403296
mov edx, dword [ebp - 0x50]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x403288
mov eax, edx
add edx, ecx
call fcn.00407580
neg esi
add esi, dword [ebp - 0x50]
mov byte [eax + esi], 0
jmp 0x40201a
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0xc68]
call fcn.00407a60
jmp 0x40201a
push 0
call fcn.0040f76e
push 0
mov dword [ebp - 0xc48], ecx
call fcn.0040e29d
mov ecx, dword [ebp - 0xc48]
push eax
mov dword [ebp - 0xc48], ecx
call fcn.00412ce9
push eax
call fcn.00412d0f
mov ecx, dword [ebp - 0xc48]
add esp, 0xc
test eax, eax
jne 0x401ee7
push 1
mov dword [ebp - 0xc48], ecx
call fcn.0040e29d
mov ecx, dword [ebp - 0xc48]
push eax
mov dword [ebp - 0xc48], ecx
call fcn.00412ce9
push eax
call fcn.00412d0f
mov ecx, dword [ebp - 0xc48]
add esp, 0xc
test eax, eax
lea edx, [ebp - 0xc58]
cmove edi, edx
jmp 0x401ee7