Function at 0x5632e0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x2c
mov eax, dword [esp + 0x30]
push ebp
push esi
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push eax
mov esi, ecx
mov dword [esp + 0x38], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
mov dword [esp + 0x2c], ebp
cmp ebp, 0xffffffff
jne 0x563321
pop esi
xor eax, eax
pop ebp
add esp, 0x2c
ret 4
push ebx
push edi
push 0
lea ecx, [esp + 0x28]
push ecx
push 4
lea ebx, [esi + 4]
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea edx, [esp + 0x28]
push edx
push 4
lea edi, [esi + 8]
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [edi]
imul edi, dword [ebx]
xor ecx, ecx
mov eax, edi
mov edx, 0x2c
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.00590be8
add esp, 4
test eax, eax
je 0x563396
mov dword [eax], edi
dec edi
lea ebp, [eax + 4]
mov ebx, ebp
js 0x563392
mov ecx, ebx
call fcn.00560c00
add ebx, 0x2c
dec edi
jns 0x563385
mov eax, ebp
jmp 0x563398
xor eax, eax
xor ebx, ebx
mov dword [esi + 0xc], eax
cmp dword [esi + 8], ebx
jbe 0x563402
xor ebp, ebp
cmp dword [esi + 4], ebp
jbe 0x5633fc
lea esp, [esp]
mov eax, dword [esp + 0x34]
push 0
lea ecx, [esp + 0x28]
push ecx
push 2
lea edx, [esp + 0x4c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [esi + 4]
imul edi, ebx
add edi, ebp
imul edi, edi, 0x2c
add edi, dword [esi + 0xc]
je 0x5633f6
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
push ebp
mov ecx, edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
push ebx
mov ecx, edi
call eax
mov cx, word [esp + 0x40]
mov word [edi + 0x1c], cx
inc ebp
cmp ebp, dword [esi + 4]
jb 0x5633b0
inc ebx
cmp ebx, dword [esi + 8]
jb 0x5633a2
mov edx, dword [esp + 0x34]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov edi, dword [esi + 8]
mov dword [esi + 0x2c], eax
mov eax, 0xaaaaaaab
mul ecx
mov dword [esi + 0x10], ecx
mov ecx, edx
mov eax, 0xaaaaaaab
mul edi
shr ecx, 1
shr edx, 1
mov dword [esi + 0x1c], edx
imul edx, ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], edi
mov edi, edx
xor ecx, ecx
mov eax, edi
mov edx, 0x2c
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.00590be8
add esp, 4
test eax, eax
je 0x563482
mov dword [eax], edi
dec edi
lea ebp, [eax + 4]
mov ebx, ebp
js 0x563484
mov ecx, ebx
call fcn.00560c00
add ebx, 0x2c
dec edi
jns 0x563473
jmp 0x563484
xor ebp, ebp
cmp dword [esi + 0x1c], 0
mov dword [esi + 0x30], ebp
mov dword [esp + 0x1c], 0
jbe 0x56377b
mov dword [esp + 0x20], 2
cmp dword [esi + 0x18], 0
mov dword [esp + 0x18], 0
jbe 0x563764
mov edi, 2
jmp 0x5634c0
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x20]
lea ebp, [edi - 2]
cmp ebp, eax
jae 0x5634e9
lea ecx, [ebx - 2]
cmp ecx, dword [esi + 8]
jae 0x5634e9
imul ecx, eax
lea ecx, [ecx + edi - 2]
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0xc]
mov dword [esp + 0x10], ecx
jne 0x5634f1
mov dword [esp + 0x10], 0
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x563517
lea ecx, [ebx - 2]
cmp ecx, dword [esi + 8]
jae 0x563517
mov edx, dword [esi + 0xc]
imul ecx, eax
add ecx, edi
imul ecx, ecx, 0x2c
lea ecx, [ecx + edx - 0x2c]
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x56351f
mov dword [esp + 0x14], 0
cmp edi, eax
jae 0x56353c
lea ecx, [ebx - 2]
cmp ecx, dword [esi + 8]
jae 0x56353c
imul ecx, eax
add ecx, edi
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0xc]
mov dword [esp + 0x38], ecx
jne 0x563544
mov dword [esp + 0x38], 0
cmp ebp, eax
jae 0x563563
lea edx, [ebx - 1]
cmp edx, dword [esi + 8]
jae 0x563563
imul edx, eax
lea edx, [edx + edi - 2]
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x28], edx
jne 0x56356b
mov dword [esp + 0x28], 0
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x563591
lea edx, [ebx - 1]
cmp edx, dword [esi + 8]
jae 0x563591
mov ecx, dword [esi + 0xc]
imul edx, eax
add edx, edi
imul edx, edx, 0x2c
lea edx, [edx + ecx - 0x2c]
mov dword [esp + 0x2c], edx
test edx, edx
jne 0x563599
mov dword [esp + 0x2c], 0
cmp edi, eax
jae 0x5635b6
lea edx, [ebx - 1]
cmp edx, dword [esi + 8]
jae 0x5635b6
imul edx, eax
add edx, edi
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x30], edx
jne 0x5635be
mov dword [esp + 0x30], 0
cmp ebp, eax
jae 0x5635dc
cmp ebx, dword [esi + 8]
jae 0x5635dc
mov edx, eax
imul edx, ebx
lea edx, [edx + edi - 2]
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x34], edx
jne 0x5635e4
mov dword [esp + 0x34], 0
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x563609
cmp ebx, dword [esi + 8]
jae 0x563609
mov edx, dword [esi + 0xc]
mov ecx, eax
imul ecx, ebx
add ecx, edi
imul ecx, ecx, 0x2c
lea edx, [ecx + edx - 0x2c]
test edx, edx
je 0x563609
mov ebp, edx
jmp 0x56360b
xor ebp, ebp
cmp edi, eax
jae 0x563625
cmp ebx, dword [esi + 8]
jae 0x563625
imul eax, ebx
add eax, edi
imul eax, eax, 0x2c
add eax, dword [esi + 0xc]
je 0x563625
mov ebx, eax
jmp 0x563627
xor ebx, ebx
cmp dword [esp + 0x10], 0
je 0x56374f
cmp dword [esp + 0x14], 0
je 0x56374f
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x56374f
cmp dword [esp + 0x28], 0
je 0x56374f
cmp dword [esp + 0x2c], 0
je 0x56374f
cmp dword [esp + 0x30], 0
je 0x56374f
cmp dword [esp + 0x34], 0
je 0x56374f
test ebp, ebp
je 0x56374f
test ebx, ebx
je 0x56374f
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x1c], 1
je 0x563700
mov edx, eax
cmp byte [edx + 0x1d], 0
jne 0x563700
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1c], 1
je 0x563700
mov edx, eax
cmp byte [edx + 0x1d], 0
jne 0x563700
call fcn.0055d310
test eax, eax
jne 0x563700
mov ecx, dword [esp + 0x28]
call fcn.0055d310
test eax, eax
jne 0x563700
mov ecx, dword [esp + 0x2c]
call fcn.0055d310
test eax, eax
jne 0x563700
mov ecx, dword [esp + 0x30]
call fcn.0055d310
test eax, eax
jne 0x563700
mov ecx, dword [esp + 0x34]
call fcn.0055d310
test eax, eax
jne 0x563700
mov ecx, ebp
call fcn.0055d310
test eax, eax
jne 0x563700
mov ecx, ebx
call fcn.0055d310
test eax, eax
jne 0x563700
xor edx, edx
jmp 0x563705
mov edx, 1
mov eax, dword [esi + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
imul eax, ebx
mov ecx, dword [esi + 0x30]
add eax, ebp
imul eax, eax, 0x2c
mov word [eax + ecx + 0x1c], dx
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x30]
imul eax, ebx
add eax, ebp
imul eax, eax, 0x2c
mov edx, dword [ecx + eax]
add ecx, eax
mov eax, dword [edx + 0x10]
push ebp
call eax
mov ecx, dword [esi + 0x18]
imul ecx, ebx
add ecx, ebp
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0x30]
push ebx
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
mov eax, dword [esp + 0x18]
inc eax
add edi, 3
mov dword [esp + 0x18], eax
cmp eax, dword [esi + 0x18]
jb 0x5634c0
mov eax, dword [esp + 0x1c]
add dword [esp + 0x20], 3
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esi + 0x1c]
jb 0x5634a1
pop edi
pop ebx
pop esi
mov eax, 1
pop ebp
add esp, 0x2c
ret 4