Function at 0x1072413
Capabilities:
Get file size

Disassembly:
mov eax, 0x109a335
call fcn.01077478
sub esp, 0x20
mov eax, dword [0x10a6184]
cmp eax, 0x10a6184
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x10], ecx
je 0x1072452
test byte [eax + 0x1c], 1
je 0x1072452
cmp byte [eax + 0x19], 5
jb 0x1072452
push esi
push 0x1007888
push 0x5e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01009b3f
mov ecx, dword [ebp - 0x10]
and dword [ebp + 8], 0
and dword [ebp - 0x1c], 0
push ebx
push edi
push 0xc8
push esi
call fcn.0106ed2d
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x30], ecx
mov eax, dword [eax + 0x14]
push 0
mov ebx, eax
mov edi, ecx
mov ecx, dword [ebp - 0x10]
push ebx
push edi
mov dword [esi + 0x34], eax
call fcn.0106c2f8
test eax, eax
jne 0x1072497
mov ecx, dword [ebp - 0x10]
push ebx
push edi
call fcn.0106c6f5
mov ecx, dword [esi + 0x38]
mov edx, dword [ecx + 0x24]
cmp edx, 4
jl 0x10728a1
cmp edx, 6
jg 0x10728a1
mov eax, dword [0x10a6184]
cmp eax, 0x10a6184
je 0x10724f8
test byte [eax + 0x1d], 4
je 0x10724f8
cmp byte [eax + 0x19], 4
jb 0x10724f8
cmp edx, 4
jne 0x10724d3
mov edx, 0x1005024
jmp 0x10724e2
cmp edx, 6
mov edx, 0x1007ed0
je 0x10724e2
mov edx, 0x1007ec4
push dword [ecx + 0x3c]
push edx
push 0x1007888
push 0x5f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100efa0
push 0x10a8b2c
lea ecx, [ebp - 0x14]
call fcn.01020db5
mov eax, dword [ebp - 0x10]
and dword [ebp - 4], 0
mov ebx, dword [eax + 0x24]
neg ebx
sbb ebx, ebx
and ebx, 0x7fffbffb
add ebx, 0x80004005
js 0x10727e9
push esi
mov ecx, eax
call fcn.0106f158
mov ebx, eax
test ebx, ebx
jl 0x10727e9
mov eax, dword [esi + 0x38]
push dword [eax + 0x3c]
lea ecx, [ebp - 0x20]
call fcn.0100b323
lea eax, [esi + 0x98]
push eax
lea edi, [esi + 0x94]
push edi
lea eax, [ebp - 0x20]
push eax
mov eax, dword [esi + 0x38]
push dword [eax + 0x4c]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x24]
mov byte [ebp - 4], 1
call fcn.01064953
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov ebx, eax
mov byte [ebp - 4], 0
call fcn.01009cd1
cmp ebx, 0x80070490
jne 0x10725d5
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 0x24]
cmp eax, 4
je 0x1072599
cmp eax, 5
jne 0x10727e9
mov eax, dword [0x10a6184]
cmp eax, 0x10a6184
je 0x10725c3
test byte [eax + 0x1d], 4
je 0x10725c3
cmp byte [eax + 0x19], 4
jb 0x10725c3
push 0x1007888
push 0x60
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01009ab7
push 1
push 0x194
push esi
push 0x80070490
jmp 0x10727f2
test ebx, ebx
jl 0x10727e9
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 0x24]
cmp eax, 4
je 0x1072679
cmp eax, 5
je 0x1072679
and dword [ebp - 0x18], 0
lea eax, [esi + 0x98]
push eax
call fcn.01020cb0
test eax, eax
je 0x1072617
mov edi, dword [edi]
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.01083e23
mov ebx, eax
cmp dword [ebp - 0x18], 0
jne 0x1072653
mov eax, dword [0x10a6184]
cmp eax, 0x10a6184
je 0x1072647
test byte [eax + 0x1d], 4
je 0x1072647
cmp byte [eax + 0x19], 4
jb 0x1072647
push 0x1007888
push 0x61
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01009ab7
push 1
push 0x190
jmp 0x10727f0
test ebx, ebx
jl 0x10727e9
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x1c]
push eax
push esi
call fcn.01071bb1
cmp dword [ebp - 0x1c], 1
mov ebx, eax
jne 0x10727df
jmp 0x10727fd
and dword [ebp - 0x18], 0
lea eax, [esi + 0x98]
push eax
call fcn.01020cb0
test eax, eax
je 0x107269b
mov eax, dword [edi]
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.01083e23
mov ebx, eax
test ebx, ebx
jl 0x10727e9
cmp dword [ebp - 0x18], 0
jne 0x10726e9
push 0x10a8b2c
lea ecx, [ebp + 8]
call fcn.01020db5
lea eax, [ebp + 8]
push eax
push 0x1007668
lea ecx, [esi + 0x4c]
mov byte [ebp - 4], 2
call fcn.01026cd8
mov ecx, dword [ebp + 8]
neg al
mov byte [ebp - 4], 0
sbb eax, eax
neg eax
add ecx, 0xfffffff0
mov dword [ebp - 0x24], eax
call fcn.01009cd1
cmp dword [ebp - 0x18], 0
je 0x1072701
mov dword [esi + 0x24], 7
mov ecx, dword [ebp - 0x10]
push esi
add ecx, 0x28
call fcn.01069cc0
jmp 0x10727fa
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x1072711
mov dword [esi + 0x24], 0xd
jmp 0x10726f0
mov edi, dword [edi]
push eax
push eax
push 3
push eax
push 1
push 1
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ecx, eax
cmp ecx, 0xffffffff
mov dword [esi + 0x9c], ecx
jne 0x107273a
mov ebx, 0x80004005
jmp 0x10727e9
mov eax, dword [esi + 0x38]
cmp dword [eax + 0x24], 5
jne 0x10727db
and dword [ebp - 0x2c], 0
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
lea eax, [ebp - 0x2c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x10727c1
push 0x10a8b2c
lea ecx, [ebp + 8]
call fcn.01020db5
push dword [ebp - 0x28]
lea eax, [ebp + 8]
push dword [ebp - 0x2c]
mov byte [ebp - 4], 3
push 0x1007850
push eax
call fcn.0106a122
add esp, 0x10
lea eax, [ebp - 0x24]
push eax
lea ecx, [esi + 0x1d8]
mov dword [ebp - 0x24], 0xb
call fcn.0106a333
lea ecx, [ebp + 8]
push ecx
mov ecx, eax
call fcn.01068d07
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov dword [esi + 0x2c], 1
mov byte [ebp - 4], 0
call fcn.01009cd1
jmp 0x10727c6
mov ebx, 0x80004005
push dword [esi + 0x9c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [esi + 0x9c], 0xffffffff
jmp 0x10727df
and dword [esi + 0x2c], 0
test ebx, ebx
jge 0x107280a
cmp dword [ebp - 0x1c], 0
jne 0x107280a
push 0
push 0x1f4
push esi
push ebx
mov ecx, dword [ebp - 0x10]
call fcn.01070324
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.01009cd1
jmp 0x107284d
mov ecx, dword [ebp - 0x14]
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
call fcn.01009cd1
mov ecx, esi
call fcn.0106a813
xor ecx, ecx
cmp eax, ecx
jl 0x1072836
xor edx, edx
cmp dword [esi + 0x238], ecx
setne dl
add edx, 4
mov ecx, edx
push 0x1f4
push 1
push ecx
mov ecx, dword [ebp - 0x10]
push 1
push esi
push eax
call fcn.010705be
mov dword [ebp + 8], eax
mov eax, dword [0x10a6184]
cmp eax, 0x10a6184
pop edi
pop ebx
je 0x107288f
test byte [eax + 0x1c], 1
je 0x107288f
movzx ecx, byte [eax + 0x19]
xor edx, edx
cmp dword [ebp + 8], edx
setl dl
dec edx
and edx, 3
inc edx
inc edx
cmp ecx, edx
jl 0x107288f
push dword [esi + 0x24]
push dword [ebp + 8]
push 0x1007888
push 0x63
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0100ef6e
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop esi
mov dword fs:[0], ecx
leave
ret 4
mov eax, dword [0x10a6184]
cmp eax, 0x10a6184
je 0x10728ce
test byte [eax + 0x1d], 4
je 0x10728ce
cmp byte [eax + 0x19], 4
jb 0x10728ce
push dword [ecx + 0x3c]
push 0x1007888
push 0x62
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01009add
mov ecx, dword [ebp - 0x10]
push 1
push 0x190
push esi
push 0
call fcn.01070324
jmp 0x107284d