Function at 0x4058c0
Capabilities:
Accept command line arguments
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [0x417174]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
call fcn.00402990
push 0x114
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.00406ee0
add esp, 0xc
lea eax, [ebp - 0x118]
push eax
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x108], 2
sete al
mov byte [0x417fac], al
test al, al
je 0x40592c
cmp dword [ebp - 0x114], 5
mov byte [0x417fad], 1
ja 0x405933
mov byte [0x417fad], 0
push esi
call fcn.00403170
add esp, 4
test eax, eax
jne 0x405958
call fcn.004029a0
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040658e
mov esp, ebp
pop ebp
ret 0x10
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov edi, eax
cmp word [edi], 0x22
jne 0x40596f
push 0x22
lea ecx, [edi + 2]
push ecx
jmp 0x405972
push 0x20
push edi
call fcn.0040609d
mov esi, eax
add esp, 8
test esi, esi
jne 0x405984
mov esi, edi
jmp 0x405987
add esi, 2
mov eax, dword [0x417ff0]
xor ecx, ecx
mov word [eax], cx
test esi, esi
je 0x405a8e
movzx eax, word [esi]
test ax, ax
je 0x405a8e
cmp eax, 0x20
jne 0x4059c0
lea ebx, [ebx]
add esi, 2
cmp word [esi], 0x20
je 0x4059b0
lea esp, [esp]
movzx eax, word [esi]
cmp eax, 0x2d
je 0x4059d1
cmp eax, 0x2f
jne 0x405a8e
movzx eax, word [esi + 2]
push eax
add esi, 4
call fcn.004070b2
add eax, 0xffffffbc
add esp, 4
cmp eax, 0x14
ja case.0x4059f0.69
movzx eax, byte [eax + 0x406088]
jmp dword [eax*4 + 0x406074]
mov dword [0x41714c], 1
jmp case.0x4059f0.69
mov dword [0x41714c], 1
mov dword [0x417fec], 1
jmp case.0x4059f0.69
mov dword [0x41714c], 1
mov dword [0x417fe8], 1
jmp case.0x4059f0.69
push 0x104
push dword [0x417ff0]
push esi
call fcn.00402fa0
add esp, 0xc
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x20
je 0x405a80
lea ecx, [ecx]
test ax, ax
je 0x405a6f
cmp ax, 0x2d
je 0x405a6f
cmp ax, 0x2f
je 0x405a6f
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x20
jne 0x405a50
jmp 0x405a80
cmp word [esi], 0x20
jne 0x4059c0
lea esp, [esp]
add esi, 2
cmp word [esi], 0x20
je 0x405a80
jmp 0x4059c0
mov eax, dword [0x417ff0]
cmp word [eax], 0
je 0x405b1e
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
push eax
call fcn.004011d0
add esp, 4
test eax, eax
je 0x405ac6
push 0x3e8
call edi
inc esi
cmp esi, 0xc
jge 0x405ac6
mov eax, dword [0x417ff0]
jmp 0x405aa5
push 0x5c
push dword [0x417ff0]
call fcn.0040614b
add esp, 8
test eax, eax
je 0x405aed
xor ecx, ecx
mov word [eax], cx
push dword [0x417ff0]
call fcn.00401fa0
add esp, 4
call dword [sym.imp.ole32.dll_OleUninitialize]
push 0x417150
call fcn.00402930
push 0x417144
call fcn.00402930
push 0x417ff0
call fcn.00402930
add esp, 0xc
call fcn.004024c0
jmp 0x40605b
call fcn.00403510
test eax, eax
je 0x405b4c
mov eax, dword [0x417fc0]
test byte [eax], 2
jne 0x405b36
call fcn.004022b0
call fcn.004040f0
test eax, eax
je 0x406056
call fcn.004033c0
test eax, eax
jne 0x405b6b
call fcn.00402ef0
call fcn.004029a0
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040658e
mov esp, ebp
pop ebp
ret 0x10
cmp dword [0x41714c], 0
push ebx
mov ebx, 1
mov dword [ebp - 0x11c], ebx
jne 0x405c42
mov eax, dword [0x417fe4]
test eax, eax
je 0x405ba5
xor ecx, ecx
cmp dword [eax], ecx
je 0x405ba5
cmp ecx, 1
je 0x405d2f
add eax, 4
inc ecx
cmp dword [eax], 0
jne 0x405b93
mov ecx, dword [0x417124]
push 0x41
push ecx
call fcn.00403370
mov ebx, eax
add esp, 8
mov dword [ebp - 0x11c], ebx
cmp ebx, 1
jne 0x40602f
cmp dword [0x41714c], 0
jne 0x405c42
mov esi, dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.00403210
test eax, eax
je 0x405c42
push 0xf
push 0
call fcn.00403040
mov edx, eax
mov eax, dword [0x417fe4]
add esp, 8
test eax, eax
je 0x405c11
xor ecx, ecx
cmp dword [eax], ecx
je 0x405c11
lea esp, [esp]
test ecx, ecx
je 0x405d41
add eax, 4
inc ecx
cmp dword [eax], 0
jne 0x405c00
mov ecx, dword [0x417124]
push 0x45
push ecx
push edx
push dword [0x417130]
call esi
mov ebx, eax
cmp ebx, 2
je 0x40602f
cmp dword [0x41714c], 0
mov ebx, 1
mov dword [ebp - 0x11c], ebx
je 0x405bd6
call fcn.00402c90
mov eax, dword [0x417fc0]
mov dword [ebp - 0x128], eax
mov ecx, dword [eax + 4]
mov dword [ebp - 0x124], ecx
test ecx, ecx
je 0x405e97
cmp word [ecx + eax], 0x22
mov edi, dword [0x417ff0]
lea esi, [ecx + eax]
mov dword [ebp - 0x120], edi
mov ebx, esi
jne 0x405c7e
lea ebx, [esi + 2]
cmp word [ebx], 0x20
jne 0x405c8d
add ebx, 2
cmp word [ebx], 0x20
je 0x405c84
cmp word [ebx], 0x23
jne 0x405d5f
push 0xffdc
push esi
push 0
call fcn.00402020
mov esi, eax
lea ecx, [esi*2 + 2]
push ecx
call fcn.0040645b
lea ecx, [esi + 1]
mov esi, dword [ebp - 0x124]
add esi, dword [ebp - 0x128]
push ecx
mov edi, eax
push esi
push edi
mov dword [ebp - 0x120], edi
call fcn.00402020
mov ecx, ebx
sub ecx, esi
sar ecx, 1
add esp, 0x1c
cmp word [edi + ecx*2], 0x23
jne 0x405d53
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405ce7
sub ecx, edx
mov edx, edi
sar ecx, 1
lea eax, [edx + 2]
mov dword [ebp - 0x124], eax
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x405d01
sub edx, dword [ebp - 0x124]
sar edx, 1
cmp ecx, edx
jne 0x405d53
push edi
call fcn.00406423
mov edi, dword [0x417ff0]
add esp, 4
mov dword [ebp - 0x120], edi
jmp 0x405d5f
mov eax, dword [eax]
mov ecx, dword [0x417124]
test eax, eax
cmovne ecx, eax
jmp 0x405bab
mov eax, dword [eax]
mov ecx, dword [0x417124]
test eax, eax
cmovne ecx, eax
jmp 0x405c17
cmp edi, dword [0x417ff0]
jne 0x405de0
cmp word [esi], 0x22
jne 0x405d89
mov eax, 0x22
mov word [edi], ax
mov ecx, dword [0x417144]
lea edx, [edi + 2]
movzx eax, word [ecx]
mov word [edx], ax
lea ecx, [ecx + 2]
lea edx, [edx + 2]
test ax, ax
jne 0x405d76
jmp 0x405da2
mov ecx, dword [0x417144]
mov edx, edi
movzx eax, word [ecx]
mov word [edx], ax
lea ecx, [ecx + 2]
lea edx, [edx + 2]
test ax, ax
jne 0x405d91
push edi
call fcn.00401000
add esp, 4
mov esi, ebx
lea ecx, [ecx]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x405db0
sub ebx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405dc0
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x120]
mov ebx, dword [ebp - 0x120]
mov esi, edi
cmp word [ebx], 0x22
mov edi, 0x410898
jne 0x405e59
lea eax, [ebx + 2]
push 0x22
push eax
call fcn.0040609d
add esp, 8
test eax, eax
je 0x405e59
cmp word [eax + 2], 0
lea ecx, [eax + 2]
je 0x405e59
cmp word [ebx + 2], 0x20
lea esi, [ebx + 2]
jne 0x405e29
lea esp, [esp]
add esi, 2
cmp word [esi], 0x20
je 0x405e20
xor edx, edx
mov word [eax], dx
add eax, 0xfffffffe
cmp eax, esi
jbe 0x405e47
cmp word [eax], 0x20
jne 0x405e47
xor edx, edx
mov word [eax], dx
sub eax, 2
cmp eax, esi
ja 0x405e35
mov edi, ecx
cmp word [edi], 0x20
jne 0x405e59
nop
add edi, 2
cmp word [edi], 0x20
je 0x405e50
cmp dword [0x417fe8], 0
je 0x405e6b
cmp dword [0x417fec], 0
je 0x405e80
mov eax, dword [0x417fc0]
mov eax, dword [eax]
and eax, 1
push eax
push edi
push esi
call fcn.004025c0
add esp, 0xc
cmp ebx, dword [0x417ff0]
je 0x405e91
push ebx
call fcn.00406423
add esp, 4
mov ebx, dword [ebp - 0x11c]
cmp dword [0x41714c], 0
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextW]
jne 0x405f0e
push 0
push 0x403480
push dword [0x417130]
push 0x6e
push dword [0x41712c]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x417f9c], eax
test eax, eax
je 0x405f0e
push 0x3f1
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [0x417fc4]
mov dword [0x417fa0], eax
mov eax, dword [0x417fd4]
push 0xb
lea eax, [eax + ecx*2]
add eax, dword [0x417fcc]
push 0
mov dword [0x417fa8], eax
call fcn.00403040
add esp, 8
push eax
push 0x3e8
push dword [0x417f9c]
call esi
mov eax, dword [0x417fb4]
test eax, eax
je 0x405f2d
push 0x35
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x405f2d
push 0
push 0x417128
call eax
call fcn.00404820
call fcn.00404170
mov edi, dword [0x417f9c]
test edi, edi
je 0x405f56
push 0xc
push 0
call fcn.00403040
add esp, 8
push eax
push 0x3e8
push edi
call esi
call fcn.004050a0
call fcn.00404ef0
mov edi, dword [0x417f9c]
test edi, edi
je 0x405f7f
push 0xd
push 0
call fcn.00403040
add esp, 8
push eax
push 0x3e8
push edi
call esi
call fcn.00404370
mov edi, dword [0x417f9c]
test edi, edi
je 0x405fa3
push 0xe
push 0
call fcn.00403040
add esp, 8
push eax
push 0x3e8
push edi
call esi
call fcn.00404d60
mov eax, dword [0x417fb4]
test eax, eax
je 0x405fc7
push 0x38
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x405fc7
push 0
push 0x417128
call eax
mov eax, dword [0x417f9c]
test eax, eax
je 0x405fd7
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp dword [0x41714c], 0
jne 0x406001
push 2
push 0
call fcn.00403040
add esp, 8
test eax, eax
je 0x406001
cmp word [eax], 0
je 0x406001
push 0x40
push eax
call fcn.00403370
add esp, 8
cmp dword [0x417fe8], 0
jne 0x40602f
cmp dword [0x417fec], 0
jne 0x40602f
mov eax, dword [0x417fc0]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x40602f
add eax, ecx
push str..htm
push eax
call fcn.00402520
add esp, 8
call fcn.00402c30
call fcn.00402d80
cmp ebx, 1
pop ebx
jne 0x406056
cmp dword [0x417fe8], 0
jne 0x406056
cmp dword [0x417fec], 0
jne 0x406056
call fcn.00404c10
call fcn.00402ef0
call fcn.004029a0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor eax, eax
pop esi
call fcn.0040658e
mov esp, ebp
pop ebp
ret 0x10