Function at 0x486f20
Capabilities:
Create thread
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ada72
mov eax, dword fs:[0]
push eax
sub esp, 0x580
mov eax, dword [0x5fa040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x100], ecx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x4c], esi
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov eax, ecx
or eax, edx
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x16c], edx
jne 0x486f9b
mov dword [ebp - 0x170], 1
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0xc0], 0
mov ecx, dword [ebp - 0xbc]
lea edx, [ebp - 0xc0]
mov dword [ebp - 4], 0
push edx
push 0x5c1fe4
mov eax, dword [ecx]
push ecx
mov eax, dword [eax]
call eax
mov dword [ebp - 0x108], 0
mov ecx, dword [ebp - 0xbc]
lea edx, [ebp - 0x108]
mov byte [ebp - 4], 1
push edx
push 0x5c1fa4
mov eax, dword [ecx]
push ecx
mov eax, dword [eax]
call eax
mov dword [ebp - 0x104], 0
mov dword [ebp - 0xb8], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xb8]
mov eax, dword [esi]
push ecx
push 0x5c1ea4
push esi
mov eax, dword [eax]
call eax
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x48702b
mov esi, 0x80004001
jmp 0x48718c
test edi, edi
je 0x487046
mov eax, dword [ebp - 0x6c]
cmp byte [eax + 0x22], 0
jne 0x487046
mov esi, dword [edi + 0x100]
mov eax, dword [edi + 0x104]
jmp 0x48705d
xorps xmm0, xmm0
movlpd qword [ebp - 0x9c], xmm0
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x4c]
lea edx, [ebp - 0x104]
mov dword [ebp - 0x58], eax
push edx
push 0x5c1e94
mov eax, dword [ecx]
push ecx
mov eax, dword [eax]
call eax
cmp dword [ebp - 0x104], 0
je 0x487140
mov eax, dword [ebp - 0xb8]
lea edx, [ebp - 0x1b4]
push edx
xorps xmm0, xmm0
push 1
movlpd qword [ebp - 0x1b4], xmm0
mov ecx, dword [eax]
push 0
push 0
push eax
mov ecx, dword [ecx + 0x10]
call ecx
mov ecx, eax
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x487183
cmp dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x50], ecx
je 0x4870f4
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1b0]
add edx, esi
mov dword [ebp - 0x5c], edx
adc ecx, dword [ebp - 0x58]
add dword [ebp - 0x5c], 0x20
mov dword [ebp - 0x90], ecx
adc dword [ebp - 0x90], 0
jmp 0x487128
xorps xmm0, xmm0
movlpd qword [ebp - 0x9c], xmm0
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x9c]
movlpd qword [ebp - 0x13c], xmm0
mov edx, dword [ebp - 0x13c]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x138]
push dword [ebp - 0x90]
push dword [ebp - 0x5c]
push ecx
push edx
push eax
call dword [ebp - 0x50]
mov ecx, eax
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x487183
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x48715a
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
xor eax, eax
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0x58]
mov ecx, esi
or ecx, edx
je 0x4871ab
mov ecx, dword [ebp - 0x100]
push 0
push edx
mov edx, dword [ebp - 0x4c]
push esi
push 0
push 0
call fcn.00485000
add esp, 0x14
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4871a5
mov eax, dword [ebp - 0xb8]
mov esi, dword [ebp - 0x34]
mov byte [ebp - 4], 0x10
test eax, eax
je 0x48a77a
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
jmp 0x48a77a
mov eax, dword [ebp - 0xb8]
mov byte [ebp - 4], 0x14
test eax, eax
je 0x4871bb
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
xor esi, esi
mov dword [ebp - 0x44], esi
xorps xmm0, xmm0
mov dword [ebp - 0x128], esi
xor al, al
movlpd qword [ebp - 0x9c], xmm0
mov byte [ebp - 0xa1], al
movlpd qword [ebp - 0x13c], xmm0
mov byte [ebp - 0x74], al
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x120], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], esi
mov ecx, dword [ebp - 0x6c]
mov byte [ebp - 4], 0x17
mov byte [ebp - 0xa2], al
mov al, byte [ecx + 8]
mov byte [ebp - 0x89], al
test al, al
je 0x4872c5
mov eax, dword [ecx]
xor edx, edx
cmp dword [eax + 4], edx
jbe 0x4872c5
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
mov eax, dword [eax]
cmp dword [eax + 0x14], 0
mov ecx, dword [eax + 0x10]
ja 0x4872a1
jb 0x487244
cmp ecx, 0xffffffff
ja 0x4872a1
cmp ecx, 0x303011b
ja 0x487277
je 0x4872be
cmp ecx, 0x20302
ja 0x487267
je 0x4872be
sub ecx, 3
je 0x4872be
sub ecx, 7
je 0x4872be
sub ecx, 1
jmp 0x48729f
cmp ecx, 0x20304
je 0x4872be
cmp ecx, 0x3030103
jmp 0x48729f
cmp ecx, 0x3030501
ja 0x487291
je 0x4872be
cmp ecx, 0x3030205
je 0x4872be
cmp ecx, 0x3030401
jmp 0x48729f
cmp ecx, 0x3030701
je 0x4872be
cmp ecx, 0x3030805
je 0x4872be
mov edi, dword [ebp - 0x6c]
inc edx
mov eax, dword [ebp - 0x80]
add eax, 4
mov dword [ebp - 0x80], eax
mov ecx, dword [edi]
mov edi, dword [ebp - 0x40]
cmp edx, dword [ecx + 4]
jb 0x487232
jmp 0x4872c5
mov byte [ebp - 0x89], 0
test edi, edi
je 0x487767
mov esi, dword [edi + 0x5c]
push 0
call fcn.00588148
mov ecx, 4
mov dword [ebp - 0x44], 0
mov eax, esi
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
mov esi, eax
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], esi
cmp dword [edi + 0x5c], eax
jbe 0x487311
mov dword [esi + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0x5c]
jb 0x487304
mov edx, dword [ebp - 0x64]
xor ecx, ecx
cmp dword [edx + 4], ecx
jbe 0x487335
nop dword [eax + eax]
mov eax, dword [edx]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x48732f
mov dword [esi + eax*4], ecx
inc ecx
cmp ecx, dword [edx + 4]
jb 0x487320
xor edx, edx
mov dword [ebp - 0x68], edx
cmp dword [edi + 4], edx
jbe 0x487767
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x78], eax
mov eax, dword [edi + 0x24]
xorps xmm0, xmm0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0x5c], 0
movlpd qword [ebp - 0x9c], xmm0
mov ecx, dword [eax + edx*4]
mov eax, dword [edi + 0x130]
mov dword [ebp - 0x3c], ecx
mov edx, dword [eax + edx*4]
test ecx, ecx
je 0x487746
mov ecx, dword [ebp - 0x98]
mov eax, edx
shl eax, 4
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x70], ecx
cmp edx, dword [edi + 0x5c]
jae 0x487758
mov ecx, dword [edi + 0x58]
add ecx, eax
cmp byte [ecx + 0xc], 0
je 0x487412
mov edi, dword [esi + edx*4]
inc dword [ebp - 0xc4]
test edi, edi
mov dword [ebp - 0x50], edi
mov edi, dword [ebp - 0x40]
jl 0x487412
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
mov esi, dword [ebp - 0x44]
cmp byte [eax + 0x38], 0
jne 0x48740f
mov eax, dword [ebp - 0x70]
inc dword [ebp - 0x5c]
add eax, dword [ecx]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x54]
adc eax, dword [ecx + 4]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x3c]
add eax, 0x10
inc edx
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0xc4], ecx
jb 0x4873c0
cmp dword [ebp - 0x5c], 0
je 0x487746
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1fc], 0
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f0], 0
mov dword [ebp - 0x1ec], 0
mov edx, dword [ebp - 0x68]
mov byte [ebp - 4], 0x1b
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x12c], 0
mov ecx, dword [eax + edx*4]
mov edx, dword [eax + edx*4 + 4]
mov eax, dword [edi + 0x3c]
sub edx, ecx
add eax, ecx
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x134], eax
lea ecx, [ebp - 0x134]
lea eax, [ebp - 0x200]
push eax
call fcn.0047e820
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x12c]
jne 0x48a7f7
mov eax, dword [edi + 0x34]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x1fc]
movzx eax, byte [eax + ecx]
xor ecx, ecx
mov dword [ebp - 0x1e8], eax
test edx, edx
je 0x4874fa
mov eax, dword [ebp - 0x200]
nop
cmp dword [eax], 0x6f10701
jne 0x4874f2
cmp dword [eax + 4], 0
je 0x487699
inc ecx
add eax, 0x18
cmp ecx, edx
jb 0x4874e0
mov byte [ebp - 0x5d], 0
cmp byte [ebp - 0x89], 0
jne 0x487513
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 0x80], 0
cmp dword [ebp - 0x5c], eax
jne 0x487517
mov byte [ebp - 0x80], 1
push dword [ebp - 0x80]
lea edx, [ebp - 0x200]
lea ecx, [ebp - 0x128]
call fcn.00484e10
add esp, 4
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0xec]
jb 0x4875a9
mov esi, eax
nop
lea ecx, [ebp - 0xf0]
call fcn.00439780
push 0x18
call fcn.00587dd8
mov edx, eax
add esp, 4
mov dword [ebp - 0x94], edx
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
mov ecx, dword [ebp - 0xec]
lea eax, [ecx + 1]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xf0]
mov dword [eax + ecx*4], edx
cmp esi, dword [ebp - 0xec]
jae 0x487540
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x38]
mov edx, dword [eax + edx*4]
mov eax, dword [edx + 0x14]
add edx, 0xc
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x50], eax
cmp dword [edx + 4], eax
jne 0x48763e
cmp eax, 0x7fffffff
jae 0x48a7dc
mov ecx, SysReAllocString
sub ecx, eax
shr eax, 2
inc eax
cmp eax, ecx
cmovbe ecx, eax
add ecx, dword [ebp - 0x50]
mov eax, ecx
mov dword [ebp - 0x48], ecx
mov ecx, 8
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x50], edx
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x487626
shl ecx, 3
push ecx
push dword [eax]
push edx
call fcn.0058aed0
mov eax, dword [ebp - 0x58]
add esp, 0xc
push dword [eax]
call fcn.00588148
mov edx, dword [ebp - 0x58]
add esp, 4
mov eax, dword [ebp - 0x50]
mov dword [edx], eax
mov eax, dword [ebp - 0x48]
mov dword [edx + 8], eax
mov ecx, dword [edx + 4]
lea eax, [ecx + 1]
mov dword [edx + 4], eax
mov eax, dword [edx]
mov edx, dword [ebp - 0x68]
mov dword [eax + ecx*8], edx
mov edx, dword [ebp - 0x5c]
mov dword [eax + ecx*8 + 4], edx
cmp edx, dword [ebp - 0x3c]
jne 0x4876a2
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x40]
mov eax, dword [ecx + 0x30]
mov edi, dword [eax + edx*4 + 4]
mov edx, dword [eax + edx*4]
mov eax, dword [ecx + 8]
shl edx, 3
mov ecx, dword [eax + edi*8]
sub ecx, dword [eax + edx]
mov eax, dword [eax + edi*8 + 4]
mov edi, dword [esi + 8]
mov esi, dword [ebp - 0x44]
sbb eax, dword [edi + edx + 4]
add dword [ebp - 0xa8], ecx
mov edi, dword [ebp - 0x40]
adc dword [ebp - 0xb4], eax
jmp 0x4876e8
mov byte [ebp - 0x5d], 1
jmp 0x4874fe
mov ecx, dword [ebp - 0x70]
add dword [ebp - 0xa8], ecx
mov eax, dword [ebp - 0x54]
adc dword [ebp - 0xb4], eax
mov byte [ebp - 0xa2], 1
cmp dword [ebp - 0x90], eax
ja 0x4876d3
jb 0x4876ca
cmp dword [ebp - 0x78], ecx
jae 0x4876d3
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x74]
mov ecx, 1
cmp byte [ebp - 0x5d], 0
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], 0x17
push dword [ebp - 0x1f0]
call fcn.00588148
push dword [ebp - 0x1f8]
call fcn.00588148
mov eax, dword [ebp - 0x200]
add esp, 8
mov dword [ebp - 0x50], eax
test eax, eax
je 0x487746
push 0x435ad0
mov byte [ebp - 4], 0x1c
push dword [eax - 4]
push 0x18
push eax
call fcn.0058835b
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffffc
mov eax, dword [ecx]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 4]
push eax
push ecx
call fcn.0058814d
add esp, 8
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x68]
inc edx
mov dword [ebp - 0x68], edx
cmp edx, dword [edi + 4]
jb 0x487370
jmp 0x487794
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x34], 0x80004005
jmp 0x48a715
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x16c], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0xe0], xmm0
ja 0x4877b1
cmp dword [ebp - 0x170], 1
jbe 0x4877c0
mov ecx, dword [ebp - 0x6c]
mov byte [ebp - 0x5d], 1
mov eax, dword [ecx + 0x18]
or eax, dword [ecx + 0x1c]
jne 0x4877c4
mov byte [ebp - 0x5d], 0
mov edi, dword [ebp - 0x64]
mov eax, dword [edi + 4]
test eax, eax
je 0x487869
mov ecx, dword [ebp - 0xdc]
xor esi, esi
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x50], eax
mov eax, dword [edi]
mov eax, dword [eax + esi*4]
cmp byte [eax + 0x38], 0
je 0x487842
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x80], eax
mov eax, edi
and eax, dword [ebp - 0x80]
cmp eax, 0xffffffff
jne 0x48780a
mov byte [ebp - 0xa1], 1
jmp 0x48783f
add dword [ebp - 0xa8], edi
mov eax, dword [ebp - 0x80]
adc dword [ebp - 0xb4], eax
cmp byte [ebp - 0x5d], 0
je 0x487825
add edx, edi
adc ecx, eax
jmp 0x487833
cmp ecx, eax
ja 0x48783f
jb 0x48782f
cmp edx, edi
jae 0x48783f
mov edx, edi
mov ecx, eax
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xe0], edx
mov edi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x50]
inc esi
cmp esi, eax
jb 0x4877e0
cmp byte [ebp - 0xa1], 0
je 0x487869
or ecx, 0xffffffff
mov eax, 0xffffffff
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xdc], eax
jmp 0x48789e
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0xb4]
push dword [ebp - 0xa8]
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x34], eax
test eax, eax
je 0x487892
mov esi, dword [ebp - 0x44]
jmp 0x48a715
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x90]
cmp eax, edx
ja 0x4878bd
mov eax, dword [ebp - 0x78]
jb 0x4878b1
cmp ecx, eax
jae 0x4878bd
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], edx
push 0x30
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x40c], eax
mov dword [eax + 4], 0
lea edi, [eax + 0x10]
mov dword [eax], vtable.CLocalProgress.0
mov word [eax + 8], 0x101
mov dword [eax + 0xc], 0
mov dword [edi], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
push eax
mov dword [eax + 0x2c], 0
call dword [0x5d2100]
mov byte [ebp - 4], 0x20
mov ecx, dword [edi]
test ecx, ecx
je 0x48793f
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [edi], 0
mov ecx, dword [ebp - 0xbc]
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x487968
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0xc], ecx
mov byte [ebp - 4], 0x21
mov eax, dword [ecx]
push edi
push 0x5c1f34
push ecx
mov eax, dword [eax]
call eax
mov eax, dword [ebp - 0x88]
mov byte [eax + 0xa], 1
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x34c], 0
mov eax, dword [ebp - 0x6c]
mov dl, byte [eax + 0x23]
mov dword [ebp - 0x4b4], 0
mov dword [ebp - 0x4b0], 0
mov dword [ebp - 0x4ac], 0
lea ecx, [ebp - 0x4a0]
mov dword [ebp - method.NArchive::N7z::CThreadDecoder.virtual_0], vtable.NArchive::N7z::CThreadDecoder.0
mov byte [ebp - 0x4a4], 0
call fcn.00473080
mov dword [ebp - 0x448], 0
mov byte [ebp - 0x4a3], dl
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x434], 0
mov dword [ebp - 0x420], 0
mov byte [ebp - 4], 0x27
test dl, dl
je 0x487a8f
push 0x38
mov byte [ebp - 0x41c], 0
mov dword [ebp - 0x418], 1
call fcn.00587dd8
mov edi, eax
add esp, 4
mov dword [ebp - 0x94], edi
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
mov dword [edi], vtable.NArchive::N7z::CFolderOutStream2.0
mov dword [edi + 0x34], 0
mov dword [ebp - 0x438], edi
mov eax, dword [edi]
push edi
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x434]
test ecx, ecx
je 0x487a7f
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [ebp - 0x434], edi
mov dword [ebp - 0x440], 0x80004005
mov eax, dword [ebp - 0x6c]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [eax + 0x23], 0
je 0x487bb3
cmp byte [ebp - 0xa2], 0
je 0x487bb3
mov eax, dword [ebp - 0x4b4]
test eax, eax
je 0x487ac2
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x487ad6
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0x4b4], eax
test eax, eax
je 0x487ae3
mov dword [ebp - 0x34], 0
jmp 0x487af2
call edi
test eax, eax
mov ecx, 1
cmovne ecx, eax
mov dword [ebp - 0x34], ecx
mov edi, dword [ebp - 0x34]
test edi, edi
jne 0x487b9a
mov eax, dword [ebp - 0x4b0]
test eax, eax
je 0x487b10
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x487b24
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0x4b0], eax
test eax, eax
je 0x487b31
mov dword [ebp - 0x34], 0
jmp 0x487b45
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
test eax, eax
mov ecx, 1
cmovne ecx, eax
mov dword [ebp - 0x34], ecx
mov edi, dword [ebp - 0x34]
test edi, edi
jne 0x487b9a
mov byte [ebp - 0x4a8], 0
cmp dword [ebp - 0x4ac], edi
jne 0x487bb0
lea eax, [ebp - 0x410]
push eax
push edi
lea eax, [ebp - 0x4b8]
push eax
push 0x559220
push edi
push edi
call fcn.005934c4
add esp, 0x18
mov dword [ebp - 0x4ac], eax
test eax, eax
jne 0x487b93
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov edi, 1
cmovne edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
je 0x487bb0
jle 0x487ba8
movzx edi, di
or edi, 0x80070000
mov dword [ebp - 0x34], edi
mov esi, dword [ebp - 0x44]
jmp 0x48a6ac
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov byte [ebp - 0x158], 0
mov byte [ebp - 4], 0x30
mov edi, dword [eax + 0xc]
test edi, edi
jns 0x487bf4
mov edi, 5
jmp 0x487bfa
je 0x487c63
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x80], ecx
test ecx, ecx
je 0x487c24
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x168]
test ecx, ecx
je 0x487c21
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x168], ecx
mov byte [ebp - 0x15c], 1
cmp edi, 5
jb 0x487c63
mov word [ebp - 0x15b], 0x101
cmp edi, 7
jb 0x487c63
movzx eax, byte [ebp - 0x158]
cmp edi, 9
mov ecx, 1
mov byte [ebp - 0x159], 1
cmovae eax, ecx
mov byte [ebp - 0x158], al
mov eax, dword [ebp - 0x6c]
xor edx, edx
mov dword [ebp - 0x80], edx
mov edi, dword [eax]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x50], edi
cmp dword [eax + 4], edx
jbe 0x487dbe
nop dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 0x38], 0
je 0x487dae
cmp byte [ecx + 0x3b], 0
jne 0x487dae
cmp byte [ecx + 0x3a], 0
jne 0x487dae
mov eax, dword [ecx + 0x20]
or eax, dword [ecx + 0x24]
je 0x487dae
cmp byte [ebp - 0x89], 0
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1dc], 0
mov dword [ebp - 0x1d8], 0
mov byte [ebp - 0x1d4], 0
je 0x487cfc
lea eax, [ebp - 0x1e0]
push eax
push ecx
push edx
lea ecx, [ebp - 0x168]
call fcn.00485510
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x487f0f
mov al, byte [edi + 0x1a]
lea edx, [ebp - 0x1e0]
lea ecx, [ebp - 0x128]
mov byte [ebp - 0x1d4], al
call fcn.00484ca0
mov edi, eax
cmp edi, dword [ebp - 0xec]
jb 0x487d8a
lea ecx, [ebp - 0xf0]
call fcn.00439780
push 0x18
call fcn.00587dd8
mov edx, eax
add esp, 4
mov dword [ebp - 0x94], edx
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
mov ecx, dword [ebp - 0xec]
lea eax, [ecx + 1]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xf0]
mov dword [eax + ecx*4], edx
cmp edi, dword [ebp - 0xec]
jae 0x487d24
mov eax, dword [ebp - 0xf0]
mov edi, dword [eax + edi*4]
mov ecx, edi
call fcn.00439780
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0x80]
lea eax, [ecx + 1]
mov dword [edi + 4], eax
mov eax, dword [edi]
mov edi, dword [ebp - 0x50]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x64]
inc edx
mov dword [ebp - 0x80], edx
cmp edx, dword [eax + 4]
jb 0x487c80
push dword [ebp - 0x164]
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x168]
test ecx, ecx
je 0x487de2
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
xor edi, edi
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x80], edi
cmp byte [ebp - 0x74], 0
mov byte [ebp - 4], 0x3a
je 0x48806b
push 0x14
call fcn.00587dd8
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x94], eax
mov byte [ebp - 4], 0x3b
mov dword [eax + 4], edi
lea edi, [eax + 8]
mov dword [eax], vtable.NArchive::N7z::CCryptoGetTextPassword.0
push 8
mov dword [edi], 0
call fcn.0058813f
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], 0
add esp, 8
mov dword [edi + 8], 3
mov word [eax], cx
mov ecx, dword [ebp - 0xac]
mov byte [ebp - 4], 0x3a
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0xac]
mov edi, ecx
push ecx
mov dword [ebp - 0x80], edi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x420]
test ecx, ecx
je 0x487e7e
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x420], edx
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
cmp byte [eax + 0x1a], 0
je 0x487f3b
add eax, 0x24
lea ecx, [edx + 8]
cmp eax, ecx
je 0x48806b
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
cmp eax, dword [ecx + 8]
jbe 0x487eef
inc eax
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
mov edi, eax
mov eax, dword [ebp - 0xac]
push dword [eax + 8]
call fcn.00588148
mov ecx, dword [ebp - 0xac]
add esp, 8
mov eax, dword [ebp - 0x50]
add ecx, 8
mov dword [ecx], edi
mov dword [ecx + 8], eax
mov dword [ecx + 4], eax
lea eax, [eax*2 + 2]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax + 0x24]
push dword [ecx]
call fcn.0058aed0
add esp, 0xc
jmp 0x48806b
push dword [ebp - 0x164]
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x168]
test ecx, ecx
je 0x487f33
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov esi, dword [ebp - 0x44]
jmp 0x48a6ac
mov dword [ebp - 0x11c], 0
mov ecx, dword [ebp - 0xbc]
lea edx, [ebp - 0x11c]
mov byte [ebp - 4], 0x3c
push edx
push 0x5c1f94
mov eax, dword [ecx]
push ecx
mov eax, dword [eax]
call eax
mov eax, dword [ebp - 0x11c]
test eax, eax
jne 0x487f75
mov dword [ebp - 0x34], 0x80004001
jmp 0x487fab
mov dword [ebp - 0x118], 0
mov byte [ebp - 4], 0x46
lea edx, [ebp - 0x118]
mov ecx, dword [eax]
push edx
push eax
mov ecx, dword [ecx + 0xc]
call ecx
mov dword [ebp - 0x34], eax
test eax, eax
je 0x487fc3
push dword [ebp - 0x118]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x11c]
mov byte [ebp - 4], 0x47
test eax, eax
je 0x487fbb
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
mov esi, dword [ebp - 0x44]
jmp 0x48a69c
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x50], ecx
test ecx, ecx
je 0x48804e
xor eax, eax
mov dword [ebp - 0x38], eax
cmp word [ecx], ax
je 0x487feb
nop
inc eax
cmp word [ecx + eax*2], 0
jne 0x487fe0
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0xac]
cmp eax, dword [edx + 0x10]
jbe 0x488031
inc eax
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
mov edi, eax
mov eax, dword [ebp - 0xac]
push dword [eax + 8]
call fcn.00588148
mov edx, dword [ebp - 0xac]
add esp, 8
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x50]
mov dword [edx + 8], edi
mov dword [edx + 0x10], eax
mov dword [edx + 0xc], eax
lea eax, [eax*2 + 2]
push eax
push ecx
push dword [edx + 8]
call fcn.0058aed0
mov ecx, dword [ebp - 0x118]
add esp, 0xc
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0x50
mov eax, dword [ebp - 0x11c]
test eax, eax
je 0x48806b
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
mov dword [ebp - 0x3f0], 0
mov dword [ebp - 0x3ec], 0
mov dword [ebp - 0x3dc], 0
mov dword [ebp - 0x3d0], 0
mov dword [ebp - 0x3c0], 0
mov dword [ebp - 0x3bc], 0
lea ecx, [ebp - 0x330]
call fcn.0048a940
mov byte [ebp - 4], 0x52
mov ecx, dword [ebp - 0x3bc]
test ecx, ecx
je 0x4880d2
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [ebp - 0x3bc], 0
mov ecx, dword [ebp - 0x3c0]
test ecx, ecx
je 0x4880ee
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [ebp - 0x3c0], 0
mov edi, dword [ebp - 0x4c]
push edi
mov eax, dword [edi]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x3bc]
test ecx, ecx
je 0x48810b
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [ebp - 0x3bc], edi
mov byte [ebp - 4], 0x53
lea ecx, [ebp - 0x3c0]
mov eax, dword [edi]
push ecx
push 0x5c1ea4
push edi
mov eax, dword [eax]
call eax
mov ecx, dword [ebp - 0x3c0]
test ecx, ecx
jne 0x488141
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x34], 0x80004001
jmp 0x48a557
mov eax, dword [ecx]
lea edx, [ebp - 0x3c8]
push edx
push 1
push 0
mov eax, dword [eax + 0x10]
push 0
push ecx
call eax
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x4881f8
mov eax, dword [0x5fab70]
lea edx, [ebp - 0x30]
mov edi, dword [ebp - 0x3bc]
xorps xmm0, xmm0
mov dword [ebp - 0x30], eax
mov ax, word [0x5fab74]
mov word [ebp - 0x2c], ax
mov eax, 0x20
mov word [ebp - 0x2a], 0x400
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x7c], eax
movq qword [ebp - 0x18], xmm0
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x50], edi
nop
mov ecx, SysReAllocString
lea esi, [ebp - 0x1a0]
cmp eax, ecx
push esi
cmovb ecx, eax
mov eax, dword [edi]
push ecx
push edx
push edi
mov eax, dword [eax + 0xc]
call eax
mov edx, dword [ebp - 0x38]
mov edi, eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x1a0]
add edx, ecx
mov esi, dword [ebp - 0x44]
sub eax, ecx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x7c], eax
test edi, edi
jne 0x4881f8
test ecx, ecx
je 0x4881ec
mov edi, dword [ebp - 0x50]
test eax, eax
jne 0x4881a0
xor edi, edi
jmp 0x4881f1
mov edi, 0x80004005
mov dword [ebp - 0x34], edi
test edi, edi
je 0x488200
mov esi, dword [ebp - 0x44]
jmp 0x48a557
xor eax, eax
xor edx, edx
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x64]
xor edi, edi
mov byte [ebp - 4], 0x5f
cmp dword [ecx + 4], edi
jbe 0x488297
mov esi, dword [ebp - 0x40]
nop dword [eax + eax]
mov eax, dword [ecx]
mov ecx, dword [eax + edi*4]
cmp byte [ecx + 0x38], 0
je 0x48824f
cmp byte [ecx + 0x3b], 0
jne 0x488262
cmp byte [ecx + 0x3a], 0
jne 0x488262
mov eax, dword [ecx + 0x20]
or eax, dword [ecx + 0x24]
jmp 0x488260
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
je 0x488262
mov eax, dword [esi + 0x58]
add ecx, ecx
cmp byte [eax + ecx*8 + 0xc], 0
jne 0x488285
lea ecx, [ebp - 0xa0]
call fcn.00439780
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
lea edx, [eax + 1]
mov dword [ebp - 0x9c], edx
mov dword [ecx + eax*4], edi
mov ecx, dword [ebp - 0x64]
inc edi
cmp edi, dword [ecx + 4]
jb 0x488230
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0xa0]
mov edi, edx
mov dword [ebp - 0x50], edi
cmp edi, 1
jbe 0x488315
add eax, 0xfffffffc
mov dword [ebp - 0x7c], eax
mov eax, edi
mov edi, dword [ebp - 0x7c]
shr eax, 1
mov dword [ebp - 0x38], eax
push ecx
push 0x485160
push edx
mov edx, eax
mov ecx, edi
call fcn.0048b060
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov edx, dword [ebp - 0x9c]
sub eax, 1
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x38], eax
jne 0x4882b5
mov edi, dword [ebp - 0x50]
mov esi, dword [ebp - 0x7c]
mov ecx, dword [esi + edi*4]
mov edx, 1
mov eax, dword [esi + 4]
push dword [ebp - 0x64]
mov dword [esi + edi*4], eax
dec edi
mov dword [esi + 4], ecx
mov ecx, esi
push 0x485160
push edi
call fcn.0048b060
add esp, 0xc
cmp edi, 1
ja 0x4882e2
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x9c]
xor eax, eax
mov dword [ebp - 0x38], eax
test edx, edx
je 0x4884f4
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0xa0]
push 8
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x58], eax
call fcn.0058813f
mov edi, eax
mov dword [ebp - 0x144], 0
xor eax, eax
mov dword [ebp - 0x50], edi
add esp, 4
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x140], 3
mov word [edi], ax
mov byte [ebp - 4], 0x60
lea ecx, [ebp - 0x234]
mov eax, dword [ebp - 0x58]
push ecx
cmp byte [eax + 0x39], 0
je 0x48840e
lea edx, [ebp - 0x184]
mov ecx, eax
call fcn.004862c0
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x148]
add eax, 0x28
mov byte [ebp - 0x176], 0
add esp, 4
mov dword [ebp - 0xe4], eax
cmp eax, ecx
je 0x4884ac
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
cmp eax, 3
jbe 0x4883ed
inc eax
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
push dword [ebp - 0x50]
mov edi, eax
call fcn.00588148
mov eax, dword [ebp - 0x48]
add esp, 8
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x144], eax
lea eax, [eax*2 + 2]
push eax
mov eax, dword [ebp - 0xe4]
push dword [eax]
push edi
call fcn.0058aed0
jmp 0x4884a9
mov edx, dword [eax]
lea ecx, [ebp - 0x184]
push ecx
mov ecx, esi
call fcn.00486d60
mov eax, dword [ebp - 0x58]
add esp, 8
mov dword [ebp - 0x144], 0
mov edx, dword [eax]
xor eax, eax
mov word [edi], ax
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x4884ac
cmp dword [esi + 0xe8], 0
je 0x4884ac
mov ecx, dword [eax + edx*4]
mov eax, dword [eax + edx*4 + 4]
sub eax, ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x48], eax
cmp eax, 0x10000000
jae 0x4884ac
dec eax
mov dword [ebp - 0xe4], eax
cmp eax, 3
jbe 0x488487
push eax
lea ecx, [ebp - 0x148]
call fcn.0046cd40
mov edi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x50]
mov eax, dword [esi + 0xe8]
lea ecx, [eax + ecx*2]
mov eax, dword [ebp - 0x48]
add eax, eax
push eax
push ecx
push edi
call fcn.0058aed0
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x144], eax
add esp, 0xc
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x330]
call fcn.00483750
mov byte [ebp - 4], 0x5f
push dword [ebp - 0x148]
call fcn.00588148
mov eax, dword [ebp - 0x38]
add esp, 4
inc eax
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0x9c]
jb 0x488325
mov esi, dword [ebp - 0x44]
mov byte [ebp - 4], 0x52
push dword [ebp - 0xa0]
call fcn.00588148
mov eax, dword [ebp - 0x88]
add esp, 4
mov edx, dword [ebp - 0x124]
mov edi, dword [ebp - 0x128]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
xor eax, eax
test edx, edx
je 0x48853a
lea ecx, [edi + 0x10]
nop
mov dword [ecx], eax
lea ecx, [ecx + 0x14]
inc eax
cmp eax, edx
jb 0x488530
mov eax, edx
mov dword [ebp - 0x58], eax
cmp eax, 1
jbe 0x4885bb
add edi, 0xffffffec
shr eax, 1
mov dword [ebp - 0x38], eax
push edx
mov edx, eax
mov ecx, edi
call fcn.0048af80
mov eax, dword [ebp - 0x38]
add esp, 4
mov edx, dword [ebp - 0x124]
sub eax, 1
mov dword [ebp - 0x38], eax
jne 0x488550
mov eax, edx
lea eax, [eax + eax*4]
lea esi, [edi + eax*4]
movups xmm0, xmmword [edi + 0x14]
mov ecx, dword [esi + 0x10]
lea esi, [esi - 0x14]
movups xmm1, xmmword [esi + 0x14]
mov edx, 1
movups xmmword [esi + 0x14], xmm0
mov eax, dword [edi + 0x24]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x58]
dec eax
movups xmmword [edi + 0x14], xmm1
mov dword [edi + 0x24], ecx
mov ecx, edi
push eax
mov dword [ebp - 0x58], eax
call fcn.0048af80
add esp, 4
cmp dword [ebp - 0x58], 1
ja 0x488576
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x124]
xor eax, eax
mov dword [ebp - 0x50], eax
test edx, edx
je 0x48a402
mov ecx, dword [ebp - 0x6c]
lea edx, [ecx + 0x2c]
mov dword [ebp - 0x1a4], edx
mov edx, dword [ebp - 0x128]
lea eax, [eax + eax*4]
push dword [ecx]
lea ecx, [ebp - 0x388]
lea edi, [edx + eax*4]
mov dword [ebp - 0x38], edi
call fcn.0048ac40
mov eax, dword [ebp - 0x6c]
mov byte [ebp - 4], 0x61
cmp byte [eax + 9], 0
je 0x488607
cmp byte [eax + 0x23], 0
je 0x488607
mov al, 1
jmp 0x488609
xor al, al
push dword [ebp - 0x1a4]
mov edx, edi
lea ecx, [ebp - 0x388]
push eax
call fcn.00485d70
mov edi, eax
add esp, 8
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a3ef
mov edi, dword [ebp - 0x38]
cmp byte [edi + 0xc], al
je 0x4886e0
cmp byte [ebp - 0x36e], al
jne 0x4886fc
mov eax, dword [ebp - 0xac]
test eax, eax
je 0x4886d7
add eax, 8
lea ecx, [ebp - 0x364]
cmp eax, ecx
je 0x4886d7
mov edi, dword [eax + 4]
cmp edi, dword [ebp - 0x35c]
jbe 0x4886a9
mov ecx, 2
lea eax, [edi + 1]
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
push dword [ebp - 0x364]
mov dword [ebp - 0x3c], eax
call fcn.00588148
mov ecx, dword [ebp - 0x3c]
add esp, 8
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x35c], edi
jmp 0x4886b4
mov eax, dword [ebp - 0x364]
mov ecx, eax
mov dword [ebp - 0x3c], eax
lea eax, [edi*2 + 2]
mov dword [ebp - 0x360], edi
push eax
mov eax, dword [ebp - 0xac]
push dword [eax + 8]
push ecx
call fcn.0058aed0
mov edi, dword [ebp - 0x38]
add esp, 0xc
mov byte [ebp - 0x36e], 1
jmp 0x4886fc
mov eax, dword [ebp - 0x364]
xor ecx, ecx
mov byte [ebp - 0x36e], 0
mov dword [ebp - 0x360], 0
mov word [eax], cx
lea eax, [ebp - 0x388]
push eax
lea ecx, [ebp - 0x578]
call fcn.00475b40
mov byte [ebp - 4], 0x6d
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x10c], ecx
cmp dword [eax + 0x10], ecx
jbe 0x489560
mov edi, dword [ebp - 0x40]
jmp 0x488743
mov esi, dword [ebp - 0x44]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + ecx*8]
lea ecx, [eax + ecx*8]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x4c], edx
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x5c], eax
cmp dword [ecx + 4], eax
jne 0x488a95
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x4887f6
mov ecx, dword [eax]
push 3
push edx
push 2
mov ecx, dword [ecx + 0x10]
push eax
call ecx
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a324
mov edi, dword [ebp - 0x40]
xor ecx, ecx
mov edx, dword [ebp - 0x4c]
mov eax, dword [edi + 0x130]
mov edx, dword [eax + edx*4]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x5c], ecx
jbe 0x4887f3
mov esi, edx
shl esi, 4
nop dword [eax]
mov eax, dword [edi + 0x58]
cmp byte [eax + esi + 0xc], 0
je 0x4887e7
mov eax, dword [ebp - 0xc0]
inc ecx
push 3
mov dword [ebp - 0x48], ecx
push edx
mov ecx, dword [eax]
push 1
push eax
mov ecx, dword [ecx + 0x10]
call ecx
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a324
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x40]
inc edx
add esi, 0x10
mov dword [ebp - 0x38], edx
cmp ecx, dword [ebp - 0x5c]
jb 0x4887b0
mov edx, dword [ebp - 0x4c]
mov eax, dword [edi + 0x30]
mov esi, dword [edi + 8]
mov ecx, dword [ebp - 0x4c]
push dword [ebp - 0x88]
mov edx, dword [eax + edx*4 + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + eax*8 + 4]
mov edi, dword [esi + eax*8]
mov eax, dword [esi + edx*8]
mov edx, dword [esi + edx*8 + 4]
sub eax, edi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x40]
sbb edx, ecx
mov esi, dword [ebp - 0x48]
push edx
push esi
add edi, dword [eax + 0x110]
mov eax, dword [eax + 0x114]
adc eax, ecx
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x3bc]
mov ecx, dword [ebp - 0x100]
push eax
push edi
call fcn.00485000
add esp, 0x14
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x48a324
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x38]
add dword [ecx + 0x18], esi
adc dword [ecx + 0x1c], eax
lea ecx, [ebp - 0x2dc]
mov esi, dword [ebp - 0x2d8]
call fcn.00439780
push 0x18
call fcn.00587dd8
mov edi, eax
mov edx, dword [ebp - 0x4c]
add esp, 4
mov dword [ebp - 0x1a8], edi
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov ecx, dword [ebp - 0x2d8]
lea eax, [ecx + 1]
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp - 0x2dc]
mov dword [eax + ecx*4], edi
mov ecx, dword [ebp - 0x40]
cmp edx, dword [ecx + 0x10]
jae 0x48896e
mov eax, dword [ecx + 0xc]
cmp byte [edx + eax], 0
je 0x48896e
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x48], eax
cmp esi, dword [ebp - 0x32c]
jb 0x488915
nop dword [eax + eax]
push 0
lea ecx, [ebp - 0x330]
call fcn.00483a40
cmp esi, dword [ebp - 0x32c]
jae 0x488900
mov eax, dword [ebp - 0x330]
mov byte [esi + eax], 1
cmp esi, dword [ebp - 0x320]
jb 0x48895f
nop word [eax + eax]
lea ecx, [ebp - 0x324]
call fcn.00439780
mov ecx, dword [ebp - 0x320]
lea eax, [ecx + 1]
mov dword [ebp - 0x320], eax
mov eax, dword [ebp - 0x324]
mov dword [eax + ecx*4], 0
cmp esi, dword [ebp - 0x320]
jae 0x488930
mov eax, dword [ebp - 0x324]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
mov dword [eax + esi*4], ecx
mov esi, dword [ebp - 0x40]
push edi
mov dword [ebp - 0x1c4], 0
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + edx*4]
mov edx, dword [eax + edx*4 + 4]
mov eax, dword [esi + 0x3c]
sub edx, ecx
add eax, ecx
mov dword [ebp - 0x1c8], edx
lea ecx, [ebp - 0x1cc]
mov dword [ebp - 0x1cc], eax
call fcn.0047e820
mov eax, dword [ebp - 0x1c8]
sub eax, dword [ebp - 0x1c4]
jne 0x48a812
cmp dword [edi + 0x14], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], 0
mov ecx, dword [eax + ecx*4]
jbe 0x488a29
shl ecx, 3
mov dword [ebp - 0x7c], ecx
mov eax, dword [esi + 8]
mov edi, dword [eax + ecx + 8]
sub edi, dword [eax + ecx]
mov esi, dword [eax + ecx + 0xc]
sbb esi, dword [eax + ecx + 4]
lea ecx, [ebp - 0x300]
call fcn.00439570
mov ecx, dword [ebp - 0x2fc]
mov edx, dword [ebp - 0x38]
inc edx
mov dword [ebp - 0x38], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x2fc], eax
mov eax, dword [ebp - 0x300]
mov dword [eax + ecx*8], edi
mov dword [eax + ecx*8 + 4], esi
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x40]
add ecx, 8
mov dword [ebp - 0x7c], ecx
cmp edx, dword [eax + 0x14]
jb 0x4889d2
mov edi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [edi + 0x2c]
mov edx, dword [eax + ecx*4 + 4]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x38], ecx
cmp ecx, edx
jae 0x489283
nop word [eax + eax]
mov eax, dword [edi + 0x28]
mov esi, dword [eax + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [ebp - 0x30c]
call fcn.00439570
mov ecx, dword [ebp - 0x308]
lea eax, [ecx + 1]
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x30c]
mov dword [eax + ecx*8], esi
mov dword [eax + ecx*8 + 4], edi
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebp - 0x48]
jb 0x488a50
jmp 0x489283
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0
mov byte [ebp - 4], 0x7e
xor edi, edi
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x488adb
mov ecx, dword [eax]
push 4
push edx
push 2
mov ecx, dword [ecx + 0x10]
push eax
call ecx
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x48a316
xorps xmm0, xmm0
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
movlpd qword [ebp - 0x9c], xmm0
mov eax, dword [edx + 0x130]
mov ecx, dword [eax + ecx*4]
cmp dword [ebp - 0x5c], edi
jbe 0x488b94
mov eax, ecx
lea ecx, [esi + ecx*4]
mov esi, dword [ebp - 0x98]
shl eax, 4
mov dword [ebp - 0x78], esi
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x74], esi
nop
mov esi, dword [edx + 0x58]
add esi, eax
mov byte [ebp - 0x1ac], 0
cmp byte [esi + 0xc], 0
je 0x488b67
mov ecx, dword [ecx]
inc edi
test ecx, ecx
js 0x488b67
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 0x38], 0
jne 0x488b67
push 1
lea ecx, [ebp - 0x190]
call fcn.00483a40
mov eax, dword [ebp - 0x74]
add eax, dword [esi]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x78]
adc eax, dword [esi + 4]
mov dword [ebp - 0x78], eax
jmp 0x488b78
push dword [ebp - 0x1ac]
lea ecx, [ebp - 0x190]
call fcn.00483a40
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x7c]
add eax, 0x10
mov edx, dword [ebp - 0x40]
add ecx, 4
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x7c], ecx
cmp edi, dword [ebp - 0x5c]
jb 0x488b20
jmp 0x488ba6
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x2fc]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0x3c], 0
push 0x28
mov byte [ebp - 4], 0x80
mov dword [ebp - 0x54], 0
call fcn.00587dd8
mov esi, eax
add esp, 4
mov dword [ebp - 0x94], esi
mov dword [esi + 8], 0
mov dword [esi], vtable.NArchive::N7z::CRepackInStreamWithSizes.1.0
mov dword [esi + 4], vtable.NArchive::N7z::CRepackInStreamWithSizes.0
mov dword [esi + 0xc], 0
mov byte [ebp - 4], 0x81
push esi
mov dword [ebp - 0xcc], esi
call dword [0x5cbc90]
mov eax, dword [ebp - 0x6c]
mov byte [ebp - 4], 0x82
cmp byte [eax + 0x23], 0
je 0x488d5a
mov edx, dword [ebp - 0x438]
test edx, edx
je 0x488c22
add edx, 8
jmp 0x488c24
xor edx, edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x48], 0
push 0xc
mov byte [ebp - 4], 0x83
call fcn.00587dd8
mov edi, eax
add esp, 4
mov dword [ebp - 0x94], edi
lea eax, [ebp - 0x350]
mov dword [edi + 4], 0
mov dword [edi], vtable.CBinderInStream.0
push edi
mov dword [edi + 8], eax
call dword [0x5d2114]
push 0xc
mov dword [ebp - 0x3c], edi
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x90], eax
lea ecx, [ebp - 0x350]
mov dword [eax + 4], 0
mov dword [eax], vtable.CBinderOutStream.0
push eax
mov dword [eax + 8], ecx
call dword [0x5d2128]
mov eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x350]
mov dword [ebp - 0x48], eax
call fcn.005584d0
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x48a255
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x438]
mov dword [ebp - 0x38], eax
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x488cd9
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x90]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp - 0x100]
test ecx, ecx
je 0x488cf7
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x43c]
test ecx, ecx
je 0x488d09
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x43c], eax
mov eax, dword [edx + 0x110]
mov ecx, dword [edx + 0x114]
mov dword [ebp - 0x430], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0x90]
mov byte [ebp - 4], 0x86
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov byte [ebp - 4], 0x82
jmp 0x488ece
push 0x40
call fcn.00587dd8
mov edi, eax
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x138], edi
lea edx, [edi + 8]
mov dword [edx + 0x20], 0
mov dword [ebp - 0x68], edx
mov dword [edx + 0x24], 0
mov dword [edi + 0x30], 0
mov dword [edi], vtable.NArchive::N7z::CFolderInStream2.0
mov dword [edi + 0x38], 0
mov byte [ebp - 4], 0x89
push 0x10000
mov dword [edi + 0x3c], 0
call fcn.0058813f
mov dword [edi + 0x34], eax
add esp, 8
mov byte [ebp - 4], 0x82
mov dword [edi + 0x3c], 0
mov eax, dword [edi]
push edi
mov eax, dword [eax + 4]
call eax
push 8
mov dword [ebp - 0x3c], edi
mov byte [ebp - 0xc6], 0
mov byte [ebp - 0xc5], 0
mov dword [ebp - 0x19c], 0
call fcn.0058813f
xor ecx, ecx
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], 0
add esp, 4
mov dword [ebp - 0x194], 3
mov word [eax], cx
mov dword [ebp - 0x174], ecx
push ecx
push ecx
push 1
push ecx
lea eax, [ebp - 0x19c]
mov byte [ebp - 4], 0x8b
push eax
lea eax, [ebp - 0xc5]
mov byte [ebp - 0xc7], cl
push eax
lea eax, [ebp - 0xc6]
push eax
push dword [ebp - 0x80]
lea eax, [ebp - 0xc7]
push eax
lea eax, [ebp - 0x174]
push eax
mov eax, dword [ebp - 0x40]
push ecx
push ecx
push ecx
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x4a4]
push eax
push dword [eax + 0x114]
push dword [eax + 0x110]
push dword [ebp - 0x100]
call fcn.00473380
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x48], ecx
test eax, eax
jne 0x48a2d8
test ecx, ecx
je 0x48a2d1
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 4]
call eax
mov eax, edi
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x488e9d
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x48]
mov dword [ecx + 0x38], eax
mov byte [ebp - 4], 0x8f
mov eax, dword [ebp - 0x174]
test eax, eax
je 0x488ebc
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
mov byte [ebp - 4], 0x82
push dword [ebp - 0x19c]
call fcn.00588148
add esp, 4
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x40]
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x48], edx
test edx, edx
je 0x488eef
mov eax, dword [edx]
push edx
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ecx + 0x20]
test edx, edx
je 0x488f01
mov eax, dword [edx]
push edx
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x48]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0x48], edx
test edx, edx
je 0x488f1f
mov eax, dword [edx]
push edx
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x68]
mov edx, dword [ecx + 0x24]
test edx, edx
je 0x488f31
mov eax, dword [edx]
push edx
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x130]
mov eax, dword [eax + edx*4]
mov dword [ecx + 0x14], eax
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x190]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x18], 0
mov byte [ecx + 1], 0
call fcn.00486500
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x48a2f6
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0x190]
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
test edi, edi
je 0x488f9f
mov eax, dword [edi]
push edi
mov eax, dword [eax + 4]
call eax
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x488fae
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x6c]
mov dword [esi + 0xc], edi
cmp byte [eax + 0x23], 0
je 0x488fec
push dword [ebp - 0x4b4]
mov byte [ebp - 0x4a8], 0
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x488fec
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov edx, 1
cmovne edx, eax
mov dword [ebp - 0x34], edx
test edx, edx
jne 0x48a26c
mov eax, dword [ebp - 0x3bc]
lea ecx, [ebp - 0x2dc]
mov dword [ebp - 0x48], eax
call fcn.00439780
push 0x18
call fcn.00587dd8
mov edx, eax
add esp, 4
mov dword [ebp - 0x94], edx
push dword [ebp - 0x88]
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
mov ecx, dword [ebp - 0x2d8]
lea eax, [ecx + 1]
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp - 0x2dc]
mov dword [eax + ecx*4], edx
lea eax, [ebp - 0x300]
push eax
push dword [ebp - 0x48]
lea eax, [ebp - 0xe0]
push edx
push dword [ebp - 0x78]
lea ecx, [ebp - 0x578]
push dword [ebp - 0x74]
push eax
push esi
call fcn.00475280
mov dword [ebp - 0x34], eax
cmp eax, 0x20000002
je 0x48a2c8
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x70], ecx
test eax, eax
jne 0x4890af
lea eax, [ebp - 0x30c]
push eax
push ecx
push edx
lea ecx, [ebp - 0x578]
call fcn.00475ab0
mov eax, dword [ebp - 0x6c]
cmp byte [eax + 0x23], 0
je 0x4891a0
mov eax, dword [esi]
push esi
mov eax, dword [eax + 8]
call eax
xor esi, esi
mov dword [ebp - 0xcc], esi
test edi, edi
je 0x4890dd
mov eax, dword [edi]
push edi
mov eax, dword [eax + 8]
call eax
xor edi, edi
mov dword [ebp - 0x3c], edi
push 0xffffffffffffffff
push dword [ebp - 0x4b0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x4890fe
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x48a283
test eax, eax
jne 0x48a294
mov ecx, dword [ebp - 0x440]
mov dword [ebp - 0x38], ecx
cmp ecx, 1
je 0x48911c
cmp byte [ebp - 0x444], al
je 0x48916d
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x489165
mov ecx, dword [eax]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 0x130]
mov edx, dword [ecx + edx*4]
xor ecx, ecx
cmp dword [ebp - 0x38], ecx
sete cl
lea ecx, [ecx*4 + 2]
push ecx
push edx
push 1
push eax
call dword [ebp - 0xcc]
test eax, eax
jne 0x48a2a3
mov ecx, dword [ebp - 0x38]
test ecx, ecx
jne 0x48a2c8
test ecx, ecx
jne 0x48a28f
mov edx, dword [ebp - 0x34]
test edx, edx
jne 0x48a2f6
mov eax, dword [ebp - 0x74]
cmp dword [ebp - 0x338], eax
jne 0x489196
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0x334], eax
je 0x4891ba
mov edx, 0x80004005
mov dword [ebp - 0x34], edx
jmp 0x4891ba
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x3c]
cmp eax, 1
je 0x48a2a8
test eax, eax
jne 0x48a2a3
mov edx, dword [ebp - 0x34]
test edx, edx
jne 0x48a2f6
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0xcc], 0
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x18]
cmp eax, ecx
mov edx, 0x80004005
cmove edx, dword [ebp - 0xcc]
mov dword [ebp - 0x34], edx
jne 0x48a2f6
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x74]
jne 0x48a2c8
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x78]
jne 0x48a2c8
mov byte [ebp - 4], 0xcb
test esi, esi
je 0x489217
mov eax, dword [esi]
push esi
mov eax, dword [eax + 8]
call eax
mov byte [ebp - 4], 0xcc
test edi, edi
je 0x489227
mov eax, dword [edi]
push edi
mov eax, dword [eax + 8]
call eax
mov edx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0x88]
cmp edx, dword [ebp - 0x2fc]
jae 0x489262
nop dword [eax + eax]
mov eax, dword [ebp - 0x300]
mov ecx, dword [eax + edx*8]
add ecx, dword [esi + 0x28]
mov eax, dword [eax + edx*8 + 4]
adc eax, dword [esi + 0x2c]
inc edx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], eax
cmp edx, dword [ebp - 0x2fc]
jb 0x489240
mov eax, dword [ebp - 0x7c]
add dword [esi + 0x20], eax
mov eax, dword [ebp - 0x70]
adc dword [esi + 0x24], eax
mov byte [ebp - 4], 0x6d
push dword [ebp - 0x190]
call fcn.00588148
mov edi, dword [ebp - 0x40]
add esp, 4
mov esi, dword [ebp - 0x84]
lea ecx, [ebp - 0x318]
mov esi, dword [esi + 4]
call fcn.00439780
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x314]
mov dword [ebp - 0x54], 0
lea eax, [ecx + 1]
mov dword [ebp - 0x314], eax
mov eax, dword [ebp - 0x318]
mov dword [eax + ecx*4], esi
mov eax, dword [edi + 0x130]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x70], ecx
jbe 0x489542
mov edx, ecx
shl edx, 4
mov dword [ebp - 0x38], edx
nop word [eax + eax]
mov eax, dword [edi + 0x58]
cmp byte [edx + eax + 0xc], 0
je 0x48952c
inc dword [ebp - 0x54]
lea eax, [ecx*4]
mov edi, dword [eax + esi]
mov dword [ebp - 0x84], eax
test edi, edi
js 0x489529
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edi, dword [eax + edi*4]
cmp byte [edi + 0x38], 0
jne 0x489529
push 8
call fcn.0058813f
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 3
mov word [eax], cx
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 0x3b8]
mov ecx, dword [ebp - 0x40]
push eax
lea eax, [ebp - 0x1dc]
mov byte [ebp - 4], 0xcd
push eax
call fcn.00486d60
add esp, 0xc
cmp byte [edi + 0x39], 0
je 0x48946d
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x398], eax
mov al, byte [edi + 0x3c]
mov byte [ebp - 0x390], al
mov eax, dword [edi + 8]
mov dword [ebp - 0x3b8], eax
mov al, byte [edi + 0x3d]
mov byte [ebp - 0x394], al
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x3b0], eax
mov al, byte [edi + 0x3e]
mov byte [ebp - 0x393], al
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x3a8], eax
mov al, byte [edi + 0x3f]
mov byte [ebp - 0x392], al
mov al, byte [edi + 0x3a]
mov dword [ebp - 0x3b4], ecx
mov ecx, dword [edi + 0x14]
mov byte [ebp - 0x38f], al
mov al, byte [edi + 0x3b]
mov dword [ebp - 0x3ac], ecx
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x3a4], ecx
lea ecx, [ebp - 0x154]
mov byte [ebp - 0x1cf], al
lea eax, [edi + 0x28]
mov byte [ebp - 0x391], 0
mov dword [ebp - 0xd0], eax
cmp eax, ecx
je 0x4894f1
mov eax, dword [eax + 4]
mov dword [ebp - 0x84], eax
cmp eax, 3
jbe 0x489449
inc eax
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
mov edx, dword [ebp - 0x3c]
mov edi, eax
push edx
call fcn.00588148
mov eax, dword [ebp - 0x84]
add esp, 8
mov dword [ebp - 0x154], edi
mov edx, edi
mov dword [ebp - 0x14c], eax
jmp 0x48944c
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x150], eax
lea eax, [eax*2 + 2]
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax]
push edx
call fcn.0058aed0
jmp 0x4894ee
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov dword [ebp - 0x150], 0
mov word [edx], ax
mov edi, dword [ecx + 0xf0]
test edi, edi
je 0x4894f1
cmp dword [ecx + 0xe8], eax
je 0x4894f1
mov ecx, dword [ebp - 0x84]
mov eax, dword [edi + ecx]
mov edi, dword [edi + ecx + 4]
sub edi, eax
mov dword [ebp - 0x84], eax
cmp edi, 0x10000000
jae 0x4894f1
lea eax, [edi - 1]
cmp eax, 3
jbe 0x4894c8
push eax
lea ecx, [ebp - 0x154]
call fcn.0046cd40
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x84]
mov eax, dword [eax + 0xe8]
lea ecx, [eax + ecx*2]
lea eax, [edi + edi]
push eax
push ecx
push edx
call fcn.0058aed0
lea eax, [edi - 1]
mov dword [ebp - 0x150], eax
add esp, 0xc
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x3b8]
push eax
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x330]
call fcn.00483750
mov byte [ebp - 4], 0x6d
push dword [ebp - 0x154]
call fcn.00588148
mov ecx, dword [ebp - 0x70]
add esp, 4
mov edx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
inc ecx
add edx, 0x10
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x54], eax
jb 0x4892e0
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xb0]
inc ecx
mov dword [ebp - 0x10c], ecx
cmp ecx, dword [eax + 0x10]
jb 0x488740
jmp 0x489563
mov esi, dword [ebp - 0x44]
mov edi, dword [eax + 4]
mov dword [ebp - 0x4c], edi
test edi, edi
jne 0x4895eb
push dword [ebp - 0x4cc]
call fcn.00588148
push dword [ebp - 0x4d8]
call fcn.00588148
push dword [ebp - 0x4e4]
call fcn.00588148
push dword [ebp - 0x4f0]
call fcn.00588148
push dword [ebp - 0x4fc]
call fcn.00588148
push dword [ebp - 0x508]
call fcn.00588148
push dword [ebp - 0x518]
call fcn.00588148
push dword [ebp - 0x524]
call fcn.00588148
push dword [ebp - 0x530]
call fcn.00588148
add esp, 0x24
lea ecx, [ebp - 0x568]
call fcn.00474810
mov byte [ebp - 4], 0xce
jmp 0x48a216
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x12c], 0
mov byte [ebp - 4], 0xcf
mov dword [ebp - 0x130], 0
cmp edi, 0x7fffffff
ja 0x48a82d
push 0
call fcn.00588148
mov ecx, 0x14
mov dword [ebp - 0x134], 0
mov eax, edi
mov dword [ebp - 0x12c], 0
mul ecx
mov ecx, 0xffffffff
mov dword [ebp - 0x94], edi
cmovb eax, ecx
push eax
call fcn.0058813f
mov ecx, eax
add esp, 8
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp - 0x6c]
mov byte [ebp - 4], 0xcf
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x12c], edi
mov al, byte [eax + 0x21]
mov dword [ebp - 0x130], edi
mov byte [ebp - 0xe4], al
mov dword [ebp - 0x84], 0
test edi, edi
je 0x4896db
mov esi, dword [ebp - 0x84]
mov edi, ecx
mov eax, dword [ebp - 0xb0]
push dword [ebp - 0xe4]
mov eax, dword [eax]
mov ecx, dword [eax + esi*4]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
push dword [eax + ecx*4]
push ecx
lea ecx, [ebp - 0x58c]
call fcn.004851e0
inc esi
lea edi, [edi + 0x14]
movups xmm0, xmmword [eax]
mov eax, dword [eax + 0x10]
movups xmmword [edi - 0x14], xmm0
mov dword [edi - 4], eax
cmp esi, dword [ebp - 0x4c]
jb 0x489691
mov esi, dword [ebp - 0x44]
mov al, byte [ebp - 0xe4]
mov edi, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
mov byte [ebp - 0xa3], al
mov dword [ebp - 0x3c], edi
cmp edi, 1
jbe 0x48977b
lea edi, [ecx - 0x14]
mov ecx, dword [ebp - 0x4c]
mov eax, ecx
shr eax, 1
mov dword [ebp - 0xb0], eax
nop dword [eax]
lea edx, [ebp - 0xa3]
push edx
push ecx
push ecx
mov edx, eax
mov ecx, edi
call fcn.0048aed0
mov eax, dword [ebp - 0xb0]
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
sub eax, 1
mov dword [ebp - 0xb0], eax
jne 0x489700
mov eax, ecx
lea eax, [eax + eax*4]
lea esi, [edi + eax*4]
movups xmm0, xmmword [edi + 0x14]
mov ecx, dword [esi + 0x10]
lea esi, [esi - 0x14]
movups xmm1, xmmword [esi + 0x14]
mov edx, 1
movups xmmword [esi + 0x14], xmm0
mov eax, dword [edi + 0x24]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x3c]
movups xmmword [edi + 0x14], xmm1
mov dword [edi + 0x24], ecx
dec eax
lea ecx, [ebp - 0xa3]
mov dword [ebp - 0x3c], eax
push ecx
push ecx
push eax
mov ecx, edi
call fcn.0048aed0
add esp, 0xc
cmp dword [ebp - 0x3c], 1
ja 0x489731
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x4c]
mov ecx, 4
mov eax, edi
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
add esp, 4
mov dword [ebp - 0x78], eax
xor ecx, ecx
mov byte [ebp - 4], 0xd1
test edi, edi
je 0x48a193
mov edx, dword [ebp - 0x58]
mov esi, eax
add edx, 4
nop
mov eax, dword [edx]
lea edx, [edx + 0x14]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, edi
jb 0x4897b0
mov esi, dword [ebp - 0x44]
xor ecx, ecx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x5c], ecx
nop dword [eax + eax]
xorps xmm0, xmm0
mov dword [ebp - 0xb0], 0
xor edi, edi
movlpd qword [ebp - 0x9c], xmm0
cmp ecx, eax
mov dword [ebp - 0x68], edi
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x54], eax
jae 0x489903
mov esi, dword [ebp - 0x9c]
xor eax, eax
cmp eax, dword [ebp - 0x16c]
ja 0x4898f6
jb 0x48981d
cmp edi, dword [ebp - 0x170]
jae 0x4898f6
lea eax, [edi + ecx]
mov ecx, dword [ebp - 0x78]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x6c]
add esi, dword [edx + 0x20]
adc ecx, dword [edx + 0x24]
mov dword [ebp - 0x54], ecx
cmp ecx, dword [eax + 0x1c]
ja 0x4898f6
jb 0x489851
cmp esi, dword [eax + 0x18]
ja 0x4898f6
cmp byte [eax + 0x20], 0
je 0x4898e3
mov edi, dword [edx + 0x28]
mov eax, dword [edx + 0x2c]
lea ecx, [edi + eax*2]
cmp ecx, edi
je 0x489885
nop dword [eax + eax]
movzx eax, word [ecx - 2]
sub ecx, 2
cmp eax, 0x5c
je 0x489894
cmp eax, 0x2f
je 0x489894
cmp ecx, edi
jne 0x489870
or ecx, 0xffffffff
mov eax, dword [edx + 0x2c]
test eax, eax
jne 0x48989a
or eax, 0xffffffff
jmp 0x4898b6
sub ecx, edi
sar ecx, 1
jmp 0x489888
lea eax, [edi + eax*2]
nop dword [eax]
sub eax, 2
cmp word [eax], 0x2e
je 0x4898b2
cmp eax, edi
jne 0x4898a0
or eax, 0xffffffff
jmp 0x4898b6
sub eax, edi
sar eax, 1
cmp eax, ecx
jg 0x4898bf
mov ecx, dword [edx + 0x2c]
jmp 0x4898c2
lea ecx, [eax + 1]
lea ecx, [edi + ecx*2]
mov edi, dword [ebp - 0x68]
test edi, edi
jne 0x4898d4
mov dword [ebp - 0xb0], ecx
jmp 0x4898e3
mov edx, dword [ebp - 0xb0]
call fcn.0046c680
test al, al
je 0x4898f6
mov ecx, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x68], edi
lea eax, [edi + ecx]
cmp eax, dword [ebp - 0x4c]
jb 0x489801
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x44]
cmp edi, 1
jae 0x489913
jmp 0x48990c
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x68], 1
push 0
push 0
push dword [ebp - 0x88]
call fcn.00558180
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a345
push 0xc0
call fcn.00587dd8
mov edi, eax
add esp, 4
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0x98], edi
mov dword [edi + 8], 0
mov dword [edi], vtable.NArchive::N7z::CFolderInStream.0
mov dword [edi + 4], vtable.NArchive::N7z::CFolderInStream.1.0
mov dword [edi + 0xc], 0
mov dword [edi + 0x54], 0
mov dword [edi + 0x58], 0
mov dword [edi + 0x5c], 0
mov dword [edi + 0x60], 0
mov dword [edi + 0x64], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0
mov dword [edi + 0x70], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x78], 0
mov dword [edi + 0x7c], 0
mov dword [edi + 0x80], 0
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
mov dword [edi + 0x8c], 0
mov dword [edi + 0x90], 0
mov dword [edi + 0x94], 0
mov dword [edi + 0x98], 0
mov dword [edi + 0x9c], 0
mov dword [edi + 0xa0], 0
mov dword [edi + 0xa4], 0
mov dword [edi + 0xa8], 0
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], 0
mov dword [edi + 0xb4], 0
mov dword [edi + 0xb8], 0
mov eax, dword [edi]
push edi
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x6c]
push dword [ebp - 0x68]
mov byte [ebp - 4], 0xd3
mov al, byte [ecx + 0x24]
mov byte [edi + 0x59], al
mov al, byte [ecx + 0x25]
mov byte [edi + 0x5a], al
mov al, byte [ecx + 0x26]
mov byte [edi + 0x58], al
mov al, byte [ecx + 0x27]
mov ecx, dword [ebp - 0x78]
mov byte [edi + 0x5b], al
mov eax, dword [ebp - 0x5c]
lea eax, [ecx + eax*4]
mov ecx, edi
push eax
push dword [ebp - 0xbc]
call fcn.00477cb0
mov eax, dword [ebp - 0x2fc]
lea ecx, [ebp - 0x2dc]
mov edi, dword [ebp - 0x3bc]
mov dword [ebp - 0x84], eax
call fcn.00439780
push 0x18
call fcn.00587dd8
mov edx, eax
add esp, 4
mov dword [ebp - 0x94], edx
push dword [ebp - 0x88]
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
mov ecx, dword [ebp - 0x2d8]
lea eax, [ecx + 1]
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp - 0x2dc]
mov dword [eax + ecx*4], edx
lea eax, [ebp - 0x300]
push eax
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x578]
push edi
mov edi, dword [ebp - 0xc4]
push edx
push eax
push dword [ebp - 0x3c]
lea eax, [ebp - 0xe0]
push eax
push edi
call fcn.00475280
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x48a339
mov eax, dword [edi + 0x60]
cmp eax, dword [edi + 0x4c]
jne 0x48a332
mov ecx, dword [edi + 0x14]
lea edx, [ebp - 0x30c]
mov eax, dword [edi + 0x10]
push edx
push ecx
mov dword [ebp - 0x94], ecx
lea ecx, [ebp - 0x578]
push eax
mov dword [ebp - 0x1bc], eax
call fcn.00475ab0
mov eax, dword [ebp - 0x2fc]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x84]
sub eax, ecx
mov edx, dword [ebp - 0x300]
movlpd qword [ebp - 0xd8], xmm0
cmp ecx, dword [ebp - 0x2fc]
jae 0x489be9
cmp eax, 4
jb 0x489be9
mov esi, dword [ebp - 0x2fc]
and eax, 3
mov dword [ebp - 0x3c], esi
xorps xmm2, xmm2
sub dword [ebp - 0x3c], eax
xorps xmm1, xmm1
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
nop dword [eax]
movups xmm0, xmmword [edx + ecx*8]
paddq xmm2, xmm0
movups xmm0, xmmword [edx + ecx*8 + 0x10]
add ecx, 4
paddq xmm1, xmm0
cmp ecx, eax
jb 0x489bb0
paddq xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddq xmm1, xmm0
movd dword [ebp - 0x74], xmm1
psrldq xmm1, 4
movd dword [ebp - 0x34], xmm1
jmp 0x489bfb
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x2fc]
xorps xmm0, xmm0
movlpd qword [ebp - 0x114], xmm0
movlpd qword [ebp - 0xd8], xmm0
cmp ecx, eax
jae 0x489ccf
mov esi, dword [ebp - 0x114]
sub eax, ecx
cmp eax, 2
jb 0x489c7e
mov eax, dword [ebp - 0x2fc]
dec eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x110]
nop
add esi, dword [edx + ecx*8]
mov edi, dword [ebp - 0x70]
adc eax, dword [edx + ecx*8 + 4]
add edi, dword [edx + ecx*8 + 8]
mov dword [ebp - 0x70], edi
mov edi, dword [ebp - 0x3c]
adc edi, dword [edx + ecx*8 + 0xc]
add ecx, 2
mov dword [ebp - 0x3c], edi
cmp ecx, dword [ebp - 0x84]
jb 0x489c50
mov edi, dword [ebp - 0xc4]
jmp 0x489c96
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x54], esi
mov esi, dword [ebp - 0x44]
cmp ecx, dword [ebp - 0x2fc]
jae 0x489cba
mov esi, dword [ebp - 0x74]
add esi, dword [edx + ecx*8]
mov dword [ebp - 0x74], esi
mov esi, dword [ebp - 0x34]
adc esi, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x54]
add ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x74]
adc eax, dword [ebp - 0x3c]
add edx, ecx
mov ecx, dword [ebp - 0x34]
adc ecx, eax
jmp 0x489cd5
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x88]
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0
movlpd qword [ebp - 0xd8], xmm0
movlpd qword [ebp - 0x114], xmm0
add dword [eax + 0x28], edx
mov edx, eax
adc dword [edx + 0x2c], ecx
xor eax, eax
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x68], eax
jbe 0x48a0a9
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x78]
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x7c], ecx
nop dword [eax + eax]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x110], ecx
mov ecx, dword [edx]
push 8
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x3c], eax
call fcn.0058813f
xor ecx, ecx
mov dword [ebp - 0xfc], eax
add esp, 4
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 3
mov word [eax], cx
mov byte [ebp - 4], 0xd8
lea ecx, [ebp - 0x234]
mov eax, dword [ebp - 0x3c]
push ecx
cmp byte [eax + 0x39], 0
je 0x489e3b
lea edx, [ebp - 0x184]
mov ecx, eax
call fcn.004862c0
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0xfc]
add eax, 0x28
add esp, 4
cmp eax, ecx
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xfc]
je 0x489f0d
mov eax, dword [eax + 4]
mov dword [ebp - 0xd0], eax
cmp eax, 3
jbe 0x489e1a
inc eax
mov ecx, 2
mul ecx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.0058813f
push dword [ebp - 0xfc]
mov dword [ebp - 0x84], eax
call fcn.00588148
mov ecx, dword [ebp - 0x84]
add esp, 8
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf8], eax
lea eax, [eax*2 + 2]
push eax
mov eax, dword [ebp - 0xcc]
push dword [eax]
push ecx
call fcn.0058aed0
jmp 0x489f04
mov edx, dword [eax]
lea ecx, [ebp - 0x184]
push ecx
mov ecx, dword [ebp - 0x40]
call fcn.00486d60
mov eax, dword [ebp - 0x3c]
add esp, 8
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xf8], 0
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 0xf0]
test edx, edx
je 0x489f0d
cmp dword [eax + 0xe8], 0
je 0x489f0d
mov eax, dword [ebp - 0xb0]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [edx + eax*4 + 4]
sub eax, dword [ebp - 0x10c]
mov dword [ebp - 0x84], eax
cmp eax, 0x10000000
jae 0x489f0d
dec eax
mov dword [ebp - 0xd0], eax
cmp eax, 3
jbe 0x489ed1
push eax
lea ecx, [ebp - 0xfc]
call fcn.0046cd40
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x10c]
mov eax, dword [eax + 0xe8]
lea ecx, [eax + ecx*2]
mov eax, dword [ebp - 0x84]
add eax, eax
push eax
push ecx
push dword [ebp - 0xfc]
call fcn.0058aed0
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xfc]
add esp, 0xc
cmp byte [ebp - 0x20b], 0
jne 0x48a329
cmp byte [ebp - 0x177], 0
jne 0x48a329
mov eax, dword [edi + 0x5c]
mov edx, dword [ebp - 0x74]
cmp byte [edx + eax], 0
jne 0x489f52
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x70]
push ecx
add edx, dword [eax + 0x20]
mov dword [ebp - 0x70], edx
mov edx, dword [ebp - 0x54]
adc edx, dword [eax + 0x24]
mov dword [ebp - 0x54], edx
mov byte [ebp - 4], 0xd3
jmp 0x48a07a
mov eax, dword [edi + 0x74]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x17c], eax
mov eax, dword [edi + 0x68]
mov ecx, dword [eax + edx*8]
mov esi, ecx
add esi, dword [ebp - 0x110]
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x7c], esi
mov esi, eax
adc esi, dword [ebp - 0xd4]
mov dword [ebp - 0x184], ecx
or ecx, eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x34], esi
je 0x489fa1
inc dword [ebp - 0x38]
mov byte [ebp - 0x176], 1
mov byte [ebp - 0x178], 1
jmp 0x489faf
mov byte [ebp - 0x176], 0
mov byte [ebp - 0x178], 0
mov eax, dword [edi + 0x8c]
mov esi, dword [ebp - 0x44]
cmp byte [edx + eax], 0
je 0x48a050
cmp byte [edi + 0x59], 0
je 0x489fe8
mov eax, dword [edi + 0xa4]
mov byte [ebp - 0x210], 1
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x230], eax
cmp byte [edi + 0x5a], 0
je 0x48a00e
mov eax, dword [edi + 0xb0]
mov byte [ebp - 0x20f], 1
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x228], eax
cmp byte [edi + 0x58], 0
je 0x48a034
mov eax, dword [edi + 0x98]
mov byte [ebp - 0x20e], 1
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x220], eax
cmp byte [edi + 0x5b], 0
je 0x48a050
mov eax, dword [edi + 0x80]
mov byte [ebp - 0x20c], 1
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x214], eax
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x330]
call fcn.00483750
mov byte [ebp - 4], 0xd3
push dword [ebp - 0xfc]
call fcn.00588148
mov eax, dword [ebp - 0x74]
add esp, 4
mov edx, dword [ebp - 0x48]
inc eax
mov ecx, dword [ebp - 0x7c]
add edx, 4
cmp eax, dword [ebp - 0x68]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x48], edx
jb 0x489d40
mov edx, dword [ebp - 0x88]
jmp 0x48a0c7
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x110]
cmp ecx, dword [ebp - 0x1bc]
jne 0x48a332
cmp eax, dword [ebp - 0x94]
jne 0x48a332
add dword [edx + 0x20], ecx
lea ecx, [ebp - 0x318]
adc dword [edx + 0x24], eax
call fcn.00439780
mov ecx, dword [ebp - 0x314]
mov edx, dword [ebp - 0x38]
lea eax, [ecx + 1]
mov dword [ebp - 0x314], eax
mov eax, dword [ebp - 0x318]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x5c], eax
mov eax, edx
or eax, ecx
je 0x48a172
mov eax, dword [ebp - 0xb4]
cmp eax, ecx
jb 0x48a172
ja 0x48a134
cmp dword [ebp - 0xa8], edx
jb 0x48a172
mov edi, dword [ebp - 0xa8]
sub edi, edx
mov dword [ebp - 0xa8], edi
sbb eax, ecx
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xb4], eax
push dword [ebp - 0xb4]
mov eax, dword [ecx]
push edi
push ecx
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
mov edi, dword [ebp - 0xc4]
jne 0x48a339
mov byte [ebp - 4], 0xe0
mov eax, dword [edi]
push edi
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 0xd1
cmp ecx, eax
jb 0x4897d0
mov eax, dword [ebp - 0x78]
push eax
call fcn.00588148
push dword [ebp - 0x58]
call fcn.00588148
push dword [ebp - 0x4cc]
call fcn.00588148
push dword [ebp - 0x4d8]
call fcn.00588148
push dword [ebp - 0x4e4]
call fcn.00588148
push dword [ebp - 0x4f0]
call fcn.00588148
push dword [ebp - 0x4fc]
call fcn.00588148
push dword [ebp - 0x508]
call fcn.00588148
push dword [ebp - 0x518]
call fcn.00588148
push dword [ebp - 0x524]
call fcn.00588148
push dword [ebp - 0x530]
call fcn.00588148
add esp, 0x2c
lea ecx, [ebp - 0x568]
call fcn.00474810
mov byte [ebp - 4], 0xe1
mov ecx, dword [ebp - 0x56c]
test ecx, ecx
je 0x48a228
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
lea ecx, [ebp - 0x388]
mov byte [ebp - 4], 0x52
call fcn.00474810
mov eax, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x50], eax
cmp eax, dword [ebp - 0x124]
jae 0x48a405
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x6c]
jmp 0x4885d4
mov ecx, dword [ebp - 0x90]
mov byte [ebp - 4], 0x84
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
jmp 0x48a2f6
jle 0x48a2f6
movzx edx, dx
or edx, 0x80070000
mov dword [ebp - 0x34], edx
jmp 0x48a2f6
mov dword [ebp - 0x34], 0xffffffff
jmp 0x48a2f6
mov dword [ebp - 0x34], ecx
jmp 0x48a2f6
mov dword [ebp - 0x34], eax
test eax, eax
jle 0x48a2f6
movzx eax, ax
or eax, 0x80070000
mov dword [ebp - 0x34], eax
jmp 0x48a2f6
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x48a2c8
mov ecx, dword [eax]
push 2
push dword [ebp - 0x4c]
mov ecx, dword [ecx + 0xc]
push 2
push eax
call ecx
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x48a2f6
mov dword [ebp - 0x34], 0x80004005
jmp 0x48a2f6
mov dword [ebp - 0x34], 0x80004005
mov byte [ebp - 4], 0x8d
test ecx, ecx
je 0x48a2e8
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
push dword [ebp - 0x19c]
call fcn.00588148
add esp, 4
mov byte [ebp - 4], 0xc8
test esi, esi
je 0x48a306
mov eax, dword [esi]
push esi
mov eax, dword [eax + 8]
call eax
mov byte [ebp - 4], 0xc9
test edi, edi
je 0x48a316
mov eax, dword [edi]
push edi
mov eax, dword [eax + 8]
call eax
push dword [ebp - 0x190]
call fcn.00588148
add esp, 4
mov esi, dword [ebp - 0x44]
jmp 0x48a358
push ecx
call fcn.00588148
add esp, 4
mov dword [ebp - 0x34], 0x80004005
mov byte [ebp - 4], 0xdd
mov eax, dword [edi]
push edi
mov eax, dword [eax + 8]
call eax
push dword [ebp - 0x78]
call fcn.00588148
push dword [ebp - 0x58]
call fcn.00588148
add esp, 8
push dword [ebp - 0x4cc]
call fcn.00588148
push dword [ebp - 0x4d8]
call fcn.00588148
push dword [ebp - 0x4e4]
call fcn.00588148
push dword [ebp - 0x4f0]
call fcn.00588148
push dword [ebp - 0x4fc]
call fcn.00588148
push dword [ebp - 0x508]
call fcn.00588148
push dword [ebp - 0x518]
call fcn.00588148
push dword [ebp - 0x524]
call fcn.00588148
push dword [ebp - 0x530]
call fcn.00588148
add esp, 0x24
lea ecx, [ebp - 0x568]
call fcn.00474810
mov byte [ebp - 4], 0xde
mov ecx, dword [ebp - 0x56c]
test ecx, ecx
je 0x48a3f2
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
lea ecx, [ebp - 0x388]
call fcn.00474810
jmp 0x48a557
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x388]
call fcn.00474810
jmp 0x48a557
mov esi, dword [ebp - 0x44]
push 0
push 0
push dword [ebp - 0x88]
call fcn.00558180
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a557
mov edi, dword [ebp - 0x2d8]
cmp dword [ebp - 0x314], edi
jne 0x48a550
mov eax, dword [ebp - 0x32c]
cmp eax, edi
ja 0x48a550
test eax, eax
je 0x48a46f
cmp eax, edi
jae 0x48a46f
dec edi
cmp edi, eax
jb 0x48a465
nop
push 0
lea ecx, [ebp - 0x330]
call fcn.00483a40
cmp edi, dword [ebp - 0x32c]
jae 0x48a450
mov eax, dword [ebp - 0x330]
mov byte [edi + eax], 0
mov ecx, dword [ebp - 0x64]
mov edi, dword [ecx + 4]
test edi, edi
je 0x48a4af
nop dword [eax]
mov eax, dword [ecx]
dec edi
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x94], eax
test eax, eax
je 0x48a4ab
push dword [eax + 0x28]
call fcn.00588148
push 0x40
push dword [ebp - 0x94]
call fcn.00587dca
mov ecx, dword [ebp - 0x64]
add esp, 0xc
test edi, edi
jne 0x48a480
mov dword [ecx + 4], 0
push dword [ecx]
call fcn.00588148
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x330]
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
call fcn.00484460
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x48a503
mov ecx, dword [eax]
push 7
push 0xffffffffffffffff
push 0
mov ecx, dword [ecx + 0x10]
push eax
call ecx
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a557
mov ecx, dword [ebp - 0x6c]
lea eax, [ecx + 0x28]
push eax
push dword [ecx + 4]
lea eax, [ebp - 0x330]
push eax
lea ecx, [ebp - 0x408]
call fcn.00482e90
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a557
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x48a547
mov ecx, dword [eax]
push edi
push edi
push edi
mov ecx, dword [ecx + 0xc]
push edi
push eax
call ecx
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x48a557
mov dword [ebp - 0x34], 0
jmp 0x48a557
mov dword [ebp - 0x34], 0x80004005
push dword [ebp - 0x240]
call fcn.00588148
push dword [ebp - 0x24c]
call fcn.00588148
push dword [ebp - 0x258]
call fcn.00588148
push dword [ebp - 0x264]
call fcn.00588148
push dword [ebp - 0x270]
call fcn.00588148
push dword [ebp - 0x27c]
call fcn.00588148
push dword [ebp - 0x288]
call fcn.00588148
push dword [ebp - 0x294]
call fcn.00588148
push dword [ebp - 0x2a0]
call fcn.00588148
push dword [ebp - 0x2ac]
call fcn.00588148
push dword [ebp - 0x2b8]
call fcn.00588148
add esp, 0x2c
lea ecx, [ebp - 0x2c4]
call fcn.004390c0
push dword [ebp - 0x2d0]
call fcn.00588148
add esp, 4
lea ecx, [ebp - 0x2dc]
call fcn.00483980
push dword [ebp - 0x2e8]
call fcn.00588148
push dword [ebp - 0x2f4]
call fcn.00588148
push dword [ebp - 0x300]
call fcn.00588148
push dword [ebp - 0x30c]
call fcn.00588148
push dword [ebp - 0x318]
call fcn.00588148
push dword [ebp - 0x324]
call fcn.00588148
push dword [ebp - 0x330]
call fcn.00588148
add esp, 0x1c
mov byte [ebp - 4], 0xe7
mov ecx, dword [ebp - 0x3bc]
test ecx, ecx
je 0x48a65d
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov byte [ebp - 4], 0xe8
mov ecx, dword [ebp - 0x3c0]
test ecx, ecx
je 0x48a673
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov byte [ebp - 4], 0xe9
mov eax, dword [ebp - 0x3f0]
test eax, eax
je 0x48a68f
push 0x8000
push 0
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x3f0], 0
mov byte [ebp - 4], 0xea
test edi, edi
je 0x48a6ac
mov eax, dword [edi]
push edi
mov eax, dword [eax + 8]
call eax
lea ecx, [ebp - 0x4b8]
call fcn.00486ab0
mov eax, dword [ebp - 0x34c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x48a6e0
push eax
call edi
test eax, eax
jne 0x48a6d6
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x48a6e0
mov dword [ebp - 0x34c], 0
mov eax, dword [ebp - 0x350]
test eax, eax
je 0x48a703
push eax
call edi
test eax, eax
jne 0x48a6f9
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x48a703
mov dword [ebp - 0x350], 0
mov ecx, dword [ebp - 0x88]
mov byte [ebp - 4], 0xeb
push ecx
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0xec]
test ecx, ecx
je 0x48a758
nop
mov eax, dword [ebp - 0xf0]
dec ecx
mov dword [ebp - 0x94], ecx
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x48a754
push dword [edi + 0xc]
call fcn.00588148
push dword [edi]
call fcn.00588148
push 0x18
push edi
call fcn.00587dca
mov ecx, dword [ebp - 0x94]
add esp, 0x10
test ecx, ecx
jne 0x48a720
push dword [ebp - 0xf0]
call fcn.00588148
push dword [ebp - 0x128]
call fcn.00588148
push esi
call fcn.00588148
mov esi, dword [ebp - 0x34]
add esp, 0xc
mov byte [ebp - 4], 0xec
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x48a790
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
mov byte [ebp - 4], 0xed
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x48a7a6
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
mov dword [ebp - 4], 0xee
mov ecx, dword [ebp - 0xc0]
test ecx, ecx
je 0x48a7bf
mov edx, dword [ecx]
push ecx
mov ecx, dword [edx + 8]
call ecx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00587d99
mov esp, ebp
pop ebp
ret
push 0x5f79a8
lea eax, [ebp - 0x1e4]
mov dword [ebp - 0x1e4], 0x7e5
push eax
call fcn.0058acc1
push 0x5f79a8
lea eax, [ebp - 0x204]
mov dword [ebp - 0x204], 0x1330368
push eax
call fcn.0058acc1
push 0x5f79a8
lea eax, [ebp - 0x1c0]
mov dword [ebp - 0x1c0], 0x1330368
push eax
call fcn.0058acc1
push 0x5f79a8
lea eax, [ebp - 0x1b8]
mov dword [ebp - 0x1b8], 0x7e5
push eax
call fcn.0058acc1
int3