Function at 0x481710
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov ecx, edi
call fcn.00481100
test eax, eax
je 0x481735
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push ecx
mov ecx, esp
push edi
call fcn.0040c2d0
call fcn.00480f30
add esp, 4
test eax, eax
jne 0x48172a
push eax
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 8
push eax
mov dword [esp + 0x1c], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
sub esp, 0xc
call fcn.00481fe0
lea ecx, [esp + 0x10]
call fcn.004fb3a0
mov esi, dword [eax]
mov eax, dword [0x643498]
test al, 1
jne 0x4817b0
or eax, 1
mov dword [0x643498], eax
call fcn.00517b30
push 0x5a9fd0
call fcn.00551ad4
add esp, 4
push ecx
push esi
mov ecx, 0x641a50
call fcn.00518060
mov edx, dword [esp + 0x10]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4817dc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.004fb910
mov ebx, dword [eax]
mov eax, dword [0x643498]
test al, 1
jne 0x48180a
or eax, 1
mov dword [0x643498], eax
call fcn.00517b30
push 0x5a9fd0
call fcn.00551ad4
add esp, 4
push ebx
mov ecx, 0x641a50
call fcn.00517eb0
mov edx, dword [esp + 0x10]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x481830
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x643498]
test al, 1
jne 0x481858
or eax, 1
mov dword [0x643498], eax
call fcn.00517b30
push 0x5a9fd0
call fcn.00551ad4
mov eax, dword [0x643498]
add esp, 4
cmp dword [0x6413c4], 0
je 0x481885
push 0x518240
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [0x6413c8], eax
call fcn.00518110
mov eax, dword [0x643498]
mov dword [0x643480], 0x1084
test al, 1
jne 0x4818a8
or eax, 1
mov dword [0x643498], eax
call fcn.00517b30
push 0x5a9fd0
call fcn.00551ad4
mov eax, dword [0x643498]
add esp, 4
mov dword [0x643494], 0x481690
test al, 1
jne 0x4818d0
or eax, 1
mov dword [0x643498], eax
call fcn.00517b30
push 0x5a9fd0
call fcn.00551ad4
add esp, 4
mov dword [0x643484], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x640468], eax
lea eax, [esp + 0x20]
push 0
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 1
push eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
push 0
call fcn.00556115
mov esi, dword [0x641988]
add esp, 4
mov dword [0x641710], eax
xorps xmm0, xmm0
lea eax, [esp + 0x30]
mov dword [0x641714], edx
add esi, 0x10
mov dword [esp + 0x30], 0x5c2e4c
push esi
movdqu xmmword [esp + 0x38], xmm0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x641704]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00481e40
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [ebp + 0x14]
lea edx, [esp + 0x34]
mov ecx, edi
call fcn.00480ba0
add esp, 4
mov edi, eax
call fcn.00481da0
mov esi, dword [0x640d3c]
test esi, esi
je 0x4819bd
mov ecx, esi
call fcn.00501ff0
push esi
call fcn.00551995
add esp, 4
mov ecx, dword [0x6403e0]
mov dword [0x640d3c], 0
test ecx, ecx
je 0x4819dc
mov eax, dword [ecx + 0x30]
add ecx, 0x30
push 1
call dword [eax + 4]
mov eax, dword [0x643498]
mov dword [0x6403e0], 0
test al, 1
jne 0x481a0e
or eax, 1
mov dword [0x643498], eax
call fcn.00517b30
push 0x5a9fd0
call fcn.00551ad4
mov eax, dword [0x643498]
add esp, 4
mov dword [0x643484], 0
test al, 1
jne 0x481a36
or eax, 1
mov dword [0x643498], eax
call fcn.00517b30
push 0x5a9fd0
call fcn.00551ad4
add esp, 4
push ecx
mov ecx, 0x641a50
call fcn.00517e60
push dword [esp + 0x1c]
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
mov ecx, dword [0x6413cc]
test ecx, ecx
je 0x481a65
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x6413cc], 0
call fcn.00481c80
call dword [sym.imp.ole32.dll_CoUninitialize]
push dword [0x640464]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
mov dword [0x640464], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
lea ecx, [esp + 0x30]
call fcn.00481ab0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10