Function at 0x407ba0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45a85c
mov eax, dword fs:[0]
push eax
sub esp, 0x13c
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 esi, ecx
push 0xa
push str.UnpackStub
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0xf
mov byte [ebp - 0xf8], 0
call fcn.0040c5d0
lea edx, [ebp - 0xf8]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x110]
call fcn.00419590
mov edi, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xc8]
push 8
xor eax, eax
mov dword [ebp - 0xb8], 0
push str._INFO_:
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
call fcn.0040bcc0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
sub eax, ecx
mov edx, dword [edi + 0x10]
cmp edx, eax
jbe 0x407c8b
mov eax, dword [edi + 0x14]
sub eax, edx
cmp eax, ecx
jb 0x407c8b
cmp dword [ebp - 0xb4], 8
lea eax, [ebp - 0xc8]
push ecx
cmovae eax, dword [ebp - 0xc8]
push eax
push ecx
mov ecx, edi
call fcn.0040ace0
jmp 0x407c97
push edi
lea ecx, [ebp - 0xc8]
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 0x407d29
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407d1f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40886c
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x407d8a
mov ecx, dword [ebp - 0xc8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407d80
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408871
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov dword [ebp - 0xb8], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
cmp edx, 8
jb 0x407dea
mov ecx, dword [ebp - 0x110]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407de0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408876
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x110], ax
cmp edx, 0x10
jb 0x407e48
mov ecx, dword [ebp - 0xf8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407e3e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40887b
push edx
push ecx
call fcn.00420a59
add esp, 8
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x407e52
mov eax, dword [esi]
push eax
lea eax, [ebp - 0x140]
push str.Creating_output_file__s
push eax
call fcn.0041ec00
add esp, 0xc
mov edi, eax
mov dword [ebp - 4], 4
lea ecx, [ebp - 0xc8]
push 8
xor eax, eax
mov dword [ebp - 0xb8], 0
push str._INFO_:
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
call fcn.0040bcc0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
sub eax, ecx
mov edx, dword [edi + 0x10]
cmp edx, eax
jbe 0x407ee1
mov eax, dword [edi + 0x14]
sub eax, edx
cmp eax, ecx
jb 0x407ee1
cmp dword [ebp - 0xb4], 8
lea eax, [ebp - 0xc8]
push ecx
cmovae eax, dword [ebp - 0xc8]
push eax
push ecx
mov ecx, edi
call fcn.0040ace0
jmp 0x407eed
push edi
lea ecx, [ebp - 0xc8]
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], 6
push eax
call fcn.00401b50
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xcc]
cmp edx, 8
jb 0x407f7f
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407f75
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408880
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x407fe0
mov ecx, dword [ebp - 0xc8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x407fd6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408885
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
cmp edx, 8
jb 0x408044
mov ecx, dword [ebp - 0x140]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40803a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40888a
push edx
push ecx
call fcn.00420a59
add esp, 8
push 0x48
lea eax, [ebp - 0xb0]
push 0
push eax
call fcn.00424990
add esp, 0xc
lea ecx, [ebp - 0xb0]
call fcn.00401c70
push 0x38
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 7
push 0
push eax
call fcn.00424990
add esp, 0xc
mov dword [ebp - 0x68], vtable.CFile.0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x60], 0
push esi
call fcn.0040a2b0
cmp dword [esi + 0x14], 8
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
mov word [ebp - 0x38], 0x100
jb 0x4080a6
mov esi, dword [esi]
push 0
push 0x80
push 2
push 0
push 1
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x60], eax
cmp eax, 0xffffffff
je 0x4080ef
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 - 0x40], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 4], 8
test eax, eax
je 0x4084f0
cmp eax, 0xffffffff
je 0x4084f0
mov eax, dword [ebp - 0x84]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x14], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x14]
movq qword [ebp - 0x20], xmm0
push eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x18], 0
push eax
movups xmmword [ebp - 0x30], xmm0
call fcn.00411a50
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x40819d
cmp eax, 0xffffffff
je 0x40819d
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x4084d2
mov eax, dword [ecx + 8]
test eax, eax
je 0x4084d2
cmp eax, 0xffffffff
je 0x4084d2
push dword [ebp - 0x84]
lea eax, [ebp - 0x30]
push 0
push eax
call fcn.00412050
test al, al
je 0x4084d2
lea ecx, [ebp - 0x14]
mov byte [ebp - 0x37], 0
mov dword [ebp - 0x14], 0
call fcn.00406150
lea ecx, [ebp - 0x30]
mov esi, eax
call fcn.00411b10
jmp 0x40883c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x140]
call fcn.0041eab0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xf8]
push 9
xor eax, eax
mov dword [ebp - 0xe8], 0
push str._failed:
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
call fcn.0040bcc0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xc8]
push 9
xor eax, eax
mov dword [ebp - 0xb8], 0
push str._ERROR_:
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
call fcn.0040bcc0
push str.CreateFileMapping
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x12
call fcn.0040aa60
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 - 0xf8]
mov byte [ebp - 4], 0x13
push eax
lea edx, [ebp - 0xe0]
lea ecx, [ebp - 0x128]
call fcn.0040a950
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x14
push ecx
mov edx, eax
lea ecx, [ebp - 0x110]
call fcn.0040a950
add esp, 8
push eax
mov byte [ebp - 4], 0x15
call fcn.00401b50
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0xfc]
cmp edx, 8
jb 0x4082ed
mov ecx, dword [ebp - 0x110]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4082e3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40888f
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x110], ax
cmp edx, 8
jb 0x40834e
mov ecx, dword [ebp - 0x128]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408344
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408894
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 - 0x118], 0
mov dword [ebp - 0x114], 7
mov word [ebp - 0x128], ax
cmp edx, 8
jb 0x4083af
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4083a5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x408899
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x408410
mov ecx, dword [ebp - 0xc8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408406
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40889e
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
cmp edx, 8
jb 0x408471
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408467
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088a3
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
cmp edx, 8
jb 0x4084d2
mov ecx, dword [ebp - 0x140]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4084c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088a8
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 - 0x30]
mov esi, eax
call fcn.00411b10
jmp 0x40883c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x140]
call fcn.0041eab0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xc8]
push 9
xor eax, eax
mov dword [ebp - 0xb8], 0
push str._failed:
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
call fcn.0040bcc0
mov byte [ebp - 4], 0xa
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], 0xb
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 - 0xc8]
mov byte [ebp - 4], 0xc
push eax
lea edx, [ebp - 0xf8]
lea ecx, [ebp - 0x110]
call fcn.0040a950
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0xd
push ecx
mov edx, eax
lea ecx, [ebp - 0x128]
call fcn.0040a950
add esp, 8
push eax
mov byte [ebp - 4], 0xe
call fcn.00401b50
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x114]
cmp edx, 8
jb 0x408640
mov ecx, dword [ebp - 0x128]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408636
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088ad
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 0x4086a1
mov ecx, dword [ebp - 0x110]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408697
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088b2
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 0x408702
mov ecx, dword [ebp - 0xf8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4086f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088b7
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 0x408763
mov ecx, dword [ebp - 0xe0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408759
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088bc
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp edx, 8
jb 0x4087c4
mov ecx, dword [ebp - 0xc8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4087ba
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088c1
push edx
push ecx
call fcn.00420a59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 7
mov word [ebp - 0xc8], ax
cmp edx, 8
jb 0x408825
mov ecx, dword [ebp - 0x140]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40881b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4088c6
push edx
push ecx
call fcn.00420a59
add esp, 8
lea ecx, [ebp - 0x144]
mov dword [ebp - 0x144], 1
call fcn.004062b0
mov esi, eax
lea ecx, [ebp - 0x68]
call fcn.0040c8a0
lea ecx, [ebp - 0xb0]
call fcn.004026e0
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
int3