Function at 0x4042d6
Capabilities:
Create process on windows
Enumerate gui resources
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x539cd8
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x59099c]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push esi
push edi
mov eax, dword [0x59099c]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
push str.Register
mov edi, ecx
mov esi, edx
call fcn.0040e1fc
test eax, eax
jne 0x404419
push 0xffffffffffffffff
xor ebx, ebx
push ebx
mov edi, 0x5923f0
push edi
mov ecx, 0x592498
call fcn.0040a999
lea eax, [esp + 0x34]
push esi
push eax
call fcn.004785c0
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
mov esi, 0x5924b4
push eax
mov ecx, esi
mov dword [esp + 0xa4], ebx
call fcn.0040a999
or dword [esp + 0x98], 0xffffffff
push ebx
push 1
lea ecx, [esp + 0x3c]
call fcn.0040aca3
push 0x5922d8
push esi
mov ecx, edi
call fcn.00401a1c
cmp al, bl
pop ecx
pop ecx
mov byte [0x5eeb9a], al
lea ecx, [esp + 0x34]
je 0x4043db
push str.RegSucceeded
mov byte [0x5eeba8], bl
call fcn.0040a406
xor esi, esi
lea eax, [esp + 0x34]
inc esi
push eax
mov dword [esp + 0x9c], esi
call fcn.00414d37
or dword [esp + 0x9c], 0xffffffff
pop ecx
push ebx
push esi
lea ecx, [esp + 0x3c]
call fcn.0040afb1
cmp byte [0x5eebad], bl
jne 0x40440f
mov byte [0x592274], 1
jmp 0x40440f
push str.RegFailed
call fcn.0040a406
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x9c], 2
call fcn.00414d37
or dword [esp + 0x9c], 0xffffffff
pop ecx
push ebx
push 1
lea ecx, [esp + 0x3c]
call fcn.0040afb1
call fcn.00402df7
jmp 0x40482d
push str.Close
mov ecx, edi
call fcn.0040e1fc
test eax, eax
jne 0x4044c6
push dword [0x5eebd0]
call dword [sym.imp.USER32.dll_IsWindow]
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
xor ebx, ebx
test eax, eax
je 0x4044b9
cmp byte [0x59225b], bl
je 0x40446e
mov eax, dword [0x5eebb8]
cdq
mov ecx, 0xea60
idiv ecx
mov ecx, dword [0x59226c]
sub ecx, eax
sub ecx, dword [0x5eeba4]
mov al, 1
test ecx, ecx
jle 0x404473
mov al, byte [0x5eeba8]
cmp byte [0x5eeb9a], bl
jne 0x404486
cmp al, bl
je 0x404486
call fcn.00401c85
jmp 0x4044b9
call fcn.00404170
push 1
push dword [0x5eebd0]
call dword [0x59333c]
push 9
push dword [0x5eebd0]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x5eebc8]
cmp eax, ebx
je 0x4044b9
push eax
call esi
mov dword [0x5eebc8], ebx
push dword [0x5eebc4]
call esi
jmp 0x40454a
push str.BuyCancel
mov ecx, edi
call fcn.0040e1fc
xor ebx, ebx
test eax, eax
jne 0x404555
cmp byte [0x5eeba9], bl
jne 0x4044f0
push 0x560568
mov ecx, esi
call fcn.0040e1fc
test eax, eax
je 0x404555
push dword [0x5eeb90]
mov byte [0x5eeba9], bl
push 0x404241
call dword [sym.imp.USER32.dll_EnumWindows]
push dword [0x5eebd0]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40453e
call fcn.00404170
push 1
push dword [0x5eebd0]
call dword [0x59333c]
push 9
push dword [0x5eebd0]
call dword [sym.imp.USER32.dll_ShowWindow]
mov dword [0x5eebd0], ebx
push dword [0x5eebc4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x5eebc4], ebx
jmp 0x40482d
push str.TabletPopupTip
mov ecx, edi
call fcn.0040e1fc
test eax, eax
jne 0x40466e
lea eax, [esp + 0x34]
push esi
push eax
call fcn.004785c0
pop ecx
pop ecx
mov dword [esp + 0x98], 3
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.popupTip_r_n
call esi
cmp dword [esp + 0x4c], 0x10
mov eax, dword [esp + 0x38]
jae 0x40459d
lea eax, [esp + 0x38]
push eax
call esi
push 0x5607dc
call esi
xor edi, edi
inc edi
push edi
push ebx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x1c], 0x2c
call fcn.0040ab1b
mov esi, eax
push esi
push ebx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x40]
call fcn.0040a369
cmp dword [eax + 0x18], 0x10
jb 0x4045dc
mov eax, dword [eax + 4]
jmp 0x4045df
add eax, 4
push eax
call fcn.0050bc97
pop ecx
push ebx
push edi
lea ecx, [esp + 0x58]
mov dword [esp + 0x1c], eax
call fcn.0040aca3
push 0xffffffffffffffff
inc esi
push esi
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x40]
call fcn.0040a369
cmp dword [eax + 0x18], 0x10
jb 0x404612
mov eax, dword [eax + 4]
jmp 0x404615
add eax, 4
push eax
call fcn.0050bc97
pop ecx
push ebx
push edi
lea ecx, [esp + 0x58]
mov esi, eax
call fcn.0040aca3
push dword [0x5eebc4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x404667
cmp byte [0x5eebab], bl
je 0x404667
push ebx
push ebx
push ebx
push dword [0x5eebc4]
call dword [sym.imp.USER32.dll_CreateCaret]
push esi
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_SetCaretPos]
push dword [0x5eebc4]
call dword [sym.imp.USER32.dll_ShowCaret]
push ebx
push edi
jmp 0x4046ff
push str.TabletCloseTip
mov ecx, edi
call fcn.0040e1fc
test eax, eax
jne 0x4046c0
push str.closeTip_r_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [0x5eebc4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40482d
cmp byte [0x5eebab], bl
je 0x40482d
push dword [0x5eebc4]
call dword [sym.imp.USER32.dll_HideCaret]
call dword [sym.imp.USER32.dll_DestroyCaret]
jmp 0x40482d
push str.Execute
mov ecx, edi
call fcn.0040e1fc
test eax, eax
jne 0x40470d
lea eax, [esp + 0x34]
push esi
push eax
call fcn.004785c0
cmp dword [eax + 0x18], 0x10
pop ecx
pop ecx
jb 0x4046e8
mov eax, dword [eax + 4]
jmp 0x4046eb
add eax, 4
push 1
push ebx
push ebx
push eax
push 0x560738
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push ebx
push 1
lea ecx, [esp + 0x3c]
call fcn.0040aca3
jmp 0x40482d
push str.MinimizeWindow
mov ecx, edi
call fcn.0040e1fc
test eax, eax
jne 0x404721
push 6
jmp 0x404733
push str.RestoreWindow
mov ecx, edi
call fcn.0040e1fc
test eax, eax
jne 0x404744
push 9
push dword [0x5eebc4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x40482d
push str.Persist
mov ecx, edi
call fcn.0040e1fc
test eax, eax
jne 0x40482d
push esi
lea ecx, [esp + 0x54]
call fcn.0040a428
mov dword [esp + 0x98], 4
push ebx
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 7
call fcn.0040af94
push 1
push ebx
lea eax, [esp + 0x1c]
mov byte [esp + 0xa0], 5
push eax
mov ecx, esi
mov dword [esp + 0x20], 0x3d
call fcn.0040aeed
mov edi, eax
cmp edi, 0xffffffff
je 0x4047ed
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x58]
call fcn.0040a44e
push 0xffffffffffffffff
inc edi
push edi
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.0040a537
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0xa4], 6
call fcn.0040ad18
push ebx
push 1
lea ecx, [esp + 0x20]
mov byte [esp + 0xa0], 5
call fcn.0040afb1
cmp dword [esp + 0x80], ebx
jne 0x404804
push 0x560868
lea ecx, [esp + 0x70]
call fcn.0040ae1f
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00414f31
pop ecx
pop ecx
push ebx
push 1
lea ecx, [esp + 0x74]
call fcn.0040afb1
push ebx
push 1
lea ecx, [esp + 0x58]
call fcn.0040afb1
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.0050bc9c
mov esp, ebp
pop ebp
ret