Function at 0x4245c0
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x2b50
call fcn.0042e520
push ebx
push ebp
push esi
push edi
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x50]
mov edx, dword [esp + 0x2b68]
rep stosd dword es:[edi], eax
mov ecx, 0x9c4
lea edi, [esp + 0x450]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], ecx
xor esi, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], ecx
push 0x431dcc
push edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x38], ecx
call dword [0x472ec4]
mov ebp, eax
add esp, 8
cmp ebp, esi
mov dword [esp + 0x18], ebp
jne 0x424668
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, 0x2b50
ret
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x50]
rep stosd dword es:[edi], eax
mov dword [esp + 0x3c], eax
mov byte [esp + 0x3c], 2
mov dword [esp + 0x40], eax
mov byte [esp + 0x3d], 0x36
mov dword [esp + 0x44], eax
mov byte [esp + 0x3e], 1
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov ebx, dword [sym.imp.MSVCRT.dll_fseek]
push 0
push esi
push ebp
call ebx
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x5c]
push ebp
rep stosd dword es:[edi], eax
push 0xc
lea ecx, [esp + 0x64]
push 1
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
mov al, byte [esp + 0x6c]
add esp, 0x1c
cmp al, 0x3a
jne 0x424aef
inc esi
push 0
push esi
push ebp
mov dword [esp + 0x1c], esi
call ebx
xor edx, edx
mov ecx, 0x100
mov dword [esp + 0x2c], edx
xor eax, eax
mov dword [esp + 0x30], edx
lea edi, [esp + 0x5c]
mov dword [esp + 0x34], edx
push ebp
rep stosd dword es:[edi], eax
push 1
lea eax, [esp + 0x34]
mov dword [esp + 0x40], edx
push 0xc
push eax
mov dword [esp + 0x4c], edx
call dword [sym.imp.MSVCRT.dll_fread]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
add esp, 0x1c
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
xor ecx, ecx
mov al, byte [esp + ecx + 0x20]
cmp al, 0x40
jbe 0x42473b
cmp al, 0x61
jae 0x42473b
sub al, 0x37
jmp 0x424749
cmp al, 0x2f
jbe 0x424747
cmp al, 0x3a
jae 0x424747
sub al, 0x30
jmp 0x424749
sub al, 0x57
mov byte [esp + ecx + 0x20], al
inc ecx
cmp ecx, 0xc
jl 0x42472b
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x21]
and ebx, 0xff
and ecx, 0xff
shl ebx, 4
add ebx, ecx
mov cl, byte [esp + 0x57]
cmp cl, 0x30
jne 0x424a77
mov edx, dword [esp + 0x22]
mov eax, dword [esp + 0x23]
mov ecx, dword [esp + 0x24]
and edx, 0xff
shl edx, 4
and eax, 0xff
and ecx, 0xff
add edx, eax
mov eax, dword [esp + 0x25]
shl edx, 4
add edx, ecx
mov ecx, dword [esp + 0x38]
shl edx, 4
add ecx, edx
mov edx, dword [esp + 0x2b70]
and eax, 0xff
xor esi, esi
add eax, ecx
lea ecx, [edx + 1]
test ecx, ecx
jle 0x42492c
mov edx, dword [esp + 0x2b74]
add edx, 8
cmp eax, dword [edx]
je 0x4247e3
inc esi
add edx, 0x10
cmp esi, ecx
jl 0x4247d2
jmp 0x42492c
test esi, esi
je 0x42485f
mov eax, dword [esp + 0x14]
test eax, eax
je 0x424837
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x450]
push ecx
push eax
push 0x472b60
push edx
call fcn.004164e0
add esp, 0x10
test eax, eax
jl 0x424af5
mov eax, dword [esp + 0x2b78]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2b80]
push eax
mov eax, dword [esp + 0x2b80]
push ecx
push edx
push eax
call fcn.00411d10
add esp, 0x10
lea ecx, [esp + 0x450]
mov byte [esp + 0x450], 1
push ecx
mov byte [esp + 0x455], 0x37
call fcn.00402980
add esp, 4
test eax, eax
jl 0x424af5
mov dl, byte [esp + 0x2b84]
mov ecx, 0x9c4
xor eax, eax
lea edi, [esp + 0x450]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x2b74]
mov byte [esp + 0x452], dl
shl esi, 4
add eax, esi
mov byte [esp + 0x450], 0xb
mov byte [esp + 0x451], 0x34
mov byte [esp + 0x453], 0x44
mov ecx, dword [eax + 8]
mov edx, ecx
sar edx, 0x18
mov byte [esp + 0x454], dl
mov edx, ecx
sar ecx, 8
mov byte [esp + 0x456], cl
mov cl, byte [eax + 8]
sar edx, 0x10
mov byte [esp + 0x457], cl
mov ecx, dword [eax + 0xc]
mov byte [esp + 0x455], dl
mov edx, ecx
sar edx, 0x18
mov al, byte [eax + 0xc]
mov byte [esp + 0x458], dl
mov edx, ecx
mov byte [esp + 0x45b], al
sar ecx, 8
mov byte [esp + 0x45a], cl
lea ecx, [esp + 0x450]
sar edx, 0x10
push ecx
mov byte [esp + 0x45d], dl
call fcn.00402980
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jl 0x424b0d
mov ebp, dword [esp + 0x18]
mov byte [esp + 0x3e], 1
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x10]
push 0
add eax, 8
push eax
push ebp
mov dword [esp + 0x1c], eax
call dword [sym.imp.MSVCRT.dll_fseek]
lea esi, [ebx + ebx]
push ebp
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x60]
push 1
lea edx, [esp + 0x64]
push esi
rep stosd dword es:[edi], eax
push edx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x1c
xor ecx, ecx
test esi, esi
jle 0x424990
mov al, byte [esp + ecx + 0x50]
cmp al, 0x40
jbe 0x424979
cmp al, 0x61
jae 0x424979
sub al, 0x37
jmp 0x424987
cmp al, 0x2f
jbe 0x424985
cmp al, 0x3a
jae 0x424985
sub al, 0x30
jmp 0x424987
sub al, 0x57
mov byte [esp + ecx + 0x50], al
inc ecx
cmp ecx, esi
jl 0x424969
xor ebp, ebp
test ebx, ebx
jle 0x424a60
lea esi, [esp + 0x51]
mov al, byte [esi - 1]
mov cl, byte [esi]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x2b64]
shl al, 4
add al, cl
mov ecx, dword [esp + 0x14]
mov byte [edi + edx], al
mov byte [esp + ecx + 0x450], al
mov eax, dword [esp + 0x2b78]
inc ecx
inc edi
cmp edi, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], edi
mov dword [0x4351bc], edi
jg 0x424a54
cmp ecx, dword [esp + 0x2b6c]
jne 0x424a47
lea eax, [esp + 0x3c]
push eax
push ecx
lea ecx, [esp + 0x458]
push 0x472b60
push ecx
call fcn.004164e0
add esp, 0x10
mov dword [esp + 0x1c], eax
test eax, eax
jl 0x424b29
mov edx, dword [esp + 0x2b78]
mov eax, dword [esp + 0x2b80]
mov ecx, dword [esp + 0x2b7c]
push edx
push edi
push eax
push ecx
call fcn.00411d10
add esp, 0x10
mov ecx, 0x9c4
xor eax, eax
lea edi, [esp + 0x450]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov ecx, eax
cmp edi, dword [esp + 0x2b78]
je 0x424b45
inc ebp
add esi, 2
cmp ebp, ebx
jl 0x42499e
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
lea eax, [edx + ebx*2 + 2]
mov dword [esp + 0x10], eax
mov esi, eax
jmp 0x424698
cmp cl, 0x32
je 0x424a99
cmp cl, 0x34
je 0x424a99
cmp cl, 0x31
je 0x424ba5
lea ecx, [esi + ebx*2 + 0xa]
mov dword [esp + 0x10], ecx
mov esi, ecx
jmp 0x424698
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x29]
and eax, 0xff
and edx, 0xff
shl eax, 4
add eax, edx
mov edx, dword [esp + 0x2a]
shl eax, 4
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x2b]
shl eax, 4
and edx, 0xff
add eax, edx
cmp cl, 0x34
jne 0x424ad9
shl eax, 0x10
jmp 0x424adc
shl eax, 4
mov dword [esp + 0x38], eax
lea eax, [esi + ebx*2 + 0xa]
mov dword [esp + 0x10], eax
mov esi, eax
jmp 0x424698
inc esi
jmp 0x424698
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b50
ret
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b50
ret
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b50
ret
test ecx, ecx
je 0x424b68
lea eax, [esp + 0x3c]
push eax
push ecx
lea ecx, [esp + 0x458]
push 0x472b60
push ecx
call fcn.004164e0
add esp, 0x10
mov esi, eax
jmp 0x424b6c
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x2b78]
mov eax, dword [esp + 0x2b80]
mov ecx, dword [esp + 0x2b7c]
push edx
push edi
push eax
push ecx
call fcn.00411d10
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b50
ret
mov eax, dword [esp + 0x14]
test eax, eax
je 0x424bcc
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x450]
push ecx
push eax
push 0x472b60
push edx
call fcn.004164e0
add esp, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2b80]
mov ecx, dword [esp + 0x2b7c]
push 1
push 1
push eax
push ecx
call fcn.00411d10
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x30]
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2b50
ret