Function at 0x460370
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d576d
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x508164]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
mov ebx, dword [ebp + 8]
lea eax, [esi + 0x1d8]
add ebx, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 0x20], ebx
call fcn.00463440
xor edx, edx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], edx
mov edi, dword [esi + 0x30]
test edi, edi
je 0x4603f3
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048d929
add esp, 4
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], edi
xor edx, edx
xor esi, esi
xor ecx, ecx
test edi, edi
je 0x46043c
mov ebx, dword [ebp - 0x14]
nop
push 0x24
call fcn.0048d8f9
add esp, 4
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebx + 0x2c]
push dword [ecx + esi*4]
mov ecx, eax
call fcn.00463550
mov byte [ebp - 4], 0
inc esi
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + edx*4], eax
inc edx
mov dword [ebp - 0x18], edx
mov ecx, edx
mov dword [ebp - 0x28], edx
cmp esi, edi
jb 0x460400
mov ebx, dword [ebp - 0x20]
xor esi, esi
mov dword [ebp - 4], 2
mov dword [ebp - 0x1c], esi
test ecx, ecx
je 0x4604be
mov eax, dword [ebp - 0x2c]
nop
mov ebx, dword [eax + esi*4]
cmp dword [ebx + 0x10], 0
jne 0x4604b3
xor edi, edi
cmp byte [str.LZMA2], 0
je 0x46046e
inc edi
cmp byte [edi + str.LZMA2], 0
jne 0x460464
cmp edi, dword [ebx + 0x14]
jbe 0x460492
lea eax, [edi + 1]
push eax
call fcn.0048d929
push dword [ebx + 0xc]
mov esi, eax
call fcn.0048d8c3
mov dword [ebx + 0xc], esi
add esp, 8
mov esi, dword [ebp - 0x1c]
mov dword [ebx + 0x14], edi
mov edx, dword [ebx + 0xc]
mov ecx, str.LZMA2
mov dword [ebx + 0x10], edi
nop dword [eax]
mov al, byte [ecx]
lea edx, [edx + 1]
inc ecx
mov byte [edx - 1], al
test al, al
jne 0x4604a0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, edx
jb 0x460450
mov ebx, dword [ebp - 0x20]
test edx, edx
jne 0x46052d
push 0x24
call fcn.0048d8f9
add esp, 4
mov dword [ebp - 0x20], eax
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00455540
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
mov esi, eax
call fcn.00403f20
mov eax, dword [ebp - 0x28]
mov edx, str.LZMA2
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
mov dword [ecx + eax*4], esi
inc eax
mov ecx, dword [edi + 0x18]
cmp ecx, 0xffffffff
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], eax
mov eax, 5
cmove ecx, eax
mov eax, str.Copy
test ecx, ecx
lea ecx, [esi + 0xc]
cmovne eax, edx
push eax
call fcn.00451fe0
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov byte [esi + 0x18], 1
jmp 0x460533
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp + 8]
cmp dword [edi + 0x48], 0
je 0x4605b2
xor edx, edx
cmp dword [esi + 0x10], edx
jbe 0x460555
xor ecx, ecx
mov eax, dword [ebx]
inc edx
inc dword [eax + ecx + 8]
add eax, ecx
add ecx, 0xc
inc dword [eax]
cmp edx, dword [esi + 0x10]
jb 0x460542
push 0x24
call fcn.0048d8f9
add esp, 4
mov dword [ebp - 0x20], eax
lea ecx, [edi + 0x38]
mov byte [ebp - 4], 4
push ecx
mov ecx, eax
call fcn.00463550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
mov esi, eax
call fcn.00403f20
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
lea ecx, [eax*4]
push ecx
lea ecx, [ebx + 4]
push ebx
push ecx
call fcn.004a5980
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov eax, dword [ebp + 8]
inc edx
mov dword [ebx], esi
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x28], edx
mov byte [eax + 0x19], 1
jmp 0x4605b5
mov ebx, dword [ebp - 0x2c]
xor cl, cl
xor eax, eax
mov byte [ebp - 0xd], cl
mov dword [ebp - 0x20], eax
test edx, edx
je 0x460953
mov esi, dword [edi + 0x18]
mov ebx, dword [ebx + eax*4]
cmp esi, 0xffffffff
je 0x4605ff
mov ecx, dword [ebx + 4]
sub ecx, 1
js 0x4605f5
mov eax, dword [ebx]
lea edx, [eax + ecx*4]
nop
mov eax, dword [edx]
cmp dword [eax], 0xf
je 0x4605f1
sub edx, 4
sub ecx, 1
jns 0x4605e0
jmp 0x4605f5
test ecx, ecx
jns 0x4605ff
push esi
push 0xf
mov ecx, ebx
call fcn.00472180
mov ecx, dword [ebx + 4]
sub ecx, 1
js 0x460625
mov eax, dword [ebx]
lea edx, [eax + ecx*4]
nop dword [eax]
mov eax, dword [edx]
cmp dword [eax], 0xd
je 0x460621
sub edx, 4
sub ecx, 1
jns 0x460610
jmp 0x460625
test ecx, ecx
jns 0x460631
push dword [ebp + 0xc]
mov ecx, ebx
push 0xd
call fcn.00472180
push 0x20
call fcn.0048d8f9
mov edi, dword [ebp + 8]
mov esi, eax
add esp, 4
mov dword [ebp - 0x1c], esi
mov ecx, edi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.00403f20
mov edx, dword [edi + 4]
mov ecx, dword [edi]
push ebx
push esi
mov dword [ecx + edx*4], esi
inc dword [edi + 4]
call fcn.00460250
mov edi, eax
test edi, edi
jne 0x46097a
mov ecx, dword [esi + 0x10]
mov eax, ecx
mov edx, dword [esi + 0x14]
or eax, edx
je 0x46068a
mov byte [ebp - 0xd], 1
mov edi, dword [ebp - 0x14]
cmp byte [edi + 0x78], 0
jne 0x46093d
test edx, edx
ja 0x46093d
jb 0x4606ad
cmp ecx, 0x40202
ja 0x46093d
cmp ecx, 0x30401
ja 0x460816
je 0x46077d
cmp ecx, 0x21
je 0x4606d0
cmp ecx, 0x30101
jne 0x46093d
mov ecx, dword [ebx + 4]
sub ecx, 1
mov edx, ecx
js 0x4606f2
mov edi, dword [ebx]
lea esi, [edi + edx*4]
nop
mov eax, dword [esi]
cmp dword [eax], 1
je 0x460727
sub esi, 4
sub edx, 1
jns 0x4606e0
mov edi, dword [ebp - 0x14]
test ecx, ecx
js 0x46070f
mov esi, dword [ebx]
lea edx, [esi + ecx*4]
nop dword [eax + eax]
mov eax, dword [edx]
cmp dword [eax], 0xf
je 0x460740
sub edx, 4
sub ecx, 1
jns 0x460700
mov ecx, 5
lea ecx, [ecx*2 + 0xe]
mov edx, 1
shl edx, cl
jmp 0x4608ec
test edx, edx
js 0x4606ef
mov edx, dword [edi + edx*4]
cmp word [edx + 8], 0x13
jne 0x4606ef
mov edx, dword [edx + 0x10]
mov edi, dword [ebp - 0x14]
jmp 0x4608ec
test ecx, ecx
js 0x46070f
mov ecx, dword [esi + ecx*4]
cmp word [ecx + 8], 0x13
je 0x460755
mov ecx, 9
jmp 0x460768
mov ecx, dword [ecx + 0x10]
mov eax, 9
cmp ecx, 9
cmova ecx, eax
cmp ecx, 5
jle 0x460714
cmp ecx, 6
mov edx, 0x4000000
mov eax, 0x2000000
cmove edx, eax
jmp 0x4608ec
mov ecx, dword [ebx + 4]
sub ecx, 1
mov edx, ecx
js 0x4607a2
mov edi, dword [ebx]
lea esi, [edi + edx*4]
nop dword [eax]
mov eax, dword [esi]
cmp dword [eax], 2
je 0x4607d3
sub esi, 4
sub edx, 1
jns 0x460790
mov edi, dword [ebp - 0x14]
test ecx, ecx
js 0x4607bf
mov esi, dword [ebx]
lea edx, [esi + ecx*4]
nop dword [eax + eax]
mov eax, dword [edx]
cmp dword [eax], 0xf
je 0x4607ec
sub edx, 4
sub ecx, 1
jns 0x4607b0
mov ecx, 5
add ecx, 0x13
mov edx, 1
shl edx, cl
jmp 0x4608ec
test edx, edx
js 0x46079f
mov edx, dword [edi + edx*4]
cmp word [edx + 8], 0x13
jne 0x46079f
mov edx, dword [edx + 0x10]
mov edi, dword [ebp - 0x14]
jmp 0x4608ec
test ecx, ecx
js 0x4607bf
mov ecx, dword [esi + ecx*4]
cmp word [ecx + 8], 0x13
jne 0x46080c
mov ecx, dword [ecx + 0x10]
mov eax, 9
cmp ecx, 9
cmova ecx, eax
cmp ecx, eax
jl 0x4607c4
mov edx, 0xc000000
jmp 0x4608ec
cmp ecx, 0x40108
je 0x4608e7
cmp ecx, 0x40202
jne 0x46093d
mov ecx, dword [ebx + 4]
sub ecx, 1
mov edx, ecx
js 0x460852
mov edi, dword [ebx]
lea esi, [edi + edx*4]
nop dword [eax]
mov eax, dword [esi]
cmp dword [eax], 1
je 0x460876
sub esi, 4
sub edx, 1
jns 0x460840
mov edi, dword [ebp - 0x14]
test ecx, ecx
js 0x46086f
mov esi, dword [ebx]
lea edx, [esi + ecx*4]
nop dword [eax + eax]
mov eax, dword [edx]
cmp dword [eax], 0xf
je 0x4608ac
sub edx, 4
sub ecx, 1
jns 0x460860
mov edx, 0xdbba0
jmp 0x4608ec
test edx, edx
js 0x46084f
mov edx, dword [edi + edx*4]
cmp word [edx + 8], 0x13
jne 0x46084f
mov edx, dword [edx + 0x10]
cmp edx, 0x186a0
jae 0x460899
mov edi, dword [ebp - 0x14]
mov edx, 0x186a0
jmp 0x4608ec
mov edi, dword [ebp - 0x14]
cmp edx, 0xdbba0
mov eax, 0xdbba0
cmova edx, eax
jmp 0x4608ec
test ecx, ecx
js 0x46086f
mov eax, dword [esi + ecx*4]
cmp word [eax + 8], 0x13
jne 0x46086f
mov eax, dword [eax + 0x10]
mov ecx, 9
cmp eax, 9
cmova eax, ecx
cmp eax, 5
jge 0x46086f
cmp eax, 1
jl 0x4608e0
imul edx, eax, 0x30d40
sub edx, 0x186a0
jmp 0x4608ec
mov edx, 0x186a0
jmp 0x4608ec
mov edx, 0x8000
xor eax, eax
shld eax, edx, 7
shl edx, 7
mov dword [edi + 0x70], edx
mov dword [edi + 0x74], eax
test eax, eax
ja 0x460920
jb 0x460909
cmp edx, 0x1000000
jae 0x460920
mov dword [edi + 0x70], 0x1000000
mov ecx, 0x1000000
mov dword [edi + 0x74], 0
xor eax, eax
jmp 0x460922
mov ecx, edx
test eax, eax
jne 0x46092b
cmp ecx, 0xffffffff
jbe 0x460939
mov dword [edi + 0x70], 0xffffffff
mov dword [edi + 0x74], 0
mov byte [edi + 0x78], 1
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x18]
jb 0x4605c7
mov cl, byte [ebp - 0xd]
cmp byte [edi + 0x78], 0
jne 0x460974
mov dword [edi + 0x74], 0
test cl, cl
je 0x46096d
mov dword [edi + 0x70], 0xffffffff
jmp 0x460974
mov dword [edi + 0x70], 0
mov byte [edi + 0x78], 1
xor edi, edi
lea ecx, [ebp - 0x2c]
call fcn.00457540
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8