Function at 0x4020d0
Capabilities:
Contain obfuscated stackstrings
Inspect load icon resource
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x593b91
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x16c
push ebx
push esi
push edi
lea eax, [ebp - 0x50]
mov dword [ebp - 0x10], esp
push eax
xor edi, edi
push 0xf003f
push edi
mov esi, ecx
push str.Software_aheadCover_DesignerProperties
push SysReAllocStringLen
mov dword [ebp - 0x30], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x402163
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x24]
push edi
push edx
push edi
push 0x5fd09c
push eax
mov dword [ebp - 0x24], 3
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x402159
mov ecx, dword [ebp - 0x50]
push 0x54f
push 0x5aebb8
push 3
push edi
push 0x5fd09c
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [ebp - 0x50]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp - 0xb0]
call fcn.00408ee0
lea eax, [ebp - 0xb0]
mov ecx, esi
push eax
mov dword [ebp - 4], edi
call fcn.0058ef0d
lea ecx, [ebp - 0xb0]
push ecx
lea ecx, [ebp - 0x11c]
call fcn.00406740
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx + 0x24]
test al, 0x10
jne 0x4021ad
test al, 2
jne 0x4021ad
test al, 4
je 0x4021b4
mov byte [esi + 0xd5], 1
test byte [ebp - 0x8c], 0x20
je 0x4021ec
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0xb0]
push eax
mov byte [ebp - 4], 1
call fcn.00403430
push eax
mov byte [ebp - 4], 2
call fcn.0044b110
add esp, 4
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00575bd5
mov dword [ebp - 4], edi
push 1
lea ecx, [ebp - 0x130]
call fcn.00466dc0
mov edx, dword [ebp - 0x128]
push edi
push edx
mov byte [ebp - 4], 0xc
call fcn.00468480
add esp, 8
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0
call fcn.00466f20
push str.AheadCover_Designer
lea ecx, [ebp - 0x2c]
call fcn.00575c43
mov ecx, dword [esi + 0xcc]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0xd
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi + 0xf0]
call fcn.0045b5d0
mov eax, dword [esi + 0x7c]
push eax
call fcn.0053d6fa
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0053d6cf
mov edx, dword [esi + 0x90]
mov dword [esi + 0x7c], eax
push edx
call fcn.0053d6fa
push 0x61810c
call fcn.0053d6cf
add esp, 0x10
mov ecx, esi
mov dword [esi + 0x90], eax
push str.covered_
call fcn.004221b0
push edi
mov ecx, esi
call fcn.00421940
mov eax, dword [esi + 0xcc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + esi + 0xcc]
lea ecx, [ecx + esi + 0xcc]
call dword [edx + 0x10]
test al, al
je 0x4022b5
mov al, byte [ebp - 0x58]
mov byte [esi + 0xd6], al
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0xb0]
call fcn.00403410
mov edx, dword [esi + 0xcc]
push eax
mov byte [ebp - 4], 0xe
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x104]
call fcn.00575d0e
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xd
call fcn.00575bd5
mov ecx, dword [esi + 0xcc]
mov edx, dword [ecx + 4]
mov eax, dword [edx + esi + 0x104]
cmp dword [eax - 8], edi
jne 0x40240a
mov ecx, dword [0x61bcd4]
mov edx, dword [ecx]
lea ecx, [ebp - 0x18]
push edx
call fcn.00575c43
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x24]
push eax
push ecx
mov byte [ebp - 4], 0xf
call fcn.004664d0
add esp, 8
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x11
call fcn.00575bd5
push str.def.dat
lea ecx, [ebp - 0x54]
call fcn.00575c43
lea edx, [ebp - 0x54]
lea eax, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x1c]
mov bl, 0x12
push eax
push ecx
mov byte [ebp - 4], bl
call fcn.00466870
add esp, 0xc
mov edx, dword [esi + 0xcc]
push eax
mov byte [ebp - 4], 0x13
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x104]
call fcn.00575d0e
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00575bd5
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x11
call fcn.00575bd5
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x24]
jmp 0x402524
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0xb0]
call fcn.00403410
lea edx, [ebp - 0x1c]
push 4
push edx
mov ecx, eax
mov byte [ebp - 4], 0x14
call fcn.0056a835
mov eax, dword [eax]
push 0x5fd070
push eax
call fcn.0053d3fc
add esp, 8
lea ecx, [ebp - 0x1c]
test eax, eax
setne bl
call fcn.00575bd5
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xd
call fcn.00575bd5
test bl, bl
je 0x402529
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0xb0]
push eax
call fcn.00403410
lea ecx, [ebp - 0x1c]
push 1
push ecx
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x15
call fcn.0056a835
mov eax, dword [eax]
push 0x5fcd80
push eax
call fcn.0053d34d
add esp, 8
lea ecx, [ebp - 0x1c]
test eax, eax
sete bl
call fcn.00575bd5
test bl, bl
je 0x4024c6
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x1c]
push edx
push eax
call fcn.004664d0
add esp, 8
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x16
call fcn.00575d0e
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x15
call fcn.00575bd5
push str.def.dat
lea ecx, [ebp - 0x24]
call fcn.00575c43
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x18]
push ecx
lea eax, [ebp - 0x1c]
mov bl, 0x17
push edx
push eax
mov byte [ebp - 4], bl
call fcn.00466870
add esp, 0xc
mov ecx, dword [esi + 0xcc]
push eax
mov byte [ebp - 4], 0x18
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x104]
call fcn.00575d0e
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00575bd5
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x15
call fcn.00575bd5
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x18]
call fcn.00575bd5
mov eax, dword [esi + 0xcc]
mov bl, 0x19
mov byte [ebp - 4], bl
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x104]
lea ecx, [ebp - 0x13c]
push eax
call fcn.004584d0
mov edi, vtable.CCryptedFileInputStream.0
mov dword [ebp - 0x13c], edi
mov edx, dword [esi + 0xcc]
mov byte [ebp - 4], 0x1a
mov eax, dword [edx + 4]
lea edx, [ebp - 0x13c]
add eax, esi
mov ecx, dword [eax + 0xfc]
push ecx
mov ecx, dword [eax + 0xd0]
push edx
call fcn.00465320
lea ecx, [ebp - 0x13c]
mov byte [ebp - 4], bl
call fcn.00458530
mov eax, dword [esi + 0xcc]
mov dword [ebp - 4], 0xd
mov ecx, dword [eax + 4]
mov byte [ecx + esi + 0x100], 1
mov ecx, esi
call fcn.00405370
test al, al
jne 0x402640
mov al, byte [esi + 0xd5]
test al, al
jne 0x4025ca
push 0xffffffffffffffff
push 0
push 0x4e6b
call fcn.0057e494
lea ecx, [ebp - 0x2c]
mov dword [esi + 0xd8], 4
mov byte [ebp - 4], 0
call fcn.00575bd5
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0x35
call fcn.00575bd5
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x34
call fcn.00575bd5
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x33
call fcn.00575bd5
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x32
call fcn.00575bd5
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x31
call fcn.00575bd5
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x30
call fcn.00575bd5
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x2f
call fcn.00575bd5
mov byte [ebp - 4], 0x2e
jmp 0x403340
push str.ImagXpr7.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x402661
push str.DllRegisterServer
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x402661
call eax
mov ecx, esi
call fcn.0058fe22
lea ecx, [ebp - 0x110]
call fcn.004544f0
mov edx, dword [esi + 0xcc]
push 0
push eax
mov byte [ebp - 4], 0x36
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi + 0xdc]
call fcn.00456010
mov ebx, vtable.CPaperStock.0
mov dword [ebp - 0x110], ebx
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x39
call fcn.004547a0
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 0x38
call fcn.00575bd5
mov ecx, dword [ebp - 0x104]
lea edx, [ebp - 0x1c]
push ecx
push edx
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x37
call fcn.00406130
mov eax, dword [eax]
lea ecx, [ebp - 0x24]
push eax
push ecx
lea ecx, [ebp - 0x108]
call fcn.00406140
mov edx, dword [ebp - 0x104]
push edx
call fcn.00570be5
mov eax, dword [esi + 0xcc]
mov byte [ebp - 4], 0xd
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x38]
lea edx, [ecx + esi + 0x104]
push edx
push eax
call fcn.004664d0
add esp, 0xc
push str.stocks.dat
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x3a
call fcn.00575c43
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x38]
push ecx
lea eax, [ebp - 0x34]
push edx
push eax
mov byte [ebp - 4], 0x3b
call fcn.00466870
add esp, 0xc
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x3d
call fcn.00575bd5
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 0x3e
push ecx
lea ecx, [ebp - 0x148]
call fcn.004584d0
mov dword [ebp - 0x148], edi
push 1
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0x3f
call fcn.00455aa0
mov dword [ebp - method.CPredefPaperStockList.virtual_0], vtable.CPredefPaperStockList.0
mov edx, dword [0x6131b0]
mov dword [ebp - 0x18], edx
mov dword [ebp - method.CSerializable.virtual_0], vtable.CSerializable.0
mov al, byte [ebp - 0x11]
push 0
push 0
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x42
mov byte [ebp - 0x10c], 1
mov byte [ebp - 0x108], al
call fcn.00406190
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], 0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x43
push ecx
lea ecx, [ebp - 0xfc]
call fcn.0057594a
mov edx, dword [ebp - 0x18]
mov byte [ebp - 0xf8], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0x110], ebx
mov eax, dword [edx - 8]
test eax, eax
mov byte [ebp - 4], 0x44
jne 0x402826
push str.Normal_Paper
lea ecx, [ebp - 0xfc]
call fcn.00575d5e
lea ecx, [ebp - 0x110]
call fcn.00454810
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x46
call fcn.00575bd5
mov edx, dword [esi + 0xcc]
lea eax, [ebp - 0x130]
push eax
lea ecx, [ebp - 0x148]
mov eax, dword [edx + 4]
push ecx
mov ecx, dword [eax + esi + 0xd0]
call fcn.00465320
mov ecx, dword [ebp - 0x128]
xor edi, edi
mov ebx, dword [ecx]
cmp ebx, dword [ebp - 0x128]
je 0x4028a2
mov edx, dword [ebx + 8]
lea ecx, [ebp - 0x110]
push edx
call fcn.00454630
mov ecx, dword [esi + 0xcc]
lea eax, [ebp - 0x110]
push edi
push eax
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi + 0xdc]
call fcn.00456010
mov ebx, dword [ebx]
jmp 0x40286a
mov dword [ebp - method.CPaperStock.virtual_0], vtable.CPaperStock.0
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x49
call fcn.004547a0
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 0x48
call fcn.00575bd5
mov ebx, dword [ebp - 0x104]
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x47
call fcn.00406130
mov ecx, dword [eax]
push ebx
lea edx, [ebp - 0x54]
push ecx
push edx
lea ecx, [ebp - 0x108]
call fcn.00406140
mov eax, dword [ebp - 0x104]
push eax
call fcn.00570be5
add esp, 4
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x104], edi
mov dword [ebp - 0x100], edi
mov dword [ebp - method.CSerializable.virtual_0], vtable.CSerializable.0
mov byte [ebp - 4], 0x3f
call fcn.00455b80
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 0x3e
call fcn.00458530
xor ebx, ebx
jmp 0x402977
mov ecx, dword [esi + 0xcc]
mov dword [ebp - 4], 0x3d
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi + 0xdc]
call fcn.00456740
push str.RICHED20.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x618108], eax
call fcn.0056cdfd
mov eax, dword [esi + 0xcc]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0xcc]
call fcn.00444ac0
mov edx, dword [esi + 0xcc]
xor ecx, ecx
push 4
mov eax, dword [edx + 4]
cmp dword [eax + esi + 0xf8], 1
setg cl
add ecx, 0x90
mov dword [0x600bf4], ecx
mov ecx, esi
call fcn.0058ee91
mov edx, dword [esi + 0xcc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi + 0xd8]
call fcn.00460400
mov ecx, dword [esi + 0xcc]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi + 0xec]
call fcn.0045c820
mov ecx, 0x618558
call fcn.0045c1a0
mov eax, dword [esi + 0xcc]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0xcc]
call fcn.00444c50
mov ecx, esi
call fcn.00405370
test al, al
je 0x402a82
push 0x8c
call fcn.00570bbc
add esp, 4
mov dword [ebp - 0x1c], eax
cmp eax, ebx
mov byte [ebp - 4], 0x4c
je 0x402a6e
push 0x5af8a8
push 0x5ae9e0
push 0x5af498
push 0x62
mov ecx, eax
call fcn.00409640
jmp 0x402a70
xor eax, eax
push eax
mov ecx, esi
mov byte [ebp - 4], 0x3d
mov dword [esi + 0xd0], eax
call fcn.0057e111
mov ecx, 0xa
xor eax, eax
lea edi, [ebp - 0x170]
rep stosd dword es:[edi], eax
call fcn.00571221
push 0x7f00
push ebx
mov dword [ebp - 0x16c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0xf
mov dword [ebp - 0x158], eax
call dword [sym.imp.USER32.dll_GetSysColorBrush]
lea edx, [ebp - 0x170]
mov dword [ebp - 0x154], eax
push edx
mov dword [ebp - 0x14c], str.CovEdTab
call fcn.00571e2e
mov al, byte [ebp - 0x11]
mov dword [ebp - 0xd0], ebx
mov byte [ebp - 0xd4], al
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], ebx
push 5
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x4e
mov dword [ebp - 0xd8], vtable.CPropertyList.0
call fcn.00405d30
mov edx, dword [esi + 0xcc]
lea ecx, [ebp - 0xd8]
push ecx
push str.DefaultGraphicNew
mov eax, dword [edx + 4]
push str.Properties
mov byte [ebp - 4], 0x50
mov ecx, dword [eax + esi + 0xf0]
call fcn.0045b090
test al, al
je 0x402b6c
mov edi, dword [ebp - 0xd0]
cmp edi, dword [ebp - 0xcc]
je 0x402b6c
mov edx, dword [esi + 0xcc]
mov ecx, dword [edi]
push 0
push ecx
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi + 0xe0]
call fcn.00457c50
add edi, 4
jmp 0x402b3c
mov cl, byte [ebp - 0x11]
xor eax, eax
mov dword [ebp - 4], 0x4f
mov byte [ebp - 0xc0], cl
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
push 5
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x53
mov dword [ebp - 0xc4], vtable.CPropertyList.0
call fcn.00405d30
mov eax, dword [esi + 0xcc]
lea edx, [ebp - 0xc4]
push edx
push str.DefaultTextNew
mov ecx, dword [eax + 4]
push str.Properties
mov byte [ebp - 4], 0x55
mov ecx, dword [ecx + esi + 0xf0]
call fcn.0045b090
test al, al
je 0x402c0f
mov edi, dword [ebp - 0xbc]
cmp edi, dword [ebp - 0xb8]
je 0x402c0f
mov eax, dword [esi + 0xcc]
mov edx, dword [edi]
push 0
push edx
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + esi + 0xe4]
call fcn.00457c50
add edi, 4
jmp 0x402bdf
mov dl, byte [ebp - 0x11]
xor eax, eax
mov dword [ebp - 4], 0x54
mov byte [ebp - 0x48], dl
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x58
mov dword [ebp - 0x4c], vtable.CPropertyList.0
call fcn.004060d0
cmp eax, 5
jae 0x402c8f
push 0x14
call fcn.00570bbc
mov ecx, dword [ebp - 0x44]
add esp, 4
mov edi, eax
mov eax, dword [ebp - 0x40]
push edi
push eax
push ecx
lea ecx, [ebp - 0x48]
call fcn.00406100
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
push edx
push eax
lea ecx, [ebp - 0x48]
call fcn.004060f0
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.00570be5
lea edx, [edi + 0x14]
add esp, 4
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x3c], edx
call fcn.00405dd0
lea eax, [edi + eax*4]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], eax
mov edx, dword [esi + 0xcc]
lea ecx, [ebp - 0x4c]
push ecx
push str.DefaultTextBoxNew
mov eax, dword [edx + 4]
push str.Properties
mov byte [ebp - 4], 0x5a
mov ecx, dword [eax + esi + 0xf0]
call fcn.0045b090
test al, al
je 0x402cea
mov edi, dword [ebp - 0x44]
cmp edi, dword [ebp - 0x40]
je 0x402cea
mov edx, dword [esi + 0xcc]
mov ecx, dword [edi]
push 0
push ecx
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi + 0xe8]
call fcn.00457c50
add edi, 4
jmp 0x402cbd
mov edx, dword [esi + 0xcc]
lea ecx, [ebp - 0x1c]
push ecx
mov dword [ebp - 4], 0x59
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi + 0xd8]
call fcn.00403510
mov ecx, dword [eax]
mov edx, dword [ecx - 8]
lea ecx, [ebp - 0x1c]
test edx, edx
setne bl
call fcn.00575bd5
test bl, bl
je 0x402d94
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
lea edx, [ebp - 0x114]
push edx
push 0x3c
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov ecx, dword [esi + 0xcc]
lea eax, [ebp - 0x1c]
push eax
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi + 0xd8]
call fcn.00403510
mov eax, dword [eax]
mov byte [ebp - 4], 0x5c
push eax
push 0
push 0
push 0
mov eax, dword [ebp - 0x114]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
mov ecx, 0x61861c
call fcn.0057bc57
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x59
call fcn.00575bd5
push 0x7f8
call fcn.00570bbc
add esp, 4
mov dword [ebp - 0x1c], eax
test eax, eax
mov byte [ebp - 4], 0x5d
je 0x402db9
push 1
mov ecx, eax
call fcn.0040c360
mov edi, eax
jmp 0x402dbb
xor edi, edi
test edi, edi
mov byte [ebp - 4], 0x59
jne 0x402dc7
xor eax, eax
jmp 0x402dd7
mov ecx, dword [edi + 0xc8]
mov edx, dword [ecx + 4]
lea eax, [edx + edi + 0xc8]
mov ecx, dword [esi + 0xcc]
push 0
push 0
push 0xcf8000
mov edx, dword [ecx + 4]
push 0x61
mov ecx, edi
mov dword [edx + esi + 0x108], eax
mov eax, dword [edi]
call dword [eax + 0xb8]
test eax, eax
jne 0x402ebc
lea ecx, [ebp - 0x4c]
mov dword [esi + 0xd8], 5
mov byte [ebp - 4], 0x54
call fcn.00457520
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0x4f
call fcn.00457520
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x3d
call fcn.00457520
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x3a
call fcn.00575bd5
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xd
call fcn.00575bd5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00575bd5
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0x65
call fcn.00575bd5
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x64
call fcn.00575bd5
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x63
call fcn.00575bd5
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x62
call fcn.00575bd5
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x61
call fcn.00575bd5
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x60
call fcn.00575bd5
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x5f
call fcn.00575bd5
mov byte [ebp - 4], 0x5e
jmp 0x403340
push 0x61
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov ecx, dword [edi + 0x1c]
push eax
push 0
push 0x80
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov al, byte [esi + 0xd5]
mov dword [esi + 0x1c], edi
test al, al
lea ebx, [esi + 0x74]
je 0x402ef7
mov dword [ebx], 0
jmp 0x402f21
lea edx, [ebp - 0x104]
mov ecx, edi
push edx
push ebx
call fcn.0040c6e0
test al, al
je 0x402f18
lea eax, [ebp - 0x104]
mov ecx, edi
push eax
call fcn.00571c0b
push 1
mov ecx, edi
call fcn.00574138
mov ecx, esi
call fcn.0058f797
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0xa0]
mov eax, dword [ebx]
mov ecx, edi
push eax
call fcn.00574686
mov ecx, dword [edi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx + 0x24]
test al, 0x10
jne 0x402f61
test al, 2
jne 0x402f61
test al, 4
je 0x403027
lea ecx, [ebp - 0x11c]
call fcn.00406760
mov dword [esi + 0xd8], eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x58]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x54
call fcn.00457520
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0x4f
call fcn.00457520
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x3d
call fcn.00457520
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x3a
call fcn.00575bd5
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xd
call fcn.00575bd5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00575bd5
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0x6d
call fcn.00575bd5
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x6c
call fcn.00575bd5
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x6b
call fcn.00575bd5
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x6a
call fcn.00575bd5
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x69
call fcn.00575bd5
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x68
call fcn.00575bd5
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x67
call fcn.00575bd5
mov byte [ebp - 4], 0x66
jmp 0x40319a
push 0
call fcn.00458c80
mov edx, dword [esi]
add esp, 4
lea eax, [ebp - 0xb0]
mov ecx, esi
push eax
call dword [edx + 0x9c]
test eax, eax
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x4c]
jne 0x4030f8
call fcn.00457520
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0x4f
call fcn.00457520
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x3d
call fcn.00457520
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x3a
call fcn.00575bd5
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xd
call fcn.00575bd5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00575bd5
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0x75
call fcn.00575bd5
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x74
call fcn.00575bd5
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x73
call fcn.00575bd5
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x72
call fcn.00575bd5
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x71
call fcn.00575bd5
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x70
call fcn.00575bd5
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x6f
call fcn.00575bd5
mov byte [ebp - 4], 0x6e
jmp 0x403340
call fcn.00457520
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0x4f
call fcn.00457520
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0x3d
call fcn.00457520
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x3a
call fcn.00575bd5
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xd
call fcn.00575bd5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00575bd5
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0x7d
call fcn.00575bd5
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x7c
call fcn.00575bd5
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x7b
call fcn.00575bd5
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x7a
call fcn.00575bd5
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x79
call fcn.00575bd5
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x78
call fcn.00575bd5
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x77
call fcn.00575bd5
mov byte [ebp - 4], 0x76
lea ecx, [ebp - 0x84]
call fcn.00575bd5
lea ecx, [ebp - 0xb0]
mov dword [ebp - 4], 0xffffffff
call fcn.0058efbb
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x84]
call fcn.00575bd5
lea ecx, [ebp - 0xb0]
mov dword [ebp - 4], 0xffffffff
call fcn.0058efbb
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret