Function at 0x100a4ce0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [0x10438fc0]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push esi
push edi
mov edi, ecx
mov esi, dword [edi + 0x18]
mov eax, dword [esi + 4]
mov dword [esp + 0x28], edi
cmp eax, 0xffffffff
jne 0x100a4d2c
mov dword [esi + 8], 6
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + 8]
mov dword [edi + 0x30], ecx
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.10148524
mov esp, ebp
pop ebp
ret
xor ebx, ebx
push ebx
push ebx
xor edx, edx
push edx
xor ecx, ecx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x100a4d4a
mov dword [esi + 8], 0x19
jmp 0x100a4d0f
mov dword [esi + 8], ebx
mov esi, dword [edi + 0x18]
mov dword [esp + 0x14], 3
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 5
mov dword [esp + 0xc], ebx
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x100a4d7d
mov dword [esi + 8], 6
jmp 0x100a4d9e
push ebx
lea edx, [esp + 0x10]
push edx
push 0x10
lea ecx, [esp + 0x20]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
neg eax
sbb eax, eax
and eax, 2
add eax, 0xfffffffe
mov dword [esi + 8], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 8], edx
mov edx, dword [esp + 0x20]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], edx
mov eax, dword [edi + 0xc]
mov ecx, edx
cdq
push edx
push eax
push ebx
push ecx
call fcn.1015edc0
mov esi, dword [edi + 0x18]
shld edx, eax, 0xa
shl eax, 0xa
mov ecx, edx
mov edx, dword [esi + 4]
add eax, 0x10
adc ecx, ebx
cmp edx, 0xffffffff
jne 0x100a4e06
mov dword [esi + 8], 6
mov edx, dword [edi + 0x18]
mov eax, dword [edx + 8]
mov dword [edi + 0x30], eax
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.10148524
mov esp, ebp
pop ebp
ret
push ebx
push ebx
push ecx
push eax
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x100a4e39
mov dword [esi + 8], 0x19
mov edx, dword [edi + 0x18]
mov eax, dword [edx + 8]
mov dword [edi + 0x30], eax
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.10148524
mov esp, ebp
pop ebp
ret
mov dword [esi + 8], ebx
mov esi, dword [edi + 0x18]
mov dword [esp + 0xc], ebx
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x100a4e54
mov dword [esi + 8], 6
jmp 0x100a4e75
push ebx
lea ecx, [esp + 0x10]
push ecx
push 0x10
lea edx, [esp + 0x38]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
neg eax
sbb eax, eax
and eax, 2
add eax, 0xfffffffe
mov dword [esi + 8], eax
cmp dword [esp + 0xc], 0x10
jne 0x100a4d0f
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
cmp esi, ebx
jle 0x100a4f08
xor ecx, ecx
mov eax, esi
mov edx, 4
mul edx
seto cl
push 0x1044dcc0
neg ecx
or ecx, eax
push ecx
call fcn.10148aaf
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, ebx
je 0x100a4d18
mov ecx, dword [esp + 0x2c]
mov esi, dword [edi + 0x18]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x24], ecx
push ecx
lea ecx, [esp + 0x10]
mov edx, eax
call fcn.100235b0
mov eax, dword [esp + 0x24]
cmp dword [esp + 0xc], eax
je 0x100a4f08
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
mov edx, dword [edi + 0x18]
mov eax, dword [edx + 8]
add esp, 4
mov dword [edi + 0x30], eax
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.10148524
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x1c]
cmp esi, ebx
je 0x100a4f14
call fcn.100a4270
push 0x1044dcc0
push 0x14
call fcn.10148ac6
add esp, 8
cmp eax, ebx
je 0x100a4f4a
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x30]
push eax
call fcn.10090c30
mov edi, dword [esp + 0x28]
xor ebx, ebx
jmp 0x100a4f4c
xor eax, eax
mov dword [edi + 0x1c], eax
cmp eax, ebx
je 0x100a4d18
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
mov eax, dword [edi + 0x14]
mov ecx, eax
shl ecx, 0xa
add esp, 4
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
call fcn.100a1670
mov ecx, dword [esp + 0x3c]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
pop edi
pop esi
pop ebx
xor ecx, esp
mov al, 1
call fcn.10148524
mov esp, ebp
pop ebp
ret