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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x465405
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x479008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x68], 0
mov byte [eax], 0
mov eax, dword [edi + 0x30]
mov edx, dword [edi + 8]
lea ebx, [esi*4]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x64], 0
mov eax, dword [ebx + eax]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
lea eax, [edx + eax*8]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x2c], 0
mov edx, dword [ebx + ecx]
add eax, edx
mov ecx, dword [ebx + ecx + 4]
sub ecx, edx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x30], ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00442340
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x2c]
jne 0x43d64e
cmp dword [ebp - 0x64], 0x20
mov eax, dword [edi + 0x34]
movzx eax, byte [eax + esi]
mov dword [ebp - 0x50], eax
jbe 0x43c714
mov ebx, 0x80004001
jmp 0x43d630
lea ecx, [ebp - 0xb4]
call fcn.004025f0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov edx, ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x68]
call fcn.0043d940
lea ecx, [ebp - 0xb4]
call fcn.004442e0
test al, al
je 0x43cf7f
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x2c]
mov edx, dword [edi + 0x28]
mov byte [ebp - 0x11], 1
movzx eax, byte [eax + esi]
add eax, dword [ebx + ecx]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
test ecx, ecx
je 0x43c7a3
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp ecx, edx
jb 0x43c790
ja 0x43c786
cmp eax, esi
jbe 0x43c792
mov ebx, 0x80004005
jmp 0x43d5f1
cmp eax, esi
jne 0x43c79e
cmp ecx, edx
jne 0x43c79e
mov byte [ebp - 0x11], 1
jmp 0x43c7a3
xor al, al
mov byte [ebp - 0x11], al
mov ebx, dword [ebp - 0x18]
cmp byte [ebx], 0
je 0x43c89b
mov esi, dword [ebp - 0xb0]
cmp esi, dword [ebx + 8]
jne 0x43c89b
xor edx, edx
test esi, esi
je 0x43c7e3
mov edi, dword [ebx + 4]
mov ecx, dword [ebp - 0xb4]
sub edi, ecx
nop
mov eax, dword [ecx]
cmp eax, dword [edi + ecx]
jne 0x43c89b
inc edx
add ecx, 4
cmp edx, esi
jb 0x43c7d0
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0xa4]
cmp ebx, dword [eax + 0x14]
jne 0x43c894
xor esi, esi
test ebx, ebx
je 0x43c833
mov edi, dword [eax + 0x10]
mov ecx, dword [ebp - 0xa8]
lea edx, [edi + 4]
sub edi, ecx
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [ecx + edi]
jne 0x43c822
mov eax, dword [ecx + 4]
cmp eax, dword [edx]
jne 0x43c822
mov al, 1
jmp 0x43c824
xor al, al
test al, al
je 0x43c898
inc esi
add edx, 8
add ecx, 8
cmp esi, ebx
jb 0x43c810
mov edi, dword [ebp - 0x70]
xor edx, edx
mov ebx, dword [ebp - 0x18]
test edi, edi
je 0x43c85f
mov esi, dword [ebx + 0x44]
mov ecx, dword [ebp - 0x74]
sub esi, ecx
mov eax, dword [ecx]
cmp eax, dword [esi + ecx]
jne 0x43c89b
mov eax, dword [ecx + 4]
cmp eax, dword [esi + ecx + 4]
jne 0x43c89b
inc edx
add ecx, 8
cmp edx, edi
jb 0x43c847
mov esi, dword [ebp - 0x98]
cmp esi, dword [ebx + 0x20]
jne 0x43c89b
xor edx, edx
test esi, esi
je 0x43cab7
mov edi, dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x9c]
sub edi, ecx
nop
mov eax, dword [ecx]
cmp eax, dword [edi + ecx]
jne 0x43c89b
inc edx
add ecx, 4
cmp edx, esi
jb 0x43c880
jmp 0x43cab7
mov ebx, eax
jmp 0x43c89b
mov ebx, dword [ebp - 0x18]
mov byte [ebx], 0
mov ecx, dword [ebx + 0x58]
test ecx, ecx
je 0x43c8b2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx + 0x58], 0
push 0x84
call fcn.0041c058
mov esi, eax
add esp, 4
mov dword [ebp + 0x18], esi
lea ecx, [esi + 8]
mov dword [esi + 4], vtable.NCoderMixer2::CMixer.0
call fcn.004025f0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov byte [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi], vtable.NCoderMixer2::CMixerMT.1.0
mov dword [esi + 4], vtable.NCoderMixer2::CMixerMT.0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x80], 0
mov dword [ebx + 0x50], esi
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx + 0x58]
test ecx, ecx
je 0x43c95f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx + 0x58], esi
lea edx, [ebp - 0xb4]
mov ecx, dword [ebx + 0x50]
push edx
lea eax, [ecx + 4]
neg ecx
sbb ecx, ecx
and ecx, eax
mov dword [ebx + 0x54], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, eax
test ebx, ebx
jne 0x43d5f1
xor edi, edi
cmp dword [ebp - 0x64], edi
jbe 0x43ca37
mov esi, dword [ebp - 0x68]
add esi, 0x10
nop dword [eax + eax]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov byte [ebp - 4], 6
lea edx, [ebp - 0x38]
push dword [esi - 0xc]
push dword [esi - 0x10]
call fcn.004460a0
mov ecx, dword [ebp - 0x38]
mov ebx, eax
mov edx, dword [ebp - 0x34]
test ebx, ebx
jne 0x43c9dc
mov eax, dword [esi]
cmp eax, 1
jne 0x43ca04
test ecx, ecx
jne 0x43ca0d
mov ebx, 0x80004001
mov byte [ebp - 4], 9
test edx, edx
je 0x43c9ed
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [ebp - 0x38]
mov byte [ebp - 4], 0xa
test ecx, ecx
je 0x43d5f1
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
jmp 0x43d5f1
test edx, edx
je 0x43c9d7
cmp dword [ebp - 0x2c], eax
jne 0x43c9d7
mov ebx, dword [ebp - 0x18]
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebx + 0x54]
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 2
call fcn.00402cd0
inc edi
add esi, 0x18
cmp edi, dword [ebp - 0x64]
jb 0x43c9a0
jmp 0x43ca3a
mov ebx, dword [ebp - 0x18]
lea eax, [ebp - 0xb4]
lea esi, [ebx + 4]
push eax
mov ecx, esi
call fcn.00402660
add esi, 0x40
lea eax, [ebp - 0x74]
cmp eax, esi
je 0x43cab4
mov edi, dword [ebp - 0x70]
cmp edi, dword [esi + 8]
jbe 0x43ca98
push dword [esi]
call fcn.0041bebc
xor ecx, ecx
mov dword [esi + 8], 0
mov eax, edi
mov dword [esi + 4], 0
mov edx, 8
mov dword [esi], 0
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041bfdb
add esp, 8
mov dword [esi], eax
mov dword [esi + 8], edi
mov dword [esi + 4], edi
test edi, edi
je 0x43cab4
lea eax, [edi*8]
push eax
push dword [ebp - 0x74]
push dword [esi]
call fcn.0041f8c0
add esp, 0xc
mov byte [ebx], 1
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x18], ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
cmp eax, method.NCoderMixer2::CMixerMT.virtual_20
jne 0x43d663
xor edi, edi
cmp dword [ecx + 0x6c], edi
jbe 0x43cbad
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
nop
mov eax, dword [ecx + 0x68]
mov esi, dword [eax + edi*4]
mov eax, dword [esi]
test eax, eax
je 0x43caf5
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x43cb05
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esi], eax
test eax, eax
je 0x43cb0d
xor ebx, ebx
jmp 0x43cb26
call ebx
test eax, eax
mov ebx, 1
cmovne ebx, eax
test ebx, ebx
jle 0x43cb28
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
jne 0x43cbaf
mov eax, dword [esi + 4]
test eax, eax
je 0x43cb61
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x43cb58
call ebx
test eax, eax
mov ecx, 1
cmovne ecx, eax
test ecx, ecx
jne 0x43cb7e
jmp 0x43cb67
mov dword [esi + 4], 0
jmp 0x43cb67
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
push 3
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov dword [esi + 4], eax
test eax, eax
jne 0x43cb7e
call ebx
mov ecx, dword [ebp + 0x18]
inc edi
mov word [esi + 8], 0x100
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
cmp edi, dword [ecx + 0x6c]
jb 0x43cae0
xor ebx, ebx
test ebx, ebx
jne 0x43d5f1
mov eax, dword [ebp + 0x14]
xor dl, dl
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x44], ebx
mov byte [ebp + 0x1b], dl
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x3c], ebx
mov eax, dword [eax + ecx]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x64], ebx
jbe 0x43d216
nop word [eax + eax]
mov ecx, dword [ebp - 0x68]
lea eax, [ebx + ebx*2]
lea edi, [ecx + eax*8]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edi
mov ecx, dword [ecx + 0x54]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
cmp eax, method.NCoderMixer2::CMixerMT.virtual_12
jne 0x43d66c
mov eax, dword [ecx + 0x74]
mov eax, dword [eax + ebx*4]
add eax, 0x18
mov ebx, dword [eax]
mov dword [ebp - 0x1c], ebx
test ebx, ebx
jne 0x43cc1a
mov ebx, dword [eax + 4]
mov dword [ebp - 0x1c], ebx
test dl, dl
jne 0x43ccbf
cmp byte [ebp + 0x40], dl
je 0x43cc70
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xd
mov eax, dword [ebx]
push ecx
push 0x46d6ac
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x43cc62
mov ecx, dword [eax]
mov byte [ebp + 0x1b], 1
cmp ecx, vtable.NCompress::NLzma2::CDecoder.1.0
jne 0x43d677
mov edx, dword [ebp + 0x44]
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0x10
test eax, eax
je 0x43cc70
push eax
mov eax, dword [eax]
call dword [eax + 8]
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x11
mov eax, dword [ebx]
push ecx
push 0x46d69c
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x43ccb1
mov ecx, dword [eax]
mov byte [ebp + 0x1b], 1
cmp ecx, vtable.NCompress::NLzma2::CDecoder.0
jne 0x43d690
mov edx, dword [ebp + 0x48]
mov dword [eax + 0x30], edx
mov edx, dword [ebp + 0x4c]
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0x14
test eax, eax
je 0x43ccbf
push eax
mov eax, dword [eax]
call dword [eax + 8]
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x15
mov eax, dword [ebx]
push ecx
push 0x46d68c
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
mov edx, dword [edi + 0xc]
test eax, eax
je 0x43cd1f
mov ecx, dword [eax]
mov esi, dword [edi + 8]
push edx
push esi
mov ecx, dword [ecx + 0xc]
cmp ecx, method.CFilterCoder.virtual_12
jne 0x43d6ac
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov ebx, eax
cmp ebx, 0x80070057
je 0x43d166
test ebx, ebx
jne 0x43d16b
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
jmp 0x43cd27
test edx, edx
jne 0x43d1fa
mov byte [ebp - 4], 0x1c
test eax, eax
je 0x43cd35
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x1d
mov eax, dword [ebx]
push ecx
push 0x46d67c
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x43ce5f
mov ecx, dword [ebp + 0x34]
mov byte [ecx], 1
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x43d1c4
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 0x20
lea edx, [ebp - 0x20]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x43d18c
mov eax, dword [ebp + 0x38]
mov esi, dword [ebp + 0x3c]
mov ecx, esi
mov byte [eax], 1
call fcn.004024f0
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x43cdab
push eax
mov ecx, esi
call fcn.004357b0
mov ebx, dword [esi + 4]
lea eax, [ebx + ebx]
xor esi, esi
xor edi, edi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], edi
test eax, eax
je 0x43cdd0
push eax
call fcn.0041bfdb
mov esi, eax
lea edi, [ebx + ebx]
add esp, 4
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], edi
xor ecx, ecx
mov byte [ebp - 4], 0x23
test ebx, ebx
je 0x43cdf6
nop word [eax + eax]
mov eax, dword [ebp - 0x20]
movzx eax, word [eax + ecx*2]
mov byte [esi + ecx*2], al
shr eax, 8
mov byte [esi + ecx*2 + 1], al
inc ecx
cmp ecx, ebx
jb 0x43cde0
mov eax, dword [ebp - 0x10]
push edi
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x43d173
test edi, edi
je 0x43ce1a
push edi
push eax
push esi
call fcn.0041db90
add esp, 0xc
push esi
call fcn.0041bebc
mov eax, dword [ebp - 0x20]
add esp, 4
test eax, eax
je 0x43ce4f
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
add eax, eax
push eax
push 0
push dword [ebp - 0x20]
call fcn.0041db90
add esp, 0xc
push dword [ebp - 0x20]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor eax, eax
mov dword [ebp - 0x20], eax
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
mov byte [ebp - 4], 0x26
test eax, eax
je 0x43ce6d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 0x48], 0
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x27
mov eax, dword [ebx]
push ecx
push 0x46d66c
push ebx
call dword [eax]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x43ceae
mov cl, byte [ebp - 0x11]
mov edx, dword [eax]
mov byte [ebp - 0x48], cl
movzx ecx, cl
push ecx
push eax
call dword [edx + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x43d1e0
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 0x2a
test eax, eax
je 0x43cebc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov ebx, dword [edi + 0x10]
xor edi, edi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], edi
test ebx, ebx
je 0x43ceef
xor ecx, ecx
mov eax, ebx
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041bfdb
mov edi, eax
add esp, 4
mov dword [ebp - 0x1c], edi
xor esi, esi
mov byte [ebp - 4], 0x2b
mov dword [ebp - 0x4c], esi
test ebx, ebx
je 0x43cf1c
xor ecx, ecx
mov eax, ebx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041bfdb
mov esi, eax
add esp, 4
mov dword [ebp - 0x4c], esi
xor ebx, ebx
mov byte [ebp - 4], 0x2c
cmp dword [ebp - 0x24], ebx
jbe 0x43cfe3
mov ecx, dword [ebp - 0x44]
mov edx, edi
mov dword [ebp - 0x10], edi
xor eax, eax
cmp dword [ebp - 0x5c], eax
jbe 0x43cf51
nop word [eax + eax]
mov edi, dword [ebp - 0x60]
cmp dword [edi + eax*8], ecx
mov edi, dword [ebp - 0x1c]
je 0x43cf89
inc eax
cmp eax, dword [ebp - 0x5c]
jb 0x43cf40
mov eax, dword [ebp - 0x54]
xor edx, edx
test eax, eax
je 0x43cf70
nop word [eax + eax]
mov edi, dword [ebp - 0x58]
cmp dword [edi + edx*4], ecx
mov edi, dword [ebp - 0x1c]
je 0x43cfa5
inc edx
cmp edx, eax
jb 0x43cf60
push esi
call fcn.0041bebc
push edi
call fcn.0041bebc
add esp, 8
mov ebx, 0x80004001
jmp 0x43d5f1
test eax, eax
js 0x43cf51
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp + 0x14]
mov eax, dword [edi + eax*8 + 4]
mov ecx, dword [ecx + 0x28]
add eax, dword [ebp - 0x40]
lea eax, [ecx + eax*8]
mov dword [esi + ebx*4], eax
jmp 0x43cfc9
test edx, edx
js 0x43cf70
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x28]
mov ecx, dword [eax + edx*8 + 8]
sub ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 0xc]
sbb eax, dword [edi + edx*8 + 4]
mov edx, dword [ebp - 0x10]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [esi + ebx*4], edx
mov ecx, dword [ebp - 0x44]
inc ebx
mov edi, dword [ebp - 0x1c]
add edx, 8
inc ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x44], ecx
cmp ebx, dword [ebp - 0x24]
jb 0x43cf33
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x3c]
test eax, eax
je 0x43cff9
cmp ebx, dword [ebp - 0x90]
jne 0x43cff9
mov edx, eax
jmp 0x43d007
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 0x40]
add eax, ebx
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x54]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
cmp eax, method.NCoderMixer2::CMixerMT.virtual_24
jne 0x43d6b4
mov eax, dword [ecx + 0x74]
mov ebx, dword [eax + ebx*4]
mov al, byte [ebp - 0x48]
mov dword [ebp - 0x10], ebx
mov byte [ebx + 0x24], al
test edx, edx
je 0x43d042
mov eax, dword [edx]
lea ecx, [ebx + 0x28]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov dword [ebx + 0x30], ecx
jmp 0x43d057
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
push dword [ebx + 0x20]
lea ecx, [ebx + 0x34]
call fcn.00402ec0
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x24], eax
mov dword [ebx + 0x44], 0
cmp eax, dword [ebx + 0x48]
jbe 0x43d0ba
cmp eax, 0x7fffffff
ja 0x43d6c1
push dword [ebx + 0x40]
call fcn.0041bebc
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov edx, 4
mov dword [ebx + 0x40], 0
mul edx
mov dword [ebx + 0x48], 0
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041bfdb
mov dword [ebx + 0x40], eax
add esp, 8
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x48], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebx + 0x44], eax
xor ebx, ebx
cmp dword [ecx + 0x20], ebx
jbe 0x43d12c
lea edi, [ecx + 0x34]
nop word [eax + eax]
test esi, esi
je 0x43d108
mov eax, dword [esi + ebx*4]
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x43d108
mov ecx, dword [edi]
lea edx, [ebx*8]
mov eax, dword [eax]
mov dword [edx + ecx], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
mov dword [edx + ecx + 4], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [edi]
add ecx, edx
mov eax, dword [eax + 0x40]
mov dword [eax + ebx*4], ecx
mov ecx, dword [ebp - 0x10]
jmp 0x43d123
mov eax, dword [edi]
mov dword [eax + ebx*8], 0
mov dword [eax + ebx*8 + 4], 0
mov eax, dword [ecx + 0x40]
mov dword [eax + ebx*4], 0
inc ebx
cmp ebx, dword [ecx + 0x20]
jb 0x43d0d0
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x3c]
push esi
call fcn.0041bebc
push edi
mov byte [ebp - 4], 2
call fcn.0041bebc
inc ebx
add esp, 8
mov dword [ebp - 0x3c], ebx
cmp ebx, dword [ebp - 0x64]
jae 0x43d216
mov dl, byte [ebp + 0x1b]
jmp 0x43cbe0
mov byte [ebp - 4], 0xe
jmp 0x43d1e4
mov byte [ebp - 4], 0x12
jmp 0x43d1e4
mov ebx, 0x80004001
mov eax, dword [ebp - 0x10]
jmp 0x43d1ff
test edi, edi
je 0x43d183
push edi
push 0
push esi
call fcn.0041db90
add esp, 0xc
push esi
call fcn.0041bebc
add esp, 4
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x43d1b8
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
add eax, eax
push eax
push 0
push dword [ebp - 0x20]
call fcn.0041db90
add esp, 0xc
push dword [ebp - 0x20]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor eax, eax
mov dword [ebp - 0x20], eax
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x10]
jmp 0x43d1c9
mov ebx, 0x80004001
mov byte [ebp - 4], 0x24
test eax, eax
je 0x43d5f1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x43d5f1
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x43d5f1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x43d5f1
mov ebx, 0x80004001
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x43d5f1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x43d5f1
cmp dword [ebp + 0x20], 0
je 0x43d2cf
mov eax, dword [ebp - 0x18]
mov dl, byte [ebp - 0x11]
xor dl, 1
mov byte [ebp + 0x40], dl
mov ecx, dword [eax + 0x54]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
cmp eax, method.NCoderMixer2::CMixerMT.virtual_16
jne 0x43d6eb
mov edi, dword [ecx + 0x28]
test dl, dl
jne 0x43d2cc
mov eax, dword [ecx + 0x74]
lea edx, [edi*4]
mov eax, dword [edx + eax]
cmp dword [eax + 0x20], 1
jne 0x43d2cc
mov ebx, dword [ecx + 0x44]
cmp byte [ebx + edi], 0
je 0x43d2cc
mov eax, dword [ecx + 0x2c]
mov esi, dword [edx + eax]
xor eax, eax
cmp dword [ecx + 0x20], eax
jbe 0x43d289
mov edx, dword [ecx + 0x1c]
cmp dword [edx], esi
je 0x43d285
inc eax
add edx, 4
cmp eax, dword [ecx + 0x20]
jb 0x43d276
jmp 0x43d289
test eax, eax
jns 0x43d2cc
xor edx, edx
cmp dword [ecx + 0x14], edx
jbe 0x43d6d6
mov eax, dword [ecx + 0x10]
cmp dword [eax], esi
je 0x43d2aa
inc edx
add eax, 8
cmp edx, dword [ecx + 0x14]
jae 0x43d6d6
jmp 0x43d297
test edx, edx
js 0x43d6d6
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + edx*8 + 4]
mov eax, dword [ecx + 0x74]
lea edx, [edi*4]
mov eax, dword [edx + eax]
cmp dword [eax + 0x20], 1
je 0x43d260
mov dword [ecx + 0x60], edi
xor eax, eax
xor ebx, ebx
mov dword [ebp + 0x40], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], eax
push 0x30
mov byte [ebp - 4], 0x2e
call fcn.0041c058
mov edi, eax
add esp, 4
mov dword [ebp + 0x18], edi
mov dword [edi + 4], ebx
mov dword [edi], vtable.NArchive::N7z::CLockedInStream.0
mov dword [edi + 8], ebx
lea ecx, [edi + 0x18]
mov byte [ebp - 4], 0x30
call fcn.00433400
mov byte [ebp - 4], 0x2e
mov eax, dword [edi]
push edi
mov dword [ebp + 0x38], edi
call dword [eax + 4]
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 8]
cmp ecx, 1
jbe 0x43d366
mov edx, dword [esi]
lea eax, [edi + 0x10]
push eax
mov eax, dword [ebp - 0x28]
push ebx
mov ecx, dword [eax]
add ecx, dword [ebp + 0xc]
mov eax, dword [eax + 4]
adc eax, dword [ebp + 0x10]
push eax
push ecx
push esi
call dword [edx + 0x10]
mov ebx, eax
test ebx, ebx
jne 0x43d5df
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x43d35e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x54]
xor ebx, ebx
mov dword [edi + 8], esi
xor eax, eax
mov dword [ebp + 0x1c], eax
test ecx, ecx
je 0x43d4f5
mov dword [ebp + 0x14], 0
mov edx, dword [ebp - 0x28]
shl eax, 3
mov byte [ebp - 4], 0x34
mov dword [ebp + 0x34], eax
mov ebx, dword [eax + edx]
add ebx, dword [ebp + 0xc]
mov eax, dword [eax + edx + 4]
adc eax, dword [ebp + 0x10]
mov dword [ebp + 0x40], eax
cmp ecx, 1
jne 0x43d3be
push eax
push ebx
mov ecx, esi
call fcn.004023c0
mov ebx, eax
test ebx, ebx
jne 0x43d4f0
test esi, esi
je 0x43d3b9
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov dword [ebp + 0x14], esi
jmp 0x43d40c
push 0x20
call fcn.0041c058
mov esi, eax
add esp, 4
mov dword [ebp + 0x3c], esi
mov dword [esi + 4], 0
mov dword [esi], vtable.NArchive::N7z::CLockedSequentialInStreamMT.0
mov dword [esi + 0x18], 0
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [edi]
push edi
mov dword [ebp + 0x14], esi
call dword [eax + 4]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x43d3fd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp + 0x40]
mov dword [esi + 0x18], edi
mov dword [esi + 8], edi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], eax
push 0x28
call fcn.0041c058
mov edi, eax
lea ecx, [ebp - 0x34]
add esp, 4
mov dword [ebp + 0x30], edi
mov dword [edi + 4], 0
mov dword [edi], vtable.CLimitedSequentialInStream.0
mov dword [edi + 8], 0
call fcn.00401770
push 4
call fcn.0041c058
mov edx, dword [ebp - 0x34]
mov ecx, eax
mov eax, dword [ebp - 0x30]
add esp, 4
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x40], edx
mov dword [ecx], 0
lea ebx, [eax + 1]
mov dword [edx + eax*4], ecx
mov eax, dword [edi]
push edi
mov dword [ebp - 0x30], ebx
call dword [eax + 4]
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax]
test ecx, ecx
je 0x43d476
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp + 0x44]
mov dword [eax], edi
test esi, esi
je 0x43d482
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x43d48f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov edx, dword [ebp + 0x34]
mov ecx, dword [ebp - 0x28]
mov dword [edi + 8], esi
mov edi, dword [ebp - 0x28]
mov eax, dword [edx + ecx + 8]
sub eax, dword [edx + ecx]
mov ecx, dword [edx + ecx + 0xc]
sbb ecx, dword [edx + edi + 4]
mov edi, dword [ebp + 0x30]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov byte [edi + 0x20], 0
mov byte [ebp - 4], 0x38
test esi, esi
je 0x43d4d3
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp + 0x1c]
inc eax
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x54]
mov dword [ebp + 0x1c], eax
cmp eax, ecx
jae 0x43d4f5
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
jmp 0x43d373
jmp 0x43d5df
xor edi, edi
mov dword [ebp + 0x14], edi
test ebx, ebx
je 0x43d51e
xor ecx, ecx
mov eax, ebx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041bfdb
mov edi, eax
add esp, 4
mov dword [ebp + 0x14], edi
test ebx, ebx
je 0x43d543
sub dword [ebp + 0x40], edi
mov ecx, edi
mov edi, dword [ebp + 0x40]
nop word [eax + eax]
mov eax, dword [edi + ecx]
lea ecx, [ecx + 4]
mov eax, dword [eax]
mov dword [ecx - 4], eax
sub ebx, 1
jne 0x43d530
mov edi, dword [ebp + 0x14]
cmp dword [ebp + 0x20], 0
je 0x43d5ce
xor esi, esi
mov dword [ebp + 0x40], esi
mov ebx, dword [ebp + 0x24]
mov byte [ebp - 4], 0x3a
test ebx, ebx
je 0x43d59d
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x54]
push dword [ecx + 0x60]
call fcn.00444570
test al, al
jne 0x43d59d
push 0xc
call fcn.0041c058
mov esi, eax
add esp, 4
mov dword [ebp + 0x44], esi
mov dword [esi + 4], 0
mov dword [esi], vtable.NArchive::N7z::CDecProgress.0
mov dword [esi + 8], ebx
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov dword [ebp + 0x40], esi
mov eax, dword [ebp + 0x20]
test esi, esi
push dword [ebp + 0x2c]
mov dword [ebp + 8], eax
cmovne ebx, esi
mov eax, dword [ebp - 0x18]
push ebx
mov ecx, dword [eax + 0x54]
lea eax, [ebp + 8]
push eax
push edi
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ebx, eax
mov byte [ebp - 4], 0x3b
test esi, esi
je 0x43d5d3
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x43d5d3
mov ebx, 0x80004005
push edi
call fcn.0041bebc
mov edi, dword [ebp + 0x18]
add esp, 4
mov byte [ebp - 4], 0x3d
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x34]
call fcn.00402e40
push dword [ebp - 0x74]
call fcn.0041bebc
push dword [ebp - 0x80]
call fcn.0041bebc
push dword [ebp - 0x8c]
call fcn.0041bebc
push dword [ebp - 0x9c]
call fcn.0041bebc
push dword [ebp - 0xa8]
call fcn.0041bebc
push dword [ebp - 0xb4]
call fcn.0041bebc
add esp, 0x18
lea ecx, [ebp - 0x68]
call fcn.00402c50
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x48
push 0x473048
lea eax, [ebp + 0x40]
mov dword [ebp + 0x40], 0x1330368
push eax
call fcn.0041db1a
call eax
mov ebx, eax
jmp 0x43cbaf
push ebx
call eax
mov dl, byte [ebp + 0x1b]
jmp 0x43cc0b
push dword [ebp + 0x44]
push eax
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x43d157
mov ebx, dword [ebp - 0x1c]
jmp 0x43cc5f
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push eax
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x43d160
mov ebx, dword [ebp - 0x1c]
jmp 0x43ccae
push eax
call ecx
jmp 0x43cd01
push dword [ebp - 0x48]
push esi
push edx
push ebx
call eax
jmp 0x43d12f
push 0x473048
lea eax, [ebp + 0x40]
mov dword [ebp + 0x40], 0x7e5
push eax
call fcn.0041db1a
push 0x473048
lea eax, [ebp + 0x40]
mov dword [ebp + 0x40], 0x13377c5
push eax
call fcn.0041db1a
push dword [ebp + 0x40]
call eax
jmp 0x43d2cf