Function at 0x401709
Capabilities:
Get file size
Hide graphical window
Read file on windows

Disassembly:
sub esp, 0x554
push ebx
push ebp
push esi
push edi
xor ebx, ebx
lea eax, [esp + 0x1a1]
push 0xff
mov ebp, ecx
mov dword [esp + 0x38], ebx
push ebx
push eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x48], ebx
mov byte [esp + 0x1ac], bl
call fcn.0042aa1d
add esp, 0xc
xor eax, eax
mov word [esp + 0x98], ax
lea eax, [esp + 0x9a]
push 0x106
push ebx
push eax
call fcn.0042aa1d
mov edi, dword [0x43aee0]
add esp, 0xc
mov esi, dword [0x43aee4]
mov eax, edi
or eax, esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], esi
je 0x401c3c
push 0x5c
push ebp
call fcn.0042a6bb
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x40179a
mov ebx, ebp
mov dword [esp + 0x18], ebp
jmp 0x4017a1
add ebx, 2
mov dword [esp + 0x18], ebx
xor eax, eax
push eax
push 0x80
push 3
push eax
push 1
push 0x80000000
push ebp
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
mov dword [esp + 0x1c], ebp
cmp ebp, 0xffffffff
je 0x401c3c
lea eax, [esp + 0x20]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x401c35
push 0x640000
push 0
push 0x401
push dword [0x43af0c]
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
push eax
push eax
push 0x402
push dword [0x43af0c]
call dword [sym.imp.USER32.dll_SendMessageW]
push 5
push dword [0x43af0c]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x100000
call fcn.0042a668
mov dword [esp + 0x14], eax
pop ecx
test eax, eax
je 0x401c30
push esi
push edi
call fcn.00403ab5
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x401925
and dword [esp + 0x28], 0
cmp dword [edi], 0
jle 0x401925
mov ebp, dword [esp + 0x28]
lea esi, [edi + 0x9c]
mov eax, dword [esi]
mov ecx, dword [esi - 0x98]
add eax, 0x134
add eax, edi
push eax
call dword [ecx + 0x10]
inc ebp
lea esi, [esi + 4]
pop ecx
cmp ebp, dword [edi]
jl 0x40185a
jmp 0x40191d
cmp dword [esp + 0x14], 0
jbe 0x401944
cmp dword [0x43aefc], 0
jne 0x401c21
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
push 0
pop edx
push edx
push edx
adc ecx, edx
mov dword [esp + 0x3c], eax
push 0x64
push ecx
push eax
mov dword [esp + 0x50], ecx
call fcn.0042a988
push dword [esp + 0x28]
push dword [esp + 0x28]
push edx
push eax
call fcn.0042a7fc
push eax
push 0x402
push dword [0x43af0c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x14]
test edi, edi
je 0x401925
and dword [esp + 0x28], 0
cmp dword [edi], 0
jle 0x401925
mov ebp, dword [esp + 0x28]
lea esi, [edi + 0x9c]
mov ebx, eax
mov eax, dword [esi]
mov ecx, dword [esi - 0x98]
add eax, 0x134
push ebx
push dword [esp + 0x14]
add eax, edi
push eax
call dword [ecx + 0x14]
add esp, 0xc
lea esi, [esi + 4]
inc ebp
cmp ebp, dword [edi]
jl 0x4018f6
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
push 0
lea eax, [esp + 0x18]
push eax
push 0x100000
push dword [esp + 0x1c]
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40187b
push dword [esp + 0x10]
call fcn.0042a654
and dword [esp + 0x14], 0
pop ecx
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push dword [0x43af0c]
or ebp, 0xffffffff
mov dword [esp + 0x24], ebp
call dword [sym.imp.USER32.dll_ShowWindow]
xor edx, edx
mov ecx, esi
and ecx, 0x1000000
mov eax, edx
or eax, ecx
push edx
push edx
je 0x4019a8
push 0x1004
push dword [0x43af10]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4019b9
mov ecx, 0x42b238
mov edx, ecx
call fcn.00401072
jmp 0x4019b9
push 0x1009
push dword [0x43af10]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, esi
xor eax, eax
and ecx, 0x10000
or eax, ecx
mov ecx, 0x42b2c0
cmovne ebx, dword [esp + 0x30]
mov edx, ebx
call fcn.00401072
xor edx, edx
mov ecx, esi
and ecx, 0x40000
mov eax, edx
or eax, ecx
je 0x401a90
push 0x32
lea eax, [esp + 0x2f4]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
lea edx, [esp + 0x98]
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
lea eax, [eax + 2]
test cx, cx
jne 0x401a0b
xor edx, edx
cmp dword [esp + 0x24], edx
jl 0x401a7d
jg 0x401a2e
cmp dword [esp + 0x20], 0x400
jbe 0x401a7d
lea ebx, [esp + 0x98]
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
cmp ax, dx
jne 0x401a38
push 0x20
pop eax
push dword [esp + 0x24]
sub ebx, ecx
lea ecx, [esp + 0x2a4]
push dword [esp + 0x24]
sar ebx, 1
mov word [esp + ebx*2 + 0xa0], ax
call fcn.00401468
push eax
lea eax, [esp + ebx*2 + 0xa6]
push str.__s_bytes_
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea edx, [esp + 0x98]
mov ecx, str.Size
call fcn.00401072
xor edx, edx
mov ebx, dword [esp + 0x30]
mov ecx, esi
and ecx, 0x80000
mov eax, edx
or eax, ecx
je 0x401af2
lea edx, [esp + 0x64]
mov ecx, ebx
call fcn.004036f2
test eax, eax
je 0x401af0
mov ecx, dword [esp + 0x70]
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
mov ecx, dword [esp + 0x74]
movzx eax, cx
push eax
shr ecx, 0x10
lea eax, [esp + 0xa4]
push ecx
push str._d._d._d._d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea edx, [esp + 0x98]
mov ecx, str.Version
call fcn.00401072
xor edx, edx
mov ecx, esi
mov eax, edx
and ecx, 0x100000
or eax, ecx
jne 0x401b1c
mov ecx, esi
mov eax, edx
and ecx, 0x200000
or eax, ecx
jne 0x401b1c
mov ecx, esi
mov eax, edx
and ecx, 0x400000
or eax, ecx
je 0x401b36
lea eax, [esp + 0x40]
mov ecx, ebx
push eax
lea edx, [esp + 0x9c]
call fcn.00401661
mov esi, dword [esp + 0x48]
xor edx, edx
pop ecx
test edi, edi
je 0x401bf2
mov dword [esp + 0x2c], edx
cmp dword [edi], edx
jle 0x401beb
shr esi, 0x17
lea ebx, [edi + 0x9c]
and esi, 1
mov ebp, edx
mov ecx, dword [ebx - 0x98]
lea eax, [esp + 0x1a0]
push eax
mov eax, dword [ebx]
add eax, 0x134
mov dword [esp + 0x1c], ecx
add eax, edi
push eax
call dword [ecx + 0x18]
pop ecx
pop ecx
mov eax, esi
xor ecx, ecx
or eax, ecx
je 0x401b86
xor eax, eax
inc eax
jmp 0x401b88
mov eax, ecx
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x1a4]
lea ecx, [esp + 0x9c]
push dword [eax + 8]
call fcn.00403b7b
mov eax, dword [esp + 0x20]
pop ecx
pop ecx
lea ecx, [esp + 0x358]
mov edx, dword [eax]
jmp 0x401bbd
cbw
mov word [ecx], ax
add ecx, 2
inc edx
mov al, byte [edx]
test al, al
jne 0x401bb4
xor eax, eax
lea edx, [esp + 0x98]
mov word [ecx], ax
lea ecx, [esp + 0x358]
call fcn.00401072
inc ebp
add ebx, 4
cmp ebp, dword [edi]
jl 0x401b58
mov ebp, dword [esp + 0x1c]
push edi
call fcn.0042a654
pop ecx
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
xor esi, esi
push esi
push esi
push 0x1004
push dword [0x43af10]
call ebx
mov dword [esp + 0x14], eax
test eax, eax
je 0x401c3c
push esi
dec eax
push eax
push 0x1013
push dword [0x43af10]
call ebx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x401c30
push eax
call fcn.0042a654
pop ecx
cmp ebp, 0xffffffff
je 0x401c3c
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x554
ret