Function at 0x550810
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58cdb1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push esi
push edi
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 0x28], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
mov dword [ebp - 0x2c], edi
cmp edi, 0xffffffff
jne 0x55086f
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
push ebx
push 0
lea eax, [ebp - 0x28]
push eax
push 4
lea ebx, [esi + 4]
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x550a0a
push 0
lea ecx, [ebp - 0x28]
push ecx
push 4
lea eax, [esi + 8]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x550a0a
mov edi, dword [esi + 8]
xor ecx, ecx
imul edi, dword [ebx]
mov edx, 0x2c
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00585e5e
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x550901
push fcn.0054d9f0
push 0x54d9a0
push edi
mov dword [eax], edi
add eax, 4
push 0x2c
push eax
mov dword [ebp - 0x5c], eax
call fcn.005864e4
mov eax, dword [ebp - 0x5c]
jmp 0x550903
xor eax, eax
xor edi, edi
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0xc], eax
mov dword [ebp - 0x24], edi
cmp dword [esi + 8], edi
jbe 0x55097c
xor ebx, ebx
cmp dword [esi + 4], ebx
jbe 0x550970
mov edi, edi
push 0
lea eax, [ebp - 0x28]
push eax
push 2
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x550a0a
mov eax, dword [esi + 4]
imul eax, edi
add eax, ebx
imul edi, eax, 0x2c
add edi, dword [esi + 0xc]
je 0x550967
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 0x10]
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0x24]
call dword [eax + 0x18]
mov ax, word [ebp + 8]
mov word [edi + 0x1c], ax
mov edi, dword [ebp - 0x24]
inc ebx
cmp ebx, dword [esi + 4]
jb 0x550920
inc edi
mov dword [ebp - 0x24], edi
cmp edi, dword [esi + 8]
jb 0x550917
lea ebx, [esi + 4]
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx]
mov edi, dword [esi + 8]
mov dword [esi + 0x2c], eax
mov eax, 0xaaaaaaab
mul ecx
mov dword [esi + 0x10], ecx
mov eax, 0xaaaaaaab
mov ecx, edx
mov dword [esi + 0x14], edi
mul edi
shr ecx, 1
mov edi, edx
mov dword [esi + 0x18], ecx
shr edi, 1
mov edx, 0x2c
mov dword [esi + 0x1c], edi
imul edi, ecx
xor ecx, ecx
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00585e5e
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x550a1f
push fcn.0054d9f0
push 0x54d9a0
push edi
mov dword [eax], edi
add eax, 4
push 0x2c
push eax
mov dword [ebp - 0x5c], eax
call fcn.005864e4
mov eax, dword [ebp - 0x5c]
jmp 0x550a21
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
xor edi, edi
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x30], eax
mov dword [ebp - 0x10], edi
cmp dword [esi + 0x1c], edi
jbe 0x550c7d
xor eax, eax
mov dword [ebp - 0x18], eax
mov edi, edi
cmp dword [esi + 0x18], 0
mov dword [ebp - 0x1c], 0
jbe 0x550c67
lea ecx, [eax + 2]
mov dword [ebp - 0x2c], ecx
dec ecx
mov dword [ebp - 0x24], ecx
mov ecx, 2
mov dword [ebp - 0x14], ecx
lea ebx, [ecx - 2]
mov ecx, esi
push eax
push ebx
call fcn.005500e0
mov edi, dword [ebp - 0x14]
mov ecx, esi
push dword [ebp - 0x18]
dec edi
mov dword [ebp - 0x5c], eax
push edi
call fcn.005500e0
push dword [ebp - 0x18]
mov ecx, esi
mov dword [ebp - 0x58], eax
push dword [ebp - 0x14]
call fcn.005500e0
push dword [ebp - 0x24]
mov ecx, esi
mov dword [ebp - 0x54], eax
push ebx
call fcn.005500e0
push dword [ebp - 0x24]
mov ecx, esi
mov dword [ebp - 0x20], eax
push edi
call fcn.005500e0
push dword [ebp - 0x24]
mov ecx, esi
mov dword [ebp - 0x30], eax
push dword [ebp - 0x14]
call fcn.005500e0
push dword [ebp - 0x2c]
mov ecx, esi
mov dword [ebp - 0x34], eax
push ebx
call fcn.005500e0
mov ebx, dword [ebp - 0x2c]
mov ecx, esi
push ebx
push edi
mov dword [ebp - 0x38], eax
call fcn.005500e0
push ebx
push dword [ebp - 0x14]
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.005500e0
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x50], eax
test ecx, ecx
je 0x550c48
mov edi, dword [ebp - 0x58]
test edi, edi
je 0x550c48
mov ebx, dword [ebp - 0x54]
test ebx, ebx
je 0x550c48
cmp dword [ebp - 0x20], 0
je 0x550c48
cmp dword [ebp - 0x30], 0
je 0x550c48
cmp dword [ebp - 0x34], 0
je 0x550c48
cmp dword [ebp - 0x38], 0
je 0x550c48
cmp dword [ebp - 0x3c], 0
je 0x550c48
test eax, eax
je 0x550c48
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, edi
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, ebx
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, dword [ebp - 0x20]
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, dword [ebp - 0x30]
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, dword [ebp - 0x34]
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, dword [ebp - 0x38]
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, dword [ebp - 0x3c]
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov ecx, dword [ebp - 0x50]
call fcn.0054bc90
test eax, eax
jne 0x550c01
mov eax, dword [esi + 0x18]
xor ecx, ecx
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
imul eax, edi
push ebx
add eax, ebx
imul eax, eax, 0x2c
add eax, dword [esi + 0x30]
mov word [eax + 0x1c], cx
mov eax, dword [esi + 0x18]
imul eax, edi
add eax, ebx
imul ecx, eax, 0x2c
add ecx, dword [esi + 0x30]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, dword [esi + 0x18]
imul eax, edi
push edi
add eax, ebx
imul ecx, eax, 0x2c
add ecx, dword [esi + 0x30]
mov eax, dword [ecx]
call dword [eax + 0x18]
jmp 0x550c4b
mov eax, dword [esi + 0x18]
mov ecx, 1
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
imul eax, edi
push ebx
add eax, ebx
imul eax, eax, 0x2c
add eax, dword [esi + 0x30]
mov word [eax + 0x1c], cx
mov eax, dword [esi + 0x18]
imul eax, edi
add eax, ebx
imul ecx, eax, 0x2c
add ecx, dword [esi + 0x30]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, dword [esi + 0x18]
imul eax, edi
push edi
add eax, ebx
imul ecx, eax, 0x2c
add ecx, dword [esi + 0x30]
mov eax, dword [ecx]
call dword [eax + 0x18]
jmp 0x550c4b
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
inc eax
add ecx, 3
mov dword [ebp - 0x1c], eax
cmp eax, dword [esi + 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
jb 0x550a63
inc edi
add eax, 3
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], eax
cmp edi, dword [esi + 0x1c]
jb 0x550a40
lea ebx, [esi + 4]
mov edi, dword [esi + 8]
xor ecx, ecx
mov eax, dword [ebx]
mov edx, 0x2c
shr eax, 2
shr edi, 2
mov dword [esi + 0x24], edi
imul edi, eax
mov dword [esi + 0x20], eax
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00585e5e
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x550ce0
push fcn.0054d9f0
push 0x54d9a0
push edi
lea ebx, [eax + 4]
mov dword [eax], edi
push 0x2c
push ebx
call fcn.005864e4
jmp 0x550ce2
xor ebx, ebx
xor edi, edi
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x34], ebx
mov dword [ebp - 0x10], edi
cmp dword [esi + 0x24], edi
jbe 0x551041
xor ecx, ecx
mov dword [ebp - 0x18], ecx
nop
cmp dword [esi + 0x20], 0
mov dword [ebp - 0x24], 0
jbe 0x55102e
lea eax, [ecx + 2]
mov edi, 2
lea edx, [eax - 1]
mov dword [ebp - 0x20], eax
inc eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], edi
jmp 0x550d33
mov edi, dword [ebp - 0x14]
push ecx
lea eax, [edi - 2]
mov ecx, esi
push eax
call fcn.005500e0
push dword [ebp - 0x18]
lea ebx, [edi - 1]
mov dword [ebp - 0x60], eax
push ebx
mov ecx, esi
call fcn.005500e0
push dword [ebp - 0x18]
mov ecx, esi
mov dword [ebp - 0x64], eax
push edi
call fcn.005500e0
push dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x68], eax
push edi
mov ecx, esi
call fcn.005500e0
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffffe
mov dword [ebp - 0x3c], eax
push ecx
mov ecx, esi
call fcn.005500e0
push dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x38], eax
push ebx
call fcn.005500e0
push dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x34], eax
push dword [ebp - 0x14]
call fcn.005500e0
push dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x30], eax
push edi
call fcn.005500e0
push dword [ebp - 0x20]
mov dword [ebp - 0x40], eax
mov ecx, esi
mov eax, dword [ebp - 0x14]
add eax, 0xfffffffe
push eax
call fcn.005500e0
push dword [ebp - 0x20]
mov ecx, esi
mov dword [ebp - 0x44], eax
push ebx
call fcn.005500e0
push dword [ebp - 0x20]
mov ecx, esi
mov dword [ebp - 0x48], eax
push dword [ebp - 0x14]
call fcn.005500e0
push dword [ebp - 0x20]
mov ecx, esi
mov dword [ebp - 0x4c], eax
push edi
call fcn.005500e0
push dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
mov ecx, esi
mov eax, dword [ebp - 0x14]
add eax, 0xfffffffe
push eax
call fcn.005500e0
push dword [ebp - 0x2c]
mov ecx, esi
mov dword [ebp - 0x54], eax
push ebx
call fcn.005500e0
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x58], eax
push ebx
push dword [ebp - 0x14]
mov ecx, esi
call fcn.005500e0
push ebx
push edi
mov ecx, esi
mov dword [ebp - 0x5c], eax
call fcn.005500e0
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
test ecx, ecx
je 0x551014
mov edi, dword [ebp - 0x64]
test edi, edi
je 0x551014
mov ebx, dword [ebp - 0x68]
test ebx, ebx
je 0x551014
cmp dword [ebp - 0x3c], 0
je 0x551014
cmp dword [ebp - 0x38], 0
je 0x551014
cmp dword [ebp - 0x34], 0
je 0x551014
cmp dword [ebp - 0x30], 0
je 0x551014
cmp dword [ebp - 0x40], 0
je 0x551014
cmp dword [ebp - 0x44], 0
je 0x551014
cmp dword [ebp - 0x48], 0
je 0x551014
cmp dword [ebp - 0x4c], 0
je 0x551014
cmp dword [ebp - 0x50], 0
je 0x551014
cmp dword [ebp - 0x54], 0
je 0x551014
cmp dword [ebp - 0x58], 0
je 0x551014
cmp dword [ebp - 0x5c], 0
je 0x551014
test eax, eax
je 0x551014
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, edi
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, ebx
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x3c]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x38]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x34]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x30]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x40]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x44]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x48]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x4c]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x50]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x54]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x58]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x5c]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov ecx, dword [ebp - 0x6c]
call fcn.0054bc90
test eax, eax
jne 0x550ffc
mov eax, dword [esi + 0x20]
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x24]
imul eax, edi
add eax, ebx
imul ecx, eax, 0x2c
xor edx, edx
mov eax, dword [esi + 0x34]
push ebx
mov word [ecx + eax + 0x1c], dx
mov eax, dword [esi + 0x20]
imul eax, edi
add eax, ebx
imul ecx, eax, 0x2c
add ecx, dword [esi + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, dword [esi + 0x20]
imul eax, edi
push edi
add eax, ebx
imul ecx, eax, 0x2c
add ecx, dword [esi + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x18]
jmp 0x551017
mov eax, dword [esi + 0x20]
mov edx, 1
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x24]
imul eax, edi
add eax, ebx
imul ecx, eax, 0x2c
jmp 0x550fca
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x14], 4
inc eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
cmp eax, dword [esi + 0x20]
jb 0x550d30
inc edi
add ecx, 4
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], ecx
cmp edi, dword [esi + 0x24]
jb 0x550d00
mov ecx, dword [ebp - 0xc]
mov eax, 1
pop ebx
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4