Function at 0x414060
Capabilities:
Accept command line arguments
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x898
mov eax, dword [0x4a7f70]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0xff
mov dword [0x4a94e4], eax
lea eax, [ebp - 0x204]
push 0
push eax
call fcn.00465570
add esp, 0xc
xor ecx, ecx
jmp 0x4140a0
movzx eax, word [ecx + str.http:__api.dev.playkey.net_update.aspx]
mov word [ebp + ecx - 0x204], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x4140a0
push 0xff
lea eax, [ebp - 0x604]
push 0
push eax
call fcn.00465570
push 0xff
lea eax, [ebp - 0x804]
push 0
push eax
call fcn.00465570
push 0xff
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.00465570
add esp, 0x24
lea eax, [ebp - 0x88c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ebx, eax
test ebx, ebx
je 0x414290
xor esi, esi
cmp dword [ebp - 0x88c], esi
jle 0x414290
nop
mov eax, dword [ebx + esi*4]
lea edi, [ebx + esi*4]
mov ecx, str._host
jmp 0x414130
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x414156
test dx, dx
je 0x414152
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x414156
add eax, 4
add ecx, 4
test dx, dx
jne 0x414130
xor eax, eax
jmp 0x41415b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x414181
inc esi
lea edx, [ebp - 0x204]
mov ecx, dword [ebx + esi*4]
lea edi, [ebx + esi*4]
lea esp, [esp]
movzx eax, word [ecx]
mov word [edx], ax
add edx, 2
lea ecx, [ecx + 2]
test ax, ax
jne 0x414170
mov eax, dword [edi]
mov ecx, str._software
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4141ae
test dx, dx
je 0x4141aa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4141ae
add eax, 4
add ecx, 4
test dx, dx
jne 0x414188
xor eax, eax
jmp 0x4141b3
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4141d5
inc esi
lea edx, [ebp - 0x604]
mov ecx, dword [ebx + esi*4]
lea edi, [ebx + esi*4]
movzx eax, word [ecx]
mov word [edx], ax
add edx, 2
lea ecx, [ecx + 2]
test ax, ax
jne 0x4141c4
mov eax, dword [edi]
mov ecx, str._version
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x414206
test dx, dx
je 0x414202
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x414206
add eax, 4
add ecx, 4
test dx, dx
jne 0x4141e0
xor eax, eax
jmp 0x41420b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x414231
inc esi
lea edx, [ebp - 0x804]
mov ecx, dword [ebx + esi*4]
lea edi, [ebx + esi*4]
lea esp, [esp]
movzx eax, word [ecx]
mov word [edx], ax
add edx, 2
lea ecx, [ecx + 2]
test ax, ax
jne 0x414220
mov eax, dword [edi]
mov ecx, str._url
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41425e
test dx, dx
je 0x41425a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41425e
add eax, 4
add ecx, 4
test dx, dx
jne 0x414238
xor eax, eax
jmp 0x414263
sbb eax, eax
or eax, 1
test eax, eax
jne 0x414283
mov ecx, dword [ebx + esi*4 + 4]
inc esi
lea edx, [ebp - 0x404]
movzx eax, word [ecx]
mov word [edx], ax
add edx, 2
lea ecx, [ecx + 2]
test ax, ax
jne 0x414272
inc esi
cmp esi, dword [ebp - 0x88c]
jl 0x414120
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.update_debug.log
lea eax, [ebp - 0x888]
push eax
lea eax, [ebp - 0x894]
push eax
mov dword [ebp - 0x888], 5
call fcn.00407e70
mov ecx, dword [eax]
add esp, 4
mov edx, esp
mov dword [edx], ecx
mov dword [edx + 4], 0
mov ecx, dword [eax + 4]
mov dword [eax + 4], 0
mov dword [edx + 4], ecx
mov dword [eax], 0
call fcn.004165d0
mov esi, dword [ebp - 0x890]
add esp, 8
or edi, 0xffffffff
test esi, esi
je 0x414315
lea eax, [esi + 4]
mov ecx, edi
lock xadd dword [eax], ecx
jne 0x414315
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea eax, [esi + 8]
mov edx, edi
lock xadd dword [eax], edx
jne 0x414315
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov ecx, 0x48ac2c
lea eax, [ebp - 0x604]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x414346
test dx, dx
je 0x414342
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x414346
add eax, 4
add ecx, 4
test dx, dx
jne 0x414320
xor eax, eax
jmp 0x41434b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x414367
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00464acc
mov esp, ebp
pop ebp
ret 0x10
mov ecx, 0x48ac2c
lea eax, [ebp - 0x804]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x414398
test dx, dx
je 0x414394
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x414398
add eax, 4
add ecx, 4
test dx, dx
jne 0x414372
xor eax, eax
jmp 0x41439d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4143b9
mov eax, 3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00464acc
mov esp, ebp
pop ebp
ret 0x10
push 0xf
push str.Playkey_updater
lea ecx, [ebp - 0x81c]
mov dword [ebp - 0x808], 0xf
mov dword [ebp - 0x80c], 0
mov byte [ebp - 0x81c], 0
call fcn.0040f3b0
lea eax, [ebp - 0x81c]
push eax
lea ecx, [ebp - 0x884]
call fcn.0040a270
cmp dword [ebp - 0x808], 0x10
jb 0x41440f
push dword [ebp - 0x81c]
call fcn.00463690
add esp, 4
lea eax, [ebp - 0x204]
mov dword [ebp - 0x898], eax
lea eax, [ebp - 0x604]
mov dword [ebp - 0x894], eax
movq xmm0, qword [ebp - 0x898]
lea eax, [ebp - 0x804]
mov dword [ebp - 0x808], eax
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x888]
push eax
mov dword [ebp - 0x814], 0x40cee0
movq qword [ebp - 0x810], xmm0
call fcn.00407f80
add esp, 8
lea ecx, [ebp - 0x888]
call fcn.004136a0
lea ecx, [ebp - 0x888]
call fcn.00411ae0
lea ecx, [ebp - 0x888]
call fcn.00462640
mov esi, dword [ebp - 0x888]
test esi, esi
je 0x4144b0
lea eax, [esi + 4]
lock xadd dword [eax], edi
dec edi
jne 0x4144b0
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax]
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [0x4a94f0]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [0x4a94f4]
call sub.gdiplus.dll_GdiplusShutdown
lea ecx, [ebp - 0x884]
call fcn.004191d0
cmp word [ebp - 0x404], 0
je 0x4144f6
push 1
push 0
lea eax, [ebp - 0x404]
push eax
push str.Playkey.exe
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00464acc
mov esp, ebp
pop ebp
ret 0x10