Function at 0x40119c
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x60
xorps xmm0, xmm0
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0x30], xmm0
movaps xmmword [esp + 0x20], xmm0
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x50], 0
mov edi, dword [0x4f6008]
cmp dword [edi], 0
je 0x401161
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov eax, dword fs:[0x18]
mov esi, dword [eax + 4]
mov ecx, dword [0x4f601c]
xor eax, eax
lock cmpxchg dword [ecx], esi
sete bl
je 0x4011b2
cmp esi, eax
je 0x4011b2
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
nop word cs:[eax + eax]
nop
push 0x3e8
call edi
xor eax, eax
mov ecx, dword [0x4f601c]
pushal
dec edi
add al, dh
cmpxchg dword [ecx], esi
sete bl
je 0x4011ac
cmp esi, eax
jne 0x401190
mov edi, dword [0x4f6008]
mov esi, dword [0x4f6020]
mov eax, dword [esi]
cmp eax, 1
jne 0x4011cb
push 0x1f
call fcn.004c5470
add esp, 4
jmp 0x4011f4
cmp dword [esi], 0
je 0x4011d9
mov byte [0x516240], 1
jmp 0x4011f4
mov dword [esi], 1
mov eax, dword [0x4f6030]
mov ecx, dword [0x4f602c]
push eax
push ecx
call sub.api_ms_win_crt_runtime_l1_1_0.dll__initterm
add esp, 8
mov eax, dword [esi]
cmp eax, 1
jne 0x401216
mov eax, dword [0x4f6028]
mov ecx, dword [0x4f6024]
push eax
push ecx
call sub.api_ms_win_crt_runtime_l1_1_0.dll__initterm
add esp, 8
mov dword [esi], 2
test bl, bl
je 0x401224
xor eax, eax
mov ecx, dword [0x4f601c]
xchg dword [ecx], eax
mov eax, dword [0x4f6004]
mov eax, dword [eax]
test eax, eax
je 0x401237
push 0
push 2
push 0
call eax
call fcn.004c4080
push 0x4c4480
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov ecx, dword [0x4f6018]
mov dword [ecx], eax
push 0x4013f0
call sub.api_ms_win_crt_runtime_l1_1_0.dll__set_invalid_parameter_handler
add esp, 4
call fcn.004c4070
mov eax, dword [sym.firefox.exe_Ordinal_0]
mov dword [0x516224], eax
call sub.api_ms_win_crt_runtime_l1_1_0.dll___p__acmdln
mov eax, dword [eax]
test eax, eax
je 0x4012c5
xor ecx, ecx
jmp 0x401290
xor ebx, ebx
test ecx, ecx
sete bl
cmp dl, 0x22
cmove ecx, ebx
add eax, 1
movzx edx, byte [eax]
cmp dl, 0x20
jg 0x401280
test ecx, ecx
je 0x4012a0
test dl, dl
jne 0x401280
test dl, dl
je 0x4012c0
cmp dl, 0x20
jg 0x4012c0
nop dword [eax]
movzx ecx, byte [eax + 1]
add eax, 1
test cl, cl
je 0x4012c0
cmp cl, 0x21
jl 0x4012b0
mov dword [0x516228], eax
cmp dword [edi], 0
je 0x4012e2
test byte [esp + 0x3c], 1
movzx eax, word [esp + 0x40]
mov ecx, 0xa
cmovne ecx, eax
mov dword [section..data], ecx
mov esi, dword [0x516234]
lea eax, [esi*4 + 4]
push eax
call sub.mozglue.dll_malloc
add esp, 4
test esi, esi
jle 0x401350
mov ebx, dword [0x516238]
mov dword [esp + 0xc], esi
xor esi, esi
mov dword [esp + 8], eax
nop dword [eax]
push dword [ebx + esi*4]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
add edi, 1
push edi
call sub.mozglue.dll_malloc
add esp, 4
mov ecx, dword [esp + 8]
mov dword [ecx + esi*4], eax
push edi
push dword [ebx + esi*4]
push eax
call sub.ntdll.dll_memcpy
add esp, 0xc
add esi, 1
cmp dword [esp + 0xc], esi
jne 0x401310
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
jmp 0x401352
xor ecx, ecx
mov dword [eax + ecx*4], 0
mov dword [0x516238], eax
call fcn.004c3ee0
mov eax, dword [0x51623c]
mov ecx, dword [0x4f6044]
mov ecx, dword [ecx]
mov dword [ecx], eax
push dword [0x51623c]
push dword [0x516238]
push dword [0x516234]
call fcn.00401400
add esp, 0xc
mov dword [0x516244], eax
cmp dword [0x51622c], 0
je 0x4013b5
cmp byte [0x516240], 0
jne 0x4013ad
call sub.api_ms_win_crt_runtime_l1_1_0.dll__cexit
mov eax, dword [0x516244]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
call sub.api_ms_win_crt_runtime_l1_1_0.dll_exit
nop dword [eax + eax]
mov eax, dword [0x4f6008]
mov dword [eax], 0
jmp fcn.00401120