Function at 0x10019ca0
Capabilities:
Get file size

Disassembly:
sub esp, 0x420
mov eax, dword [0x10139d00]
xor eax, esp
mov dword [esp + 0x41c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x42c]
push esi
push edi
xor edi, edi
push 0x1ff
lea eax, [esp + 0x22d]
mov ebx, ecx
push edi
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0x234], 0
call fcn.100d4cc0
add esp, 0xc
cmp ebx, edi
je 0x1001a219
cmp ebp, edi
je 0x1001a219
mov ecx, ebx
call fcn.10019940
mov dword [ebp], eax
cmp eax, edi
je 0x1001a219
cmp eax, 0xa
je 0x10019d77
cmp eax, 0xb
jne 0x10019d4b
push 0x38
lea esi, [ebp + 0x218]
push edi
push esi
lea ebx, [edi + 1]
call fcn.100d4cc0
mov dword [esi], edi
mov dword [esi + 4], ebx
mov ebx, dword [esp + 0x28]
mov eax, 0xffd1ceff
add esp, 0xc
mov dword [esi + 8], eax
mov dword [ebp + 0x214], edi
jmp 0x10019d77
cmp eax, 0xc
jne 0x10019d6d
mov dword [ebp + 4], 0x97
mov dword [ebp + 0x210], 6
mov dword [ebp + 0x208], 0x17
jmp 0x10019d7e
cmp eax, 0xd
je 0x10019d77
cmp eax, 0xe
jne 0x10019d7e
mov dword [ebp + 4], 0xb2
push edi
push 0x80
push 3
push edi
push 3
push SysReAllocString
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x10019dab
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [esp + 0x18]
jmp 0x1001a21b
lea ecx, [esp + 0x10]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov dword [esp + 0x18], eax
cmp eax, edi
je 0x1001a20c
cmp dword [esp + 0x14], edi
jl 0x1001a20c
jg 0x10019ddd
cmp dword [esp + 0x10], 0xc2
jb 0x1001a20c
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push ecx
push 0
mov dword [ebp + 0x250], eax
sub eax, ecx
push edx
mov dword [esp + 0x1c], eax
push eax
lea edi, [ebp + 8]
mov eax, ebx
mov dword [ebp + 0x254], edx
call fcn.100198c0
test eax, eax
je 0x1001a213
mov edx, dword [edi]
mov cx, word [edi + 4]
lea eax, [ebp + 0x460]
mov edi, 0xfffffba0
mov dword [eax], edx
mov word [eax + 4], cx
mov esi, eax
sub edi, ebp
mov cl, byte [esi]
movzx eax, cl
mov edx, eax
cmp cl, 0x41
jb 0x10019e47
cmp cl, 0x5a
ja 0x10019e47
or edx, 0x20
cmp edx, 0x61
jl 0x10019e5e
cmp cl, 0x41
jb 0x10019e59
cmp cl, 0x5a
ja 0x10019e59
or eax, 0x20
cmp eax, 0x7a
jle 0x10019e70
cmp cl, 0x30
jb 0x1001a213
cmp cl, 0x39
ja 0x1001a213
inc esi
lea edx, [edi + esi]
cmp edx, 6
jl 0x10019e33
mov edx, dword [ebp]
cmp edx, 0xa
je 0x10019fba
cmp edx, 0xb
je 0x10019fba
cmp edx, 0xc
jne 0x10019ee6
movzx eax, byte [ebp + 0x1e]
mov ecx, dword [ebp + 0x208]
mov edx, dword [ebp + 0x210]
mov dword [ebp + 0x48a], eax
lea esi, [ecx + ebp + 8]
lea eax, [edx + ebp + 8]
lea edi, [ebp + 0x48e]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [ebp + 0x47a], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 0x47e], edx
mov ecx, dword [eax + 8]
mov dword [ebp + 0x482], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp + 0x486], edx
jmp 0x1001a0f6
cmp edx, 0xd
je 0x10019ef4
cmp edx, 0xe
jne 0x1001a0f6
mov eax, dword [ebp + 0xe]
mov ecx, dword [ebp + 0x12]
mov edx, dword [ebp + 0x16]
mov dword [ebp + 0x466], eax
mov eax, dword [ebp + 0x1a]
mov dword [ebp + 0x46a], ecx
mov ecx, dword [ebp + 0x1e]
mov dword [ebp + 0x46e], edx
mov edx, dword [ebp + 0x22]
mov dword [ebp + 0x472], eax
mov eax, dword [ebp + 0x26]
mov dword [ebp + 0x47a], edx
mov edx, dword [ebp + 0x2e]
mov dword [ebp + 0x47e], eax
mov eax, dword [ebp + 0x32]
mov dword [ebp + 0x476], ecx
mov ecx, dword [ebp + 0x2a]
mov dword [ebp + 0x482], ecx
mov dword [ebp + 0x48a], eax
mov eax, dword [ebp + 0xb6]
lea esi, [ebp + 0x36]
lea edi, [ebp + 0x48e]
mov ecx, 0x20
mov dword [ebp + 0x486], edx
rep movsd dword es:[edi], dword [esi]
mov dword [ebp + 0x50e], eax
mov dword [ebp + 0x210], 0x1a
mov dword [ebp + 0x20c], 6
mov dword [ebp + 0x208], 0x2e
cmp eax, 0xc0000
jbe 0x1001a0f6
cmp eax, 0xc0208
jae 0x1001a0f6
mov ecx, dword [ebp + 4]
add ecx, eax
mov eax, dword [ebp + 0x250]
xor edx, edx
sub eax, ecx
mov ecx, dword [ebp + 0x254]
sbb ecx, edx
jmp 0x1001a084
mov eax, dword [ebp + 0xe]
mov ecx, dword [ebp + 0x12]
mov dword [ebp + 0x466], eax
mov eax, dword [ebp + 0x16]
mov dword [ebp + 0x46a], ecx
mov ecx, dword [ebp + 0x1a]
mov dword [ebp + 0x46e], eax
mov eax, dword [ebp + 0x1e]
mov dword [ebp + 0x472], ecx
mov ecx, dword [ebp + 0x22]
mov dword [ebp + 0x47a], ecx
mov ecx, dword [ebp + 0x2a]
mov dword [ebp + 0x476], eax
mov eax, dword [ebp + 0x26]
mov dword [ebp + 0x47e], eax
mov eax, dword [ebp + 0x2e]
mov dword [ebp + 0x482], ecx
mov ecx, dword [ebp + 0x32]
mov dword [ebp + 0x48a], ecx
mov dword [ebp + 0x486], eax
mov eax, dword [ebp + 0xb6]
lea esi, [ebp + 0x36]
lea edi, [ebp + 0x48e]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mov dword [ebp + 0x50e], eax
mov dword [ebp + 0x210], 0x1a
mov dword [ebp + 0x20c], 6
mov dword [ebp + 0x208], 0x2e
cmp edx, 0xb
jne 0x1001a0f6
cmp eax, 0xc0000
jbe 0x1001a0f6
cmp eax, 0xc0208
jae 0x1001a0f6
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 0x254]
add edx, eax
mov eax, dword [ebp + 0x250]
xor esi, esi
sub eax, edx
sbb ecx, esi
push 0x38
push 0
push ecx
mov dword [esp + 0x1c], eax
push eax
lea edi, [ebp + 0x218]
mov eax, ebx
mov dword [esp + 0x24], ecx
call fcn.100198c0
mov eax, dword [ebp + 0x50e]
add eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x23c]
mov edx, dword [ebp + 0x244]
mov dword [ebp + 0x214], eax
mov eax, dword [ebp + 0x238]
mov dword [ebp + 0x23c], eax
mov eax, dword [ebp + 0x240]
mov dword [ebp + 0x238], ecx
mov ecx, dword [ebp + 0x24c]
mov dword [ebp + 0x244], eax
mov eax, dword [ebp + 0x248]
mov dword [ebp + 0x24c], eax
mov dword [ebp + 0x248], ecx
mov dword [ebp + 0x240], edx
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x254]
mov edx, dword [ebp + 0x250]
xor esi, esi
add ecx, 0x200
cmp eax, esi
jl 0x1001a11d
jg 0x1001a117
cmp edx, ecx
jbe 0x1001a11d
sub edx, ecx
sbb eax, esi
jmp 0x1001a121
xor edx, edx
xor eax, eax
push 0x200
push 0
push eax
mov dword [esp + 0x20], eax
push edx
lea edi, [esp + 0x238]
mov eax, ebx
mov dword [esp + 0x20], edx
call fcn.100198c0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2a]
push eax
mov word [esp + 0x2c], dx
call fcn.100d4cc0
add esp, 0xc
push 0x10129ee0
push 0
push ebx
call dword [sym.imp.SHLWAPI.dll_StrRStrIW]
test eax, eax
je 0x1001a1fe
add eax, 2
mov ecx, 0x104
lea edx, [esp + 0x20]
call fcn.10003cf0
push 0x10129d28
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x1001a1fe
xor edx, edx
mov word [eax], dx
xor esi, esi
lea esp, [esp]
lea eax, [esp + 0x20]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1001a1a7
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + esi + 0x230]
push ecx
call fcn.100d2e9f
add esp, 0xc
test eax, eax
je 0x1001a1e7
inc esi
cmp esi, 0x200
jb 0x1001a1a0
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
jmp 0x1001a21b
lea eax, [esp + esi + 0x228]
lea edx, [ebp + 0x258]
mov ecx, 0x104
call fcn.10003cf0
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
jmp 0x1001a21b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x18]
jmp 0x1001a21b
xor eax, eax
mov ecx, dword [esp + 0x42c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100d0738
add esp, 0x420
ret 4