Function at 0x4aeea0
Capabilities:
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x5fd120
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6687b8]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], ebx
push ebx
push 0x80
push 3
push ebx
push 1
mov byte [esp + 0x4c], 1
mov edi, dword [esp + 0x54]
push SysReAllocStringLen
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
or ebp, 0xffffffff
cmp eax, ebp
jne 0x4aef4f
call fcn.0040f010
cmp eax, ebx
jl 0x4aef6b
lea ecx, [esp + 0x28]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, ebp
mov dword [esp + 0x24], esi
jne 0x4aef5b
call fcn.0040f010
test eax, eax
jge 0x4aef57
test ebx, ebx
je 0x4aef2b
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [edi - 0x10]
mov dword [esp + 0x38], ebp
lea edx, [eax + 0xc]
lock xadd dword [edx], ebp
dec ebp
test ebp, ebp
jg 0x4aef88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x4af1bb
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x4aef01
mov esi, dword [esp + 0x24]
cmp esi, 0x5c
jae 0x4aef8f
test ebx, ebx
je 0x4aef6b
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [edi - 0x10]
mov dword [esp + 0x38], ebp
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebp
dec ebp
test ebp, ebp
jg 0x4aef88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x4af1bb
push esi
call fcn.005d1ef5
mov edi, eax
add esp, 4
mov ecx, edi
lea edx, [esp + 0x14]
mov dword [esp + 0x20], edi
call fcn.00417460
cmp dword [edi], 0x7d1ea609
je 0x4aefcc
test ebx, ebx
je 0x4aefbc
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x40]
call fcn.00403870
xor eax, eax
jmp 0x4af1bb
mov ebx, dword [edi + 0x2c]
mov esi, dword [edi + 0x30]
add ebx, edi
shr esi, 1
mov ecx, 0x677600
lea edi, [esp + 0x18]
call fcn.0040a010
mov byte [esp + 0x38], 2
mov ebp, dword [esp + 0x18]
cmp dword [ebp - 0xc], 0
jl 0x4af010
push str.Name:
push ebp
call fcn.005d2e73
add esp, 8
test eax, eax
je 0x4af010
sub eax, ebp
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jne 0x4af03b
lea esi, [esp + 0x14]
call fcn.0044b230
lea ecx, [esp + 0x18]
call fcn.00403870
lea esi, [esp + 0x14]
call fcn.0044b230
lea ecx, [esp + 0x40]
call fcn.00403870
xor eax, eax
jmp 0x4af1bb
mov ecx, edi
mov edx, 0x625fc4
lea esi, [esp + 0x18]
call fcn.00409eb0
cmp eax, 0xffffffff
je 0x4af010
mov edx, esi
sub eax, edi
push edx
sub eax, 6
lea ecx, [edi + 6]
lea edx, [esp + 0x28]
call fcn.00409f60
mov ebx, eax
mov byte [esp + 0x38], 3
call fcn.00415310
mov edi, eax
call fcn.00415390
mov edi, dword [esp + 0x44]
add edi, 0x10
call fcn.0040ab90
lea ecx, [esp + 0x24]
mov byte [esp + 0x38], 2
call fcn.00403870
cmp dword [ebp - 0xc], 0
jl 0x4af010
push str.Type:
push ebp
call fcn.005d2e73
add esp, 8
test eax, eax
je 0x4af010
sub eax, ebp
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
je 0x4af010
mov ecx, edi
mov edx, 0x625fc4
call fcn.00409eb0
cmp eax, 0xffffffff
je 0x4af010
mov edx, esi
sub eax, edi
push edx
sub eax, 6
lea ecx, [edi + 6]
lea edx, [esp + 0x28]
call fcn.00409f60
mov ebx, eax
mov byte [esp + 0x38], 4
call fcn.00415310
mov edi, eax
call fcn.00415390
mov ebp, dword [esp + 0x44]
lea edi, [ebp + 0x14]
call fcn.0040ab90
lea ecx, [esp + 0x24]
mov byte [esp + 0x38], 2
call fcn.00403870
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x1c]
lea esi, [edi + 8]
push eax
call fcn.00414ea0
mov byte [esp + 0x38], 5
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x4af15f
jge 0x4af143
push 0x80070057
call fcn.00403650
cmp byte [ebx], 0x4c
jne 0x4af15f
lea esi, [esp + 0x14]
call fcn.0044b230
lea eax, [esp + 0x1c]
call fcn.004152a0
jmp 0x4af019
lea eax, [ebp + 0xc]
call fcn.004173d0
mov ecx, dword [edi + 0x28]
lea edi, [ebp + 8]
lea eax, [esp + 0x40]
mov dword [ebp + 4], ecx
call fcn.0040ab90
mov edx, dword [esp + 0x20]
push edx
mov dword [ebp + 0x18], 0
call fcn.005d28c2
add esp, 4
lea esi, [esp + 0x14]
call fcn.0044b230
lea eax, [esp + 0x1c]
call fcn.004152a0
lea ecx, [esp + 0x18]
call fcn.00403870
call fcn.0044b230
lea ecx, [esp + 0x40]
call fcn.00403870
mov eax, 1
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 8