Function at 0x41faf3
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5086db
mov eax, dword fs:[0]
push eax
sub esp, 0x268
mov eax, dword [0x54b3f0]
xor eax, esp
mov dword [esp + 0x260], eax
push ebx
push esi
push edi
mov eax, dword [0x54b3f0]
xor eax, esp
push eax
lea eax, [esp + 0x278]
mov dword fs:[0], eax
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
mov eax, 0x8066
mov esi, ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x10], edi
cmp edx, eax
ja 0x41ff01
je 0x41fdd1
sub edx, 0x4a
je 0x41fd96
sub edx, 0xc7
je 0x41fbc4
sub edx, 0x7f53
je 0x41fb99
dec edx
jne 0x41ff7f
call fcn.0042043b
xor ebx, ebx
push ebx
push ebx
push esi
push 0x421bb4
push ebx
push ebx
call fcn.004d87d8
add esp, 0x18
mov dword [esi + 0x8b0], eax
jmp 0x41ff79
xor ebx, ebx
cmp dword [esi + 0x8ac], ebx
jne 0x41ff79
push ebx
push ebx
push esi
push 0x421ba4
push ebx
push ebx
call fcn.004d87d8
add esp, 0x18
mov dword [esi + 0x8ac], eax
jmp 0x41ff79
xor ebx, ebx
cmp dword [0x5500d4], ebx
je 0x41fbeb
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x5500d4]
push eax
push str._INFO___d___HandleCustomMessage_wparam__d_.
call fcn.00427581
add esp, 0xc
cmp dword [ebp + 0xc], 0x208
jne 0x41ff7f
mov dword [edi], 1
cmp dword [0x5500d4], ebx
je 0x41fc26
push dword [esi + 0x8c8]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x5500d4]
push eax
push str._INFO___d___HandleCustomMessage_exit__page__d_.
call fcn.00427581
add esp, 0xc
mov eax, dword [esi + 0x8c8]
mov byte [esi + 0xcc1], 1
cmp eax, 2
jne 0x41fc4e
mov eax, esi
call fcn.00422d00
push 1
push ebx
mov ecx, esi
call fcn.004426ec
jmp 0x41ff7f
cmp eax, 1
jne 0x41fd07
mov eax, dword [esi + 0x8d0]
push ecx
sub eax, 0x10
mov dword [esp + 0x14], esp
mov edi, esp
call fcn.00403e21
add eax, 0x10
mov dword [edi], eax
push dword [esi + 0x8cc]
call fcn.0042a972
pop ecx
pop ecx
cmp al, bl
jne 0x41fd17
cmp dword [0x5500d4], ebx
je 0x41fca7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x5500d4]
push eax
push str._WARN___d___HandleCustomMessage_exit__get_product_installed_failed.
call fcn.00427581
pop ecx
pop ecx
push ebx
push 0x40
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push 0x5320d4
push eax
call fcn.00403b0d
push ecx
mov dword [esp + 0x24], esp
mov edi, esp
push ecx
mov eax, esp
mov dword [esp + 0x28], esp
push str.tipmsg_close
push eax
mov dword [esp + 0x29c], 1
call fcn.00403b0d
push edi
push dword [esi + 0x894]
call fcn.00402c31
or dword [esp + 0x290], 0xffffffff
xor ecx, ecx
push esi
inc ecx
call fcn.00422a22
cmp eax, 1
je 0x41fd17
jmp 0x41ff7f
cmp eax, 3
jne 0x41fd17
mov ecx, dword [esi + 0x890]
call fcn.00418f58
cmp dword [0x5500d4], ebx
je 0x41fd38
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x5500d4]
push eax
push str._INFO___d___HandleCustomMessage_exit_
call fcn.00427581
pop ecx
pop ecx
push 9
push 0x532174
lea ecx, [esp + 0x20]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.00402366
xor edx, edx
inc edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x280], 2
call fcn.0040f17d
or dword [esp + 0x280], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x20]
call fcn.0040241d
push ebx
push ebx
push 0x81bc
mov ecx, esi
call fcn.00442a64
jmp 0x41ff7f
xor ebx, ebx
cmp ecx, ebx
je 0x41ff7f
push dword [ecx + 8]
lea ecx, [esp + 0x54]
call fcn.0040edaa
lea ecx, [esp + 0x50]
mov dword [esp + 0x280], 3
call fcn.0040f284
push ebx
push 1
lea ecx, [esp + 0x58]
call fcn.00403da4
jmp 0x41ff7f
mov eax, dword [esi + 0x890]
xor ebx, ebx
cmp byte [eax + 0x769], bl
je 0x41fee8
mov edi, eax
call fcn.00417acb
test al, al
je 0x41fe8b
mov eax, dword [esi + 0x890]
mov edi, dword [eax + 0x788]
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
setne al
cmp al, bl
je 0x41fe78
xor eax, eax
push 0x1fe
mov word [esp + 0x70], ax
lea eax, [esp + 0x72]
push ebx
push eax
call fcn.004d8c50
add esp, 0xc
push 0x100
lea eax, [esp + 0x70]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClassNameW]
mov ecx, 0x53205c
lea eax, [esp + 0x6c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41fe6a
cmp dx, bx
je 0x41fe66
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41fe6a
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x41fe44
xor eax, eax
jmp 0x41fe6f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
cmp al, bl
jne 0x41fe8b
mov eax, dword [esi + 0x890]
cmp byte [eax + 0x769], bl
je 0x41fe8b
call fcn.0041b1e6
push 9
push 0x532064
lea ecx, [esp + 0x3c]
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
call fcn.00402366
xor edx, edx
lea ecx, [esp + 0x34]
mov dword [esp + 0x280], ebx
call fcn.0040f17d
or dword [esp + 0x280], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x3c]
call fcn.0040241d
push ebx
push ebx
push 0x81bc
mov ecx, esi
call fcn.00442a64
mov edi, dword [esp + 0x10]
jmp 0x41ff79
call fcn.00420611
mov eax, esi
call fcn.00422d00
push 1
push 1
mov ecx, esi
call fcn.004426ec
jmp 0x41ff79
sub edx, 0x8067
je 0x41ff5b
dec edx
je 0x41ff53
sub edx, 0x154
je 0x41ff30
sub edx, 0x604
jne 0x41ff7f
mov eax, dword [ebp + 0xc]
cmp eax, dword [esi + 0x910]
jne 0x41ff79
push ecx
push esi
call fcn.00422d7e
jmp 0x41ff79
xor ebx, ebx
inc ebx
mov ecx, esi
mov dword [esi + 0x8a4], ebx
call fcn.00421bd9
mov eax, esi
call fcn.00422d00
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov dword [edi], ebx
jmp 0x41ff7f
push esi
call fcn.0041ffcb
jmp 0x41ff79
xor ebx, ebx
push ebx
push ebx
push 0x8064
mov ecx, esi
call fcn.00442a64
push ebx
push ebx
push 0x8065
mov ecx, esi
call fcn.00442a64
mov dword [edi], 1
xor eax, eax
inc eax
mov ecx, dword [esp + 0x278]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x260]
xor ecx, esp
call fcn.004d574b
mov esp, ebp
pop ebp
ret 0x10