Function at 0x408520
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0c
mov eax, dword [0x442308]
xor eax, ebp
mov dword [ebp - 0x40], eax
push 0xffffffffffffffff
call sub.IMM32.dll_ImmDisableIME
mov eax, dword [ebp + 8]
mov dword [0x4438c4], eax
push 2
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
call fcn.00409480
lea ecx, [ebp - 0x38]
call fcn.004094a0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x38]
call fcn.00408d40
lea ecx, [ebp - 0x38]
call fcn.00409440
movzx ecx, al
test ecx, ecx
jne 0x408d05
lea ecx, [ebp - 0x2d0]
call fcn.00413a00
lea edx, [ebp - 0x560]
push edx
lea ecx, [ebp - 0x2d0]
call fcn.0041fff0
cmp dword [ebp - 0x2e0], 0
jne 0x40874f
cmp dword [ebp - 0x2dc], 0
je 0x40874f
push str.imetoolx64.exe
push 0x4382ec
lea eax, [ebp - 0x544]
push eax
lea ecx, [ebp - 0x9e8]
push ecx
call fcn.00404120
add esp, 0xc
push eax
lea edx, [ebp - 0xa04]
push edx
call fcn.00404120
add esp, 0xc
mov ecx, eax
call fcn.00401600
push eax
call fcn.004010f0
mov dword [ebp - 0x9cc], eax
lea ecx, [ebp - 0xa04]
call fcn.00401080
lea ecx, [ebp - 0x9e8]
call fcn.00401080
cmp dword [ebp - 0x9cc], 0
je 0x40874f
xor eax, eax
mov word [ebp - 0x970], ax
push 0x40e
push 0
lea ecx, [ebp - 0x96e]
push ecx
call fcn.00423660
add esp, 0xc
mov edx, dword [ebp + 0x10]
push edx
push 0x4382f0
push 0x438310
lea eax, [ebp - 0x544]
push eax
lea ecx, [ebp - 0xa20]
push ecx
call fcn.00404120
add esp, 0xc
push eax
lea edx, [ebp - 0xa3c]
push edx
call fcn.00404120
add esp, 0xc
mov ecx, eax
call fcn.00401600
push eax
push 0x438314
push 0x208
lea eax, [ebp - 0x970]
push eax
call fcn.00402c40
add esp, 0x14
lea ecx, [ebp - 0xa3c]
call fcn.00401080
lea ecx, [ebp - 0xa20]
call fcn.00401080
lea ecx, [ebp - 0x544]
call fcn.00401600
push eax
lea ecx, [ebp - 0xa5c]
call fcn.00401550
lea ecx, [ebp - 0x970]
push ecx
lea ecx, [ebp - 0xa78]
call fcn.00401550
push 0x2710
lea edx, [ebp - 0xa5c]
push edx
lea eax, [ebp - 0xa78]
push eax
call fcn.004039c0
add esp, 0xc
xor ecx, ecx
test eax, eax
setge cl
mov byte [ebp - 0xa3d], cl
lea ecx, [ebp - 0xa78]
call fcn.00401080
lea ecx, [ebp - 0xa5c]
call fcn.00401080
movzx edx, byte [ebp - 0xa3d]
test edx, edx
je 0x40874f
mov dword [ebp - 0xa7c], 0
lea ecx, [ebp - 0x560]
call fcn.00409560
lea ecx, [ebp - 0x2d0]
call fcn.00413bc0
lea ecx, [ebp - 0x38]
call fcn.00409500
lea ecx, [ebp - 0x39]
call fcn.00409490
mov eax, dword [ebp - 0xa7c]
jmp 0x408d25
push str.install
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408773
lea ecx, [ebp - 0x2d0]
call fcn.00413be0
jmp 0x408cef
push str.uninstall
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x408797
lea ecx, [ebp - 0x2d0]
call fcn.0041a140
jmp 0x408cef
push 0x438344
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408819
push str.set_default
lea eax, [ebp - 0x990]
push eax
lea ecx, [ebp - 0x38]
call fcn.004092c0
mov dword [ebp - 0x974], 0
lea ecx, [ebp - 0x990]
call fcn.00403d20
movzx ecx, al
test ecx, ecx
jne 0x4087f5
lea ecx, [ebp - 0x990]
call fcn.00401600
push eax
call fcn.00423637
add esp, 4
mov dword [ebp - 0x974], eax
mov edx, dword [ebp - 0x974]
push edx
push 1
lea ecx, [ebp - 0x2d0]
call fcn.0041bd00
lea ecx, [ebp - 0x990]
call fcn.00401080
jmp 0x408cef
push str.unset_default
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x40883d
lea ecx, [ebp - 0x2d0]
call fcn.0041d170
jmp 0x408cef
push str.set_secondary
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x408863
push 0
lea ecx, [ebp - 0x2d0]
call fcn.0041d5e0
jmp 0x408cef
push str.set_first_pinyin
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408889
push 0
lea ecx, [ebp - 0x2d0]
call fcn.0041d360
jmp 0x408cef
push str.install_only
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x4088ad
lea ecx, [ebp - 0x2d0]
call fcn.00413be0
jmp 0x408cef
push str.install_delay
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x4088d1
lea ecx, [ebp - 0x2d0]
call fcn.0041e970
jmp 0x408cef
push str.fix_winlogon
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x4088f5
lea ecx, [ebp - 0x2d0]
call fcn.0041eaa0
jmp 0x408cef
push str.revert_winlogon
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408919
lea ecx, [ebp - 0x2d0]
call fcn.0041f200
jmp 0x408cef
push str.fix_imelist
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x40893d
lea ecx, [ebp - 0x2d0]
call fcn.0041f380
jmp 0x408cef
push 0x43845c
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408961
lea ecx, [ebp - 0x2d0]
call fcn.0041f810
jmp 0x408cef
push str.set_first_ime
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408987
push 1
lea ecx, [ebp - 0x2d0]
call fcn.0041d360
jmp 0x408cef
push str.fix_hotkey
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x4089ab
lea ecx, [ebp - 0x2d0]
call fcn.0041fd30
jmp 0x408cef
push 0x438498
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408a51
lea ecx, [ebp - 0x9ac]
call fcn.00403ce0
push str.setlow
lea eax, [ebp - 0xa98]
push eax
lea ecx, [ebp - 0x38]
call fcn.004092c0
push eax
lea ecx, [ebp - 0x9ac]
call fcn.00403d00
lea ecx, [ebp - 0xa98]
call fcn.00401080
lea ecx, [ebp - 0x9ac]
call fcn.00401600
push eax
call fcn.004010f0
test eax, eax
je 0x408a41
lea ecx, [ebp - 0x9ac]
call fcn.00401600
push eax
lea ecx, [ebp - 0xab4]
call fcn.00401550
push 1
lea ecx, [ebp - 0xab4]
push ecx
call fcn.00401420
add esp, 8
lea ecx, [ebp - 0xab4]
call fcn.00401080
lea ecx, [ebp - 0x9ac]
call fcn.00401080
jmp 0x408cef
push 0x4384b8
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408b19
lea ecx, [ebp - 0x9c8]
call fcn.00403ce0
push str.openaccess
lea eax, [ebp - 0xad0]
push eax
lea ecx, [ebp - 0x38]
call fcn.004092c0
push eax
lea ecx, [ebp - 0x9c8]
call fcn.00403d00
lea ecx, [ebp - 0xad0]
call fcn.00401080
lea ecx, [ebp - 0x9c8]
call fcn.00401600
push eax
call fcn.004010f0
test eax, eax
je 0x408b09
push 0x4384e8
lea ecx, [ebp - 0xaec]
call fcn.00401550
lea ecx, [ebp - 0x9c8]
call fcn.00401600
push eax
lea ecx, [ebp - 0xb08]
call fcn.00401550
lea ecx, [ebp - 0xaec]
push ecx
push 1
lea edx, [ebp - 0xb08]
push edx
call fcn.00401240
add esp, 0xc
lea ecx, [ebp - 0xb08]
call fcn.00401080
lea ecx, [ebp - 0xaec]
call fcn.00401080
lea ecx, [ebp - 0x9c8]
call fcn.00401080
jmp 0x408cef
push str.install_ime
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408b3f
push 1
lea ecx, [ebp - 0x2d0]
call fcn.0041fd60
jmp 0x408cef
push str.uninstall_ime
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x408b65
push 0
lea ecx, [ebp - 0x2d0]
call fcn.0041fd60
jmp 0x408cef
push str.install_tsf
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408b8b
push 1
lea ecx, [ebp - 0x2d0]
call fcn.0041fda0
jmp 0x408cef
push str.uninstall_tsf
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408bb1
push 0
lea ecx, [ebp - 0x2d0]
call fcn.0041fda0
jmp 0x408cef
push str.load_ime
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x408bd7
push 1
lea ecx, [ebp - 0x2d0]
call fcn.0041fde0
jmp 0x408cef
push str.unload_ime
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408bfd
push 0
lea ecx, [ebp - 0x2d0]
call fcn.0041fde0
jmp 0x408cef
push str.load_tsf
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408c23
push 1
lea ecx, [ebp - 0x2d0]
call fcn.0041fed0
jmp 0x408cef
push str.unload_tsf
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x408c49
push 0
lea ecx, [ebp - 0x2d0]
call fcn.0041fed0
jmp 0x408cef
push str.filesec
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408c6d
lea ecx, [ebp - 0x2d0]
call fcn.00417e30
jmp 0x408cef
push str.whitelist
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408c8e
lea ecx, [ebp - 0x2d0]
call fcn.00418460
jmp 0x408cef
push str.vistataskscheduler
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx ecx, al
test ecx, ecx
je 0x408caf
lea ecx, [ebp - 0x2d0]
call fcn.00418780
jmp 0x408cef
push str.xptaskscheduler
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx edx, al
test edx, edx
je 0x408cd0
lea ecx, [ebp - 0x2d0]
call fcn.00419650
jmp 0x408cef
push str.startmenuopt
lea ecx, [ebp - 0x38]
call fcn.004093a0
movzx eax, al
test eax, eax
je 0x408cef
lea ecx, [ebp - 0x2d0]
call fcn.00419be0
lea ecx, [ebp - 0x560]
call fcn.00409560
lea ecx, [ebp - 0x2d0]
call fcn.00413bc0
mov dword [ebp - 0xb0c], 0
lea ecx, [ebp - 0x38]
call fcn.00409500
lea ecx, [ebp - 0x39]
call fcn.00409490
mov eax, dword [ebp - 0xb0c]
mov ecx, dword [ebp - 0x40]
xor ecx, ebp
call fcn.0042364d
mov esp, ebp
pop ebp
ret 0x10