Function at 0x410c50
Capabilities:
Read file on windows

Disassembly:
mov eax, 0xf418
call fcn.0042e520
mov eax, dword [esp + 0xf41c]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x431dcc
push eax
mov dword [esp + 0x18], ebx
call dword [0x472ec4]
mov ebp, eax
add esp, 8
cmp ebp, ebx
jne 0x410ca3
push 1
push 0x30006
push 0xa8000004
call dword [0x472f68]
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf418
ret
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.MSVCRT.dll_fseek]
push 0
push ebx
push ebp
call esi
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x34]
push ebp
rep stosd dword es:[edi], eax
push 0xc
lea ecx, [esp + 0x3c]
push 1
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
mov al, byte [esp + 0x44]
add esp, 0x1c
cmp al, 0x3a
jne 0x410e32
inc ebx
push 0
push ebx
push ebp
call esi
xor edx, edx
mov ecx, 0x100
mov dword [esp + 0x20], edx
xor eax, eax
mov dword [esp + 0x24], edx
lea edi, [esp + 0x34]
mov dword [esp + 0x28], edx
push ebp
rep stosd dword es:[edi], eax
push 1
lea eax, [esp + 0x28]
mov dword [esp + 0x34], edx
push 0xc
push eax
mov dword [esp + 0x40], edx
call dword [sym.imp.MSVCRT.dll_fread]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
add esp, 0x1c
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
xor ecx, ecx
mov al, byte [esp + ecx + 0x14]
cmp al, 0x40
jbe 0x410d4f
cmp al, 0x61
jae 0x410d4f
sub al, 0x37
jmp 0x410d5d
cmp al, 0x2f
jbe 0x410d5b
cmp al, 0x3a
jae 0x410d5b
sub al, 0x30
jmp 0x410d5d
sub al, 0x57
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xc
jl 0x410d3f
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x15]
mov al, byte [esp + 0x2f]
and esi, 0xff
shl esi, 4
and ecx, 0xff
add esi, ecx
cmp al, 0x30
jne 0x410e25
add ebx, 8
push 0
push ebx
push ebp
call dword [sym.imp.MSVCRT.dll_fseek]
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x34]
push ebp
rep stosd dword es:[edi], eax
lea edi, [esi + esi]
push 1
lea edx, [esp + 0x3c]
push edi
push edx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x1c
xor ecx, ecx
test edi, edi
jle 0x410de8
mov al, byte [esp + ecx + 0x28]
cmp al, 0x40
jbe 0x410dd1
cmp al, 0x61
jae 0x410dd1
sub al, 0x37
jmp 0x410ddf
cmp al, 0x2f
jbe 0x410ddd
cmp al, 0x3a
jae 0x410ddd
sub al, 0x30
jmp 0x410ddf
sub al, 0x57
mov byte [esp + ecx + 0x28], al
inc ecx
cmp ecx, edi
jl 0x410dc1
xor ecx, ecx
test esi, esi
jle 0x410e1c
lea eax, [esp + 0x29]
mov dl, byte [eax - 1]
mov edi, dword [esp + 0x10]
shl dl, 4
add dl, byte [eax]
mov byte [esp + edi + 0x428], dl
mov edx, edi
inc edx
cmp edx, 0xc000
mov dword [esp + 0x10], edx
je 0x410e38
inc ecx
add eax, 2
cmp ecx, esi
jl 0x410df2
lea ebx, [ebx + esi*2 + 2]
jmp 0x410cb0
cmp al, 0x31
je 0x410e8c
lea ebx, [ebx + esi*2 + 0xa]
jmp 0x410cb0
inc ebx
jmp 0x410cb0
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0xf434]
mov ecx, dword [esp + 0xc3ae]
mov edx, dword [esp + 0xc3b2]
add esp, 4
mov dword [eax], ecx
mov ecx, dword [esp + 0xc3b2]
pop edi
pop esi
mov dword [eax + 4], edx
mov edx, dword [esp + 0xc3ae]
pop ebp
pop ebx
mov dword [eax + 8], ecx
mov cx, word [esp + 0xc3aa]
mov dword [eax + 0xc], edx
mov word [eax + 0x10], cx
mov eax, 1
add esp, 0xf418
ret
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [0x472d68]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf418
ret