Function at 0x10014b00
Capabilities:
Parse pe header

Disassembly:
push ebp
lea ebp, [esp - 0x109c]
mov eax, 0x109c
call fcn.1015dc90
push 0xffffffffffffffff
push 0x1015f8f6
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x101ed004]
xor eax, ebp
mov dword [ebp + 0x1098], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 0x10a4]
mov ebx, dword [ebp + 0x10ac]
mov edi, dword [ebp + 0x10a8]
mov dword [ebp + 0xa68], eax
mov eax, dword [ebp + 0x10b0]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10b4]
push 0x400
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0xc78]
push 0
push eax
mov dword [ebp + 8], ebx
call fcn.10143f10
add esp, 0xc
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], 0
test ebx, ebx
je 0x10014c23
mov ecx, 0x101d2804
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10014bc6
test dx, dx
je 0x10014bc2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10014bc6
add eax, 4
add ecx, 4
test dx, dx
jne 0x10014ba0
xor eax, eax
jmp 0x10014bcb
sbb eax, eax
or eax, 1
test eax, eax
je 0x10014bf1
push 4
push str..k2k
push ebx
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], 0
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x10014c05
xorps xmm0, xmm0
movlpd qword [ebp + 0x10], xmm0
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
push 3
push 0x101d2818
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x10014c23
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x10], eax
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x24]
call eax
mov esi, dword [edi]
mov ecx, edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
mov esi, dword [esi + 0x28]
call esi
cmp edx, dword [ebp - 0x10]
jl 0x10014f1c
jg 0x10014c4f
cmp eax, dword [ebp - 0x14]
jb 0x10014f1c
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
test edx, edx
jl 0x10014d14
jg 0x10014c6d
cmp eax, 0x1400000
jbe 0x10014d14
mov eax, dword [edi]
mov ecx, edi
push 2
push 0xffffffffffffffff
push 0xffffffffffffffe0
call dword [eax + 0x20]
mov eax, dword [edi]
lea ecx, [ebp + 0x1078]
push 0x20
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x10014d14
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
sub eax, 0x20
push 0
push 0x3d090000
sbb edx, 0
push edx
push eax
call fcn.1015d9d0
cmp eax, 1
jle 0x10014cd3
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
sub eax, 0x20
push 0
push 0x3d090000
sbb edx, 0
push edx
push eax
call fcn.1015d9d0
jmp 0x10014cd8
mov eax, 1
cmp dword [ebp + 0x1078], 0
jne 0x10014d14
cmp dword [ebp + 0x107c], 0
jne 0x10014d14
cmp dword [ebp + 0x1080], eax
jne 0x10014d14
cmp dword [ebp + 0x1090], 0x3030334c
jne 0x10014d14
cmp dword [ebp + 0x1094], 0x39303030
jne 0x10014d14
mov eax, 0x24
jmp 0x10014f21
test ebx, ebx
je 0x10014e7d
push 3
push 0x101d2818
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x10014e7d
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x24]
call eax
mov esi, dword [edi]
mov ecx, edi
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x34], edx
mov esi, dword [esi + 0x28]
call esi
push 0
push 0
mov ecx, edi
mov dword [ebp - 0x30], eax
mov esi, edx
call fcn.10001490
test esi, esi
jl 0x10014e7d
jg 0x10014d70
cmp dword [ebp - 0x30], 2
jb 0x10014e7d
lea ecx, [ebp + 0x828]
call fcn.10002c90
push 0x810
lea eax, [ebp + 0x18]
push 0
push eax
call fcn.10143f10
add esp, 0xc
lea eax, [ebp + 0x828]
lea ecx, [ebp + 0x18]
push eax
call fcn.1005bf20
mov dword [ebp - 4], 0
lea ecx, [ebp + 0x18]
mov dword [ebp + 0x18], vtable.CArkUnBrotli.0
call fcn.1005c370
mov dword [ebp - 4], 1
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x1088], 0
mov dword [ebp + method.CArkMemOut.1.virtual_0], vtable.CArkNullOut.0
mov dword [ebp + 0x1084], 0x101d41b4
push 0xa8
lea eax, [ebp + 0x9c0]
push 0
push eax
call fcn.10143f10
add esp, 0xc
mov byte [ebp - 4], 3
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x28]
call eax
push 0
mov dword [ebp + 0x9d0], eax
lea ecx, [ebp + 0x18]
push 0x2800
lea eax, [ebp + 0x1080]
mov dword [ebp + 0x9d4], edx
push eax
lea eax, [ebp + 0x9c0]
push eax
call fcn.100461b0
lea ecx, [ebp + 0x9c0]
mov dword [ebp + 0x48], 0
mov esi, eax
call fcn.1001d4f0
push dword [ebp - 0x34]
mov byte [ebp - 4], 1
mov ecx, edi
push dword [ebp + 0x14]
mov dword [ebp + method.CArkMemOut.1.virtual_0], vtable.CArkNullOut.0
mov dword [ebp + method.CArkUnknownImp.virtual_0], vtable.CArkUnknownImp.0
call fcn.10001490
lea ecx, [ebp + 0x18]
mov dword [ebp - 4], 0xffffffff
call fcn.10045f90
test esi, esi
je 0x10014e7d
mov eax, 0x31
jmp 0x10014f21
mov eax, dword [ebp - 0x1c]
mov ecx, edi
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [edi]
call dword [eax + 0x20]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
cmp edx, dword [ebp - 0x10]
jl 0x10014f1c
jg 0x10014eb1
cmp eax, dword [ebp - 0x14]
jb 0x10014f1c
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
test edx, edx
jg 0x10014eee
jl 0x10014ec7
cmp eax, 0x7fffffff
jae 0x10014eee
cmp eax, 0x400
jg 0x10014eee
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
mov esi, eax
test edx, edx
jl 0x10014ef3
jg 0x10014ee7
cmp esi, 0x7fffffff
jb 0x10014ef3
mov esi, SysReAllocString
jmp 0x10014ef3
mov esi, 0x400
mov eax, dword [edi]
lea ecx, [ebp + 0xc78]
push esi
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
jne 0x10014f46
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x4c]
mov ecx, dword [ebp + 0xa68]
mov dword [ecx], 0xa0000015
mov dword [ecx + 4], eax
mov eax, 0xff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1098]
xor ecx, ebp
call fcn.10142783
lea esp, [ebp + 0x109c]
pop ebp
ret 0x14
mov ecx, dword [ebp - 0x18]
lea eax, [ebp + 0xc78]
push 0
push 0
push esi
push eax
call fcn.100045a0
mov esi, eax
mov dword [ebp - 0x10], esi
cmp esi, 0xff
je 0x100152fe
cmp esi, 0xa
jne 0x10015119
mov edx, dword [edi]
mov ecx, edi
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call dword [edx + 0x20]
mov eax, dword [edi]
lea ecx, [ebp + 0x1078]
push 0x20
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x100150b2
cmp byte [ebp + 0x107e], 0
jne 0x10014fb7
cmp byte [ebp + 0x107f], 3
jae 0x10014fb7
mov esi, 1
jmp 0x100150b4
push 0x101f1fd0
push 0x14
lea edx, [ebp + 0x1084]
or ecx, 0xffffffff
call fcn.100d5f20
mov ecx, dword [ebp + 0x1080]
not eax
test ecx, ecx
je 0x10014fe0
cmp eax, ecx
jne 0x100150b2
xorps xmm0, xmm0
mov dword [ebp + 8], 0
xor esi, esi
movq qword [ebp], xmm0
mov dword [ebp + 8], esi
mov dword [ebp], vtable.CArkAutoByte.0
mov dword [ebp - 4], 4
mov eax, dword [ebp + 0x108c]
mov dword [ebp + 0xa68], eax
cmp eax, 0x7fffffff
jae 0x1001509e
push eax
call fcn.10146843
mov esi, eax
add esp, 4
mov eax, dword [ebp + 0xa68]
mov dword [ebp + 4], esi
mov dword [ebp + 8], eax
test esi, esi
je 0x1001509e
mov eax, dword [edi]
mov ecx, edi
push 1
push dword [ebp + 0x1088]
push dword [ebp + 0x1084]
mov eax, dword [eax + 0x20]
call eax
and eax, edx
cmp eax, 0xffffffff
je 0x1001509e
push dword [ebp + 0x108c]
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0x18]
test eax, eax
je 0x1001509e
push 0x101f1fd0
push dword [ebp + 0x108c]
mov edx, esi
or ecx, 0xffffffff
call fcn.100d5f20
not eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0x1094], eax
jne 0x100150a5
test esi, esi
je 0x10015097
push esi
call fcn.10146720
add esp, 4
mov esi, 1
jmp 0x100150b4
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x100150b2
push esi
call fcn.10146720
add esp, 4
xor esi, esi
test ebx, ebx
je 0x10015109
push 4
push str..001
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x10015109
test esi, esi
je 0x100150ff
push eax
push 0x101eee10
push 0x101eedf4
push eax
push edi
call fcn.10144d90
add esp, 0x14
test eax, eax
je 0x100150f5
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x60]
cmp eax, 1
jne 0x100150ff
mov eax, 0xa
jmp 0x10014f21
mov eax, 0xb
jmp 0x10014f21
test esi, esi
jne 0x100152f6
lea eax, [esi + 0xc]
jmp 0x10014f21
cmp esi, 6
jne 0x1001513b
push ebx
lea eax, [ebp + 0xc78]
push eax
call fcn.100044f0
test eax, eax
je 0x100152f6
lea eax, [esi + 1]
jmp 0x10014f21
cmp esi, 8
jne 0x1001515d
push ebx
lea eax, [ebp + 0xc78]
push eax
call fcn.100044f0
test eax, eax
je 0x100152f6
lea eax, [esi + 1]
jmp 0x10014f21
cmp esi, 0x15
jne 0x10015298
mov ebx, dword [ebp - 0x18]
cmp dword [ebx + 0x6c], 0
je 0x100152f6
push 0x1d4
lea eax, [ebp + 0x894]
push 0
push eax
call fcn.10143f10
xorps xmm0, xmm0
mov dword [ebp + 0x8a8], 0
add esp, 0xc
mov dword [ebp + 0x8ac], 0
movups xmmword [ebp + 0x898], xmm0
mov dword [ebp + 0xa34], 0
mov dword [ebp + 0x8bc], 0
mov dword [ebp + 0xa60], 0
mov dword [ebp + 0xa38], 0
mov dword [ebp + 0x8c8], 0
mov dword [ebp + 0xa48], 0x10170d64
push 0
mov dword [ebp - 4], 5
mov ecx, edi
mov eax, dword [edi]
push 0
push 0
call dword [eax + 0x20]
push 0
push dword [ebx + 0x48]
lea eax, [ebp + 0xa70]
mov ecx, edi
push eax
lea edx, [ebp]
call fcn.10032570
add esp, 0xc
test eax, eax
jne 0x10015227
lea ecx, [ebp + 0x894]
call fcn.10058660
mov eax, dword [ebp - 0x10]
jmp 0x10014f21
mov eax, dword [edi]
lea ecx, [ebp + 0xa68]
push ecx
push 0x400
lea ecx, [ebp + 0x428]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
lea ecx, [ebp + 0x894]
test eax, eax
je 0x1001521a
push 0
call fcn.10058790
push dword [ebp + 0xa68]
lea eax, [ebp + 0x428]
push eax
lea ecx, [ebp + 0x894]
call fcn.100588c0
test eax, eax
jne 0x10015214
mov edx, dword [ebp + 0x8c4]
mov ecx, dword [ebp + 0x8bc]
call fcn.10035f10
lea ecx, [ebp + 0x894]
test eax, eax
je 0x1001521a
call fcn.10058660
mov eax, 0x22
jmp 0x10014f21
cmp esi, 0x16
jne 0x100152b8
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x70], 0
je 0x100152f6
push edi
call fcn.100148e0
test eax, eax
je 0x100152f6
lea eax, [esi + 0xd]
jmp 0x10014f21
cmp esi, 0xff
jl 0x100152e2
test ebx, ebx
je 0x100152f6
push 4
push str..001
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x100152f6
mov eax, 0x13
jmp 0x10014f21
cmp esi, 0x29
jne 0x100152f6
mov ecx, edi
call fcn.1005a230
cmp al, 1
je 0x10015384
mov eax, dword [ebp - 0x10]
jmp 0x10014f21
test ebx, ebx
je 0x10015316
push 4
push str..iso
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
je 0x10015379
cmp byte [ebp + 0xc78], 0
jne 0x10015413
cmp byte [ebp + 0xc79], 0
jne 0x1001543d
cmp byte [ebp + 0xc7a], 0
jne 0x1001543d
cmp byte [ebp + 0xc7b], 0
jne 0x1001543d
cmp byte [ebp + 0xc87], 0
jne 0x1001543d
mov eax, dword [ebp + 0xc88]
test al, al
jne 0x1001543d
test ah, ah
jne 0x1001543d
cmp byte [ebp + 0xc8a], ah
jne 0x1001543d
mov ecx, edi
call fcn.1005a230
cmp al, 1
jne 0x1001538e
mov eax, 0x12
jmp 0x10014f21
mov eax, dword [edi]
mov ecx, edi
push 0
push 0
push 0x8000
mov eax, dword [eax + 0x20]
call eax
cmp eax, 0x8000
jne 0x10015413
test edx, edx
jne 0x10015413
mov eax, dword [edi]
lea ecx, [ebp + 0xc78]
push 0x40
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x10015413
cmp byte [ebp + 0xc78], 1
jne 0x100153ff
cmp byte [ebp + 0xc79], 0x43
jne 0x100153ff
cmp byte [ebp + 0xc7a], 0x44
jne 0x100153ff
cmp byte [ebp + 0xc7b], 0x30
jne 0x100153ff
cmp byte [ebp + 0xc7c], 0x30
jne 0x100153ff
cmp byte [ebp + 0xc7d], 0x31
jne 0x100153ff
mov eax, 0x10
jmp 0x10014f21
test ebx, ebx
je 0x10015413
push 4
push str..zip
push ebx
call fcn.1014e3f0
add esp, 0xc
cmp byte [ebp + 0xc78], 0x4d
jne 0x1001543d
cmp byte [ebp + 0xc79], 0x5a
jne 0x1001543d
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
push eax
push edi
call fcn.10005370
cmp eax, 0xff
jne 0x10014f21
test ebx, ebx
je 0x1001555e
push 4
push str..iso
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
je 0x10015471
push 4
push str..bin
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x1001555e
cmp byte [ebp + 0xc78], 0
jne 0x10015654
cmp byte [ebp + 0xc79], 0
jne 0x1001556b
cmp byte [ebp + 0xc7a], 0
jne 0x10015654
cmp byte [ebp + 0xc7b], 0
jne 0x10015654
cmp byte [ebp + 0xc7c], 0
jne 0x10015654
cmp byte [ebp + 0xc7d], 0
jne 0x10015654
cmp byte [ebp + 0xc7e], 0
jne 0x10015654
cmp byte [ebp + 0xc7f], 0
jne 0x10015654
mov eax, dword [edi]
mov ecx, edi
push 0
push 0
push 0x9318
mov eax, dword [eax + 0x20]
call eax
cmp eax, 0x9318
jne 0x1001555e
test edx, edx
jne 0x1001555e
mov eax, dword [edi]
lea ecx, [ebp + 0xc78]
push 0x40
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x1001555e
cmp byte [ebp + 0xc78], 1
jne 0x1001555e
cmp byte [ebp + 0xc79], 0x43
jne 0x10015654
cmp byte [ebp + 0xc7a], 0x44
jne 0x10015654
cmp byte [ebp + 0xc7b], 0x30
jne 0x10015654
cmp byte [ebp + 0xc7c], 0x30
jne 0x10015654
cmp byte [ebp + 0xc7d], 0x31
jne 0x10015654
mov eax, 0x29
jmp 0x10014f21
cmp byte [ebp + 0xc78], 0
jne 0x10015650
cmp byte [ebp + 0xc79], 0xff
jne 0x10015650
cmp byte [ebp + 0xc7a], 0xff
jne 0x10015650
cmp byte [ebp + 0xc7b], 0xff
jne 0x10015650
cmp byte [ebp + 0xc7c], 0xff
jne 0x10015650
cmp byte [ebp + 0xc7d], 0xff
jne 0x10015650
cmp byte [ebp + 0xc7e], 0xff
jne 0x10015650
mov eax, dword [ebp + 0xc7f]
cmp al, 0xff
jne 0x10015650
cmp ah, al
jne 0x10015650
cmp byte [ebp + 0xc81], al
jne 0x10015650
cmp byte [ebp + 0xc82], al
jne 0x10015650
mov eax, dword [edi]
mov ecx, edi
push 0
push 0
push 0x9310
mov eax, dword [eax + 0x20]
call eax
cmp eax, 0x9310
jne 0x10015650
test edx, edx
jne 0x10015650
mov eax, dword [edi]
lea ecx, [ebp + 0xc78]
push 0x40
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x10015650
cmp byte [ebp + 0xc78], 1
jne 0x10015650
cmp byte [ebp + 0xc79], 0x43
jne 0x10015650
cmp byte [ebp + 0xc7a], 0x44
jne 0x10015650
cmp byte [ebp + 0xc7b], 0x30
jne 0x10015650
cmp byte [ebp + 0xc7c], 0x30
jne 0x10015650
cmp byte [ebp + 0xc7d], 0x31
jne 0x10015650
mov eax, 0x11
jmp 0x10014f21
test ebx, ebx
je 0x100156c2
push 5
push str..lzma
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
je 0x100156b8
push 4
push str..tlz
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
je 0x100156b8
push 4
push str..001
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x1001569a
mov eax, 0x13
jmp 0x10014f21
push 4
push str..k2k
push ebx
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x100156c2
mov eax, 0x26
jmp 0x10014f21
mov eax, 0x17
jmp 0x10014f21
cmp byte [ebp + 0xe76], 0x55
jne 0x100156f5
cmp byte [ebp + 0xe77], 0xaa
jne 0x100156f5
cmp byte [ebp + 0xe3a], 0
je 0x100156eb
mov al, byte [ebp + 0xe36]
test al, al
je 0x100156eb
cmp al, 0x80
jne 0x100156f5
mov eax, 0x107
jmp 0x10014f21
mov eax, dword [ebp + 0xc78]
cmp eax, 0x73717368
je 0x10015d42
cmp eax, 0x68737173
je 0x10015d42
cmp eax, 0x71736873
je 0x10015d42
mov eax, dword [edi]
mov ecx, edi
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call dword [eax + 0x20]
mov ebx, dword [ebp - 0x28]
xorps xmm0, xmm0
push ebx
movq qword [ebp + 0xc], xmm0
mov dword [ebp + 0x14], 0
call fcn.10146843
mov esi, eax
mov dword [ebp + 0x14], ebx
add esp, 4
mov dword [ebp + 0x10], esi
mov dword [ebp + 0xc], vtable.CArkAutoByte.0
mov dword [ebp - 4], 6
mov dword [ebp + 0xa6c], 0
test esi, esi
je 0x10015d26
mov eax, dword [edi]
lea ecx, [ebp + 0xa6c]
push ecx
push ebx
push esi
mov ecx, edi
call dword [eax + 0x1c]
test eax, eax
je 0x10015d26
mov edx, dword [ebp + 0xa6c]
test edx, edx
je 0x10015d26
mov ecx, esi
call fcn.10035f10
test eax, eax
je 0x100157a9
mov esi, 0xd
jmp 0x10015d2b
mov ecx, dword [ebp + 0xa6c]
xor ebx, ebx
lea eax, [ecx - 0x40]
test eax, eax
jle 0x100157f4
push 0
sub ecx, ebx
lea eax, [ebx + esi]
push ebx
push ecx
mov ecx, dword [ebp - 0x18]
push eax
call fcn.100045a0
mov ecx, dword [ebp - 0x1c]
mov esi, eax
mov eax, ebx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
cmp esi, 0xff
jne 0x10015d2b
mov ecx, dword [ebp + 0xa6c]
inc ebx
mov esi, dword [ebp + 0x10]
lea eax, [ecx - 0x40]
cmp ebx, eax
jl 0x100157b8
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc78]
mov dword [ebx], 0
mov dword [ebx + 4], 0
cmp al, 0x52
jne 0x10015833
cmp byte [ebp + 0xc79], 0x48
jne 0x1001585c
cmp byte [ebp + 0xc7a], 0x44
jne 0x1001585c
cmp byte [ebp + 0xc7b], 0x45
jne 0x1001585c
mov esi, 0x25
jmp 0x10015d2b
cmp al, 0x50
jne 0x1001585c
cmp byte [ebp + 0xc79], 0x4a
jne 0x1001585c
cmp byte [ebp + 0xc7a], 1
jne 0x1001585c
cmp byte [ebp + 0xc7b], 7
jne 0x1001585c
mov esi, 0x25
jmp 0x10015d2b
cmp byte [ebp + 0xc80], 0x65
jne 0x100158ae
cmp byte [ebp + 0xc81], 0x68
jne 0x100158ae
cmp byte [ebp + 0xc82], 0x7e
jne 0x100158ae
cmp byte [ebp + 0xc83], 0x79
jne 0x100158ae
cmp byte [ebp + 0xc84], 0x63
jne 0x100158ae
cmp byte [ebp + 0xc85], 0x7e
jne 0x100158ae
cmp byte [ebp + 0xc86], 0x65
jne 0x100158ae
cmp byte [ebp + 0xc87], 0x6e
jne 0x100158ae
mov esi, 0x25
jmp 0x10015d2b
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
mov esi, dword [ebp + 8]
test esi, esi
je 0x10015a2b
test edx, edx
jl 0x1001590b
jg 0x100158cd
cmp eax, 0x1d
jbe 0x1001590b
push 4
push str..arc
push esi
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x1001590b
cmp byte [ebp + 0xc78], 0x1a
jne 0x1001590b
mov eax, dword [ebp + 0xc79]
test al, al
je 0x1001590b
cmp al, 9
ja 0x1001590b
cmp byte [ebp + 0xc7a], 0
je 0x1001590b
mov esi, 0x2d
jmp 0x10015d2b
push 4
push str..zip
push esi
call fcn.1014e3f0
add esp, 0xc
test eax, eax
je 0x1001595f
push 5
push str..zipx
push esi
call fcn.1014e3f0
add esp, 0xc
test eax, eax
je 0x1001595f
push 4
push str..jar
push esi
call fcn.1014e3f0
add esp, 0xc
test eax, eax
je 0x1001595f
push 4
push str..lha
push esi
call fcn.1014e3f0
add esp, 0xc
test eax, eax
jne 0x10015a2b
lea edx, [ebp + 4]
mov ecx, edi
call fcn.10020250
test eax, eax
je 0x10015a2b
mov esi, dword [ebp + 4]
mov eax, esi
mov ecx, dword [ebp + 8]
or eax, ecx
jne 0x1001598b
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
cmp eax, 0x16
jmp 0x100159a0
cmp esi, 4
jne 0x100159ad
test ecx, ecx
jne 0x100159ad
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
cmp eax, 0x1a
jne 0x100159ad
test edx, edx
jne 0x100159ad
xor esi, esi
jmp 0x10015d2b
cmp dword [ebp + 0xc78], 0x6064b50
jne 0x100159f2
cmp dword [ebp + 0xc8c], 0
jne 0x100159f2
cmp dword [ebp + 0xc88], 0
jne 0x100159f2
mov eax, dword [ebp + 0xc98]
or eax, dword [ebp + 0xc9c]
jne 0x100159f2
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
cmp eax, 0x62
jne 0x100159f2
test edx, edx
jne 0x100159f2
xor esi, esi
jmp 0x10015d2b
push dword [ebp + 8]
xorps xmm0, xmm0
lea edx, [ebp - 0x2c]
push esi
mov ecx, edi
movlpd qword [ebp - 0x2c], xmm0
call fcn.10020420
add esp, 8
test eax, eax
je 0x10015a21
mov eax, dword [ebp - 0x2c]
xor esi, esi
mov ecx, dword [ebp - 0x28]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x10015d2b
mov esi, 1
jmp 0x10015d2b
mov ecx, dword [ebp + 0xa6c]
xor eax, eax
mov ebx, dword [ebp + 0x10]
test ecx, ecx
jle 0x10015a4b
nop word [eax + eax]
cmp byte [eax + ebx], 0
jne 0x10015a55
inc eax
cmp eax, ecx
jl 0x10015a40
mov esi, 0x201
jmp 0x10015d2e
mov eax, dword [ebp + 0xc78]
cmp al, 0x52
jne 0x10015a84
cmp byte [ebp + 0xc79], 0x49
jne 0x10015aad
cmp byte [ebp + 0xc7a], 0x46
jne 0x10015aad
cmp byte [ebp + 0xc7b], 0x46
jne 0x10015aad
mov esi, 0x202
jmp 0x10015d2e
cmp al, 0x4f
jne 0x10015aad
cmp byte [ebp + 0xc79], 0x67
jne 0x10015aad
cmp byte [ebp + 0xc7a], 0x67
jne 0x10015aad
cmp byte [ebp + 0xc7b], 0x53
jne 0x10015aad
mov esi, 0x208
jmp 0x10015d2e
cmp eax, 0x21544953
je 0x10015b06
cmp eax, 0x36345453
je 0x10015b06
cmp eax, 0x30355453
je 0x10015b06
cmp eax, 0x30365453
je 0x10015b06
cmp eax, 0x35365453
je 0x10015b06
cmp eax, 0x6e695453
je 0x10015b06
cmp eax, 0x32695453
je 0x10015b06
cmp eax, 0x33695453
je 0x10015b06
cmp eax, 0x34695453
je 0x10015b06
push 0x10
lea eax, [ebp + 0xc78]
push str.StuffIt__c_1997_
push eax
call fcn.1014c3c0
add esp, 0xc
test eax, eax
jne 0x10015b10
mov esi, 0x100
jmp 0x10015d2e
push 8
lea eax, [ebp + 0xc78]
push 0x101d28ac
push eax
call fcn.1014c3c0
add esp, 0xc
test eax, eax
je 0x10015b06
push 8
lea eax, [ebp + 0xc78]
push str.StuffIt_
push eax
call fcn.1014c3c0
add esp, 0xc
test eax, eax
je 0x10015b06
mov eax, dword [ebp + 0xc78]
mov edx, dword [ebp + 0xc7a]
mov ecx, dword [ebp + 0xc79]
cmp al, 0x9a
jne 0x10015bc5
cmp cl, 1
jne 0x10015be5
test dl, dl
jne 0x10015be5
cmp byte [ebp + 0xc7b], dl
jne 0x10015be5
cmp byte [ebp + 0xc7c], 0x42
jne 0x10015be5
cmp byte [ebp + 0xc7d], 0x41
jne 0x10015be5
cmp byte [ebp + 0xc7e], 0x52
jne 0x10015be5
cmp byte [ebp + 0xc7f], 0x4f
jne 0x10015be5
cmp byte [ebp + 0xc80], 0x50
jne 0x10015be5
cmp byte [ebp + 0xc81], 0x41
jne 0x10015be5
cmp byte [ebp + 0xc82], 0x53
jne 0x10015be5
cmp byte [ebp + 0xc83], 0x53
jne 0x10015be5
mov esi, 0x101
jmp 0x10015d2e
cmp al, 0x3c
jne 0x10015c33
cmp cl, 0x68
jne 0x10015c0d
cmp dl, 0x74
jne 0x10015be5
cmp byte [ebp + 0xc7b], 0x6d
jne 0x10015be5
cmp byte [ebp + 0xc7c], 0x6c
je 0x10015c29
lea esi, [ebp + 0xc78]
cmp dword [esi], 0x38464947
jne 0x10015cd6
cmp word [esi + 4], 0x6139
jne 0x10015cd0
mov esi, 0x207
jmp 0x10015d2e
cmp cl, 0x48
jne 0x10015be5
cmp dl, 0x54
jne 0x10015be5
cmp byte [ebp + 0xc7b], 0x4d
jne 0x10015be5
cmp byte [ebp + 0xc7c], 0x4c
jne 0x10015be5
mov esi, 0x204
jmp 0x10015d2e
cmp al, 0xff
jne 0x10015c4a
cmp cl, 0xd8
jne 0x10015be5
cmp dl, al
jne 0x10015be5
mov esi, 0x205
jmp 0x10015d2e
cmp al, 0x89
jne 0x10015be5
cmp cl, 0x50
jne 0x10015be5
cmp dl, 0x4e
jne 0x10015be5
cmp byte [ebp + 0xc7b], 0x47
jne 0x10015be5
cmp byte [ebp + 0xc7c], 0xd
jne 0x10015be5
cmp byte [ebp + 0xc7d], 0xa
jne 0x10015be5
cmp byte [ebp + 0xc7e], 0x1a
jne 0x10015be5
cmp byte [ebp + 0xc7f], 0xa
jne 0x10015be5
cmp byte [ebp + 0xc84], 0x49
jne 0x10015be5
cmp byte [ebp + 0xc85], 0x48
jne 0x10015be5
cmp byte [ebp + 0xc86], 0x44
jne 0x10015be5
cmp byte [ebp + 0xc87], 0x52
jne 0x10015be5
mov esi, 0x206
jmp 0x10015d2e
mov ecx, dword [ebp + 0xc79]
test al, al
jne 0x10015d0d
test cl, cl
jne 0x10015d0d
test dl, dl
jne 0x10015d0d
cmp byte [ebp + 0xc7c], 0x66
jne 0x10015d0d
cmp byte [ebp + 0xc7d], 0x74
jne 0x10015d0d
cmp byte [ebp + 0xc7e], 0x79
jne 0x10015d0d
cmp byte [ebp + 0xc7f], 0x70
jne 0x10015d0d
mov esi, 0x20b
jmp 0x10015d2e
mov ecx, edi
call fcn.10015d50
test al, al
je 0x10015d1f
mov esi, 0x10b
jmp 0x10015d2e
mov esi, 0xff
jmp 0x10015d2e
mov esi, 0xff
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x10015d3b
push ebx
call fcn.10146720
add esp, 4
mov eax, esi
jmp 0x10014f21
mov eax, 0x108
jmp 0x10014f21