Function at 0x6149f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x698971
mov eax, dword fs:[0]
push eax
mov eax, 0x100f0
call fcn.00663af0
mov eax, dword [0x74e694]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x100ec], esi
mov dword [ebp - 0x100e4], eax
mov dword [ebp - 0x100f4], 0
mov dword [ebp - 0x100f0], 0
lea ecx, [ebp - 0x100f4]
mov dword [ebp - 4], 0
push ecx
push eax
call fcn.005c34c0
add esp, 8
push 0
push 0x80
push 3
push 0
push 1
push accept
push dword [ebp - 0x100f4]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x614d15
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x10054]
push eax
call fcn.005c5710
add esp, 8
mov ecx, dword [ebp - 0x100e4]
mov eax, accept
mov byte [ebp - 4], 1
mov edx, dword [ecx + 0x10]
sub eax, edx
mov dword [ebp - 0x100ec], edx
cmp eax, 0xe
jb 0x614efb
cmp dword [ecx + 0x14], 0x10
jb 0x614ace
mov ecx, dword [ecx]
mov dword [ebp - 0x100e4], ecx
lea eax, [edx + 0xe]
mov dword [ebp - 0x1003c], 0
mov edi, 0xf
mov dword [ebp - 0x1002c], 0
mov dword [ebp - 0x10028], 0
lea edx, [ebp - 0x1003c]
mov dword [ebp - 0x100fc], eax
mov dword [ebp - 0x100f8], edx
cmp eax, edi
jbe 0x614b51
mov edi, eax
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x614b1e
mov edi, accept
jmp 0x614b28
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1003c]
call fcn.00448c50
mov ecx, dword [ebp - 0x100e4]
mov edx, eax
mov eax, dword [ebp - 0x100fc]
mov dword [ebp - 0x100f8], edx
mov dword [ebp - 0x1003c], edx
movq xmm0, qword [str.Error_opening]
mov dword [ebp - 0x1002c], eax
mov dword [ebp - 0x10028], edi
mov edi, dword [ebp - 0x100ec]
movq qword [edx], xmm0
mov eax, dword [0x6a9010]
mov dword [edx + 8], eax
mov ax, word [0x6a9014]
push edi
mov word [edx + 0xc], ax
lea eax, [edx + 0xe]
push ecx
push eax
call fcn.00666bd0
mov eax, dword [ebp - 0x100f8]
add esp, 0xc
mov byte [eax + edi + 0xe], 0
push 3
push 0x726d3c
lea ecx, [ebp - 0x1003c]
mov byte [ebp - 4], 2
call fcn.004485a0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1006c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1005c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x10054]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x1006c]
push eax
push dword [ebp - 0x100ec]
lea ecx, [ebp - 0x10084]
call fcn.005a2b00
lea eax, [ebp - 0x10084]
mov ecx, 0x74e0c8
push eax
call fcn.005a3660
mov edx, dword [ebp - 0x10070]
cmp edx, 0x10
jb 0x614c46
mov ecx, dword [ebp - 0x10084]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x614c3c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x614f00
push edx
push ecx
call fcn.00663ac7
add esp, 8
mov edx, dword [ebp - 0x10058]
cmp edx, 0x10
jb 0x614c80
mov ecx, dword [ebp - 0x1006c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x614c76
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x614f00
push edx
push ecx
call fcn.00663ac7
add esp, 8
mov edx, dword [ebp - 0x10028]
cmp edx, 0x10
jb 0x614cba
mov ecx, dword [ebp - 0x1003c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x614cb0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x614f00
push edx
push ecx
call fcn.00663ac7
add esp, 8
mov edx, dword [ebp - 0x10040]
mov dword [ebp - 0x1002c], 0
mov dword [ebp - 0x10028], 0xf
mov byte [ebp - 0x1003c], 0
cmp edx, 0x10
jb 0x614eb4
mov ecx, dword [ebp - 0x10054]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x614d09
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x614f00
push edx
push ecx
call fcn.00663ac7
jmp 0x614eb1
lea eax, [ebp - 0x100e0]
push eax
call fcn.00615550
add esp, 4
push 0
lea eax, [ebp - 0x100e8]
push eax
push 0xffff
lea eax, [ebp - 0x10024]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x614e11
push dword [ebp - 0x100e8]
lea eax, [ebp - 0x10024]
push eax
lea eax, [ebp - 0x100e0]
push eax
call fcn.00615590
add esp, 0xc
cmp dword [ebp - 0x100e8], 0
ja 0x614d24
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x100e0]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00615650
add esp, 8
xor edi, edi
nop dword [eax]
mov dl, byte [ebp + edi - 0x24]
mov al, dl
movzx ecx, dl
and al, 0xf0
cmp al, 0xa0
sbb al, al
shr ecx, 4
and al, 0xd9
add al, 0x57
add al, cl
mov byte [ebp + edi*2 - 0x10024], al
mov al, dl
and al, 0xf
cmp al, 0xa
sbb al, al
and dl, 0xf
and al, 0xd9
add al, 0x57
add al, dl
mov byte [ebp + edi*2 - 0x10023], al
inc edi
cmp edi, 0x14
jl 0x614d90
lea ecx, [ebp - 0x10024]
mov dword [esi], 0
mov dword [esi + 0x10], 0
lea edx, [ecx + 1]
mov dword [esi + 0x14], 0xf
mov byte [ebp - 0xfffc], 0
mov byte [esi], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x614df4
sub ecx, edx
lea eax, [ebp - 0x10024]
push ecx
push eax
mov ecx, esi
call fcn.004484a0
jmp 0x614ecb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x10054]
push eax
call fcn.005c5710
mov ecx, dword [0x74e0dc]
add esp, 8
cmp ecx, 0x10
jb 0x614e60
mov eax, dword [0x74e0c8]
inc ecx
cmp ecx, 0x1000
jb 0x614e56
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x614f00
mov eax, edx
push ecx
push eax
call fcn.00663ac7
add esp, 8
movups xmm0, xmmword [ebp - 0x10054]
lea eax, [ebp - 0x10024]
push dword [ebp - 0x100e8]
movups xmmword [0x74e0c8], xmm0
push eax
movq xmm0, qword [ebp - 0x10044]
lea eax, [ebp - 0x100e0]
push eax
movq qword [0x74e0d8], xmm0
call fcn.00615590
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x100e0]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00615650
add esp, 8
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov eax, dword [ebp - 0x100f4]
test eax, eax
je 0x614ede
push eax
call fcn.0066a657
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00663ada
mov esp, ebp
pop ebp
ret
call fcn.00446f60
call fcn.0066a5fb
int3