Function at 0x40168f
Capabilities:
Terminate process

Disassembly:
push ebx
push ecx
push 0
push 0x400000
call fcn.00401432
mov dword [0x4080bc], eax
cmp dword [0x408040], 0
jne 0x401f56
push eax
call dword [sym.imp.MSVCR110.dll_exit]
mov ecx, dword [ebp + 0x10]
call fcn.004014f4
test eax, eax
jne 0x401bec
jmp 0x401bff
lea ecx, [esp + 0x38]
call fcn.0040126c
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call fcn.004019f6
push 0x14
push 0x4016b0
call fcn.004015b8
and dword [ebp - 0x1c], 0
call sub.MSVCR110.dll___crtGetShowWindowMode
jmp 0x401e62
xor esi, esi
inc esi
cmp dword [0x408150], esi
je 0x401e97
jmp 0x40179e
mov dword [0x408150], esi
push 0x401754
push 0x401744
call sub.MSVCR110.dll__initterm_e
pop ecx
pop ecx
test eax, eax
jne 0x401ea4
cmp dword [0x408150], esi
jne 0x4017b0
push 0x401740
push 0x40172c
call sub.MSVCR110.dll__initterm
pop ecx
pop ecx
mov dword [0x408150], 2
jmp 0x4017b0
cmp dword [0x40815c], 0
jne 0x401ece
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [sym.imp.MSVCR110.dll__wcmdln]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
push 0x20
pop esi
mov edx, dword [ebp - 0x1c]
movzx eax, word [ecx]
cmp ax, si
ja 0x4017ba
jmp 0x401ef2
xor eax, eax
test edx, edx
sete al
mov edx, eax
mov dword [ebp - 0x1c], edx
jmp 0x401f1c
cmp dword [0x408150], 0
je 0x4016e0
jmp 0x401eb5
test edi, edi
je 0x401ec0
jmp 0x401758
cmp eax, 0x22
je 0x40178d
jmp 0x401f1c
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
call fcn.00402f39
mov ebx, eax
jmp 0x40128a
xor esi, esi
lea eax, [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
push eax
mov dword [esp + 0x1c], 8
mov dword [esp + 0x20], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push ecx
push esi
push 0x401d5c
lea ecx, [esp + 0x1c]
call fcn.0040152a
mov edi, dword [esp + 0x10]
test edi, edi
je 0x401c50
cmp byte [esp + 0x14], bl
jne 0x401c50
push 0x401d70
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x401c52
mov eax, esi
test eax, eax
je 0x401c5e
push esi
push 0x4020c4
call eax
mov ecx, dword [ebp + 8]
mov edx, 0x401d8c
call fcn.0040194f
mov esi, eax
test esi, esi
je 0x401cf9
push 0x401dbc
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x10], eax
test eax, eax
je 0x401cf2
mov ecx, dword [0x4080cc]
push 2
mov ebx, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x3c]
mov eax, ebx
or eax, ecx
pop edx
xorps xmm0, xmm0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], 0x4012f4
mov dword [esp + 0x28], 0x401d4c
mov dword [esp + 0x2c], edx
movlpd qword [esp + 0x30], xmm0
je 0x401cdd
push 1
push ecx
push ebx
mov ecx, 0x401d4c
call fcn.00402e3b
test eax, eax
js 0x401cdd
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call dword [esp + 0x18]
lea ecx, [esp + 0x20]
mov ebx, eax
call fcn.0040126c
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [0x4080cc]
cmp esi, 0x4080cc
jne 0x401d27
jmp 0x401d35
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
je 0x401d25
push dword [esi + 0xc]
push dword [esi + 8]
call dword [sym.imp.ADVAPI32.dll_UnregisterTraceGuids]
and dword [esi + 8], 0
and dword [esi + 0xc], 0
mov esi, dword [esi]
test esi, esi
jne 0x401d09
mov dword [0x4080cc], 0x4080cc
test edi, edi
je 0x40128a
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40128a
movzx ebx, ax
and dword [ebp - 4], 0
mov eax, dword fs:[0x18]
mov edx, dword [eax + 4]
xor edi, edi
mov esi, 0x408ed0
mov ecx, edx
xor eax, eax
lock cmpxchg dword [esi], ecx
test eax, eax
je 0x4016cc
cmp eax, edx
jne 0x401e79
xor esi, esi
inc esi
mov edi, esi
jmp 0x4016cf
push 0x1f
call sub.MSVCR110.dll__amsg_exit
pop ecx
jmp 0x4016ff
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
jmp 0x401f71
mov dword [0x408550], esi
jmp 0x4016ff
xor eax, eax
mov ecx, 0x408ed0
xchg dword [ecx], eax
jmp 0x401758
push 0x40815c
call fcn.00406172
pop ecx
test eax, eax
je 0x401770
push 0
push 2
push 0
call dword [0x40815c]
jmp 0x401770
test ax, ax
je 0x401eff
test edx, edx
jne 0x4017ba
movzx eax, word [ecx]
test ax, ax
je 0x401230
cmp ax, si
ja 0x401230
add ecx, 2
mov dword [ebp - 0x20], ecx
jmp 0x401eff
add ecx, 2
mov dword [ebp - 0x20], ecx
jmp 0x401780
cmp dword [0x408550], 0
jne 0x401f6a
call dword [sym.imp.MSVCR110.dll__cexit]
mov eax, dword [0x4080bc]
mov dword [ebp - 4], 0xfffffffe
call fcn.004017c4
ret