Function at 0x4088d0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45a984
mov eax, dword fs:[0]
push eax
sub esp, 0x154
mov eax, dword [0x477010]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
push 0xd
push str.UnpackPackage
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0xf
mov byte [ebp - 0x110], 0
call fcn.0040c5d0
lea edx, [ebp - 0x110]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x128]
call fcn.00419590
mov esi, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf8]
push 8
xor eax, eax
mov dword [ebp - 0xe8], 0
push str._INFO_:
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
call fcn.0040bcc0
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0xe4]
mov eax, edi
mov ecx, dword [ebp - 0xe8]
sub eax, ecx
mov edx, dword [esi + 0x10]
cmp edx, eax
jbe 0x4089ba
mov eax, dword [esi + 0x14]
sub eax, edx
cmp eax, ecx
jb 0x4089ba
cmp edi, 8
lea eax, [ebp - 0xf8]
push ecx
cmovae eax, dword [ebp - 0xf8]
push eax
push ecx
mov ecx, esi
call fcn.0040ace0
jmp 0x4089c6
push esi
lea ecx, [ebp - 0xf8]
call fcn.0040aae0
mov dword [ebp - 0xd0], 0
xor ecx, ecx
mov dword [ebp - 0xcc], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xe0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xd0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 3
push eax
call fcn.00401b50
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0xcc]
cmp edx, 8
jb 0x408a58
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408a4e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095bf
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x408ab9
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408aaf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095c4
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov dword [ebp - 0xe8], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
cmp edx, 8
jb 0x408b19
mov ecx, dword [ebp - 0x128]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408b0f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095c9
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 7
mov word [ebp - 0x128], ax
cmp edx, 0x10
jb 0x408b77
mov ecx, dword [ebp - 0x110]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408b6d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095ce
push edx
push ecx
call fcn.00420a59
add esp, 8
push dword [ebp - 0x14]
lea ecx, [ebp - 0x2c]
call fcn.0040a2b0
mov dword [ebp - 4], 4
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 8
cmovae eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x158]
push str.Creating_output_file__s
push eax
call fcn.0041ec00
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe0]
push 8
xor eax, eax
mov dword [ebp - 0xd0], 0
push str._INFO_:
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
call fcn.0040bcc0
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0xcc]
mov eax, edi
mov ecx, dword [ebp - 0xd0]
sub eax, ecx
mov edx, dword [esi + 0x10]
cmp edx, eax
jbe 0x408c1e
mov eax, dword [esi + 0x14]
sub eax, edx
cmp eax, ecx
jb 0x408c1e
cmp edi, 8
lea eax, [ebp - 0xe0]
push ecx
cmovae eax, dword [ebp - 0xe0]
push eax
push ecx
mov ecx, esi
call fcn.0040ace0
jmp 0x408c2a
push esi
lea ecx, [ebp - 0xe0]
call fcn.0040aae0
mov dword [ebp - 0xe8], 0
xor ecx, ecx
mov dword [ebp - 0xe4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xf8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xe8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 7
push eax
call fcn.00401b50
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xe4]
cmp edx, 8
jb 0x408cbc
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408cb2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095d3
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
cmp edx, 8
jb 0x408d1d
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408d13
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095d8
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x144]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x408d7e
mov ecx, dword [ebp - 0x158]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408d74
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095dd
push edx
push ecx
call fcn.00420a59
add esp, 8
push 0x48
lea eax, [ebp - 0xc8]
push 0
push eax
call fcn.00424990
add esp, 0xc
lea ecx, [ebp - 0xc8]
call fcn.00401c70
push 0x38
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 8
push 0
push eax
call fcn.00424990
add esp, 0xc
mov dword [ebp - 0x80], vtable.CFile.0
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x78], 0
lea ecx, [ebp - 0x74]
push eax
call fcn.0040a2b0
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
push 0
cmovae eax, dword [ebp - 0x2c]
xorps xmm0, xmm0
push 0x80
push 2
push 0
push 1
push 0xc0000000
push eax
movlpd qword [ebp - 0x58], xmm0
mov word [ebp - 0x50], 0x100
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x78], eax
cmp eax, 0xffffffff
je 0x408e2c
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x54], ecx
mov byte [ebp - 4], 9
test eax, eax
je 0x409209
cmp eax, 0xffffffff
je 0x409209
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x14], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x14]
movq qword [ebp - 0x38], xmm0
push eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0x30], 0
push eax
movups xmmword [ebp - 0x48], xmm0
call fcn.00411a50
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x408eb6
cmp eax, 0xffffffff
je 0x408eb6
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0xc8]
call fcn.004042c0
lea ecx, [ebp - 0x14]
test al, al
je 0x4091ee
mov byte [ebp - 0x4f], 0
mov dword [ebp - 0x14], 0
call fcn.00406150
lea ecx, [ebp - 0x48]
mov esi, eax
call fcn.00411b10
jmp 0x409555
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x158]
call fcn.0041eab0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x110]
push 9
xor eax, eax
mov dword [ebp - 0x100], 0
push str._failed:
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x110], ax
call fcn.0040bcc0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xe0]
push 9
xor eax, eax
mov dword [ebp - 0xd0], 0
push str._ERROR_:
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
call fcn.0040bcc0
push str.CreateFile
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0x13
call fcn.0040aa60
mov dword [ebp - 0xe8], 0
xor ecx, ecx
mov dword [ebp - 0xe4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xf8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xe8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 0x14
push eax
lea edx, [ebp - 0xf8]
lea ecx, [ebp - 0x140]
call fcn.0040a950
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x15
push ecx
mov edx, eax
lea ecx, [ebp - 0x128]
call fcn.0040a950
add esp, 8
push eax
mov byte [ebp - 4], 0x16
call fcn.00401b50
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x114]
cmp edx, 8
jb 0x409006
mov ecx, dword [ebp - 0x128]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408ffc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095e2
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 7
mov word [ebp - 0x128], ax
cmp edx, 8
jb 0x409067
mov ecx, dword [ebp - 0x140]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40905d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095e7
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 7
mov word [ebp - 0x140], ax
cmp edx, 8
jb 0x4090c8
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4090be
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095ec
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
cmp edx, 8
jb 0x409129
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40911f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095f1
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x40918a
mov ecx, dword [ebp - 0x110]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409180
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095f6
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x144]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x110], ax
cmp edx, 8
jb 0x4091eb
mov ecx, dword [ebp - 0x158]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4091e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4095fb
push edx
push ecx
call fcn.00420a59
add esp, 8
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], 1
call fcn.004062b0
lea ecx, [ebp - 0x48]
mov esi, eax
call fcn.00411b10
jmp 0x409555
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x158]
call fcn.0041eab0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xe0]
push 9
xor eax, eax
mov dword [ebp - 0xd0], 0
push str._failed:
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
call fcn.0040bcc0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xf8]
push 9
xor eax, eax
mov dword [ebp - 0xe8], 0
push str._ERROR_:
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
call fcn.0040bcc0
push str.CreateFile
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0xc
call fcn.0040aa60
mov dword [ebp - 0x100], 0
xor ecx, ecx
mov dword [ebp - 0xfc], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x110], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x100], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0xd
push eax
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x128]
call fcn.0040a950
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0xe
push ecx
mov edx, eax
lea ecx, [ebp - 0x140]
call fcn.0040a950
add esp, 8
push eax
mov byte [ebp - 4], 0xf
call fcn.00401b50
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x12c]
cmp edx, 8
jb 0x409359
mov ecx, dword [ebp - 0x140]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40934f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409600
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 7
mov word [ebp - 0x140], ax
cmp edx, 8
jb 0x4093ba
mov ecx, dword [ebp - 0x128]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4093b0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409605
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 7
mov word [ebp - 0x128], ax
cmp edx, 8
jb 0x40941b
mov ecx, dword [ebp - 0x110]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409411
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40960a
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x110], ax
cmp edx, 8
jb 0x40947c
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409472
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40960f
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
cmp edx, 8
jb 0x4094dd
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4094d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409614
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x144]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x40953e
mov ecx, dword [ebp - 0x158]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409534
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409619
push edx
push ecx
call fcn.00420a59
add esp, 8
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x15c], 1
call fcn.004062b0
mov esi, eax
lea ecx, [ebp - 0x80]
call fcn.0040c8a0
lea ecx, [ebp - 0xc8]
call fcn.004026e0
mov edx, dword [ebp - 0x18]
cmp edx, 8
jb 0x4095a2
mov ecx, dword [ebp - 0x2c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409598
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40961e
push edx
push ecx
call fcn.00420a59
add esp, 8
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.00420a25
mov esp, ebp
pop ebp
ret
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
call fcn.0042848b
int3