Function at 0x411170
Capabilities:
Hide graphical window

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47e2fd
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x88
mov eax, dword [0x4b5200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x7c], edx
mov esi, ecx
mov dword [ebp - 0x3c], esi
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x1c0]
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], eax
test eax, eax
je case.0x413888.531
mov ecx, dword [ebx + 8]
cmp ecx, 0x102
ja 0x4128f5
je 0x4127e3
lea eax, [ecx - 3]
cmp eax, 0xa0
ja case.0x413888.531
movzx eax, byte [eax + 0x413fc4]
jmp dword [eax*4 + 0x413f70]
mov eax, dword [ebp - 0x7c]
cmp eax, dword [esi + 0x230]
jne case.0x413888.531
cmp dword [esi + 0x24c], 0
jne 0x413f4b
jmp case.0x413888.531
cmp dword [esi + 0x24c], 0
je case.0x413888.531
mov eax, dword [ebp - 0x7c]
cmp eax, dword [esi + 0x230]
jne case.0x413888.531
test edx, edx
je 0x413f4b
mov eax, dword [edi + 8]
mov edx, dword [edi]
mov edi, dword [edi + 0xc]
mov dword [ebp - 0x94], eax
sub eax, edx
mov dword [ebp - 0x90], eax
dec edx
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 4]
mov eax, edi
sub eax, ecx
dec ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x84]
movups xmm0, xmmword [eax]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esi + 0x24c]
add eax, edx
mov edx, dword [ebp - 0x84]
mov dword [edx], eax
mov eax, dword [esi + 0x24c]
add eax, ecx
mov ecx, dword [ebp - 0x90]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x94]
sub eax, dword [esi + 0x24c]
inc eax
mov dword [edx + 8], eax
sub edi, dword [esi + 0x24c]
mov eax, dword [edx + 0x30]
inc edi
mov dword [edx + 0xc], edi
mov dword [eax + 0x10], ecx
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x14], ecx
mov eax, 0x700
jmp 0x413f4d
mov edi, dword [ebp - 0x7c]
cmp edi, dword [esi + 0x230]
jne case.0x413888.531
test dx, dx
je 0x410e6e
mov ecx, dword [esi + 0x40]
mov edx, 1
mov dword [ebp - 0x3c], edx
cmp ecx, edx
jle 0x410e18
mov edi, 0x48
mov dword [ebp - 0x84], edi
nop word [eax + eax]
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x410df9
cmp edx, 1
jl 0x410df9
cmp edx, ecx
jg 0x410df9
cmp dword [eax + edi + 0xc], 0
je 0x410df9
mov ecx, dword [esi + 0x25c]
mov edi, dword [esi + 0x3c]
lea eax, [ecx + ecx*8]
cmp dword [edi + eax*8], 0x22
lea edi, [edi + eax*8]
jne 0x410dc9
push ecx
push 0
push ecx
mov ecx, esi
call fcn.0041a220
jmp 0x410df6
lea eax, [ecx + ecx*8]
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + eax*8]
cmp eax, 0x23
je 0x410ddc
cmp eax, 0x24
jne 0x410df9
mov eax, dword [edi + 0x44]
test eax, eax
je 0x410df9
mov ecx, dword [eax + 0x14]
cmp dword [edi + 0x1c], ecx
je 0x410df9
push ecx
push dword [eax + 4]
mov ecx, esi
call fcn.00416f50
mov edx, dword [ebp - 0x3c]
add dword [ebp - 0x84], 0x48
inc edx
mov ecx, dword [esi + 0x40]
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x3c], edx
cmp edx, ecx
jl 0x410d90
mov edi, dword [ebp - 0x7c]
cmp dword [esi + 0x1c0], 0
mov eax, dword [esi + 0x230]
mov dword [ebp - 0x90], eax
je 0x410e53
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x410e43
cmp eax, ecx
jne 0x410e53
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x410ed3
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffed
jmp 0x410e9a
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x34], 0
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x410ed3
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffec
mov eax, dword [esi + 0x1c0]
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], edi
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], 0
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], 0
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
mov dword [esi + 0x25c], 0
jmp case.0x413888.531
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x410ef6
cmp edi, eax
jne 0x410f06
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x413888.531
mov edx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffee
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
jmp 0x4129bf
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x410f48
cmp edi, eax
jne 0x410f58
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x413888.531
mov edx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe5
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
jmp 0x4129bf
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x410f9a
cmp edi, eax
jne 0x410faa
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x413888.531
mov edx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe4
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
jmp 0x4129bf
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x410fec
cmp edi, eax
jne 0x410ffc
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
push 0
push 0
push 0xcae
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x413f4b
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x41102a
cmp edi, eax
jne 0x41103a
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov edi, dword [ebp - 0x88]
test edi, edi
je 0x41107a
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
test edx, edx
je 0x41107a
cmp ecx, 1
jl 0x41107a
cmp ecx, dword [esi + 0x40]
jg 0x41107a
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x41107a
cmp dword [edx + eax*8 + 4], edi
jne 0x41107a
mov dword [esi + 0x25c], ecx
mov edi, ecx
jmp 0x41107c
xor edi, edi
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffea
jmp 0x4114ea
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe1
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
jmp 0x4114f6
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe1
jmp 0x4138f0
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe7
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x7c]
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], 0
jmp 0x412956
test edx, edx
je 0x411117
cmp edx, 2
jne 0x41114b
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x41112b
cmp edi, eax
jne 0x41113b
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov edi, dword [ebp - 0x7c]
mov ecx, esi
push edi
call fcn.0040f4d0
mov ecx, dword [ebx + 8]
jmp 0x41114e
mov edi, dword [ebp - 0x7c]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffffc
jmp 0x413a0d
mov eax, dword [esi + 0x230]
mov dword [ebp - 0x90], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x411192
cmp eax, ecx
jne 0x4111a2
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x3c]
mov edx, dword [edi + 4]
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x18], eax
test eax, eax
je 0x413f4b
cmp edx, 1
jl 0x413f4b
cmp edx, dword [esi + 0x40]
jg 0x413f4b
lea ecx, [edx + edx*8]
shl ecx, 3
mov dword [ebp - 0x88], ecx
add ecx, eax
mov dword [ebp - 0x90], ecx
cmp dword [ecx + 0xc], 0
je 0x413f4b
mov ecx, dword [edi + 8]
cmp ecx, 0xfffffffe
je 0x4111f7
cmp ecx, 0xfffffffc
jne 0x411334
mov esi, dword [ebp - 0x90]
cmp dword [esi], 0x1f
mov esi, dword [ebp - 0x3c]
jne 0x4112b5
lea eax, [edi + 0x7c]
lea ecx, [esi + 0x110]
push eax
call fcn.00401a90
cmp dword [esi + 0x110], 0
lea ecx, [esi + 0x110]
jne 0x411241
push 2
call fcn.0046b90c
lea ecx, [esi + 0x110]
add esp, 4
xor edx, edx
mov dword [ecx], eax
mov word [eax], dx
mov dword [ecx + 4], edx
mov eax, dword [ecx]
mov byte [ecx + 8], 1
mov edi, dword [edi + 0x10]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x94]
mov dword [eax + 0xc], edi
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x39], 0
jmp 0x413f4b
cmp ecx, 0xfffffffe
jne 0x411334
mov esi, dword [ebp - 0x88]
cmp dword [eax + esi], 0x1b
mov esi, dword [ebp - 0x3c]
jne 0x411334
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
test edi, edi
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], edi
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
setne cl
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], 0
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], cl
cmp edi, 0xfffffffa
je 0x412e6d
test edi, edi
jmp 0x413300
mov esi, dword [ebp - 0x18]
lea eax, [edx + edx*8]
mov eax, dword [esi + eax*8]
mov esi, dword [ebp - 0x3c]
cmp eax, 0x1b
jne 0x411355
cmp ecx, 0xfffffd3a
jne 0x411355
mov edi, dword [edi + 0xc]
jmp 0x41107c
cmp ecx, 0xfffffffd
jne 0x4113a0
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff2
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
jmp 0x413a2c
cmp ecx, 0xfffffffc
jne 0x4113eb
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe6
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
jmp 0x413a2c
cmp ecx, 0xfffffff9
jne 0x41142a
cmp dword [esi + 0x1c0], 0
mov edi, dword [esi + 0x230]
je 0x413f4b
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x411415
cmp edi, eax
jne 0x413f4b
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
jmp 0x413f4b
cmp eax, 0x19
jne 0x411684
cmp ecx, 0xfffffdd8
jne 0x411510
push 0
push 0
push 0x130b
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x413f4b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], 0
push ecx
push eax
push 0x133c
push dword [edi]
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0xffffffff
movlpd qword [ebp - 0x34], xmm0
movlpd qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x38], 8
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x413f4b
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x413f4b
cmp edi, 1
jl 0x413f4b
cmp edi, dword [esi + 0x40]
jg 0x413f4b
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x413f4b
mov eax, dword [ecx + eax*8 + 4]
mov dword [esi + 0x240], eax
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffdd
mov eax, dword [esi + 0x1c0]
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], edi
jmp 0x413a2c
cmp ecx, 0xfffffdd9
jne 0x413f4b
push 0
push 0
push 0x130b
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x413f4b
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], 0
push ecx
push eax
push 0x133c
push dword [edi]
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0xffffffff
movlpd qword [ebp - 0x34], xmm0
movlpd qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x38], 8
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x413f4b
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x413f4b
cmp eax, 1
jl 0x413f4b
cmp eax, dword [esi + 0x40]
jg 0x413f4b
lea eax, [eax + eax*8]
shl eax, 3
mov dword [ebp - 0x18], eax
cmp dword [eax + ecx + 0xc], 0
je 0x413f4b
mov eax, dword [ebp - 0x84]
lea edi, [esi + 0x120]
push edi
push dword [eax]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x84]
push edi
push 0
push 0x1328
push dword [eax]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x84]
push 2
push edi
push dword [eax]
call dword [sym.imp.USER32.dll_GetParent]
push eax
mov eax, dword [ebp - 0x84]
push dword [eax]
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov ecx, dword [esi + 0x124]
mov eax, dword [esi + 0x12c]
mov edx, dword [edi]
sub eax, ecx
push 0x40
push eax
mov eax, dword [esi + 0x128]
sub eax, edx
push eax
mov eax, dword [esi + 0x3c]
push ecx
mov ecx, dword [ebp - 0x18]
push edx
push 0
push dword [eax + ecx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esi + 0x240]
test eax, eax
je 0x411634
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x1c0]
mov dword [esi + 0x240], 0
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffdc
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0xc], ecx
jmp 0x413a2c
cmp eax, 0xf
jne 0x411dc5
cmp ecx, 0xffffff98
je 0x413f4b
cmp ecx, 0xffffff50
jne 0x411708
push dword [edi + 0x20]
lea ecx, [esi + 0x110]
call fcn.00401a90
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0x10]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffcb
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
cmp ecx, 0xffffff99
jne 0x4117b3
mov edi, dword [edi + 0x28]
mov dword [ebp - 0x18], edi
test edi, edi
je 0x41176d
mov eax, dword [edi + 0x14]
test eax, eax
je 0x411754
push 0x40e990
lea edi, [eax - 4]
mov dword [ebp - 4], 1
push dword [edi]
push 0x14
push eax
call fcn.0046b598
mov eax, dword [edi]
lea eax, [eax + eax*4]
lea eax, [eax*4 + 4]
push eax
push edi
call fcn.0046b308
mov edi, dword [ebp - 0x18]
add esp, 8
mov eax, dword [edi + 8]
test eax, eax
je 0x411762
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0x20
push edi
call fcn.0046b8fe
add esp, 8
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffcf
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
jmp 0x413a2c
cmp ecx, 0xffffff94
jne 0x411837
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x3c]
mov dword [ebp - 0x3c], eax
lea eax, [edx + edx*8]
test byte [ecx + eax*8 + 0x44], 1
je 0x4117db
mov edx, dword [ebp - 0x3c]
push ecx
mov ecx, dword [edi]
call fcn.0040da20
jmp 0x413f4b
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffca
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
cmp ecx, 0xffffff9c
jne 0x4118d4
mov eax, dword [esi + 0x248]
shr eax, 3
test al, 1
je 0x413f4b
test byte [edi + 0x14], 2
je 0x413f4b
test byte [edi + 0x18], 2
jne 0x413f4b
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x413f4b
push 1
lea eax, [ebp - 0x1c]
push eax
push dword [edi]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
push 0xffffffffffffffff
push 0x1012
push dword [edi]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call dword [sym.imp.USER32.dll_SendMessageW]
test dword [ebp - 0x2c], 0x10000000
jne 0x4138d7
jmp 0x413f4b
cmp ecx, 0xffffff9b
jne 0x411aeb
mov eax, dword [edi + 0x14]
test al, 2
je 0x41194a
test byte [edi + 0x18], 2
jne 0x4119ac
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffd3
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
test byte [edi + 0x18], 2
je 0x4119ac
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffd2
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
test al, 1
jne 0x411a12
test byte [edi + 0x18], 1
je 0x411a12
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffcc
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
test eax, 0x2000
je 0x411a82
test dword [edi + 0x18], 0x2000
jne 0x413f4b
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffd1
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
test dword [edi + 0x18], 0x2000
je 0x413f4b
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffd0
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
cmp ecx, 0xffffff4c
je 0x411d4f
cmp ecx, 0xffffff4b
je 0x411d4f
cmp ecx, 0xfffffff4
jne 0x413f4b
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x411fea
cmp eax, 0x10001
jne 0x411c42
cmp dword [edi + 0x3c], 0
jne 0x413f4b
mov esi, dword [edi + 0x2c]
mov dword [ebp - 0x84], esi
test esi, esi
je 0x413f4b
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x411b5d
cmp dword [esi], 0xffffffff
jne 0x411b5d
cmp dword [esi + 0x10], eax
jne 0x411b5d
cmp dword [esi + 4], 0xffffffff
jne 0x411b5d
mov byte [ebp - 0x89], al
jmp 0x411b79
mov byte [ebp - 0x89], 1
test eax, eax
je 0x411b79
push eax
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SelectObject]
mov byte [ebp - 0x89], 1
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x411b83
mov dword [edi + 0x30], eax
cmp dword [esi + 0x10], 0
je 0x411c19
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esi + 8]
test eax, eax
je 0x411bad
push eax
lea eax, [edi + 0x14]
push eax
push dword [edi + 0x10]
call dword [sym.imp.USER32.dll_FillRect]
mov ecx, dword [ebp - 0x84]
mov esi, dword [edi + 0x18]
mov ecx, dword [ecx + 0x10]
call fcn.00401290
mov ecx, dword [edi + 0x20]
sub ecx, esi
mov dword [ebp - 0x3c], 0
sub ecx, eax
lea eax, [ebp - 0x3c]
shr ecx, 1
push eax
push dword [edi + 0x10]
add ecx, esi
mov dword [ebp - 0x18], ecx
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov esi, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x94], ecx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x411bfb
mov eax, dword [eax + 4]
jmp 0x411bfd
xor eax, eax
push dword [ebp - 0x18]
push dword [edi + 0x14]
push eax
push ecx
call dword [sym.imp.gdiplus.dll_GdipDrawImageI]
push dword [ebp - 0x94]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
jmp 0x411c24
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x411c24
mov dword [edi + 0x34], eax
cmp dword [esi + 0x14], 0
je 0x411c34
cmp dword [esi + 0x18], 0
jne 0x411fea
movzx eax, byte [ebp - 0x89]
add eax, eax
jmp 0x413f4d
cmp eax, 0x30001
jne 0x413f4b
cmp dword [edi + 0x3c], 0
jne 0x413f4b
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x413f4b
mov eax, dword [edi + 0x38]
test eax, eax
js 0x413f4b
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x413f4b
cmp eax, dword [ecx + 0x18]
jg 0x413f4b
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, dword [esi]
mov dword [edi + 0x30], eax
cmp dword [esi + 0x10], 0
mov dword [ebp - 0x84], esi
je 0x411d2a
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esi + 8]
test eax, eax
je 0x411cbc
push eax
lea eax, [edi + 0x14]
push eax
push dword [edi + 0x10]
call dword [sym.imp.USER32.dll_FillRect]
mov ecx, dword [ebp - 0x84]
mov esi, dword [edi + 0x18]
mov ecx, dword [ecx + 0x10]
call fcn.00401290
mov ecx, dword [edi + 0x20]
sub ecx, esi
mov dword [ebp - 0x3c], 0
sub ecx, eax
lea eax, [ebp - 0x3c]
shr ecx, 1
push eax
push dword [edi + 0x10]
add ecx, esi
mov dword [ebp - 0x18], ecx
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov esi, dword [ebp - 0x84]
mov eax, dword [edi + 0x14]
mov edx, dword [ebp - 0x3c]
add eax, 2
mov dword [ebp - 0x94], edx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x411d10
mov ecx, dword [ecx + 4]
jmp 0x411d12
xor ecx, ecx
push dword [ebp - 0x18]
push eax
push ecx
push edx
call dword [sym.imp.gdiplus.dll_GdipDrawImageI]
push dword [ebp - 0x94]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
mov eax, dword [esi + 4]
mov dword [edi + 0x34], eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x413f4b
push eax
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, 2
jmp 0x413f4d
movzx edx, word [edi + 0x10]
movzx eax, word [edi + 0xc]
shl edx, 0x10
or edx, eax
mov eax, dword [esi + 0x1c0]
mov dword [ebp - 0x18], edx
xor edx, edx
cmp ecx, 0xffffff4c
sete dl
add edx, 0xffffffcd
test eax, eax
je case.0x413888.531
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], edx
mov eax, dword [esi + 0x1c0]
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp case.0x413888.531
cmp eax, 0x1d
jne 0x413f4b
cmp ecx, 0xfffffe36
jne 0x411e4a
mov eax, dword [edi + 0x34]
mov ecx, dword [esi + 0x1c0]
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x411e32
mov edx, dword [ebx + 8]
mov dword [ecx + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax], 0xffffffc4
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x413f4b
push 0xc
push eax
call fcn.0046b8fe
add esp, 8
jmp 0x413f4b
cmp ecx, 0xfffffe60
je 0x4120a5
cmp ecx, 0xfffffe5f
je 0x4120a5
cmp ecx, 0xfffffe5e
je 0x412049
cmp ecx, 0xfffffe5d
je 0x412049
cmp ecx, 0xfffffe3a
jne 0x411f44
test byte [edi + 0xc], 2
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x1c0]
je 0x411eee
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffc9
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffc8
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
cmp ecx, 0xfffffe3d
jne 0x411fa8
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0x3c]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffc7
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
cmp ecx, 0xfffffffb
jne 0x411fd9
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 8
push 0x110a
push dword [edi]
call esi
test eax, eax
je 0x413f4b
push eax
push 9
push 0x110b
push dword [edi]
call esi
jmp 0x413f4b
cmp ecx, 0xfffffff4
jne 0x413f4b
mov eax, dword [edi + 0xc]
cmp eax, 1
jne 0x411ff4
mov eax, 0x20
jmp 0x413f4d
cmp eax, 0x10001
jne 0x413f4b
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x413f4b
test byte [edi + 0x28], 0x10
jne 0x412025
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x41201a
mov dword [edi + 0x30], ecx
mov ecx, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x412025
mov dword [edi + 0x34], ecx
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x413f4b
mov eax, dword [edi + 0x10]
test eax, eax
je 0x41203f
push ecx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, 2
jmp 0x413f4d
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0x10]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffc5
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
mov ecx, dword [esi + 0x3c]
lea eax, [edx + edx*8]
test byte [ecx + eax*8 + 0x44], 1
je 0x412181
push 0xfffffffffffffff0
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x100
je 0x412181
push dword [edi + 0x10]
push 4
push 0x110a
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x413f4b
mov ecx, dword [edi + 0x14]
xorps xmm0, xmm0
push 0
push 0
push 0xb
push dword [edi]
mov dword [ebp - 0x78], 8
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], 0xf000
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x78]
mov dword [ebp - 0x74], esi
push eax
push 0
push 0x113f
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
push 1
push 0x110a
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
test esi, esi
jne 0x412145
push eax
push 1
push 0xb
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [ebp - 0x3c]
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0x10]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffc6
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
mov eax, dword [esi + 0x220]
mov dword [ebp - 0x3c], 0
test eax, eax
je 0x41228f
cmp edx, dword [ebp - 0x7c]
jne 0x41228f
cmp di, 1
jne 0x41228f
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [ebp - 0x3c], 1
xor edi, edi
mov edx, dword [esi + 0x3c]
test edx, edx
je 0x412230
cmp edi, 1
jl 0x412230
cmp edi, dword [esi + 0x40]
jg 0x412230
lea eax, [edi + edi*8]
cmp dword [edx + eax*8 + 0xc], 0
jne 0x412232
xor edi, edi
mov ecx, dword [esi + 0x25c]
cmp ecx, edi
je 0x412392
test ecx, ecx
je 0x41234d
test edx, edx
je 0x41234d
cmp ecx, 1
jl 0x41234d
cmp ecx, dword [esi + 0x40]
jg 0x41234d
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
lea eax, [edx + eax*8]
mov dword [ebp - 0x18], eax
je 0x41234d
cmp dword [eax], 0x22
jne 0x412320
push ecx
push 0
push ecx
mov ecx, esi
call fcn.0041a220
jmp 0x41234d
test edx, edx
je 0x412213
push 0xfffffffffffffff4
push edx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov edi, eax
test edx, edx
je 0x412213
cmp edi, 1
jl 0x412213
cmp edi, dword [esi + 0x40]
jg 0x412213
lea eax, [edi + edi*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x412213
mov ecx, dword [ebp - 0x88]
cmp dword [edx + eax*8 + 4], ecx
jne 0x412213
lea eax, [edi + edi*8]
cmp dword [edx + eax*8], 0x22
jne 0x4122fe
lea eax, [edi + edi*8]
mov eax, dword [edx + eax*8 + 0x44]
test eax, eax
je 0x4122fe
cmp dword [eax], 3
jle 0x4122fe
mov dword [ebp - 0x3c], 0
jmp 0x412215
lea eax, [edi + edi*8]
mov eax, dword [edx + eax*8 + 0x18]
test eax, eax
je 0x412215
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [ebp - 0x3c], 1
jmp 0x412215
lea eax, [ecx + ecx*8]
mov eax, dword [edx + eax*8]
cmp eax, 0x23
je 0x412330
cmp eax, 0x24
jne 0x41234d
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x41234d
mov edx, dword [ecx + 0x14]
cmp dword [eax + 0x1c], edx
je 0x41234d
push edx
push dword [ecx + 4]
mov ecx, esi
call fcn.00416f50
test edi, edi
je 0x412392
mov eax, dword [esi + 0x3c]
lea ecx, [edi + edi*8]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x22
jne 0x41236e
push ecx
push 1
push edi
mov ecx, esi
call fcn.0041a220
jmp 0x412392
cmp eax, 0x23
je 0x412378
cmp eax, 0x24
jne 0x412392
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x412392
mov edx, dword [eax + 0x18]
cmp dword [ecx + 0x1c], edx
je 0x412392
push edx
push dword [eax + 4]
mov ecx, esi
call fcn.00416f50
mov eax, dword [esi + 0x1c0]
mov dword [esi + 0x25c], edi
test eax, eax
je 0x4123e9
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffeb
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], edi
mov ecx, dword [esi + 0x1c0]
mov dword [ecx + 0x10], 0
mov ecx, dword [esi + 0x1c0]
mov byte [ecx + 0x38], 1
mov eax, dword [ebp - 0x3c]
test eax, eax
je case.0x413888.531
jmp 0x413f4d
mov edx, dword [esi + 0x144]
mov ecx, dword [esi + 0x140]
lea eax, [ecx + edx]
test eax, eax
je 0x412412
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
mov edx, dword [esi + 0x14c]
mov ecx, dword [esi + 0x148]
lea eax, [ecx + edx]
test eax, eax
je 0x413f4b
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
jmp 0x413f4b
mov edx, dword [esi + 0x230]
mov ecx, dword [ebp - 0x7c]
cmp ecx, edx
jne 0x413f4b
test edi, edi
je 0x413f4b
test byte [edi + 0x18], 2
jne 0x412507
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [ebp - 0x3c], eax
test edx, edx
je 0x412507
cmp dword [esi + 0x4c], 0
je 0x412507
lea eax, [esi + 0x120]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x412504
mov eax, dword [ebp - 0x3c]
lea edx, [esi + 0x120]
sub eax, dword [esi + 0x124]
sub edi, dword [edx]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x84], eax
cmp dword [esi + 0x4c], eax
jle 0x412504
lea edi, [esi + 0x50]
nop
mov ecx, dword [edi]
test ecx, ecx
je 0x4124f5
push edx
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x4124e9
mov eax, dword [esi + 0x124]
add eax, dword [ebp - 0x3c]
push 0x215
push 0
push 0
push eax
mov eax, dword [esi + 0x120]
add eax, dword [ebp - 0x18]
push eax
push 0
push dword [edi]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebp - 0x84]
lea edx, [esi + 0x120]
inc eax
add edi, 4
mov dword [ebp - 0x84], eax
cmp eax, dword [esi + 0x4c]
jl 0x4124b0
mov ecx, dword [ebp - 0x7c]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffffd
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], ecx
jmp 0x413a1f
mov eax, dword [esi + 0x230]
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x41255a
cmp eax, ecx
jne 0x41256a
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
test edi, edi
je 0x413f4b
test byte [edi + 0x18], 1
jne 0x413f4b
mov edi, dword [ebp - 0x7c]
mov ecx, esi
push edi
call fcn.0040f4d0
cmp dword [esi + 0x204], 2
jne 0x4125a0
push 1
push 0
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov edx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffffc
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], edx
jmp 0x413a16
cmp dword [esi + 0x204], 3
je case.0x413888.531
cmp dword [esi + 0x1fc], 0
je 0x4138d7
cmp dword [esi + 0x3c], 0
je 0x412758
cmp dword [esi + 0x40], 1
mov dword [ebp - 0x84], 1
jl 0x412758
mov edi, 0x48
nop dword [eax + eax]
mov eax, dword [esi + 0x3c]
cmp dword [edi + eax + 0xc], 0
je 0x41273f
mov edx, dword [edi + eax + 4]
test edx, edx
je 0x41273f
test dword [edi + eax + 0x3c], 0x400
je 0x41273f
mov ecx, dword [edi + eax]
cmp ecx, 0x1e
je 0x41273f
cmp ecx, 0x1c
je 0x41273f
cmp dword [edi + eax + 0x20], 0xfffffffe
je 0x41273f
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x41273f
mov eax, dword [esi + 0x3c]
push dword [edi + eax + 4]
call dword [sym.imp.USER32.dll_GetParent]
cmp eax, dword [esi + 0x230]
jne 0x41273f
lea eax, [esi + 0x120]
push eax
mov eax, dword [esi + 0x3c]
push dword [edi + eax + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x41273f
push 2
lea eax, [esi + 0x120]
push eax
push dword [ebp - 0x7c]
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + edi]
cmp eax, 0xa
je 0x4126ed
cmp eax, 0x20
jne 0x4126c7
cmp dword [ecx + edi + 0x40], 0
jne 0x4126ed
push dword [esi + 0x12c]
push dword [esi + 0x128]
push dword [esi + 0x124]
push dword [esi + 0x120]
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
jmp 0x41273f
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [esi + 0x3c]
push eax
mov dword [ebp - 0x3c], eax
push dword [edi + ecx + 4]
call dword [sym.imp.USER32.dll_GetWindowRgn]
test eax, eax
je 0x412736
push dword [esi + 0x124]
push dword [esi + 0x120]
push dword [ebp - 0x3c]
call dword [sym.imp.GDI32.dll_OffsetRgn]
push 4
push dword [ebp - 0x3c]
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_ExtSelectClipRgn]
push dword [ebp - 0x3c]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x84]
add edi, 0x48
inc eax
mov dword [ebp - 0x84], eax
cmp eax, dword [esi + 0x40]
jle 0x412610
lea edi, [esi + 0x120]
push edi
push dword [ebp - 0x7c]
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x4127cb
cmp dword [esi + 0x204], 2
jne 0x4127b8
mov edi, dword [ebp - 0x88]
push 4
push edi
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
push 0xcc0020
push dword [esi + 0x21c]
push dword [esi + 0x218]
push 0
push 0
push dword [esi + 0x1e8]
push dword [esi + 0x12c]
push dword [esi + 0x128]
push 0
push 0
push edi
call dword [sym.imp.GDI32.dll_StretchBlt]
jmp 0x4127cb
push dword [esi + 0x1fc]
push edi
push dword [ebp - 0x88]
call dword [sym.imp.USER32.dll_FillRect]
push 0
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov eax, 1
jmp 0x413f4d
mov eax, dword [esi + 0x230]
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4127ff
cmp eax, ecx
jne 0x41280f
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
mov edx, dword [ebp - 0x88]
test eax, eax
je 0x41286d
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffff37
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
mov eax, dword [esi + 0x1c0]
jmp 0x41286d
mov eax, dword [ebp - 0x80]
test edx, edx
je 0x412879
mov edi, dword [esi + 0x230]
jmp 0x41287b
xor edi, edi
test eax, eax
je 0x4128a3
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x41288d
cmp edi, eax
jne 0x41289d
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x7c]
cmp ecx, dword [esi + 0x230]
jne 0x4128bb
cmp dword [esi + 0x24c], 0
jne 0x4138d7
xor eax, eax
test edx, edx
setne al
add eax, 0xffffffe2
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x413888.531
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], edx
mov eax, dword [esi + 0x1c0]
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
jmp 0x4110f3
cmp ecx, 0x211
ja 0x413867
je 0x413853
lea eax, [ecx - 0x110]
cmp eax, 0xfa
ja case.0x413888.531
movzx eax, byte [eax + 0x4140a8]
jmp dword [eax*4 + 0x414068]
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff5
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], 0
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp case.0x413888.531
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x412986
cmp edi, eax
jne 0x412996
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x413888.531
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff4
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x88]
mov dword [eax + 0xc], ecx
jmp 0x412956
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff3
jmp 0x412938
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x412a0a
cmp edi, eax
jne 0x412a1a
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
mov edx, dword [esi + 0x25c]
test eax, eax
je case.0x413888.531
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff2
jmp 0x412938
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x412a59
cmp edi, eax
jne 0x412a69
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1c0]
mov edx, dword [esi + 0x25c]
test eax, eax
je case.0x413888.531
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff1
jmp 0x412938
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffef
jmp 0x412938
push edi
push edx
push ecx
push dword [ebp - 0x7c]
call dword [sym.imp.USER32.dll_DefDlgProcW]
jmp 0x413f4d
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x412ad0
cmp edi, eax
jne 0x412ae0
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
sub esp, 0x28
mov ecx, esi
call fcn.00410bb0
mov eax, dword [ebp - 0x88]
cmp eax, 0xf120
jne 0x412afe
mov ecx, 0xfffffff8
jmp 0x412b3f
cmp eax, 0xf030
jne 0x412b0c
mov ecx, 0xfffffff7
jmp 0x412b3f
cmp eax, 0xf020
jne 0x412b1a
mov ecx, 0xfffffff9
jmp 0x412b3f
cmp eax, 0xf060
jne 0x412b2f
push 0
push 0
push 0xcae
jmp 0x413f36
cmp eax, 0xf010
jne case.0x413888.531
mov ecx, 0xffffffe8
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x413888.531
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], ecx
mov ecx, dword [ebx + 8]
jmp 0x4110e7
movsx ecx, di
shr edi, 0x10
movsx eax, di
mov dword [esi + 0x254], eax
mov eax, dword [ebp - 0x80]
mov dword [esi + 0x250], ecx
mov ecx, dword [ebx + 8]
mov dword [esi + 0x258], edx
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff0
jmp 0x412938
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x412ba6
cmp edx, eax
jne 0x412bb6
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edx, edx
cmovne ecx, esi
mov dword [eax + 0x34], ecx
movsx ecx, di
shr edi, 0x10
movsx eax, di
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_ChildWindowFromPoint]
mov edi, eax
test edi, edi
je 0x412c2e
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
test edx, edx
je 0x412c2e
cmp ecx, 1
jl 0x412c2e
cmp ecx, dword [esi + 0x40]
jg 0x412c2e
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x412c2e
cmp dword [edx + eax*8 + 4], edi
jne 0x412c2e
lea eax, [ecx + ecx*8]
test dword [edx + eax*8 + 0x3c], 0x1000
je 0x412c2e
mov eax, dword [esi + 0x1c0]
movzx ecx, word [eax + 0x2c]
movzx eax, word [eax + 0x28]
shl ecx, 0x10
or ecx, eax
push ecx
push 2
push 0xa1
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x413888.531
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff6
jmp 0x4110e7
movzx eax, dx
mov ecx, 1
shr edx, 0x10
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x18], ecx
cmp cx, dx
jne 0x412c79
mov byte [ebp - 0x89], cl
test edi, edi
je 0x412c80
mov byte [ebp - 0x89], 0
cmp dword [esi + 0x3c], 0
mov ecx, dword [ebx + 8]
movzx eax, ax
je case.0x413888.531
cmp eax, 1
jb case.0x413888.531
cmp eax, dword [esi + 0x40]
jg case.0x413888.531
mov edi, dword [esi + 0x3c]
lea eax, [eax + eax*8]
cmp dword [edi + eax*8 + 0xc], 0
lea eax, [edi + eax*8]
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x90], eax
je case.0x413888.531
mov eax, dword [eax]
cmp eax, 5
je 0x41314a
cmp eax, 6
je 0x41314a
cmp eax, 9
je 0x413096
cmp eax, 0xc
je 0x413096
cmp byte [ebp - 0x89], 0
jne 0x412d4c
cmp word [ebp - 0x18], dx
jne 0x412d4c
cmp eax, 0x13
je 0x412d06
cmp eax, 0xd
je 0x412d06
cmp eax, 0xb
jne 0x412d62
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff2
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x80]
movzx ecx, ax
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], ecx
jmp 0x413a2c
mov dword [ebp - 0x18], 0
cmp word [ebp - 0x18], dx
je 0x412da7
cmp byte [ebp - 0x89], 0
jne 0x412da7
cmp eax, 0x23
jne 0x412d76
mov eax, 1
cmp ax, dx
je 0x412dcd
jmp 0x413f4b
cmp eax, 0x25
jne 0x412d8e
mov eax, 1
cmp ax, dx
je 0x412f0a
jmp 0x413f4b
cmp eax, 0x22
jne 0x413f4b
mov eax, 1
cmp ax, dx
jne 0x413f4b
jmp 0x412dac
cmp eax, 0x22
jne 0x412dc4
mov eax, dword [ebp - 0x80]
mov ecx, esi
push 0x80
movzx eax, ax
push eax
call fcn.00417af0
jmp 0x41303f
cmp eax, 0x23
jne 0x412e7c
mov edx, dword [ebp - 0x80]
movzx eax, dx
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + ecx*8 + 0x44]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x413f4b
xor eax, eax
cmp dword [ecx + 8], 4
mov ecx, esi
sete al
lea eax, [eax*4 + 4]
push eax
movzx eax, dx
push eax
call fcn.00417af0
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x88]
movzx ecx, ax
mov eax, dword [esi + 0x1c0]
test edx, edx
mov dword [eax + 0xc], ecx
setne cl
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], cl
cmp edx, 0xfffffffa
jne 0x4132fe
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x39], 1
jmp 0x413f4b
cmp eax, 0x24
jne 0x412f01
mov eax, dword [ebp - 0x80]
movzx eax, ax
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + ecx*8 + 0x44]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x413f4b
cmp dword [eax + 8], 4
je 0x412ebf
mov eax, dword [ebp - 0x80]
mov ecx, esi
push 4
movzx eax, ax
push eax
call fcn.00417af0
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x1c0]
mov dword [ebp - 0x18], ecx
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
movzx ecx, dx
mov edx, dword [ebp - 0x18]
jmp 0x412e44
cmp eax, 0x25
jne 0x412fad
mov eax, dword [ebp - 0x80]
movzx eax, ax
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + ecx*8 + 0x44]
test ecx, ecx
je 0x412f48
cmp byte [ecx + 0xc], 0
je 0x412f48
xor eax, eax
cmp dword [ecx], 4
mov ecx, esi
sete al
lea eax, [eax*4 + 4]
push eax
mov eax, dword [ebp - 0x80]
movzx eax, ax
push eax
call fcn.00417af0
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x80]
mov eax, dword [esi + 0x1c0]
movzx ecx, cx
test eax, eax
je 0x41303f
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
movzx ecx, dx
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x39], 0
jmp 0x41303f
mov eax, dword [ebp - 0x80]
mov edx, dword [esi + 0x3c]
movzx eax, ax
lea eax, [eax + eax*8]
test dword [edx + eax*8 + 0x3c], 0x1000
je 0x412fec
mov eax, dword [esi + 0x1c0]
movzx ecx, word [eax + 0x2c]
movzx eax, word [eax + 0x28]
shl ecx, 0x10
or ecx, eax
push ecx
push 2
push 0xa1
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x41303f
mov eax, dword [ebp - 0x90]
cmp dword [eax], 0x27
jne 0x413042
mov eax, dword [esi + 0x1c0]
movzx edi, word [eax + 0x2c]
movzx eax, word [eax + 0x28]
shl edi, 0x10
or edi, eax
mov eax, dword [ebp - 0x80]
push edi
movzx eax, ax
push 0
push 0x202
lea eax, [eax + eax*8]
push dword [edx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push 0x11
push 0xa1
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov edi, dword [ebp - 0x84]
mov ecx, dword [ebx + 8]
mov eax, dword [ebp - 0x80]
movzx edx, ax
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], edx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x88]
movzx ecx, ax
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
jmp 0x41129c
mov eax, 0x400
cmp ax, dx
jne 0x4130c2
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb5
jmp 0x41324b
mov eax, 0x300
cmp ax, dx
jne 0x4130ee
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb4
jmp 0x41324b
mov eax, 0x100
cmp ax, dx
jne 0x41311a
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb3
jmp 0x41324b
mov eax, 0x200
cmp ax, dx
jne 0x413f4b
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb2
jmp 0x41324b
mov eax, 1
cmp ax, dx
jne 0x413176
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbf
jmp 0x41324b
mov eax, 7
cmp ax, dx
jne 0x4131a2
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbe
jmp 0x41324b
mov eax, 8
cmp ax, dx
jne 0x4131ce
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbd
jmp 0x41324b
mov eax, 3
cmp ax, dx
jne 0x4131f7
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbc
jmp 0x41324b
mov eax, 2
cmp ax, dx
jne 0x413220
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbb
jmp 0x41324b
mov eax, 5
cmp ax, dx
jne 0x413f4b
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffba
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x80]
movzx ecx, ax
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
mov eax, dword [esi + 0x230]
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4132a3
cmp eax, ecx
jne 0x4132b3
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
push dword [ebp - 0x88]
push edi
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov edx, eax
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov dword [eax + 0x30], esi
mov ecx, dword [esi + 0x1c0]
mov eax, dword [ebx + 8]
mov dword [ecx], edx
mov ecx, dword [esi + 0x1c0]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x88]
jmp 0x412e44
test edx, edx
jle 0x413f4b
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x39], 0
jmp 0x413f4b
mov eax, dword [esi + 0x230]
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x413331
cmp eax, ecx
jne 0x413341
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
test edi, edi
je case.0x413888.531
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
mov dword [ebp - 0x18], ecx
test edx, edx
je case.0x413888.531
cmp ecx, 1
jl case.0x413888.531
cmp ecx, dword [esi + 0x40]
jg case.0x413888.531
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je case.0x413888.531
cmp dword [edx + eax*8 + 4], edi
jne case.0x413888.531
mov eax, edx
lea ecx, [ecx + ecx*8]
cmp dword [eax + ecx*8], 0x17
jne case.0x413888.531
push 0
push 0
push 0x400
push dword [eax + ecx*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esi + 0x1c0]
mov edi, eax
test ecx, ecx
je 0x413f4b
mov edx, dword [ebp - 0x18]
test edx, edx
mov eax, dword [ebx + 8]
mov dword [ecx + 0x30], esi
mov ecx, dword [esi + 0x1c0]
mov dword [ecx], edx
mov ecx, dword [esi + 0x1c0]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x88]
movzx ecx, ax
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], ecx
setne cl
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edi
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], cl
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x39], 0
jmp 0x413f4b
cmp dword [esi + 0x3c], 0
je case.0x413888.531
test edi, edi
je case.0x413888.531
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
test edx, edx
je case.0x413888.531
cmp ecx, 1
jl case.0x413888.531
cmp ecx, dword [esi + 0x40]
jg case.0x413888.531
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je case.0x413888.531
cmp dword [edx + eax*8 + 4], edi
jne case.0x413888.531
mov edi, dword [ebp - 0x88]
lea eax, [ecx + ecx*8]
shl eax, 3
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + edx + 0x1c]
cmp eax, 0xffffffff
je 0x41348e
push eax
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [eax + ecx + 0x20]
cmp eax, 0xffffffff
je 0x4134a8
push eax
push edi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + ecx + 0x10]
test eax, eax
je case.0x413888.531
jmp 0x413f4d
cmp dword [esi + 0x3c], 0
je case.0x413888.531
test edi, edi
je case.0x413888.531
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
mov dword [ebp - 0x7c], ecx
test edx, edx
je case.0x413888.531
cmp ecx, 1
jl case.0x413888.531
cmp ecx, dword [esi + 0x40]
jg case.0x413888.531
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je case.0x413888.531
cmp dword [edx + eax*8 + 4], edi
jne case.0x413888.531
mov edi, dword [ebp - 0x88]
lea eax, [ecx + ecx*8]
shl eax, 3
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + edx + 0x1c]
cmp eax, 0xffffffff
je 0x413531
push eax
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [eax + ecx + 0x20]
cmp eax, 0xfffffffe
jne 0x413556
push 1
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
push 5
call dword [sym.imp.GDI32.dll_GetStockObject]
jmp 0x413f4d
cmp eax, 0xffffffff
je 0x413577
push 2
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x3c]
push dword [eax + ecx + 0x20]
push edi
call dword [sym.imp.GDI32.dll_SetBkColor]
jmp 0x413580
push 1
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + eax + 0x10]
mov dword [ebp - 0x3c], edx
test edx, edx
jne 0x4137ee
test ecx, ecx
je case.0x413888.531
mov eax, dword [ebp - 0x7c]
cmp eax, dword [esi + 0x40]
jg case.0x413888.531
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], edx
lea ecx, [ecx + eax*8]
je case.0x413888.531
test edi, edi
je case.0x413888.531
mov eax, dword [esi + 0x204]
test eax, eax
jne 0x4135d6
mov edx, dword [esi + 0x1fc]
jmp 0x4137e3
cmp eax, 3
jne 0x4135e6
mov edx, dword [esi + 0x1fc]
jmp 0x4137e3
lea eax, [esi + 0x120]
push eax
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
jne 0x413605
mov edx, dword [esi + 0x1fc]
jmp 0x4137e3
mov ecx, dword [esi + 0x128]
lea eax, [esi + 0x120]
sub ecx, dword [eax]
push 2
push eax
push dword [esi + 0x230]
mov dword [ebp - 0x80], ecx
mov ecx, dword [esi + 0x12c]
sub ecx, dword [esi + 0x124]
push 0
mov dword [ebp - 0x84], ecx
call dword [sym.imp.USER32.dll_MapWindowPoints]
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x3c], eax
test eax, eax
je case.0x413888.531
push dword [ebp - 0x84]
push dword [ebp - 0x80]
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edi, dword [ebp - 0x3c]
push eax
push edi
mov dword [ebp - 0x90], eax
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esi + 0x204], 2
mov dword [ebp - 0x18], eax
jne 0x413749
cmp dword [esi + 0x1e8], 0
je 0x413749
lea ecx, [esi + 0x130]
push ecx
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esi + 0x218]
mov eax, dword [esi + 0x120]
mov edi, dword [esi + 0x138]
imul eax, ecx
push 4
cdq
idiv edi
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x128]
imul eax, ecx
mov ecx, dword [esi + 0x21c]
cdq
idiv edi
mov edi, dword [esi + 0x13c]
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0x124]
imul eax, ecx
cdq
idiv edi
mov dword [esi + 0x124], eax
mov eax, dword [esi + 0x12c]
imul eax, ecx
cdq
idiv edi
mov edi, dword [ebp - 0x3c]
push edi
mov dword [esi + 0x12c], eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov ecx, dword [esi + 0x124]
mov eax, dword [esi + 0x12c]
mov edx, dword [esi + 0x120]
sub eax, ecx
push 0xcc0020
push eax
mov eax, dword [esi + 0x128]
sub eax, edx
push eax
push ecx
push edx
push dword [esi + 0x1e8]
push dword [ebp - 0x84]
push dword [ebp - 0x80]
push 0
push 0
push edi
call dword [sym.imp.GDI32.dll_StretchBlt]
jmp 0x413799
mov eax, dword [esi + 0x124]
push 0
neg eax
push eax
mov eax, dword [esi + 0x120]
neg eax
push eax
push edi
call dword [sym.imp.GDI32.dll_SetBrushOrgEx]
push dword [esi + 0x1fc]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xf00021
push dword [ebp - 0x84]
mov edi, eax
push dword [ebp - 0x80]
push 0
push 0
push dword [ebp - 0x3c]
call dword [sym.imp.GDI32.dll_PatBlt]
push edi
mov edi, dword [ebp - 0x3c]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x18]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [esi + 0x200]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x4137bd
push eax
call edi
push dword [ebp - 0x90]
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
push dword [ebp - 0x90]
mov dword [esi + 0x200], eax
call edi
mov edx, dword [esi + 0x200]
mov edi, dword [ebp - 0x88]
mov dword [ebp - 0x3c], edx
test edx, edx
je case.0x413888.531
mov eax, dword [ebp - 0x7c]
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x3c]
cmp dword [eax + ecx*8], 0xa
jne 0x41384c
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [esi + 0x3c]
push eax
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x7c]
lea edx, [eax + eax*8]
push dword [ecx + edx*8 + 4]
call dword [sym.imp.USER32.dll_GetWindowRgn]
mov esi, dword [ebp - 0x90]
test eax, eax
je 0x41383a
push dword [ebp - 0x3c]
push esi
push edi
call dword [sym.imp.GDI32.dll_FillRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [ebp - 0x3c]
test edx, edx
je case.0x413888.531
mov eax, edx
jmp 0x413f4d
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffff32
jmp 0x4110e7
cmp ecx, 0x232
ja 0x413a48
je 0x413932
lea edi, [ecx - 0x212]
cmp edi, 7
ja case.0x413888.531
jmp dword [edi*4 + 0x4141a4]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe8
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], 0
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], 0
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
mov eax, 1
jmp 0x413f4d
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffffd
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
jmp 0x413a1f
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffff31
jmp 0x4110e7
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffff30
jmp 0x412938
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x413946
cmp edi, eax
jne 0x413956
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov edi, dword [ebp - 0x7c]
mov ecx, esi
push edi
call fcn.0040f4d0
cmp dword [esi + 0x40], 1
jl 0x4139ed
mov ecx, 0x48
mov dword [ebp - 0x3c], ecx
lea edi, [ecx - 0x47]
nop word [eax + eax]
add ecx, dword [esi + 0x3c]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x90], eax
test eax, eax
je 0x4139dd
test dword [ecx + 0x3c], 0x8000
je 0x4139dd
lea ecx, [ebp - 0x2c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x4139dd
push dword [ebp - 0x90]
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4139dd
push 2
lea ecx, [ebp - 0x2c]
push ecx
push eax
push dword [ebp - 0x90]
call dword [sym.imp.USER32.dll_MapWindowPoints]
push 1
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_InvalidateRect]
add dword [ebp - 0x3c], 0x48
inc edi
mov ecx, dword [ebp - 0x3c]
cmp edi, dword [esi + 0x40]
jle 0x413980
mov edi, dword [ebp - 0x7c]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413f4b
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe7
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 4], edi
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0xc], 0
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], 0
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x413f4b
cmp ecx, 0x400
ja 0x413f24
je 0x413eea
mov edi, ecx
sub edi, 0x233
je 0x413a81
sub edi, 0x6f
jne case.0x413888.531
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe9
jmp 0x412938
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x413a95
cmp edi, eax
jne 0x413aa5
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov ecx, dword [ebp - 0x88]
lea eax, [esi + 0x210]
push eax
push ecx
mov dword [esi + 0x20c], ecx
call dword [sym.imp.SHELL32.dll_DragQueryPoint]
test eax, eax
jne 0x413ad4
push dword [esi + 0x20c]
call dword [sym.imp.SHELL32.dll_DragFinish]
jmp 0x413f4b
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
xor edi, edi
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x28], edi
mov byte [ebp - 0x20], 1
mov dword [ebp - 4], edi
mov eax, dword [esi + 0x110]
test eax, eax
je 0x413b02
push eax
call fcn.0046b303
add esp, 4
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [ebp - 0x80], 0
push 0x1002
mov byte [esi + 0x118], 1
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], 0
call fcn.0046b90c
mov edi, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], edi
mov word [edi + 0x1000], ax
mov word [edi], ax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x413b5c
push eax
call fcn.0046b303
add esp, 4
push 0x800
push edi
push dword [ebp - 0x80]
push dword [esi + 0x20c]
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
test eax, eax
je 0x413d92
cmp dword [ebp - 0x80], 0
je 0x413c55
xor eax, eax
mov byte [ebp - 0x20], 0
cmp word [edi], ax
je 0x413b9d
nop
inc eax
cmp word [edi + eax*2], 0
jne 0x413b90
mov dword [ebp - 0x24], eax
jmp 0x413ba2
mov dword [ebp - 0x24], eax
xor eax, eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4a0188], 0
jne 0x413ba4
add eax, ecx
mov edx, 2
mov dword [ebp - 0x84], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov edx, 0x4a0188
mov dword [ebp - 0x90], eax
add esp, 4
mov dword [ebp - 0x18], edi
mov ecx, eax
mov esi, 0xd
sub edx, eax
nop dword [eax]
mov word [ecx], si
add ecx, 2
movzx eax, word [edx + ecx]
mov esi, eax
test ax, ax
jne 0x413bf0
movzx eax, word [edi]
mov esi, dword [ebp - 0x3c]
mov edx, eax
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x18]
test ax, ax
je 0x413c31
movzx eax, ax
nop word [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x413c20
xor eax, eax
push edi
mov word [ecx], ax
call fcn.0046b303
mov edi, dword [ebp - 0x90]
add esp, 4
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
test edi, edi
jne 0x413c70
push 2
call fcn.0046b90c
mov edi, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], eax
mov word [edi], ax
mov eax, dword [esi + 0x114]
mov byte [ebp - 0x20], 1
mov byte [esi + 0x118], 0
mov dword [ebp - 0x84], eax
test eax, eax
jne 0x413cb4
mov ecx, dword [esi + 0x110]
mov dword [ebp - 0x84], eax
test ecx, ecx
je 0x413cae
cmp word [ecx], ax
je 0x413cae
inc eax
cmp word [ecx + eax*2], 0
jne 0x413ca0
mov dword [ebp - 0x84], eax
mov dword [esi + 0x114], eax
test edi, edi
je 0x413cd0
xor ecx, ecx
cmp word [edi], cx
je 0x413cc8
nop
inc ecx
cmp word [edi + ecx*2], 0
jne 0x413cc0
add eax, ecx
mov dword [ebp - 0x84], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046b90c
mov ecx, dword [esi + 0x110]
add esp, 4
mov dword [ebp - 0x90], eax
mov edx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x413d34
movzx ecx, word [ecx]
mov esi, ecx
mov dword [ebp - 0x94], esi
mov esi, dword [ebp - 0x3c]
test cx, cx
je 0x413d34
mov esi, dword [ebp - 0x18]
sub esi, eax
mov eax, ecx
movzx ecx, ax
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + esi]
mov ecx, eax
test ax, ax
jne 0x413d20
mov esi, dword [ebp - 0x3c]
test edi, edi
je 0x413d5a
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x413d5a
mov esi, edi
sub esi, edx
mov word [edx], cx
add edx, 2
movzx eax, word [esi + edx]
mov ecx, eax
test ax, ax
jne 0x413d46
mov esi, dword [ebp - 0x3c]
xor eax, eax
mov word [edx], ax
mov eax, dword [esi + 0x110]
test eax, eax
je 0x413d72
push eax
call fcn.0046b303
add esp, 4
mov eax, dword [ebp - 0x90]
inc dword [ebp - 0x80]
mov dword [esi + 0x110], eax
mov eax, dword [ebp - 0x84]
mov dword [esi + 0x114], eax
jmp 0x413b1d
push dword [esi + 0x20c]
call dword [sym.imp.SHELL32.dll_DragFinish]
mov edx, dword [esi + 0x210]
push ecx
push dword [esi + 0x214]
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x84], 0
call fcn.0040c580
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x413e5b
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
mov dword [ebp - 0x84], ecx
test edx, edx
je 0x413e01
cmp ecx, 1
jl 0x413e01
cmp ecx, dword [esi + 0x40]
jg 0x413e01
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0x3c]
je 0x413e04
cmp dword [ecx + 4], eax
jne 0x413e04
jmp 0x413e5b
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x413e51
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
test edx, edx
je 0x413e51
cmp ecx, 1
jl 0x413e51
cmp ecx, dword [esi + 0x40]
jg 0x413e51
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
lea edx, [edx + eax*8]
je 0x413e51
mov eax, dword [ebp - 0x18]
cmp dword [edx + 4], eax
mov eax, 0
cmovne ecx, eax
mov dword [ebp - 0x84], ecx
jmp 0x413e5b
mov dword [ebp - 0x84], 0
cmp dword [esi + 0x110], 0
jne 0x413e7f
push 2
call fcn.0046b90c
add esp, 4
mov dword [esi + 0x110], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 0x114], ecx
mov edx, dword [esi + 0x110]
mov byte [esi + 0x118], 1
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x413edf
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffffb
mov eax, dword [esi + 0x1c0]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x1c0]
mov dword [eax + 0x10], edx
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x38], 1
push edi
call fcn.0046b303
add esp, 4
jmp 0x413f4b
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x413efe
cmp edi, eax
jne 0x413f0e
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
mov eax, dword [esi + 0x1ec]
movzx ecx, ax
test eax, eax
je 0x413f4b
mov eax, ecx
or eax, 0x534b0000
jmp 0x413f4d
cmp ecx, 0xcb0
jne case.0x413888.531
push edi
push edx
mov dword [eax + 0x30], esi
push 0xcb1
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [ebp - 0x94]
mov byte [eax], 1
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046b2f5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10