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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46643e
mov eax, dword fs:[0]
push eax
sub esp, 0x350
mov eax, dword [0x4823f0]
xor eax, esp
mov dword [esp + 0x348], eax
push ebx
push esi
push edi
mov eax, dword [0x4823f0]
xor eax, esp
push eax
lea eax, [esp + 0x360]
mov dword fs:[0], eax
mov ebx, edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x90], ecx
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0xc8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x18]
push 1
mov dword [esp + 0xac], eax
or eax, ecx
mov dword [esp + 0xc8], ecx
pop ecx
push 0
mov dword [esp + 0xf4], esi
mov dword [esp + 0x5c], edi
pop eax
jne 0x4218dd
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 0x74], eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x368], eax
mov eax, dword [esi]
push ecx
push 0x475114
push esi
call dword [eax]
xor eax, eax
mov dword [esp + 0xa4], eax
inc eax
lea ecx, [esp + 0xa4]
push ecx
mov byte [esp + 0x36c], al
mov eax, dword [esi]
push 0x474058
push esi
call dword [eax]
xor edx, edx
test ebx, ebx
je 0x42192e
mov esi, dword [ebx + 0xe8]
mov ebx, dword [ebx + 0xec]
jmp 0x421932
mov esi, edx
mov ebx, edx
cmp ebx, edx
ja 0x42193a
cmp esi, edx
jbe 0x42197e
cmp byte [edi + 0x2a], 0
jne 0x42197e
mov ecx, dword [esp + 0x90]
push edx
push edx
push edx
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x10]
mov edi, eax
test edi, edi
jne 0x4238ad
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x90]
push eax
push ebx
push esi
call fcn.0042070e
mov edi, eax
test edi, edi
jne 0x4238ad
mov edi, dword [esp + 0x58]
xor edx, edx
mov eax, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], edx
mov byte [esp + 0x18], dl
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
push 4
pop eax
mov byte [esp + 0x368], al
mov al, byte [edi + 8]
mov byte [esp + 0x4b], dl
mov byte [esp + 0x4a], al
test al, al
je 0x421a86
mov eax, dword [edi]
mov esi, edx
mov edi, dword [eax + 4]
test edi, edi
je 0x421a86
mov edx, dword [eax]
mov ebx, 0x3030205
mov eax, dword [edx]
cmp dword [eax + 0x14], 0
mov ecx, dword [eax + 0x10]
ja 0x421a76
jb 0x421a0e
cmp ecx, 0xffffffff
ja 0x421a76
cmp ecx, ebx
ja 0x421a46
je 0x421b7f
sub ecx, 3
je 0x421b7f
sub ecx, 0x202ff
je 0x421b7f
dec ecx
dec ecx
je 0x421b7f
sub ecx, 0x300fdff
je 0x421b7f
sub ecx, 0x18
jmp 0x421a70
cmp ecx, 0x3030401
je 0x421b7f
cmp ecx, 0x3030501
je 0x421b7f
cmp ecx, 0x3030701
je 0x421b7f
cmp ecx, 0x3030805
je 0x421b7f
push 4
pop eax
inc esi
add edx, eax
cmp esi, edi
jb 0x4219fc
xor edx, edx
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x421e54
mov esi, dword [ebx + 0x5c]
push edx
call fcn.00455704
pop ecx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x78], eax
mov eax, esi
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004102b5
xor edx, edx
mov dword [esp + 0x7c], eax
pop ecx
mov ecx, edx
cmp dword [ebx + 0x5c], ecx
jbe 0x421ad0
or dword [eax + ecx*4], 0xffffffff
inc ecx
cmp ecx, dword [ebx + 0x5c]
jb 0x421ac6
mov esi, dword [esp + 0x50]
cmp dword [esi + 4], edx
jbe 0x421aee
mov ecx, dword [esi]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
je 0x421ae8
mov dword [eax + ecx*4], edx
inc edx
cmp edx, dword [esi + 4]
jb 0x421ad9
xor edx, edx
mov edi, edx
mov dword [esp + 0x40], edi
cmp dword [ebx + 4], edx
jbe 0x421e5a
mov esi, ebx
mov ecx, dword [esi + 0x24]
mov ebx, edx
mov dword [esp + 0x30], edx
mov edx, dword [ecx + edi*4]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 0x118]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx + edi*4]
test edx, edx
je 0x421e43
lea esi, [eax + ecx*4]
imul edx, ecx, 0x18
mov eax, dword [esp + 0x14]
mov edi, ebx
push 4
pop ecx
add edx, dword [eax + 0x58]
mov eax, dword [esp + 0x28]
cmp byte [edx + 0x10], 0
je 0x421b8b
mov ecx, dword [esi]
inc ebx
push 4
test ecx, ecx
js 0x421b8a
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov eax, dword [esi]
mov ecx, dword [ecx + eax*4]
cmp byte [ecx + 0x38], 0
pop ecx
jne 0x421b79
mov eax, dword [esp + 0x1c]
inc edi
add eax, dword [edx]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
adc eax, dword [edx + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
jmp 0x421b8b
xor edx, edx
mov byte [esp + 0x4a], dl
jmp 0x421a86
pop ecx
add edx, 0x18
add esi, ecx
cmp ebx, eax
jb 0x421b42
mov eax, dword [esp + 0x78]
test edi, edi
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x40]
je 0x421e3f
xor eax, eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x330], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x33c], eax
mov dword [esp + 0x340], eax
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x32c]
push eax
push edi
mov ecx, ebx
mov byte [esp + 0x370], 5
call fcn.0041c6f1
mov eax, dword [ebx + 0x34]
lea ecx, [esp + 0x32c]
movzx esi, byte [eax + edi]
mov dword [esp + 0x344], esi
call fcn.0042013d
mov bl, al
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x28]
mov byte [esp + 0x63], bl
sete al
cmp byte [esp + 0x4a], 0
mov byte [esp + 0x3f], al
jne 0x421c30
test al, al
jne 0x421c30
xor ecx, ecx
mov al, cl
jmp 0x421c35
xor eax, eax
inc eax
xor ecx, ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov byte [esp + 0x84], bl
test al, al
je 0x421cda
imul ecx, esi, 0x18
push 3
pop esi
add ecx, dword [esp + 0x32c]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
cmp eax, esi
jne 0x421c85
test edx, edx
jne 0x421c87
xor eax, eax
inc eax
cmp dword [ecx + 0xc], eax
jne 0x421cda
mov eax, dword [ecx + 8]
mov dword [esp + 0x7c], esi
movzx eax, byte [eax]
inc eax
mov dword [esp + 0x80], eax
jmp 0x421cda
test edx, edx
ja 0x421cda
jb 0x421c92
cmp eax, 0x3030805
ja 0x421cda
mov edx, 0x3030103
sub eax, edx
je 0x421cc3
sub eax, 0x18
je 0x421cc3
sub eax, 0xea
je 0x421cc3
sub eax, 0x1fc
je 0x421cc3
sub eax, 0x100
je 0x421cc3
sub eax, 0x200
je 0x421cc3
sub eax, 0x104
jne 0x421cda
mov eax, dword [ecx]
cmp eax, 0x303011b
lea ecx, [esp + 0x7c]
cmove eax, edx
mov dword [esp + 0x7c], eax
call fcn.00420319
lea edx, [esp + 0x7c]
lea ecx, [esp + 0xb4]
call fcn.004206a8
mov esi, eax
cmp esi, dword [esp + 0xa0]
jb 0x421d17
lea ecx, [esp + 0xd0]
call fcn.0041fab9
mov edi, dword [esp + 0xd4]
mov dword [esp + 0xa0], edi
cmp esi, edi
jae 0x421cf5
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0xd0]
mov esi, dword [eax + esi*4]
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0x10], ecx
jne 0x421d7a
mov eax, ecx
shr eax, 2
inc eax
add eax, ecx
xor ecx, ecx
push 8
pop edx
mov dword [esp + 0x70], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004102b5
pop ecx
mov ecx, dword [esi + 0x10]
mov ebx, eax
test ecx, ecx
je 0x421d63
shl ecx, 3
push ecx
push dword [esi + 0xc]
push ebx
call fcn.004550c0
add esp, 0xc
push dword [esi + 0xc]
call fcn.00455704
mov eax, dword [esp + 0x74]
mov dword [esi + 0xc], ebx
mov bl, byte [esp + 0x67]
pop ecx
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x30]
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], edx
inc dword [esi + 0x10]
cmp byte [esp + 0x3f], 0
je 0x421dbe
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x30]
mov esi, dword [eax + 8]
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ecx + edi*4]
mov edx, dword [esi + eax*8]
sub edx, dword [esi + ecx*8]
mov eax, dword [esi + eax*8 + 4]
sbb eax, dword [esi + ecx*8 + 4]
add dword [esp + 0x6c], edx
adc dword [esp + 0x64], eax
jmp 0x421dfb
mov eax, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x38]
inc edx
add dword [esp + 0x6c], eax
mov byte [esp + 0x4b], dl
adc dword [esp + 0x64], ecx
cmp dword [esp + 0x2c], ecx
ja 0x421deb
jb 0x421de3
cmp dword [esp + 0x24], eax
jae 0x421deb
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x18]
test bl, bl
movzx eax, al
cmovne eax, edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x368], 7
push dword [esp + 0x33c]
call fcn.00455704
pop ecx
mov byte [esp + 0x368], 6
push dword [esp + 0x334]
call fcn.00455704
pop ecx
push 4
pop eax
lea ecx, [esp + 0x32c]
mov byte [esp + 0x368], al
call fcn.00415de2
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x14]
inc edi
push 0
mov dword [esp + 0x44], edi
pop edx
cmp edi, dword [esi + 4]
jb 0x421b01
mov esi, dword [esp + 0x50]
xor edx, edx
mov ebx, dword [esi + 4]
mov ecx, edx
mov dword [esp + 0xac], ecx
mov eax, edx
mov dword [esp + 0xb0], eax
test ebx, ebx
je 0x421ecc
mov edi, dword [esi]
push 4
pop edx
mov esi, dword [edi]
cmp byte [esi + 0x38], 0
je 0x421ec7
mov edx, dword [esi + 0x20]
add dword [esp + 0x6c], edx
mov esi, dword [esi + 0x24]
adc dword [esp + 0x64], esi
cmp dword [esp + 0xa8], 1
jne 0x421eb2
cmp dword [esp + 0xc4], 0
jne 0x421eb2
cmp eax, esi
ja 0x421ec4
jb 0x421eac
cmp ecx, edx
jae 0x421ec4
mov ecx, edx
mov eax, esi
jmp 0x421eb6
add ecx, edx
adc eax, esi
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], ecx
push 4
pop edx
add edi, edx
dec ebx
jne 0x421e78
mov edx, dword [esp + 0x2c]
cmp eax, edx
ja 0x421eec
mov eax, dword [esp + 0x24]
jb 0x421ede
cmp ecx, eax
jae 0x421eec
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov esi, dword [esp + 0xf0]
push dword [esp + 0x64]
push dword [esp + 0x70]
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov edi, eax
test edi, edi
jne 0x423832
push 0x38
call fcn.004102b5
pop ecx
test eax, eax
je 0x421f26
mov ecx, eax
call fcn.0042c235
mov ebx, eax
mov dword [esp + 0x44], ebx
jmp 0x421f2e
xor eax, eax
mov ebx, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x170], ebx
test ebx, ebx
je 0x421f3f
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
push 8
pop eax
mov byte [esp + 0x368], al
mov ecx, ebx
xor eax, eax
inc eax
push eax
push esi
call fcn.0042c261
xor eax, eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
mov esi, dword [esp + 0x58]
mov byte [esp + 0x368], 9
cmp byte [esi + 0x2b], al
je 0x421f93
lea ecx, [esp + 0x14c]
call fcn.0042c472
mov edi, eax
test edi, edi
jne 0x423808
movzx eax, byte [esi + 0x2b]
lea ecx, [esp + 0x1a4]
push eax
call fcn.0042159c
mov byte [esp + 0x368], 0xa
cmp byte [esi + 0x2b], 0
je 0x421fcf
cmp byte [esp + 0x4b], 0
je 0x421fcf
lea ecx, [esp + 0x1a4]
call fcn.0042c988
mov edi, eax
test edi, edi
jne 0x4237f4
xor edx, edx
xor eax, eax
mov esi, edx
mov dword [esp + 0x84], edx
mov edi, edx
mov dword [esp + 0x7c], esi
inc eax
mov dword [esp + 0x80], edi
mov byte [esp + 0x88], al
mov word [esp + 0x89], dx
mov ebx, dword [esp + 0x58]
mov byte [esp + 0x368], 0xb
cmp dword [ebx + 0xc], edx
jne 0x42201b
mov word [esp + 0x88], dx
mov byte [esp + 0x8a], dl
jmp 0x42205f
mov esi, dword [esp + 0x74]
test esi, esi
je 0x42202e
mov eax, dword [esi]
push esi
call dword [eax + 4]
xor eax, eax
xor edx, edx
inc eax
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x7c], esi
test ecx, ecx
jle 0x42205f
mov byte [esp + 0x88], al
cmp ecx, 7
jl 0x42205f
mov byte [esp + 0x89], al
cmp ecx, 9
push 1
movzx eax, dl
pop ecx
cmovge eax, ecx
mov byte [esp + 0x8a], al
mov eax, dword [ebx]
mov ebx, edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x8c], edx
cmp dword [eax + 4], 0
jbe 0x422158
mov eax, dword [eax]
mov esi, dword [eax + ebx*4]
cmp byte [esi + 0x38], 0
je 0x422138
mov ecx, esi
call fcn.004202fe
test al, al
je 0x422138
xor eax, eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov byte [esp + 0xe4], al
cmp byte [esp + 0x4a], al
je 0x4220d7
lea eax, [esp + 0xdc]
push eax
push esi
push ebx
lea ecx, [esp + 0x88]
call fcn.00420add
mov edi, eax
test edi, edi
jne 0x4221d2
mov eax, dword [esp + 0x70]
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xb4]
mov al, byte [eax + 0x21]
mov byte [esp + 0xe4], al
call fcn.004206a8
mov esi, eax
cmp esi, dword [esp + 0xa0]
jb 0x422128
lea ecx, [esp + 0xd0]
call fcn.0041fab9
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xa0], ebx
cmp esi, ebx
jae 0x422103
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0xd0]
push ebx
mov ecx, dword [eax + esi*4]
call fcn.0040ed0d
mov eax, dword [esp + 0x50]
inc ebx
mov dword [esp + 0x8c], ebx
cmp ebx, dword [eax + 4]
jb 0x42207c
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push edi
mov byte [esp + 0x36c], 0xd
call fcn.00455704
mov byte [esp + 0x36c], 0xa
pop ecx
test esi, esi
je 0x422179
mov eax, dword [esi]
push esi
call dword [eax + 8]
xor eax, eax
mov ebx, eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x368], 0xe
push 0x14
pop eax
cmp byte [esp + 0x18], bl
je 0x4222c4
push eax
call fcn.004102b5
mov esi, eax
pop ecx
mov dword [esp + 0xec], esi
mov dword [esp + 0x5c], esi
xor eax, eax
mov byte [esp + 0x368], 0xf
test esi, esi
je 0x422203
mov dword [esi + 4], eax
lea ecx, [esi + 8]
mov dword [esi], vtable.NArchive::N7z::CCryptoGetTextPassword.0
call fcn.0040fca7
jmp 0x42220c
mov byte [esp + 0x368], 0xc
push dword [esp + 0x80]
call fcn.00455704
pop ecx
mov byte [esp + 0x368], 0xa
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x4237f0
mov eax, dword [ecx]
push ecx
jmp 0x4237ed
mov esi, eax
mov dword [esp + 0xec], eax
mov byte [esp + 0x368], 0xe
test esi, esi
je 0x42221e
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ebx, esi
mov dword [esp + 0x4c], ebx
test esi, esi
je 0x42222e
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [esp + 0x23c]
test ecx, ecx
je 0x42223f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x23c], esi
mov eax, dword [eax]
cmp byte [eax + 0x21], 0
je 0x422260
add eax, 0x24
lea ecx, [esi + 8]
push eax
call fcn.0040fde5
jmp 0x4222c4
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x422272
mov edi, 0x80004001
jmp 0x4237de
xor eax, eax
mov dword [esp + 0x28], eax
mov byte [esp + 0x368], 0x10
lea edx, [esp + 0x28]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0xc]
mov edi, eax
test edi, edi
je 0x4222a0
push dword [esp + 0x28]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x4237de
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4222b5
push eax
lea ecx, [esi + 8]
call fcn.0040fd7d
mov eax, dword [esp + 0x28]
push eax
mov byte [esp + 0x36c], 0xe
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [esp + 0xc8]
push ecx
push dword [esp + 0x58]
mov ecx, esi
call fcn.0041e69d
mov edi, eax
test edi, edi
jne 0x4237de
push 0x18
push eax
lea eax, [esp + 0x334]
push eax
call fcn.004589f0
mov ecx, dword [esi + 0x54]
lea edx, [esp + 0x338]
add esp, 0xc
push 0x18
call fcn.0042c85d
mov edi, eax
test edi, edi
jne 0x4237de
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], eax
mov esi, eax
mov byte [esp + 0x368], 0x11
mov eax, dword [esp + 0x50]
cmp dword [eax + 4], esi
jbe 0x422387
mov ebx, dword [esp + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
cmp byte [eax + 0x38], 0
je 0x422351
mov ecx, eax
call fcn.004202fe
test al, al
jmp 0x422363
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x422365
imul ecx, eax, 0x18
mov eax, dword [ebx + 0x58]
cmp byte [ecx + eax + 0x10], 0
jne 0x422372
push esi
lea ecx, [esp + 0x98]
call fcn.0040ed0d
mov eax, dword [esp + 0x50]
inc esi
cmp esi, dword [eax + 4]
jb 0x42233b
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x4c]
push eax
push 0x4207e5
lea ecx, [esp + 0x9c]
call fcn.00423a5b
xor edx, edx
test edi, edi
je 0x422485
mov ebx, edx
mov eax, dword [esp + 0x94]
mov byte [esp + 0x33d], dl
mov byte [esp + 0x33e], dl
mov byte [esp + 0x33f], dl
mov ecx, dword [eax + ebx*4]
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
lea ecx, [esp + 0xdc]
mov byte [esp + 0x33c], al
call fcn.0040fca7
mov byte [esp + 0x368], 0x12
lea eax, [esp + 0xf4]
cmp byte [esi + 0x39], 0
push eax
je 0x422419
lea edx, [esp + 0x330]
mov ecx, esi
call fcn.00421068
lea eax, [esi + 0x28]
push eax
lea ecx, [esp + 0xe0]
call fcn.0040fde5
jmp 0x42243f
mov edx, dword [esi]
lea eax, [esp + 0x330]
mov ecx, dword [esp + 0x18]
push eax
call fcn.004217b4
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xdc]
push eax
push dword [esi]
call fcn.0041c745
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0x334]
push eax
call fcn.0041f9ee
mov byte [esp + 0x368], 0x11
push dword [esp + 0xdc]
call fcn.00455704
pop ecx
inc ebx
push 0
pop edx
cmp ebx, edi
jb 0x4223a5
mov ebx, dword [esp + 0x4c]
mov byte [esp + 0x368], 0xe
push dword [esp + 0x94]
call fcn.00455704
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
pop ecx
xor ecx, ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], ecx
mov eax, ecx
test edx, edx
je 0x4224c7
lea ecx, [edi + 0xc]
mov dword [ecx], eax
inc eax
lea ecx, [ecx + 0x10]
cmp eax, edx
jb 0x4224bd
xor eax, eax
mov dword [esp + 0x1c], edx
inc eax
cmp edx, eax
jbe 0x422559
mov esi, edx
add edi, 0xfffffff0
shr esi, 1
push edx
mov edx, esi
mov ecx, edi
call fcn.00423cc8
mov edx, dword [esp + 0xb8]
dec esi
jne 0x4224dd
mov eax, dword [esp + 0x1c]
lea ecx, [edi + 0x10]
mov ebx, edx
mov dword [esp + 0x70], ecx
shl ebx, 4
add ebx, edi
mov esi, ebx
lea edi, [esp + 0x7c]
dec eax
mov dword [esp + 0x1c], eax
push eax
movsd dword es:[edi], dword [esi]
xor eax, eax
movsd dword es:[edi], dword [esi]
lea edx, [eax + 1]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, ecx
mov edi, ebx
sub ebx, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, ecx
lea esi, [esp + 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xb8]
lea ecx, [edi - 0x10]
call fcn.00423cc8
mov eax, dword [esp + 0x1c]
xor ecx, ecx
inc ecx
cmp eax, ecx
mov ecx, dword [esp + 0x70]
ja 0x422503
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0xb8]
xor eax, eax
mov dword [esp + 0x70], eax
test edx, edx
je 0x4237a7
mov esi, eax
lea ecx, [esp + 0x174]
shl esi, 4
add esi, edi
mov edi, dword [esp + 0x58]
push dword [edi]
call fcn.0042391f
mov byte [esp + 0x368], 0x13
cmp byte [edi + 9], 0
je 0x422599
cmp byte [edi + 0x2b], 0
je 0x422599
xor eax, eax
inc eax
jmp 0x42259b
xor eax, eax
push eax
mov edx, esi
lea ecx, [esp + 0x178]
call fcn.00420e60
mov edi, eax
test edi, edi
jne 0x423799
cmp byte [esi + 8], al
je 0x4225e9
cmp byte [esp + 0x195], al
jne 0x422605
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4225dd
add eax, 8
lea ecx, [esp + 0x198]
push eax
call fcn.0040fde5
xor eax, eax
inc eax
mov byte [esp + 0x195], al
jmp 0x422605
xor eax, eax
xor ecx, ecx
mov byte [esp + 0x195], al
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x198]
mov word [eax], cx
lea eax, [esp + 0x174]
push eax
lea ecx, [esp + 0x278]
call fcn.00416dd5
push 0x14
pop eax
mov byte [esp + 0x368], al
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + eax*4]
xor eax, eax
mov ecx, eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x68], ecx
cmp dword [edx + 0x10], eax
jbe 0x422ffb
mov edx, dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], edx
mov esi, dword [edx + ecx*8]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x2c], esi
mov eax, dword [eax + esi*4]
mov dword [esp + 0x30], eax
cmp dword [edx + ecx*8 + 4], eax
jne 0x42283f
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4226e8
mov ecx, dword [eax]
push 3
push esi
push 2
push eax
call dword [ecx + 0x10]
mov edi, eax
test edi, edi
jne 0x423785
mov edi, dword [esp + 0x14]
mov edx, eax
mov eax, dword [edi + 0x118]
mov esi, dword [eax + esi*4]
cmp dword [esp + 0x30], edx
jbe 0x4226e8
imul ecx, esi, 0x18
mov dword [esp + 0x1c], ecx
mov eax, dword [edi + 0x58]
cmp byte [ecx + eax + 0x10], 0
je 0x4226da
mov eax, dword [esp + 0x74]
inc edx
mov dword [esp + 0x20], edx
xor edx, edx
push 3
push esi
mov ecx, dword [eax]
inc edx
push edx
push eax
call dword [ecx + 0x10]
mov edi, eax
test edi, edi
jne 0x423785
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
add ecx, 0x18
inc esi
mov dword [esp + 0x1c], ecx
cmp edx, dword [esp + 0x30]
jb 0x4226a4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 0x30]
mov esi, dword [eax + 8]
mov eax, dword [edx + ecx*4 + 4]
mov ecx, dword [edx + ecx*4]
mov edi, dword [esi + eax*8]
sub edi, dword [esi + ecx*8]
mov eax, dword [esi + eax*8 + 4]
sbb eax, dword [esi + ecx*8 + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x14]
mov eax, dword [edx + eax*4]
mov edx, dword [esi + eax*8]
mov ecx, dword [esi + eax*8 + 4]
add edx, dword [edi + 0xf8]
mov eax, dword [esp + 0xc8]
adc ecx, dword [edi + 0xfc]
xor edi, edi
mov esi, dword [esp + 0x90]
push edi
mov eax, dword [eax + 0x54]
push edi
push ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
push edx
push esi
call dword [eax + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, eax
test edi, edi
jne 0x423785
push dword [esp + 0x44]
mov edx, dword [esp + 0x24]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x98]
push esi
call fcn.0042070e
mov edi, eax
test edi, edi
jne 0x423785
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
add dword [ecx + 0x18], esi
adc dword [ecx + 0x1c], eax
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + 0x54]
call fcn.0041fab9
mov edi, dword [esp + 0x2c]
mov esi, eax
mov ecx, dword [esp + 0x14]
push esi
push edi
mov dword [esp + 0x28], esi
call fcn.0041c6f1
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x30]
mov eax, dword [ecx + edi*4]
xor ecx, ecx
mov edi, ecx
cmp dword [esi + 0x14], ecx
jbe 0x422801
mov ebx, dword [esp + 0x20]
mov esi, eax
shl esi, 3
mov edx, dword [edx + 8]
mov ecx, dword [esi + edx + 8]
sub ecx, dword [esi + edx]
mov eax, dword [esi + edx + 0xc]
sbb eax, dword [esi + edx + 4]
push eax
push ecx
mov ecx, dword [esp + 0x3c]
lea ecx, [ecx + 0x30]
call fcn.004175b4
mov edx, dword [esp + 0x14]
inc edi
push 8
pop eax
add esi, eax
cmp edi, dword [ebx + 0x14]
jb 0x4227ce
mov ebx, dword [esp + 0x4c]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esp + 0x2c]
mov edi, dword [eax + ecx*4 + 4]
mov esi, dword [eax + ecx*4]
cmp esi, edi
jae 0x422e1b
mov ebx, dword [esp + 0x34]
mov eax, dword [edx + 0x28]
lea ecx, [ebx + 0x24]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
call fcn.004175b4
mov edx, dword [esp + 0x14]
inc esi
cmp esi, edi
jb 0x42281b
mov ebx, dword [esp + 0x4c]
jmp 0x422e1b
xor ecx, ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], ecx
mov byte [esp + 0x368], 0x15
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], ecx
test eax, eax
je 0x422883
mov ecx, dword [eax]
push 4
pop edx
push edx
push esi
push 2
push eax
call dword [ecx + 0x10]
mov edi, eax
test edi, edi
jne 0x42370e
xor ecx, ecx
cmp dword [esp + 0x30], 0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [edx + 0x118]
mov ecx, dword [eax + esi*4]
jbe 0x422946
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x20]
imul edi, ecx, 0x18
lea eax, [eax + ecx*4]
mov dword [esp + 0x28], eax
mov esi, dword [edx + 0x58]
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov byte [esp + 0x11c], cl
cmp byte [esi + edi + 0x10], cl
je 0x4228f3
mov edx, dword [eax]
inc ebx
test edx, edx
js 0x4228f3
mov eax, dword [esp + 0x50]
push 1
movzx ecx, cl
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
cmp byte [eax + 0x38], 0
pop eax
cmove ecx, eax
mov dword [esp + 0x40], ecx
mov byte [esp + 0x11c], cl
push dword [esp + 0x11c]
lea ecx, [esp + 0x124]
call fcn.00418648
cmp byte [esp + 0x40], 0
je 0x422924
mov edx, dword [esp + 0x38]
add edx, dword [esi + edi]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x1c]
adc edx, dword [esi + edi + 4]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x28]
add edi, 0x18
mov edx, dword [esp + 0x14]
push 4
pop ecx
add eax, ecx
mov dword [esp + 0x28], eax
cmp ebx, dword [esp + 0x30]
jb 0x4228b5
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov byte [esp + 0x368], 0x16
push 0x1c
mov dword [esp + 0x44], eax
call fcn.004102b5
mov edi, eax
xor eax, eax
pop ecx
test edi, edi
je 0x422992
mov dword [edi + 4], vtable.ICompressGetSubStreamSize.0
mov dword [edi + 8], eax
mov dword [edi], vtable.NArchive::N7z::CRepackInStreamWithSizes.1.0
mov dword [edi + 4], vtable.NArchive::N7z::CRepackInStreamWithSizes.0
mov dword [edi + 0xc], eax
jmp 0x422994
mov edi, eax
mov dword [esp + 0xcc], edi
test edi, edi
je 0x4229a5
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [esp + 0x58]
mov byte [esp + 0x368], 0x17
cmp byte [eax + 0x2b], 0
je 0x422a77
mov eax, dword [esp + 0x224]
test eax, eax
je 0x4229d1
add eax, 8
mov dword [esp + 0x24], eax
xor eax, eax
jmp 0x4229d7
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
mov byte [esp + 0x368], 0x18
push eax
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x154]
call fcn.0042c4e3
lea ecx, [esp + 0x14c]
call fcn.0042c499
mov ecx, dword [esp + 0x224]
mov esi, dword [esp + 0x18]
push esi
lea ecx, [ecx + 0x34]
call fcn.00415bb7
push dword [esp + 0x90]
lea ecx, [esp + 0x224]
call fcn.00415bb7
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x234], ecx
mov eax, dword [ecx + 0xf8]
mov dword [esp + 0x22c], eax
mov eax, dword [ecx + 0xfc]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x238], eax
mov byte [esp + 0x368], 0x17
test esi, esi
je 0x422b88
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x422b84
push 0x40
call fcn.004102b5
mov esi, eax
pop ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], esi
xor eax, eax
test esi, esi
je 0x422abe
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi], vtable.NArchive::N7z::CFolderInStream2.0
mov dword [esi + 0x38], eax
mov byte [esp + 0x368], 0x1b
push 0x10000
mov dword [esi + 0x3c], eax
call fcn.004102b5
mov dword [esi + 0x34], eax
xor eax, eax
pop ecx
jmp 0x422ac4
mov esi, eax
mov dword [esp + 0x40], eax
mov byte [esp + 0x368], 0x17
lea ecx, [esp + 0x28]
push esi
mov dword [esi + 0x3c], eax
call fcn.00415bb7
lea eax, [esi + 8]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x24], eax
call fcn.0040fca7
xor ecx, ecx
mov dword [esp + 0x20], ecx
xor eax, eax
mov byte [esp + 0x368], 0x1d
inc eax
push eax
push ecx
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x6f]
push eax
lea eax, [esp + 0x5b]
push eax
push ebx
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x30]
push ecx
push ecx
push ecx
push dword [esp + 0x54]
lea ecx, [esp + 0x1e4]
push eax
push dword [eax + 0xfc]
push dword [eax + 0xf8]
push dword [esp + 0xc8]
call fcn.00414fd7
mov esi, dword [esp + 0x20]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4236be
test esi, esi
je 0x4236b6
mov ecx, dword [esp + 0x40]
push esi
lea ecx, [ecx + 0x38]
call fcn.00415bb7
mov byte [esp + 0x368], 0x1c
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [esp + 0x368], 0x17
push dword [esp + 0x7c]
call fcn.00455704
pop ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov dword [eax + 0x1c], ecx
mov esi, dword [esp + 0x74]
test esi, esi
je 0x422ba1
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x422bb2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x24]
mov dword [eax + 0x20], esi
mov esi, dword [esp + 0xa4]
test esi, esi
je 0x422bca
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x422bd7
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x24], esi
mov eax, dword [eax + 0x118]
mov esi, dword [eax + edx*4]
lea eax, [esp + 0x120]
mov dword [ecx + 0x10], eax
xor eax, eax
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x18], eax
mov byte [ecx + 1], al
call fcn.00421247
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4236e2
mov eax, dword [esp + 0x14]
lea ecx, [edi + 0xc]
mov dword [edi + 0x18], eax
lea eax, [esp + 0x120]
mov dword [edi + 0x14], esi
mov esi, dword [esp + 0x28]
push esi
mov dword [edi + 0x10], eax
call fcn.00415bb7
mov eax, dword [esp + 0x58]
cmp byte [eax + 0x2b], 0
je 0x422c55
xor eax, eax
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x1b4], al
call fcn.0040c320
mov ecx, dword [esp + 0x34]
push dword [esp + 0x44]
lea eax, [ecx + 0x30]
push eax
mov eax, dword [esp + 0xd0]
push dword [eax + 0x54]
lea eax, [esp + 0x138]
push eax
lea eax, [ecx + 0x24]
add ecx, 0x54
push eax
call fcn.0041fab9
push eax
lea eax, [esp + 0xc4]
push eax
push edi
lea ecx, [esp + 0x294]
call fcn.004166f3
mov dword [esp + 0x18], eax
cmp eax, 0x20000002
je 0x42368b
mov ecx, dword [esp + 0x58]
cmp byte [ecx + 0x2b], 0
je 0x422d2a
mov eax, dword [edi]
push edi
call dword [eax + 8]
xor eax, eax
mov edi, eax
mov dword [esp + 0xcc], edi
test esi, esi
je 0x422cd1
mov eax, dword [esi]
push esi
call dword [eax + 8]
xor eax, eax
mov esi, eax
mov dword [esp + 0x28], esi
push 0xffffffffffffffff
push dword [esp + 0x1b0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp + 0x21c]
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x423657
test eax, eax
jne 0x42364e
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4236e6
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x164], eax
jne 0x42368b
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x168], eax
jne 0x42368b
jmp 0x422d4c
mov ecx, dword [esp + 0x40]
xor edx, edx
inc edx
mov ecx, dword [ecx + 0x3c]
cmp ecx, edx
je 0x42369b
test ecx, ecx
jne 0x423695
test eax, eax
jne 0x4236e6
mov edx, dword [esp + 0x24]
mov ecx, 0x80004005
and dword [esp + 0xcc], 0
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
cmp dword [edx + 0x18], eax
cmove ecx, dword [esp + 0xcc]
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x4236e6
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x12c], eax
jne 0x42368b
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x130], eax
jne 0x42368b
mov byte [esp + 0x368], 0x16
test edi, edi
je 0x422dae
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [esp + 0x368], 0x15
test esi, esi
je 0x422dc0
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0x44]
cmp edx, dword [eax + 0x34]
jae 0x422df0
mov ebx, eax
mov ecx, dword [ebx + 0x30]
mov eax, dword [ecx + edx*8]
add dword [esi + 0x28], eax
mov eax, dword [ecx + edx*8 + 4]
adc dword [esi + 0x2c], eax
inc edx
cmp edx, dword [ebx + 0x34]
jb 0x422dd6
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x12c]
add dword [esi + 0x20], eax
mov eax, dword [esp + 0x130]
adc dword [esi + 0x24], eax
push 0x14
pop eax
mov byte [esp + 0x368], al
push dword [esp + 0x120]
call fcn.00455704
pop ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
push dword [ecx + eax*8 + 4]
mov ecx, dword [esp + 0x38]
lea ecx, [ecx + 0x18]
call fcn.0040ed0d
mov eax, dword [esp + 0x14]
xor edx, edx
mov edi, edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + 0x118]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x20], esi
cmp dword [esp + 0x30], edx
jbe 0x422fe5
mov ebx, dword [esp + 0x78]
jmp 0x422e5e
xor edx, edx
mov ecx, dword [esp + 0x14]
xor eax, eax
inc eax
mov byte [esp + 0x107], dl
mov byte [esp + 0x104], al
mov edx, esi
lea eax, [esp + 0x24c]
mov word [esp + 0x105], 0
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.004217b4
lea ecx, [esp + 0xdc]
call fcn.0040fca7
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xdc]
push eax
push esi
mov byte [esp + 0x370], 0x1e
call fcn.0041c745
cmp byte [esp + 0x104], 0
je 0x422fbb
mov ecx, dword [ebx + esi*4]
inc edi
mov dword [esp + 0xc0], edi
test ecx, ecx
js 0x422fbb
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x5c], eax
cmp byte [eax + 0x38], 0
jne 0x422fbb
cmp byte [eax + 0x39], 0
je 0x422f9a
xor ecx, ecx
lea edx, [esp + 0x32c]
mov byte [esp + 0x33d], cl
mov byte [esp + 0x33f], cl
lea ecx, [esp + 0x24c]
push ecx
mov ecx, eax
call fcn.00421068
mov eax, dword [esp + 0xf4]
lea esi, [esp + 0x32c]
mov dword [esp + 0x32c], eax
lea edi, [esp + 0xf4]
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x330], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x338], eax
mov al, byte [esp + 0x106]
mov byte [esp + 0x33e], al
mov al, byte [esp + 0x104]
mov byte [esp + 0x33c], al
mov eax, dword [esp + 0x5c]
push 6
pop ecx
rep movsd dword es:[edi], dword [esi]
add eax, 0x28
lea ecx, [esp + 0xdc]
push eax
call fcn.0040fde5
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x250]
push eax
lea eax, [esp + 0xfc]
push eax
call fcn.0041f9ee
push 0x14
pop eax
mov byte [esp + 0x368], al
push dword [esp + 0xdc]
call fcn.00455704
inc esi
pop ecx
mov dword [esp + 0x20], esi
cmp edi, dword [esp + 0x30]
jb 0x422e5c
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x54]
inc ecx
mov dword [esp + 0x68], ecx
cmp ecx, dword [edx + 0x10]
jb 0x422645
mov edi, dword [edx + 4]
mov dword [esp + 0x30], edi
test edi, edi
je 0x423604
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x94], eax
mov byte [esp + 0x368], 0x1f
mov dword [esp + 0x98], ecx
test edi, edi
je 0x42306f
push ecx
call fcn.00455704
pop ecx
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
mov eax, edi
push 0x14
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004102b5
mov edx, dword [esp + 0x58]
pop ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], edi
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x98], edi
cmp byte [ecx + 0x29], 0
je 0x42309f
xor ecx, ecx
cmp dword [esp + 0xc4], ecx
ja 0x423095
cmp dword [esp + 0xa8], 1
jbe 0x4230a1
mov byte [esp + 0x8c], 1
jmp 0x4230a8
xor ecx, ecx
mov byte [esp + 0x8c], cl
mov dword [esp + 0x5c], ecx
test edi, edi
je 0x423101
mov edi, eax
mov ebx, ecx
mov dword [esp + 0x20], edi
mov edx, dword [edx]
mov eax, dword [esp + 0x50]
push dword [esp + 0x8c]
mov ecx, dword [edx + ebx*4]
mov eax, dword [eax]
push dword [eax + ecx*4]
push ecx
lea ecx, [esp + 0x100]
call fcn.00420897
mov edx, dword [esp + 0x54]
mov esi, eax
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
inc ebx
push 0x14
pop eax
add edi, eax
mov dword [esp + 0x20], edi
cmp ebx, dword [esp + 0x30]
jb 0x4230b8
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x30]
mov al, byte [esp + 0x8c]
mov byte [esp + 0x3f], al
lea eax, [esp + 0x3f]
push eax
push ecx
lea ecx, [esp + 0x9c]
call fcn.00423b74
xor ecx, ecx
mov eax, edi
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004102b5
mov esi, eax
pop ecx
mov dword [esp + 0xc0], esi
xor edx, edx
mov byte [esp + 0x368], 0x20
mov ecx, edx
test edi, edi
je 0x42316d
mov edx, dword [esp + 0x94]
push 0x14
add edx, 4
pop ebx
mov eax, dword [edx]
add edx, ebx
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, edi
jb 0x42315b
mov ebx, dword [esp + 0x4c]
xor edx, edx
mov ecx, edx
mov dword [esp + 0x2c], ecx
test edi, edi
je 0x4235de
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
cmp ecx, eax
jae 0x423264
mov ebx, edi
xor eax, eax
cmp eax, dword [esp + 0xc4]
ja 0x423257
jb 0x4231b1
cmp edi, dword [esp + 0xa8]
jae 0x423257
lea eax, [edi + ecx]
mov edi, dword [esp + 0x58]
mov ecx, dword [esi + eax*4]
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
add edx, dword [eax + 0x20]
mov dword [esp + 0x68], edx
adc ecx, dword [eax + 0x24]
cmp ecx, dword [edi + 0x24]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
ja 0x423257
mov ecx, dword [esp + 0x58]
jb 0x4231ee
cmp edx, dword [ecx + 0x20]
ja 0x423257
cmp byte [ecx + 0x28], 0
je 0x423241
add eax, 0x28
mov ecx, eax
mov dword [esp + 0x54], eax
call fcn.00410074
mov ecx, dword [esp + 0x54]
mov edi, eax
call fcn.0041ffac
cmp eax, edi
jg 0x42321a
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x2c]
jmp 0x42321d
lea ecx, [eax + 1]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x24]
mov eax, dword [eax]
lea ecx, [eax + ecx*2]
test edi, edi
jne 0x423232
mov ebx, ecx
jmp 0x42323d
mov edx, ebx
call fcn.0040f5df
test al, al
je 0x423257
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x24], edi
lea eax, [edi + ecx]
cmp eax, dword [esp + 0x30]
jb 0x423193
mov ebx, dword [esp + 0x4c]
xor eax, eax
inc eax
cmp edi, eax
jae 0x42326b
jmp 0x423267
xor eax, eax
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x44]
call fcn.0042c367
mov edi, eax
test edi, edi
jne 0x42375f
push 0x60
call fcn.004102b5
mov edi, eax
xor eax, eax
mov dword [esp + 0x3c], edi
pop ecx
test edi, edi
je 0x4232cc
mov dword [edi + 4], vtable.ICompressGetSubStreamSize.0
mov dword [edi + 8], eax
mov dword [edi], vtable.NArchive::N7z::CFolderInStream.1.0
mov dword [edi + 4], vtable.NArchive::N7z::CFolderInStream.0
mov dword [edi + 0xc], eax
mov dword [edi + 0x34], eax
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], eax
mov dword [edi + 0x58], eax
jmp 0x4232d2
mov edi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0xcc], edi
test edi, edi
je 0x4232e3
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov ecx, edi
push dword [esp + 0x24]
mov byte [esp + 0x36c], 0x21
lea eax, [esi + eax*4]
push eax
push dword [esp + 0xf8]
mov dword [esp + 0x74], eax
call fcn.00418320
mov ecx, dword [esp + 0x34]
push dword [esp + 0x44]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x60], eax
lea eax, [ecx + 0x30]
push eax
mov eax, dword [esp + 0xd0]
push dword [eax + 0x54]
lea eax, [esp + 0x150]
push eax
lea eax, [ecx + 0x24]
add ecx, 0x54
push eax
call fcn.0041fab9
push eax
lea eax, [esp + 0xc4]
push eax
push edi
lea ecx, [esp + 0x294]
call fcn.004166f3
mov dword [esp + 0x18], eax
test eax, eax
jne 0x423745
mov eax, dword [edi + 0x30]
cmp eax, dword [edi + 0x2c]
jne 0x42373d
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x5c]
cmp edx, dword [eax + 0x34]
jae 0x423399
mov ebx, dword [esp + 0x44]
mov edi, eax
mov ecx, dword [edi + 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 [edi + 0x34]
jb 0x42337b
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x144]
add dword [ecx + 0x20], eax
mov eax, dword [esp + 0x148]
adc dword [ecx + 0x24], eax
xor edx, edx
mov ecx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x54], edx
cmp dword [esp + 0x24], ecx
jbe 0x423556
mov ecx, dword [esp + 0x68]
jmp 0x4233d7
xor edx, edx
mov eax, dword [esp + 0x50]
mov ecx, dword [ecx]
mov word [esp + 0x105], 0
mov byte [esp + 0x107], dl
mov eax, dword [eax]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x1c], ecx
inc eax
lea ecx, [esp + 0x138]
mov byte [esp + 0x104], al
call fcn.0040fca7
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x32c]
mov byte [esp + 0x368], 0x22
push ecx
cmp byte [eax + 0x39], 0
je 0x42344b
lea edx, [esp + 0xf8]
mov ecx, eax
call fcn.00421068
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x138]
add eax, 0x28
push eax
call fcn.0040fde5
jmp 0x423475
mov edx, dword [eax]
lea ecx, [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004217b4
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x138]
push eax
push dword [ecx]
mov ecx, dword [esp + 0x1c]
call fcn.0041c745
cmp byte [esp + 0x350], 0
jne 0x423721
cmp byte [esp + 0x105], 0
jne 0x423721
mov eax, dword [edi + 0x38]
mov edx, dword [esp + 0x54]
cmp byte [edx + eax], 0
jne 0x4234ba
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
add ecx, dword [eax + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
adc ecx, dword [eax + 0x24]
mov dword [esp + 0x18], ecx
jmp 0x42351d
mov eax, dword [edi + 0x44]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x100], eax
mov eax, dword [edi + 0x50]
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov dword [esp + 0xf4], ecx
or ecx, eax
mov dword [esp + 0xf8], eax
je 0x4234ec
xor eax, eax
inc eax
inc dword [esp + 0x40]
jmp 0x4234ee
xor eax, eax
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x104], al
mov byte [esp + 0x106], al
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x330]
push eax
lea eax, [esp + 0xfc]
push eax
call fcn.0041f9ee
mov byte [esp + 0x368], 0x21
push dword [esp + 0x138]
call fcn.00455704
mov eax, dword [esp + 0x58]
pop ecx
mov ecx, dword [esp + 0x68]
inc eax
push 4
pop edx
add ecx, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], ecx
cmp eax, dword [esp + 0x24]
jb 0x4233d5
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x38]
lea ecx, [ecx + 0x18]
call fcn.0040ed0d
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov eax, ecx
or eax, edx
je 0x4235bd
mov eax, dword [esp + 0x64]
cmp eax, edx
jb 0x4235bd
ja 0x42358d
cmp dword [esp + 0x6c], ecx
jb 0x4235bd
mov edi, dword [esp + 0x6c]
sub edi, ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x6c], edi
sbb eax, edx
mov dword [esp + 0x64], eax
push dword [esp + 0x64]
mov eax, dword [ecx]
push edi
push ecx
call dword [eax + 0xc]
mov edi, eax
test edi, edi
jne 0x423749
mov edi, dword [esp + 0x38]
mov byte [esp + 0x368], 0x20
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push 0
pop edx
cmp ecx, eax
jb 0x42317f
push esi
mov byte [esp + 0x36c], 0x1f
call fcn.00455704
pop ecx
push 0x14
pop eax
mov byte [esp + 0x368], al
push dword [esp + 0x94]
call fcn.00455704
pop ecx
lea ecx, [esp + 0x274]
mov byte [esp + 0x368], 0x13
call fcn.00417291
lea ecx, [esp + 0x174]
mov byte [esp + 0x368], 0xe
call fcn.00416ec7
mov eax, dword [esp + 0x70]
inc eax
mov dword [esp + 0x70], eax
cmp eax, dword [esp + 0xb8]
jae 0x4237a7
mov edi, dword [esp + 0xb4]
jmp 0x422567
mov dword [esp + 0x18], eax
jmp 0x4236e6
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x42368b
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
mov edx, dword [eax]
push 2
mov ecx, dword [ecx + 0x118]
push dword [ecx + ebx*4]
xor ecx, ecx
inc ecx
push ecx
push eax
call dword [edx + 0x14]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4236e6
mov dword [esp + 0x18], 0x80004005
jmp 0x4236e6
mov dword [esp + 0x18], ecx
jmp 0x4236e6
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x42368b
mov ecx, dword [eax]
push 2
push dword [esp + 0x30]
push 2
push eax
call dword [ecx + 0x14]
jmp 0x423683
mov dword [esp + 0x18], 0x80004005
mov byte [esp + 0x368], 0x1c
test esi, esi
je 0x4236d0
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [esp + 0x368], 0x17
push dword [esp + 0x7c]
call fcn.00455704
pop ecx
mov esi, dword [esp + 0x28]
mov byte [esp + 0x368], 0x16
test edi, edi
je 0x4236f8
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [esp + 0x368], 0x15
test esi, esi
je 0x42370a
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov edi, dword [esp + 0x18]
push 0x14
pop eax
mov byte [esp + 0x368], al
push dword [esp + 0x120]
jmp 0x42377f
mov byte [esp + 0x368], 0x21
push dword [esp + 0x138]
call fcn.00455704
pop ecx
mov edi, 0x80004005
jmp 0x423749
mov dword [esp + 0x18], 0x80004005
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x368], 0x20
test ecx, ecx
je 0x42375f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push esi
mov byte [esp + 0x36c], 0x1f
call fcn.00455704
pop ecx
push 0x14
pop eax
mov byte [esp + 0x368], al
push dword [esp + 0x94]
call fcn.00455704
pop ecx
lea ecx, [esp + 0x274]
mov byte [esp + 0x368], 0x13
call fcn.00417291
lea ecx, [esp + 0x174]
call fcn.00416ec7
jmp 0x4237de
mov ecx, dword [esp + 0x44]
call fcn.0042c367
mov edi, eax
test edi, edi
jne 0x4237de
mov ecx, dword [esp + 0x34]
call fcn.004201ef
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4237da
mov ecx, dword [eax]
xor edx, edx
push 7
push 0xffffffffffffffff
push edx
push eax
call dword [ecx + 0x10]
mov edi, eax
test edi, edi
jne 0x4237de
xor eax, eax
mov edi, eax
mov byte [esp + 0x368], 0xa
test ebx, ebx
je 0x4237f0
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ebx, dword [esp + 0x44]
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x368], 9
call fcn.00421637
push 8
pop eax
lea ecx, [esp + 0x14c]
mov byte [esp + 0x368], al
call fcn.00415e04
push 4
pop eax
mov byte [esp + 0x368], al
test ebx, ebx
je 0x423832
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ebx, dword [esp + 0xa0]
mov byte [esp + 0x368], 3
test ebx, ebx
je 0x423877
mov eax, dword [esp + 0xd0]
dec ebx
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x423873
push dword [esi + 0xc]
call fcn.00455704
pop ecx
push dword [esi]
call fcn.00455704
pop ecx
push esi
call fcn.00455704
mov eax, dword [esp + 0xd4]
pop ecx
test ebx, ebx
jne 0x42384c
push dword [esp + 0xd0]
call fcn.00455704
pop ecx
mov byte [esp + 0x368], 2
push dword [esp + 0xb4]
call fcn.00455704
xor eax, eax
inc eax
pop ecx
mov byte [esp + 0x368], al
push dword [esp + 0x78]
call fcn.00455704
pop ecx
xor eax, eax
mov byte [esp + 0x368], al
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x4238c7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [esp + 0x368], 0xffffffff
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x4238dd
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, edi
mov ecx, dword [esp + 0x360]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x348]
xor ecx, esp
call fcn.004550af
mov esp, ebp
pop ebp
ret 0x1c