Function at 0x420855
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x3014
call fcn.00423f20
mov eax, dword [0x451220]
xor eax, esp
mov dword [esp + 0x3010], eax
and dword [0x9cfe48], 0
xor eax, eax
cmp eax, 0x26
jae 0x420fdd
mov byte [eax + 0x9cfe20], 0
inc eax
cmp eax, 0x25
jle 0x420876
push ebx
push ebp
push esi
push edi
mov edi, 0x44325c
mov byte [0x9cfe44], 1
push edi
mov ebp, 0x9cee20
mov byte [0x9cfe40], 1
push ebp
call fcn.0042b580
push edi
push 0x9cde20
call fcn.0042b580
push edi
push 0x9cce20
call fcn.0042b580
push edi
push 0x9cbe20
call fcn.0042b580
push str._usr_local_lib_txl
mov esi, 0x9cae00
mov dword [0x9cbe04], 0x100
push esi
mov dword [0x9cbe00], 4
call fcn.0042b580
push str.UNUSED
mov ebx, 0x99cdc0
push ebx
call fcn.0042b580
push 0x449ecc
push 0x99ddc0
call fcn.0042b580
push esi
push 0x99edc0
call fcn.0042b580
add esp, 0x40
mov dword [0x99cda4], 2
push edi
push 0x9c9e00
call fcn.0042b580
push edi
push 0x9c8e00
call fcn.0042b580
and dword [0x9a7dc0], 0
add esp, 0x10
and dword [0x95bd88], 0
mov esi, dword [0xdd2340]
mov byte [0x99cda0], 0
push 0x40
pop eax
mov dword [0x9c8de4], eax
mov dword [0x9c8de0], eax
test esi, esi
je 0x420fd9
xor eax, eax
mov byte [0x9cfe28], 1
inc eax
mov dword [esp + 0x14], eax
cmp esi, eax
jl 0x420ac0
xor edi, edi
lea ecx, [esp + 0x1020]
push ecx
push eax
call fcn.0041e818
lea eax, [esp + 0x1028]
push eax
call fcn.0042b680
add esp, 0xc
cmp eax, 1
jle 0x420a11
cmp byte [esp + 0x1020], 0x2d
jne 0x420a11
mov eax, dword [esp + 0x14]
cmp eax, esi
jge 0x4209ef
lea ecx, [esp + 0x20]
inc eax
push ecx
push eax
call fcn.0041e818
push edi
push 1
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x1038]
push eax
call fcn.004214a3
add esp, 0x1c
jmp 0x420aaa
push edi
push 1
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x102c]
push 0x44325c
push eax
call fcn.004214a3
add esp, 0x14
jmp 0x420aaa
lea eax, [esp + 0x1020]
push 0x449eb4
push eax
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
je 0x420b87
push 0x44325c
push 0x9cde20
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
jne 0x420a69
lea eax, [esp + 0x1020]
push 0x44325c
push eax
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
je 0x420a69
lea eax, [esp + 0x1020]
push eax
push 0x9cde20
jmp 0x420aa3
push 0x44325c
push ebp
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
jne 0x420fe2
lea eax, [esp + 0x1020]
push 0x44325c
push eax
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
je 0x420fe2
lea eax, [esp + 0x1020]
push eax
push ebp
call fcn.0042b580
pop ecx
pop ecx
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, esi
jle 0x42098c
mov edi, 0x44325c
push edi
mov esi, 0x9cde20
push esi
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
jne 0x420ae3
push edi
push ebp
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
je 0x420fd9
push edi
push ebp
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
je 0x420b43
push str..txl
push ebp
call fcn.0041ead1
pop ecx
pop ecx
test eax, eax
jne 0x420b43
push str..txl
push esi
call fcn.0041ead1
pop ecx
pop ecx
test eax, eax
jne 0x420b23
push str..ctxl
push esi
call fcn.0041ead1
pop ecx
pop ecx
test eax, eax
je 0x420b43
lea eax, [esp + 0x20]
push ebp
push eax
call fcn.0042b580
push esi
push ebp
call fcn.0042b580
lea eax, [esp + 0x30]
push eax
push esi
call fcn.0042b580
add esp, 0x18
push edi
push ebp
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
jne 0x420c17
cmp byte [0x9cfe29], al
je 0x420bea
push str..txl
push esi
call fcn.0041ead1
pop ecx
pop ecx
test eax, eax
je 0x420bea
push esi
push ebp
call fcn.0042b580
push edi
push esi
call fcn.0042b580
add esp, 0x10
jmp 0x420c17
mov edi, dword [esp + 0x14]
inc edi
cmp edi, esi
jg 0x420abb
cmp dword [0x9a7dc0], 0x20
je 0x420abb
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0041e818
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x202c]
push str.__s_
push eax
call fcn.00401b4f
mov eax, dword [0x9a7dc0]
lea ecx, [esp + 0x2034]
inc eax
mov dword [0x9a7dc0], eax
shl eax, 0xc
push ecx
add eax, 0x9a7de0
push eax
call fcn.0042b580
add esp, 0x1c
inc edi
jmp 0x420b8c
push esi
call fcn.0042b680
pop ecx
jmp 0x420bfd
cmp byte [eax + 0x9cde1e], 0x2e
je 0x420c02
dec eax
cmp eax, 1
jne 0x420bf3
lea eax, [eax + 0x9cde1f]
push eax
push str._s.txl
push ebp
call fcn.00401b4f
add esp, 0xc
and dword [esp + 0x10], 0
lea eax, [esp + 0x10]
push eax
push ebp
push 2
pop esi
push esi
call fcn.0041e976
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x420e59
lea eax, [esp + 0x20]
push ebp
push eax
call fcn.0042b580
push ebp
call fcn.0042b680
sub eax, 4
push eax
push 1
push ebp
push ebp
call fcn.0041ebb8
push str..txl
push ebp
call fcn.0042b590
lea eax, [esp + 0x34]
push eax
push ebp
push esi
call fcn.0041e976
mov eax, dword [esp + 0x40]
add esp, 0x30
test eax, eax
jne 0x420e59
lea eax, [esp + 0x20]
push eax
push ebp
call fcn.0042b580
mov eax, dword [esp + 0x18]
pop ecx
pop ecx
test eax, eax
jne 0x420e59
lea eax, [esp + 0x20]
push ebp
push eax
call fcn.0042b580
push ebp
call fcn.0042b680
sub eax, 4
push eax
push 1
push ebp
push ebp
call fcn.0041ebb8
push str..grm
push ebp
call fcn.0042b590
lea eax, [esp + 0x34]
push eax
push ebp
push esi
call fcn.0041e976
mov eax, dword [esp + 0x40]
add esp, 0x30
test eax, eax
jne 0x420e59
lea eax, [esp + 0x20]
push eax
push ebp
call fcn.0042b580
mov eax, dword [esp + 0x18]
pop ecx
pop ecx
test eax, eax
jne 0x420e59
lea eax, [esp + 0x20]
push ebp
push eax
call fcn.0042b580
lea eax, [esp + 0x18]
push eax
push ebp
push esi
call fcn.0041e976
xor esi, esi
add esp, 0x14
inc esi
cmp dword [0x99cda4], esi
jl 0x420e13
lea eax, [esp + 0x1020]
push ebx
push eax
call fcn.0042b580
lea eax, [esp + 0x1028]
push 0x4479dc
push eax
call fcn.0042b590
lea eax, [esp + 0x1030]
push eax
lea eax, [esp + 0x2034]
push eax
call fcn.0042b580
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x203c]
push eax
call fcn.0042b590
lea eax, [esp + 0x2040]
push eax
push ebp
call fcn.0042b580
lea eax, [esp + 0x38]
push eax
push ebp
push 2
call fcn.0041e976
mov eax, dword [esp + 0x44]
add esp, 0x34
test eax, eax
jne 0x420e59
push ebp
call fcn.0042b680
sub eax, 4
push eax
push 1
push ebp
push ebp
call fcn.0041ebb8
push str..txl
push ebp
call fcn.0042b590
lea eax, [esp + 0x2c]
push eax
push ebp
push 2
call fcn.0041e976
mov eax, dword [esp + 0x38]
add esp, 0x28
test eax, eax
jne 0x420e59
push ebp
call fcn.0042b680
sub eax, 4
push eax
push 1
push ebp
push ebp
call fcn.0041ebb8
push str..grm
push ebp
call fcn.0042b590
lea eax, [esp + 0x2c]
push eax
push ebp
push 2
call fcn.0041e976
mov eax, dword [esp + 0x38]
add esp, 0x28
test eax, eax
jne 0x420e59
inc esi
add ebx, 0x1000
cmp esi, dword [0x99cda4]
jle 0x420d1d
jmp 0x420e17
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x420e59
lea eax, [esp + 0x20]
push eax
push ebp
call fcn.0042b580
mov eax, dword [esp + 0x18]
pop ecx
pop ecx
test eax, eax
jne 0x420e59
push ebp
lea eax, [esp + 0x24]
push str.Cant_find_TXL_program_file__s
push eax
call fcn.00401b4f
push 0x3b0
push 0x14
lea eax, [esp + 0x34]
push eax
push edi
call fcn.0041f48b
mov eax, dword [esp + 0x2c]
add esp, 0x1c
imul eax, eax, 0xc
push dword [eax + 0xdd2378]
call fcn.00428e5d
imul eax, dword [esp + 0x14], 0xc
xor ebx, ebx
pop ecx
mov dword [eax + 0xdd2378], ebx
mov dword [eax + 0xdd237c], ebx
cmp byte [0x9cfe29], bl
jne 0x420e8f
cmp byte [0x9cfe2a], bl
je 0x420fc0
push ebp
call fcn.0042b680
mov esi, eax
pop ecx
cmp esi, 4
jle 0x420efa
push esi
lea ecx, [esi - 3]
push ecx
lea eax, [esp + 0x28]
push ebp
push eax
call fcn.0041ebb8
lea eax, [esp + 0x30]
push str..txl
push eax
call fcn.0042b4f0
add esp, 0x18
test eax, eax
je 0x420ed8
lea eax, [esp + 0x20]
push str..grm
push eax
call fcn.0042b4f0
pop ecx
pop ecx
test eax, eax
jne 0x420efa
lea eax, [esi - 4]
push eax
push 1
push ebp
mov ebp, 0x9cce20
push ebp
call fcn.0041ebb8
push str..ctxl
push ebp
call fcn.0042b590
add esp, 0x18
jmp 0x420f08
push ebp
mov ebp, 0x9cce20
push ebp
call fcn.0042b580
pop ecx
pop ecx
cmp byte [0x9cfe2a], bl
je 0x420fc0
lea eax, [esp + 0x18]
push eax
push ebp
push 8
call fcn.0041e976
mov eax, dword [esp + 0x24]
add esp, 0xc
test eax, eax
jne 0x420f55
push ebp
lea eax, [esp + 0x24]
push str.Cant_open_TXL_load_file__s
push eax
call fcn.00401b4f
push 0x3b1
push 0x14
lea eax, [esp + 0x34]
push eax
push edi
call fcn.0041f48b
mov eax, dword [esp + 0x34]
add esp, 0x1c
imul eax, eax, 0xc
push dword [eax + 0xdd2378]
lea eax, [esp + 0x20]
push 1
push 4
push eax
call fcn.0043100f
imul eax, dword [esp + 0x28], 0xc
push dword [eax + 0xdd2378]
push 1
push 4
push 0x9c8de4
call fcn.0043100f
mov eax, dword [0x9c8de0]
cmp byte [0x9cfe34], bl
cmove eax, dword [0x9c8de4]
mov dword [0x9c8de0], eax
imul eax, dword [esp + 0x38], 0xc
push dword [eax + 0xdd2378]
call fcn.00428e5d
add esp, 0x24
imul eax, dword [esp + 0x18], 0xc
mov dword [eax + 0xdd2378], ebx
mov dword [eax + 0xdd237c], ebx
mov ecx, dword [esp + 0x3020]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00423f0c
add esp, 0x3014
ret
push 0
jmp 0x420fe3
call fcn.0042406d
push edi
call fcn.004221b2
int3