Function at 0x465010
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x52574b
push eax
mov dword fs:[0], esp
sub esp, 0x100
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.00463830
mov ebp, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esi + 0x460], eax
call ebp
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
test edi, edi
je 0x465076
push 0xc
push edi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push edi
mov ebx, eax
call ebp
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
test ebx, ebx
jle 0x465076
cmp ebx, 8
jg 0x465076
mov edi, 1
jmp 0x465078
xor edi, edi
mov ecx, esi
call fcn.00463520
mov ecx, esi
call fcn.00463570
call fcn.00463b80
test edi, edi
je 0x46509b
mov ecx, esi
call fcn.00464ae0
jmp 0x465a56
mov eax, 5
mov ebx, 0x46
mov edx, 0xd
mov ecx, 0xf
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x9c], ebx
mov ebx, 0x2e
mov edi, 0x1e
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], edx
mov edx, 0x10
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xc8], eax
mov eax, 0x5a
mov ebp, 0x21
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 0xa5
mov dword [esp + 0x40], 0x1f
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x5c], 0x32
mov dword [esp + 0x60], 0x29
mov dword [esp + 0x64], ecx
mov dword [esp + 0x6c], 0x8f
mov dword [esp + 0x70], 0x23
mov dword [esp + 0x74], 0x11
mov dword [esp + 0x80], 0x26
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], 0x4b
mov dword [esp + 0x90], 0x27
mov dword [esp + 0x94], edx
mov dword [esp + 0xa0], 0x2b
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], 0x14
mov dword [esp + 0xb0], 0x3d
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], 0x28
mov dword [esp + 0xc4], edx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], 0x2a
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], eax
lea ebx, [esp + 0x34]
mov dword [esp + 0x14], 0xb
mov eax, dword [ebx + 4]
cmp eax, 0x3e
jbe 0x465214
mov edx, eax
jmp 0x46522b
mov ecx, dword [esi + eax*4 + 0x260]
cmp ecx, 0xffffffff
jne 0x465229
mov edx, dword [esi + eax*4 + 0x164]
jmp 0x46522b
mov edx, ecx
mov eax, dword [ebx]
cmp eax, 0x3e
ja 0x465249
mov ecx, dword [esi + eax*4 + 0x260]
cmp ecx, 0xffffffff
jne 0x465247
mov eax, dword [esi + eax*4 + 0x164]
jmp 0x465249
mov eax, ecx
mov ecx, dword [ebx + 8]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00463450
mov edx, dword [ebx - 4]
mov dword [esi + edx*4 + 0x164], eax
mov eax, dword [esp + 0x14]
add ebx, 0x10
dec eax
mov dword [esp + 0x14], eax
jne 0x465208
mov ecx, 0x23
mov dword [esp + 0x60], ecx
mov dword [esp + 0x68], ecx
mov ecx, 0x25
mov dword [esp + 0x70], ecx
mov dword [esp + 0x78], ecx
mov ecx, 0x26
mov dword [esp + 0x80], ecx
mov dword [esp + 0x88], ecx
mov ecx, 0x27
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], ecx
mov eax, 0x1f
mov ecx, 0x2b
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov eax, 0x64
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa8], ecx
mov ecx, 0x3d
mov dword [esp + 0x4c], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
mov eax, 0x28
mov ecx, 0x2d
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc8], eax
mov eax, 0x2c
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe8], ecx
mov ecx, 0x2e
mov dword [esp + 0x34], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], edi
mov ebx, 0x29
mov dword [esp + 0x84], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xc4], edi
mov dword [esp + 0xf4], edi
mov edi, dword [esi + 0x2d8]
cmp edi, 0xffffffff
mov edx, 0x50
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], eax
mov eax, 0xb4
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf8], ecx
mov ecx, 0x2f
mov dword [esp + 0x3c], 0x32
mov dword [esp + 0x40], 0x20
mov dword [esp + 0x48], 0xd
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x8c], 0x55
mov dword [esp + 0x9c], 0x32
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe4], 0x1f
mov dword [esp + 0xec], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], ebp
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], eax
jne 0x465435
mov ecx, dword [esi + 0x1dc]
jmp 0x465437
mov ecx, edi
mov ebx, dword [esi + 0x29c]
cmp ebx, 0xffffffff
jne 0x46544a
mov eax, dword [esi + 0x1a0]
jmp 0x46544c
mov eax, ebx
push 0x420c0000
push 1
push ecx
push eax
mov ecx, esi
call fcn.004641a0
test eax, eax
je 0x46548e
cmp edi, 0xffffffff
jne 0x46546b
mov edi, dword [esi + 0x1dc]
cmp ebx, 0xffffffff
jne 0x465478
mov eax, dword [esi + 0x1a0]
jmp 0x46547a
mov eax, ebx
push 0x420c0000
push edi
push eax
mov ecx, esi
call fcn.00464800
mov dword [esi + 0x1dc], eax
lea edx, [esp + 0x34]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], 0xe
mov edi, edi
mov ebx, dword [edx + 4]
cmp ebx, 0x3e
jbe 0x4654ac
mov ecx, ebx
jmp 0x4654c3
mov eax, dword [esi + ebx*4 + 0x260]
cmp eax, 0xffffffff
jne 0x4654c1
mov ecx, dword [esi + ebx*4 + 0x164]
jmp 0x4654c3
mov ecx, eax
mov edi, dword [edx]
cmp edi, 0x3e
jbe 0x4654ce
mov eax, edi
jmp 0x4654e1
mov eax, dword [esi + edi*4 + 0x260]
cmp eax, 0xffffffff
jne 0x4654e1
mov eax, dword [esi + edi*4 + 0x164]
mov edx, dword [esp + 0x14]
fild dword [edx + 8]
fstp dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
push ebp
push 1
push ecx
push eax
mov ecx, esi
call fcn.004641a0
test eax, eax
jne 0x465550
cmp ebx, 0x3e
ja 0x46551c
mov eax, dword [esi + ebx*4 + 0x260]
cmp eax, 0xffffffff
jne 0x46551a
mov ebx, dword [esi + ebx*4 + 0x164]
jmp 0x46551c
mov ebx, eax
cmp edi, 0x3e
ja 0x465538
mov eax, dword [esi + edi*4 + 0x260]
cmp eax, 0xffffffff
jne 0x465536
mov edi, dword [esi + edi*4 + 0x164]
jmp 0x465538
mov edi, eax
push ebp
push ebx
push edi
mov ecx, esi
call fcn.00464250
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
mov dword [esi + edx*4 + 0x164], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add edx, 0x10
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
jne 0x4654a0
mov ebx, dword [esi + 0x2ec]
cmp ebx, 0xffffffff
jne 0x46557d
mov ecx, dword [esi + 0x1f0]
jmp 0x46557f
mov ecx, ebx
mov edi, dword [esi + 0x304]
cmp edi, 0xffffffff
jne 0x465592
mov eax, dword [esi + 0x208]
jmp 0x465594
mov eax, edi
push 0x43110000
push 1
push ecx
push eax
mov ecx, esi
call fcn.004641a0
test eax, eax
je 0x4655da
cmp ebx, 0xffffffff
jne 0x4655b5
mov ecx, dword [esi + 0x1f0]
jmp 0x4655b7
mov ecx, ebx
cmp edi, 0xffffffff
jne 0x4655c4
mov eax, dword [esi + 0x208]
jmp 0x4655c6
mov eax, edi
push 0x43110000
push ecx
push eax
mov ecx, esi
call fcn.00464800
mov dword [esi + 0x1f0], eax
mov ebp, dword [esi + 0x274]
cmp ebp, 0xffffffff
jne 0x4655f1
mov eax, dword [esi + 0x178]
mov dword [esp + 0x18], eax
jmp 0x4655f5
mov dword [esp + 0x18], ebp
mov edi, dword [esi + 0x294]
cmp edi, 0xffffffff
jne 0x46560c
mov ecx, dword [esi + 0x198]
mov dword [esp + 0x20], ecx
jmp 0x465610
mov dword [esp + 0x20], edi
mov eax, dword [esi + 0x2d8]
cmp eax, 0xffffffff
jne 0x465627
mov edx, dword [esi + 0x1dc]
mov dword [esp + 0x24], edx
jmp 0x46562b
mov dword [esp + 0x24], eax
cmp ebp, 0xffffffff
jne 0x46563c
mov ecx, dword [esi + 0x178]
mov dword [esp + 0x14], ecx
jmp 0x465640
mov dword [esp + 0x14], ebp
cmp edi, 0xffffffff
jne 0x465651
mov edx, dword [esi + 0x198]
mov dword [esp + 0x1c], edx
jmp 0x465655
mov dword [esp + 0x1c], edi
cmp eax, 0xffffffff
jne 0x465662
mov ebx, dword [esi + 0x1dc]
jmp 0x465664
mov ebx, eax
cmp ebp, 0xffffffff
jne 0x46566f
mov ebp, dword [esi + 0x178]
cmp edi, 0xffffffff
jne 0x46567a
mov edi, dword [esi + 0x198]
cmp eax, 0xffffffff
jne 0x465685
mov eax, dword [esi + 0x1dc]
shr eax, 0x10
movzx ecx, al
imul ecx, ecx, 0x32
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
mov edx, edi
shr edx, 0x10
movzx eax, dl
lea edi, [eax + eax*4]
shl edi, 1
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
mov edx, ebp
shr edx, 0x10
movzx eax, dl
lea edi, [eax + eax*4]
shl edi, 3
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
xor eax, eax
mov ah, cl
movzx edi, bh
imul edi, edi, 0x32
mov dword [esp + 0x10], eax
mov eax, 0x51eb851f
imul edi
movzx eax, byte [esp + 0x1d]
lea edi, [eax + eax*4]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
shl edi, 1
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx eax, byte [esp + 0x15]
lea edi, [eax + eax*4]
shl edi, 3
mov eax, 0x51eb851f
imul edi
movzx edi, byte [esp + 0x24]
sar edx, 5
imul edi, edi, 0x32
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
mov eax, dword [esp + 0x10]
mov al, cl
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, 0x51eb851f
imul edi
movzx eax, byte [esp + 0x20]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
lea edi, [eax + eax*4]
add ecx, edx
shl edi, 1
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx eax, byte [esp + 0x18]
lea edi, [eax + eax*4]
shl edi, 3
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
mov eax, dword [esp + 0x10]
movzx ecx, cl
or eax, ecx
mov dword [esi + 0x1f4], eax
mov eax, dword [esi + 0x29c]
cmp eax, 0xffffffff
jne 0x4657c3
mov eax, dword [esi + 0x1a0]
mov dword [esp + 0x14], eax
jmp 0x4657c7
mov dword [esp + 0x14], eax
movzx ecx, al
movzx ebx, ah
shr eax, 0x10
cmp ecx, ebx
movzx edx, al
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edx
mov eax, ecx
jg 0x4657e7
mov eax, ebx
cmp eax, edx
jle 0x4657f7
cmp ecx, ebx
jle 0x4657f3
mov edi, ecx
jmp 0x4657f9
mov edi, ebx
jmp 0x4657f9
mov edi, edx
test edi, edi
jne 0x465809
mov dword [esi + 0x224], 0x232323
jmp 0x465859
mov eax, 0xff
sub eax, edi
cmp eax, 0x23
jle 0x46581a
mov eax, 0x23
lea ebp, [eax + edi]
mov eax, ebp
imul eax, edx
cdq
idiv edi
xor edx, edx
mov dh, al
mov eax, ebp
imul eax, ebx
mov dword [esp + 0x10], edx
cdq
idiv edi
mov edx, dword [esp + 0x10]
mov dl, al
mov eax, ebp
imul eax, ecx
shl edx, 8
mov dword [esp + 0x10], edx
cdq
idiv edi
movzx edx, al
mov eax, dword [esp + 0x10]
or eax, edx
mov dword [esi + 0x224], eax
mov eax, dword [esi + 0x2a0]
cmp eax, 0xffffffff
jne 0x46586a
mov eax, dword [esi + 0x1a4]
movzx ecx, al
movzx ebx, ah
shr eax, 0x10
cmp ecx, ebx
movzx edi, al
mov dword [esp + 0x10], edi
mov eax, ecx
jg 0x465882
mov eax, ebx
cmp eax, edi
jle 0x46588e
cmp ecx, ebx
mov edi, ecx
jg 0x46588e
mov edi, ebx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4658a2
mov dword [esi + 0x228], 0x7f7f7f
jmp 0x4658f5
test edi, edi
jne 0x4658ae
mov dword [esi + 0x228], edi
jmp 0x4658f5
xor edx, edx
lea eax, [edi - 0x2b]
test eax, eax
setl dl
dec edx
and edx, eax
mov ebp, edx
mov eax, ebp
imul eax, dword [esp + 0x10]
cdq
idiv edi
xor edx, edx
mov dh, al
mov eax, ebp
imul eax, ebx
mov dword [esp + 0x10], edx
cdq
idiv edi
mov edx, dword [esp + 0x10]
mov dl, al
mov eax, ebp
imul eax, ecx
shl edx, 8
mov ecx, edx
cdq
idiv edi
movzx eax, al
or ecx, eax
mov dword [esi + 0x228], ecx
mov ebx, dword [esi + 0x1e0]
mov ecx, ebx
shr ecx, 0x10
movzx edx, cl
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x54cfe0]
call fcn.0042bf20
xor ecx, ecx
mov ch, al
movzx eax, bh
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul qword [0x54cfe0]
call fcn.0042bf20
mov ecx, dword [esp + 0x10]
movzx edx, bl
mov cl, al
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x54cfe0]
shl ecx, 8
mov dword [esp + 0x10], ecx
call fcn.0042bf20
mov ecx, dword [esp + 0x10]
movzx eax, al
or ecx, eax
mov eax, dword [esp + 0x18]
add eax, 0xf
cmp eax, 0xff
mov dword [esi + 0x1ec], ecx
jl 0x465979
mov eax, 0xff
mov ecx, dword [esp + 0x20]
add ecx, 0xf
cmp ecx, 0xff
mov edx, ecx
jl 0x46598f
mov edx, 0xff
mov ecx, dword [esp + 0x24]
add ecx, 0xf
cmp ecx, 0xff
jl 0x4659a3
mov ecx, 0xff
xor ebx, ebx
mov bh, cl
movzx ecx, al
mov bl, dl
shl ebx, 8
or ebx, ecx
mov dword [esi + 0x1bc], ebx
mov eax, dword [esi + 0x2d8]
cmp eax, 0xffffffff
jne 0x4659c8
mov eax, dword [esi + 0x1dc]
mov dword [esi + 0x238], eax
mov eax, dword [esi + 0x300]
cmp eax, 0xffffffff
jne 0x4659df
mov eax, dword [esi + 0x204]
mov edx, dword [esi + 0x204]
mov ecx, esi
mov dword [esi + 0x24c], eax
mov dword [esi + 0x254], edx
call fcn.00464ae0
lea ecx, [esp + 0x28]
call fcn.0047b820
push str.TREEVIEW
push 0
lea ecx, [esp + 0x30]
mov dword [esp + 0x120], 0
call fcn.0047bca0
lea ecx, [esp + 0x28]
call fcn.0047bb60
test eax, eax
je 0x465a42
add esi, 0x248
push esi
push 0xed9
push 0
push 0
lea ecx, [esp + 0x38]
call fcn.0047ba30
lea ecx, [esp + 0x28]
mov dword [esp + 0x118], 0xffffffff
call fcn.0047c020
mov ecx, dword [esp + 0x110]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10c
ret