Function at 0x52bcb0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x55e421
mov eax, dword fs:[0]
push eax
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6397d4]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esp + 0x78]
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push eax
mov dword [esp + 0x44], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x52bd0c
xor eax, eax
jmp 0x52c74c
push 0
lea ecx, [esp + 0x2c]
push ecx
push 4
lea ebp, [esi + 4]
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea edx, [esp + 0x2c]
push edx
push 4
lea edi, [esi + 8]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [edi]
imul edi, dword [ebp]
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.00551608
add esp, 4
mov dword [esp + 0x64], eax
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x70], ebp
je 0x52bd87
push fcn.0052ab20
push 0x52aad0
push edi
lea ebp, [eax + 4]
push 0x2c
push ebp
mov dword [eax], edi
call fcn.00551912
cmp dword [esi + 8], 0
mov dword [esp + 0x70], 0xffffffff
mov dword [esi + 0xc], ebp
mov dword [esp + 0x1c], 0
jbe 0x52be0a
xor ebp, ebp
cmp dword [esi + 4], ebp
jbe 0x52bdfa
push 0
lea ecx, [esp + 0x2c]
push ecx
push 2
lea edx, [esp + 0x84]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [esi + 4]
imul edi, dword [esp + 0x1c]
add edi, ebp
imul edi, edi, 0x2c
add edi, dword [esi + 0xc]
je 0x52bdf2
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push ebp
mov ecx, edi
call edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi]
mov edx, dword [eax + 0x18]
push ecx
mov ecx, edi
call edx
mov ax, word [esp + 0x78]
mov word [edi + 0x1c], ax
add ebp, 1
cmp ebp, dword [esi + 4]
jb 0x52bda7
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
jb 0x52bda0
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov dword [esi + 0x2c], edx
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.00551608
add esp, 4
mov dword [esp + 0x64], eax
test eax, eax
mov dword [esp + 0x70], 1
je 0x52be93
push fcn.0052ab20
push 0x52aad0
push edi
lea ebx, [eax + 4]
push 0x2c
push ebx
mov dword [eax], edi
call fcn.00551912
jmp 0x52be95
xor ebx, ebx
cmp dword [esi + 0x1c], 0
mov dword [esp + 0x70], 0xffffffff
mov dword [esi + 0x30], ebx
mov dword [esp + 0x1c], 0
jbe 0x52c1d1
mov dword [esp + 0x18], 2
lea ebx, [ebx]
xor ebp, ebp
cmp dword [esi + 0x18], ebp
jbe 0x52c1b8
mov edi, 2
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x18]
lea ecx, [edi - 2]
cmp ecx, eax
jae 0x52befb
lea ecx, [ebx - 2]
cmp ecx, dword [esi + 8]
jae 0x52befb
mov edx, eax
imul edx, ecx
lea ecx, [edx + edi - 2]
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0xc]
mov dword [esp + 0x24], ecx
jne 0x52bf03
mov dword [esp + 0x24], 0
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x52bf2b
lea ecx, [ebx - 2]
cmp ecx, dword [esi + 8]
jae 0x52bf2b
mov edx, eax
imul edx, ecx
mov ecx, dword [esi + 0xc]
add edx, edi
imul edx, edx, 0x2c
lea ecx, [edx + ecx - 0x2c]
test ecx, ecx
mov dword [esp + 0x20], ecx
jne 0x52bf33
mov dword [esp + 0x20], 0
cmp edi, eax
jae 0x52bf52
lea edx, [ebx - 2]
cmp edx, dword [esi + 8]
jae 0x52bf52
mov ecx, eax
imul ecx, edx
add ecx, edi
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0xc]
mov dword [esp + 0x5c], ecx
jne 0x52bf5a
mov dword [esp + 0x5c], 0
lea ecx, [edi - 2]
cmp ecx, eax
jae 0x52bf7e
lea edx, [ebx - 1]
cmp edx, dword [esi + 8]
jae 0x52bf7e
mov ecx, eax
imul ecx, edx
lea edx, [ecx + edi - 2]
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x14], edx
jne 0x52bf86
mov dword [esp + 0x14], 0
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x52bfae
lea edx, [ebx - 1]
cmp edx, dword [esi + 8]
jae 0x52bfae
mov ecx, eax
imul ecx, edx
mov edx, dword [esi + 0xc]
add ecx, edi
imul ecx, ecx, 0x2c
lea edx, [ecx + edx - 0x2c]
test edx, edx
mov dword [esp + 0x2c], edx
jne 0x52bfb6
mov dword [esp + 0x2c], 0
cmp edi, eax
jae 0x52bfd5
lea ecx, [ebx - 1]
cmp ecx, dword [esi + 8]
jae 0x52bfd5
mov edx, eax
imul edx, ecx
add edx, edi
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x30], edx
jne 0x52bfdd
mov dword [esp + 0x30], 0
lea ecx, [edi - 2]
cmp ecx, eax
jae 0x52bffe
cmp ebx, dword [esi + 8]
jae 0x52bffe
mov ecx, eax
imul ecx, ebx
lea edx, [ecx + edi - 2]
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x34], edx
jne 0x52c006
mov dword [esp + 0x34], 0
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x52c02b
cmp ebx, dword [esi + 8]
jae 0x52c02b
mov ecx, dword [esi + 0xc]
mov edx, eax
imul edx, ebx
add edx, edi
imul edx, edx, 0x2c
lea edx, [edx + ecx - 0x2c]
test edx, edx
mov dword [esp + 0x38], edx
jne 0x52c033
mov dword [esp + 0x38], 0
cmp edi, eax
jae 0x52c04d
cmp ebx, dword [esi + 8]
jae 0x52c04d
imul eax, ebx
add eax, edi
imul eax, eax, 0x2c
add eax, dword [esi + 0xc]
je 0x52c04d
mov ebx, eax
jmp 0x52c04f
xor ebx, ebx
cmp dword [esp + 0x24], 0
je 0x52c1a9
cmp dword [esp + 0x20], 0
je 0x52c1a9
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x52c1a9
cmp dword [esp + 0x14], 0
je 0x52c1a9
cmp dword [esp + 0x2c], 0
je 0x52c1a9
cmp dword [esp + 0x30], 0
je 0x52c1a9
cmp dword [esp + 0x34], 0
je 0x52c1a9
cmp dword [esp + 0x38], 0
je 0x52c1a9
test ebx, ebx
je 0x52c1a9
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x1c], 0
jne 0x52c160
cmp byte [eax + 0x1d], 0
jne 0x52c160
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x1c], 0
jne 0x52c160
cmp byte [eax + 0x1d], 0
jne 0x52c160
call fcn.005274c0
test eax, eax
jne 0x52c160
mov ecx, dword [esp + 0x14]
call fcn.005274c0
test eax, eax
jne 0x52c160
mov ecx, dword [esp + 0x2c]
call fcn.005274c0
test eax, eax
jne 0x52c160
mov ecx, dword [esp + 0x30]
call fcn.005274c0
test eax, eax
jne 0x52c160
mov ecx, dword [esp + 0x34]
call fcn.005274c0
test eax, eax
jne 0x52c160
mov ecx, dword [esp + 0x38]
call fcn.005274c0
test eax, eax
jne 0x52c160
mov ecx, ebx
call fcn.005274c0
test eax, eax
jne 0x52c160
mov eax, dword [esi + 0x18]
mov ebx, dword [esp + 0x1c]
imul eax, ebx
add eax, ebp
imul eax, eax, 0x2c
add eax, dword [esi + 0x30]
mov word [eax + 0x1c], 0
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x30]
imul edx, ebx
add edx, ebp
imul edx, edx, 0x2c
lea ecx, [edx + eax]
jmp 0x52c188
mov eax, dword [esi + 0x18]
mov ebx, dword [esp + 0x1c]
imul eax, ebx
add eax, ebp
imul eax, eax, 0x2c
add eax, dword [esi + 0x30]
mov word [eax + 0x1c], 1
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x30]
imul eax, ebx
add eax, ebp
imul eax, eax, 0x2c
add ecx, eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push ebp
call eax
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x30]
imul ecx, ebx
add ecx, ebp
imul ecx, ecx, 0x2c
mov eax, dword [ecx + edx]
add ecx, edx
mov edx, dword [eax + 0x18]
push ebx
call edx
add ebp, 1
add edi, 3
cmp ebp, dword [esi + 0x18]
jb 0x52bed0
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], 3
add eax, 1
cmp eax, dword [esi + 0x1c]
mov dword [esp + 0x1c], eax
jb 0x52bec0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
shr eax, 2
shr ecx, 2
mov dword [esi + 0x24], eax
imul eax, ecx
mov dword [esi + 0x20], ecx
mov edi, eax
xor ecx, ecx
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.00551608
add esp, 4
mov dword [esp + 0x64], eax
test eax, eax
mov dword [esp + 0x70], 2
je 0x52c237
push fcn.0052ab20
push 0x52aad0
push edi
lea ebx, [eax + 4]
push 0x2c
push ebx
mov dword [eax], edi
call fcn.00551912
jmp 0x52c239
xor ebx, ebx
cmp dword [esi + 0x24], 0
mov dword [esp + 0x70], 0xffffffff
mov dword [esi + 0x34], ebx
mov dword [esp + 0x18], 0
jbe 0x52c747
jmp 0x52c260
cmp dword [esi + 0x20], 0
mov dword [esp + 0x1c], 0
jbe 0x52c733
mov eax, dword [esp + 0x18]
add eax, eax
add eax, eax
lea ecx, [eax + 1]
lea edx, [eax + 2]
add eax, 3
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], eax
nop
mov edi, dword [esp + 0x1c]
mov eax, dword [esi + 4]
mov ebp, dword [esp + 0x18]
add edi, edi
add edi, edi
cmp edi, eax
jae 0x52c2c2
lea edx, [ebp*4]
cmp edx, dword [esi + 8]
jae 0x52c2c2
mov ecx, eax
imul ecx, edx
add ecx, edi
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0xc]
mov dword [esp + 0x38], ecx
jne 0x52c2ca
mov dword [esp + 0x38], 0
lea ecx, [edi + 1]
cmp ecx, eax
mov dword [esp + 0x14], ecx
jae 0x52c2f4
lea ebx, [ebp*4]
cmp ebx, dword [esi + 8]
jae 0x52c2f4
mov edx, eax
imul edx, ebx
add edx, ecx
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x34], edx
jne 0x52c2fc
mov dword [esp + 0x34], 0
lea ecx, [edi + 2]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jae 0x52c326
lea ebx, [ebp*4]
cmp ebx, dword [esi + 8]
jae 0x52c326
mov edx, eax
imul edx, ebx
add edx, ecx
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x30], edx
jne 0x52c32e
mov dword [esp + 0x30], 0
lea ecx, [edi + 3]
cmp ecx, eax
jae 0x52c354
lea ebx, [ebp*4]
cmp ebx, dword [esi + 8]
jae 0x52c354
mov edx, eax
imul edx, ebx
add edx, ecx
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x2c], edx
jne 0x52c35c
mov dword [esp + 0x2c], 0
cmp edi, eax
mov ebx, dword [esp + 0x60]
jae 0x52c37c
cmp ebx, dword [esi + 8]
jae 0x52c37c
mov edx, eax
imul edx, ebx
add edx, edi
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x3c], edx
jne 0x52c384
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x14], eax
jae 0x52c3a4
cmp ebx, dword [esi + 8]
jae 0x52c3a4
mov edx, eax
imul edx, ebx
add edx, dword [esp + 0x14]
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x40], edx
jne 0x52c3ac
mov dword [esp + 0x40], 0
mov ebp, dword [esp + 0x20]
cmp ebp, eax
jae 0x52c3cc
cmp ebx, dword [esi + 8]
jae 0x52c3cc
mov edx, eax
imul edx, ebx
add edx, ebp
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x44], edx
jne 0x52c3d4
mov dword [esp + 0x44], 0
cmp ecx, eax
jae 0x52c3f0
cmp ebx, dword [esi + 8]
jae 0x52c3f0
mov edx, eax
imul edx, ebx
add edx, ecx
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x48], edx
jne 0x52c3f8
mov dword [esp + 0x48], 0
cmp edi, eax
mov ebx, dword [esp + 0x64]
jae 0x52c418
cmp ebx, dword [esi + 8]
jae 0x52c418
mov edx, eax
imul edx, ebx
add edx, edi
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x4c], edx
jne 0x52c420
mov dword [esp + 0x4c], 0
cmp dword [esp + 0x14], eax
jae 0x52c444
cmp ebx, dword [esi + 8]
jae 0x52c444
mov ebp, dword [esp + 0x20]
mov edx, eax
imul edx, ebx
add edx, dword [esp + 0x14]
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x50], edx
jne 0x52c44c
mov dword [esp + 0x50], 0
cmp ebp, eax
jae 0x52c468
cmp ebx, dword [esi + 8]
jae 0x52c468
mov edx, eax
imul edx, ebx
add edx, ebp
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x54], edx
jne 0x52c470
mov dword [esp + 0x54], 0
cmp ecx, eax
jae 0x52c48c
cmp ebx, dword [esi + 8]
jae 0x52c48c
mov edx, eax
imul edx, ebx
add edx, ecx
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x58], edx
jne 0x52c494
mov dword [esp + 0x58], 0
cmp edi, eax
mov ebx, dword [esp + 0x24]
jae 0x52c4b4
cmp ebx, dword [esi + 8]
jae 0x52c4b4
mov edx, eax
imul edx, ebx
add edx, edi
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
mov dword [esp + 0x5c], edx
jne 0x52c4bc
mov dword [esp + 0x5c], 0
cmp dword [esp + 0x14], eax
jae 0x52c4dc
cmp ebx, dword [esi + 8]
jae 0x52c4dc
mov edx, eax
imul edx, ebx
add edx, dword [esp + 0x14]
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
je 0x52c4dc
mov ebp, edx
jmp 0x52c4de
xor ebp, ebp
mov ebx, dword [esp + 0x20]
cmp ebx, eax
mov edi, dword [esp + 0x24]
jae 0x52c502
cmp edi, dword [esi + 8]
jae 0x52c502
mov edx, eax
imul edx, edi
add edx, ebx
imul edx, edx, 0x2c
add edx, dword [esi + 0xc]
je 0x52c502
mov ebx, edx
jmp 0x52c504
xor ebx, ebx
cmp ecx, eax
jae 0x52c51e
cmp edi, dword [esi + 8]
jae 0x52c51e
imul eax, edi
add eax, ecx
imul eax, eax, 0x2c
add eax, dword [esi + 0xc]
je 0x52c51e
mov edi, eax
jmp 0x52c520
xor edi, edi
cmp dword [esp + 0x38], 0
je 0x52c71f
cmp dword [esp + 0x34], 0
je 0x52c71f
cmp dword [esp + 0x30], 0
je 0x52c71f
cmp dword [esp + 0x2c], 0
je 0x52c71f
cmp dword [esp + 0x3c], 0
je 0x52c71f
cmp dword [esp + 0x40], 0
je 0x52c71f
cmp dword [esp + 0x44], 0
je 0x52c71f
cmp dword [esp + 0x48], 0
je 0x52c71f
cmp dword [esp + 0x4c], 0
je 0x52c71f
cmp dword [esp + 0x50], 0
je 0x52c71f
cmp dword [esp + 0x54], 0
je 0x52c71f
cmp dword [esp + 0x58], 0
je 0x52c71f
cmp dword [esp + 0x5c], 0
je 0x52c71f
test ebp, ebp
je 0x52c71f
test ebx, ebx
je 0x52c71f
test edi, edi
je 0x52c71f
mov ecx, dword [esp + 0x38]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x34]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x30]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x2c]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x3c]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x40]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x44]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x48]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x4c]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x50]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x54]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x58]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, dword [esp + 0x5c]
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, ebp
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, ebx
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov ecx, edi
call fcn.005274c0
test eax, eax
jne 0x52c6d0
mov eax, dword [esi + 0x20]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
imul eax, edi
mov ecx, dword [esi + 0x34]
add eax, ebx
imul eax, eax, 0x2c
mov word [eax + ecx + 0x1c], 0
jmp 0x52c6ed
mov eax, dword [esi + 0x20]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
imul eax, edi
mov ecx, dword [esi + 0x34]
add eax, ebx
imul eax, eax, 0x2c
mov word [eax + ecx + 0x1c], 1
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x34]
imul edx, edi
add edx, ebx
imul edx, edx, 0x2c
lea ecx, [edx + eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push ebx
call eax
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x34]
imul ecx, edi
add ecx, ebx
imul ecx, ecx, 0x2c
mov eax, dword [ecx + edx]
add ecx, edx
mov edx, dword [eax + 0x18]
push edi
call edx
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
jb 0x52c290
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esi + 0x24]
mov dword [esp + 0x18], eax
jb 0x52c260
mov eax, 1
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 4