Function at 0x531c50
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov ecx, dword [ebp + 0x18]
push ebx
push esi
push edi
mov eax, dword [ecx + 0x18]
mov edi, dword [ebp + 0x14]
mov edx, dword [ecx + 0xb0]
mov ebx, dword [ecx + 0xa8]
mov esi, dword [ecx + 0xac]
mov dword [ebp - 8], eax
mov eax, dword [ecx + 0xa4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0xbc]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
test edi, edi
jle 0x531ce0
add edi, 0x20
push edi
mov dword [ebp + 0x14], edi
call fcn.00593e38
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
je 0x531cc4
mov ecx, dword [ebp + 8]
push dword [ecx]
lea ecx, [edi - 0x20]
push ecx
push 1
push eax
call fcn.00595b79
mov eax, dword [ebp - 0x14]
add esp, 0x10
mov ecx, dword [ebp + 0x18]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x20]
movdqu xmmword [eax + edi - 0x20], xmm0
movdqu xmmword [eax + edi - 0x10], xmm0
mov edi, eax
mov eax, dword [ebp - 0x18]
jmp 0x531ce3
mov edi, dword [ebp + 0x14]
cmp dword [ebp + 0x10], 0
jle 0x5322f8
lea ecx, [ecx]
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 4], eax
test edx, edx
jne 0x531dd1
lea esp, [esp]
cmp esi, 0xb
jge 0x531dc1
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x531d3c
test esi, esi
je 0x532197
mov esi, 0xb
jmp 0x531dc1
cmp dword [ebp - 0x14], 0
je 0x531d50
dec dword [ebp + 0x14]
js 0x532197
mov al, byte [edi]
inc edi
jmp 0x531d5d
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
mov ecx, dword [ebp - 0x1c]
movzx eax, al
movzx eax, byte [eax + ecx]
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 0xb
jge 0x531dc1
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x531d8d
mov esi, 0xb
jmp 0x531dc1
cmp dword [ebp - 0x14], 0
je 0x531da1
dec dword [ebp + 0x14]
js 0x532197
mov al, byte [edi]
inc edi
jmp 0x531dae
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
mov ecx, dword [ebp - 0x1c]
movzx eax, al
movzx eax, byte [eax + ecx]
mov ecx, esi
shl eax, cl
or ebx, eax
add esi, 8
test ebx, 0x7ff
je 0x531dd1
dec esi
shr ebx, 1
jmp 0x531d10
cmp esi, 8
jge 0x531e2a
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x531df6
test esi, esi
je 0x532197
mov esi, 8
jmp 0x531e2a
cmp dword [ebp - 0x14], 0
je 0x531e0a
dec dword [ebp + 0x14]
js 0x532197
mov al, byte [edi]
inc edi
jmp 0x531e17
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
mov ecx, dword [ebp - 0x1c]
movzx eax, al
movzx eax, byte [eax + ecx]
mov ecx, esi
shl eax, cl
or ebx, eax
add esi, 8
test bl, bl
jne 0x531e36
sub esi, 8
shr ebx, 8
jmp 0x531dd1
test bl, 1
jne 0x531e48
jmp 0x531e40
shr ebx, 1
dec esi
test bl, 1
je 0x531e40
dec esi
mov dword [ebp - 0x20], 0
shr ebx, 1
cmp esi, 0xc
jge 0x531f03
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x531e7e
test esi, esi
je 0x532208
mov esi, 0xc
jmp 0x531f03
cmp dword [ebp - 0x14], 0
je 0x531e92
dec dword [ebp + 0x14]
js 0x532208
mov al, byte [edi]
inc edi
jmp 0x531e9f
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
mov ecx, dword [ebp - 0x1c]
movzx eax, al
movzx eax, byte [eax + ecx]
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 0xc
jge 0x531f03
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x531ecf
mov esi, 0xc
jmp 0x531f03
cmp dword [ebp - 0x14], 0
je 0x531ee3
dec dword [ebp + 0x14]
js 0x532208
mov al, byte [edi]
inc edi
jmp 0x531ef0
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
mov ecx, dword [ebp - 0x1c]
movzx eax, al
movzx eax, byte [eax + ecx]
mov ecx, esi
shl eax, cl
or ebx, eax
add esi, 8
mov edx, ebx
and edx, 0xfff
movzx ecx, byte [edx*4 + 0x5f1db1]
movzx eax, byte [edx*4 + 0x5f1db0]
sub esi, ecx
add eax, 0xfffffff9
shr ebx, cl
cmp eax, 5
ja case.0x532059.9
jmp dword [eax*4 + 0x532328]
movzx eax, word [edx*4 + 0x5f1db2]
add dword [ebp - 0xc], eax
add dword [ebp - 0x10], eax
jmp 0x531e52
mov ecx, dword [ebp - 4]
movzx eax, word [edx*4 + 0x5f1db2]
add eax, dword [ebp - 0x10]
mov dword [ecx], eax
add ecx, 4
movzx eax, word [edx*4 + 0x5f1db2]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0xc]
add ecx, eax
xor eax, eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
cmp ecx, dword [ebp - 8]
jge 0x5320a7
lea esp, [esp]
cmp esi, 0xd
jge 0x532031
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x531fac
test esi, esi
je 0x532208
mov esi, 0xd
jmp 0x532031
cmp dword [ebp - 0x14], 0
je 0x531fc0
dec dword [ebp + 0x14]
js 0x532208
mov al, byte [edi]
inc edi
jmp 0x531fcd
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
mov ecx, dword [ebp - 0x1c]
movzx eax, al
movzx eax, byte [eax + ecx]
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 0xd
jge 0x532031
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x531ffd
mov esi, 0xd
jmp 0x532031
cmp dword [ebp - 0x14], 0
je 0x532011
dec dword [ebp + 0x14]
js 0x532208
mov al, byte [edi]
inc edi
jmp 0x53201e
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
mov ecx, dword [ebp - 0x1c]
movzx eax, al
movzx eax, byte [eax + ecx]
mov ecx, esi
shl eax, cl
or ebx, eax
add esi, 8
mov edx, ebx
and edx, 0x1fff
movzx ecx, byte [edx*4 + 0x5f5db1]
movzx eax, byte [edx*4 + 0x5f5db0]
sub esi, ecx
add eax, 0xfffffff8
shr ebx, cl
cmp eax, 4
ja case.0x532059.9
jmp dword [eax*4 + 0x532340]
movzx eax, word [edx*4 + 0x5f5db2]
add dword [ebp - 0xc], eax
add dword [ebp - 0x10], eax
jmp 0x531f80
mov ecx, dword [ebp - 4]
movzx eax, word [edx*4 + 0x5f5db2]
add eax, dword [ebp - 0x10]
mov dword [ecx], eax
add ecx, 4
movzx eax, word [edx*4 + 0x5f5db2]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0xc]
add ecx, eax
xor eax, eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
cmp ecx, dword [ebp - 8]
jl 0x531e52
mov edx, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
je 0x532120
jle 0x5320c4
cmp edx, dword [ebp - 0x18]
jbe 0x5320c1
sub ecx, dword [edx - 4]
sub edx, 4
cmp ecx, dword [ebp - 8]
jg 0x5320b1
cmp ecx, dword [ebp - 8]
jge 0x53210c
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov eax, edx
sub eax, dword [ebp - 0x18]
test al, 4
mov eax, dword [ebp - 0x10]
je 0x5320e0
mov dword [edx], eax
add edx, 4
xor eax, eax
sub eax, ecx
add eax, dword [ebp - 8]
mov dword [edx], eax
add edx, 4
jmp 0x532120
mov dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
test eax, eax
je 0x5320aa
mov dword [edx], eax
add edx, 4
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x5320aa
cmp ecx, dword [ebp - 8]
jle 0x532120
add eax, dword [ebp - 8]
mov dword [edx], eax
mov dword [edx + 4], 0
add edx, 8
push dword [ebp - 8]
push edx
push dword [ebp - 0x18]
push dword [ebp + 0xc]
call fcn.00531980
add esp, 0x10
cmp word [ebp + 0x20], 0
je 0x532178
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x53215b
push eax
push dword [ebp + 0x24]
push 1
push dword [ebp + 0x28]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
call fcn.00458910
add esp, 0x18
inc dword [ebp + 0x28]
jmp 0x53216c
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 0x1c]
call fcn.004585b0
add esp, 0x10
movzx eax, ax
test ax, ax
jne 0x53231f
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
sub eax, dword [ecx + 0x14]
mov dword [ebp + 0x10], eax
test eax, eax
jle 0x5322f8
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
jmp 0x531cf0
mov eax, dword [ebp - 8]
test eax, eax
je 0x53227b
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 0x18]
jns 0x5321c6
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
cmp edx, edi
jbe 0x5321be
sub eax, dword [edx - 4]
sub edx, 4
cmp eax, ecx
jg 0x5321b0
mov dword [ebp - 0xc], eax
mov eax, ecx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0xc]
cmp ecx, eax
jge 0x5321f4
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov eax, edx
sub eax, edi
test al, 4
je 0x5321e5
mov dword [edx], 0
add edx, 4
mov eax, dword [ebp - 8]
sub eax, ecx
mov dword [edx], eax
add edx, 4
jmp 0x532275
jle 0x53227b
mov dword [edx], eax
mov dword [edx + 4], 0
add edx, 8
jmp 0x532278
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 4]
test edi, edi
je 0x53221c
mov dword [edx], edi
add edx, 4
mov dword [ebp - 4], edx
xor edi, edi
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
cmp ecx, eax
je 0x53227b
jle 0x53223c
cmp edx, dword [ebp - 0x18]
jbe 0x532237
sub ecx, dword [edx - 4]
sub edx, 4
cmp ecx, eax
jg 0x532228
mov dword [ebp - 4], edx
cmp ecx, eax
jge 0x532263
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov eax, edx
sub eax, dword [ebp - 0x18]
test al, 4
je 0x532255
mov dword [edx], edi
add edx, 4
xor edi, edi
mov eax, dword [ebp - 8]
sub edi, ecx
add edi, eax
mov dword [edx], edi
add edx, 4
jmp 0x532278
cmp ecx, eax
jle 0x53227b
add eax, edi
mov dword [edx], eax
mov dword [edx + 4], 0
add edx, 8
mov eax, dword [ebp - 8]
mov dword [ebp - 4], edx
push eax
push dword [ebp - 4]
push dword [ebp - 0x18]
push dword [ebp + 0xc]
call fcn.00531980
add esp, 0x10
cmp word [ebp + 0x20], 0
je 0x5322c4
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
je 0x5322b3
push ecx
push dword [ebp + 0x24]
push 1
push dword [ebp + 0x28]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
call fcn.00458910
add esp, 0x18
jmp 0x5322c4
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 0x1c]
call fcn.004585b0
add esp, 0x10
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0xac], esi
mov dword [eax + 0xa8], ebx
mov dword [eax + 0xb0], edx
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x5322ec
push eax
call fcn.00592c4b
add esp, 4
pop edi
pop esi
mov eax, 4
pop ebx
mov esp, ebp
pop ebp
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov dword [ecx + 0xac], esi
mov dword [ecx + 0xa8], ebx
mov dword [ecx + 0xb0], edx
test eax, eax
je 0x53231d
push eax
call fcn.00592c4b
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret