Function at 0x4abd80
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1258
call fcn.0053f480
mov eax, dword [ebp + 0x14]
push ebx
xor ecx, ecx
xor ebx, ebx
push esi
cmp eax, ecx
push edi
jne 0x4abdb0
cmp dword [0x78cc74], ecx
jne 0x4abdb0
mov dword [0x78cc74], 1
cmp byte [eax], 0
je 0x4abddc
mov eax, dword [ebp + 0x28]
cmp eax, ecx
je 0x4abdbf
mov byte [eax], 1
mov eax, dword [ebp + 0x24]
cmp eax, ecx
je 0x4ac491
mov dword [eax], ecx
mov dword [eax + 4], 0x40590000
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
cmp esi, ecx
je 0x4abdef
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x2b8]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x20]
cmp eax, ecx
je 0x4abdff
cmp byte [eax], 0
je 0x4abec1
push ecx
mov dword [0x78cc90], ecx
mov dword [0x78cc8c], ecx
mov dword [0x78cc88], ecx
mov dword [0x78cc80], ecx
mov dword [0x78cc84], ecx
mov dword [0x78cc78], ecx
mov dword [0x78cc7c], ecx
mov byte [0x78cc94], 0
call fcn.004abd10
mov ecx, 0x5a
xor eax, eax
mov edi, 0x78cb08
add esp, 4
rep stosd dword es:[edi], eax
mov al, byte [ebp + 0x1c]
test al, al
je 0x4abe58
mov dword [0x78cc6c], 9
test esi, esi
je 0x4abf37
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebx + esi*8 + 0xe9c]
mov edx, dword [ebx + esi*8 + 0xe98]
push ecx
push edx
push eax
call fcn.004f57a0
add esp, 0xc
test eax, eax
jne 0x4abe8c
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + esi*4 + 0x9e8]
mov byte [0x78cc94], 1
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
shl eax, 4
cdq
mov esi, eax
mov dword [0x78cc7c], edx
mov dword [0x78cc78], esi
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4abecd
mov byte [eax], 0
mov edx, dword [0x78cc7c]
mov esi, dword [0x78cc78]
cmp dword [0x78cc84], edx
jg 0x4ac30b
jl 0x4abee7
cmp dword [0x78cc80], esi
jae 0x4ac30b
mov ecx, 0x244
xor eax, eax
lea edi, [esp + 0x21]
mov byte [esp + 0x20], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [0x78cc94]
mov dword [esp + 0xc], 0
test al, al
jne 0x4abfba
mov ecx, dword [0x78cc80]
mov eax, dword [0x78cc84]
sub esi, ecx
sbb edx, eax
mov dword [esp + 0x1c], edx
js 0x4abf8d
jg 0x4abf30
cmp esi, 0x914
jbe 0x4abf8d
mov ebx, 0x914
jmp 0x4abf8f
mov ecx, dword [ebp + 0x10]
push 0
push 0
push ecx
call fcn.004f57a0
add esp, 0xc
test eax, eax
jne 0x4abf54
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
push edx
call fcn.004f57f0
add esp, 4
mov esi, eax
test edx, edx
mov dword [0x78cc78], esi
mov dword [0x78cc7c], edx
jg 0x4abeb7
jl 0x4abf84
cmp esi, 0x914
jae 0x4abeb7
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, esi
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0xc]
push 0
push eax
lea ecx, [esp + 0x28]
push ebx
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4ac3c7
cmp dword [esp + 0xc], ebx
jne 0x4ac3c7
jmp 0x4ac020
mov ecx, 0x24b
xor eax, eax
lea edi, [esp + 0x935]
mov byte [esp + 0x934], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edx, dword [ebp + 0x10]
push 0
stosb byte es:[edi], al
lea eax, [esp + 0x10]
lea ecx, [esp + 0x938]
push eax
push 0x930
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4ac3c7
cmp dword [esp + 0xc], 0x930
jne 0x4ac3c7
mov ecx, 0x245
lea esi, [esp + 0x94c]
lea edi, [esp + 0x20]
mov ebx, 0x914
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x78cc80]
mov ecx, dword [0x78cc84]
or eax, ecx
jne 0x4ac0a6
mov al, byte [0x78cc94]
test al, al
jne 0x4ac0a6
lea edx, [esp + 0x20]
mov ecx, str.RIFF
mov eax, dword [edx]
mov edx, dword [ecx]
cmp eax, edx
jne 0x4ac0a6
mov ecx, 2
mov edi, str.CDXAfmt
lea esi, [esp + 0x28]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x4ac0a6
lea ecx, [esp + 0x44]
mov eax, str.data
mov edx, dword [ecx]
mov ecx, dword [eax]
cmp edx, ecx
jne 0x4ac0a6
mov eax, dword [ebp + 0x10]
push 0
push 0x2c
push eax
mov byte [0x78cc94], 1
mov dword [0x78cc80], 0x2c
mov dword [0x78cc84], 0
call fcn.004f57a0
add esp, 0xc
test eax, eax
je 0x4ac3c7
jmp 0x4ac269
push 0x78cb08
push 1
lea ecx, [esp + 0x28]
push ebx
push ecx
call fcn.004ab820
mov edi, eax
xor ecx, ecx
add esp, 0x10
cmp edi, ecx
je 0x4ac33f
mov al, byte [0x78cc94]
test al, al
je 0x4ac12d
mov al, byte [0x78cb14]
test al, al
je 0x4ac110
cmp dword [0x78cb50], 1
jne 0x4ac0f3
mov eax, dword [ebp + 0x14]
mov dword [0x78cb50], ecx
inc dword [eax + 0x138]
jmp 0x4ac12d
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x13c]
inc edx
mov dword [eax + 0x13c], edx
mov eax, dword [0x78cb50]
dec eax
mov dword [0x78cb50], eax
jmp 0x4ac12d
mov eax, dword [ebp + 0x14]
mov esi, dword [0x78cb50]
mov edx, dword [eax + 0x13c]
add esi, edx
mov dword [0x78cb50], esi
mov dword [eax + 0x13c], ecx
mov eax, dword [0x78cb1c]
cmp eax, 4
ja case.default.0x4ac13b
jmp dword [eax*4 + 0x4ac49c]
mov al, byte [ebp + 0x18]
test al, al
jne case.0x4ac13b.0
push 0x10
call fcn.004f56e0
mov esi, eax
add esp, 4
test esi, esi
je 0x4ac377
mov eax, dword [0x78cc88]
mov dword [esi], eax
mov ecx, dword [0x78cb20]
mov edx, dword [0x78cb24]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [0x78cb28]
lea ecx, [eax*8]
sub ecx, eax
mov ecx, dword [ecx*8 + 0x78cb8c]
test ecx, ecx
jne 0x4ac1df
push 0x10
call fcn.0055f8c0
add esp, 4
test eax, eax
je 0x4ac1aa
mov ecx, eax
call fcn.004f5d50
jmp 0x4ac1ac
xor eax, eax
mov ecx, dword [0x78cb28]
lea edx, [ecx*8]
sub edx, ecx
mov dword [edx*8 + 0x78cb8c], eax
mov eax, dword [0x78cb28]
lea ecx, [eax*8]
sub ecx, eax
mov ecx, dword [ecx*8 + 0x78cb8c]
test ecx, ecx
je 0x4ac377
push esi
call fcn.004f5dc0
mov al, byte [0x78cc94]
mov edx, dword [0x78cc80]
test al, al
je 0x4ac1fc
add edx, 0x930
jmp 0x4ac1fe
add edx, edi
mov ecx, dword [0x78cc84]
mov dword [0x78cc80], edx
mov edx, dword [0x78cc88]
adc ecx, 0
inc edx
cmp edi, ebx
mov dword [0x78cc84], ecx
mov dword [0x78cc88], edx
je 0x4ac269
test al, al
jne 0x4ac269
mov ecx, dword [0x78cc8c]
mov eax, dword [0x78cc90]
mov edx, 0x914
sub edx, edi
add ecx, edx
mov edx, dword [ebp + 0x10]
inc eax
mov dword [0x78cc8c], ecx
mov ecx, dword [0x78cc80]
mov dword [0x78cc90], eax
mov eax, dword [0x78cc84]
push eax
push ecx
push edx
call fcn.004f57a0
add esp, 0xc
test eax, eax
je 0x4ac3c7
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x4ac2a9
mov eax, dword [0x78cc84]
mov ecx, dword [0x78cc80]
push 0
push 0x64
push eax
push ecx
call fcn.0053f700
mov ecx, dword [0x78cc7c]
push ecx
mov ecx, dword [0x78cc78]
push ecx
push edx
push eax
call fcn.0053f650
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
fild qword [esp + 0x10]
fstp qword [esi]
mov ecx, dword [ebp + 0x28]
test ecx, ecx
je 0x4ac2d9
mov edx, dword [0x78cc80]
mov eax, dword [0x78cc78]
cmp edx, eax
jne 0x4ac2d5
mov eax, dword [0x78cc84]
mov edx, dword [0x78cc7c]
cmp eax, edx
jne 0x4ac2d5
mov eax, 1
jmp 0x4ac2d7
xor eax, eax
mov byte [ecx], al
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4ac38a
mov edx, dword [0x78cc7c]
mov eax, dword [0x78cc84]
mov esi, dword [0x78cc78]
cmp eax, edx
jl 0x4abee7
jg 0x4ac30b
cmp dword [0x78cc80], esi
jb 0x4abee7
mov eax, dword [0x78cc80]
mov ebx, dword [ebp + 0x14]
cmp eax, esi
jne 0x4ac323
cmp dword [0x78cc84], edx
je 0x4ac3d3
mov eax, dword [0x78cc74]
test eax, eax
jne 0x4ac3d3
mov dword [0x78cc74], 1
jmp 0x4ac3d3
mov esi, dword [0x78cc78]
mov ebx, dword [0x78cc80]
mov edx, dword [0x78cc7c]
mov edi, dword [0x78cc84]
mov eax, esi
mov ecx, edx
sub eax, ebx
sbb ecx, edi
mov dword [esp + 0x1c], ecx
js 0x4ac30b
jg 0x4ac36e
cmp eax, 0x914
jbe 0x4ac30b
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x78cc74], 0x99
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x78cc80]
mov eax, dword [0x78cc78]
cmp edx, eax
jne 0x4ac491
mov eax, dword [0x78cc84]
mov ecx, dword [0x78cc7c]
cmp eax, ecx
je 0x4ac3d0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x78cc74], ecx
jne 0x4ac3c7
mov dword [0x78cc74], 2
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x14]
lea edi, [ebx + 0x18]
mov ecx, 0x48
mov esi, 0x78cb50
push 1
rep movsd dword es:[edi], dword [esi]
call fcn.004abd10
mov ecx, dword [ebp + 8]
add esp, 4
test ecx, ecx
mov byte [ebx], 1
mov eax, 3
je 0x4ac404
mov dword [ebx + 4], 1
jmp 0x4ac41a
mov cl, byte [0x78cc94]
test cl, cl
je 0x4ac413
mov dword [ebx + 4], eax
jmp 0x4ac41a
mov dword [ebx + 4], 2
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
fld qword [ebx + 0x120]
fsub qword [ebx + 0x118]
add ebx, 0x54
fstp qword [ebx + 0xd4]
mov ecx, dword [ebx]
test ecx, ecx
je 0x4ac465
call fcn.004f5e40
mov edi, eax
xor esi, esi
test edi, edi
jle 0x4ac465
mov ecx, dword [ebx]
push esi
call fcn.004f5e00
mov ecx, dword [ebp + 0x14]
inc esi
fld qword [eax + 8]
fsub qword [ecx + 0x118]
cmp esi, edi
fstp qword [eax + 8]
jl 0x4ac449
mov eax, dword [esp + 0xc]
add ebx, 0x38
dec eax
mov dword [esp + 0xc], eax
jne 0x4ac436
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x4ac487
mov dword [eax], 0
mov dword [eax + 4], 0x40590000
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x4ac491
mov byte [eax], 1
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret