Function at 0x420456
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x508f3d
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 0x420864
je 0x420734
sub edx, 0x4a
je 0x4206f9
sub edx, 0xc7
je 0x420527
sub edx, 0x7f53
je 0x4204fc
dec edx
jne 0x4208e2
call fcn.00420d9b
xor ebx, ebx
push ebx
push ebx
push esi
push 0x4225a4
push ebx
push ebx
call fcn.004d8e98
add esp, 0x18
mov dword [esi + 0x8b0], eax
jmp 0x4208dc
xor ebx, ebx
cmp dword [esi + 0x8ac], ebx
jne 0x4208dc
push ebx
push ebx
push esi
push 0x422594
push ebx
push ebx
call fcn.004d8e98
add esp, 0x18
mov dword [esi + 0x8ac], eax
jmp 0x4208dc
xor ebx, ebx
cmp dword [0x550334], ebx
je 0x42054e
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x550334]
push eax
push str._INFO___d___HandleCustomMessage_wparam__d_.
call fcn.00427dfb
add esp, 0xc
cmp dword [ebp + 0xc], 0x208
jne 0x4208e2
mov dword [edi], 1
cmp dword [0x550334], ebx
je 0x420589
push dword [esi + 0x8c8]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x550334]
push eax
push str._INFO___d___HandleCustomMessage_exit__page__d_.
call fcn.00427dfb
add esp, 0xc
mov eax, dword [esi + 0x8c8]
mov byte [esi + 0xcc1], 1
cmp eax, 2
jne 0x4205b1
mov eax, esi
call fcn.004236ca
push 1
push ebx
mov ecx, esi
call fcn.00442e33
jmp 0x4208e2
cmp eax, 1
jne 0x42066a
mov eax, dword [esi + 0x8d0]
push ecx
sub eax, 0x10
mov dword [esp + 0x14], esp
mov edi, esp
call fcn.00404311
add eax, 0x10
mov dword [edi], eax
push dword [esi + 0x8cc]
call fcn.0042b02e
pop ecx
pop ecx
cmp al, bl
jne 0x42067a
cmp dword [0x550334], ebx
je 0x42060a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x550334]
push eax
push str._WARN___d___HandleCustomMessage_exit__get_product_installed_failed.
call fcn.00427dfb
pop ecx
pop ecx
push ebx
push 0x40
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push 0x532094
push eax
call fcn.004042b1
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.004042b1
push edi
push dword [esi + 0x894]
call fcn.00402fb0
or dword [esp + 0x290], 0xffffffff
xor ecx, ecx
push esi
inc ecx
call fcn.004233ec
cmp eax, 1
je 0x42067a
jmp 0x4208e2
cmp eax, 3
jne 0x42067a
mov ecx, dword [esi + 0x890]
call fcn.004197b0
cmp dword [0x550334], ebx
je 0x42069b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x550334]
push eax
push str._INFO___d___HandleCustomMessage_exit_
call fcn.00427dfb
pop ecx
pop ecx
push 9
push 0x532134
lea ecx, [esp + 0x20]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004023bf
xor edx, edx
inc edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x280], 2
call fcn.0040fa10
or dword [esp + 0x280], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x20]
call fcn.00402476
push ebx
push ebx
push 0x81bc
mov ecx, esi
call fcn.004431ab
jmp 0x4208e2
xor ebx, ebx
cmp ecx, ebx
je 0x4208e2
push dword [ecx + 8]
lea ecx, [esp + 0x54]
call fcn.00404466
lea ecx, [esp + 0x50]
mov dword [esp + 0x280], 3
call fcn.0040fb17
push ebx
push 1
lea ecx, [esp + 0x58]
call fcn.0040476f
jmp 0x4208e2
mov eax, dword [esi + 0x890]
xor ebx, ebx
cmp byte [eax + 0x769], bl
je 0x42084b
mov edi, eax
call fcn.00418323
test al, al
je 0x4207ee
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 0x4207db
xor eax, eax
push 0x1fe
mov word [esp + 0x70], ax
lea eax, [esp + 0x72]
push ebx
push eax
call fcn.004d9310
add esp, 0xc
push 0x100
lea eax, [esp + 0x70]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClassNameW]
mov ecx, 0x53201c
lea eax, [esp + 0x6c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4207cd
cmp dx, bx
je 0x4207c9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4207cd
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x4207a7
xor eax, eax
jmp 0x4207d2
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
cmp al, bl
jne 0x4207ee
mov eax, dword [esi + 0x890]
cmp byte [eax + 0x769], bl
je 0x4207ee
call fcn.0041bac9
push 9
push 0x532024
lea ecx, [esp + 0x3c]
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
call fcn.004023bf
xor edx, edx
lea ecx, [esp + 0x34]
mov dword [esp + 0x280], ebx
call fcn.0040fa10
or dword [esp + 0x280], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x3c]
call fcn.00402476
push ebx
push ebx
push 0x81bc
mov ecx, esi
call fcn.004431ab
mov edi, dword [esp + 0x10]
jmp 0x4208dc
call fcn.00420f71
mov eax, esi
call fcn.004236ca
push 1
push 1
mov ecx, esi
call fcn.00442e33
jmp 0x4208dc
sub edx, 0x8067
je 0x4208be
dec edx
je 0x4208b6
sub edx, 0x154
je 0x420893
sub edx, 0x604
jne 0x4208e2
mov eax, dword [ebp + 0xc]
cmp eax, dword [esi + 0x910]
jne 0x4208dc
push ecx
push esi
call fcn.00423748
jmp 0x4208dc
xor ebx, ebx
inc ebx
mov ecx, esi
mov dword [esi + 0x8a4], ebx
call fcn.004225c9
mov eax, esi
call fcn.004236ca
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov dword [edi], ebx
jmp 0x4208e2
push esi
call fcn.0042092b
jmp 0x4208dc
xor ebx, ebx
push ebx
push ebx
push 0x8064
mov ecx, esi
call fcn.004431ab
push ebx
push ebx
push 0x8065
mov ecx, esi
call fcn.004431ab
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.004d5e0b
mov esp, ebp
pop ebp
ret 0x10