Function at 0x54e050
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58a501
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 0x54e0af
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 0x54e24a
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 0x54e24a
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.0058374e
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x54e141
push fcn.0054b220
push 0x54b1d0
push edi
mov dword [eax], edi
add eax, 4
push 0x2c
push eax
mov dword [ebp - 0x5c], eax
call fcn.00583dd4
mov eax, dword [ebp - 0x5c]
jmp 0x54e143
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 0x54e1bc
xor ebx, ebx
cmp dword [esi + 4], ebx
jbe 0x54e1b0
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 0x54e24a
mov eax, dword [esi + 4]
imul eax, edi
add eax, ebx
imul edi, eax, 0x2c
add edi, dword [esi + 0xc]
je 0x54e1a7
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 0x54e160
inc edi
mov dword [ebp - 0x24], edi
cmp edi, dword [esi + 8]
jb 0x54e157
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.0058374e
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x54e25f
push fcn.0054b220
push 0x54b1d0
push edi
mov dword [eax], edi
add eax, 4
push 0x2c
push eax
mov dword [ebp - 0x5c], eax
call fcn.00583dd4
mov eax, dword [ebp - 0x5c]
jmp 0x54e261
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 0x54e4bd
xor eax, eax
mov dword [ebp - 0x18], eax
mov edi, edi
cmp dword [esi + 0x18], 0
mov dword [ebp - 0x1c], 0
jbe 0x54e4a7
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.0054d920
mov edi, dword [ebp - 0x14]
mov ecx, esi
push dword [ebp - 0x18]
dec edi
mov dword [ebp - 0x5c], eax
push edi
call fcn.0054d920
push dword [ebp - 0x18]
mov ecx, esi
mov dword [ebp - 0x58], eax
push dword [ebp - 0x14]
call fcn.0054d920
push dword [ebp - 0x24]
mov ecx, esi
mov dword [ebp - 0x54], eax
push ebx
call fcn.0054d920
push dword [ebp - 0x24]
mov ecx, esi
mov dword [ebp - 0x20], eax
push edi
call fcn.0054d920
push dword [ebp - 0x24]
mov ecx, esi
mov dword [ebp - 0x30], eax
push dword [ebp - 0x14]
call fcn.0054d920
push dword [ebp - 0x2c]
mov ecx, esi
mov dword [ebp - 0x34], eax
push ebx
call fcn.0054d920
mov ebx, dword [ebp - 0x2c]
mov ecx, esi
push ebx
push edi
mov dword [ebp - 0x38], eax
call fcn.0054d920
push ebx
push dword [ebp - 0x14]
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.0054d920
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x50], eax
test ecx, ecx
je 0x54e488
mov edi, dword [ebp - 0x58]
test edi, edi
je 0x54e488
mov ebx, dword [ebp - 0x54]
test ebx, ebx
je 0x54e488
cmp dword [ebp - 0x20], 0
je 0x54e488
cmp dword [ebp - 0x30], 0
je 0x54e488
cmp dword [ebp - 0x34], 0
je 0x54e488
cmp dword [ebp - 0x38], 0
je 0x54e488
cmp dword [ebp - 0x3c], 0
je 0x54e488
test eax, eax
je 0x54e488
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, edi
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, ebx
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, dword [ebp - 0x20]
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, dword [ebp - 0x30]
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, dword [ebp - 0x34]
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, dword [ebp - 0x38]
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, dword [ebp - 0x3c]
call fcn.00549430
test eax, eax
jne 0x54e441
mov ecx, dword [ebp - 0x50]
call fcn.00549430
test eax, eax
jne 0x54e441
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 0x54e48b
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 0x54e48b
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 0x54e2a3
inc edi
add eax, 3
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], eax
cmp edi, dword [esi + 0x1c]
jb 0x54e280
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.0058374e
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x54e520
push fcn.0054b220
push 0x54b1d0
push edi
lea ebx, [eax + 4]
mov dword [eax], edi
push 0x2c
push ebx
call fcn.00583dd4
jmp 0x54e522
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 0x54e881
xor ecx, ecx
mov dword [ebp - 0x18], ecx
nop
cmp dword [esi + 0x20], 0
mov dword [ebp - 0x24], 0
jbe 0x54e86e
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 0x54e573
mov edi, dword [ebp - 0x14]
push ecx
lea eax, [edi - 2]
mov ecx, esi
push eax
call fcn.0054d920
push dword [ebp - 0x18]
lea ebx, [edi - 1]
mov dword [ebp - 0x60], eax
push ebx
mov ecx, esi
call fcn.0054d920
push dword [ebp - 0x18]
mov ecx, esi
mov dword [ebp - 0x64], eax
push edi
call fcn.0054d920
push dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x68], eax
push edi
mov ecx, esi
call fcn.0054d920
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffffe
mov dword [ebp - 0x3c], eax
push ecx
mov ecx, esi
call fcn.0054d920
push dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x38], eax
push ebx
call fcn.0054d920
push dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x34], eax
push dword [ebp - 0x14]
call fcn.0054d920
push dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x30], eax
push edi
call fcn.0054d920
push dword [ebp - 0x20]
mov dword [ebp - 0x40], eax
mov ecx, esi
mov eax, dword [ebp - 0x14]
add eax, 0xfffffffe
push eax
call fcn.0054d920
push dword [ebp - 0x20]
mov ecx, esi
mov dword [ebp - 0x44], eax
push ebx
call fcn.0054d920
push dword [ebp - 0x20]
mov ecx, esi
mov dword [ebp - 0x48], eax
push dword [ebp - 0x14]
call fcn.0054d920
push dword [ebp - 0x20]
mov ecx, esi
mov dword [ebp - 0x4c], eax
push edi
call fcn.0054d920
push dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
mov ecx, esi
mov eax, dword [ebp - 0x14]
add eax, 0xfffffffe
push eax
call fcn.0054d920
push dword [ebp - 0x2c]
mov ecx, esi
mov dword [ebp - 0x54], eax
push ebx
call fcn.0054d920
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x58], eax
push ebx
push dword [ebp - 0x14]
mov ecx, esi
call fcn.0054d920
push ebx
push edi
mov ecx, esi
mov dword [ebp - 0x5c], eax
call fcn.0054d920
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
test ecx, ecx
je 0x54e854
mov edi, dword [ebp - 0x64]
test edi, edi
je 0x54e854
mov ebx, dword [ebp - 0x68]
test ebx, ebx
je 0x54e854
cmp dword [ebp - 0x3c], 0
je 0x54e854
cmp dword [ebp - 0x38], 0
je 0x54e854
cmp dword [ebp - 0x34], 0
je 0x54e854
cmp dword [ebp - 0x30], 0
je 0x54e854
cmp dword [ebp - 0x40], 0
je 0x54e854
cmp dword [ebp - 0x44], 0
je 0x54e854
cmp dword [ebp - 0x48], 0
je 0x54e854
cmp dword [ebp - 0x4c], 0
je 0x54e854
cmp dword [ebp - 0x50], 0
je 0x54e854
cmp dword [ebp - 0x54], 0
je 0x54e854
cmp dword [ebp - 0x58], 0
je 0x54e854
cmp dword [ebp - 0x5c], 0
je 0x54e854
test eax, eax
je 0x54e854
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, edi
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, ebx
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x3c]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x38]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x34]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x30]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x40]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x44]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x48]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x4c]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x50]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x54]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x58]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x5c]
call fcn.00549430
test eax, eax
jne 0x54e83c
mov ecx, dword [ebp - 0x6c]
call fcn.00549430
test eax, eax
jne 0x54e83c
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 0x54e857
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 0x54e80a
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 0x54e570
inc edi
add ecx, 4
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], ecx
cmp edi, dword [esi + 0x24]
jb 0x54e540
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