Function at 0x4a90b0
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x2020
call fcn.004c3350
mov eax, dword [esp + 0x2038]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x203c]
push edi
or ebp, 0xffffffff
push eax
push esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x2c], ebp
call fcn.004a8eb0
mov ebx, dword [esp + 0x204c]
add esp, 8
test esi, esi
mov dword [ebx], eax
je 0x4a98d8
cmp eax, ebp
je 0x4a98d8
test eax, eax
je 0x4a98d8
mov ecx, dword [esp + 0x2038]
mov edi, dword [ecx]
test edi, edi
je 0x4a9140
cmp edi, ebp
je 0x4a9140
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x30]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
push ecx
call fcn.004c3fda
add esp, 4
mov edx, dword [ebx]
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 2
push 0
push 0
push edx
call esi
mov ebp, eax
mov eax, dword [ebx]
push 0
push 0
push 0
push eax
call esi
mov ecx, dword [esp + 0x2038]
sub ebp, eax
mov dword [esp + 0x10], ebp
cmp dword [ecx], 0xffffffff
jne 0x4a9176
lea edx, [ebp + 1]
push edx
jmp 0x4a917d
lea eax, [ebp + 0x2001]
push eax
call fcn.004db3f6
mov ecx, dword [esp + 0x2038]
add esp, 4
lea ebx, [eax + 0x2000]
mov dword [ecx], eax
mov ecx, dword [esp + 0x2038]
cmp dword [ecx], 0xffffffff
jne 0x4a91a2
mov ebx, eax
mov edx, dword [0x54a060]
test edx, edx
je 0x4a91fb
mov edi, dword [esp + 0x2040]
mov esi, 0x549b50
mov cl, byte [edi]
mov al, cl
cmp cl, byte [esi]
jne 0x4a91dc
test al, al
je 0x4a91d8
mov cl, byte [edi + 1]
mov al, cl
cmp cl, byte [esi + 1]
jne 0x4a91dc
add edi, 2
add esi, 2
test al, al
jne 0x4a91b8
xor eax, eax
jmp 0x4a91e1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4a91fb
mov ecx, ebp
mov esi, edx
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4a9218
mov ecx, dword [esp + 0x2044]
lea eax, [esp + 0x2c]
push 0
push eax
mov edx, dword [ecx]
push ebp
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov byte [ebx + ebp], 0xa
mov eax, dword [esp + 0x2038]
cmp dword [eax], 0xffffffff
je 0x4a98e5
mov ecx, dword [esp + 0x10]
xor ebp, ebp
test ecx, ecx
jle 0x4a987d
mov edx, dword [esp + 0x2034]
mov esi, dword [esp + 0x14]
mov al, byte [ebx + ebp]
cmp al, 0x5b
jne 0x4a9339
mov eax, dword [esp + 0x2038]
cmp dword [eax], 0
jne 0x4a92c8
mov dword [esp + 0x18], esi
inc esi
lea edi, [ecx + 0x2000]
mov dword [esp + 0x28], esi
cmp esi, edi
jge 0x4a928f
mov eax, dword [edx]
mov dl, byte [ebx + ebp + 1]
inc ebp
mov byte [eax + esi], dl
mov edx, dword [esp + 0x2034]
mov eax, dword [edx]
cmp byte [eax + esi], 0x5d
je 0x4a928f
cmp byte [ebx + ebp], 0xa
je 0x4a928f
inc esi
cmp esi, edi
jl 0x4a926d
mov eax, dword [edx]
add eax, esi
cmp byte [eax], 0x5d
jne 0x4a929d
mov byte [eax], 0
jmp 0x4a92a1
mov esi, dword [esp + 0x18]
cmp byte [ebx + ebp], 0xa
je 0x4a934d
inc ebp
cmp ebp, ecx
jge 0x4a934d
cmp byte [ebx + ebp], 0xa
je 0x4a934d
inc ebp
cmp ebp, ecx
jl 0x4a92b4
jmp 0x4a934d
lea edi, [esp + 0x30]
mov dword [esp + 0x18], ebp
dec edi
inc ebp
cmp ebp, ecx
jge 0x4a92e1
mov dl, byte [edi + 1]
mov al, byte [ebx + ebp]
inc edi
cmp dl, al
je 0x4a92d1
movsx eax, byte [ebx + ebp]
movsx edx, byte [edi]
lea ecx, [eax - 0x20]
cmp edx, ecx
jne 0x4a9309
push eax
call fcn.004c26f1
mov ecx, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x4a92d1
mov edx, dword [esp + 0x2034]
jmp 0x4a9314
mov edx, dword [esp + 0x2034]
mov ecx, dword [esp + 0x10]
mov al, byte [ebx + ebp]
inc ebp
cmp al, 0x5d
jne 0x4a9321
cmp byte [edi], 0
je 0x4a9366
cmp byte [ebx + ebp], 0xa
je 0x4a934d
inc ebp
cmp ebp, ecx
jge 0x4a934d
cmp byte [ebx + ebp], 0xa
je 0x4a934d
inc ebp
cmp ebp, ecx
jl 0x4a932c
jmp 0x4a934d
cmp al, 0xa
je 0x4a934d
inc ebp
cmp ebp, ecx
jge 0x4a934d
cmp byte [ebx + ebp], 0xa
je 0x4a934d
inc ebp
cmp ebp, ecx
jl 0x4a9342
inc ebp
cmp ebp, ecx
jl 0x4a9241
mov eax, dword [esp + 0x2038]
mov dword [esp + 0x14], esi
jmp 0x4a988f
mov al, byte [ebx + ebp]
mov dword [esp + 0x14], esi
cmp al, 0xa
je 0x4a9381
inc ebp
cmp ebp, ecx
jge 0x4a9381
cmp byte [ebx + ebp], 0xa
je 0x4a9381
inc ebp
cmp ebp, ecx
jl 0x4a9376
mov eax, dword [esp + 0x203c]
mov edi, dword [eax]
test edi, edi
jne 0x4a9453
inc ebp
cmp ebp, ecx
jge 0x4a9420
cmp byte [ebx + ebp], 0x5b
je 0x4a9420
cmp ebp, ecx
mov edi, esi
jge 0x4a93d5
mov al, byte [ebx + ebp]
cmp al, 0x5b
je 0x4a93d5
inc esi
cmp esi, 0x1ffd
jge 0x4a93d5
mov edx, dword [edx]
inc ebp
mov byte [edx + esi], al
mov edx, dword [esp + 0x2034]
mov eax, dword [edx]
mov al, byte [eax + esi]
cmp al, 0x3d
je 0x4a93d5
cmp al, 0xa
je 0x4a93d5
cmp ebp, ecx
jl 0x4a93a7
mov eax, dword [edx]
add eax, esi
cmp byte [eax], 0x3d
jne 0x4a93fa
mov byte [eax], 0
mov al, byte [ebx + ebp]
cmp al, 0xa
je 0x4a9417
inc ebp
cmp ebp, ecx
jge 0x4a9417
cmp byte [ebx + ebp], 0xa
je 0x4a9417
inc ebp
cmp ebp, ecx
jl 0x4a93ed
jmp 0x4a9417
mov al, byte [ebx + ebp]
mov esi, edi
cmp al, 0x5b
je 0x4a9420
cmp al, 0xa
je 0x4a9417
inc ebp
cmp ebp, ecx
jge 0x4a9417
cmp byte [ebx + ebp], 0xa
je 0x4a9417
inc ebp
cmp ebp, ecx
jl 0x4a940c
inc ebp
cmp ebp, ecx
jl 0x4a939b
mov eax, dword [edx]
inc esi
pop edi
mov byte [eax + esi], 0
mov eax, dword [edx]
mov byte [eax + esi + 1], 0
mov eax, dword [esp + 0x2034]
mov edx, dword [edx]
pop esi
mov dword [eax], edx
mov edx, dword [esp + 0x2034]
pop ebp
mov eax, ecx
mov dword [edx], 0
pop ebx
add esp, 0x2020
ret
cmp edi, 0xffffffff
jne 0x4a94a5
mov eax, dword [esp + 0x18]
inc ebp
cmp ebp, ecx
lea edx, [ebx + eax]
mov eax, dword [esp + 0x2038]
mov dword [eax], edx
jge 0x4a948d
mov al, byte [ebx + ebp]
cmp al, 0x5b
je 0x4a948d
cmp al, 0xa
je 0x4a9488
inc ebp
cmp ebp, ecx
jge 0x4a9488
cmp byte [ebx + ebp], 0xa
je 0x4a9488
inc ebp
cmp ebp, ecx
jl 0x4a947d
inc ebp
cmp ebp, ecx
jl 0x4a946d
mov edx, dword [esp + 0x203c]
add ebx, ebp
pop edi
pop esi
mov dword [edx], ebx
pop ebp
mov eax, ecx
pop ebx
add esp, 0x2020
ret
cmp edi, 0xfffffffe
jne 0x4a96c0
push 0x10000
mov dword [esp + 0x24], 0x10000
call fcn.004db3f6
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x2038]
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jge 0x4a9662
cmp byte [ebx + ebp], 0x5b
je 0x4a9662
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], esi
cmp ebp, eax
jge 0x4a9525
mov al, byte [ebx + ebp]
cmp al, 0x5b
je 0x4a9521
mov ecx, dword [esp + 0x20]
inc esi
add ecx, 0xfffffffd
cmp esi, ecx
jge 0x4a9521
mov ecx, dword [edi]
inc ebp
mov byte [ecx + esi], al
mov eax, dword [edi]
mov al, byte [eax + esi]
cmp al, 0x3d
je 0x4a9521
cmp al, 0xa
je 0x4a9521
cmp ebp, dword [esp + 0x10]
jl 0x4a94f5
mov dword [esp + 0x14], esi
mov ecx, dword [edi]
lea eax, [ecx + esi]
mov cl, byte [ecx + esi]
cmp cl, 0x3d
jne 0x4a9626
mov byte [eax], 0
mov eax, dword [esp + 0x10]
cmp ebp, eax
jge 0x4a961c
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x10000]
mov dword [esp + 0x18], ecx
inc edx
cmp edx, 0xfffd
mov dword [esp + 0x24], edx
jge 0x4a961c
mov al, byte [ebx + ebp]
mov edi, dword [esp + 0x1c]
inc ebp
cmp al, 0xd
mov byte [edi + edx], al
je 0x4a9615
cmp al, 0xa
je 0x4a9615
lea eax, [ecx - 0x1000a]
cmp edx, eax
jl 0x4a95f8
push ecx
call fcn.004db3f6
mov esi, dword [esp + 0x2038]
mov dword [esp + 0x2c], eax
add esp, 4
cmp dword [esi], 0
je 0x4a96a1
mov eax, dword [esp + 0x20]
mov esi, edi
mov edi, dword [esp + 0x28]
mov ecx, eax
mov edx, ecx
add eax, 0x10000
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
and ecx, 3
add edx, 0x10000
rep movsb byte es:[edi], byte [esi]
push eax
mov dword [esp + 0x1c], edx
call fcn.004db41f
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2034]
cmp ebp, eax
jl 0x4a9553
mov eax, dword [esp + 0x1c]
mov byte [eax + edx], 0
jmp 0x4a9634
mov edi, dword [esp + 0x2034]
mov eax, dword [esp + 0x1c]
mov byte [eax + edx], 0
jmp 0x4a9634
cmp cl, 0xa
jne 0x4a962c
dec ebp
mov esi, dword [esp + 0x18]
mov dword [esp + 0x14], esi
mov al, byte [ebx + ebp]
cmp al, 0x5b
je 0x4a9662
cmp al, 0xa
je 0x4a9655
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jge 0x4a9659
cmp byte [ebx + ebp], 0xa
je 0x4a9659
inc ebp
cmp ebp, eax
jl 0x4a9648
jmp 0x4a9659
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jl 0x4a94df
mov eax, dword [esp + 0x1c]
inc edx
inc esi
mov byte [eax + edx], 0
mov byte [eax + edx + 1], 0
mov edx, dword [edi]
mov byte [edx + esi], 0
mov ecx, dword [edi]
mov byte [ecx + esi + 1], 0
mov ecx, dword [esp + 0x2038]
mov edx, dword [edi]
pop edi
mov dword [ecx], edx
mov edx, dword [esp + 0x2038]
pop esi
pop ebp
mov dword [edx], eax
mov eax, dword [esp + 4]
pop ebx
add esp, 0x2020
ret
push edi
call fcn.004db41f
mov ecx, dword [esi]
push ecx
call fcn.004db41f
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2020
ret
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x30]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
push ecx
call fcn.004c3fda
mov al, byte [ebx + ebp + 1]
add esp, 4
inc ebp
cmp al, 0x5b
je 0x4a9827
mov edi, dword [esp + 0x14]
cmp ebp, dword [esp + 0x10]
jge 0x4a9827
lea esi, [esp + 0x30]
mov dword [esp + 0x18], edi
dec esi
inc edi
cmp edi, 0x1ffd
jge 0x4a9767
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4a9767
mov cl, byte [ebx + ebp]
cmp cl, al
je 0x4a9744
movsx edx, al
movsx ecx, cl
add edx, 0x20
cmp ecx, edx
jne 0x4a9767
push ecx
call fcn.004c26f1
add esp, 4
test eax, eax
je 0x4a9767
mov al, byte [ebx + ebp]
cmp al, 0x3d
jne 0x4a9750
cmp byte [esi], 0
je 0x4a9767
cmp al, 0xa
je 0x4a9767
cmp al, 0xd
je 0x4a9767
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jge 0x4a9827
jmp 0x4a9712
mov ecx, dword [esp + 0x10]
cmp ebp, ecx
jge 0x4a9827
mov al, byte [ebx + ebp]
cmp al, 0x3d
jne 0x4a977f
cmp byte [esi], 0
je 0x4a97a9
mov edi, dword [esp + 0x18]
cmp al, 0xa
je 0x4a9797
inc ebp
cmp ebp, ecx
jge 0x4a9797
cmp byte [ebx + ebp], 0xa
je 0x4a9797
inc ebp
cmp ebp, ecx
jl 0x4a978c
mov al, byte [ebx + ebp + 1]
inc ebp
cmp al, 0x5b
je 0x4a9827
jmp 0x4a96ff
inc ebp
mov eax, ebp
cmp eax, ecx
jge 0x4a97c6
mov cl, byte [ebx + eax]
cmp cl, 0xd
je 0x4a97c6
cmp cl, 0xa
je 0x4a97c6
mov ecx, dword [esp + 0x10]
inc eax
cmp eax, ecx
jl 0x4a97b0
mov edx, dword [esp + 0x2038]
lea ecx, [ebx + ebp]
mov dword [edx], ecx
mov cl, byte [ebx + eax]
cmp cl, 0xa
je 0x4a9806
mov ecx, dword [esp + 0x10]
inc eax
cmp eax, ecx
jge 0x4a980f
cmp byte [ebx + eax], 0xa
je 0x4a980a
inc eax
cmp eax, ecx
jl 0x4a97e3
add ebx, eax
mov eax, dword [esp + 0x203c]
pop edi
pop esi
mov dword [eax], ebx
pop ebp
mov eax, ecx
pop ebx
add esp, 0x2020
ret
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jge 0x4a980f
inc eax
add ebx, eax
mov eax, dword [esp + 0x203c]
pop edi
pop esi
mov dword [eax], ebx
pop ebp
mov eax, ecx
pop ebx
add esp, 0x2020
ret
mov edx, dword [esp + 0x2038]
mov ecx, dword [esp + 0x203c]
add ebp, ebx
mov dword [edx], ebp
mov dword [ecx], ebp
mov eax, dword [edx]
cmp eax, ebx
jb 0x4a986e
mov cl, byte [eax - 1]
lea ebp, [eax - 1]
cmp cl, 0xa
jne 0x4a986e
mov cl, byte [eax - 2]
lea esi, [eax - 2]
cmp cl, 0xa
jne 0x4a985b
mov dword [edx], ebp
jmp 0x4a9868
cmp cl, 0xd
jne 0x4a986e
cmp byte [eax - 3], 0xa
jne 0x4a986e
mov dword [edx], esi
mov eax, dword [edx]
cmp eax, ebx
jae 0x4a9841
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2020
ret
mov eax, dword [esp + 0x2038]
mov edx, dword [esp + 0x2034]
mov esi, dword [esp + 0x14]
cmp dword [eax], 0
jne 0x4a98b8
test esi, esi
jge 0x4a989a
xor esi, esi
mov edi, dword [edx]
mov byte [edi + esi], 0
mov edi, dword [edx]
mov byte [edi + esi + 1], 0
mov edx, dword [edx]
pop edi
pop esi
mov dword [eax], edx
pop ebp
mov eax, ecx
pop ebx
add esp, 0x2020
ret
mov dword [eax], 0
mov eax, dword [esp + 0x203c]
pop edi
pop esi
mov dword [eax], 0
pop ebp
mov eax, ecx
pop ebx
add esp, 0x2020
ret
mov ecx, dword [esp + 0x2034]
mov dword [ecx], 0
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x2020
ret