Function at 0x42ffa0
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x45b776
call fcn.0044c66c
sub esp, 0x74
push ebx
push esi
mov esi, ecx
push edi
push 8
mov edi, dword [esi + 0x1c8]
lea eax, [esi + 0x104]
push edi
push eax
call fcn.0044bf60
movzx ax, byte [edi + 8]
add edi, 8
mov word [esi + 0x10c], ax
inc edi
push 6
inc edi
mov ax, word [edi]
inc edi
inc edi
mov word [esi + 0x10e], ax
mov ax, word [edi]
inc edi
mov word [esi + 0x110], ax
inc edi
lea eax, [esi + 0x112]
push edi
push eax
call fcn.0044bf60
add esp, 0x18
cmp word [esi + 0x110], 0x3b01
jge 0x430036
mov eax, dword [esi + 0x1c8]
add edi, 0x1e
movzx ecx, word [eax + 0x14]
mov dword [esi + 0x130], ecx
movzx ecx, word [eax + 0x1a]
mov dword [esi + 0x15c], ecx
movzx eax, word [eax + 0x26]
mov dword [esi + 0x188], eax
jmp 0x43005a
mov edi, dword [esi + 0x1c8]
mov eax, dword [edi + 0x14]
add edi, 0x34
mov dword [esi + 0x130], eax
mov eax, dword [edi - 0x18]
mov dword [esi + 0x15c], eax
mov eax, dword [edi - 8]
mov dword [esi + 0x188], eax
push 0x1199
push dword [0x46950c]
call fcn.00434e92
mov eax, dword [edi]
and dword [ebp - 0x18], 0
add edi, 4
mov dword [esi + 0x134], eax
test eax, eax
jbe 0x4302a6
push 0x2c
call fcn.0044c87d
test eax, eax
pop ecx
je 0x430098
mov ecx, eax
call fcn.0042f02b
mov ebx, eax
jmp 0x43009a
xor ebx, ebx
cmp word [esi + 0x110], 0x3b04
jl 0x4300ae
mov ax, word [edi]
inc edi
mov word [ebx + 0xc], ax
inc edi
mov al, byte [edi]
inc edi
cmp al, 0x16
mov byte [ebx + 0xe], al
jne 0x4300bc
mov byte [ebx + 0xe], 0x15
mov al, byte [edi]
inc edi
mov byte [ebx + 0xf], al
cmp word [esi + 0x110], 0x3b03
jge 0x4300d7
cmp byte [ebx + 0xe], 0x19
jne 0x4300d7
mov byte [ebx + 0xf], 1
cmp word [esi + 0x110], 0x3a4e
jge 0x4300ec
cmp byte [ebx + 0xe], 0x1a
jne 0x4300ec
mov byte [ebx + 0xf], 1
mov ax, word [edi]
inc edi
inc edi
mov word [ebx + 0x10], ax
mov eax, dword [edi]
add edi, 4
mov dword [ebx], eax
cmp word [esi + 0x110], 0x3c00
jge 0x43012e
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x18], eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edi, [edi + eax + 1]
jmp 0x430152
mov al, byte [edi]
inc edi
movzx eax, al
mov dword [ebp - 0x14], eax
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x18], eax
mov ecx, dword [ebp - 0x14]
inc ecx
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
add edi, dword [ebp - 0x14]
movzx eax, byte [ebx + 0xe]
push eax
lea eax, [ebp - 0x80]
push dword [ebx + 0x18]
push str._s_c
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [edi]
add esp, 0x10
mov dword [ebx + 8], eax
add edi, 4
cmp word [esi + 0x110], 0x3c00
jge 0x4301a6
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x1c], eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edi, [edi + eax + 1]
jmp 0x4301ca
mov al, byte [edi]
inc edi
movzx eax, al
mov dword [ebp - 0x14], eax
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x1c], eax
mov ecx, dword [ebp - 0x14]
inc ecx
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
add edi, dword [ebp - 0x14]
cmp word [esi + 0x110], 0x3c00
jl 0x4301fd
mov al, byte [edi]
inc edi
test al, al
je 0x4301fd
movzx eax, al
mov dword [ebp - 0x14], eax
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x20], eax
mov ecx, dword [ebp - 0x14]
inc ecx
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
add edi, dword [ebp - 0x14]
mov ax, word [ebx + 0x10]
mov ecx, eax
or ecx, 2
cmp ax, cx
jne 0x430213
movzx eax, word [edi]
shl eax, 0xa
jmp 0x430215
mov eax, dword [ebx]
inc edi
mov dword [ebx + 4], eax
inc edi
cmp word [esi + 0x110], 0x3a4b
jge 0x43022c
mov dword [ebx + 4], 0x7d0
cmp word [esi + 0x110], 0x3a4f
jl 0x43024a
mov ax, word [edi]
mov word [ebx + 0x12], ax
mov eax, dword [edi]
shr eax, 0x10
mov word [ebx + 0x14], ax
add edi, 4
mov al, byte [ebp - 0xd]
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
call fcn.00409df2
lea eax, [ebp - 0x80]
push eax
call fcn.0044ccb0
pop ecx
push eax
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040a3c2
and dword [ebp - 4], 0
lea eax, [ebp - 0x38]
push eax
lea ecx, [esi + 0x138]
call fcn.00431ffb
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x38]
mov dword [eax], ebx
call fcn.00409df2
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0x134]
jb 0x430081
cmp word [esi + 0x110], 0x3a4e
jge 0x430323
mov eax, dword [esi + 0x13c]
cmp eax, dword [esi + 0x140]
mov dword [ebp - 0x18], eax
je 0x430323
mov ebx, dword [eax + 0x10]
cmp byte [ebx + 0xf], 1
jne 0x43031b
cmp byte [ebx + 0xe], 0x11
jne 0x43031b
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push 0x11
push dword [ebx + 0x18]
call fcn.0042f97c
test eax, eax
je 0x43031b
movzx eax, word [eax + 0xe]
dec eax
je 0x430317
sub eax, 3
je 0x430311
sub eax, 4
je 0x43030b
sub eax, 8
je 0x430305
sub eax, 8
je 0x430305
sub eax, 8
jne 0x43031b
mov byte [ebx + 0xf], 6
jmp 0x43031b
mov byte [ebx + 0xf], 3
jmp 0x43031b
mov byte [ebx + 0xf], 4
jmp 0x43031b
mov byte [ebx + 0xf], 5
mov eax, dword [ebp - 0x18]
add eax, 0x14
jmp 0x4302b7
cmp word [esi + 0x110], 0x3a51
jge 0x43037e
mov eax, dword [esi + 0x13c]
mov dword [ebp - 0x18], eax
cmp eax, dword [esi + 0x140]
je 0x43037e
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax + 0x10]
cmp byte [ebx + 0xf], 2
je 0x430375
cmp byte [ebx + 0xe], 0x11
jne 0x430375
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push 0x11
push dword [ebx + 0x18]
call fcn.0042f97c
test eax, eax
je 0x430375
mov cx, word [eax + 4]
mov word [ebx + 0x12], cx
mov ax, word [eax + 8]
mov word [ebx + 0x14], ax
add dword [ebp - 0x18], 0x14
mov eax, dword [ebp - 0x18]
jmp 0x430337
mov eax, dword [edi]
and dword [ebp - 0x18], 0
add edi, 4
mov dword [esi + 0x18c], eax
test eax, eax
jbe 0x430496
push 0x18
call fcn.0044c87d
test eax, eax
pop ecx
je 0x4303b8
xor ecx, ecx
mov ebx, eax
and byte [eax + 0xc], cl
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
jmp 0x4303ba
xor ebx, ebx
mov eax, dword [edi]
add edi, 4
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov eax, dword [edi]
add edi, 4
mov dword [ebx + 8], eax
cmp word [esi + 0x110], 0x3b04
jl 0x4303dd
mov al, byte [edi]
inc edi
mov byte [ebx + 0xc], al
cmp word [esi + 0x110], 0x3c00
jge 0x43040f
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x10], eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edi, [edi + eax + 1]
jmp 0x430433
mov al, byte [edi]
inc edi
movzx eax, al
mov dword [ebp - 0x14], eax
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x10], eax
mov ecx, dword [ebp - 0x14]
inc ecx
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
add edi, dword [ebp - 0x14]
mov eax, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 0xd]
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
call fcn.00409df2
push dword [ebp - 0x24]
call fcn.0044ccb0
pop ecx
push eax
lea ecx, [ebp - 0x38]
push dword [ebp - 0x24]
call fcn.0040a3c2
lea eax, [ebp - 0x38]
lea ecx, [esi + 0x190]
push eax
mov dword [ebp - 4], 1
call fcn.004322fe
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x38]
mov dword [eax], ebx
call fcn.00409df2
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0x18c]
jb 0x430395
push 0x119a
add edi, 4
push dword [0x46950c]
call fcn.00434e92
mov eax, dword [edi]
and dword [ebp - 0x18], 0
add edi, 4
mov dword [esi + 0x160], eax
test eax, eax
jbe 0x4305be
push 0x44
call fcn.0044c87d
pop ecx
mov dword [ebp - 0x24], eax
test eax, eax
mov dword [ebp - 4], 2
je 0x4304e1
mov ecx, eax
call fcn.0042f1be
mov ebx, eax
jmp 0x4304e3
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
mov ax, word [edi]
inc edi
mov word [ebx + 0xc], ax
inc edi
mov eax, dword [edi]
add edi, 4
mov dword [ebx + 0x14], eax
mov dword [ebx + 4], eax
mov dword [ebx], eax
mov eax, dword [edi]
mov dword [ebx + 8], eax
add edi, 4
cmp word [esi + 0x110], 0x3c00
jge 0x430537
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x10], eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edi, [edi + eax + 1]
jmp 0x43055b
mov al, byte [edi]
inc edi
movzx eax, al
mov dword [ebp - 0x14], eax
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 0x10], eax
mov ecx, dword [ebp - 0x14]
inc ecx
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
add edi, dword [ebp - 0x14]
mov eax, dword [ebx + 0x10]
push 0
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 0xd]
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
call fcn.00409df2
push dword [ebp - 0x24]
call fcn.0044ccb0
pop ecx
push eax
lea ecx, [ebp - 0x38]
push dword [ebp - 0x24]
call fcn.0040a3c2
lea eax, [ebp - 0x38]
lea ecx, [esi + 0x164]
push eax
mov dword [ebp - 4], 3
call fcn.00432232
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x38]
mov dword [eax], ebx
call fcn.00409df2
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0x160]
jb 0x4304c0
mov ebx, dword [esi + 0x194]
cmp ebx, dword [esi + 0x198]
je 0x430621
mov edi, dword [ebx + 0x10]
mov eax, dword [edi + 4]
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [edi + 0x14], eax
push 0
push 0
push dword [edi + 8]
push dword [esi + 0x1c0]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x43061a
lea eax, [ebp - 0x28]
push 0
push eax
push dword [edi + 4]
push dword [edi + 0x14]
push dword [esi + 0x1c0]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [edi + 4]
cmp eax, dword [ebp - 0x28]
jne 0x43061a
add ebx, 0x14
jmp 0x4305c4
xor al, al
jmp 0x430920
mov edi, dword [esi + 0x13c]
cmp edi, dword [esi + 0x140]
je 0x43064a
mov eax, dword [edi + 0x10]
lea ecx, [ebp - 0x24]
push ecx
movzx ecx, byte [eax + 0xe]
push ecx
mov ecx, esi
push dword [eax + 0x18]
call fcn.0042f97c
add edi, 0x14
jmp 0x430627
mov eax, dword [esi + 0x168]
mov dword [ebp - 0x20], eax
cmp eax, dword [esi + 0x16c]
je 0x4308d9
mov eax, dword [ebp - 0x20]
mov edi, dword [eax + 0x10]
mov eax, dword [edi + 8]
add eax, dword [esi + 0x1c8]
movsx ecx, word [eax]
inc eax
mov dword [edi + 0x1c], ecx
inc eax
mov dword [ebp - 0x18], eax
mov eax, ecx
test eax, eax
je 0x43080a
and dword [ebp - 0x1c], 0
test eax, eax
jbe 0x43080a
push 0x10
call fcn.0044c87d
test eax, eax
pop ecx
je 0x4306ac
xor ecx, ecx
mov ebx, eax
and byte [eax + 4], cl
mov dword [eax], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
jmp 0x4306ae
xor ebx, ebx
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
mov al, byte [eax]
mov byte [ebx + 4], al
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
call fcn.0044c87d
pop ecx
mov dword [ebx + 8], eax
push dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebx + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [edi + 0x10]
lea eax, [ecx + eax + 1]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x80]
push str._s_d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov al, byte [ebp - 0xd]
add esp, 0x10
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], al
push 0
call fcn.00409df2
lea eax, [ebp - 0x80]
push eax
call fcn.0044ccb0
pop ecx
push eax
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040a3c2
lea eax, [ebp - 0x38]
lea ecx, [esi + 0x190]
push eax
mov dword [ebp - 4], 4
call fcn.00432067
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], eax
call fcn.00409df2
mov eax, dword [ebp - 0x24]
cmp eax, dword [esi + 0x198]
je 0x4307ad
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x4307ad
push dword [ebp - 0x24]
lea ecx, [esi + 0x190]
call fcn.0043236a
mov eax, dword [ebp - 0x14]
dec dword [esi + 0x18c]
mov eax, dword [eax + 4]
mov dword [ebx], eax
inc eax
push eax
call fcn.0044c87d
push dword [ebx]
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 0xc], eax
push dword [ecx + 0x14]
push eax
call fcn.0044bf60
mov ecx, dword [ebp - 0x14]
add esp, 0x10
call fcn.0042fed4
push dword [ebp - 0x14]
call fcn.0044c872
pop ecx
mov eax, dword [ebx + 8]
push 0
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 0xd]
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x48], al
call fcn.00409df2
push dword [ebp - 0x24]
call fcn.0044ccb0
pop ecx
push eax
lea ecx, [ebp - 0x48]
push dword [ebp - 0x24]
call fcn.0040a3c2
lea eax, [ebp - 0x48]
lea ecx, [edi + 0x20]
push eax
mov dword [ebp - 4], 5
call fcn.004320f9
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x48]
mov dword [eax], ebx
call fcn.00409df2
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [edi + 0x1c]
jb 0x43068f
push dword [edi + 0x10]
and dword [edi + 0x18], 0
lea eax, [ebp - 0x80]
push str._sProperty
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov al, byte [ebp - 0xd]
add esp, 0xc
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x58], al
push 0
call fcn.00409df2
lea eax, [ebp - 0x80]
push eax
call fcn.0044ccb0
pop ecx
push eax
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x58]
call fcn.0040a3c2
lea eax, [ebp - 0x58]
lea ecx, [esi + 0x190]
push eax
mov dword [ebp - 4], 6
call fcn.00432067
or dword [ebp - 4], 0xffffffff
mov ebx, eax
push 1
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x24], ebx
call fcn.00409df2
cmp ebx, dword [esi + 0x198]
je 0x4308cd
mov eax, ebx
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x4308cd
push eax
lea ecx, [esi + 0x190]
call fcn.0043236a
dec dword [esi + 0x18c]
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0x14], eax
mov dword [edi + 4], eax
mov eax, dword [ebx + 4]
inc eax
push eax
call fcn.0044c87d
push dword [edi + 4]
mov dword [edi + 0x18], eax
push dword [ebx + 0x14]
push eax
call fcn.0044bf60
add esp, 0x10
mov ecx, ebx
call fcn.0042fed4
push ebx
call fcn.0044c872
pop ecx
add dword [ebp - 0x20], 0x14
mov eax, dword [ebp - 0x20]
jmp 0x430653
cmp word [esi + 0x10e], 2
jne 0x43091e
mov edi, dword [sym.imp.USER32.dll_FindWindowA]
xor ebx, ebx
cmp dword [esi + 0x1b4], ebx
mov byte [esi + 0x1cc], 1
jne 0x430908
push str.DemoNow
push ebx
call edi
mov dword [esi + 0x1b4], eax
cmp dword [esi + 0x1b4], ebx
jne 0x43091e
push str.InstallFromTheWeb
push ebx
call edi
mov dword [esi + 0x1b4], eax
mov al, 1
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret