Function at 0x41c780
Capabilities:
Get file attributes
Get file size

Disassembly:
sub esp, 0x40
push ebx
push esi
mov ebx, dword [esp + 0x4c]
push edi
push ebp
push 0
lea eax, [ebx + 0x10]
mov ebp, dword [sym.imp.KERNEL32.dll__lopen]
push eax
call ebp
mov ebp, eax
test ebp, ebp
jge 0x41c7df
mov eax, dword [0x448dd0]
cmp dword [eax + 0x7754], 0
je 0x41c7b6
push 1
call fcn.0043dc20
jmp 0x41c7cd
lea eax, [ebx + 0x10]
push eax
push 0
push 0
push 0x124
push 0
call fcn.0043cd20
add esp, 0x14
push ebx
call fcn.0040f400
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x40
ret 0xc
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x10]
push eax
push ebp
call fcn.0041d780
test eax, eax
je 0x41c80c
push ebx
call fcn.0040f400
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x40
ret 0xc
lea edi, [ebx + 0x10]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
shr ecx, 2
mov esi, edi
mov edi, 0x448f80
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x448f80
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 1
je 0x41c84e
or byte [ebx + 0xe60], 1
push 1
call fcn.0043ad30
lea eax, [esp + 0x2c]
push eax
push 0x448f80
call fcn.0043f7fc
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
add esp, 8
mov dword [ebx + 0xe84], eax
mov dword [ebx + 0xe88], ecx
mov edx, dword [0x448dd0]
or byte [edx + 0xb60], 1
mov edx, dword [0x448dd0]
cmp byte [edx + 0x708], 0
jne 0x41c8a6
push 0
lea eax, [edx + 0x7a0]
push eax
mov ecx, dword [0x448dc8]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [0x448dc8]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
cmp dword [esp + 0x58], 0
je 0x41c931
push 0
xor esi, esi
push ebx
call fcn.0043cba0
push ebx
call fcn.0041fc50
mov edi, dword [ebx + 0xe78]
push edi
call fcn.0041d4b0
mov eax, dword [edi + 0x20]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x41c8ea
test esi, esi
jne 0x41c8ea
mov esi, dword [edi + 0x20]
mov edi, dword [edi + 0x10]
cmp dword [ebx + 0xe78], edi
jne 0x41c8cf
test esi, esi
jne 0x41c91b
mov eax, dword [ebx + 0xe78]
push 0
mov ecx, dword [0x448dcc]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [eax + 0x20]
push esi
push 0x223
push ecx
call edi
jmp 0x41c921
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov eax, dword [0x448dcc]
push esi
push 0x222
push eax
call edi
call fcn.0043d070
mov dword [esp + 0x24], 0
cmp dword [esp + 0x14], 0
jne 0x41c987
push ebx
call fcn.0041c270
test eax, eax
je 0x41c95b
push eax
push ebx
call fcn.0041c710
jmp 0x41cb11
push ebp
call dword [sym.imp.KERNEL32.dll__lclose]
push 0
push 0
push 0x126
push 0
call fcn.0043cd20
add esp, 0x10
push ebx
call fcn.0040f400
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x40
ret 0xc
mov dword [ebx + 0xe70], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x14], 0
je 0x41cb11
push ebx
call fcn.00411370
mov esi, eax
test esi, esi
je 0x41caf0
cmp dword [esp + 0x14], 0x8000
jbe 0x41c9d7
mov word [esp + 0x10], 0x8000
jmp 0x41c9e1
mov ax, word [esp + 0x14]
mov word [esp + 0x10], ax
mov edi, dword [esp + 0x10]
and edi, 0xffff
sub dword [esp + 0x14], edi
push edi
mov eax, dword [esi]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, edi
jne 0x41cafa
mov ax, 0x8000
sub ax, word [esp + 0x10]
mov word [esi + 8], ax
mov word [esi + 6], ax
mov eax, dword [esi]
add eax, edi
mov dword [esi + 0xc], eax
mov ecx, dword [0x448dd0]
cmp byte [ecx + 0x3477], 0
je 0x41ca34
push edi
mov eax, dword [esi]
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharBuffA]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x28]
push eax
lea eax, [esp + 0x16]
push 1
cmp dword [esp + 0x1c], 1
push ecx
push 0
lea ecx, [esp + 0x24]
push edx
push eax
push ecx
sbb eax, eax
mov ecx, dword [esi]
neg eax
push eax
push 0
push ebp
push ecx
push esi
push ebx
call fcn.0041d550
mov dword [esp + 0x1c], eax
test eax, eax
je 0x41cb09
mov dword [esp + 0x20], 0
mov eax, dword [ebx + 0xe54]
push eax
call fcn.00434d30
cmp dword [esp + 0x18], 0
jne 0x41cae3
mov esi, dword [ebx + 0xe78]
mov eax, dword [ebx + 0xe54]
cmp dword [esi + 0x34], eax
jge 0x41cae3
mov eax, dword [ebx + 0xe4c]
mov dword [esi + 0x98], eax
mov eax, dword [ebx + 0xe4c]
mov dword [esi + 0x58], eax
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x41cadb
push 1
mov eax, dword [esi + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov dword [esp + 0x18], 1
cmp dword [esp + 0x14], 0
jne 0x41c9b4
jmp 0x41cb11
mov dword [esp + 0x24], 0x27
jmp 0x41cb11
call fcn.0043d0b0
mov dword [esp + 0x24], 0x125
jmp 0x41cb11
mov dword [esp + 0x24], 0x126
push ebp
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, dword [0x448dd0]
and word [eax + 0xb60], 0xfffe
test byte [ebx + 0xe60], 0x80
je 0x41cb62
mov ecx, dword [ebx + 0xe50]
mov ax, word [ecx + 0xe]
test ax, ax
je 0x41cb62
mov edx, dword [ecx + 8]
movzx esi, ax
cmp byte [edx + esi - 1], 0x1a
jne 0x41cb62
dec ax
mov word [ecx + 0xe], ax
jne 0x41cb62
cmp dword [ecx + 4], 0
je 0x41cb62
push 1
push ecx
push ebx
call fcn.0041c3e0
mov esi, dword [ebx + 0xe78]
mov edi, dword [esp + 0x5c]
mov eax, dword [ebx + 0xe4c]
test edi, edi
mov dword [esi + 0x98], eax
mov eax, dword [ebx + 0xe4c]
mov dword [esi + 0x58], eax
je 0x41cb8d
push 0
push esi
call fcn.00414ab0
cmp dword [ebx + 0xe78], esi
jne 0x41cba0
cmp dword [esp + 0x18], 0
je 0x41cba0
test edi, edi
je 0x41cbbc
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x41cbbc
push 1
mov eax, dword [esi + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov esi, dword [esi + 0x10]
cmp dword [ebx + 0xe78], esi
jne 0x41cb6c
mov eax, dword [0x448dd0]
cmp byte [eax + 0x708], 0
jne 0x41cbea
push 0
add eax, 0x7a0
push eax
mov ecx, dword [0x448dc8]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
call fcn.0043d0b0
cmp dword [esp + 0x24], 0
je 0x41cc0d
lea eax, [ebx + 0x10]
mov ecx, dword [esp + 0x24]
push eax
push 0
push 0
push ecx
push 0
call fcn.0043cd20
add esp, 0x14
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x40
ret 0xc