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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x40
push ebx
push ebp
push esi
push edi
push 0
push 0
mov edi, ecx
mov eax, dword [edi + 0x20]
push 0xb
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
call fcn.0046eb40
cmp dword [edi + 0x9c], 0
jne 0x46ab27
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ebp, dword [edi + 0xa0]
test ebp, ebp
je 0x46ab1d
cmp dword [ebp + 4], 0
je 0x46ab1d
fld qword [0x5ae4b8]
xor esi, esi
mov dword [edi + 0x118], esi
mov dword [edi + 0x350], esi
mov dword [edi + 0x354], esi
cmp dword [ebp + 8], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], esi
lea ebx, [esi + 1]
jle 0x46ac93
lea edx, [ebp + 0xb1]
mov cl, byte [edx]
cmp cl, 7
je 0x46ac79
cmp cl, 8
je 0x46ac79
mov eax, dword [edx - 1]
and eax, 0xff
cmp eax, 6
ja 0x46abbb
mov ebx, dword [edx - 0x7d]
and ebx, 0xf000
cmp ebx, 0x1000
mov ebx, 1
jne 0x46abbb
cmp cl, 4
je 0x46abbb
add dword [esp + 0x1c], ebx
test eax, eax
jne 0x46abd9
mov eax, dword [edx - 0x7d]
and eax, 0xf000
cmp eax, 0x2000
jne 0x46abd9
cmp cl, 4
je 0x46abd9
mov dword [edi + 0x350], ebx
movzx ecx, byte [edx - 1]
cmp ecx, 3
jae 0x46abfa
mov eax, dword [edx - 0x7d]
and eax, 0xf000
cmp eax, 0x2000
jne 0x46abfa
cmp byte [edx], 4
je 0x46abff
mov dword [esp + 0x24], ebx
cmp byte [edx], 4
jne 0x46ac09
mov dword [esp + 0x24], ebx
mov dword [edi + 0x118], ebx
mov eax, dword [edx - 1]
and eax, 0xff
cmp eax, 7
je 0x46ac1b
cmp eax, 8
jne 0x46ac6b
cmp byte [edx], 0
jne 0x46ac6b
mov ecx, dword [edx - 0x7d]
mov eax, ecx
and eax, 0x30000
cmp eax, 0x10000
jne 0x46ac3c
mov eax, ecx
and eax, 0xf0
cmp al, 0x60
jne 0x46ac6b
mov eax, ecx
shr eax, 8
and eax, 0xf
cmp eax, 4
mov dword [esp + 0x34], ebx
jne 0x46ac62
shr ecx, 4
and ecx, 0xf
cmp ecx, eax
je 0x46ac5c
cmp ecx, 5
jne 0x46ac62
add dword [esp + 0x28], ebx
jmp 0x46ac6b
cmp eax, 0xc
jne 0x46ac6b
add dword [esp + 0x2c], ebx
cmp dword [ebp + 0x1c], esi
je 0x46ac75
cmp dword [ebp + 0x14], esi
jne 0x46ac79
mov dword [esp + 0x34], ebx
add esi, ebx
mov ecx, ebp
add edx, 0xa4
cmp esi, dword [ecx + 8]
jl 0x46ab7b
cmp dword [esp + 0x24], 0
jne 0x46acb5
fld qword [0x584f88]
fmul st(1)
call fcn.005261c0
fld qword [0x585358]
fmul st(1)
mov esi, eax
call fcn.005261c0
sub esi, eax
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x1c]
cmp eax, 6
jb 0x46acc7
add eax, 0xfffffffa
mov dword [edi + 0x354], eax
lea esi, [edi + 0x21c]
test esi, esi
je 0x46acf4
mov eax, dword [esi + 0x20]
fstp st(0)
lea edx, [esp + 0x40]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x40]
push ecx
mov ecx, edi
call fcn.005039ae
fld qword [0x5ae4b8]
fld qword [0x584dc0]
mov edx, dword [esp + 0x44]
fnstcw word [esp + 0x16]
push 0x15
movzx eax, word [esp + 0x1a]
fmul st(1)
or eax, 0xc00
mov dword [esp + 0x34], eax
push 0
push 0
fldcw word [esp + 0x3c]
push edx
fistp qword [esp + 0x48]
mov ecx, dword [esp + 0x48]
mov edx, ecx
fldcw word [esp + 0x26]
fld qword [0x584f78]
fnstcw word [esp + 0x26]
fmul st(1)
movzx eax, word [esp + 0x26]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x48]
mov eax, dword [esp + 0x48]
sub edx, eax
fldcw word [esp + 0x26]
imul edx, dword [edi + 0x354]
fmul qword [0x585358]
fnstcw word [esp + 0x26]
movzx eax, word [esp + 0x26]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x48]
mov eax, dword [esp + 0x48]
sub eax, edx
add eax, ecx
fldcw word [esp + 0x26]
push eax
push 0
mov ecx, esi
call fcn.00501b56
mov ecx, dword [edi + 0xa0]
cmp dword [ecx + 8], 0
mov dword [esp + 0x18], 0
jle 0x46b81d
fld qword [0x584ed0]
mov dword [esp + 0x1c], 0
fld qword [0x584f80]
fld qword [0x584f68]
fld qword [0x585350]
fld qword [0x5ae4b8]
jmp 0x46adf8
fld qword [0x584ed0]
fld qword [0x584f80]
fld qword [0x584f68]
fld qword [0x585350]
fxch st(3)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
mov ebx, dword [edi + 0xa0]
mov edx, dword [esp + 0x1c]
mov cl, byte [ebx + edx + 0xb1]
cmp cl, 7
je 0x46b7ed
cmp cl, 8
je 0x46b7ed
mov eax, edx
mov edx, dword [ebx + eax + 0xb0]
and edx, 0xff
cmp edx, 6
mov dword [esp + 0x30], edx
ja 0x46aff5
mov ebp, dword [ebx + eax + 0x34]
mov esi, ebp
and esi, 0xf000
cmp esi, 0x1000
jne 0x46aff5
cmp cl, 4
je 0x46aff5
mov eax, dword [ebx + 0x1c]
fstp st(1)
mov esi, dword [esp + 0x18]
cmp eax, esi
je 0x46af42
cmp dword [ebx + 0x14], esi
je 0x46af42
fstp st(1)
mov eax, ebp
and al, 0xf0
fstp st(1)
cmp al, 0x40
fstp st(1)
jne 0x46af2e
mov ecx, dword [edi + 0x9c]
test dword [ecx + 0x28], 0x800
jne 0x46af2e
fld qword [0x584f48]
fnstcw word [esp + 0x16]
movzx eax, word [esp + 0x16]
fmul st(1)
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov ecx, dword [esp + 0x38]
fldcw word [esp + 0x16]
fld qword [0x584f78]
fnstcw word [esp + 0x16]
fmul st(1)
movzx eax, word [esp + 0x16]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
sub ecx, eax
fldcw word [esp + 0x16]
imul ecx, edx
fmul qword [0x584f70]
fnstcw word [esp + 0x16]
movzx eax, word [esp + 0x16]
or eax, 0xc00
mov dword [esp + 0x30], eax
mov eax, edi
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov edx, dword [esp + 0x38]
sub edx, ecx
push edx
fldcw word [esp + 0x1a]
push esi
call fcn.0046bf60
fld qword [0x5ae4b8]
jmp 0x46b7f9
push esi
fstp st(0)
push edi
call fcn.0046bbc0
fld qword [0x5ae4b8]
jmp 0x46b7f9
fld qword [0x584f88]
fmul st(1)
call fcn.005261c0
cmp dword [ebx + 0x1c], esi
mov ebp, eax
jne 0x46af77
fld st(0)
fmulp st(4)
fxch st(3)
call fcn.005261c0
fld st(2)
fmulp st(2)
mov esi, eax
fxch st(1)
call fcn.005261c0
mov ecx, dword [ebx + 0x20]
sub esi, eax
add ebp, esi
jmp 0x46af80
mov ecx, dword [ebx + 0x18]
fstp st(2)
fstp st(2)
fxch st(1)
cmp ecx, 0xffffffff
je 0x46b7f7
mov eax, dword [edi + 0x9c]
test dword [eax + 0x28], 0x800
jne 0x46b7f7
fnstcw word [esp + 0x16]
movzx eax, word [esp + 0x16]
fstp st(1)
fmul qword [0x5ae4c0]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
fldcw word [esp + 0x16]
mov edx, dword [esp + 0x18]
imul ecx, ecx, 0xa4
push edx
mov edx, dword [ecx + ebx + 0x34]
push eax
and edx, 0xf
push ebp
xor ebx, ebx
call fcn.0046c140
test eax, eax
je 0x46afea
call fcn.0046df90
fld qword [0x5ae4b8]
jmp 0x46b7f9
cmp edx, 3
jae 0x46b191
mov eax, dword [ebx + eax + 0x34]
mov esi, eax
and esi, 0xf000
cmp esi, 0x2000
jne 0x46b191
cmp cl, 4
je 0x46b196
mov ecx, dword [ebx + 0x1c]
fstp st(1)
mov esi, dword [esp + 0x18]
cmp ecx, esi
je 0x46b108
cmp dword [ebx + 0x14], esi
je 0x46b108
fstp st(1)
and al, 0xf0
cmp al, 0x40
fstp st(1)
fstp st(1)
jne 0x46af2e
mov ecx, dword [edi + 0x9c]
test dword [ecx + 0x28], 0x800
jne 0x46af2e
fld qword [0x584dc0]
mov ebx, dword [edi + 0x354]
fnstcw word [esp + 0x16]
movzx eax, word [esp + 0x16]
fmul st(1)
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov ecx, dword [esp + 0x38]
fldcw word [esp + 0x16]
fld qword [0x584f78]
fnstcw word [esp + 0x16]
fmul st(1)
movzx eax, word [esp + 0x16]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
sub ecx, eax
xor eax, eax
cmp dword [edi + 0x350], eax
fldcw word [esp + 0x16]
sete al
fmul qword [0x585358]
fnstcw word [esp + 0x16]
sub ebx, eax
add ebx, edx
movzx eax, word [esp + 0x16]
imul ecx, ebx
or eax, 0xc00
mov dword [esp + 0x30], eax
mov eax, edi
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov edx, dword [esp + 0x38]
sub edx, ecx
push edx
fldcw word [esp + 0x1a]
push esi
call fcn.0046bf60
fld qword [0x5ae4b8]
jmp 0x46b7f9
fld qword [0x584f88]
fmul st(1)
call fcn.005261c0
cmp dword [ebx + 0x1c], esi
mov ebp, eax
jne 0x46b13d
fld st(0)
fmulp st(4)
fxch st(3)
call fcn.005261c0
fld st(2)
fmulp st(2)
mov esi, eax
fxch st(1)
call fcn.005261c0
mov ecx, dword [ebx + 0x20]
sub esi, eax
add ebp, esi
jmp 0x46b146
mov ecx, dword [ebx + 0x18]
fstp st(2)
fstp st(2)
fxch st(1)
cmp ecx, 0xffffffff
je 0x46b7f7
mov eax, dword [edi + 0x9c]
test dword [eax + 0x28], 0x800
jne 0x46b7f7
fnstcw word [esp + 0x16]
movzx eax, word [esp + 0x16]
fstp st(1)
fmul qword [0x5ae4c0]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
fldcw word [esp + 0x16]
jmp 0x46afc6
cmp cl, 4
jne 0x46b1b6
mov ecx, dword [esp + 0x18]
fstp st(0)
fstp st(1)
push ecx
fstp st(1)
push edi
fstp st(1)
fstp st(0)
call fcn.0046bbc0
fld qword [0x5ae4b8]
jmp 0x46b7f9
cmp edx, 7
je 0x46b1c4
cmp edx, 8
jne 0x46b7ed
test cl, cl
jne 0x46b7ed
mov edx, dword [esp + 0x1c]
mov esi, dword [ebx + edx + 0x34]
mov eax, esi
shr eax, 0x10
and eax, 3
cmp eax, 1
mov dword [esp + 0x38], eax
jne 0x46b1f4
mov eax, esi
and eax, 0xf0
cmp al, 0x60
jne 0x46b7ed
fld qword [0x5ae4c0]
fld st(0)
fmulp st(4)
fld st(3)
call fcn.005261c0
mov ebp, eax
mov eax, esi
shr eax, 8
and eax, 0xf
cmp eax, 4
jne 0x46b21b
cmp dword [esp + 0x28], 1
ja 0x46b22f
cmp eax, 0xc
jne 0x46b2f4
cmp dword [esp + 0x2c], 1
jbe 0x46b2f4
xor ecx, ecx
cmp dword [ebx + 8], ecx
jle 0x46b255
lea edx, [ebx + 0x34]
mov ebp, dword [edx]
shr ebp, 8
and ebp, 0xf
cmp ebp, eax
je 0x46b255
add ecx, 1
mov ebp, ebx
add edx, 0xa4
cmp ecx, dword [ebp + 8]
jl 0x46b239
cmp ecx, dword [esp + 0x18]
jne 0x46b26c
fld qword [0x584e98]
fmul st(1)
call fcn.005261c0
mov ebp, eax
jmp 0x46b291
fld st(0)
fmul st(3)
call fcn.005261c0
fld qword [0x584f60]
fmul st(1)
mov ebp, eax
call fcn.005261c0
fld st(0)
fmul st(5)
sub ebp, eax
call fcn.005261c0
sub ebp, eax
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ebx + ecx + 0xac]
and ecx, 0xf
je 0x46b2f4
mov eax, esi
shr eax, 4
and eax, 0xf
cmp eax, 5
je 0x46b2b3
cmp eax, 4
jne 0x46b2f4
cmp ecx, 1
jne 0x46b2cb
fstp st(2)
fld st(1)
fmul qword [0x584e98]
call fcn.005261c0
mov ebp, eax
jmp 0x46b2f6
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.005261c0
fld st(1)
fmul qword [0x584f60]
mov ebp, eax
call fcn.005261c0
fld st(1)
fmul st(4)
sub ebp, eax
call fcn.005261c0
sub ebp, eax
jmp 0x46b2f6
fstp st(2)
mov eax, esi
shr eax, 4
and eax, 0xf
cmp eax, 5
jne 0x46b3ab
fstp st(2)
mov edx, dword [esp + 0x18]
fstp st(0)
push edx
fnstcw word [esp + 0x1a]
push ebp
movzx eax, word [esp + 0x1e]
fld st(0)
fmulp st(2)
or eax, 0xc00
mov dword [esp + 0x40], eax
fxch st(1)
mov ebx, 2
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov ecx, dword [esp + 0x40]
fldcw word [esp + 0x1e]
fnstcw word [esp + 0x1e]
fld st(0)
movzx eax, word [esp + 0x1e]
fmulp st(2)
or eax, 0xc00
fxch st(1)
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff9
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov edx, dword [esp + 0x40]
sub ecx, edx
fldcw word [esp + 0x1e]
imul ecx, eax
fmul qword [0x584f88]
fnstcw word [esp + 0x1e]
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov edx, dword [esp + 0x40]
sub edx, ecx
sub edx, dword [esp + 0x28]
fldcw word [esp + 0x1e]
push edx
mov edx, esi
and edx, 0xf
jmp 0x46afdc
cmp eax, 4
jne 0x46b46b
mov ecx, dword [edi + 0x9c]
test dword [ecx + 0x28], 0x800
jne 0x46b46b
fstp st(2)
mov edx, dword [esp + 0x18]
fstp st(0)
push edx
fnstcw word [esp + 0x1a]
push ebp
movzx eax, word [esp + 0x1e]
fld st(0)
fmulp st(2)
or eax, 0xc00
mov dword [esp + 0x40], eax
fxch st(1)
mov ebx, 1
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov ecx, dword [esp + 0x40]
fldcw word [esp + 0x1e]
fnstcw word [esp + 0x1e]
fld st(0)
movzx eax, word [esp + 0x1e]
fmulp st(2)
or eax, 0xc00
fxch st(1)
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff9
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov edx, dword [esp + 0x40]
sub ecx, edx
fldcw word [esp + 0x1e]
imul ecx, eax
fmul qword [0x584f88]
fnstcw word [esp + 0x1e]
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov edx, dword [esp + 0x40]
sub edx, ecx
sub edx, dword [esp + 0x28]
fldcw word [esp + 0x1e]
push edx
mov edx, esi
and edx, 0xf
jmp 0x46afdc
cmp eax, 0xb
jne 0x46b6f8
mov eax, dword [esp + 0x1c]
fstp st(2)
mov ebx, dword [ebx + eax + 0xac]
and ebx, 0xf
je 0x46b48a
mov esi, ebx
jmp 0x46b48d
and esi, 0xf
fmul qword [0x584e98]
mov ecx, dword [esp + 0x18]
fnstcw word [esp + 0x16]
push ecx
movzx eax, word [esp + 0x1a]
or eax, 0xc00
mov dword [esp + 0x3c], eax
mov ebx, 1
fldcw word [esp + 0x3c]
fistp qword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
push edx
fldcw word [esp + 0x1e]
fnstcw word [esp + 0x1e]
fld st(0)
movzx eax, word [esp + 0x1e]
fmulp st(2)
or eax, 0xc00
fxch st(1)
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov ecx, dword [esp + 0x40]
fldcw word [esp + 0x1e]
fnstcw word [esp + 0x1e]
fld st(0)
movzx eax, word [esp + 0x1e]
fmulp st(2)
or eax, 0xc00
fxch st(1)
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff9
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov edx, dword [esp + 0x40]
sub ecx, edx
fldcw word [esp + 0x1e]
imul ecx, eax
fmul qword [0x584f88]
fnstcw word [esp + 0x1e]
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov edx, dword [esp + 0x40]
sub edx, ecx
sub edx, dword [esp + 0x28]
fldcw word [esp + 0x1e]
push edx
mov edx, esi
call fcn.0046c140
test eax, eax
je 0x46afea
call fcn.0046df90
mov eax, dword [edi + 0xa0]
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [ecx + 0xac]
shr eax, 4
and eax, 0xf
je 0x46b57d
mov edx, eax
jmp 0x46b583
mov edx, dword [ecx + 0x34]
and edx, 0xf
fld qword [0x5ae4c0]
mov eax, dword [esp + 0x18]
push eax
fld st(0)
fadd st(1)
movzx ecx, byte [ecx + 0xb0]
fnstcw word [esp + 0x1a]
movzx eax, word [esp + 0x1a]
or eax, 0xc00
mov dword [esp + 0x3c], eax
sub ecx, 7
mov ebx, 2
fldcw word [esp + 0x3c]
fistp qword [esp + 0x3c]
mov esi, dword [esp + 0x3c]
fldcw word [esp + 0x1a]
fld qword [0x584f60]
fmul st(1)
fnstcw word [esp + 0x1a]
movzx eax, word [esp + 0x1a]
or eax, 0xc00
mov dword [esp + 0x3c], eax
fldcw word [esp + 0x3c]
fistp qword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
sub esi, eax
fldcw word [esp + 0x1a]
fld qword [0x584f80]
fnstcw word [esp + 0x1a]
fmul st(1), st(0)
movzx eax, word [esp + 0x1a]
fxch st(1)
or eax, 0xc00
mov dword [esp + 0x3c], eax
fldcw word [esp + 0x3c]
fistp qword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
sub esi, eax
push esi
fldcw word [esp + 0x1e]
fld qword [0x5ae4b8]
fnstcw word [esp + 0x1e]
fld st(0)
movzx eax, word [esp + 0x1e]
fmulp st(2)
or eax, 0xc00
fxch st(1)
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov esi, dword [esp + 0x40]
fldcw word [esp + 0x1e]
fld qword [0x584ed0]
fnstcw word [esp + 0x1e]
fmul st(1)
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
sub esi, eax
fldcw word [esp + 0x1e]
imul esi, ecx
fmul qword [0x584f88]
fnstcw word [esp + 0x1e]
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
sub eax, esi
sub eax, dword [esp + 0x28]
fldcw word [esp + 0x1e]
push eax
call fcn.0046c140
mov esi, eax
test esi, esi
je 0x46afea
mov dword [esi + 0x6c], 1
mov eax, dword [edi + 0x9c]
cmp dword [eax + 0x4e8], 0
je 0x46b6e6
mov eax, dword [eax + 0x4e8]
mov ecx, dword [edi + 0xa0]
mov edx, dword [eax]
mov edx, dword [edx + 0x2c]
push esi
push ecx
mov ecx, eax
call edx
mov eax, esi
call fcn.0046df90
fld qword [0x5ae4b8]
jmp 0x46b7f9
cmp eax, 6
fstp st(1)
fstp st(3)
jne 0x46b7f5
cmp dword [esp + 0x38], 1
jne 0x46b7f5
mov eax, esi
and eax, 0xf000
cmp eax, 0x8000
jne 0x46b7f5
mov ecx, dword [edi + 0x9c]
test dword [ecx + 0x48], 0x4000000
jne 0x46b7f5
mov edx, dword [esp + 0x18]
fnstcw word [esp + 0x16]
movzx eax, word [esp + 0x16]
or eax, 0xc00
mov dword [esp + 0x38], eax
push edx
mov ebx, 4
fldcw word [esp + 0x3c]
fistp qword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
push eax
fldcw word [esp + 0x1e]
fnstcw word [esp + 0x1e]
fmul st(1)
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov ecx, dword [esp + 0x40]
fldcw word [esp + 0x1e]
fld qword [0x584dc0]
fnstcw word [esp + 0x1e]
fmul st(1)
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov edx, dword [esp + 0x40]
add ecx, edx
add ecx, ecx
fldcw word [esp + 0x1e]
mov edx, esi
fmul qword [0x584f88]
fnstcw word [esp + 0x1e]
movzx eax, word [esp + 0x1e]
or eax, 0xc00
mov dword [esp + 0x40], eax
fldcw word [esp + 0x40]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
sub eax, ecx
sub eax, dword [esp + 0x28]
fldcw word [esp + 0x1e]
and edx, 0xf
push eax
jmp 0x46afdc
fstp st(2)
fstp st(2)
fstp st(2)
jmp 0x46b7f7
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0xa0]
add dword [esp + 0x1c], 0xa4
add eax, 1
cmp eax, dword [ecx + 8]
mov dword [esp + 0x18], eax
jl 0x46add4
fstp st(0)
mov edx, dword [edi + 0x9c]
mov eax, dword [edx + 4]
and al, 0x10
neg al
lea ecx, [edi + 0x120]
sbb eax, eax
and eax, 0xfffffffb
add eax, 5
push eax
call fcn.00501947
mov esi, dword [esp + 0x24]
mov ecx, esi
neg ecx
sbb ecx, ecx
and ecx, 5
push ecx
lea ebx, [edi + 0x21c]
mov ecx, ebx
call fcn.00501947
test esi, esi
jne 0x46b885
fld qword [0x5ae4b8]
fmul qword [0x585228]
call fcn.005261c0
mov ecx, dword [esp + 0x20]
neg ecx
sub ecx, eax
push ecx
lea esi, [edi + 0x174]
call fcn.00424af0
add esp, 4
mov eax, dword [esp + 0x34]
neg eax
sbb eax, eax
and eax, 5
lea esi, [edi + 0x174]
push eax
mov ecx, esi
call fcn.00501947
mov edx, dword [edi + 0x9c]
test dword [edx + 0x24], 0x400
je 0x46b8ba
push 0
lea ecx, [edi + 0x1c8]
call fcn.00501947
mov eax, dword [edi + 0x9c]
test dword [eax + 0x24], 0x200
je 0x46b8e4
cmp dword [edi + 0x118], 0
je 0x46b8db
test dword [eax + 0x48], 0x40000
je 0x46b8e4
push 0
mov ecx, ebx
call fcn.00501947
mov eax, dword [edi + 0x9c]
test byte [eax + 0x48], 4
je 0x46b8f9
push 0
mov ecx, esi
call fcn.00501947
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
lea eax, [edi + 0x78]
push 1
push eax
call edx
mov eax, dword [edi + 0x20]
push 0
push 1
push 0xb
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [edi + 0x20]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [edi + 0x20]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
mov eax, 1
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret