Function at 0x4505bc
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff18
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, 0x20e2
jg 0x4505f1
je 0x45062b
sub eax, 0x1062
je 0x45060c
sub eax, 0x104e
je 0x45067d
jmp 0x45119f
sub eax, 0x4090
je 0x450c89
sub eax, 0x4032
je 0x45118a
jmp 0x45119f
mov eax, dword [0x4f4bbc]
test eax, eax
je 0x450624
cmp eax, dword [ebp + 0x18]
jne 0x450624
mov eax, 1
jmp 0x4511b1
xor eax, eax
jmp 0x4511b1
mov eax, dword [0x4f4bbc]
test eax, eax
je 0x4511af
cmp eax, dword [ebp + 0x18]
jne 0x4511af
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x1c], ecx
xor eax, eax
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x14], edx
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push 0
push 0
push 0x10
lea eax, [ebp - 0x20]
push eax
mov edx, dword [0x4f4bc4]
push edx
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
cmp dword [0x4f4bbc], 0
je 0x4511af
mov byte [0x50b687], 0
test esi, esi
je 0x4506b1
push 0x3ec
push pe_nt_image_headers32
push 0x50b687
push esi
mov ecx, dword [0x4f4bc4]
push ecx
call sub.USER32.dll_DdeQueryStringA
cmp byte [0x50b687], 0
je 0x4511af
push 0x4f4dda
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450719
push 0x4fa690
push 0x4f4de3
push 0x50b2a0
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0
mov eax, dword [ebp + 0xc]
push eax
push esi
push 0
push 0x50b2a0
call fcn.00401318
pop ecx
add eax, 5
push eax
push 0x50b2a0
mov edx, dword [0x4f4bc4]
push edx
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4dee
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450767
push 0x4f7dec
call fcn.00408b88
pop ecx
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push esi
push 0
push 0x4f7dec
call fcn.00401318
pop ecx
add eax, 5
push eax
push 0x4f7dec
mov eax, dword [0x4f4bc4]
push eax
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4df7
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x4507cb
push 0x3e7
push 0x50b2a0
mov edx, dword [0x4fd9e8]
push edx
call sub.KERNEL32.dll_GetModuleFileNameA
push 0x50b2a0
call fcn.00408b88
pop ecx
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push esi
push 0
push 0x50b2a0
call fcn.00401318
pop ecx
add eax, 5
push eax
push 0x50b2a0
mov eax, dword [0x4f4bc4]
push eax
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4e00
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450830
push 0
mov edx, dword [ebp + 0xc]
push edx
push esi
push 0
mov ecx, dword [0x4fac34]
shl ecx, 2
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
add ecx, 0x4fab6c
push ecx
call fcn.00401318
pop ecx
add eax, 5
push eax
mov eax, dword [0x4fac34]
shl eax, 2
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
add eax, 0x4fab6c
push eax
mov edx, dword [0x4f4bc4]
push edx
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4e0a
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450893
movzx ecx, word [0x4faf58]
push ecx
push 0x4faef4
push 0x4f4e16
push 0x50b2a0
call sub.USER32.dll_wsprintfA
add esp, 0x10
push 0
mov eax, dword [ebp + 0xc]
push eax
push esi
push 0
push 0x50b2a0
call fcn.00401318
pop ecx
add eax, 5
push eax
push 0x50b2a0
mov edx, dword [0x4f4bc4]
push edx
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4e1d
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x4508d6
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push esi
push 0
push 0x4faef4
call fcn.00401318
pop ecx
add eax, 5
push eax
push 0x4faef4
mov eax, dword [0x4f4bc4]
push eax
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4e25
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450933
movzx edx, word [0x4faf58]
push edx
push 0x4f4e2b
push 0x50b2a0
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push esi
push 0
push 0x50b2a0
call fcn.00401318
pop ecx
add eax, 5
push eax
push 0x50b2a0
mov eax, dword [0x4f4bc4]
push eax
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4e2f
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x4509cf
cmp dword [0x4f39b0], 0
je 0x45096b
push esi
mov esi, 0x4f4e3a
mov edi, 0x50b2a0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x4509a1
push 0
call fcn.00444c50
test eax, eax
jne 0x45098f
push esi
mov esi, 0x4f4e46
mov edi, 0x50b2a0
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x4509a1
push esi
mov esi, 0x4f4e55
mov edi, 0x50b2a0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
push 0
mov edx, dword [ebp + 0xc]
push edx
push esi
push 0
push 0x50b2a0
call fcn.00401318
pop ecx
add eax, 5
push eax
push 0x50b2a0
mov ecx, dword [0x4f4bc4]
push ecx
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push 0x4f4e60
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450ada
xor edi, edi
mov ebx, dword [0x4fd9e4]
test ebx, ebx
je 0x450a19
cmp byte [ebx + 0x4cc], 1
jne 0x450a0f
lea eax, [ebx + 4]
push eax
call fcn.00401318
pop ecx
add eax, edi
add eax, 3
mov edi, eax
mov ebx, dword [ebx + 0x828]
test ebx, ebx
jne 0x4509f5
test edi, edi
jne 0x450a3e
push 0
mov edx, dword [ebp + 0xc]
push edx
push esi
push 0
push 5
push 0x4f4e6a
mov ecx, dword [0x4f4bc4]
push ecx
call sub.USER32.dll_DdeCreateDataHandle
jmp 0x4511b1
push edi
call fcn.0040c55c
pop ecx
mov edi, eax
test edi, edi
je 0x4511af
mov byte [edi], 0
mov ebx, dword [0x4fd9e4]
test ebx, ebx
je 0x450aaa
cmp byte [ebx + 0x4cc], 1
jne 0x450aa0
cmp byte [edi], 0
je 0x450a78
push 0x4f4e6e
push edi
call fcn.0040123c
add esp, 8
mov eax, dword [0x4fd9f8]
test eax, eax
je 0x450a93
cmp eax, dword [ebx]
jne 0x450a93
push 0x4f4e71
push edi
call fcn.0040123c
add esp, 8
lea edx, [ebx + 4]
push edx
push edi
call fcn.0040123c
add esp, 8
mov ebx, dword [ebx + 0x828]
test ebx, ebx
jne 0x450a5c
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push esi
push 0
push edi
call fcn.00401318
pop ecx
add eax, 5
push eax
push edi
mov eax, dword [0x4f4bc4]
push eax
call sub.USER32.dll_DdeCreateDataHandle
mov ebx, eax
push edi
call fcn.0040c454
pop ecx
mov eax, ebx
jmp 0x4511b1
push 0x4f4e74
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x4511af
cmp dword [ebp + 0x18], 0
je 0x4511af
push 0x3ec
push 0x64
push 0x50b23c
mov edx, dword [ebp + 0x18]
push edx
mov ecx, dword [0x4f4bc4]
push ecx
call sub.USER32.dll_DdeQueryStringA
cmp byte [0x50b23c], 0
je 0x4511af
push 0x50b23c
call fcn.0048b4fc
test al, al
je 0x4511af
push 0x50b23c
call fcn.004eae20
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4511af
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4cc], 1
jne 0x4511af
xor edi, edi
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x4b0]
test ebx, ebx
je 0x450b86
mov eax, dword [ebx]
push eax
call fcn.00401318
pop ecx
add eax, edi
add eax, 3
mov edi, eax
mov ebx, dword [ebx + 0x30]
test ebx, ebx
jne 0x450b6f
push 0x50b23c
call fcn.00401318
pop ecx
add eax, edi
add eax, 2
push eax
call fcn.0040c55c
pop ecx
mov edi, eax
test edi, edi
je 0x4511af
push esi
push edi
mov esi, edi
mov edi, 0x50b23c
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x4b0]
test ebx, ebx
je 0x450c53
push 0x4f4e7b
push edi
call fcn.0040123c
add esp, 8
test byte [ebx + 0x18], 2
je 0x450c00
push 0x4f4e7e
push edi
call fcn.0040123c
add esp, 8
jmp 0x450c40
test byte [ebx + 0x18], 4
je 0x450c16
push 0x4f4e81
push edi
call fcn.0040123c
add esp, 8
jmp 0x450c40
test byte [ebx + 0x18], 8
je 0x450c2c
push 0x4f4e84
push edi
call fcn.0040123c
add esp, 8
jmp 0x450c40
test byte [ebx + 0x18], 0x10
je 0x450c40
push 0x4f4e87
push edi
call fcn.0040123c
add esp, 8
mov eax, dword [ebx]
push eax
push edi
call fcn.0040123c
add esp, 8
mov ebx, dword [ebx + 0x30]
test ebx, ebx
jne 0x450bdc
push 0
mov edx, dword [ebp + 0xc]
push edx
push esi
push 0
push edi
call fcn.00401318
pop ecx
add eax, 5
push eax
push edi
mov ecx, dword [0x4f4bc4]
push ecx
call sub.USER32.dll_DdeCreateDataHandle
mov ebx, eax
push edi
call fcn.0040c454
pop ecx
mov eax, ebx
jmp 0x4511b1
cmp dword [0x4f4bbc], 0
je 0x45117c
mov byte [0x50b687], 0
test esi, esi
je 0x450cbd
push 0x3ec
push pe_nt_image_headers32
push 0x50b687
push esi
mov edx, dword [0x4f4bc4]
push edx
call sub.USER32.dll_DdeQueryStringA
cmp byte [0x50b687], 0
je 0x45117c
push 0x4f4e8a
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450d76
test ebx, ebx
je 0x450d6c
lea ecx, [ebp - 8]
push ecx
push ebx
call sub.USER32.dll_DdeAccessData
mov esi, eax
test esi, esi
je 0x450d24
push esi
mov edi, esi
mov esi, 0x50b2a0
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x450d2b
mov byte [0x50b2a0], 0
push ebx
call sub.USER32.dll_DdeUnaccessData
push ebx
call sub.USER32.dll_DdeFreeDataHandle
cmp byte [0x50b2a0], 0
je 0x450d6c
mov ebx, dword [0x4fd9fc]
mov eax, dword [0x4fd9f8]
push eax
call fcn.004eae80
test eax, eax
je 0x450d5b
mov ebx, dword [0x4fd9f8]
push 0
push 4
push 0
push 0x50b2a0
push ebx
call fcn.004864e8
mov eax, 0x8000
jmp 0x4511b1
push 0x4f4e93
push 0x50b687
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x45117c
test ebx, ebx
je 0x451175
mov byte [0x50b2a0], 0
lea edx, [ebp - 0xc]
push edx
push ebx
call sub.USER32.dll_DdeAccessData
mov esi, eax
test esi, esi
je 0x450dd7
push esi
mov edi, esi
mov esi, 0x50b2a0
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x450dde
mov byte [0x50b2a0], 0
push ebx
call sub.USER32.dll_DdeUnaccessData
push ebx
call sub.USER32.dll_DdeFreeDataHandle
cmp byte [0x50b2a0], 0
je 0x451175
lea esi, [ebp - 0x84]
mov edi, 0x4faef4
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebp - 0xe8], 0
mov dword [ebp - 0x10], 0x1a0b
xor edi, edi
mov ebx, 0x50b2a0
jmp 0x450f37
inc ebx
cmp byte [ebx], 0x20
je 0x450e3b
cmp byte [ebx], 0
je 0x450f40
push 0x2c
push ebx
call fcn.00401278
add esp, 8
mov esi, eax
test esi, esi
je 0x450e5f
mov byte [esi], 0
inc esi
cmp byte [ebx], 0
je 0x450f31
push ebx
call fcn.0048b4fc
test al, al
je 0x450eb0
push ebx
call fcn.00401318
pop ecx
cmp eax, 0x5a
jbe 0x450e82
mov byte [ebx + 0x5a], 0
push esi
push edi
lea esi, [ebp - 0xe8]
mov edi, ebx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x450f31
push 0x2e
push ebx
call fcn.00401278
add esp, 8
test eax, eax
je 0x450eea
push esi
push edi
lea esi, [ebp - 0x84]
mov edi, ebx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x450f31
push 0x4f4e9c
push ebx
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450f03
mov edi, 1
jmp 0x450f31
push 0x4f4e9f
push ebx
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x450f19
xor edi, edi
jmp 0x450f31
xor eax, eax
mov al, byte [ebx]
test byte [eax*2 + 0x500706], 4
je 0x450f31
push ebx
call fcn.00409a14
pop ecx
mov dword [ebp - 0x10], eax
test esi, esi
je 0x450f40
mov ebx, esi
cmp byte [ebx], 0
jne 0x450e3c
push 0x20
lea eax, [ebp - 0x84]
push eax
call fcn.00401278
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x450f5a
mov byte [ebx], 0
cmp byte [ebp - 0xe8], 0
je 0x450f8c
push 0x20
lea eax, [ebp - 0xe8]
push eax
call fcn.004015cc
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x450f8c
mov esi, ebx
jmp 0x450f7f
inc esi
cmp byte [esi], 0x20
je 0x450f7e
cmp byte [esi], 0
jne 0x450f8c
mov byte [ebx], 0
cmp dword [0x4f39b4], 0
je 0x450f9e
cmp dword [0x4fe2b0], 0xffffffff
jne 0x450fab
cmp dword [0x4f39b0], 0
je 0x4510b8
push 0x4faef4
lea eax, [ebp - 0x84]
push eax
call fcn.004014a8
add esp, 8
test eax, eax
jne 0x45103d
cmp dword [0x4f39b0], 0
je 0x450ffb
push edi
mov esi, 0x50a79c
lea edi, [ebp - 0xe8]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
jmp 0x451131
cmp byte [ebp - 0xe8], 0
je 0x451131
lea eax, [ebp - 0xe8]
push eax
push 0x4f4ea2
push 0x50b2a0
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0
push 0
push 0
push 0x50b2a0
mov edx, dword [0x4fd9fc]
push edx
call fcn.004864e8
jmp 0x451131
cmp byte [ebp - 0x84], 0
je 0x451065
mov ecx, dword [ebp - 0x10]
push ecx
lea eax, [ebp - 0x84]
push eax
push 0x4f4eac
push 0x50b2a0
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x451075
push edi
mov esi, 0x4f4ebb
mov edi, 0x50b2a0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0
push 0
push 0
push 0x50b2a0
mov edx, dword [0x4fd9fc]
push edx
call fcn.004864e8
push edi
mov esi, 0x50a79c
lea edi, [ebp - 0xe8]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
jmp 0x451131
cmp byte [ebp - 0x84], 0
je 0x4510e0
mov eax, dword [ebp - 0x10]
push eax
lea edx, [ebp - 0x84]
push edx
push 0x4f4ec4
push 0x50b2a0
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x4510f0
push edi
mov esi, 0x4f4ed3
mov edi, 0x50b2a0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0
push 0
push 0
push 0x50b2a0
mov edx, dword [0x4fd9fc]
push edx
call fcn.004864e8
push edi
mov esi, 0x50a79c
lea edi, [ebp - 0xe8]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
test edi, edi
je 0x451175
push 9
mov eax, dword [0x4fd9ec]
push eax
call sub.USER32.dll_ShowWindow
push 0x63
push 0
push 0
push 0
push 0
push 0
mov edx, dword [0x4fd9ec]
push edx
call sub.USER32.dll_SetWindowPos
mov ecx, dword [0x4fd9ec]
push ecx
call sub.USER32.dll_SetForegroundWindow
mov eax, dword [0x4fd9f8]
test eax, eax
je 0x451175
push eax
call sub.USER32.dll_SetFocus
mov eax, 0x8000
jmp 0x4511b1
test ebx, ebx
je 0x451186
push ebx
call sub.USER32.dll_DdeFreeDataHandle
xor eax, eax
jmp 0x4511b1
mov edx, dword [ebp + 0x10]
cmp edx, dword [0x4f4bc0]
jne 0x4511af
xor ecx, ecx
mov dword [0x4f4bc0], ecx
jmp 0x4511af
cmp dword [ebp + 0x10], 0
jne 0x4511af
cmp dword [ebp + 0x20], 0
jne 0x4511af
cmp dword [ebp + 0x24], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20