Function at 0x420482
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x508f0d
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 0x420890
je 0x420760
sub edx, 0x4a
je 0x420725
sub edx, 0xc7
je 0x420553
sub edx, 0x7f53
je 0x420528
dec edx
jne 0x42090e
call fcn.00420dc7
xor ebx, ebx
push ebx
push ebx
push esi
push 0x4225d0
push ebx
push ebx
call fcn.004d8e68
add esp, 0x18
mov dword [esi + 0x8b0], eax
jmp 0x420908
xor ebx, ebx
cmp dword [esi + 0x8ac], ebx
jne 0x420908
push ebx
push ebx
push esi
push 0x4225c0
push ebx
push ebx
call fcn.004d8e68
add esp, 0x18
mov dword [esi + 0x8ac], eax
jmp 0x420908
xor ebx, ebx
cmp dword [0x550334], ebx
je 0x42057a
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.00427e2f
add esp, 0xc
cmp dword [ebp + 0xc], 0x208
jne 0x42090e
mov dword [edi], 1
cmp dword [0x550334], ebx
je 0x4205b5
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.00427e2f
add esp, 0xc
mov eax, dword [esi + 0x8c8]
mov byte [esi + 0xcc1], 1
cmp eax, 2
jne 0x4205dd
mov eax, esi
call fcn.004236f6
push 1
push ebx
mov ecx, esi
call fcn.00442d68
jmp 0x42090e
cmp eax, 1
jne 0x420696
mov eax, dword [esi + 0x8d0]
push ecx
sub eax, 0x10
mov dword [esp + 0x14], esp
mov edi, esp
call fcn.004043d1
add eax, 0x10
mov dword [edi], eax
push dword [esi + 0x8cc]
call fcn.0042afe5
pop ecx
pop ecx
cmp al, bl
jne 0x4206a6
cmp dword [0x550334], ebx
je 0x420636
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.00427e2f
pop ecx
pop ecx
push ebx
push 0x40
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push 0x5320c4
push eax
call fcn.00404371
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.00404371
push edi
push dword [esi + 0x894]
call fcn.004030aa
or dword [esp + 0x290], 0xffffffff
xor ecx, ecx
push esi
inc ecx
call fcn.00423418
cmp eax, 1
je 0x4206a6
jmp 0x42090e
cmp eax, 3
jne 0x4206a6
mov ecx, dword [esi + 0x890]
call fcn.004197ac
cmp dword [0x550334], ebx
je 0x4206c7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x550334]
push eax
push str._INFO___d___HandleCustomMessage_exit_
call fcn.00427e2f
pop ecx
pop ecx
push 9
push 0x532164
lea ecx, [esp + 0x20]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.004024af
xor edx, edx
inc edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x280], 2
call fcn.0040fb99
or dword [esp + 0x280], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x20]
call fcn.00402566
push ebx
push ebx
push 0x81bc
mov ecx, esi
call fcn.004430e0
jmp 0x42090e
xor ebx, ebx
cmp ecx, ebx
je 0x42090e
push dword [ecx + 8]
lea ecx, [esp + 0x54]
call fcn.00404526
lea ecx, [esp + 0x50]
mov dword [esp + 0x280], 3
call fcn.0040fca0
push ebx
push 1
lea ecx, [esp + 0x58]
call fcn.0040482f
jmp 0x42090e
mov eax, dword [esi + 0x890]
xor ebx, ebx
cmp byte [eax + 0x769], bl
je 0x420877
mov edi, eax
call fcn.0041831f
test al, al
je 0x42081a
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 0x420807
xor eax, eax
push 0x1fe
mov word [esp + 0x70], ax
lea eax, [esp + 0x72]
push ebx
push eax
call fcn.004d92e0
add esp, 0xc
push 0x100
lea eax, [esp + 0x70]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClassNameW]
mov ecx, 0x53204c
lea eax, [esp + 0x6c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4207f9
cmp dx, bx
je 0x4207f5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4207f9
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x4207d3
xor eax, eax
jmp 0x4207fe
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
cmp al, bl
jne 0x42081a
mov eax, dword [esi + 0x890]
cmp byte [eax + 0x769], bl
je 0x42081a
call fcn.0041bac4
push 9
push 0x532054
lea ecx, [esp + 0x3c]
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
call fcn.004024af
xor edx, edx
lea ecx, [esp + 0x34]
mov dword [esp + 0x280], ebx
call fcn.0040fb99
or dword [esp + 0x280], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x3c]
call fcn.00402566
push ebx
push ebx
push 0x81bc
mov ecx, esi
call fcn.004430e0
mov edi, dword [esp + 0x10]
jmp 0x420908
call fcn.00420f9d
mov eax, esi
call fcn.004236f6
push 1
push 1
mov ecx, esi
call fcn.00442d68
jmp 0x420908
sub edx, 0x8067
je 0x4208ea
dec edx
je 0x4208e2
sub edx, 0x154
je 0x4208bf
sub edx, 0x604
jne 0x42090e
mov eax, dword [ebp + 0xc]
cmp eax, dword [esi + 0x910]
jne 0x420908
push ecx
push esi
call fcn.00423774
jmp 0x420908
xor ebx, ebx
inc ebx
mov ecx, esi
mov dword [esi + 0x8a4], ebx
call fcn.004225f5
mov eax, esi
call fcn.004236f6
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov dword [edi], ebx
jmp 0x42090e
push esi
call fcn.00420957
jmp 0x420908
xor ebx, ebx
push ebx
push ebx
push 0x8064
mov ecx, esi
call fcn.004430e0
push ebx
push ebx
push 0x8065
mov ecx, esi
call fcn.004430e0
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.004d5ddb
mov esp, ebp
pop ebp
ret 0x10