Function at 0x47056a
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x24
mov eax, dword [0x7c0650]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
push esi
push edi
call fcn.00462df6
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jge 0x47058b
xor edi, edi
cmp byte [0x7dd626], bl
mov esi, 0x7da050
mov eax, esi
jne 0x47059f
mov eax, dword [0x7e02f4]
push ebx
push 0x8002
push eax
call fcn.0065d080
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0x14], eax
jge 0x470610
cmp dword [esp + 0x38], 2
jne 0x4705f6
cmp byte [0x7dd626], bl
mov eax, esi
jne 0x4705cc
mov eax, dword [0x7e02f4]
push ebx
push 0x8000
push eax
call fcn.0065d080
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0x14], eax
jge 0x470610
push str.ProcessProg:_cannot_open_file_RO
push 0x88ca
call fcn.0041ca03
pop ecx
pop ecx
jmp 0x470610
call fcn.0064bed7
push dword [eax]
call fcn.0064be35
push eax
push 0x88c8
call fcn.0041cadb
add esp, 0xc
push 2
push ebx
push dword [esp + 0x1c]
call fcn.006577fd
mov eax, 0xfffff800
sub eax, edi
push 2
push eax
push dword [esp + 0x28]
mov dword [esp + 0x34], eax
call fcn.006577fd
mov ebp, 0x800
push ebp
mov esi, 0x7dd860
push esi
push dword [esp + 0x34]
call fcn.0065a038
add esp, 0x24
cmp eax, ebp
je 0x470660
push str.ProcessProg:_cannot_read_file
push 0x88ca
call fcn.0041ca03
pop ecx
pop ecx
push ebp
push 0x6d890c
call fcn.0046facd
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
jge 0x470684
push str.ProcessProg:_data_area_not_found
push 0x88cb
call fcn.0041ca03
pop ecx
pop ecx
add edi, 5
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], bl
call fcn.0044eee0
lea eax, [edi + 0x7dd860]
cmp byte [eax], 0x24
mov dword [esp + 0x20], eax
je 0x4706b5
mov ecx, ebp
sub ecx, edi
push ecx
push eax
call fcn.0044ede0
pop ecx
pop ecx
mov byte [esp + 0x13], 1
mov ebx, dword [esp + 0x38]
lea ebx, [ebx*4 + 0x78d4f8]
push ebp
push dword [ebx]
call fcn.0046facd
mov edi, eax
test edi, edi
pop ecx
pop ecx
jge 0x4706e4
push dword [ebx]
push str.ProcessProg:_keyword__s_not_found
push 0x88cc
call fcn.0041ca03
add esp, 0xc
mov eax, dword [esp + 0x38]
mov ebx, ebp
sub ebx, edi
sub ebx, dword [esp + 0x18]
sub eax, 0
je 0x4708f7
dec eax
je 0x4707d6
dec eax
je 0x470730
dec eax
je 0x47071e
push dword [esp + 0x38]
push str.ProcessProg:_Unknown_type:__d
push 0x88cd
call fcn.0041ca03
jmp 0x4708f2
push ebx
push edi
mov ecx, 0x7dd860
call fcn.00470452
pop ecx
jmp 0x470903
lea edx, [edi + 0x7dd860]
mov eax, edx
call fcn.00470556
push edx
mov edi, eax
push 0x7dce18
mov byte [edi], 0
call fcn.00645e70
mov byte [edi], 0xd
push 0x24
inc edi
push edi
call fcn.00648ca0
mov edx, eax
call fcn.00470556
push edx
mov edi, eax
push 0x7dbc90
mov byte [edi], 0
call fcn.00645e70
mov byte [edi], 0xd
push 0x24
inc edi
push edi
call fcn.00648ca0
mov edx, eax
call fcn.00470556
push edx
mov edi, eax
push 0x7dc618
mov byte [edi], 0
call fcn.00645e70
mov byte [edi], 0xd
push 0x24
inc edi
push edi
call fcn.00648ca0
mov edx, eax
call fcn.00470556
push edx
mov edi, eax
push 0x7db320
mov byte [edi], 0
call fcn.00645e70
add esp, 0x38
cmp byte [esp + 0x13], 0
mov byte [edi], 0xd
je 0x470904
push dword [esp + 0x14]
call fcn.00654692
pop ecx
jmp 0x470985
push ebx
mov esi, 0x7dbb20
lea edi, [edi + 0x7dd860]
push esi
mov ecx, 0x6d8758
call fcn.0046fc53
push 0x6bb728
push esi
call fcn.006491d0
add esp, 0x10
test eax, eax
jne 0x470832
push ebx
push 0x7dc4d0
mov ecx, str.SUPS
call fcn.0046fc53
push ebx
push 0x7dbb28
mov ecx, str.SUPP
call fcn.0046fc53
push ebx
push 0x7dc588
mov ecx, str.SUPW
call fcn.0046fc53
add esp, 0x18
mov eax, dword [0x7dbb24]
test eax, eax
je 0x47085e
push eax
lea eax, [esp + 0x28]
push 0x6d88a0
push eax
call fcn.00645776
lea eax, [esp + 0x30]
push ebx
push eax
mov ecx, 0x6d8754
call fcn.0046fc53
add esp, 0x14
cmp dword [0x7dd61c], 0
jne 0x470904
push esi
push 0x63f
call fcn.00462827
pop ecx
push eax
call fcn.00644e00
push 0x6bb728
push esi
call fcn.006491d0
add esp, 0x10
test eax, eax
jne 0x470904
mov eax, 0x7dc4d0
push eax
push eax
call fcn.00644a50
pop ecx
push eax
push 0x640
call fcn.00462827
pop ecx
push eax
call fcn.00644e00
mov eax, 0x7dbb28
add esp, 0xc
push eax
push eax
call fcn.00644a50
pop ecx
push eax
push 0x641
call fcn.00462827
pop ecx
push eax
call fcn.00644e00
mov eax, 0x7dc588
add esp, 0xc
push eax
push eax
call fcn.00644a50
pop ecx
push eax
push 0x642
call fcn.00462827
pop ecx
push eax
call fcn.00644e00
add esp, 0xc
jmp 0x470904
push 0x7dd860
mov ecx, edi
call fcn.00470312
pop ecx
mov eax, ebp
sub eax, dword [esp + 0x18]
push eax
push dword [esp + 0x24]
call fcn.0044eda5
mov esi, dword [esp + 0x1c]
push 2
push dword [esp + 0x28]
push esi
call fcn.006577fd
push ebp
push 0x7dd860
push esi
call fcn.00656654
add esp, 0x20
cmp eax, ebp
je 0x470956
call fcn.0064bed7
push dword [eax]
call fcn.0064be35
push eax
push str.Cannot_update_Ghost_program:__s_nCopy_Ghost_to_read_write_media_and_run_it_again_and_or_make_sure_that_the_ghost_exe_is_not_read_only.
push 0x88ce
call fcn.0041ca03
add esp, 0x10
push esi
call fcn.00654692
pop ecx
call fcn.00462e7f
cmp dword [0x7dd61c], 0
jne 0x470985
push 0x5d7
call fcn.00462827
push eax
call fcn.00644e00
push 0
call fcn.00475b22
add esp, 0xc
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00644f58
add esp, 0x24
ret