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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55b50b
mov eax, dword fs:[0]
push eax
sub esp, 0x108
push ebx
push esi
push edi
mov eax, dword [0x5b3940]
xor eax, esp
push eax
lea eax, [esp + 0x118]
mov dword fs:[0], eax
mov edi, ecx
push edi
call fcn.00451e80
mov dword [edi + 0x468], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
je 0x451069
push 0xc
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
mov ebx, eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
dec ebx
mov eax, 7
cmp eax, ebx
sbb esi, esi
inc esi
jmp 0x45106b
xor esi, esi
mov ebx, edi
call fcn.00450890
mov eax, edi
call fcn.004508d0
call fcn.00451b30
test esi, esi
je 0x45109d
call fcn.00450ab0
mov ecx, dword [esp + 0x118]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 5
mov edx, 0xf
mov ecx, 0xd
mov esi, 0x46
mov ebx, 0x1e
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], ecx
mov ecx, 0x10
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], esi
mov esi, 0x2e
mov dword [esp + 0xc0], edx
mov dword [esp + 0xcc], eax
mov eax, 0x5a
mov dword [esp + 0xd8], edx
lea edx, [esp + 0x38]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], 0xa5
mov dword [esp + 0x44], 0x1f
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 0x21
mov dword [esp + 0x60], 0x32
mov dword [esp + 0x64], 0x29
mov dword [esp + 0x70], 0x8f
mov dword [esp + 0x74], 0x23
mov dword [esp + 0x78], 0x11
mov dword [esp + 0x84], 0x26
mov dword [esp + 0x88], ecx
mov dword [esp + 0x90], 0x4b
mov dword [esp + 0x94], 0x27
mov dword [esp + 0x98], ecx
mov dword [esp + 0xa4], 0x2b
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], 0x14
mov dword [esp + 0xb4], 0x3d
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc4], 0x28
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0x2a
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0xb
jmp 0x451216
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
cmp eax, 0x3e
jbe 0x451222
mov esi, eax
jmp 0x451239
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x451237
mov esi, dword [edi + eax*4 + 0x16c]
jmp 0x451239
mov esi, ecx
mov eax, dword [edx]
cmp eax, 0x3e
ja 0x451257
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x451255
mov eax, dword [edi + eax*4 + 0x16c]
jmp 0x451257
mov eax, ecx
mov ecx, dword [esp + 0x14]
push esi
mov esi, dword [ecx + 8]
push eax
call fcn.004507c0
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
add ecx, 0x10
sub dword [esp + 0x18], 1
mov dword [edi + edx*4 + 0x16c], eax
mov dword [esp + 0x14], ecx
jne 0x451212
mov eax, 0x64
mov edx, 0x29
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xd8], edx
mov eax, 0x28
mov edx, 0x2d
mov dword [esp + 0xc4], eax
mov dword [esp + 0xcc], eax
mov eax, 0x2c
mov dword [esp + 0xe4], edx
mov dword [esp + 0xec], edx
mov edx, 0x2e
mov ecx, 0x21
mov esi, 0x1f
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xf8], ebx
mov ebx, dword [edi + 0x2e0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xdc], eax
mov eax, 0xb4
mov dword [esp + 0xf4], edx
mov dword [esp + 0xfc], edx
mov edx, 0x2f
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x32
mov dword [esp + 0x44], 0x20
mov dword [esp + 0x4c], 0xd
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], 0x23
mov dword [esp + 0x6c], 0x23
mov dword [esp + 0x70], 0x50
mov dword [esp + 0x74], 0x25
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0x25
mov dword [esp + 0x84], 0x26
mov dword [esp + 0x8c], 0x26
mov dword [esp + 0x90], 0x55
mov dword [esp + 0x94], 0x27
mov dword [esp + 0x9c], 0x27
mov dword [esp + 0xa0], 0x32
mov dword [esp + 0xa4], 0x2b
mov dword [esp + 0xac], 0x2b
mov dword [esp + 0xb4], 0x3d
mov dword [esp + 0xbc], 0x3d
mov dword [esp + 0xd0], 0x50
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], esi
mov dword [esp + 0xf0], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], eax
cmp ebx, 0xffffffff
jne 0x451461
mov ecx, dword [edi + 0x1e4]
jmp 0x451463
mov ecx, ebx
mov eax, dword [edi + 0x2a4]
cmp eax, 0xffffffff
jne 0x451474
mov eax, dword [edi + 0x1a8]
fld dword [0x58e2a4]
push ecx
fstp dword [esp]
push ecx
mov esi, eax
call fcn.0044fff0
test eax, eax
je 0x4514bf
cmp ebx, 0xffffffff
jne 0x451495
mov ebx, dword [edi + 0x1e4]
mov ecx, dword [edi + 0x2a4]
cmp ecx, 0xffffffff
jne 0x4514a6
mov ecx, dword [edi + 0x1a8]
fld dword [0x58e2a4]
push ecx
mov eax, ebx
fstp dword [esp]
mov ebx, ecx
call fcn.00450500
mov dword [edi + 0x1e4], eax
lea edx, [esp + 0x38]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], 0xe
jmp 0x4514d5
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
cmp eax, 0x3e
ja 0x4514f4
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x4514f2
mov eax, dword [edi + eax*4 + 0x16c]
jmp 0x4514f4
mov eax, ecx
mov ebx, dword [edx]
cmp ebx, 0x3e
jbe 0x4514ff
mov esi, ebx
jmp 0x451512
mov esi, dword [edi + ebx*4 + 0x268]
cmp esi, 0xffffffff
jne 0x451512
mov esi, dword [edi + ebx*4 + 0x16c]
mov ecx, dword [esp + 0x14]
fild dword [ecx + 8]
push ecx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
push eax
call fcn.0044fff0
test eax, eax
jne 0x451586
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
cmp eax, 0x3e
ja 0x451552
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x451550
mov eax, dword [edi + eax*4 + 0x16c]
jmp 0x451552
mov eax, ecx
cmp ebx, 0x3e
ja 0x45156e
mov ecx, dword [edi + ebx*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x45156c
mov ebx, dword [edi + ebx*4 + 0x16c]
jmp 0x45156e
mov ebx, ecx
fld dword [esp + 0x18]
push ecx
fstp dword [esp]
push ebx
call fcn.00450090
mov edx, dword [esi - 4]
mov dword [edi + edx*4 + 0x16c], eax
add dword [esp + 0x14], 0x10
sub dword [esp + 0x20], 1
jne 0x4514d1
mov eax, dword [edi + 0x2f4]
cmp eax, 0xffffffff
jne 0x4515a7
mov eax, dword [edi + 0x1f8]
mov ebx, dword [edi + 0x30c]
cmp ebx, 0xffffffff
jne 0x4515ba
mov esi, dword [edi + 0x210]
jmp 0x4515bc
mov esi, ebx
fld dword [0x58e2a0]
push ecx
fstp dword [esp]
push eax
call fcn.0044fff0
test eax, eax
je 0x451601
mov eax, dword [edi + 0x2f4]
cmp eax, 0xffffffff
jne 0x4515e1
mov eax, dword [edi + 0x1f8]
cmp ebx, 0xffffffff
jne 0x4515ec
mov ebx, dword [edi + 0x210]
fld dword [0x58e2a0]
push ecx
fstp dword [esp]
call fcn.00450500
mov dword [edi + 0x1f8], eax
mov esi, dword [edi + 0x27c]
cmp esi, 0xffffffff
jne 0x451618
mov eax, dword [edi + 0x180]
mov dword [esp + 0x1c], eax
jmp 0x45161c
mov dword [esp + 0x1c], esi
mov ebx, dword [edi + 0x29c]
cmp ebx, 0xffffffff
jne 0x451633
mov ecx, dword [edi + 0x1a0]
mov dword [esp + 0x10], ecx
jmp 0x451637
mov dword [esp + 0x10], ebx
mov eax, dword [edi + 0x2e0]
cmp eax, 0xffffffff
jne 0x45164e
mov edx, dword [edi + 0x1e4]
mov dword [esp + 0x24], edx
jmp 0x451652
mov dword [esp + 0x24], eax
cmp esi, 0xffffffff
jne 0x451663
mov ecx, dword [edi + 0x180]
mov dword [esp + 0x14], ecx
jmp 0x451667
mov dword [esp + 0x14], esi
cmp ebx, 0xffffffff
jne 0x451678
mov edx, dword [edi + 0x1a0]
mov dword [esp + 0x18], edx
jmp 0x45167c
mov dword [esp + 0x18], ebx
cmp eax, 0xffffffff
jne 0x45168d
mov ecx, dword [edi + 0x1e4]
mov dword [esp + 0x20], ecx
jmp 0x451691
mov dword [esp + 0x20], eax
cmp esi, 0xffffffff
jne 0x45169c
mov esi, dword [edi + 0x180]
cmp ebx, 0xffffffff
jne 0x4516a7
mov ebx, dword [edi + 0x1a0]
cmp eax, 0xffffffff
jne 0x4516b2
mov eax, dword [edi + 0x1e4]
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, esi
shr edx, 0x10
movzx eax, dl
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
shr ebx, 0x10
movzx eax, bl
lea esi, [eax + eax*4]
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx ebx, cl
mov ecx, dword [esp + 0x20]
shr ecx, 8
movzx ecx, cl
imul ecx, ecx, 0x32
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
mov ecx, eax
shr edx, 8
movzx eax, dl
lea esi, [eax + eax*4]
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
add cl, al
shr edx, 8
movzx eax, dl
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx eax, byte [esp + 0x1c]
movzx ecx, cl
shl ebx, 8
or ebx, ecx
lea ecx, [eax + eax*4]
add ecx, ecx
shl ebx, 8
add ecx, ecx
movzx esi, byte [esp + 0x24]
add ecx, ecx
imul esi, esi, 0x32
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx eax, byte [esp + 0x10]
lea esi, [eax + eax*4]
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx ecx, cl
or ebx, ecx
mov dword [edi + 0x1fc], ebx
mov eax, dword [edi + 0x2a4]
cmp eax, 0xffffffff
jne 0x4517fb
mov eax, dword [edi + 0x1a8]
mov edx, eax
shr edx, 8
mov ecx, eax
shr ecx, 0x10
movzx esi, al
movzx ebx, dl
cmp esi, ebx
movzx edx, cl
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], edx
mov ecx, esi
jg 0x451826
mov ecx, ebx
cmp ecx, edx
jle 0x451836
cmp esi, ebx
jle 0x451832
mov ecx, esi
jmp 0x451838
mov ecx, ebx
jmp 0x451838
mov ecx, edx
test ecx, ecx
jne 0x451848
mov dword [edi + 0x22c], 0x232323
jmp 0x4518a6
mov eax, 0xff
sub eax, ecx
cmp eax, 0x23
mov esi, 0x23
jg 0x45185b
mov esi, eax
add esi, ecx
mov eax, esi
imul eax, edx
cdq
idiv ecx
movzx eax, al
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, esi
imul eax, ebx
cdq
idiv ecx
movzx edx, al
mov eax, dword [esp + 0x1c]
or eax, edx
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, esi
mov esi, dword [esp + 0x24]
imul eax, esi
cdq
idiv ecx
mov ecx, dword [esp + 0x1c]
movzx eax, al
or ecx, eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x22c], ecx
mov edx, dword [edi + 0x2a8]
cmp edx, 0xffffffff
jne 0x4518b7
mov edx, dword [edi + 0x1ac]
movzx ecx, dl
mov ebx, edx
shr edx, 0x10
shr ebx, 8
movzx edx, dl
movzx ebx, bl
cmp ecx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
mov edx, ecx
jg 0x4518d8
mov edx, ebx
cmp edx, dword [esp + 0x14]
jle 0x4518e6
cmp ecx, ebx
jg 0x4518ea
mov ecx, ebx
jmp 0x4518ea
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x4518fa
mov dword [edi + 0x230], 0x7f7f7f
jmp 0x45195e
test ecx, ecx
jne 0x451906
mov dword [edi + 0x230], ecx
jmp 0x45195e
xor edx, edx
lea eax, [ecx - 0x2b]
test eax, eax
setl dl
dec edx
and edx, eax
mov esi, edx
mov eax, esi
imul eax, dword [esp + 0x14]
cdq
idiv ecx
movzx eax, al
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, esi
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x10]
movzx eax, al
or edx, eax
mov eax, esi
imul eax, dword [esp + 0x1c]
shl edx, 8
mov dword [esp + 0x10], edx
cdq
idiv ecx
mov esi, dword [esp + 0x24]
movzx ecx, al
mov eax, dword [esp + 0x10]
or eax, ecx
mov dword [edi + 0x230], eax
mov ecx, dword [edi + 0x1e8]
fnstcw word [esp + 0x14]
mov edx, ecx
shr edx, 0x10
movzx eax, dl
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x14]
fild dword [esp + 0x10]
fld qword [0x58e298]
or eax, 0xc00
mov dword [esp + 0x10], eax
fmul st(1), st(0)
mov eax, ecx
fxch st(1)
shr eax, 8
fldcw word [esp + 0x10]
movzx eax, al
movzx ecx, cl
fistp dword [esp + 0x10]
mov dl, byte [esp + 0x10]
mov dword [esp + 0x10], eax
movzx edx, dl
fldcw word [esp + 0x14]
shl edx, 8
fild dword [esp + 0x10]
fnstcw word [esp + 0x14]
fmul st(1)
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx eax, byte [esp + 0x10]
or edx, eax
mov dword [esp + 0x10], ecx
fldcw word [esp + 0x14]
shl edx, 8
fild dword [esp + 0x10]
fnstcw word [esp + 0x14]
fmulp st(1)
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx eax, byte [esp + 0x10]
movzx ecx, al
fldcw word [esp + 0x14]
or edx, ecx
lea eax, [esi + 0xf]
cmp eax, 0xff
mov dword [edi + 0x1f4], edx
jl 0x451a2a
mov eax, 0xff
mov ecx, dword [esp + 0x20]
add ecx, 0xf
cmp ecx, 0xff
mov edx, ecx
jl 0x451a40
mov edx, 0xff
mov ecx, dword [esp + 0x18]
add ecx, 0xf
cmp ecx, 0xff
jl 0x451a54
mov ecx, 0xff
movzx ecx, cl
shl ecx, 8
movzx edx, dl
or ecx, edx
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [edi + 0x1c4], ecx
mov eax, dword [edi + 0x2e0]
cmp eax, 0xffffffff
jne 0x451a7e
mov eax, dword [edi + 0x1e4]
mov dword [edi + 0x240], eax
mov eax, dword [edi + 0x308]
cmp eax, 0xffffffff
jne 0x451a95
mov eax, dword [edi + 0x20c]
mov ecx, dword [edi + 0x20c]
mov dword [edi + 0x254], eax
mov dword [edi + 0x25c], ecx
call fcn.00450ab0
mov ebx, vtable.CWizWinThemeWrapper.0
xor esi, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 1
push 0x57ccc0
push esi
lea ecx, [esp + 0x30]
mov dword [esp + 0x128], esi
call fcn.0041f2e0
lea edx, [esp + 0x28]
push edx
call fcn.0041f170
test eax, eax
je 0x451afe
add edi, 0x250
push edi
push 0xed9
push esi
push esi
lea ecx, [esp + 0x38]
call fcn.0041f010
lea eax, [esp + 0x28]
mov dword [esp + 0x120], 0xffffffff
push eax
mov dword [esp + 0x2c], ebx
call fcn.0041edd0
mov ecx, dword [esp + 0x118]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret