Function at 0x646e48
Capabilities:
Accept command line arguments
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x646e50
push ecx
push ebx
push esi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x6479b2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
call fcn.0040b590
movzx eax, bl
cmp eax, 0x54
ja case.0x646e7f.0
jmp dword [eax*4 + 0x646e86]
push 0
lea eax, [ebp - 0x14]
push eax
mov ecx, 0x6479cc
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x14]
mov edx, esi
call fcn.00646b2c
jmp case.0x646e7f.0
push 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x647a00
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.00646b2c
mov eax, dword [ebp - 0x18]
mov edx, esi
call fcn.00647cd4
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b22c]
call fcn.0040b980
jmp case.0x646e7f.0
lea edx, [ebp - 0x20]
mov eax, 0x28
call fcn.00646d84
mov eax, dword [ebp - 0x20]
mov edx, esi
call fcn.00429488
jmp case.0x646e7f.0
push 0
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x647a24
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x24]
mov edx, esi
call fcn.00646b2c
jmp case.0x646e7f.0
push 0
lea eax, [ebp - 0x28]
push eax
mov ecx, 0x647a24
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x28]
mov edx, esi
call fcn.00646b2c
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b264]
call fcn.0040b980
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b268]
call fcn.0040b980
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b268]
call fcn.0040b980
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x26
call fcn.00646d84
jmp case.0x646e7f.0
mov eax, esi
call fcn.00646dc0
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b230]
call fcn.0040b980
jmp case.0x646e7f.0
lea edx, [ebp - 0x2c]
xor eax, eax
call fcn.00407540
mov eax, dword [ebp - 0x2c]
mov edx, esi
call fcn.00429364
jmp case.0x646e7f.0
mov eax, esi
call fcn.004296e4
jmp case.0x646e7f.0
mov edx, esi
xor eax, eax
call fcn.00407540
jmp case.0x646e7f.0
lea edx, [ebp - 0x30]
xor eax, eax
call fcn.00407540
mov eax, dword [ebp - 0x30]
mov edx, esi
call fcn.00429488
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x24
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x25
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x14
call fcn.00646d84
jmp case.0x646e7f.0
push esi
lea edx, [ebp - 0x34]
mov eax, 0x24
call fcn.00646d84
mov eax, dword [ebp - 0x34]
mov ecx, 2
mov edx, 1
call fcn.0040c4fc
jmp case.0x646e7f.0
push 1
mov ecx, 0x647a44
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
dec eax
setg al
and al, byte [0x68b20b]
je 0x647201
mov eax, 0x647a6c
call fcn.00644f14
test al, al
je 0x647201
mov edx, esi
mov eax, 0x23
call fcn.00646d84
jmp case.0x646e7f.0
cmp dword [0x68b250], 0
je 0x647218
mov eax, 0x647a88
call fcn.00644f14
test al, al
je 0x647229
mov edx, esi
mov eax, 0x1a
call fcn.00646d84
jmp case.0x646e7f.0
movzx eax, byte [0x647a98]
push eax
push esi
lea edx, [ebp - 0x38]
mov al, 4
call fcn.00646e48
mov eax, dword [ebp - 0x38]
push eax
lea edx, [ebp - 0x3c]
mov eax, 0x1a
call fcn.00646d84
mov eax, dword [ebp - 0x3c]
mov ecx, dword [0x68b250]
pop edx
call fcn.004317d8
jmp case.0x646e7f.0
push 1
mov ecx, 0x647a44
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
dec eax
setg al
and al, byte [0x68b20b]
je 0x6472a2
mov eax, 0x647a6c
call fcn.00644f14
test al, al
je 0x6472a2
mov edx, esi
mov eax, 0x2e
call fcn.00646d84
jmp case.0x646e7f.0
cmp dword [0x68b250], 0
je 0x6472b9
mov eax, 0x647a88
call fcn.00644f14
test al, al
je 0x6472ca
mov edx, esi
mov eax, 5
call fcn.00646d84
jmp case.0x646e7f.0
movzx eax, byte [0x647a98]
push eax
push esi
lea edx, [ebp - 0x40]
mov al, 4
call fcn.00646e48
mov eax, dword [ebp - 0x40]
push eax
lea edx, [ebp - 0x44]
mov eax, 5
call fcn.00646d84
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x68b250]
pop edx
call fcn.004317d8
jmp case.0x646e7f.0
push 0
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x647aa8
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x48]
mov edx, esi
call fcn.00646b2c
jmp case.0x646e7f.0
push 0
lea eax, [ebp - 0x4c]
push eax
mov ecx, 0x647ac4
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x4c]
mov edx, esi
call fcn.00646b2c
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b26c]
call fcn.0040b980
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x28
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x2b
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
xor eax, eax
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0xb
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 2
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 7
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x19
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x16
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x17
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x18
call fcn.00646d84
jmp case.0x646e7f.0
call fcn.0042b848
fstp qword [ebp - 8]
wait
push dword [ebp - 4]
push dword [ebp - 8]
mov edx, esi
mov eax, dword [0x683408]
call fcn.0042c7fc
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x1c
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x23
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 9
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x2d
call fcn.00646d84
jmp case.0x646e7f.0
lea edx, [ebp - 0x50]
mov al, 0x20
call fcn.00646e48
mov eax, dword [ebp - 0x50]
mov edx, esi
call fcn.00429364
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b23c]
call fcn.0040b980
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b240]
call fcn.0040b980
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b244]
call fcn.0040b980
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b270]
call fcn.0040b980
jmp case.0x646e7f.0
push 0
push esi
mov ecx, 0x647ae8
mov edx, 0x647afc
mov eax, dword [0x68b1fc]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp case.0x646e7f.0
push 0
push esi
mov ecx, 0x647b14
mov edx, 0x647afc
mov eax, dword [0x68b1fc]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp case.0x646e7f.0
push 0
push esi
mov ecx, 0x647b28
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp case.0x646e7f.0
mov edx, esi
mov eax, 6
call fcn.00646d84
jmp case.0x646e7f.0
mov dl, 1
mov eax, dword [0x5153d4]
call fcn.00516520
mov ebx, eax
cmp byte [0x68b207], 0
je 0x647557
mov dword [ebx + 0x18], 0x20119
jmp 0x64755e
mov dword [ebx + 0x18], 0x20219
mov edx, 0x80000002
mov eax, ebx
call fcn.00516608
xor ecx, ecx
mov edx, 0x647b40
mov eax, ebx
call fcn.00516764
test al, al
je 0x6475c1
mov edx, 0x647ba0
mov eax, ebx
call fcn.005176c4
test al, al
je 0x64759c
mov ecx, esi
mov edx, 0x647ba0
mov eax, ebx
call fcn.0051712c
jmp 0x6475ba
mov edx, 0x647bcc
mov eax, ebx
call fcn.005176c4
test al, al
je 0x6475ba
mov ecx, esi
mov edx, 0x647bcc
mov eax, ebx
call fcn.0051712c
mov eax, ebx
call fcn.005165d8
mov eax, ebx
call fcn.004097a0
jmp case.0x646e7f.0
mov ecx, 1
mov edx, dword [0x68b264]
mov eax, 0x647bf8
call fcn.0040c658
test eax, eax
jle 0x647615
mov ecx, 1
mov edx, dword [0x68b264]
mov eax, 0x647bf8
call fcn.0040c658
mov ebx, eax
push esi
mov ecx, ebx
dec ecx
mov edx, 1
mov eax, dword [0x68b264]
call fcn.0040c4fc
jmp case.0x646e7f.0
mov eax, esi
mov edx, 0x647c08
call fcn.0040b980
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x25
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x2a
call fcn.00646d84
jmp case.0x646e7f.0
push 0
mov ecx, 0x647c1c
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 0x10]
sub eax, 1
jb 0x647670
je 0x647684
dec eax
je 0x647698
dec eax
je 0x6476ac
jmp case.0x646e7f.0
call sub.kernel32.dll_GetUserDefaultUILanguage
movzx eax, ax
mov edx, esi
call fcn.00427e9c
jmp case.0x646e7f.0
call sub.kernel32.dll_GetSystemDefaultLangID
movzx eax, ax
mov edx, esi
call fcn.00427e9c
jmp case.0x646e7f.0
call sub.kernel32.dll_GetSystemDefaultUILanguage
movzx eax, ax
mov edx, esi
call fcn.00427e9c
jmp case.0x646e7f.0
call sub.kernel32.dll_GetUserDefaultLangID
movzx eax, ax
mov edx, esi
call fcn.00427e9c
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x1f
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x27
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0xd
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x36
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x35
call fcn.00646d84
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x2e
call fcn.00646d84
jmp case.0x646e7f.0
call fcn.0042b848
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov ecx, esi
mov edx, dword [0x683408]
mov eax, 0x647c44
call fcn.0042c864
jmp case.0x646e7f.0
mov edx, esi
mov eax, 0x1c
call fcn.00646d84
jmp case.0x646e7f.0
call sub.kernel32.dll_GetCommandLineW
mov edx, eax
mov eax, esi
call fcn.0040c188
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68337c]
mov edx, dword [edx]
call fcn.0040b980
jmp case.0x646e7f.0
lea edx, [ebp - 0x54]
mov eax, dword [0x682ec8]
mov eax, dword [eax]
call fcn.00427e9c
push dword [ebp - 0x54]
push 0x647c64
lea edx, [ebp - 0x58]
mov eax, dword [0x683278]
mov eax, dword [eax]
call fcn.00427e9c
push dword [ebp - 0x58]
mov eax, esi
mov edx, 3
call fcn.0040c414
jmp case.0x646e7f.0
mov eax, esi
call fcn.00644db0
jmp case.0x646e7f.0
mov eax, esi
call fcn.00652b20
jmp case.0x646e7f.0
mov eax, esi
call fcn.00644cf8
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b274]
call fcn.0040b980
jmp case.0x646e7f.0
mov edx, esi
movzx eax, byte [0x68b281]
call fcn.00646ce8
jmp case.0x646e7f.0
mov edx, esi
movzx eax, byte [0x68b211]
call fcn.00646ce8
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68b260]
call fcn.0040b980
jmp case.0x646e7f.0
mov edx, esi
mov eax, dword [0x68b224]
call fcn.00427e9c
jmp case.0x646e7f.0
mov edx, esi
movzx eax, byte [0x68b205]
call fcn.00646ce8
jmp case.0x646e7f.0
mov edx, esi
movzx eax, byte [0x68b20b]
call fcn.00646ce8
jmp case.0x646e7f.0
mov edx, esi
mov eax, dword [0x682ec8]
mov eax, dword [eax]
call fcn.00427e9c
jmp case.0x646e7f.0
mov edx, esi
mov eax, dword [0x683278]
mov eax, dword [eax]
call fcn.00427e9c
jmp case.0x646e7f.0
mov edx, esi
mov eax, dword [0x683094]
mov eax, dword [eax]
call fcn.00427e9c
jmp case.0x646e7f.0
lea eax, [ebp - 0x60]
call fcn.00438d58
mov eax, dword [ebp - 0x60]
lea edx, [ebp - 0x5c]
call fcn.0042717c
mov eax, dword [ebp - 0x5c]
mov ecx, 1
mov edx, eax
mov eax, 0x647c74
call fcn.0040c658
mov ebx, eax
test ebx, ebx
setg al
mov edx, esi
call fcn.00646ce8
jmp case.0x646e7f.0
mov edx, esi
movzx eax, byte [0x68b214]
call fcn.00646ce8
jmp case.0x646e7f.0
mov edx, esi
movzx eax, byte [0x68b281]
call fcn.00646ce8
jmp case.0x646e7f.0
cmp byte [0x68b211], 0
je 0x647913
mov eax, esi
mov edx, 0x647c90
call fcn.0040b980
jmp case.0x646e7f.0
mov eax, esi
mov edx, 0x647ca4
call fcn.0040b980
jmp case.0x646e7f.0
mov eax, esi
mov edx, dword [0x68337c]
mov edx, dword [edx]
call fcn.0040b980
mov edx, dword [esi]
mov ecx, 1
mov eax, 0x647cb8
call fcn.0040c658
mov edx, esi
mov ecx, eax
mov eax, 1
xchg edx, eax
call fcn.0040c544
jmp case.0x646e7f.0
push 0
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x647cc8
mov edx, 0x6479e8
mov eax, dword [0x68b1f8]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x68]
lea edx, [ebp - 0x64]
call fcn.00646b2c
mov eax, dword [ebp - 0x64]
mov edx, esi
call fcn.00647cd4
lea edx, [ebp - 0x6c]
mov eax, dword [esi]
call fcn.004313d4
mov edx, dword [ebp - 0x6c]
mov eax, esi
call fcn.0040b980
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6479b9
lea eax, [ebp - 0x6c]
mov edx, 0x17
call fcn.0040b5f0
pop eax
jmp eax