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

Disassembly:
push 0xd0
mov eax, 0xac0554
call fcn.00abf27b
mov edi, ecx
mov dword [ebp - 0x18], edi
mov ecx, dword [ebp + 0x2c]
xor eax, eax
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x80], eax
mov byte [ecx], al
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov edx, dword [ecx + 0x30]
mov esi, dword [ecx + 8]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov ecx, dword [edx + ebx*4]
shl ecx, 3
add ecx, esi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x80]
push eax
mov ecx, dword [ecx + 0x38]
mov edx, dword [ecx + ebx*4]
mov esi, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp + 0x14]
sub esi, edx
mov dword [ebp - 0x20], esi
mov ecx, dword [ecx + 0x3c]
add ecx, edx
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x24]
call fcn.00411125
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
jne 0x40eb15
mov esi, dword [ebp + 0x14]
mov eax, dword [esi + 0x34]
movzx eax, byte [eax + ebx]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x44], eax
cmp eax, 0x20
jbe 0x40e108
mov edi, 0x80004001
jmp 0x40eb03
lea ecx, [ebp - 0xdc]
call fcn.0040d922
xor eax, eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov edx, ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x80]
call fcn.0040dc04
lea ecx, [ebp - 0xdc]
call fcn.00413749
test al, al
je 0x40e6cf
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x28]
mov byte [ebp + 0x1b], 1
movzx ecx, byte [eax + ebx]
mov eax, dword [esi + 0x2c]
add ecx, dword [eax + ebx*4]
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x40e190
cmp dword [edx + 4], ecx
jb 0x40e17f
ja 0x40e175
cmp dword [edx], eax
jbe 0x40e181
mov edi, 0x80004005
jmp 0x40eaec
cmp dword [edx], eax
jne 0x40e18c
mov byte [ebp + 0x1b], 1
cmp dword [edx + 4], ecx
je 0x40e190
mov byte [ebp + 0x1b], 0
cmp byte [edi], 0
je 0x40e1ab
lea edx, [edi + 4]
lea ecx, [ebp - 0xdc]
call fcn.0040dd66
test al, al
jne 0x40e351
lea esi, [edi + 0x58]
mov byte [edi], 0
mov ecx, dword [esi]
test ecx, ecx
je 0x40e1c0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [esi], 0
push 0x84
call fcn.00a9a4d4
mov edx, eax
pop ecx
mov dword [ebp - 0x64], edx
lea ecx, [edx + 8]
mov dword [edx + 4], vtable.NCoderMixer2::CMixer.0
call fcn.0040d922
xor eax, eax
mov ecx, esi
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], eax
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], eax
mov dword [edx + 0x58], eax
mov dword [edx + 0x5c], eax
mov byte [edx + 0x60], al
mov dword [edx + 0x64], eax
mov dword [edx + 0x68], eax
mov dword [edx], vtable.NCoderMixer2::CMixerMT.1.0
mov dword [edx + 4], vtable.NCoderMixer2::CMixerMT.0
mov dword [edx + 0x6c], eax
mov dword [edx + 0x70], eax
mov dword [edx + 0x74], eax
mov dword [edx + 0x78], eax
mov dword [edx + 0x7c], eax
mov dword [edx + 0x80], eax
push edx
mov dword [edi + 0x50], edx
call fcn.0040ed53
mov ecx, dword [edi + 0x50]
lea edx, [ebp - 0xdc]
push edx
lea eax, [ecx + 4]
neg ecx
sbb ecx, ecx
and ecx, eax
mov dword [edi + 0x54], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, eax
test edi, edi
jne 0x40eaec
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x44], eax
jbe 0x40e2d1
mov esi, dword [ebp - 0x80]
add esi, 0x10
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 2
lea edx, [ebp - 0x28]
push dword [esi - 0xc]
push dword [esi - 0x10]
call fcn.004156f8
mov edi, eax
test edi, edi
jne 0x40e28b
mov eax, dword [esi]
cmp eax, 1
jne 0x40e298
cmp dword [ebp - 0x28], edi
jne 0x40e2a3
mov edi, 0x80004001
lea ecx, [ebp - 0x28]
call fcn.0040eb30
jmp 0x40eaec
cmp dword [ebp - 0x24], 0
je 0x40e286
cmp dword [ebp - 0x1c], eax
jne 0x40e286
mov edi, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
push edx
mov ecx, dword [edi + 0x54]
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.0040eb30
mov eax, dword [ebp - 0x34]
add esi, 0x18
inc eax
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x44]
jae 0x40e2d4
xor eax, eax
jmp 0x40e25c
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0xdc]
lea esi, [edi + 4]
push eax
mov ecx, esi
call fcn.0040d982
add esi, 0x40
lea eax, [ebp - 0x9c]
cmp eax, esi
je 0x40e34b
mov edi, dword [ebp - 0x98]
cmp edi, dword [esi + 8]
jbe 0x40e32b
push dword [esi]
call fcn.00a9a321
xor eax, eax
xor ecx, ecx
mov dword [esi + 8], eax
mov dword [esi + 4], eax
mov dword [esi], eax
mov eax, edi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00a9a457
pop ecx
pop ecx
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], edi
test edi, edi
je 0x40e348
mov eax, edi
shl eax, 3
push eax
push dword [ebp - 0x9c]
push dword [esi]
call fcn.00a9c3f0
add esp, 0xc
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp + 0x14]
mov byte [edi], 1
mov ecx, dword [edi + 0x54]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov edi, eax
test edi, edi
jne 0x40eaec
mov edx, eax
mov ecx, dword [esi + 0x2c]
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x11], al
mov ecx, dword [ecx + ebx*4]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x48], esi
cmp dword [ebp - 0x44], eax
jbe 0x40e7a4
mov esi, dword [ebp - 0x80]
mov eax, ecx
shl eax, 3
add esi, 0xc
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x58], eax
mov ecx, dword [ebx + 0x54]
mov edi, dword [ebp + 0x4c]
push edx
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, dword [eax]
mov dword [ebp - 0x30], ebx
test ebx, ebx
jne 0x40e3cd
mov ebx, dword [eax + 4]
mov dword [ebp - 0x30], ebx
cmp byte [ebp - 0x11], 0
jne 0x40e46d
cmp byte [ebp + 0x40], 0
je 0x40e425
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
mov eax, dword [ebx]
push ecx
push 0xad0698
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40e417
push dword [ebp + 0x44]
mov ecx, dword [eax]
push eax
mov byte [ebp - 0x11], 1
call dword [ecx + 0xc]
mov edi, eax
test edi, edi
jne 0x40e89e
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp + 0x4c]
mov byte [ebp - 4], 5
test eax, eax
je 0x40e425
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 6
mov eax, dword [ebx]
push ecx
push 0xad0688
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40e45d
mov ecx, dword [eax]
push edi
push dword [ebp + 0x48]
mov byte [ebp - 0x11], 1
push eax
call dword [ecx + 0xc]
mov edi, eax
test edi, edi
jne 0x40e8a6
mov eax, dword [ebp - 0x10]
push 8
pop ecx
mov byte [ebp - 4], cl
test eax, eax
je 0x40e46d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 9
mov eax, dword [ebx]
push ecx
push 0xad0678
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40e4b0
push dword [esi]
mov ecx, dword [eax]
push dword [esi - 4]
push eax
call dword [ecx + 0xc]
mov edi, eax
cmp edi, 0x80070057
je 0x40e8ac
test edi, edi
jne 0x40e8b1
mov eax, dword [ebp - 0x10]
jmp 0x40e4b9
cmp dword [esi], 0
jne 0x40e8e8
mov byte [ebp - 4], 0xd
test eax, eax
je 0x40e4c7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xe
mov eax, dword [ebx]
push ecx
push 0xad0668
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40e5ab
mov ecx, dword [ebp + 0x34]
mov byte [ecx], 1
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x40e8c3
and dword [ebp - 0x2c], 0
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x2c]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0xc]
mov edi, eax
test edi, edi
jne 0x40e8b6
mov eax, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x3c]
mov ecx, ebx
mov byte [eax], 1
call fcn.0040d85b
xor eax, eax
mov esi, eax
cmp dword [ebp - 0x2c], eax
je 0x40e53d
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0040939b
mov esi, dword [ebx + 4]
xor eax, eax
lea edi, [esi + esi]
mov edx, eax
mov dword [ebp - 0x20], edx
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test edi, edi
je 0x40e561
push edi
call fcn.00a9a457
mov edx, eax
mov ebx, edi
pop ecx
mov dword [ebp - 0x20], edx
xor eax, eax
mov dword [ebp - 0x1c], ebx
mov ecx, eax
test esi, esi
je 0x40e57d
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax + ecx*2]
mov byte [edx + ecx*2], al
shr eax, 8
mov byte [edx + ecx*2 + 1], al
inc ecx
cmp ecx, esi
jb 0x40e567
mov eax, dword [ebp - 0x10]
push ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
lea ecx, [ebp - 0x20]
mov edi, eax
call fcn.0040d6de
test edi, edi
jne 0x40e8b6
lea ecx, [ebp - 0x2c]
call fcn.0040d733
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
mov byte [ebp - 4], 0x13
test eax, eax
je 0x40e5b9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov byte [ebp - 0x5c], al
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x14
mov eax, dword [ebx]
push ecx
push 0xad0658
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40e5f9
mov ecx, dword [eax]
mov bl, byte [ebp + 0x1b]
mov byte [ebp - 0x5c], bl
mov edx, dword [ecx + 0xc]
movzx ecx, bl
push ecx
push eax
call edx
mov edi, eax
test edi, edi
jne 0x40e8ce
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0x16
test eax, eax
je 0x40e607
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
xor eax, eax
mov ebx, dword [esi + 4]
mov edi, eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x84], edi
test ebx, ebx
je 0x40e646
xor ecx, ecx
mov eax, ebx
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00a9a457
mov edi, eax
xor eax, eax
pop ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x84], edi
mov byte [ebp - 4], 0x17
mov esi, eax
mov dword [ebp - 0x88], esi
test ebx, ebx
je 0x40e677
xor ecx, ecx
mov eax, ebx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00a9a457
mov esi, eax
xor eax, eax
pop ecx
mov dword [ebp - 0x88], esi
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x4c], eax
test ebx, ebx
je 0x40e73e
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x54], 0
mov ecx, eax
mov edx, dword [ebp - 0x3c]
jbe 0x40e6a5
mov edi, dword [ebp - 0x58]
cmp dword [edi + ecx*8], edx
mov edi, dword [ebp - 0x10]
je 0x40e6d9
inc ecx
cmp ecx, dword [ebp - 0x54]
jb 0x40e694
mov ecx, dword [ebp - 0x48]
mov ebx, eax
test ecx, ecx
je 0x40e6c1
mov edi, dword [ebp - 0x90]
cmp dword [edi + ebx*4], edx
mov edi, dword [ebp - 0x10]
je 0x40e6f7
inc ebx
cmp ebx, ecx
jb 0x40e6ae
push esi
call fcn.00a9a321
push edi
call fcn.00a9a321
pop ecx
pop ecx
mov edi, 0x80004001
jmp 0x40eaec
test ecx, ecx
js 0x40e6a5
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp + 0x14]
mov ecx, dword [edi + ecx*8 + 4]
add ecx, dword [ebp - 0x8c]
mov edx, dword [edx + 0x28]
shl ecx, 3
add ecx, edx
jmp 0x40e71a
test ebx, ebx
js 0x40e6c1
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x38]
mov edx, dword [ecx + ebx*8 + 8]
sub edx, dword [ecx + ebx*8]
mov ecx, dword [ecx + ebx*8 + 0xc]
sbb ecx, dword [edi + ebx*8 + 4]
mov ebx, dword [ebp - 0x30]
mov dword [ebx], edx
mov dword [ebx + 4], ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x4c]
mov edx, esi
mov edi, dword [ebp - 0x10]
push 8
mov dword [edx + ebx*4], ecx
mov edx, dword [ebp - 0x4c]
inc edx
pop ecx
add dword [ebp - 0x30], ecx
inc dword [ebp - 0x3c]
mov dword [ebp - 0x4c], edx
cmp edx, dword [ebp - 0x64]
jb 0x40e689
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x40e754
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0xb8]
jne 0x40e754
mov edx, ecx
jmp 0x40e75d
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x28]
add edx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x18]
push dword [ebp - 0x5c]
push esi
mov ecx, dword [ebx + 0x54]
push edx
push dword [ebp - 0x40]
mov eax, dword [ecx]
call dword [eax + 0x18]
push esi
call fcn.00a9a321
push edi
mov byte [ebp - 4], 1
call fcn.00a9a321
mov edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x34]
inc edx
pop ecx
pop ecx
push 8
pop eax
add dword [ebp - 0x50], eax
add esi, 0x18
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x34], esi
cmp edx, dword [ebp - 0x44]
jb 0x40e3b2
mov esi, dword [ebp - 0x48]
cmp dword [ebp + 0x20], 0
je 0x40e7bd
mov ecx, dword [ebx + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov al, byte [ebp + 0x1b]
xor al, 1
movzx eax, al
push eax
call edx
xor eax, eax
mov edx, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0x30], edx
mov dword [ebp - 0x24], edx
mov dword [ebp + 0x34], edx
mov dword [ebp - 0x20], edx
push 0x30
mov byte [ebp - 4], 0x19
call fcn.00a9a4d4
mov ebx, eax
pop ecx
mov dword [ebp + 0x14], ebx
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx], vtable.NArchive::N7z::CLockedInStream.0
mov dword [ebx + 8], eax
lea ecx, [ebx + 0x18]
mov byte [ebp - 4], 0x1b
call fcn.004088bd
mov byte [ebp - 4], 0x1c
mov eax, dword [ebx]
push ebx
mov dword [ebp + 0x38], ebx
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
cmp esi, 1
mov esi, dword [ebp + 8]
jbe 0x40e845
mov eax, dword [esi]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + 0x10]
lea eax, [ebx + 0x10]
push eax
mov eax, dword [ebp - 0x38]
push 0
add ecx, dword [eax]
mov eax, dword [eax + 4]
adc eax, dword [ebp + 0x10]
push eax
push ecx
push esi
call edx
mov edi, eax
test edi, edi
jne 0x40eada
push esi
lea ecx, [ebx + 8]
call fcn.0040ed53
mov ecx, dword [ebp - 0x48]
xor eax, eax
mov dword [ebp + 0x44], eax
mov edi, eax
test ecx, ecx
je 0x40e9e0
mov dword [ebp + 0x40], eax
mov ebx, dword [ebp - 0x38]
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 0x1f
add edx, dword [ebx + edi*8]
mov edi, dword [ebx + edi*8 + 4]
adc edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x30], edi
cmp ecx, 1
jne 0x40e8f3
mov ecx, dword [esi]
push eax
push eax
push edi
push edx
push esi
call dword [ecx + 0x10]
mov edi, eax
test edi, edi
jne 0x40e9d8
push esi
lea ecx, [ebp + 0x40]
call fcn.0040ed53
jmp 0x40e92f
push 4
pop eax
mov byte [ebp - 4], al
jmp 0x40e8d2
mov byte [ebp - 4], 7
jmp 0x40e8d2
mov edi, 0x80004001
mov eax, dword [ebp - 0x10]
jmp 0x40e8ed
lea ecx, [ebp - 0x2c]
call fcn.0040d733
mov eax, dword [ebp - 0x10]
jmp 0x40e8c8
mov edi, 0x80004001
mov byte [ebp - 4], 0x12
jmp 0x40e8d5
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x40eaec
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40eaec
mov edi, 0x80004001
mov byte [ebp - 4], 0xc
jmp 0x40e8d5
push 0x20
call fcn.00a9a4d4
mov edi, eax
xor eax, eax
pop ecx
push edi
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x3c], edi
mov dword [edi + 4], eax
mov dword [edi], vtable.NArchive::N7z::CLockedSequentialInStreamMT.0
mov dword [edi + 0x18], eax
call fcn.0040ed53
push ebx
lea ecx, [edi + 0x18]
call fcn.0040ed53
mov eax, dword [ebp + 0x34]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x30]
mov dword [edi + 8], ebx
mov dword [edi + 0x14], eax
push 0x28
call fcn.00a9a4d4
mov ebx, eax
xor eax, eax
mov dword [ebp + 0x34], ebx
pop ecx
lea ecx, [ebp - 0x24]
mov dword [ebx + 4], eax
mov dword [ebx], vtable.CLimitedSequentialInStream.0
mov dword [ebx + 8], eax
call fcn.00408b56
push 4
pop eax
push eax
call fcn.00a9a4d4
pop ecx
mov ecx, eax
mov dword [ebp + 0x34], ecx
mov eax, dword [ebp - 0x20]
push ebx
and dword [ecx], 0
lea edx, [eax + 1]
mov dword [ebp + 0x34], edx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x24]
mov dword [ebp + 0x30], edx
mov dword [edx + eax*4], ecx
call fcn.0040ed53
mov esi, dword [ebp + 0x40]
lea ecx, [ebx + 8]
push esi
call fcn.0040ed53
mov edi, dword [ebp + 0x44]
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + edi*8 + 8]
sub ecx, dword [edx + edi*8]
mov eax, dword [edx + edi*8 + 0xc]
sbb eax, dword [edx + edi*8 + 4]
mov dword [ebx + 0x14], eax
xor eax, eax
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], eax
mov byte [ebx + 0x20], al
mov byte [ebp - 4], 0x22
test esi, esi
je 0x40e9c1
mov eax, dword [esi]
push esi
call dword [eax + 8]
xor eax, eax
inc edi
mov byte [ebp - 4], 0x1d
mov ecx, dword [ebp - 0x48]
mov dword [ebp + 0x44], edi
cmp edi, ecx
jae 0x40e9dd
mov esi, dword [ebp + 8]
jmp 0x40e857
jmp 0x40eada
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x34]
mov esi, eax
mov dword [ebp + 0x40], esi
test edi, edi
je 0x40ea0a
xor ecx, ecx
mov eax, edi
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00a9a457
mov esi, eax
xor eax, eax
pop ecx
mov dword [ebp + 0x40], esi
test edi, edi
je 0x40ea2c
mov ebx, dword [ebp + 0x30]
mov edx, esi
push 4
sub ebx, esi
pop esi
mov ecx, dword [ebx + edx]
mov ecx, dword [ecx]
mov dword [edx], ecx
add edx, esi
sub edi, 1
jne 0x40ea18
mov esi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x40eace
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x24], 0
mov byte [ebp - 4], 0x24
je 0x40ea96
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x54]
push dword [ecx + 0x60]
call fcn.00413968
test al, al
jne 0x40ea94
push 0xc
call fcn.00a9a4d4
mov edi, eax
pop ecx
mov dword [ebp + 0x44], edi
and dword [edi + 4], 0
mov dword [edi], vtable.NArchive::N7z::CDecProgress.0
mov ecx, dword [ebp + 0x24]
mov byte [ebp - 4], 0x25
mov dword [edi + 8], ecx
push ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x24
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, edi
mov edi, dword [ebp + 0x20]
mov dword [ebp - 0x60], eax
mov dword [ebp + 0x14], eax
jmp 0x40ea96
xor eax, eax
push dword [ebp + 0x2c]
mov dword [ebp + 8], edi
test eax, eax
mov edi, dword [ebp - 0x18]
mov edi, dword [edi + 0x54]
mov ecx, dword [edi]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [ebp + 0x24]
cmovne ecx, eax
lea eax, [ebp + 8]
push ecx
push eax
push esi
mov ecx, edi
call edx
mov edi, eax
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x40ead3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40ead3
mov edi, 0x80004005
push esi
call fcn.00a9a321
pop ecx
mov byte [ebp - 4], 0x28
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
lea ecx, [ebp - 0x24]
call fcn.0040ec4e
push dword [ebp - 0x9c]
call fcn.00a9a321
pop ecx
lea ecx, [ebp - 0xdc]
call fcn.0040d953
lea ecx, [ebp - 0x80]
call fcn.0040eb8c
mov eax, edi
call fcn.00abf249
ret 0x48
push 0xb010f8
lea eax, [ebp + 0x40]
mov dword [ebp + 0x40], 0x1330368
push eax
call fcn.00a9e891
int3