Function at 0x1019fea
Capabilities:
Get file size

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xa48
mov eax, dword [0x102e0fc]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
test esi, esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xa38], esi
mov dword [ebp - 0xa3c], ebx
mov dword [ebp - 0xa40], eax
jne 0x101a028
mov eax, 0x80004003
jmp 0x101a6c4
test ebx, ebx
jne 0x101a036
test eax, eax
jne 0x101a036
push esi
call fcn.0102a5a1
push esi
call fcn.01016d15
test eax, eax
jne 0x101a050
mov eax, ebx
neg eax
sbb eax, eax
and eax, 0x80070002
jmp 0x101a6c4
test ebx, ebx
push edi
mov edi, 0x208
je 0x101a193
cmp dword [ebp + 0x14], 0
je 0x101a076
lea eax, [ebp - 0xa48]
push eax
push ebx
call fcn.01016d41
call fcn.0101943e
cmp dword [ebp + 0x10], 0
je 0x101a193
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
test esi, esi
pop ecx
jne 0x101a097
mov eax, 0x8007000e
jmp 0x101a6c3
mov ebx, 0x104
push ebx
push esi
push dword [ebp - 0xa3c]
call fcn.01018278
push esi
call fcn.0101690b
cmp dword [ebp - 0xa40], 0
je 0x101a0d6
push dword [ebp - 0xa40]
lea eax, [ebp - 0x224]
push esi
push 0x1002788
push ebx
push eax
call fcn.0100d585
add esp, 0x14
jmp 0x101a108
push dword [0x102ff60]
lea eax, [ebp - 0x224]
push esi
push 0x10067dc
push ebx
push eax
call fcn.0100d585
add esp, 0x14
inc dword [0x102ff60]
lea eax, [ebp - 0x224]
push eax
call fcn.01016d15
test eax, eax
jne 0x101a0d6
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
cmp dword [ebp + 0x14], 0
pop ecx
je 0x101a123
push 0
lea eax, [ebp - 0x224]
push eax
call fcn.010194bb
push 1
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0xa38]
call fcn.0102a3ea
test eax, eax
jne 0x101a1ab
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x101a14c
push 0x57
pop eax
test eax, eax
jg 0x101a159
call esi
test eax, eax
jne 0x101a16c
push 0x57
pop eax
jmp 0x101a16c
call esi
test eax, eax
jne 0x101a162
push 0x57
pop eax
and eax, 0xffff
or eax, 0x80070000
push eax
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0xa38]
push 0x1006d10
push 0
call fcn.01027d6c
add esp, 0x14
mov eax, 0x80004005
jmp 0x101a6c3
push dword [ebp - 0xa38]
mov ebx, 0x104
push ebx
lea eax, [ebp - 0x224]
push eax
call fcn.0100c755
xor esi, esi
push esi
push esi
push esi
push 4
call fcn.01018b10
test eax, eax
je 0x101a43e
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp - 0xa38], eax
je 0x101a355
and dword [ebp - 0xa44], esi
push eax
push ebx
mov edi, 0x80004005
call fcn.0102acfa
test eax, eax
je 0x101a339
push dword [ebp - 0xa38]
call fcn.01018455
push dword [ebp - 0xa38]
call fcn.0101690b
and dword [0x102ff60], esi
cmp dword [ebp - 0xa40], esi
je 0x101a235
push dword [ebp - 0xa40]
lea eax, [ebp - 0x42c]
push dword [ebp - 0xa38]
push 0x1002788
push ebx
push eax
call fcn.0100d585
add esp, 0x14
jmp 0x101a26c
push dword [0x102ff60]
lea eax, [ebp - 0x42c]
push dword [ebp - 0xa38]
push 0x10067dc
push ebx
push eax
call fcn.0100d585
add esp, 0x14
inc dword [0x102ff60]
lea eax, [ebp - 0x42c]
push eax
call fcn.01016d15
test eax, eax
jne 0x101a235
mov ebx, dword [ebp - 0xa3c]
xor esi, esi
cmp ebx, esi
je 0x101a2d4
cmp dword [ebp + 0x14], esi
je 0x101a284
push esi
push ebx
call fcn.010194bb
lea eax, [ebp - 0x42c]
push eax
push ebx
call fcn.0102b01b
test eax, eax
je 0x101a339
push ebx
call fcn.01016d15
test eax, eax
je 0x101a2b3
push ebx
push 0x1006cc8
push 1
call fcn.01027d6c
add esp, 0xc
cmp dword [ebp + 0x14], esi
je 0x101a2bf
push esi
push ebx
call fcn.010194bb
push ebx
lea eax, [ebp - 0x224]
push eax
call fcn.0102b01b
mov dword [ebp - 0xa44], eax
jmp 0x101a30b
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.0102b01b
test eax, eax
je 0x101a339
lea eax, [ebp - 0x224]
push eax
push 0x1006c88
push 5
call fcn.01027d6c
add esp, 0xc
mov dword [ebp - 0xa44], 1
push esi
push esi
lea eax, [ebp - 0x42c]
push esi
push eax
call fcn.010197e5
mov edi, eax
cmp edi, 0xd2af9
jne 0x101a339
push esi
lea eax, [ebp - 0x42c]
push eax
mov ecx, 0x102fe20
push 2
dec edi
call fcn.0101857a
push dword [ebp - 0xa38]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
cmp dword [ebp - 0xa44], 0
pop ecx
je 0x101a355
mov eax, edi
jmp 0x101a6c3
mov edi, dword [ebp - 0xa3c]
push 5
push edi
lea eax, [ebp - 0x224]
push eax
call fcn.0102af73
test eax, eax
je 0x101a3e0
test edi, edi
je 0x101a39f
push edi
call dword [sym.imp.msvcrt.dll_wcslen]
test eax, eax
pop ecx
je 0x101a39f
xor ecx, ecx
cmp word [edi + eax*2 - 2], 0x5c
sete cl
mov eax, ecx
test eax, eax
je 0x101a39f
push edi
push 0x1006c64
push 2
call fcn.01027d6c
add esp, 0xc
lea eax, [ebp - 0x224]
push eax
push 0x1006c34
push 2
call fcn.01027d6c
add esp, 0xc
cmp dword [ebp + 0x1c], 0
mov ecx, 0x102fe20
lea eax, [ebp - 0x224]
je 0x101a3cc
push edi
jmp 0x101a6b6
push 0
push eax
push 2
call fcn.0101857a
mov eax, 0xd2af8
jmp 0x101a6c3
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x101a3f1
push 0x57
pop eax
test eax, eax
jg 0x101a3fe
call esi
test eax, eax
jne 0x101a411
push 0x57
pop eax
jmp 0x101a411
call esi
test eax, eax
jne 0x101a407
push 0x57
pop eax
and eax, 0xffff
or eax, 0x80070000
push eax
lea eax, [ebp - 0x224]
push eax
push 0x1006bf8
push 2
call fcn.01027d6c
add esp, 0x10
push 1
push 1
push edi
lea eax, [ebp - 0x224]
push eax
call fcn.010197e5
jmp 0x101a6c3
push ebx
lea eax, [ebp - 0x224]
push eax
push eax
call fcn.0102bd76
test eax, eax
je 0x101a189
cmp dword [ebp - 0xa3c], esi
lea eax, [ebp - 0x42c]
je 0x101a486
push dword [ebp - 0xa3c]
push ebx
push eax
call fcn.0100c755
push ebx
lea eax, [ebp - 0x42c]
push eax
push eax
call fcn.0102bd76
test eax, eax
jne 0x101a496
jmp 0x101a189
push 0x1006bf0
push 0x103
push eax
call fcn.0100c755
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x42c]
push eax
push 0x1006be8
lea eax, [ebp - 0xa34]
push 0x400
push eax
call fcn.010181d3
add esp, 0x14
test eax, eax
jl 0x101a693
lea eax, [ebp - 0xa34]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x101a4ce
and dword [ebp - 0xa44], 0
mov esi, 0x1006bdc
lea edi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x1006bd0
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
sub eax, edx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xa40], eax
push ebx
lea eax, [ebp - 0x634]
push eax
movsb byte es:[edi], byte [esi]
call fcn.0102bcd1
test eax, eax
je 0x101a189
push 0x1006bb4
push ebx
lea eax, [ebp - 0x634]
push eax
call fcn.0100d5b3
xor edi, edi
push edi
push 0x8000080
push 4
push edi
push edi
push 0xc0000000
lea eax, [ebp - 0x634]
push eax
call fcn.0102a4ef
mov esi, eax
cmp esi, 0xffffffff
mov dword [ebp - 0xa48], esi
je 0x101a189
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x101a56c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x101a189
mov eax, dword [ebp - 0xa40]
push edi
lea eax, [ebx + eax + 0xa]
push eax
push edi
push 4
push edi
push esi
call fcn.0102bbb8
cmp eax, edi
mov dword [ebp - 0xa38], eax
je 0x101a67b
push edi
push edi
push edi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, edi
mov dword [ebp - 0xa3c], eax
je 0x101a66f
cmp ebx, edi
jbe 0x101a5c4
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0xa3c]
call dword [sym.imp.msvcrt.dll_strstr]
cmp eax, edi
pop ecx
pop ecx
jne 0x101a5f5
push 0xb
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xa3c]
add eax, ebx
push eax
call dword [sym.imp.msvcrt.dll_strncpy]
lea eax, [ebp - 0x10]
add esp, 0xc
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x101a5e2
sub eax, esi
add ebx, eax
mov dword [ebp - 0xa44], ebx
jmp 0x101a631
push 0xa
push eax
call dword [sym.imp.msvcrt.dll_strchr]
mov esi, eax
cmp esi, edi
pop ecx
pop ecx
je 0x101a631
mov eax, dword [ebp - 0xa3c]
inc esi
sub eax, esi
add eax, ebx
push eax
mov eax, dword [ebp - 0xa40]
add eax, esi
push esi
push eax
call dword [sym.imp.msvcrt.dll_memmove]
add esp, 0xc
sub esi, dword [ebp - 0xa3c]
mov dword [ebp - 0xa44], esi
mov eax, dword [ebp - 0xa3c]
mov edx, dword [ebp - 0xa44]
mov ecx, dword [ebp - 0xa40]
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
lea esi, [ebp - 0xa34]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
add ebx, dword [ebp - 0xa40]
mov esi, dword [ebp - 0xa48]
xor edi, edi
push dword [ebp - 0xa38]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push edi
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x224]
push eax
push 0x1006c34
push 2
call fcn.01027d6c
add esp, 0xc
push 0
lea eax, [ebp - 0x224]
mov ecx, 0x102fe20
push eax
push 8
call fcn.0101857a
mov eax, 0xd2af9
pop edi
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.01016306
leave
ret 0x18