Function at 0x4247f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x338
mov eax, dword [0x447040]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
mov word [0x4ccfc4], ax
mov ecx, 1
mov word [ebp - 0x334], cx
jmp 0x42482b
mov dx, word [ebp - 0x334]
add dx, 1
mov word [ebp - 0x334], dx
movsx eax, word [ebp - 0x334]
cmp eax, 0x63
jg 0x42486a
movsx ecx, word [ebp - 0x334]
shl ecx, 1
mov dword [ebp - 0x338], ecx
cmp dword [ebp - 0x338], 0xc8
jae 0x424854
jmp 0x424859
call fcn.004250bd
xor edx, edx
mov eax, dword [ebp - 0x338]
mov word [eax + 0x47f650], dx
jmp 0x424819
push str.LOADCHARN
push 0x4ccce0
push str._s_s
push 0x4cc9f8
call fcn.00401f00
add esp, 0x10
push 0x4cc9f8
call fcn.00402370
add esp, 4
push 0x43d984
push 0x4cc9f8
call fcn.0042b546
add esp, 8
mov dword [0x46ac90], eax
mov ecx, dword [0x46ac90]
push ecx
push 1
push 0x1a70
push 0x47a3c0
call fcn.0042b7c5
add esp, 0x10
cmp dword [0x46ac90], 0
je 0x4248dd
mov edx, dword [0x46ac90]
push edx
call fcn.0042b45f
add esp, 4
mov eax, 1
mov word [ebp - 0x328], ax
jmp 0x4248fd
mov cx, word [ebp - 0x328]
add cx, 1
mov word [ebp - 0x328], cx
movsx edx, word [ebp - 0x328]
movsx eax, word [0x47f638]
cmp edx, eax
jg 0x42491f
movsx ecx, word [ebp - 0x328]
mov byte [ecx + 0x47b8fc], 0
jmp 0x4248eb
mov edx, 1
mov word [ebp - 0x328], dx
jmp 0x42493f
mov ax, word [ebp - 0x328]
add ax, 1
mov word [ebp - 0x328], ax
movsx ecx, word [ebp - 0x328]
movsx edx, word [0x47f638]
cmp ecx, edx
jg 0x424a88
movsx eax, word [ebp - 0x328]
movsx ecx, word [eax*2 + 0x47abec]
cmp ecx, dword [0x47a158]
jne 0x424a83
movsx edx, word [ebp - 0x328]
movsx eax, byte [edx + 0x47a4f0]
cmp eax, 0x47
jne 0x424a83
movsx ecx, word [ebp - 0x328]
movsx edx, byte [ecx + 0x47a61a]
cmp edx, 0x41
jne 0x424a83
mov eax, 1
mov word [ebp - 0x32c], ax
jmp 0x4249be
mov cx, word [ebp - 0x32c]
add cx, 1
mov word [ebp - 0x32c], cx
movsx edx, word [ebp - 0x32c]
movsx eax, word [0x4ccfc4]
cmp edx, eax
jg 0x4249fe
movsx ecx, word [ebp - 0x328]
movsx edx, word [ecx*2 + 0x47a998]
movsx eax, word [ebp - 0x32c]
movsx ecx, word [eax*2 + 0x47f650]
cmp edx, ecx
jne 0x4249fc
jmp 0x424a83
jmp 0x4249ac
mov dx, word [0x4ccfc4]
add dx, 1
mov word [0x4ccfc4], dx
movsx eax, word [ebp - 0x328]
movsx ecx, word [0x4ccfc4]
mov dx, word [eax*2 + 0x47a998]
mov word [ecx*2 + 0x47f650], dx
movsx eax, word [ebp - 0x328]
movsx ecx, word [0x4ccfc4]
mov edx, dword [eax*4 + 0x47aed4]
mov dword [ebp + ecx*4 - 0x324], edx
movsx eax, word [ebp - 0x328]
movsx ecx, byte [eax + 0x47a3c6]
cmp ecx, 0x41
jne 0x424a71
movsx edx, word [0x4ccfc4]
mov dword [ebp + edx*4 - 0x194], 1
jmp 0x424a83
movsx eax, word [0x4ccfc4]
mov dword [ebp + eax*4 - 0x194], 0
jmp 0x42492d
movsx ecx, word [0x4ccfc4]
test ecx, ecx
jle 0x424f70
call fcn.0041e0c0
call fcn.0041e4d0
call fcn.0041f6c0
call fcn.0041efe0
movzx edx, byte [0x47f5b8]
test edx, edx
jne 0x424abb
call fcn.0041ea10
movzx eax, byte [0x47f5b8]
test eax, eax
jne 0x424ad1
movzx ecx, byte [0x47f5bf]
test ecx, ecx
je 0x424ad6
call fcn.0041fac0
call fcn.0041fdf0
call fcn.004204f0
call fcn.00420bf0
call fcn.00421300
movzx edx, byte [0x47f5ab]
test edx, edx
je 0x424afa
call fcn.00422500
call fcn.00422b60
call fcn.00423440
call fcn.00424130
xor eax, eax
mov word [ebp - 0x330], ax
mov ecx, 1
mov word [ebp - 0x328], cx
jmp 0x424b32
mov dx, word [ebp - 0x328]
add dx, 1
mov word [ebp - 0x328], dx
movsx eax, word [ebp - 0x328]
movsx ecx, word [0x47f638]
cmp eax, ecx
jg 0x424c05
movsx edx, word [ebp - 0x328]
movsx eax, word [edx*2 + 0x47abec]
cmp eax, dword [0x47a158]
jne 0x424c00
movsx ecx, word [ebp - 0x328]
movsx edx, byte [ecx + 0x47a4f0]
cmp edx, 0x47
jne 0x424c00
movsx eax, word [ebp - 0x328]
movsx ecx, byte [eax + 0x47a61a]
cmp ecx, 0x41
jne 0x424c00
movsx edx, word [ebp - 0x328]
mov byte [edx + 0x47a4f0], 0x4e
movsx eax, word [ebp - 0x328]
mov byte [eax + 0x47a61a], 0x4e
movsx ecx, word [ebp - 0x328]
mov byte [ecx + 0x47b898], 0
movsx edx, word [ebp - 0x330]
test edx, edx
jne 0x424bd0
mov ax, word [ebp - 0x328]
mov word [ebp - 0x330], ax
movsx ecx, word [ebp - 0x328]
mov edx, 0x64
mov word [ecx*2 + 0x47abec], dx
movsx eax, word [ebp - 0x328]
mov byte [eax + 0x47b8fc], 1
movsx ecx, word [ebp - 0x328]
mov byte [ecx + 0x47b960], 0
jmp 0x424b20
movsx edx, word [0x47f628]
movsx eax, word [0x4ccfc4]
cmp edx, eax
jne 0x424c20
xor ecx, ecx
mov word [0x47f628], cx
mov edx, 1
mov word [ebp - 0x328], dx
jmp 0x424c40
mov ax, word [ebp - 0x328]
add ax, 1
mov word [ebp - 0x328], ax
movsx ecx, word [ebp - 0x328]
movsx edx, word [0x47f638]
cmp ecx, edx
jg 0x424c8b
movsx eax, word [ebp - 0x328]
movsx ecx, byte [eax + 0x47a4f0]
cmp ecx, 0x47
jne 0x424c89
movsx edx, word [ebp - 0x328]
movsx eax, byte [edx + 0x47a61a]
cmp eax, 0x41
jne 0x424c89
movsx ecx, word [ebp - 0x328]
xor edx, edx
mov word [ecx*2 + 0x47a998], dx
jmp 0x424c2e
mov eax, 1
mov word [ebp - 0x32c], ax
jmp 0x424cab
mov cx, word [ebp - 0x32c]
add cx, 1
mov word [ebp - 0x32c], cx
movsx edx, word [ebp - 0x32c]
movsx eax, word [0x4ccfc4]
cmp edx, eax
jg 0x424f59
mov cx, word [0x47f638]
add cx, 1
mov word [0x47f638], cx
movsx edx, word [0x47f638]
mov byte [edx + 0x448280], 1
movsx eax, word [ebp - 0x32c]
cmp dword [ebp + eax*4 - 0x194], 1
jne 0x424d10
movsx ecx, word [0x47f638]
mov byte [ecx + 0x47a4f0], 0x41
movsx edx, word [0x47f638]
mov byte [edx + 0x47a86e], 0x54
jmp 0x424d1e
movsx eax, word [0x47f638]
mov byte [eax + 0x47a4f0], 0x4d
movsx ecx, word [0x4482f0]
movsx edx, word [ebp - 0x32c]
lea eax, [ecx + edx*2 - 1]
movsx ecx, word [0x47f638]
mov word [ecx*2 + 0x47a2f0], ax
movsx edx, word [ebp - 0x32c]
movsx eax, word [0x47f638]
mov ecx, dword [ebp + edx*4 - 0x324]
mov dword [eax*4 + 0x47aed4], ecx
movsx edx, word [ebp - 0x330]
movsx eax, word [0x47f638]
mov ecx, dword [edx*4 + 0x47b0c8]
mov dword [eax*4 + 0x47b0c8], ecx
movsx edx, word [ebp - 0x330]
movsx eax, word [0x47f638]
mov ecx, dword [edx*4 + 0x47b258]
mov dword [eax*4 + 0x47b258], ecx
movsx edx, word [ebp - 0x330]
movsx eax, word [0x47f638]
mov ecx, dword [edx*4 + 0x47b3e8]
mov dword [eax*4 + 0x47b3e8], ecx
movsx edx, word [ebp - 0x330]
movsx eax, word [0x47f638]
mov ecx, dword [edx*4 + 0x47b578]
mov dword [eax*4 + 0x47b578], ecx
movsx edx, word [ebp - 0x330]
movsx eax, word [0x47f638]
mov ecx, dword [edx*4 + 0x47b708]
mov dword [eax*4 + 0x47b708], ecx
movsx edx, word [0x47f638]
mov byte [edx + 0x47b898], 1
movsx eax, word [0x47f638]
mov cx, word [0x47a158]
mov word [eax*2 + 0x47abec], cx
mov dx, word [0x47f638]
add dx, 1
mov word [0x47f638], dx
movsx eax, word [0x47f638]
mov byte [eax + 0x448280], 1
movsx ecx, word [ebp - 0x32c]
cmp dword [ebp + ecx*4 - 0x194], 1
jne 0x424e5a
movsx edx, word [0x47f638]
mov byte [edx + 0x47a4f0], 0x41
movsx eax, word [0x47f638]
mov byte [eax + 0x47a86e], 0x54
jmp 0x424e68
movsx ecx, word [0x47f638]
mov byte [ecx + 0x47a4f0], 0x58
movsx edx, word [0x4482f0]
movsx eax, word [ebp - 0x32c]
lea ecx, [edx + eax*2]
movsx edx, word [0x47f638]
mov word [edx*2 + 0x47a2f0], cx
movsx eax, word [ebp - 0x32c]
movsx ecx, word [0x47f638]
mov edx, dword [ebp + eax*4 - 0x324]
mov dword [ecx*4 + 0x47aed4], edx
movsx eax, word [ebp - 0x330]
movsx ecx, word [0x47f638]
mov edx, dword [eax*4 + 0x47b0c8]
mov dword [ecx*4 + 0x47b0c8], edx
movsx eax, word [ebp - 0x330]
movsx ecx, word [0x47f638]
mov edx, dword [eax*4 + 0x47b258]
mov dword [ecx*4 + 0x47b258], edx
movsx eax, word [ebp - 0x330]
movsx ecx, word [0x47f638]
mov edx, dword [eax*4 + 0x47b3e8]
mov dword [ecx*4 + 0x47b3e8], edx
movsx eax, word [ebp - 0x330]
movsx ecx, word [0x47f638]
mov edx, dword [eax*4 + 0x47b578]
mov dword [ecx*4 + 0x47b578], edx
movsx eax, word [ebp - 0x330]
movsx ecx, word [0x47f638]
mov edx, dword [eax*4 + 0x47b708]
mov dword [ecx*4 + 0x47b708], edx
movsx eax, word [0x47f638]
mov byte [eax + 0x47b898], 1
movsx ecx, word [0x47f638]
mov dx, word [0x47a158]
mov word [ecx*2 + 0x47abec], dx
jmp 0x424c99
push 0x1a70
push 0x47a3c0
push 0x47be30
call fcn.00425eb0
add esp, 0xc
mov ax, word [0x4ccfc4]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00424f84
mov esp, ebp
pop ebp
ret