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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
mov eax, dword [0x460ec018]
xor eax, esp
mov dword [esp + 0xb0], eax
mov ecx, dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
xor esi, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], esi
call fcn.460e76e5
mov ebx, eax
mov eax, dword [ebp + 0xc]
mov ecx, eax
mov dword [esp + 0x24], eax
sub ecx, 1
je 0x460abe0d
sub ecx, 1
je 0x460abdfb
sub ecx, 0x7f
jne 0x460abe2c
mov ecx, dword [esp + 0x18]
mov edx, edi
call fcn.460ad048
jmp 0x460acfa7
test ebx, ebx
je 0x460abe06
mov ecx, ebx
call fcn.460ad0d2
xor eax, eax
jmp 0x460acfa7
test ebx, ebx
jne 0x460abe45
mov ecx, dword [esp + 0x18]
mov edx, edi
call fcn.460ad048
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.460e76e5
mov ebx, eax
mov eax, dword [ebp + 0xc]
test ebx, ebx
jne 0x460abe45
mov ecx, dword [esp + 0x18]
mov edx, eax
push edi
push dword [esp + 0x14]
call fcn.460e73ac
jmp 0x460acfa7
cmp dword [ebx + 0x10], esi
je 0x460abe06
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x460ed508]
call esi
mov edx, dword [ebp + 0xc]
mov eax, 0x18a
cmp edx, eax
ja 0x460ac8b9
je 0x460ac894
cmp edx, 0x7d
ja 0x460ac344
je 0x460ac30c
cmp edx, 0x14
ja 0x460ac16f
je 0x460ac25b
cmp edx, 0xa
ja 0x460ac009
je 0x460abfb3
sub edx, 1
je 0x460abf9c
sub edx, 4
je 0x460abf43
dec edx
sub edx, 1
je 0x460abf16
sub edx, 1
jne case.0x460acca2.517
xor eax, eax
xor esi, esi
inc eax
mov ecx, ebx
push eax
mov dword [esp + 0x18], eax
push dword [ebx + 0xa4]
and dword [ebx + 0x5c], 0xffffff7f
push esi
call fcn.460ae3ab
mov ecx, ebx
call fcn.460ae55a
xor eax, eax
cmp dword [ebx + 0x60], 8
mov word [ebx + 0x54], ax
jne 0x460abefa
push esi
push 3
mov ecx, ebx
call fcn.460b0244
push esi
push 5
mov eax, dword [ebx]
mov esi, dword [eax + 0x98]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp 0x460acf93
mov dword [esp + 0x14], 1
or dword [ebx + 0x5c], 0x80
mov eax, dword [ebx + 0xa4]
test eax, eax
jns 0x460abf32
push 0xfffffffffffffffe
pop eax
xor esi, esi
mov ecx, ebx
push esi
push eax
push esi
call fcn.460ae3ab
push esi
push 4
jmp 0x460abefd
mov eax, edi
movzx ecx, di
shr eax, 0x10
push eax
mov dword [esp + 0x30], ecx
push ecx
mov ecx, ebx
call fcn.460ad946
test eax, eax
jne 0x460acf93
mov edi, dword [ebx + 0x10]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x20]
mov esi, dword [edi]
push dword [esp + 0x18]
push 5
mov ecx, dword [esi + 0xc]
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0xc]
push ecx
push dword [esp + 0x30]
push ecx
push dword [esp + 0x24]
mov ecx, ebx
call fcn.460a6998
mov dword [esp + 0x14], eax
jmp 0x460acf93
mov eax, dword [ebx]
push edi
mov esi, dword [eax + 0xec]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp 0x460abf93
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [ebx + 0x20]
test edx, edx
sete cl
shr eax, 0xb
and eax, 1
cmp eax, ecx
je 0x460abfe7
push 1
push 0
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [esp + 0x10]
mov ecx, ebx
call fcn.460a73e6
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 0x20]
neg edx
sbb edx, edx
and eax, 0xfffff7ff
and edx, 0xfffff800
add edx, 0x800
or edx, eax
mov dword [ebx + 0x20], edx
jmp 0x460acdd8
sub edx, 0xd
je 0x460ac139
sub edx, 1
je 0x460ac11d
sub edx, 1
jne case.0x460acca2.517
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x78]
push eax
push esi
call dword [sym.imp.USER32.dll_BeginPaint]
mov edi, eax
lea eax, [esp + 0x58]
push eax
push esi
mov dword [esp + 0x28], edi
call dword [sym.imp.USER32.dll_GetClientRect]
cmp dword [ebx + 0x40], 0
je 0x460ac069
push 1
push dword [ebx + 0x40]
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
push edi
mov dword [esp + 0x2c], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
push edi
call dword [sym.imp.GDI32.dll_SaveDC]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push edi
call dword [sym.imp.GDI32.dll_IntersectClipRect]
test byte [ebx + 0x5c], 1
jne 0x460ace00
mov edi, dword [ebx + 0x10]
lea ecx, [esp + 0x80]
xor eax, eax
push eax
push eax
mov esi, dword [edi]
push eax
push ecx
push eax
lea ecx, [esp + 0x6c]
push ecx
mov ecx, dword [esi + 0x10]
push eax
push dword [esp + 0x3c]
push eax
push eax
push 0xffffffffffffffff
push 1
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0x10]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
test eax, eax
je 0x460ac0d8
push 1
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
mov eax, dword [ebx]
mov esi, dword [eax + 0xd4]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
cmp eax, 1
jne 0x460acf1a
cmp dword [0x460ec728], 4
jae 0x460acf1a
cmp dword [ebx + 0x60], 8
je 0x460acf1a
push edi
push dword [esp + 0x1c]
mov ecx, ebx
call fcn.460a6850
jmp 0x460acf1a
cmp dword [0x460ec72c], 1
je 0x460ac133
test dword [ebx + 0x20], 0x40000
je case.0x460acca2.517
lea eax, [esp + 0x3c]
jmp 0x460ac153
cmp dword [0x460ec72c], 1
je 0x460ac14f
test dword [ebx + 0x20], 0x40000
je case.0x460acca2.517
lea eax, [esp + 0x44]
push 0
push eax
push edi
lea edx, [esp + 0x1c]
lea ecx, [ebp + 0xc]
call fcn.460e3a0d
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x24], esi
jmp case.0x460acca2.517
sub edx, 0x15
je 0x460ac2f3
sub edx, 3
je 0x460ac268
dec edx
sub edx, 1
je 0x460ac2f3
sub edx, 6
je 0x460ac23c
sub edx, 0x1d
je 0x460ac1fb
sub edx, 9
je 0x460ac1ac
sub edx, 0x36
je 0x460acdd8
jmp case.0x460acca2.517
push edi
push dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov ecx, edi
push 0x46
pop edx
call fcn.460e73ac
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
mov esi, dword [eax + 0xd4]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
cmp eax, 1
jne 0x460acf93
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x460acf93
mov ecx, edi
call fcn.460a67e6
jmp 0x460acf93
mov esi, dword [ebx]
lea eax, [esp + 0x30]
push eax
push 0x46085100
push ebx
mov ecx, dword [esi]
call dword [0x460ed508]
call dword [esi]
push dword [esp + 0x30]
mov edx, dword [esp + 0x14]
call fcn.460e4dcc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x460ed508]
call esi
jmp 0x460acf93
mov esi, dword [ebx]
mov edx, 0x7f00
push 0
xor ecx, ecx
call fcn.460e7740
mov ecx, dword [esi + 0x4c]
push eax
call dword [0x460ed508]
mov ecx, ebx
call dword [esi + 0x4c]
mov dword [esp + 0x14], 1
jmp 0x460acf93
cmp dword [ebx + 0x98], 0
je 0x460ac277
cmp dword [ebx + 0x60], 8
jne 0x460ac2e3
cmp dword [esp + 0x10], 1
jne 0x460ac2e3
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x1c]
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [esp + 0x64]
or dword [ebx + 0x20], 0x200
mov ecx, ebx
push dword [esp + 0x64]
call fcn.460ad946
cmp dword [ebx + 0x60], 8
jne 0x460ac2e3
mov edi, dword [ebx + 0x10]
xor ecx, ecx
movzx edx, word [esp + 0x64]
movzx eax, word [esp + 0x60]
push ecx
mov esi, dword [edi]
shl edx, 0x10
or edx, eax
push edx
push ecx
mov ecx, dword [esi + 0xc]
push 5
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0xc]
push ecx
push dword [esp + 0x64]
push ecx
push dword [esp + 0x24]
mov ecx, ebx
call fcn.460a6998
push dword [esp + 0x10]
mov ecx, ebx
call fcn.460a6a92
jmp 0x460acf93
mov eax, dword [ebx]
mov esi, dword [eax + 0xe0]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp case.0x460acca2.517
xor ecx, ecx
inc ecx
cmp dword [esp + 0x10], 0xffffffec
mov dword [esp + 0x14], ecx
jne 0x460acf93
mov eax, dword [ebx + 0x1c]
mov edx, dword [edi + 4]
xor eax, edx
test al, 0x20
je 0x460acf93
push ecx
mov ecx, dword [ebx + 0x10]
mov dword [ebx + 0x1c], edx
call fcn.460bb7b0
and dword [esp + 0x14], 0
jmp 0x460acf93
mov eax, 0x182
cmp edx, eax
ja 0x460ac57f
je 0x460ac56b
add eax, 0xffffff91
cmp edx, eax
ja 0x460ac4fb
je 0x460ac4e2
mov eax, 0x85
sub edx, eax
je 0x460ac45d
dec edx
sub edx, 1
je 0x460ac44c
sub edx, 0x79
je 0x460ac437
dec edx
sub edx, 1
jne case.0x460acca2.517
cmp dword [0x460ec72c], 1
je 0x460ac3a4
test dword [ebx + 0x20], 0x40000
je 0x460ac419
mov eax, dword [ebx + 0x20]
lea edx, [esp + 0x10]
shr eax, 0x11
lea ecx, [ebp + 0xc]
and al, 1
mov byte [esp + 0x20], al
lea eax, [esp + 0x20]
push 0
push eax
push edi
call fcn.460e3a0d
cmp byte [esp + 0x21], 0
je 0x460ac3e2
or dword [ebx + 0x20], 0x20000
mov eax, dword [esp + 0x10]
shl eax, 8
mov word [ebx + 0x46], ax
jmp 0x460acf93
cmp byte [esp + 0x22], 0
je 0x460ac40b
movzx eax, word [ebx + 0x46]
or dword [esp + 0x10], eax
and dword [ebx + 0x20], 0xfffdffff
xor eax, eax
mov word [ebx + 0x46], ax
mov dword [esp + 0x24], 0x286
jmp case.0x460acca2.517
cmp byte [esp + 0x23], 0
jne 0x460ac3fe
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [ebx]
push edi
push dword [esp + 0x14]
mov esi, dword [eax + 0xdc]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp case.0x460acca2.516
movzx eax, word [esp + 0x10]
push 0
push ecx
push eax
mov ecx, ebx
call fcn.460af534
jmp 0x460acf93
or dword [ebx + 0x20], 4
or dword [esp + 0x14], 0x81
jmp 0x460acf93
push edi
push dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov edx, eax
mov ecx, edi
call fcn.460e73ac
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
mov esi, dword [eax + 0xe0]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
mov eax, dword [ebx]
mov esi, dword [eax + 0xd4]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
cmp eax, 1
jne 0x460acf93
cmp dword [0x460ec728], 4
jae 0x460acf93
cmp dword [ebx + 0x60], 8
je 0x460acf93
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
je 0x460acf93
push esi
push edi
mov ecx, ebx
call fcn.460a6850
push esi
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x460acf93
push ecx
push dword [esp + 0x14]
mov ecx, ebx
call fcn.460af928
test eax, eax
jne case.0x460acca2.517
jmp 0x460acf93
sub edx, 0x115
je 0x460ac549
sub edx, 0x6b
je 0x460ac53d
sub edx, 1
jne case.0x460acca2.517
or dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x10]
cmp eax, dword [ebx + 0x9c]
jbe 0x460ac52f
cmp eax, 0xffffffff
je 0x460ac52f
test eax, eax
jne 0x460acf93
push edi
push eax
mov ecx, ebx
call fcn.460b0608
jmp 0x460abf93
mov eax, dword [ebx + 0x5c]
shr eax, 1
not eax
or eax, 0xfffffffe
jmp 0x460ac52f
mov eax, dword [ebx + 0x9c]
cmp eax, dword [ebx + 0x98]
jle 0x460acf93
push dword [esp + 0x10]
mov ecx, ebx
call fcn.460af9c1
jmp 0x460acf93
push dword [esp + 0x10]
push dword [esp + 0x14]
mov ecx, ebx
call fcn.460b0580
jmp 0x460abf93
sub edx, 0x183
je 0x460ac83a
sub edx, 1
je 0x460ac82b
sub edx, 1
je 0x460ac77c
sub edx, 1
je 0x460ac644
sub edx, 1
je 0x460ac61a
sub edx, 1
je 0x460ac5ed
sub edx, 1
jne case.0x460acca2.517
or dword [esp + 0x14], 0xffffffff
test edi, edi
je 0x460acf93
mov eax, dword [esp + 0x10]
test eax, eax
js 0x460acf93
cmp eax, dword [ebx + 0x9c]
jge 0x460acf93
push ecx
push edi
push eax
mov ecx, ebx
call fcn.460ae6bb
jmp 0x460abf93
or dword [esp + 0x14], 0xffffffff
test byte [ebx + 0x5c], 0x20
jne 0x460ac603
mov eax, dword [ebx + 0xa4]
jmp 0x460abf93
push dword [ebx + 0xa4]
mov ecx, ebx
call fcn.460a750a
test eax, eax
je 0x460acf93
jmp 0x460ac5f8
or dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x10]
test eax, eax
js 0x460acf93
cmp eax, dword [ebx + 0x9c]
jge 0x460acf93
push eax
mov ecx, ebx
call fcn.460a750a
jmp 0x460abf93
test byte [ebx + 0x5c], 0x20
je 0x460ac6db
mov edx, dword [esp + 0x10]
cmp edx, 0xffffffff
jne 0x460ac6e5
mov edi, dword [ebx + 0xa4]
xor esi, esi
push esi
push esi
push 8
push edi
push edi
mov ecx, ebx
call fcn.460b0c84
mov eax, dword [ebx + 0x5c]
mov ecx, ebx
shr eax, 7
and eax, 1
push eax
push 0xffffffffffffffff
push esi
call fcn.460ae3ab
cmp edi, 0xffffffff
je 0x460ac6db
mov eax, dword [ebx]
mov ecx, 0x8005
or dword [ebx + 0x5c], 0x1000
inc edi
push esi
mov dword [ebx + 0x64], ecx
mov esi, dword [eax + 0x98]
push ecx
mov ecx, esi
mov dword [ebx + 0x68], edi
call dword [0x460ed508]
mov ecx, ebx
call esi
mov eax, dword [ebx]
mov ecx, 0x8008
or dword [ebx + 0x5c], 0x1000
push 0
mov dword [ebx + 0x64], ecx
mov esi, dword [eax + 0x98]
push ecx
mov ecx, esi
mov dword [ebx + 0x68], edi
call dword [0x460ed508]
mov ecx, ebx
call esi
or dword [esp + 0x14], 0xffffffff
jmp 0x460acf93
cmp edx, dword [ebx + 0x9c]
jae 0x460ac6db
cmp edx, dword [ebx + 0xa4]
jne 0x460ac711
push edx
mov ecx, ebx
call fcn.460a750a
mov edx, dword [esp + 0x10]
test eax, eax
je 0x460ac711
push edx
mov ecx, ebx
call fcn.460abd09
test eax, eax
jne 0x460ac73b
xor edi, edi
mov ecx, ebx
push edi
push edx
call fcn.460b0a98
test eax, eax
je 0x460ac6db
mov eax, dword [esp + 0x10]
mov ecx, ebx
push eax
push eax
push 0xf
push eax
push eax
call fcn.460b0c84
test eax, eax
je 0x460ac6db
mov edx, dword [esp + 0x10]
jmp 0x460ac73d
xor edi, edi
mov dword [esp + 0x14], edx
mov ecx, 0x8005
mov eax, dword [ebx]
or dword [ebx + 0x5c], 0x1000
push edi
mov dword [ebx + 0x64], ecx
mov esi, dword [eax + 0x98]
push ecx
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
or dword [ebx + 0x5c], 0x1000
mov ecx, 0x8006
push edi
mov dword [ebx + 0x64], ecx
push ecx
jmp 0x460abefd
test byte [ebx + 0x5c], 0x20
jne 0x460ac6db
mov ecx, dword [ebx + 0x9c]
test ecx, ecx
je 0x460acf93
mov edx, edi
mov esi, edi
mov eax, edi
cmp edi, 0xffffffff
jne 0x460ac7aa
mov eax, dword [ebx + 0xa4]
lea esi, [ecx - 1]
xor edx, edx
push eax
push eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
neg eax
sbb eax, eax
and eax, 7
push eax
push esi
push edx
call fcn.460b0c84
test eax, eax
je 0x460ac6db
cmp edi, 0xffffffff
jne 0x460ac7d7
mov dword [ebx + 0x64], 0x8009
jmp 0x460ac81a
cmp dword [esp + 0x10], 0
je 0x460ac80d
mov eax, dword [ebx]
mov ecx, 0x8005
or dword [ebx + 0x5c], 0x1000
push 0
mov dword [ebx + 0x64], ecx
mov esi, dword [eax + 0x98]
push ecx
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
mov dword [ebx + 0x64], 0x8006
jmp 0x460ac81a
lea eax, [edi + 1]
mov dword [ebx + 0x64], 0x8008
mov dword [ebx + 0x68], eax
or dword [ebx + 0x5c], 0x1000
push 0
push dword [ebx + 0x64]
jmp 0x460abefd
mov eax, dword [ebx + 0x9c]
dec eax
push eax
push 0
jmp 0x460ac573
mov eax, dword [esp + 0x10]
cmp edi, eax
movzx edi, di
jle 0x460ac884
shl edi, 0x10
movzx eax, ax
or edi, eax
mov dword [esp + 0x10], 1
xor esi, esi
mov eax, dword [ebx + 0x9c]
movzx edx, di
cmp edx, eax
jl 0x460acb3d
shr edi, 0x10
mov ecx, edi
cmp ecx, eax
jge case.0x460acca2.516
dec ax
movzx edi, ax
shl edi, 0x10
or edi, ecx
jmp 0x460acb56
movzx ecx, ax
shl ecx, 0x10
or edi, ecx
xor esi, esi
mov dword [esp + 0x10], esi
jmp 0x460ac857
or dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x10]
test eax, eax
js 0x460acf93
cmp eax, dword [ebx + 0x9c]
jge 0x460acf93
push ecx
push 0
jmp 0x460ac5e0
mov eax, 0x200
cmp edx, eax
ja 0x460acc80
je 0x460acc65
add edx, 0xfffffe75
cmp edx, 0x17
ja case.0x460acca2.517
jmp dword [edx*4 + 0x460acfc0]
or dword [esp + 0x14], 0xffffffff
mov edx, dword [ebx + 0x9c]
mov eax, dword [esp + 0x10]
cmp eax, edx
jae 0x460ac901
push eax
mov ecx, ebx
call fcn.460abd09
test eax, eax
jne 0x460ac91a
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x460ac91a
test eax, eax
jne case.0x460acca2.516
test edx, edx
jne case.0x460acca2.516
push edi
push dword [esp + 0x14]
mov ecx, ebx
call fcn.460b04d4
jmp 0x460acd14
mov eax, dword [ebx + 0x9c]
cmp eax, dword [esp + 0x10]
jbe 0x460aca76
push dword [esp + 0x10]
lea ecx, [ebx + 0xb8]
call fcn.4608ab71
mov eax, dword [eax + 4]
jmp 0x460acd14
or dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
jl case.0x460acca2.516
cmp eax, dword [ebx + 0x9c]
jge case.0x460acca2.516
mov dword [esp + 0x14], 1
mov ecx, ebx
push edi
cmp eax, 0xffffffff
jne 0x460ac98c
mov eax, dword [ebx + 0x9c]
dec eax
push eax
push 0
jmp 0x460ac992
mov eax, dword [esp + 0x14]
push eax
push eax
call fcn.460b0541
jmp case.0x460acca2.516
test edi, edi
jne 0x460aca76
cmp dword [esp + 0x10], edi
jne 0x460aca76
mov eax, dword [ebx + 0x9c]
mov dword [esp + 0x10], eax
or dword [esp + 0x14], 0xffffffff
test byte [ebx + 0x5c], 0x20
jne case.0x460acca2.516
mov ecx, dword [ebx + 0x9c]
mov dword [esp + 0x28], ecx
cmp ecx, dword [esp + 0x10]
jl 0x460ac9df
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
xor esi, esi
mov eax, esi
mov dword [esp + 0x1c], eax
test ecx, ecx
jle 0x460aca12
push eax
mov ecx, ebx
call fcn.460a750a
test eax, eax
je 0x460aca03
test edi, edi
je 0x460aca02
mov eax, dword [esp + 0x1c]
mov dword [edi + esi*4], eax
inc esi
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x28]
jl 0x460ac9eb
mov dword [esp + 0x14], esi
jmp case.0x460acca2.516
mov eax, dword [ebx + 0x9c]
jmp 0x460acd14
mov eax, dword [ebx + 0x58]
jmp 0x460acd14
mov eax, dword [ebx + 0xa4]
jmp 0x460acd14
mov eax, dword [ebx + 0xa0]
jmp 0x460acd14
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [ebx + 0x9c]
jge 0x460aca59
test eax, eax
jns 0x460aca5f
xor eax, eax
mov dword [esp + 0x10], eax
push 1
push edi
push eax
mov ecx, ebx
call fcn.460b07c3
mov dword [esp + 0x14], eax
test eax, eax
jns case.0x460acca2.516
or dword [esp + 0x14], 0xffffffff
jmp case.0x460acca2.516
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [ebx + 0x9c]
push 0
sbb ecx, ecx
and ecx, eax
push edi
mov dword [esp + 0x18], ecx
push ecx
jmp 0x460aca63
test byte [ebx + 0x5c], 0x20
je 0x460aca76
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [ebx + 0x9c]
jge 0x460acab8
test eax, eax
jns 0x460acac2
xor esi, esi
mov eax, esi
mov dword [esp + 0x10], eax
jmp 0x460acac4
xor esi, esi
push esi
push edi
push eax
mov ecx, ebx
call fcn.460b07c3
mov dword [esp + 0x14], eax
test eax, eax
js 0x460aca76
push esi
push eax
mov ecx, ebx
call fcn.460b0a98
test eax, eax
je 0x460aca76
mov eax, dword [esp + 0x14]
mov ecx, ebx
push eax
push eax
push 0xf
push eax
push eax
call fcn.460b0c84
test eax, eax
je 0x460aca76
mov eax, dword [ebx]
mov ecx, 0x8005
push esi
mov dword [ebx + 0x64], ecx
mov edi, 0x1000
or dword [ebx + 0x5c], edi
mov esi, dword [eax + 0x98]
push ecx
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
or dword [ebx + 0x5c], edi
mov ecx, 0x8006
push 0
mov eax, dword [ebx]
mov dword [ebx + 0x64], ecx
push ecx
mov esi, dword [eax + 0x98]
jmp 0x460ac426
mov ecx, edi
shr ecx, 0x10
cmp cx, di
jbe 0x460acb56
cmp ecx, eax
jl 0x460acb4e
lea ecx, [eax - 1]
movzx edi, cx
shl edi, 0x10
or edi, edx
test byte [ebx + 0x5c], 0x20
jne 0x460aca76
xor eax, eax
mov ecx, ebx
cmp dword [esp + 0x10], eax
push esi
setne al
push esi
add eax, 8
push eax
movzx eax, di
push eax
shr edi, 0x10
push edi
call fcn.460b0c84
test eax, eax
je 0x460aca76
or dword [ebx + 0x5c], 0x1000
mov ecx, 0x8009
push esi
jmp 0x460acb2c
cmp dword [ebx + 0x9c], 0
jne 0x460acba9
cmp dword [esp + 0x10], 0
je case.0x460acca2.516
push dword [esp + 0x10]
mov ecx, ebx
call fcn.460b0ae6
jmp 0x460aca6e
movzx eax, di
mov ecx, ebx
push eax
call fcn.460b0455
test eax, eax
jne case.0x460acca2.516
jmp 0x460aca76
or dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x10]
cmp dword [ebx + 0x9c], eax
ja 0x460acbef
test eax, eax
je 0x460acbef
cmp eax, 0xffffffff
jne case.0x460acca2.516
mov eax, dword [ebx + 0x94]
jmp 0x460acd14
cmp dword [ebx + 0xa4], 0xffffffff
je 0x460acc1d
test byte [ebx + 0x5c], 0x20
jne 0x460acc15
mov ecx, dword [ebx + 0x9c]
cmp ecx, dword [esp + 0x10]
jg 0x460acc1d
or eax, 0xffffffff
jmp 0x460acfa7
push dword [esp + 0x10]
mov ecx, ebx
call fcn.460abd09
test eax, eax
je 0x460acc30
test edi, edi
je 0x460acc51
xor esi, esi
mov ecx, ebx
push esi
push dword [esp + 0x14]
call fcn.460b0a98
push 1
push dword [esp + 0x14]
mov ecx, ebx
push esi
call fcn.460ae3ab
jmp 0x460aca12
xor esi, esi
jmp 0x460aca12
mov dword [esp + 0x24], 0xcb
jmp case.0x460acca2.517
test dword [ebx + 0x5c], 0x100
je 0x460acf93
push edi
push ecx
mov ecx, ebx
call fcn.460afd4d
jmp 0x460acf93
mov eax, 0x215
cmp edx, eax
ja 0x460acd3f
je 0x460acd1d
add edx, 0xfffffdff
cmp edx, 9
ja case.0x460acca2.517
jmp dword [edx*4 + 0x460ad020]
or dword [ebx + 0x5c], 0x400
test byte [ebx + 0x5c], 0x80
jne 0x460accc0
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_SetFocus]
push edi
push ecx
mov ecx, ebx
call fcn.460afede
jmp case.0x460acca2.516
test dword [ebx + 0x5c], 0x100
je case.0x460acca2.516
test byte [ebx + 0x5c], 0x40
je case.0x460acca2.516
push 1
push edi
mov ecx, ebx
call fcn.460afbfc
jmp case.0x460acca2.516
mov eax, dword [esp + 0x10]
test al, 0xc
jne 0x460acdd8
test al, 8
je 0x460acd09
xor eax, eax
inc eax
jmp 0x460acd14
push dword [esp + 0x10]
mov ecx, ebx
call fcn.460afad6
mov dword [esp + 0x14], eax
jmp case.0x460acca2.516
test dword [ebx + 0x5c], 0x100
je 0x460acd2f
mov ecx, ebx
call fcn.460afa5d
jmp 0x460acd31
xor eax, eax
mov dword [esp + 0x14], eax
test eax, eax
je 0x460acf93
jmp case.0x460acca2.517
sub edx, 0x318
je 0x460ac024
sub edx, 0xea
je 0x460acdef
sub edx, 0x42
je 0x460acd9f
sub edx, 3
je 0x460acd9f
sub edx, 0x16
je 0x460acd85
sub edx, 4
jne case.0x460acca2.517
or dword [esp + 0x14], 0xffffffff
test edi, edi
je 0x460acf93
push edi
mov ecx, ebx
call fcn.460b0b2f
jmp 0x460abf93
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x40], eax
xor eax, eax
push eax
push eax
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x460acf93
mov dword [esp + 0x10], 4
mov edi, dword [ebx + 0x10]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x20]
mov esi, dword [edi]
push dword [esp + 0x18]
push dword [esp + 0x30]
mov ecx, dword [esi + 0xc]
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0xc]
cmp eax, 1
jne case.0x460acca2.516
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
push edi
push dword [esp + 0x14]
call fcn.460e73ac
jmp 0x460acd14
push edi
push dword [esp + 0x14]
mov ecx, ebx
call fcn.460b0244
jmp 0x460acf93
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x58]
mov edx, dword [ebx + 0x9c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
lea esi, [eax + ecx]
mov dword [esp + 0x2c], eax
cmp esi, edx
jle 0x460ace26
mov esi, edx
jmp 0x460ace34
jge 0x460ace34
push esi
mov ecx, ebx
call fcn.460abd09
test eax, eax
jne 0x460ace35
dec esi
mov ecx, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp + 0x1c], ecx
cmp ecx, esi
jg 0x460aceab
lea ecx, [esp + 0x68]
push ecx
push eax
mov ecx, ebx
call fcn.460b04d4
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x6c]
push eax
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x460ace96
push 6
lea eax, [esp + 0x6c]
push eax
push edi
call dword [sym.imp.USER32.dll_FillRect]
push dword [esp + 0x1c]
mov ecx, ebx
call fcn.460a750a
neg eax
mov ecx, ebx
sbb eax, eax
neg eax
push eax
push 1
push dword [esp + 0x24]
push edi
call fcn.460b03a6
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, esi
jle 0x460ace43
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
sub edx, ecx
cmp edx, eax
jl 0x460acebf
test byte [ebx + 0x5c], 4
je 0x460acf08
cmp edx, eax
jne 0x460acf08
lea esi, [esp + 0x58]
lea edi, [esp + 0x68]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test edx, edx
jns 0x460aced1
neg edx
mov eax, dword [ebx + 0x94]
imul eax, edx
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x6c]
push eax
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
mov edi, dword [esp + 0x20]
test eax, eax
je 0x460acf08
push 6
lea eax, [esp + 0x6c]
push eax
push edi
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x460acf1a
push 1
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
mov edi, dword [esp + 0x20]
push 0xffffffffffffffff
push edi
call dword [sym.imp.GDI32.dll_RestoreDC]
lea eax, [esp + 0x68]
mov ecx, ebx
push eax
push dword [ebx + 0xa4]
call fcn.460b04d4
push 0
push dword [ebx + 0xa4]
mov ecx, ebx
push edi
call fcn.460ae3ab
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x1c]
call dword [sym.imp.USER32.dll_EndPaint]
mov eax, dword [esp + 0x24]
cmp eax, 0x30
jne 0x460acf68
cmp dword [esp + 0x10], 0
jne 0x460acf6f
cmp eax, 0x444
jne 0x460acf93
mov ecx, ebx
call fcn.460ad8e7
lea eax, [esp + 0x58]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [esp + 0x64]
mov ecx, ebx
push dword [esp + 0x64]
call fcn.460ad946
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x460ed508]
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.460ea320
mov esp, ebp
pop ebp
ret 0x10