Function at 0x421670
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x594fa1
mov eax, dword fs:[0]
push eax
sub esp, 0x36c
mov eax, dword [0x62819c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x24]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x7c], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x13c], eax
or eax, ecx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x138], ecx
jne 0x42170c
mov dword [ebp - 0x13c], 1
mov dword [ebp - 0x138], eax
mov dword [ebp - 0xd8], 0
mov eax, dword [edx]
lea ecx, [ebp - 0xd8]
push ecx
push 0x5ac1cc
push edx
mov dword [ebp - 4], 0
call dword [eax]
mov dword [ebp - 0x108], 0
mov ecx, dword [ebp - 0xf8]
lea edx, [ebp - 0x108]
push edx
push 0x5ac12c
push ecx
mov eax, dword [ecx]
mov byte [ebp - 4], 1
call dword [eax]
test esi, esi
je 0x421792
mov ecx, dword [esi + 0x104]
mov eax, dword [esi + 0x100]
test ecx, ecx
jne 0x42176b
test eax, eax
je 0x421792
cmp byte [edi + 0x2a], 0
jne 0x421792
push 0
push ecx
push eax
push 0
push 0
push ebx
push dword [ebp - 0x130]
call fcn.00424c40
mov ebx, eax
add esp, 0x1c
test ebx, ebx
jne 0x424984
xor esi, esi
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x70], esi
mov byte [ebp - 0x84], 0
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], esi
xor eax, eax
mov dword [ebp - 0xf4], esi
xor edi, edi
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0x78], edi
mov dword [ebp - 0xec], edi
mov ecx, dword [ebp - 0x98]
mov byte [ebp - 0x41], al
mov byte [ebp - 4], 6
mov al, byte [ecx + 8]
mov byte [ebp - 0x7d], al
test al, al
je 0x421881
mov ebx, dword [ecx]
xor edx, edx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x64], eax
test eax, eax
je 0x421881
mov ebx, dword [ebx]
nop
mov eax, dword [ebx]
cmp dword [eax + 0x14], 0
mov ecx, dword [eax + 0x10]
ja 0x421872
jb 0x421822
cmp ecx, 0xffffffff
ja 0x421872
cmp ecx, 0x3030205
ja 0x421850
je 0x42187d
cmp ecx, 0x20304
ja 0x421843
je 0x42187d
cmp ecx, 3
je 0x42187d
cmp ecx, 0x20302
jmp 0x421870
sub ecx, 0x3030103
je 0x42187d
sub ecx, 0x18
jmp 0x421870
cmp ecx, 0x3030701
ja 0x42186a
je 0x42187d
cmp ecx, 0x3030401
je 0x42187d
cmp ecx, 0x3030501
jmp 0x421870
cmp ecx, 0x3030805
je 0x42187d
inc edx
add ebx, 4
cmp edx, dword [ebp - 0x64]
jb 0x421810
jmp 0x421881
mov byte [ebp - 0x7d], 0
mov ebx, dword [ebp - 0x58]
test ebx, ebx
je 0x421e02
mov esi, dword [ebx + 0x5c]
push 0
call fcn.0054605b
xor ecx, ecx
mov dword [ebp - 0x9c], 0
mov eax, esi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov esi, eax
add esp, 8
xor eax, eax
mov dword [ebp - 0x9c], esi
cmp dword [ebx + 0x5c], eax
jbe 0x4218dd
lea ebx, [ebx]
mov dword [esi + eax*4], 0xffffffff
inc eax
cmp eax, dword [ebx + 0x5c]
jb 0x4218d0
mov ebx, dword [ebp - 0x88]
xor ecx, ecx
cmp dword [ebx + 4], ecx
jbe 0x421905
lea ebx, [ebx]
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x4218ff
mov dword [esi + eax*4], ecx
inc ecx
cmp ecx, dword [ebx + 4]
jb 0x4218f0
mov ecx, dword [ebp - 0x58]
xor eax, eax
mov dword [ebp - 0x48], eax
cmp dword [ecx + 4], eax
jbe 0x421e08
lea edx, [eax*4]
mov dword [ebp - 0x90], 0
mov eax, dword [ecx + 0x24]
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x94], edx
mov ebx, dword [edx + eax]
xor eax, eax
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + 0x130]
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x54], ebx
mov edx, dword [edx + eax]
test ebx, ebx
je 0x421de9
mov ebx, dword [ebp - 0x90]
mov edi, edx
shl edi, 4
nop
cmp edx, dword [ecx + 0x5c]
jae 0x421e7e
mov ecx, dword [ecx + 0x58]
cmp byte [ecx + edi + 0xc], 0
je 0x4219dc
inc ebx
mov dword [ebp - 0x90], ebx
mov ebx, dword [esi + edx*4]
test ebx, ebx
js 0x4219d6
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov eax, dword [eax + ebx*4]
cmp byte [eax + 0x38], 0
mov eax, dword [ebp - 0x8c]
jne 0x4219ce
mov ebx, dword [ebp - 0xac]
inc eax
add ebx, dword [ecx + edi]
mov dword [ebp - 0xac], ebx
mov ebx, dword [ebp - 0xdc]
adc ebx, dword [ecx + edi + 4]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0xdc], ebx
mov ebx, dword [ebp - 0x90]
jmp 0x4219e2
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x58]
inc edx
add edi, 0x10
cmp ebx, dword [ebp - 0x54]
jb 0x421970
test eax, eax
je 0x421de9
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 0
mov ebx, dword [ebp - 0x48]
lea eax, [ebp - 0x188]
push eax
push ebx
mov byte [ebp - 4], 9
mov edi, ecx
call fcn.00418ca0
mov eax, dword [edi + 0x34]
xor ecx, ecx
mov edx, dword [ebp - 0x184]
mov edi, dword [ebp - 0x188]
movzx eax, byte [eax + ebx]
mov dword [ebp - 0x170], eax
test edx, edx
je 0x421a86
mov eax, edi
lea esp, [esp]
cmp dword [eax], 0x6f10701
jne 0x421a7e
cmp dword [eax + 4], 0
je 0x421a9f
inc ecx
add eax, 0x18
cmp ecx, edx
jb 0x421a70
mov byte [ebp - 0x65], 0
cmp byte [ebp - 0x7d], 0
jne 0x421aa5
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x8c], eax
je 0x421aa5
xor bl, bl
jmp 0x421aa7
mov byte [ebp - 0x65], 1
jmp 0x421a8a
mov bl, 1
xor ecx, ecx
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
test edx, edx
je 0x421ae6
mov eax, edi
lea ecx, [ecx]
cmp dword [eax], 0x6f10701
jne 0x421ade
cmp dword [eax + 4], 0
je 0x421b37
inc ecx
add eax, 0x18
cmp ecx, edx
jb 0x421ad0
xor al, al
mov byte [ebp - 0xcc], al
test bl, bl
je 0x421be5
mov eax, dword [ebp - 0x170]
lea eax, [eax + eax*2]
mov edx, dword [edi + eax*8 + 4]
lea ecx, [edi + eax*8]
mov eax, dword [ecx]
cmp eax, 3
jne 0x421b3b
test edx, edx
jne 0x421b3d
cmp dword [ecx + 0xc], 1
jne 0x421be5
mov eax, dword [ecx + 8]
mov dword [ebp - 0xd4], 3
movzx eax, byte [eax]
inc eax
mov dword [ebp - 0xd0], eax
jmp 0x421be5
mov al, 1
jmp 0x421ae8
test edx, edx
ja 0x421be5
jb 0x421b50
cmp eax, 0x3030805
ja 0x421be5
cmp eax, 0x3030401
ja 0x421b72
je 0x421b87
mov ecx, eax
sub ecx, 0x3030103
je 0x421b87
sub ecx, 0x18
je 0x421b87
sub ecx, 0xea
je 0x421b87
jmp 0x421be5
cmp eax, 0x3030501
je 0x421b87
cmp eax, 0x3030701
je 0x421b87
cmp eax, 0x3030805
jne 0x421be5
mov dword [ebp - 0xd4], eax
cmp eax, 0x303011b
jne 0x421ba0
mov dword [ebp - 0xd4], 0x3030103
jmp 0x421be5
cmp eax, 0x3030401
jne 0x421bb3
mov dword [ebp - 0xd0], 0x10
jmp 0x421be5
cmp eax, 0x3030501
je 0x421bdb
cmp eax, 0x3030205
je 0x421bdb
cmp eax, 0x3030805
je 0x421bdb
cmp eax, 0x3030701
jne 0x421be5
mov dword [ebp - 0xd0], 2
jmp 0x421be5
mov dword [ebp - 0xd0], 4
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.0041ffc0
mov edi, eax
add esp, 8
cmp edi, dword [ebp - 0xe4]
jb 0x421c78
lea ecx, [ebp - 0xf4]
call fcn.00410e10
push 0x18
call fcn.00546014
mov ecx, eax
add esp, 4
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x421c4e
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
jmp 0x421c50
xor ecx, ecx
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xf4]
lea esi, [eax + 1]
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xf0], esi
mov dword [edx + eax*4], ecx
cmp edi, esi
jae 0x421c05
mov esi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xf4]
mov edi, dword [eax + edi*4]
mov ecx, dword [edi + 0x14]
cmp dword [edi + 0x10], ecx
jne 0x421cf2
cmp ecx, 0x7fffffff
jae 0x4249cd
mov eax, ecx
mov ebx, 0x7fffffff
sub ebx, ecx
shr eax, 2
inc eax
mov edx, 8
cmp eax, ebx
cmovbe ebx, eax
add ebx, ecx
xor ecx, ecx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov ecx, dword [edi + 0x10]
add esp, 4
mov dword [ebp - 0x64], eax
test ecx, ecx
je 0x421cde
shl ecx, 3
push ecx
push dword [edi + 0xc]
push eax
call fcn.0054ae00
add esp, 0xc
push dword [edi + 0xc]
call fcn.0054605b
mov eax, dword [ebp - 0x64]
add esp, 4
mov dword [edi + 0xc], eax
mov dword [edi + 0x14], ebx
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0xc]
mov dword [eax + ecx*8], edx
mov edx, dword [ebp - 0x8c]
mov dword [eax + ecx*8 + 4], edx
cmp edx, dword [ebp - 0x54]
jne 0x421d45
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x94]
mov eax, dword [ecx + 0x30]
mov ebx, dword [ecx + 8]
mov ecx, dword [eax + edx + 4]
mov edx, dword [eax + edx]
mov edi, dword [ebx + ecx*8]
sub edi, dword [ebx + edx*8]
mov eax, dword [ebx + ecx*8 + 4]
sbb eax, dword [ebx + edx*8 + 4]
add dword [ebp - 0xb0], edi
adc dword [ebp - 0xb8], eax
jmp 0x421d8e
mov eax, dword [ebp - 0xac]
add dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xdc]
adc dword [ebp - 0xb8], ecx
mov byte [ebp - 0x41], 1
cmp dword [ebp - 0x70], ecx
ja 0x421d73
jb 0x421d6d
cmp dword [ebp - 0x6c], eax
jae 0x421d73
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], ecx
mov eax, dword [ebp - 0x84]
mov ecx, 1
cmp byte [ebp - 0x65], 0
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x84], eax
push dword [ebp - 0x178]
mov byte [ebp - 4], 6
call fcn.0054605b
push dword [ebp - 0x180]
call fcn.0054605b
mov eax, dword [ebp - 0x188]
add esp, 8
test eax, eax
je 0x421de6
push 0x40c890
push dword [eax - 4]
lea edi, [eax - 4]
mov byte [ebp - 4], 0xa
push 0x18
push eax
call fcn.00545eff
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 4]
push eax
push edi
call fcn.00546060
add esp, 8
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp eax, dword [ecx + 4]
jb 0x421916
mov edi, dword [ebp - 0xec]
mov dword [ebp - 0x78], edi
mov ebx, dword [ebp - 0x88]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x138], ecx
ja 0x421e29
cmp dword [ebp - 0x13c], 1
jbe 0x421e47
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x98]
mov byte [ebp - 0x65], 1
mov eax, dword [eax + 0x20]
or eax, dword [esi + 0x24]
mov esi, dword [ebp - 0x9c]
jne 0x421e4a
mov byte [ebp - 0x65], cl
mov eax, dword [ebx + 4]
mov dword [ebp - 0x64], eax
test eax, eax
je 0x421eb6
mov esi, dword [ebx]
mov edi, eax
mov ebx, dword [esi]
cmp byte [ebx + 0x38], 0
je 0x421ea5
mov eax, dword [ebx + 0x20]
add dword [ebp - 0xb0], eax
mov ebx, dword [ebx + 0x24]
adc dword [ebp - 0xb8], ebx
cmp byte [ebp - 0x65], 0
je 0x421e8b
add edx, eax
adc ecx, ebx
jmp 0x421e99
mov eax, 0x80004005
mov dword [ebp - 0x50], eax
jmp 0x42491a
cmp ecx, ebx
ja 0x421ea5
jb 0x421e95
cmp edx, eax
jae 0x421ea5
mov edx, eax
mov ecx, ebx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x12c], edx
add esi, 4
sub edi, 1
jne 0x421e58
mov esi, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x70]
cmp ecx, ebx
ja 0x421ed2
mov eax, dword [ebp - 0x6c]
jb 0x421ec6
cmp edx, eax
jae 0x421ed2
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], ebx
mov ecx, dword [ebp - 0xf8]
push dword [ebp - 0xb8]
push dword [ebp - 0xb0]
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x42491a
push 0x38
call fcn.00546014
add esp, 4
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x421f1b
mov ecx, eax
call fcn.004310f0
mov ebx, eax
mov dword [ebp - 0xa8], eax
jmp 0x421f23
xor ebx, ebx
mov dword [ebp - 0xa8], ebx
mov byte [ebp - 4], 6
mov dword [ebp - 0x1d8], ebx
test ebx, ebx
je 0x421f37
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
push 1
push dword [ebp - 0xf8]
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.00431150
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1fc], 0
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0
mov bl, byte [eax + 0x2b]
mov byte [ebp - 0x64], bl
push dword [ebp - 0x64]
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 0x10
mov dword [ebp - method.NArchive::N7z::CThreadDecoder.virtual_0], vtable.NArchive::N7z::CThreadDecoder.0
call fcn.0040c660
mov byte [ebp - 0x238], 0
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x210], 0
mov byte [ebp - 4], 0x14
test bl, bl
je 0x42204b
push 0x38
mov byte [ebp - 0x20c], 0
mov dword [ebp - 0x208], 1
call fcn.00546014
mov ebx, eax
add esp, 4
mov dword [ebp - 0x5c], ebx
test ebx, ebx
je 0x422019
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx], vtable.NArchive::N7z::CFolderOutStream2.0
mov dword [ebx + 0x34], 0
jmp 0x42201b
xor ebx, ebx
mov dword [ebp - 0x22c], ebx
test ebx, ebx
je 0x42202b
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov ecx, dword [ebp - 0x228]
test ecx, ecx
je 0x42203b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x234], 0x80004005
mov edx, dword [ebp - 0x98]
mov byte [ebp - 4], 0x15
cmp byte [edx + 0x2b], 0
je 0x422092
cmp byte [ebp - 0x41], 0
je 0x422092
lea ecx, [ebp - 0x2b0]
call fcn.004319a0
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
je 0x42208c
jle 0x42484e
movzx ebx, bx
or ebx, 0x80070000
mov dword [ebp - 0x50], ebx
jmp 0x42484e
mov edx, dword [ebp - 0x98]
xor ebx, ebx
mov word [ebp - 0x10c], 1
xor al, al
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], ebx
mov byte [ebp - 0x10a], al
mov ecx, dword [edx + 0xc]
mov byte [ebp - 4], 0x19
test ecx, ecx
jne 0x4220d1
mov word [ebp - 0x10c], cx
mov byte [ebp - 0x10a], cl
jmp 0x422121
mov ebx, dword [ebp - 0xd8]
test ebx, ebx
je 0x4220f0
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov edx, dword [ebp - 0x98]
mov al, byte [ebp - 0x10a]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x118], ebx
test ecx, ecx
jle 0x422121
mov byte [ebp - 0x10c], 1
cmp ecx, 7
jl 0x422121
cmp ecx, 9
movzx eax, al
mov ecx, 1
mov byte [ebp - 0x10b], 1
cmovge eax, ecx
mov byte [ebp - 0x10a], al
mov eax, dword [edx]
xor edx, edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], edx
cmp dword [eax + 4], edx
jbe 0x42238e
lea ebx, [ebx]
mov eax, dword [eax]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 0x38], 0
je 0x422375
cmp byte [ecx + 0x3b], 0
jne 0x422375
cmp byte [ecx + 0x3a], 0
jne 0x422375
mov eax, dword [ecx + 0x20]
or eax, dword [ecx + 0x24]
je 0x422375
cmp byte [ebp - 0x7d], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov byte [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
je 0x4221bb
lea eax, [ebp - 0xd4]
push eax
push ecx
push edx
lea ecx, [ebp - 0x118]
call fcn.0041fd60
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x4223fa
mov eax, dword [ebp - 0x64]
mov al, byte [eax + 0x31]
mov byte [ebp - 0xcc], al
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.0041ffc0
mov edx, dword [ebp - 0xe4]
mov ebx, eax
add esp, 8
mov dword [ebp - 0x94], ebx
cmp ebx, edx
jb 0x4222e1
cmp edx, edi
jne 0x422275
cmp edi, 0x7fffffff
jae 0x4249cd
mov eax, edi
mov ecx, 0x7fffffff
sub ecx, edi
shr eax, 2
inc eax
mov edx, 4
cmp eax, ecx
cmovbe ecx, eax
add edi, ecx
xor ecx, ecx
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov ebx, eax
add esp, 4
mov eax, dword [ebp - 0xe4]
test eax, eax
je 0x422255
lea ecx, [eax*4]
push ecx
push dword [ebp - 0xf4]
push ebx
call fcn.0054ae00
add esp, 0xc
push dword [ebp - 0xf4]
call fcn.0054605b
mov dword [ebp - 0xf4], ebx
add esp, 4
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0xec], edi
push 0x18
call fcn.00546014
mov ecx, eax
add esp, 4
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x4222b3
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
jmp 0x4222b5
xor ecx, ecx
mov edx, dword [ebp - 0xe4]
mov eax, edx
mov esi, dword [ebp - 0xf4]
inc edx
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xf0], edx
mov dword [esi + eax*4], ecx
mov esi, dword [ebp - 0x9c]
cmp ebx, edx
jae 0x4221f3
mov eax, dword [ebp - 0xf4]
mov ebx, dword [eax + ebx*4]
mov ecx, dword [ebx + 8]
cmp dword [ebx + 4], ecx
jne 0x422364
cmp ecx, 0x7fffffff
jae 0x4249cd
mov eax, ecx
mov edx, 0x7fffffff
sub edx, ecx
shr eax, 2
inc eax
cmp eax, edx
cmovbe edx, eax
add edx, ecx
xor ecx, ecx
mov dword [ebp - 0x4c], edx
mov eax, edx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov ecx, dword [ebx + 4]
add esp, 4
mov dword [ebp - 0x94], eax
test ecx, ecx
je 0x42234c
shl ecx, 2
push ecx
push dword [ebx]
push eax
call fcn.0054ae00
add esp, 0xc
push dword [ebx]
call fcn.0054605b
mov eax, dword [ebp - 0x94]
add esp, 4
mov dword [ebx], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x78]
lea eax, [ecx + 1]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x88]
inc edx
mov dword [ebp - 0x78], edx
cmp edx, dword [eax + 4]
jb 0x422140
mov ebx, dword [ebp - 0x118]
push dword [ebp - 0x114]
call fcn.0054605b
add esp, 4
mov byte [ebp - 4], 0x1e
test ebx, ebx
je 0x4223aa
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xa0], edi
mov byte [ebp - 4], 0x1f
cmp byte [ebp - 0x84], cl
je 0x4224f9
push 0x14
call fcn.00546014
mov ebx, eax
mov dword [ebp - 0xdc], eax
add esp, 4
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 4], 0x20
test ebx, ebx
je 0x422422
mov dword [ebx + 4], edi
lea ecx, [ebx + 8]
mov dword [ebx], vtable.NArchive::N7z::CCryptoGetTextPassword.0
call fcn.00434f60
jmp 0x42242a
push dword [ebp - 0x114]
call fcn.0054605b
add esp, 4
mov ecx, dword [ebp - 0x118]
mov byte [ebp - 4], 0x1a
test ecx, ecx
je 0x42484e
mov eax, dword [ecx]
push ecx
jmp 0x42484b
xor ebx, ebx
mov dword [ebp - 0xdc], ebx
mov byte [ebp - 4], 0x1f
test ebx, ebx
je 0x422446
mov eax, dword [ebx]
mov eax, dword [eax + 4]
cmp eax, method.CLimitedSequentialInStream.virtual_4
jne 0x422443
inc dword [ebx + 4]
jmp 0x422446
push ebx
call eax
mov edi, ebx
mov dword [ebp - 0xa0], edi
test ebx, ebx
je 0x422466
mov eax, dword [ebx]
mov eax, dword [eax + 4]
cmp eax, method.CLimitedSequentialInStream.virtual_4
jne 0x422463
inc dword [ebx + 4]
jmp 0x422466
push ebx
call eax
mov ecx, dword [ebp - 0x210]
test ecx, ecx
je 0x422476
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x210], ebx
mov eax, dword [eax]
cmp byte [eax + 0x31], 0
je 0x422498
add eax, 0x34
lea ecx, [ebx + 8]
push eax
call fcn.00435000
jmp 0x4224f9
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
jne 0x4224a9
mov eax, 0x80004001
jmp 0x42483d
mov dword [ebp - 0x48], 0
mov eax, dword [ecx]
lea edx, [ebp - 0x48]
push edx
push ecx
mov byte [ebp - 4], 0x25
call dword [eax + 0xc]
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
je 0x4224d5
push dword [ebp - 0x48]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x424840
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4224ee
mov ecx, dword [ebp - 0xdc]
push eax
add ecx, 8
call fcn.00435070
mov eax, dword [ebp - 0x48]
push eax
mov byte [ebp - 4], 0x1f
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, dword [ebp - 0x134]
mov ecx, ebx
push 0
push dword [ebp - 0xb4]
call fcn.0041c240
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x424840
mov ecx, ebx
call fcn.0041c900
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x424840
xor ebx, ebx
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], ebx
mov eax, dword [ebp - 0x88]
xor edx, edx
mov byte [ebp - 4], 0x32
mov dword [ebp - 0x78], edx
cmp dword [eax + 4], edx
jbe 0x422649
mov eax, dword [eax]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 0x38], 0
je 0x42257b
cmp byte [ecx + 0x3b], 0
jne 0x422595
cmp byte [ecx + 0x3a], 0
jne 0x422595
mov eax, dword [ecx + 0x20]
or eax, dword [ecx + 0x24]
je 0x422595
jmp 0x422636
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
je 0x422595
mov eax, dword [ebp - 0x58]
add ecx, ecx
mov eax, dword [eax + 0x58]
cmp byte [eax + ecx*8 + 0xc], 0
jne 0x422636
mov ecx, dword [ebp - 0xc0]
cmp ecx, ebx
jne 0x422624
cmp ebx, 0x7fffffff
jae 0x4249cd
mov eax, ebx
mov ecx, 0x7fffffff
sub ecx, ebx
shr eax, 2
inc eax
mov edx, 4
cmp eax, ecx
cmovbe ecx, eax
add ebx, ecx
xor ecx, ecx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov ecx, dword [ebp - 0xc0]
add esp, 4
mov dword [ebp - 0x64], eax
test ecx, ecx
je 0x4225fe
shl ecx, 2
push ecx
push dword [ebp - 0xc4]
push eax
call fcn.0054ae00
add esp, 0xc
push dword [ebp - 0xc4]
call fcn.0054605b
mov eax, dword [ebp - 0x64]
add esp, 4
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xbc], ebx
mov eax, ecx
inc ecx
mov dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0x88]
inc edx
mov dword [ebp - 0x78], edx
cmp edx, dword [eax + 4]
jb 0x422557
mov edx, dword [ebp - 0xc0]
mov ecx, edx
mov ebx, dword [ebp - 0xc4]
mov dword [ebp - 0x48], ecx
cmp ecx, 1
jbe 0x42296d
shr ecx, 1
mov dword [ebp - 0x4c], ecx
jmp 0x422670
mov ebx, dword [ebx + ecx*4 - 4]
mov eax, ecx
mov dword [ebp - 0x78], ebx
lea ebx, [ecx + ecx]
mov edi, dword [ebp - 0x78]
mov dword [ebp - 0x54], eax
cmp ebx, edx
ja 0x4227c2
mov esi, dword [ebp - 0xc4]
jae 0x42271a
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
mov eax, dword [esi + ebx*4]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + ebx*4 - 4]
mov dword [ebp - 0x64], edx
mov eax, dword [ecx + eax*4]
mov cl, byte [edx + 0x3a]
mov ch, byte [eax + 0x3a]
mov byte [ebp - 0x41], ch
cmp cl, ch
je 0x4226cb
xor eax, eax
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422715
mov ch, byte [edx + 0x3b]
cmp ch, byte [eax + 0x3b]
je 0x4226f6
xor eax, eax
test ch, ch
je 0x4226e7
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422715
cmp byte [ebp - 0x41], al
sete al
lea eax, [eax*2 - 1]
jmp 0x422715
push dword [eax + 0x28]
push dword [edx + 0x28]
call fcn.004361b0
mov ecx, dword [ebp - 0x64]
add esp, 8
cmp byte [ecx + 0x3b], 0
je 0x422715
cmp byte [ecx + 0x3a], 0
je 0x422715
neg eax
test eax, eax
jle 0x42271a
inc ebx
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
mov eax, dword [esi + ebx*4 - 4]
mov edx, dword [ecx + edi*4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x64], edx
mov cl, byte [edx + 0x3a]
mov ch, byte [eax + 0x3a]
mov byte [ebp - 0x41], ch
cmp cl, ch
je 0x42274c
xor eax, eax
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422796
mov ch, byte [edx + 0x3b]
cmp ch, byte [eax + 0x3b]
je 0x422777
xor eax, eax
test ch, ch
je 0x422768
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422796
cmp byte [ebp - 0x41], al
sete al
lea eax, [eax*2 - 1]
jmp 0x422796
push dword [eax + 0x28]
push dword [edx + 0x28]
call fcn.004361b0
mov ecx, dword [ebp - 0x64]
add esp, 8
cmp byte [ecx + 0x3b], 0
je 0x422796
cmp byte [ecx + 0x3a], 0
je 0x422796
neg eax
mov edx, dword [ebp - 0xc0]
test eax, eax
jns 0x4227bc
mov ecx, dword [ebp - 0x54]
mov eax, dword [esi + ebx*4 - 4]
mov dword [esi + ecx*4 - 4], eax
mov eax, ebx
add ebx, ebx
mov dword [ebp - 0x54], eax
cmp ebx, edx
jbe 0x422690
jmp 0x4227bf
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0xc4]
sub ecx, 1
mov dword [ebp - 0x4c], ecx
mov dword [ebx + eax*4 - 4], edi
jne 0x422670
mov edi, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebx + edx*4 - 4]
mov eax, dword [ebx]
mov dword [ebx + edx*4 - 4], eax
dec edx
mov dword [ebx], ecx
mov eax, 1
mov ebx, 2
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x54], eax
cmp edx, ebx
jb 0x422948
mov edi, dword [ebp - 0xc4]
mov esi, ecx
cmp ebx, edx
jae 0x42289d
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
mov eax, dword [edi + ebx*4]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + ebx*4 - 4]
mov dword [ebp - 0x64], edx
mov eax, dword [ecx + eax*4]
mov cl, byte [edx + 0x3a]
mov ch, byte [eax + 0x3a]
mov byte [ebp - 0x41], ch
cmp cl, ch
je 0x42284e
xor eax, eax
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422898
mov ch, byte [edx + 0x3b]
cmp ch, byte [eax + 0x3b]
je 0x422879
xor eax, eax
test ch, ch
je 0x42286a
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422898
cmp byte [ebp - 0x41], al
sete al
lea eax, [eax*2 - 1]
jmp 0x422898
push dword [eax + 0x28]
push dword [edx + 0x28]
call fcn.004361b0
mov ecx, dword [ebp - 0x64]
add esp, 8
cmp byte [ecx + 0x3b], 0
je 0x422898
cmp byte [ecx + 0x3a], 0
je 0x422898
neg eax
test eax, eax
jle 0x42289d
inc ebx
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
mov eax, dword [edi + ebx*4 - 4]
mov edx, dword [ecx + esi*4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x64], edx
mov cl, byte [edx + 0x3a]
mov ch, byte [eax + 0x3a]
mov byte [ebp - 0x41], ch
cmp cl, ch
je 0x4228cf
xor eax, eax
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422919
mov ch, byte [edx + 0x3b]
cmp ch, byte [eax + 0x3b]
je 0x4228fa
xor eax, eax
test ch, ch
je 0x4228eb
test cl, cl
setne al
lea eax, [eax*2 - 1]
jmp 0x422919
cmp byte [ebp - 0x41], al
sete al
lea eax, [eax*2 - 1]
jmp 0x422919
push dword [eax + 0x28]
push dword [edx + 0x28]
call fcn.004361b0
mov ecx, dword [ebp - 0x64]
add esp, 8
cmp byte [ecx + 0x3b], 0
je 0x422919
cmp byte [ecx + 0x3a], 0
je 0x422919
neg eax
mov edx, dword [ebp - 0x48]
test eax, eax
jns 0x42293c
mov ecx, dword [ebp - 0x54]
mov eax, dword [edi + ebx*4 - 4]
mov dword [edi + ecx*4 - 4], eax
mov eax, ebx
add ebx, ebx
mov dword [ebp - 0x54], eax
cmp ebx, edx
jbe 0x422813
jmp 0x42293f
mov eax, dword [ebp - 0x54]
mov edi, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x78]
mov ebx, dword [ebp - 0xc4]
mov dword [ebx + eax*4 - 4], ecx
cmp edx, 1
ja 0x4227e1
mov esi, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x88]
test edx, edx
je 0x422a52
mov edi, dword [ebp - 0xc0]
xor esi, esi
lea ecx, [ecx]
mov ecx, dword [ebx + esi*4]
mov eax, dword [eax]
mov ebx, dword [eax + ecx*4]
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
call fcn.00434f60
cmp byte [ebx + 0x39], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xd4]
mov byte [ebp - 4], 0x33
push eax
je 0x4229e7
push ebx
call fcn.00424a60
add esp, 0xc
mov byte [ebp - 0xc6], 0
lea eax, [ebx + 0x28]
lea ecx, [ebp - 0x14c]
push eax
call fcn.00435000
jmp 0x422a05
push dword [ebx]
push dword [ebp - 0x58]
call fcn.0041fc10
mov ecx, dword [ebp - 0x58]
lea eax, [ebp - 0x14c]
add esp, 0x10
push eax
push dword [ebx]
call fcn.00418660
mov ecx, dword [ebp - 0x60]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.0041bf80
push dword [ebp - 0x14c]
mov byte [ebp - 4], 0x32
call fcn.0054605b
mov ebx, dword [ebp - 0xc4]
inc esi
mov eax, dword [ebp - 0x88]
add esp, 4
cmp esi, edi
jb 0x422980
mov edi, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x9c]
push dword [ebp - 0xc4]
mov byte [ebp - 4], 0x1f
call fcn.0054605b
mov eax, dword [ebp - 0xa8]
add esp, 4
mov edx, dword [ebp - 0x120]
mov ebx, dword [ebp - 0x124]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
xor eax, eax
test edx, edx
je 0x422a9a
lea ecx, [ebx + 0xc]
lea ecx, [ecx]
mov dword [ecx], eax
lea ecx, [ecx + 0x10]
inc eax
cmp eax, edx
jb 0x422a90
mov eax, edx
mov dword [ebp - 0x90], eax
cmp eax, 1
jbe 0x422d09
shr eax, 1
lea edi, [ebx - 0x10]
mov edx, eax
mov dword [ebp - 0xac], edi
shl edx, 4
add edx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x7c], edx
mov ebx, dword [edx + 4]
mov ecx, eax
mov eax, dword [edx]
mov dword [ebp - 0x48], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x4c], eax
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x54]
add edx, edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x78], ebx
cmp edx, dword [ebp - 0x120]
ja 0x422b88
mov eax, dword [ebp - 0x120]
mov esi, ebx
cmp edx, eax
jae 0x422b2d
mov eax, edx
add eax, eax
cmp byte [edi + eax*8 + 0x18], 0
mov bl, byte [edi + eax*8 + 8]
jne 0x422b11
test bl, bl
je 0x422b15
jmp 0x422b2d
test bl, bl
je 0x422b2c
mov ebx, dword [edi + eax*8]
cmp dword [edi + eax*8 + 0x10], ebx
jb 0x422b2d
ja 0x422b2c
mov ebx, dword [edi + eax*8 + 4]
mov eax, dword [edi + eax*8 + 0x14]
cmp eax, ebx
jbe 0x422b2d
inc edx
mov ebx, edx
shl ebx, 4
add ebx, edi
cmp byte [ebp - 0x4c], 0
mov al, byte [ebx + 8]
jne 0x422b43
test al, al
je 0x422b47
jmp 0x422b55
test al, al
je 0x422b82
mov eax, dword [ebx]
cmp dword [ebp - 0x48], eax
jb 0x422b55
ja 0x422b82
cmp esi, dword [ebx + 4]
jae 0x422b82
mov eax, dword [ebx]
shl ecx, 4
add ecx, edi
mov dword [ecx], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 8]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, edx
mov eax, dword [ebp - 0x120]
add edx, edx
cmp edx, eax
jbe 0x422afa
mov eax, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
shl ecx, 4
sub edx, 0x10
add ecx, edi
mov dword [ebp - 0x7c], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x64]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x54]
dec eax
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x422ac3
mov esi, dword [ebp - 0x120]
mov ebx, dword [ebp - 0xac]
shl esi, 4
add esi, edi
mov edi, dword [ebp - 0xa0]
lea ecx, [ecx]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
dec dword [ebp - 0x90]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x10]
mov dword [esi], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0xc], eax
sub esi, 0x10
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x10], ecx
mov dword [ebp - 0x54], ecx
mov ecx, 1
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x78], edx
lea edx, [ecx + 1]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x64], esi
cmp eax, edx
jb 0x422cd4
mov edi, dword [ebp - 0xac]
cmp edx, eax
mov esi, dword [ebp - 0x78]
jae 0x422c70
mov eax, edx
add eax, eax
cmp byte [edi + eax*8 + 0x18], 0
mov bl, byte [edi + eax*8 + 8]
jne 0x422c54
test bl, bl
je 0x422c58
jmp 0x422c70
test bl, bl
je 0x422c6f
mov ebx, dword [edi + eax*8]
cmp dword [edi + eax*8 + 0x10], ebx
jb 0x422c70
ja 0x422c6f
mov ebx, dword [edi + eax*8 + 4]
mov eax, dword [edi + eax*8 + 0x14]
cmp eax, ebx
jbe 0x422c70
inc edx
mov ebx, edx
shl ebx, 4
add ebx, edi
cmp byte [ebp - 0x48], 0
mov al, byte [ebx + 8]
jne 0x422c86
test al, al
je 0x422c8a
jmp 0x422c98
test al, al
je 0x422cc5
mov eax, dword [ebx]
cmp dword [ebp - 0x54], eax
jb 0x422c98
ja 0x422cc5
cmp esi, dword [ebx + 4]
jae 0x422cc5
mov eax, dword [ebx]
shl ecx, 4
add ecx, edi
mov dword [ecx], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 8]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, edx
mov eax, dword [ebp - 0x90]
add edx, edx
cmp edx, eax
jbe 0x422c3d
mov edi, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0xac]
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x54]
shl ecx, 4
add ecx, ebx
cmp dword [ebp - 0x90], 1
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 0xc], eax
ja 0x422bd0
mov esi, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x120]
xor ecx, ecx
mov dword [ebp - 0x64], ecx
test edx, edx
je 0x424804
mov eax, dword [ebp - 0x60]
add eax, 0x30
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x98]
mov ebx, ecx
shl ebx, 4
lea ecx, [ebp - 0x1c8]
add ebx, dword [ebp - 0x124]
mov dword [ebp - 0x94], ebx
push dword [eax]
call fcn.0041f0d0
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0x34
cmp byte [eax + 9], 0
je 0x422d60
cmp byte [eax + 0x2b], 0
je 0x422d60
mov al, 1
jmp 0x422d62
xor al, al
push eax
lea eax, [ebp - 0x1c8]
push ebx
push eax
call fcn.00420180
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x4247b0
mov ebx, dword [ebp - 0x94]
cmp byte [ebx + 8], al
je 0x422db5
cmp byte [ebp - 0x197], al
jne 0x422dd1
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x422dac
add eax, 8
lea ecx, [ebp - 0x194]
push eax
call fcn.00435000
mov byte [ebp - 0x197], 1
jmp 0x422dd1
mov eax, dword [ebp - 0x194]
xor ecx, ecx
mov byte [ebp - 0x197], 0
mov dword [ebp - 0x190], 0
mov word [eax], cx
lea eax, [ebp - 0x1c8]
push eax
lea ecx, [ebp - 0x378]
call fcn.0040e4f0
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ebx + 0xc]
mov byte [ebp - 4], 0x39
mov eax, dword [ecx + eax*4]
xor ecx, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xb4], ecx
cmp dword [eax + 0x10], ecx
jbe 0x423b68
jmp 0x422e16
mov esi, dword [ebp - 0x9c]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + ecx*8]
lea ebx, [eax + ecx*8]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x54], edx
lea eax, [edx*4]
mov dword [ebp - 0xa4], eax
lea ecx, [edx*4]
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 0x24]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x84], eax
cmp dword [ebx + 4], eax
jne 0x4231a7
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x422ee4
mov ecx, dword [eax]
push 3
push edx
push 2
push eax
call dword [ecx + 0x10]
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x4247a5
mov ebx, dword [ebp - 0x58]
xor ecx, ecx
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebx + 0x130]
mov edx, dword [edx + eax]
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x84], ecx
jbe 0x422ee4
mov esi, edx
shl esi, 4
jmp 0x422ea0
mov eax, dword [ebx + 0x58]
cmp byte [esi + eax + 0xc], 0
je 0x422ed5
mov eax, dword [ebp - 0xd8]
inc ecx
push 3
push edx
mov dword [ebp - 0x7c], ecx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x10]
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x4247a5
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x58]
inc edx
add esi, 0x10
mov dword [ebp - 0x4c], edx
cmp ecx, dword [ebp - 0x84]
jb 0x422ea0
mov ebx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 8]
mov eax, dword [ecx]
mov esi, dword [edx + eax*8]
mov ebx, dword [edx + eax*8 + 4]
mov eax, dword [ecx + 4]
mov ecx, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
sub ecx, esi
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x4c], ecx
sbb edx, ebx
mov dword [ebp - 0x7c], edx
mov ecx, dword [eax + 0x110]
mov eax, dword [eax + 0x114]
add ecx, esi
mov esi, dword [ebp - 0x4c]
adc eax, ebx
mov ebx, dword [ebp - 0xa8]
push ebx
push edx
push esi
push eax
mov eax, dword [ebp - 0x134]
push ecx
push dword [eax + 0x54]
push dword [ebp - 0x130]
call fcn.00424c40
add esp, 0x1c
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x4247a5
add dword [ebx + 0x18], esi
mov esi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x7c]
adc dword [ebx + 0x1c], eax
lea ecx, [esi + 0x54]
call fcn.00410e10
push 0x18
call fcn.00546014
mov ebx, eax
add esp, 4
mov dword [ebp - 0xe8], ebx
test ebx, ebx
je 0x422fa8
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
jmp 0x422faa
xor ebx, ebx
mov ecx, dword [esi + 0x58]
push ebx
push dword [ebp - 0x54]
lea eax, [ecx + 1]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x54]
mov esi, dword [ebp - 0x58]
mov dword [eax + ecx*4], ebx
mov ecx, esi
call fcn.00418ca0
mov eax, dword [esi + 0x30]
xor esi, esi
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x4c], esi
mov edx, dword [ecx + eax]
cmp dword [ebx + 0x14], esi
jbe 0x4230d0
shl edx, 3
mov dword [ebp - 0x7c], edx
jmp 0x422ff0
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx + 8]
sub ecx, dword [eax + edx]
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax + edx + 0xc]
sbb ecx, dword [eax + edx + 4]
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [edx + 0x38]
cmp dword [edx + 0x34], ecx
jne 0x42309b
cmp ecx, 0x7fffffff
jae 0x4249e2
mov eax, ecx
mov esi, 0x7fffffff
sub esi, ecx
shr eax, 2
inc eax
mov edx, 8
cmp eax, esi
cmovbe esi, eax
add esi, ecx
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov ecx, dword [ebp - 0x60]
add esp, 4
mov dword [ebp - 0x54], eax
mov ecx, dword [ecx + 0x34]
test ecx, ecx
je 0x423077
shl ecx, 3
push ecx
mov ecx, dword [ebp - 0x90]
push dword [ecx]
push eax
call fcn.0054ae00
add esp, 0xc
mov eax, dword [ebp - 0x90]
push dword [eax]
call fcn.0054605b
mov edx, dword [ebp - 0x60]
add esp, 4
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x54]
mov dword [edx + 0x38], esi
mov esi, dword [ebp - 0x4c]
mov dword [ecx], eax
mov ecx, dword [edx + 0x34]
inc esi
mov dword [ebp - 0x4c], esi
lea eax, [ecx + 1]
mov dword [edx + 0x34], eax
mov eax, dword [edx + 0x30]
mov edx, dword [ebp - 0x48]
mov dword [eax + ecx*8], edx
mov edx, dword [ebp - 0x6c]
mov dword [eax + ecx*8 + 4], edx
mov edx, dword [ebp - 0x7c]
add edx, 8
mov dword [ebp - 0x7c], edx
cmp esi, dword [ebx + 0x14]
jb 0x422ff0
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x60]
mov eax, dword [edx + 0x2c]
mov ebx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x48], eax
cmp ebx, eax
jae 0x423966
jmp 0x4230f0
mov eax, dword [edx + 0x28]
mov ecx, dword [eax + ebx*8]
mov eax, dword [eax + ebx*8 + 4]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x54], eax
cmp dword [esi + 0x28], ecx
jne 0x42317c
cmp ecx, 0x7fffffff
jae 0x4249e2
mov eax, ecx
mov esi, 0x7fffffff
sub esi, ecx
shr eax, 2
inc eax
mov edx, 8
cmp eax, esi
cmovbe esi, eax
add esi, ecx
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov edx, dword [ebp - 0x60]
add esp, 4
mov dword [ebp - 0x4c], eax
mov ecx, dword [edx + 0x28]
test ecx, ecx
je 0x423163
shl ecx, 3
push ecx
push dword [edx + 0x24]
push eax
call fcn.0054ae00
mov edx, dword [ebp - 0x60]
add esp, 0xc
push dword [edx + 0x24]
call fcn.0054605b
mov ecx, dword [ebp - 0x60]
add esp, 4
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 0x2c], esi
mov esi, ecx
mov dword [ecx + 0x24], eax
mov ecx, dword [esi + 0x28]
inc ebx
mov edx, dword [ebp - 0x7c]
lea eax, [ecx + 1]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x24]
mov dword [eax + ecx*8], edx
mov edx, dword [ebp - 0x54]
mov dword [eax + ecx*8 + 4], edx
mov edx, dword [ebp - 0x58]
cmp ebx, dword [ebp - 0x48]
jb 0x4230f0
jmp 0x423966
xor ecx, ecx
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0xd8]
mov byte [ebp - 4], 0x46
mov dword [ebp - 0x74], ecx
test eax, eax
je 0x4231f2
mov ecx, dword [eax]
push 4
push edx
push 2
push eax
call dword [ecx + 0x10]
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x424764
mov ecx, dword [ebp - 0xfc]
cmp dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x48], 0
mov eax, dword [eax + 0x130]
mov eax, dword [edx + eax]
jbe 0x42332e
mov edx, eax
lea esi, [esi + eax*4]
shl edx, 4
mov dword [ebp - 0x70], edx
mov eax, edx
mov dword [ebp - 0x4c], esi
nop
mov edx, dword [ebp - 0x58]
xor bl, bl
mov edx, dword [edx + 0x58]
add edx, eax
mov dword [ebp - 0x8c], edx
cmp byte [edx + 0xc], bl
je 0x423268
inc dword [ebp - 0x74]
mov esi, dword [esi]
test esi, esi
js 0x423268
mov eax, dword [ebp - 0x88]
movzx ebx, bl
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
cmp byte [eax + 0x38], 0
mov eax, 1
cmove ebx, eax
cmp dword [ebp - 0x100], ecx
jne 0x4232d9
cmp ecx, 0x7fffffff
jae 0x4249e2
mov eax, ecx
mov esi, 0x7fffffff
shr eax, 2
sub esi, ecx
inc eax
cmp eax, esi
cmovbe esi, eax
add esi, ecx
push esi
call fcn.00546052
mov ecx, dword [ebp - 0x100]
add esp, 4
mov dword [ebp - 0x7c], eax
test ecx, ecx
je 0x4232b6
push ecx
push dword [ebp - 0x104]
push eax
call fcn.0054ae00
add esp, 0xc
push dword [ebp - 0x104]
call fcn.0054605b
mov eax, dword [ebp - 0x7c]
add esp, 4
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xfc], esi
mov ecx, dword [ebp - 0x100]
lea eax, [ecx + 1]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x104]
mov byte [eax + ecx], bl
test bl, bl
je 0x423306
mov ebx, dword [ebp - 0x6c]
add ebx, dword [edx]
mov dword [ebp - 0x6c], ebx
mov ebx, dword [ebp - 0x48]
adc ebx, dword [edx + 4]
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp - 0x4c]
add eax, 0x10
mov ecx, dword [ebp - 0x84]
add esi, 4
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x4c], esi
cmp dword [ebp - 0x74], ecx
jae 0x42332e
mov ecx, dword [ebp - 0xfc]
jmp 0x423230
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x8c], 0
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xe8], eax
push 0x1c
mov byte [ebp - 4], 0x4b
mov dword [ebp - 0x70], 0
call fcn.00546014
mov esi, eax
add esp, 4
mov dword [ebp - 0x4c], esi
test esi, esi
je 0x423386
mov dword [esi + 4], vtable.ICompressGetSubStreamSize.0
mov dword [esi + 8], 0
mov dword [esi], vtable.NArchive::N7z::CRepackInStreamWithSizes.0
mov dword [esi + 4], vtable.NArchive::N7z::CRepackInStreamWithSizes.1.0
mov dword [esi + 0xc], 0
jmp 0x423388
xor esi, esi
mov dword [ebp - 0x7c], esi
test esi, esi
je 0x4233a3
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp eax, method.CSequentialInStreamSizeCount2.virtual_4
jne 0x4233a0
inc dword [esi + 8]
jmp 0x4233a3
push esi
call eax
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0x4c
cmp byte [eax + 0x2b], 0
je 0x4234ab
mov eax, dword [ebp - 0x22c]
test eax, eax
je 0x4233c9
add eax, 8
mov dword [ebp - 0x74], eax
jmp 0x4233d0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0xac], 0
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 0x4d
push eax
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x200]
call fcn.00431310
lea ecx, [ebp - 0x200]
call fcn.004313a0
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x4246b8
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x4c], eax
test ebx, ebx
je 0x42342b
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x42343b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0x34], ebx
mov ebx, dword [ebp - 0x130]
test ebx, ebx
je 0x42344e
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov ecx, dword [ebp - 0x230]
test ecx, ecx
je 0x42345e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x218], ecx
mov eax, dword [ecx + 0x110]
mov dword [ebp - 0x220], eax
mov eax, dword [ecx + 0x114]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0xac]
mov byte [ebp - 4], 0x55
test eax, eax
je 0x4234a2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x4c
jmp 0x423618
push 0x40
call fcn.00546014
mov ebx, eax
mov dword [ebp - 0x70], eax
add esp, 4
mov dword [ebp - 0x1dc], ebx
test ebx, ebx
je 0x423503
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx], vtable.NArchive::N7z::CFolderInStream2.0
mov dword [ebx + 0x38], 0
push 0x10000
mov byte [ebp - 4], 0x58
mov dword [ebx + 0x3c], 0
call fcn.00546052
add esp, 4
mov dword [ebx + 0x34], eax
jmp 0x423508
xor ebx, ebx
mov dword [ebp - 0x70], ebx
mov eax, dword [ebx]
mov byte [ebp - 4], 0x4c
mov dword [ebx + 0x3c], 0
mov eax, dword [eax + 4]
cmp eax, method.NArchive::N7z::CFolderOutStream2.virtual_4
jne 0x423524
inc dword [ebx + 0x30]
jmp 0x423527
push ebx
call eax
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x423537
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebx + 8]
mov dword [ebp - 0x8c], ebx
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x7d], 0
mov byte [ebp - 0x65], 0
call fcn.00434f60
mov dword [ebp - 0x140], 0
push 0
push 0
push 1
push 0
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0x5a
push eax
lea eax, [ebp - 0x65]
mov byte [ebp - 0xde], 0
push eax
lea eax, [ebp - 0x7d]
push eax
push edi
lea eax, [ebp - 0xde]
push eax
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x29c]
push 0
push 0
push 0
push dword [ebp - 0x54]
push eax
push dword [eax + 0x114]
push dword [eax + 0x110]
push dword [ebp - 0x130]
call fcn.0040cec0
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
mov ebx, dword [ebp - 0x140]
jne 0x424726
test ebx, ebx
je 0x42471e
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x4235ef
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x70]
mov dword [eax + 0x38], ebx
mov eax, dword [ebp - 0x140]
mov byte [ebp - 4], 0x69
test eax, eax
je 0x423606
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x114]
mov byte [ebp - 4], 0x4c
call fcn.0054605b
add esp, 4
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x58]
mov dword [eax + 0x1c], ecx
mov ebx, dword [ebp - 0xd8]
test ebx, ebx
je 0x423634
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x423644
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x74]
mov dword [eax + 0x20], ebx
mov ebx, dword [ebp - 0x108]
test ebx, ebx
je 0x42365a
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x423667
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0xa4]
mov dword [ecx + 0x24], ebx
mov eax, dword [eax + 0x130]
mov eax, dword [edx + eax]
mov dword [ebp - 0x4c], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x104]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x18], 0
mov byte [ecx + 1], 0
call fcn.004207b0
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x424742
mov eax, dword [ebp - 0x58]
mov dword [esi + 0x18], eax
mov ebx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x4c]
mov dword [esi + 0x14], eax
lea eax, [ebp - 0x104]
mov dword [esi + 0x10], eax
test ebx, ebx
je 0x4236d0
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x4236dd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x98]
mov dword [esi + 0xc], ebx
cmp byte [eax + 0x2b], 0
je 0x423704
lea ecx, [ebp - 0x2b0]
call fcn.00431a00
mov ebx, eax
mov dword [ebp - 0x50], ebx
test ebx, ebx
jne 0x4246d2
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x48]
lea ecx, [ebx + 0x54]
mov dword [ebp - 0x150], eax
call fcn.00410e10
push 0x18
call fcn.00546014
mov edx, eax
add esp, 4
mov dword [ebp - 0x4c], edx
test edx, edx
je 0x42375f
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
jmp 0x423761
xor edx, edx
mov ecx, dword [ebx + 0x58]
push dword [ebp - 0xa8]
push dword [ebp - 0x90]
lea eax, [ecx + 1]
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x54]
mov dword [eax + ecx*4], edx
lea ecx, [ebp - 0x378]
mov eax, dword [ebp - 0x134]
push dword [eax + 0x54]
lea eax, [ebp - 0x154]
push eax
mov eax, ebx
add eax, 0x24
push eax
push edx
lea eax, [ebp - 0x12c]
push eax
push esi
call fcn.0040f480
mov ebx, eax
mov dword [ebp - 0x50], ebx
cmp ebx, 0x20000002
je 0x424714
mov eax, dword [ebp - 0x98]
cmp byte [eax + 0x2b], 0
je 0x423892
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x8c]
xor esi, esi
mov dword [ebp - 0x7c], esi
test eax, eax
je 0x4237e8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x8c], esi
push dword [ebp - 0x2a8]
call fcn.0040c440
add esp, 4
test eax, eax
jne 0x4246e2
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x4c], eax
cmp eax, 1
je 0x42381f
cmp byte [ebp - 0x238], 0
jne 0x42381f
test eax, eax
jne 0x424719
jmp 0x42386a
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x423861
mov edi, dword [ebp - 0xa4]
xor ecx, ecx
cmp dword [ebp - 0x4c], ecx
mov edx, dword [eax]
sete cl
lea ecx, [ecx*4 + 2]
push ecx
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx + 0x130]
push dword [edi + ecx]
push 1
push eax
call dword [edx + 0x14]
mov edi, dword [ebp - 0xa0]
test eax, eax
jne 0x424719
cmp dword [ebp - 0x4c], esi
jne 0x424714
test ebx, ebx
jne 0x424742
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x1e8], eax
jne 0x424714
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x1e4], eax
jne 0x424714
jmp 0x4238b1
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x3c]
cmp eax, 1
je 0x4246f6
test eax, eax
jne 0x424719
test ebx, ebx
jne 0x424742
mov edx, dword [ebp - 0x74]
mov ebx, 0x80004005
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x18]
xor edx, edx
cmp eax, ecx
cmove ebx, edx
mov dword [ebp - 0x50], ebx
jne 0x424742
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x154], eax
jne 0x424714
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x150], eax
jne 0x424714
mov byte [ebp - 4], 0xb8
test esi, esi
je 0x4238fe
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x8c]
mov byte [ebp - 4], 0xb9
test eax, eax
je 0x423912
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x60]
mov edx, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0xa8]
cmp edx, dword [esi + 0x34]
jae 0x423942
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + edx*8]
add dword [ebx + 0x28], eax
mov eax, dword [ecx + edx*8 + 4]
adc dword [ebx + 0x2c], eax
inc edx
cmp edx, dword [esi + 0x34]
jb 0x423926
mov edi, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x154]
add dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x150]
push dword [ebp - 0x104]
adc dword [ebx + 0x24], eax
mov byte [ebp - 4], 0x39
call fcn.0054605b
add esp, 4
mov eax, dword [ebp - 0x5c]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + 4]
mov dword [ebp - 0x5c], eax
cmp dword [esi + 0x1c], ecx
jne 0x4239e7
cmp ecx, 0x7fffffff
jae 0x4249e2
mov eax, ecx
mov esi, 0x7fffffff
sub esi, ecx
shr eax, 2
inc eax
mov edx, 4
cmp eax, esi
cmovbe esi, eax
add esi, ecx
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov ebx, eax
add esp, 4
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x4239d1
shl ecx, 2
push ecx
push dword [eax + 0x18]
push ebx
call fcn.0054ae00
mov eax, dword [ebp - 0x60]
add esp, 0xc
push dword [eax + 0x18]
call fcn.0054605b
mov eax, dword [ebp - 0x60]
add esp, 4
mov dword [eax + 0x20], esi
mov esi, eax
mov dword [eax + 0x18], ebx
cmp dword [ebp - 0x84], 0
mov ecx, dword [esi + 0x1c]
mov ebx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], 0
lea eax, [ecx + 1]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x18]
mov dword [eax + ecx*4], edx
mov eax, dword [ebx + 0x130]
mov ecx, dword [ebp - 0xa4]
mov ecx, dword [ecx + eax]
mov dword [ebp - 0x48], ecx
jbe 0x423b4c
mov esi, dword [ebp - 0x9c]
mov edx, ecx
mov edi, dword [ebp - 0x5c]
shl edx, 4
mov dword [ebp - 0x4c], edx
jmp 0x423a40
mov eax, dword [ebx + 0x58]
cmp byte [edx + eax + 0xc], 0
je 0x423b30
mov ebx, dword [esi + ecx*4]
inc edi
test ebx, ebx
js 0x423b2d
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov ebx, dword [eax + ebx*4]
cmp byte [ebx + 0x38], 0
jne 0x423b2d
lea ecx, [ebp - 0x1d4]
call fcn.00434f60
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xba
push eax
lea eax, [ebp - 0x17c]
mov dword [ebp - 0x17c], 0
push eax
push dword [ebp - 0x48]
mov dword [ebp - 0x178], 0
push dword [ebp - 0x58]
mov dword [ebp - 0x174], 0
call fcn.0041fc10
add esp, 0x10
cmp byte [ebx + 0x39], 0
je 0x423ae5
lea eax, [ebp - 0x40]
push eax
push ebx
call fcn.00424a00
mov al, byte [ebx + 0x3b]
lea ecx, [ebp - 0x1d4]
add esp, 8
mov byte [ebp - 0x16f], al
lea eax, [ebx + 0x28]
push eax
call fcn.00435000
mov ebx, dword [ebp - 0x58]
jmp 0x423af9
mov ebx, dword [ebp - 0x58]
lea eax, [ebp - 0x1d4]
push eax
push dword [ebp - 0x48]
mov ecx, ebx
call fcn.00418660
mov ecx, dword [ebp - 0x60]
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x17c]
push eax
call fcn.0041bf80
push dword [ebp - 0x1d4]
mov byte [ebp - 4], 0x39
call fcn.0054605b
mov ecx, dword [ebp - 0x48]
add esp, 4
mov edx, dword [ebp - 0x4c]
jmp 0x423b30
mov ebx, dword [ebp - 0x58]
inc ecx
add edx, 0x10
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x4c], edx
cmp edi, dword [ebp - 0x84]
jb 0x423a40
mov edi, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x94]
inc ecx
mov dword [ebp - 0xb4], ecx
cmp ecx, dword [eax + 0x10]
jb 0x422e10
mov ebx, dword [eax + 4]
mov dword [ebp - 0xa4], ebx
test ebx, ebx
je 0x424639
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x164], 0
mov byte [ebp - 4], 0xbb
mov dword [ebp - 0x168], 0
cmp ebx, 0x7fffffff
ja 0x4249e2
push 0
call fcn.0054605b
xor ecx, ecx
mov dword [ebp - 0x16c], 0
mov eax, ebx
mov dword [ebp - 0x164], 0
mov edx, 0x14
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x164], ebx
mov al, byte [eax + 0x29]
mov dword [ebp - 0x168], ebx
mov byte [ebp - 0x41], al
mov dword [ebp - 0x5c], 0
test ebx, ebx
je 0x423d6f
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x94]
xor esi, esi
xor ebx, ebx
mov eax, dword [eax]
mov edx, dword [eax + edi*4]
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x4c], edx
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x84], eax
cmp byte [ebp - 0x41], al
je 0x423d3d
mov ebx, dword [ebp - 0x48]
lea ecx, [ebx + 0x28]
call fcn.00435620
mov esi, eax
lea ecx, [ebx + 0x28]
push 0x2e
lea eax, [esi + 1]
mov dword [ebp - 0x54], eax
call fcn.004355e0
mov ecx, ebx
mov ecx, dword [ecx + 0x2c]
cmp eax, esi
jg 0x423c73
mov esi, ecx
jmp 0x423d31
lea esi, [eax + 1]
mov dword [ebp - 0xe8], esi
cmp esi, ecx
je 0x423d31
lea ecx, [ebp - 0x160]
call fcn.00434e70
mov eax, dword [ebx + 0x28]
add esi, esi
mov byte [ebp - 4], 0xbc
movzx ebx, word [esi + eax]
mov eax, 0x80
cmp bx, ax
jae 0x423d18
mov edx, dword [ebp - 0x15c]
lea esp, [esp]
test bx, bx
je 0x423e91
mov al, bl
mov cl, bl
add al, 0x20
sub cl, 0x41
movzx eax, al
cmp cl, 0x19
mov dword [ebp - 0x5c], eax
movzx eax, bl
mov ebx, dword [ebp - 0x5c]
cmova ebx, eax
cmp dword [ebp - 0x158], edx
jne 0x423ced
lea ecx, [ebp - 0x160]
call fcn.00435340
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x160]
add esi, 2
mov byte [edx + eax], bl
inc edx
mov byte [eax + edx], 0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x15c], edx
mov eax, dword [eax + 0x28]
movzx ebx, word [esi + eax]
mov eax, 0x80
cmp bx, ax
jb 0x423cb0
mov ebx, dword [ebp - 0x160]
push ebx
mov byte [ebp - 4], 0xbb
call fcn.0054605b
mov esi, dword [ebp - 0xe8]
add esp, 4
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x48]
inc edi
mov dword [ecx], edx
mov edx, dword [ebp - 0x4c]
mov dword [ecx + 4], edx
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], ebx
mov ebx, dword [ebp - 0xa4]
mov dword [ecx + 0x10], eax
add ecx, 0x14
mov dword [ebp - 0x6c], ecx
cmp edi, ebx
jb 0x423c15
mov edi, dword [ebp - 0xa0]
mov al, byte [ebp - 0x41]
mov byte [ebp - 0xdd], al
lea ecx, [ebp - 0x16c]
lea eax, [ebp - 0xdd]
push eax
push 0x41f990
call fcn.00421390
xor ecx, ecx
mov eax, ebx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov esi, eax
add esp, 4
mov dword [ebp - 0xe8], esi
xor ecx, ecx
mov byte [ebp - 4], 0xbd
test ebx, ebx
je 0x423dcd
mov edx, dword [ebp - 0x78]
add edx, 4
nop
mov eax, dword [edx]
lea edx, [edx + 0x14]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, ebx
jb 0x423dc0
xor ecx, ecx
mov dword [ebp - 0x48], ecx
test ebx, ebx
je 0x424628
lea ebx, [ebx]
xor edx, edx
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x74], eax
cmp ecx, dword [ebp - 0xa4]
jae 0x423f55
mov edi, edi
xor edi, edi
cmp edi, dword [ebp - 0x138]
mov edi, dword [ebp - 0x54]
ja 0x423f4a
jb 0x423e1f
cmp eax, dword [ebp - 0x13c]
jae 0x423f4a
add eax, ecx
mov ecx, dword [esi + eax*4]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x5c], eax
add edx, dword [eax + 0x20]
mov dword [ebp - 0x6c], edx
adc ebx, dword [eax + 0x24]
mov dword [ebp - 0x70], ebx
cmp ebx, dword [ecx + 0x24]
ja 0x423f47
jb 0x423e58
cmp edx, dword [ecx + 0x20]
ja 0x423f47
cmp byte [ecx + 0x28], 0
je 0x423f2a
add eax, 0x28
mov ecx, eax
mov dword [ebp - 0x94], eax
call fcn.00435620
mov ecx, dword [ebp - 0x94]
mov ebx, eax
push 0x2e
call fcn.004355e0
cmp eax, ebx
jg 0x423efd
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x2c]
jmp 0x423f00
mov ecx, dword [str._7z_xz_lzma_ace_arc_arj_bz_tbz_bz2_tbz2_cab_deb_gz_tgz_ha_lha_lzh_lzo_lzx_pak_rar_rpm_sit_zoo_zip_jar_ear_war_msi_3gp_avi_mov_mpeg_mpg_mpe_wmv_aac_ape_fla_flac_la_mp3_m4a_mp4_ofr_ogg_pac_ra_rm_rka_shn_swa_tta_wv_wma_wav_swf_chm_hxi_hxs_gif_jpeg_jpg_jp2_png_tiff__bmp_ico_psd_psp_awg_ps_eps_cgm_dxf_svg_vrml_wmf_emf_ai_md_cad_dwg_pps_key_sxi_max_3ds_iso_bin_nrg_mdf_img_pdi_tar_cpio_xpi_vfd_vhd_vud_vmc_vsv_vmdk_dsk_nvram_vmem_vmsd_vmsn_vmss_vmtm_inl_inc_idl_acf_asa_h_hpp_hxx_c_cpp_cxx_m_mm_go_swift_rc_java_cs_rs_pas_bas_vb_cls_ctl_frm_dlg_def_f77_f_f90_f95_asm_s_sql_manifest_dep_mak_clw_csproj_vcproj_sln_dsp_dsw_class_bat_cmd_bash_sh_xml_xsd_xsl_xslt_hxk_hxc_htm_html_xhtml_xht_mht_mhtml_htw_asp_aspx_css_cgi_jsp_shtml_awk_sed_hta_js_json_php_php3_php4_php5_phptml_pl_pm_py_pyo_rb_tcl_ts_vbs_text_txt_tex_ans_asc_srt_reg_ini_doc_docx_mcw_dot_rtf_hlp_xls_xlr_xlt_xlw_ppt_pdf_sxc_sxd_sxi_sxg_sxw_stc_sti_stw_stm_odt_ott_odg_otg_odp_otp_ods_ots_odf_abw_afp_cwk_lwp_wpd_wps_wpt_wrf_wri_abf_afm_bdf_fon_mgf_otf_pcf_pfa_snf_ttf_dbf_mdb_nsf_ntf_wdb_db_fdb_gdb_exe_dll_ocx_vbx_sfx_sys_tlb_awx_com_obj_lib_out_o_so_pdb_pch_idb_ncb_opt]
mov ebx, dword [ebp - 0x160]
mov dword [ebp - 0x84], 1
mov al, byte [ecx]
inc ecx
test al, al
je 0x423d1e
cmp al, 0x20
je 0x423ef1
mov esi, ebx
mov dl, byte [esi]
lea esi, [esi + 1]
test dl, dl
jne 0x423ed1
test al, al
je 0x423d1e
cmp al, 0x20
je 0x423d1e
cmp al, dl
jne 0x423eda
mov al, byte [ecx]
inc ecx
jmp 0x423eb8
inc dword [ebp - 0x84]
test al, al
je 0x423d1e
cmp al, 0x20
je 0x423ef1
mov al, byte [ecx]
inc ecx
jmp 0x423ee0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x423eb2
jmp 0x423d1e
lea ecx, [eax + 1]
cmp dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
lea eax, [eax + ecx*2]
jne 0x423f16
mov dword [ebp - 0x54], eax
jmp 0x423f24
push edi
push eax
call fcn.004357c0
add esp, 8
test al, al
je 0x423f47
mov ebx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x74], eax
add eax, ecx
cmp eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x74]
jb 0x423e00
jmp 0x423f4a
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0xa0]
cmp eax, 1
jae 0x423f5c
mov dword [ebp - 0x74], 1
mov ecx, dword [ebp - 0xa8]
call fcn.00431230
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x424794
push 0xb8
call fcn.00546014
mov ebx, eax
mov dword [ebp - 0x94], eax
add esp, 4
mov dword [ebp - 0x5c], ebx
test ebx, ebx
je 0x424093
mov dword [ebx + 4], vtable.ICompressGetSubStreamSize.0
mov dword [ebx + 8], 0
mov dword [ebx], vtable.NArchive::N7z::CFolderInStream.0
mov dword [ebx + 4], vtable.NArchive::N7z::CFolderInStream.1.0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], 0
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x78], 0
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x84], 0
mov dword [ebx + 0x88], 0
mov dword [ebx + 0x8c], 0
mov dword [ebx + 0x90], 0
mov dword [ebx + 0x94], 0
mov dword [ebx + 0x98], 0
mov dword [ebx + 0x9c], 0
mov dword [ebx + 0xa0], 0
mov dword [ebx + 0xa4], 0
mov dword [ebx + 0xa8], 0
mov dword [ebx + 0xac], 0
mov dword [ebx + 0xb0], 0
jmp 0x42409b
xor ebx, ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x1e0], ebx
test ebx, ebx
je 0x4240b9
mov eax, dword [ebx]
mov eax, dword [eax + 4]
cmp eax, method.CSequentialInStreamSizeCount2.virtual_4
jne 0x4240b6
inc dword [ebx + 8]
jmp 0x4240b9
push ebx
call eax
mov ecx, dword [ebp - 0x98]
push dword [ebp - 0x74]
mov byte [ebp - 4], 0xc2
mov al, byte [ecx + 0x2c]
mov byte [ebx + 0xb0], al
mov al, byte [ecx + 0x2d]
mov byte [ebx + 0xb1], al
mov al, byte [ecx + 0x2e]
mov byte [ebx + 0xb2], al
mov al, byte [ecx + 0x2f]
mov ecx, ebx
mov byte [ebx + 0xb3], al
mov eax, dword [ebp - 0x48]
lea eax, [esi + eax*4]
push eax
push dword [ebp - 0xf8]
mov dword [ebp - 0x84], eax
call fcn.004126c0
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x34]
lea ecx, [ecx + 0x54]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0xbc], eax
call fcn.00410e10
push 0x18
call fcn.00546014
mov edx, eax
add esp, 4
mov dword [ebp - 0x4c], edx
test edx, edx
je 0x424165
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
jmp 0x424167
xor edx, edx
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x60]
push dword [ebp - 0xa8]
mov ecx, dword [eax + 0x58]
push dword [ebp - 0x90]
lea eax, [ecx + 1]
mov dword [edi + 0x58], eax
mov eax, edi
mov eax, dword [eax + 0x54]
mov dword [eax + ecx*4], edx
lea ecx, [ebp - 0x378]
mov eax, dword [ebp - 0x134]
push dword [eax + 0x54]
lea eax, [ebp - 0xc0]
push eax
mov eax, edi
add eax, 0x24
push eax
push edx
lea eax, [ebp - 0x12c]
push eax
push ebx
call fcn.0040f480
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x42478a
mov eax, dword [ebx + 0x54]
cmp eax, dword [ebx + 0x44]
jne 0x424782
mov eax, dword [ebp - 0x60]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], 0
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x7c], edx
cmp ecx, eax
jae 0x4242a1
mov edx, dword [ebp - 0x90]
sub eax, ecx
mov edx, dword [edx]
cmp eax, 2
jb 0x424270
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebx + 0x34]
dec eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x4c]
mov edi, eax
mov esi, eax
mov ebx, eax
lea ecx, [ecx]
add eax, dword [edx + ecx*8]
adc edi, dword [edx + ecx*8 + 4]
add esi, dword [edx + ecx*8 + 8]
adc ebx, dword [edx + ecx*8 + 0xc]
add ecx, 2
cmp ecx, dword [ebp - 0x5c]
jb 0x424230
mov dword [ebp - 0x54], esi
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x70], ebx
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x6c], edi
cmp ecx, dword [esi + 0x34]
mov edi, dword [ebp - 0xa0]
mov esi, dword [ebp - 0xe8]
jae 0x424289
jmp 0x424273
mov eax, dword [ebp - 0x4c]
mov edi, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x7c], edi
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0xb4], ecx
add eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x6c]
adc ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x7c]
add edx, eax
mov eax, dword [ebp - 0xb4]
adc eax, ecx
jmp 0x4242a3
xor eax, eax
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x4c], 0
add dword [ecx + 0x28], edx
mov edx, dword [ebp - 0xa8]
adc dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0xc0]
add dword [ecx + 0x20], eax
mov ecx, dword [ebp - 0xbc]
adc dword [edx + 0x24], ecx
xor edx, edx
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], edx
cmp dword [ebp - 0x74], edx
jbe 0x4244fa
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
call fcn.00434f60
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0xc9
push ecx
cmp byte [eax + 0x39], 0
je 0x42436f
push eax
call fcn.00424a60
mov eax, dword [ebp - 0x6c]
lea ecx, [ebp - 0x14c]
add esp, 0xc
add eax, 0x28
push eax
call fcn.00435000
jmp 0x424390
push dword [eax]
push dword [ebp - 0x58]
call fcn.0041fc10
mov ecx, dword [ebp - 0x58]
lea eax, [ebp - 0x14c]
add esp, 0x10
push eax
mov eax, dword [ebp - 0x6c]
push dword [eax]
call fcn.00418660
cmp byte [ebp - 0x17], 0
jne 0x424774
cmp byte [ebp - 0xc7], 0
jne 0x424774
mov eax, dword [ebx + 0x50]
mov edx, dword [ebp - 0x54]
cmp byte [edx + eax], 0
jne 0x4243cd
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x7c]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x4c]
adc ecx, dword [eax + 0x24]
mov dword [ebp - 0x4c], ecx
jmp 0x4244bd
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x68]
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
add dword [ebp - 0x70], ecx
mov dword [ebp - 0xd4], ecx
adc dword [ebp - 0x50], eax
or ecx, eax
mov dword [ebp - 0xd0], eax
je 0x42440f
inc dword [ebp - 0xb4]
mov byte [ebp - 0xc6], 1
mov byte [ebp - 0xc8], 1
jmp 0x42441d
mov byte [ebp - 0xc6], 0
mov byte [ebp - 0xc8], 0
mov eax, dword [ebx + 0xa4]
cmp byte [edx + eax], 0
je 0x4244a3
cmp byte [ebx + 0xb0], 0
je 0x42444a
mov ecx, dword [ebx + 0x74]
mov byte [ebp - 0x1c], 1
mov eax, dword [ecx + edx*8]
mov dword [ebp - 0x40], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x3c], eax
cmp byte [ebx + 0xb1], 0
je 0x42446a
mov ecx, dword [ebx + 0x80]
mov byte [ebp - 0x1b], 1
mov eax, dword [ecx + edx*8]
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x34], eax
cmp byte [ebx + 0xb2], 0
je 0x42448a
mov ecx, dword [ebx + 0x8c]
mov byte [ebp - 0x1a], 1
mov eax, dword [ecx + edx*8]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x2c], eax
cmp byte [ebx + 0xb3], 0
je 0x4244a3
mov eax, dword [ebx + 0x98]
mov byte [ebp - 0x18], 1
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x60]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.0041bf80
push dword [ebp - 0x14c]
mov byte [ebp - 4], 0xc2
call fcn.0054605b
mov edx, dword [ebp - 0x54]
add esp, 4
mov eax, dword [ebp - 0x84]
inc edx
add eax, 4
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x84], eax
cmp edx, dword [ebp - 0x74]
jb 0x424301
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc0]
cmp dword [ebp - 0x70], eax
jne 0x424782
cmp dword [ebp - 0x50], ecx
jne 0x424782
mov edx, dword [ebp - 0x60]
mov ecx, dword [edx + 0x20]
cmp dword [edx + 0x1c], ecx
jne 0x424599
cmp ecx, 0x7fffffff
jae 0x4249e2
mov eax, ecx
mov edx, 0x7fffffff
sub edx, ecx
shr eax, 2
inc eax
cmp eax, edx
cmovbe edx, eax
add edx, ecx
xor ecx, ecx
mov dword [ebp - 0x94], edx
mov eax, edx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00546052
mov edx, dword [ebp - 0x60]
add esp, 4
mov dword [ebp - 0x5c], eax
mov ecx, dword [edx + 0x1c]
test ecx, ecx
je 0x42457c
shl ecx, 2
push ecx
push dword [edx + 0x18]
push eax
call fcn.0054ae00
mov edx, dword [ebp - 0x60]
add esp, 0xc
push dword [edx + 0x18]
call fcn.0054605b
mov edx, dword [ebp - 0x60]
add esp, 4
mov eax, dword [ebp - 0x5c]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x94]
mov dword [edx + 0x20], eax
mov ecx, dword [edx + 0x1c]
lea eax, [ecx + 1]
mov dword [edx + 0x1c], eax
mov eax, dword [edx + 0x18]
mov edx, dword [ebp - 0xb4]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x48], eax
mov eax, ecx
or eax, edx
je 0x42460b
cmp dword [ebp - 0xb8], edx
jb 0x42460b
mov eax, dword [ebp - 0xb0]
ja 0x4245d7
cmp eax, ecx
jb 0x42460b
sub eax, ecx
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xb0], eax
sbb ecx, edx
mov edx, dword [ebp - 0xf8]
push ecx
push dword [ebp - 0xb0]
mov dword [ebp - 0xb8], ecx
mov eax, dword [edx]
push edx
call dword [eax + 0xc]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x42478a
mov eax, dword [ebx]
push ebx
mov byte [ebp - 4], 0xd4
call dword [eax + 8]
mov ecx, dword [ebp - 0x48]
mov byte [ebp - 4], 0xbd
cmp ecx, dword [ebp - 0xa4]
jb 0x423de0
push esi
call fcn.0054605b
push dword [ebp - 0x78]
call fcn.0054605b
add esp, 8
lea ecx, [ebp - 0x378]
call fcn.0040e920
mov ecx, dword [ebp - 0x194]
mov byte [ebp - 4], 0x1f
test ecx, ecx
je 0x42467b
mov eax, dword [ebp - 0x18c]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.0054b380
mov ecx, dword [ebp - 0x194]
add esp, 0xc
mov dword [ebp - 0x190], 0
push ecx
call fcn.0054605b
push dword [ebp - 0x1bc]
call fcn.0054605b
add esp, 8
lea ecx, [ebp - 0x1c8]
call fcn.0040e7e0
mov ecx, dword [ebp - 0x64]
inc ecx
mov dword [ebp - 0x64], ecx
cmp ecx, dword [ebp - 0x120]
jae 0x424804
mov esi, dword [ebp - 0x9c]
jmp 0x422d22
mov eax, dword [ebp - 0xac]
mov byte [ebp - 4], 0x4e
test eax, eax
je 0x424742
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x424742
jle 0x424742
movzx ebx, bx
or ebx, 0x80070000
mov dword [ebp - 0x50], ebx
jmp 0x424742
jg 0x4246e9
mov dword [ebp - 0x50], eax
jmp 0x424742
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x50], eax
jmp 0x424742
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x424714
mov ecx, dword [eax]
push 2
push dword [ebp - 0x54]
push 2
push eax
call dword [ecx + 0x14]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x424742
mov eax, 0x80004005
mov dword [ebp - 0x50], eax
jmp 0x424742
mov eax, 0x80004005
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0x62
test ebx, ebx
je 0x424734
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
push dword [ebp - 0x114]
call fcn.0054605b
add esp, 4
mov byte [ebp - 4], 0xb2
test esi, esi
je 0x424750
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x8c]
mov byte [ebp - 4], 0xb3
test eax, eax
je 0x424764
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x104]
call fcn.0054605b
add esp, 4
jmp 0x4247a5
push dword [ebp - 0x14c]
call fcn.0054605b
add esp, 4
mov eax, 0x80004005
mov dword [ebp - 0x50], eax
mov eax, dword [ebx]
push ebx
mov byte [ebp - 4], 0xd0
call dword [eax + 8]
push esi
call fcn.0054605b
push dword [ebp - 0x78]
call fcn.0054605b
add esp, 8
lea ecx, [ebp - 0x378]
call fcn.0040e920
mov ecx, dword [ebp - 0x194]
test ecx, ecx
je 0x4247e3
mov eax, dword [ebp - 0x18c]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.0054b380
mov ecx, dword [ebp - 0x194]
add esp, 0xc
mov dword [ebp - 0x190], 0
push ecx
call fcn.0054605b
push dword [ebp - 0x1bc]
call fcn.0054605b
add esp, 8
lea ecx, [ebp - 0x1c8]
call fcn.0040e7e0
jmp 0x424840
mov ecx, dword [ebp - 0xa8]
call fcn.00431230
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x424840
mov ecx, dword [ebp - 0x60]
call fcn.00420f80
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x42483b
mov ecx, dword [eax]
push 7
push 0xffffffffffffffff
push 0
push eax
call dword [ecx + 0x10]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x424840
xor eax, eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 0xdb
test edi, edi
je 0x42484e
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 0xdc
mov dword [ebp - method.NArchive::N7z::CThreadDecoder.virtual_0], vtable.NArchive::N7z::CThreadDecoder.0
call fcn.00431a20
mov ecx, dword [ebp - 0x210]
mov byte [ebp - 4], 0xdd
test ecx, ecx
je 0x42487b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x228]
mov byte [ebp - 4], 0xde
test ecx, ecx
je 0x42488f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x230]
mov byte [ebp - 4], 0xdf
test ecx, ecx
je 0x4248a3
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
lea ecx, [ebp - 0x29c]
call fcn.004111f0
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 0xe0
mov dword [ebp - method.ISequentialInStream.virtual_0], vtable.CVirtThread.0
call fcn.00431a20
lea eax, [ebp - 0x2a4]
push eax
call fcn.0040c400
lea eax, [ebp - 0x2a8]
push eax
call fcn.0040c400
lea eax, [ebp - 0x2ac]
push eax
call fcn.0040c400
lea eax, [ebp - 0x1fc]
push eax
call fcn.0040c400
lea eax, [ebp - 0x200]
push eax
call fcn.0040c400
add esp, 0x14
mov ecx, dword [ebp - 0xa8]
mov byte [ebp - 4], 0xe1
test ecx, ecx
je 0x42491a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ebx, dword [ebp - 0xe4]
test ebx, ebx
je 0x42495d
mov eax, dword [ebp - 0xf4]
lea ebx, [ebx]
mov esi, dword [eax + ebx*4 - 4]
dec ebx
test esi, esi
je 0x424959
push dword [esi + 0xc]
call fcn.0054605b
push dword [esi]
call fcn.0054605b
push 0x18
push esi
call fcn.00546044
mov eax, dword [ebp - 0xf4]
add esp, 0x10
test ebx, ebx
jne 0x424930
push dword [ebp - 0xf4]
call fcn.0054605b
push dword [ebp - 0x124]
call fcn.0054605b
push dword [ebp - 0x9c]
call fcn.0054605b
mov ebx, dword [ebp - 0x50]
add esp, 0xc
mov eax, dword [ebp - 0x108]
mov byte [ebp - 4], 0xe2
test eax, eax
je 0x424998
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 4], 0xe3
test ecx, ecx
je 0x4249af
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00545ec7
mov esp, ebp
pop ebp
ret
push 0x5e8fe0
lea eax, [ebp - 0x64]
mov dword [ebp - 0x64], 0x7e5
push eax
call fcn.0054b85e
push 0x5e8fe0
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0x7e5
push eax
call fcn.0054b85e
int3