Function at 0x403e20
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46b016
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x48b378]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x48]
call fcn.0040daf0
cmp dword [eax + 0x14], 8
jb 0x403e5e
mov eax, dword [eax]
mov ecx, eax
call fcn.00405740
mov eax, dword [ebp - 0x34]
cmp eax, 8
jb 0x403e7a
inc eax
lea ecx, [ebp - 0x48]
push eax
push dword [ebp - 0x48]
call fcn.00402430
push esi
call fcn.00414762
add esp, 4
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jns 0x403e96
xor eax, eax
jmp 0x40407f
call fcn.00403310
call fcn.00402910
call fcn.00401440
push ecx
call fcn.00401da0
push 0x80000041
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
call fcn.00401440
mov ecx, eax
call fcn.004014b0
test eax, eax
jne 0x403ed0
mov eax, 1
jmp 0x40407f
xor edi, edi
cmp byte [0x48e27e], 0
mov dword [ebp - 0x14], edi
jne 0x403f01
sub esp, 0x10
lea ecx, [ebp - 0x18]
call fcn.00405510
test eax, eax
jne 0x403efe
call dword [sym.imp.ole32.dll_CoUninitialize]
lea esi, [edi + 2]
mov edi, dword [ebp - 0x14]
jmp 0x404072
mov edi, dword [ebp - 0x14]
call fcn.00401440
mov ecx, eax
call fcn.004016c0
push 0x540
call fcn.0044ed59
add esp, 4
mov esi, eax
push 0x540
push 0
push esi
call fcn.00451470
add esp, 0xc
mov ecx, esi
call fcn.00405830
mov esi, eax
test esi, esi
je 0x404070
push 0x48e278
lea ecx, [esi + 0x4cc]
call fcn.00402660
push 0
push 0x300
push 0x400
push 0
push 0
push 0x88
push 0
push 0x481844
push 0
mov ecx, esi
call fcn.00415a84
mov ecx, esi
call fcn.00415925
push 1
push 1
mov ecx, esi
call fcn.00415ee7
mov ecx, esi
call fcn.0041743b
push eax
call fcn.00401440
mov ecx, eax
call fcn.004017e0
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, 0xa400
mov eax, dword [0x48e12c]
test eax, eax
jne 0x403fc8
push str.ChangeWindowMessageFilter
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call ebx
mov dword [0x48e12c], eax
test eax, eax
je 0x403fd2
push 1
push esi
call eax
mov eax, dword [0x48e12c]
inc esi
cmp esi, 0xa407
jb 0x403fa8
call fcn.004134ae
push 4
xor eax, eax
mov dword [ebp - 0x1c], 7
push str.main
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20], 0
mov word [ebp - 0x30], ax
call fcn.00402500
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x18]
call fcn.0040b730
push str.wpp_exit_r_n
push dword [eax]
call fcn.0040bb90
add esp, 8
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x40404c
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x40404c
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x40404c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1c]
cmp eax, 8
jb 0x404061
inc eax
lea ecx, [ebp - 0x30]
push eax
push dword [ebp - 0x30]
call fcn.00402430
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
xor esi, esi
test edi, edi
je 0x40407d
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044e878
mov esp, ebp
pop ebp
ret 0x10