Function at 0x41a122
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x110
call dword [sym.imp.user32.dll_GetProcessWindowStation]
cmp eax, 0xffffffff
je 0x41a166
lea esi, [esp + 0xb4]
lea ecx, [esp + 0xe4]
xorps xmm0, xmm0
and dword [esi + 8], 0
and dword [ecx], 0
movsd qword [esi], xmm0
push ecx
push 0xc
push esi
push 1
push eax
call dword [sym.imp.user32.dll_GetUserObjectInformationA]
test byte [esi + 8], 1
jne 0x41a18e
lea eax, [esp + 0xb4]
mov dword [eax], 0x47cf6a
mov dword [eax + 4], 0x415519
and dword [eax + 8], 0
and dword [eax + 0xc], 0
push eax
call dword [sym.imp.advapi32.dll_StartServiceCtrlDispatcherA]
jmp 0x41a7a7
lea esi, [esp + 0xe4]
mov ecx, esi
call fcn.00419082
cmp dword [esi + 0x20], 0x80000000
je 0x41a7e3
lea eax, [esp + 0x104]
movsd xmm1, qword [eax - 0x10]
movsd xmm2, qword [eax - 0x20]
mov ecx, dword [eax + 8]
movsd xmm0, qword [eax - 8]
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [eax - 0x18]
movsd qword [esp + 0x40], xmm2
mov dword [esp + 0x68], ecx
movsd qword [esp + 0x58], xmm0
mov ecx, dword [esp + 0x40]
movsd qword [esp + 0x48], xmm1
movsd xmm1, qword [eax]
movsd qword [esp + 0x60], xmm1
call fcn.004528e2
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov byte [esp + 0xe0], 0
call fcn.00452a52
test eax, eax
je 0x41a7e1
cmp byte [eax + 0x36], 2
mov edi, eax
jne 0x41a7e1
lea eax, [esp + 0x4c]
mov byte [edi + 0x36], 0
mov ecx, 0xd4
add ecx, dword [eax - 0xc]
call fcn.004580af
mov ebp, eax
mov eax, dword [edi + 0x30]
lea ecx, [esp + 8]
mov esi, edx
mov dword [ecx + 8], eax
movsd xmm0, qword [edi + 0x28]
movsd qword [ecx], xmm0
call fcn.00453af5
mov dword [esp], eax
mov dword [edi + 0x28], 1
mov dword [edi + 0x2c], ebp
mov dword [edi + 0x30], esi
lea eax, [esp + 0x4c]
mov ebx, edx
mov ecx, edi
mov edx, dword [eax - 0xc]
call fcn.00452d4c
mov ecx, dword [esp]
lea ebp, [esp + 0x8c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ebx
xor ecx, ecx
xchg dword [esp + 0x5c], ecx
test ecx, ecx
mov dword [esp + 0x3c], ecx
jne 0x41a3b5
and dword [esp + 0x6c], 0
lea ecx, [esp + 0x4c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
shr eax, 2
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x3b]
and dword [esp + 0x10], 0
and dword [esp + 0x14], 0
and dword [esp + 0x18], 0
and dword [esp + 0x20], 0
mov byte [esp + 0x24], 0
mov byte [ecx + 0x1f], al
movzx eax, word [esp + 0x39]
mov word [ecx + 0x1d], ax
call fcn.00456d96
test eax, eax
je 0x41a7e1
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ecx
and dword [esp + 0x94], 0
call fcn.00452a52
test eax, eax
je 0x41a33c
mov bh, byte [eax + 0x34]
mov cl, byte [eax + 0x35]
mov word [eax + 0x34], 0x8001
mov byte [esp], cl
jmp 0x41a33e
mov bh, 2
mov edx, dword [esp + 0x8c]
lea ecx, [esp + 8]
call fcn.004585d0
movzx esi, byte [esp]
mov bl, al
test al, al
movzx edi, bh
je 0x41a37f
lea ecx, [esp + 0xb4]
mov edx, ebp
call fcn.0041a7f1
mov ecx, edi
mov edx, esi
mov bh, al
call fcn.00452f7e
test bh, bh
je 0x41a388
call fcn.00456eb3
jmp 0x41a322
mov ecx, edi
mov edx, esi
call fcn.00452f7e
mov eax, dword [esp + 0x28]
push dword [esp + 0x2c]
call dword [eax + 0xc]
add esp, 4
lea ecx, [esp + 8]
call fcn.00458846
test bl, bl
jne 0x41a664
lea ecx, [esp + 0x6c]
call fcn.00402f10
jmp 0x41a29c
mov eax, dword [esp + 0x40]
lock inc dword [eax]
jle 0x41a7e1
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x4c]
and dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
and dword [esp + 0x78], 0
and dword [esp + 0x7c], 0
mov dword [esp + 0x80], 4
and dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
movsd xmm1, qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x7c]
movsd xmm2, qword [esp + 0x74]
movsd qword [esp + 8], xmm1
movsd xmm1, qword [esp + 0x84]
movsd qword [esp + 0x18], xmm0
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 0x20], xmm1
call fcn.00450371
lea ecx, [esp + 0x8c]
mov dword [ecx], eax
call fcn.004039f6
xor eax, eax
cmp dword [esp + 0xc], eax
jne 0x41a7e1
mov edi, dword [esp + 0x10]
and dword [esp + 0x10], 0
test edi, edi
je 0x41a7e1
and dword [esp + 0xc], 0
call fcn.00452a52
test eax, eax
je 0x41a7e8
mov ecx, eax
mov eax, dword [eax + 0x24]
lea ebx, [esp + 0x8c]
lea edx, [esp + 0x28]
mov dword [esp + 0x30], ecx
mov esi, ebx
mov dword [esp + 0x34], eax
lea eax, [esp + 8]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 8]
mov byte [eax + 0x74], 1
mov dword [ebx], edx
mov dword [ebx + 4], edx
lea ecx, [eax + 8]
mov dword [esp + 0x28], 0x4847e0
and dword [ebx + 8], 0
mov dword [esp + 0x2c], ecx
xor ecx, ecx
xchg byte [eax + 0x74], cl
test cl, cl
je 0x41a53c
cmp dword [esp + 0xc], 0
jne 0x41a7e1
or dword [esp + 0xc], 0xffffffff
mov ecx, dword [esp + 0x10]
call fcn.00403261
mov dword [esp + 0x10], edi
inc dword [esp + 0xc]
call fcn.00452a52
test eax, eax
je 0x41a4f5
mov bh, byte [eax + 0x34]
mov cl, byte [eax + 0x35]
mov word [eax + 0x34], 0x8001
mov byte [esp], cl
jmp 0x41a4f7
mov bh, 2
lea ecx, [esp + 0xb4]
mov edx, esi
call fcn.0041a7f1
movzx edx, byte [esp]
movzx ecx, bh
mov ebx, eax
call fcn.00452f7e
cmp dword [esp + 0xc], 0
jne 0x41a7e1
mov edi, dword [esp + 0x10]
and dword [esp + 0x10], 0
test edi, edi
je 0x41a7e1
and dword [esp + 0xc], 0
test bl, bl
je 0x41a63c
mov eax, dword [esp + 8]
mov ebx, dword [eax + 0x10]
sub ebx, 1
jb 0x41a5f1
cmp byte [edi + 0x38], 0
jne 0x41a7b2
inc dword [edi + 0x30]
mov ecx, edi
mov edx, dword [esp + 8]
add edx, 8
call fcn.00456f23
test eax, eax
je 0x41a5fa
cmp dword [esp + 0xc], 0
jne 0x41a7e1
or dword [esp + 0xc], 0xffffffff
mov ebp, eax
mov ecx, dword [esp + 0x10]
call fcn.00403261
mov dword [esp + 0x10], edi
inc dword [esp + 0xc]
call fcn.00452a52
test eax, eax
je 0x41a5b0
mov cl, byte [eax + 0x34]
mov dl, byte [eax + 0x35]
mov word [eax + 0x34], 0x8001
mov byte [esp], cl
mov byte [esp + 7], dl
jmp 0x41a5b4
mov byte [esp], 2
mov eax, dword [ebp + 8]
push ebp
call dword [eax]
add esp, 4
movzx ecx, byte [esp]
movzx edx, byte [esp + 7]
call fcn.00452f7e
cmp dword [esp + 0xc], 0
jne 0x41a7e1
mov edi, dword [esp + 0x10]
and dword [esp + 0x10], 0
test edi, edi
je 0x41a7e1
and dword [esp + 0xc], 0
jmp 0x41a543
mov eax, dword [esp + 8]
add eax, 8
jmp 0x41a616
cmp dword [esp + 0x14], 0x7fffffff
jae 0x41a7e1
mov eax, dword [esp + 8]
add eax, 8
cmp dword [esp + 0x20], 0
je 0x41a62e
lea ecx, [esp + 8]
mov edx, edi
push eax
call fcn.00457804
pop ecx
mov edi, eax
mov eax, dword [esp + 8]
jmp 0x41a4ad
lea ecx, [esp + 8]
mov edx, edi
push eax
call fcn.00456f83
jmp 0x41a622
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
lea esi, [esp + 8]
mov dword [ecx + 0x24], eax
or dword [esi + 4], 0xffffffff
mov ecx, dword [esi + 8]
call fcn.00403261
mov dword [esi + 8], edi
inc dword [esi + 4]
mov ecx, esi
call fcn.00403ff5
cmp dword [esp + 0x3c], 0
jne 0x41a67b
cmp dword [esp + 0x6c], 0
je 0x41a67b
lea ecx, [esp + 0x6c]
call fcn.00403ff5
call fcn.00452a52
test eax, eax
je 0x41a7e1
cmp byte [eax + 0x36], 2
mov esi, eax
je 0x41a7e1
mov byte [esi + 0x36], 2
lea ecx, [esp + 8]
mov eax, dword [esi + 0x30]
mov dword [ecx + 8], eax
movsd xmm0, qword [esi + 0x28]
movsd qword [ecx], xmm0
call fcn.00453af5
lea ecx, [esp + 0xa4]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [esi + 0x28], 1
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], edx
call fcn.00403fc0
cmp byte [esp + 0xe0], 3
jne 0x41a6e5
lea ecx, [esp + 0xb4]
call fcn.00404065
lea ecx, [esp + 0x9c]
call fcn.00403fc0
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
dec edi
cmp edi, 0xffffffff
je 0x41a70d
mov ecx, dword [esi + edi*8]
mov edx, dword [esi + edi*8 + 4]
call fcn.0045030a
jmp 0x41a6f9
lea eax, [esp + 0x60]
xor ecx, ecx
and dword [eax + 8], 0
call fcn.0040333b
movsd xmm1, qword [esp + 0x50]
lea edi, [esp + 0xbc]
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x40]
lea ebx, [esp + 0xb8]
xor edx, edx
mov ecx, ebx
movsd qword [edi + 8], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [edi + 0x10], xmm0
movsd qword [edi - 8], xmm2
movsd qword [edi], xmm1
call fcn.00457ca1
lea esi, [esp + 0xb4]
mov ecx, esi
call fcn.004580df
lea ebp, [esp + 0xd0]
mov ecx, ebp
call fcn.00454c76
mov ecx, esi
call fcn.00404233
mov ecx, ebx
call fcn.00457c96
mov ecx, ebx
call fcn.004520c4
mov ecx, dword [ebp - 0x14]
call fcn.00458245
mov ecx, edi
call fcn.00451f64
lea ecx, [esp + 0x60]
call fcn.00403592
add esp, 0x110
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x24], eax
jne 0x41a7e1
lea esi, [esp + 8]
or dword [esi + 4], 0xffffffff
mov ecx, dword [esi + 8]
call fcn.00403261
mov dword [esi + 8], edi
inc dword [esi + 4]
mov ecx, esi
call fcn.00403ff5
ud2
call fcn.00451b9d
mov ecx, edi
call fcn.004041c5
ud2