Function at 0x40e620
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 0x49ce5d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x88
mov eax, dword [0x4d7200]
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.0x410d32.531
mov ecx, dword [ebx + 8]
cmp ecx, 0x102
ja 0x40fda6
je 0x40fc94
lea eax, [ecx - 3]
cmp eax, 0xa0
ja case.0x410d32.531
movzx eax, byte [eax + 0x411464]
jmp dword [eax*4 + 0x411410]
mov eax, dword [ebp - 0x7c]
cmp eax, dword [esi + 0x230]
jne case.0x410d32.531
cmp dword [esi + 0x24c], 0
jne 0x4113eb
jmp case.0x410d32.531
cmp dword [esi + 0x24c], 0
je case.0x410d32.531
mov eax, dword [ebp - 0x7c]
cmp eax, dword [esi + 0x230]
jne case.0x410d32.531
test edx, edx
je 0x4113eb
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 0x4113ed
mov edi, dword [ebp - 0x7c]
cmp edi, dword [esi + 0x230]
jne case.0x410d32.531
test dx, dx
je 0x40e31e
mov ecx, dword [esi + 0x40]
mov edx, 1
mov dword [ebp - 0x3c], edx
cmp ecx, edx
jle 0x40e2c8
mov edi, 0x48
mov dword [ebp - 0x84], edi
nop word [eax + eax]
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x40e2a9
cmp edx, 1
jl 0x40e2a9
cmp edx, ecx
jg 0x40e2a9
cmp dword [eax + edi + 0xc], 0
je 0x40e2a9
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 0x40e279
push ecx
push 0
push ecx
mov ecx, esi
call fcn.004166a0
jmp 0x40e2a6
lea eax, [ecx + ecx*8]
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + eax*8]
cmp eax, 0x23
je 0x40e28c
cmp eax, 0x24
jne 0x40e2a9
mov eax, dword [edi + 0x44]
test eax, eax
je 0x40e2a9
mov ecx, dword [eax + 0x14]
cmp dword [edi + 0x1c], ecx
je 0x40e2a9
push ecx
push dword [eax + 4]
mov ecx, esi
call fcn.004138f0
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 0x40e240
mov edi, dword [ebp - 0x7c]
cmp dword [esi + 0x1c0], 0
mov eax, dword [esi + 0x230]
mov dword [ebp - 0x90], eax
je 0x40e303
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x40e2f3
cmp eax, ecx
jne 0x40e303
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 0x40e383
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffed
jmp 0x40e34a
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 0x40e383
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.0x410d32.531
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40e3a6
cmp edi, eax
jne 0x40e3b6
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.0x410d32.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 0x40fe70
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40e3f8
cmp edi, eax
jne 0x40e408
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.0x410d32.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 0x40fe70
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40e44a
cmp edi, eax
jne 0x40e45a
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.0x410d32.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 0x40fe70
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40e49c
cmp edi, eax
jne 0x40e4ac
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 0x4113eb
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40e4da
cmp edi, eax
jne 0x40e4ea
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 0x40e52a
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
test edx, edx
je 0x40e52a
cmp ecx, 1
jl 0x40e52a
cmp ecx, dword [esi + 0x40]
jg 0x40e52a
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x40e52a
cmp dword [edx + eax*8 + 4], edi
jne 0x40e52a
mov dword [esi + 0x25c], ecx
mov edi, ecx
jmp 0x40e52c
xor edi, edi
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffea
jmp 0x40e99a
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 0x40e9a6
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe1
jmp 0x410d9a
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 0x40fe07
test edx, edx
je 0x40e5c7
cmp edx, 2
jne 0x40e5fb
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40e5db
cmp edi, eax
jne 0x40e5eb
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.0040ca40
mov ecx, dword [ebx + 8]
jmp 0x40e5fe
mov edi, dword [ebp - 0x7c]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffffc
jmp 0x410ead
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 0x40e642
cmp eax, ecx
jne 0x40e652
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 0x4113eb
cmp edx, 1
jl 0x4113eb
cmp edx, dword [esi + 0x40]
jg 0x4113eb
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 0x4113eb
mov ecx, dword [edi + 8]
cmp ecx, 0xfffffffe
je 0x40e6a7
cmp ecx, 0xfffffffc
jne 0x40e7e4
mov esi, dword [ebp - 0x90]
cmp dword [esi], 0x1f
mov esi, dword [ebp - 0x3c]
jne 0x40e765
lea eax, [edi + 0x7c]
lea ecx, [esi + 0x110]
push eax
call fcn.00401860
cmp dword [esi + 0x110], 0
lea ecx, [esi + 0x110]
jne 0x40e6f1
push 2
call fcn.0048a2cb
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 0x4113eb
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 0x4113eb
cmp ecx, 0xfffffffe
jne 0x40e7e4
mov esi, dword [ebp - 0x88]
cmp dword [eax + esi], 0x1b
mov esi, dword [ebp - 0x3c]
jne 0x40e7e4
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x4113eb
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 0x41031e
test edi, edi
jmp 0x4107aa
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 0x40e805
cmp ecx, 0xfffffd3a
jne 0x40e805
mov edi, dword [edi + 0xc]
jmp 0x40e52c
cmp ecx, 0xfffffffd
jne 0x40e850
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x410ecc
cmp ecx, 0xfffffffc
jne 0x40e89b
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x410ecc
cmp ecx, 0xfffffff9
jne 0x40e8da
cmp dword [esi + 0x1c0], 0
mov edi, dword [esi + 0x230]
je 0x4113eb
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40e8c5
cmp edi, eax
jne 0x4113eb
mov eax, dword [esi + 0x1c0]
xor ecx, ecx
test edi, edi
cmovne ecx, esi
mov dword [eax + 0x34], ecx
jmp 0x4113eb
cmp eax, 0x19
jne 0x40eb34
cmp ecx, 0xfffffdd8
jne 0x40e9c0
push 0
push 0
push 0x130b
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x4113eb
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 0x4113eb
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x4113eb
cmp edi, 1
jl 0x4113eb
cmp edi, dword [esi + 0x40]
jg 0x4113eb
lea eax, [edi + edi*8]
cmp dword [ecx + eax*8 + 0xc], 0
je 0x4113eb
mov eax, dword [ecx + eax*8 + 4]
mov dword [esi + 0x240], eax
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x410ecc
cmp ecx, 0xfffffdd9
jne 0x4113eb
push 0
push 0
push 0x130b
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x4113eb
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 0x4113eb
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x4113eb
cmp eax, 1
jl 0x4113eb
cmp eax, dword [esi + 0x40]
jg 0x4113eb
lea eax, [eax + eax*8]
shl eax, 3
mov dword [ebp - 0x18], eax
cmp dword [eax + ecx + 0xc], 0
je 0x4113eb
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 0x40eae4
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 0x4113eb
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 0x410ecc
cmp eax, 0xf
jne 0x40f27a
cmp ecx, 0xffffff98
je 0x4113eb
cmp ecx, 0xffffff50
jne 0x40ebb8
push dword [edi + 0x20]
lea ecx, [esi + 0x110]
call fcn.00401860
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0x10]
test eax, eax
je 0x4113eb
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 0x4113eb
cmp ecx, 0xffffff99
jne 0x40ec63
mov edi, dword [edi + 0x28]
mov dword [ebp - 0x18], edi
test edi, edi
je 0x40ec1d
mov eax, dword [edi + 0x14]
test eax, eax
je 0x40ec04
push 0x40bf10
lea edi, [eax - 4]
mov dword [ebp - 4], 1
push dword [edi]
push 0x14
push eax
call fcn.0048a1a8
mov eax, dword [edi]
lea eax, [eax + eax*4]
lea eax, [eax*4 + 4]
push eax
push edi
call fcn.00489f18
mov edi, dword [ebp - 0x18]
add esp, 8
mov eax, dword [edi + 8]
test eax, eax
je 0x40ec12
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0x20
push edi
call fcn.0048a2bd
add esp, 8
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x410ecc
cmp ecx, 0xffffff94
jne 0x40ecec
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 0x40ec90
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edi]
push 0
call fcn.0040aea0
jmp 0x4113eb
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x4113eb
cmp ecx, 0xffffff9c
jne 0x40ed89
mov eax, dword [esi + 0x248]
shr eax, 3
test al, 1
je 0x4113eb
test byte [edi + 0x14], 2
je 0x4113eb
test byte [edi + 0x18], 2
jne 0x4113eb
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x4113eb
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 0x410d81
jmp 0x4113eb
cmp ecx, 0xffffff9b
jne 0x40efa0
mov eax, dword [edi + 0x14]
test al, 2
je 0x40edff
test byte [edi + 0x18], 2
jne 0x40ee61
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x4113eb
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 0x4113eb
test byte [edi + 0x18], 2
je 0x40ee61
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x4113eb
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 0x4113eb
test al, 1
jne 0x40eec7
test byte [edi + 0x18], 1
je 0x40eec7
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x4113eb
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 0x4113eb
test eax, 0x2000
je 0x40ef37
test dword [edi + 0x18], 0x2000
jne 0x4113eb
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x4113eb
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 0x4113eb
test dword [edi + 0x18], 0x2000
je 0x4113eb
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0xc]
test eax, eax
je 0x4113eb
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 0x4113eb
cmp ecx, 0xffffff4c
je 0x40f204
cmp ecx, 0xffffff4b
je 0x40f204
cmp ecx, 0xfffffff4
jne 0x4113eb
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x40f49f
cmp eax, 0x10001
jne 0x40f0f7
cmp dword [edi + 0x3c], 0
jne 0x4113eb
mov esi, dword [edi + 0x2c]
mov dword [ebp - 0x84], esi
test esi, esi
je 0x4113eb
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x40f012
cmp dword [esi], 0xffffffff
jne 0x40f012
cmp dword [esi + 0x10], eax
jne 0x40f012
cmp dword [esi + 4], 0xffffffff
jne 0x40f012
mov byte [ebp - 0x89], al
jmp 0x40f02e
mov byte [ebp - 0x89], 1
test eax, eax
je 0x40f02e
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 0x40f038
mov dword [edi + 0x30], eax
cmp dword [esi + 0x10], 0
je 0x40f0ce
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esi + 8]
test eax, eax
je 0x40f062
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.004012e0
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 0x40f0b0
mov eax, dword [eax + 4]
jmp 0x40f0b2
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 0x40f0d9
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x40f0d9
mov dword [edi + 0x34], eax
cmp dword [esi + 0x14], 0
je 0x40f0e9
cmp dword [esi + 0x18], 0
jne 0x40f49f
movzx eax, byte [ebp - 0x89]
add eax, eax
jmp 0x4113ed
cmp eax, 0x30001
jne 0x4113eb
cmp dword [edi + 0x3c], 0
jne 0x4113eb
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x4113eb
mov eax, dword [edi + 0x38]
test eax, eax
js 0x4113eb
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x4113eb
cmp eax, dword [ecx + 0x18]
jg 0x4113eb
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 0x40f1df
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esi + 8]
test eax, eax
je 0x40f171
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.004012e0
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 0x40f1c5
mov ecx, dword [ecx + 4]
jmp 0x40f1c7
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 0x4113eb
push eax
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, 2
jmp 0x4113ed
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.0x410d32.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.0x410d32.531
cmp eax, 0x1d
jne 0x4113eb
cmp ecx, 0xfffffe36
jne 0x40f2ff
mov eax, dword [edi + 0x34]
mov ecx, dword [esi + 0x1c0]
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x40f2e7
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 0x4113eb
push 0xc
push eax
call fcn.0048a2bd
add esp, 8
jmp 0x4113eb
cmp ecx, 0xfffffe60
je 0x40f55a
cmp ecx, 0xfffffe5f
je 0x40f55a
cmp ecx, 0xfffffe5e
je 0x40f4fe
cmp ecx, 0xfffffe5d
je 0x40f4fe
cmp ecx, 0xfffffe3a
jne 0x40f3f9
test byte [edi + 0xc], 2
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x1c0]
je 0x40f3a3
test eax, eax
je 0x4113eb
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 0x4113eb
test eax, eax
je 0x4113eb
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 0x4113eb
cmp ecx, 0xfffffe3d
jne 0x40f45d
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0x3c]
test eax, eax
je 0x4113eb
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 0x4113eb
cmp ecx, 0xfffffffb
jne 0x40f48e
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 8
push 0x110a
push dword [edi]
call esi
test eax, eax
je 0x4113eb
push eax
push 9
push 0x110b
push dword [edi]
call esi
jmp 0x4113eb
cmp ecx, 0xfffffff4
jne 0x4113eb
mov eax, dword [edi + 0xc]
cmp eax, 1
jne 0x40f4a9
mov eax, 0x20
jmp 0x4113ed
cmp eax, 0x10001
jne 0x4113eb
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x4113eb
test byte [edi + 0x28], 0x10
jne 0x40f4da
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x40f4cf
mov dword [edi + 0x30], ecx
mov ecx, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x40f4da
mov dword [edi + 0x34], ecx
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4113eb
mov eax, dword [edi + 0x10]
test eax, eax
je 0x40f4f4
push ecx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, 2
jmp 0x4113ed
mov eax, dword [esi + 0x1c0]
mov edi, dword [edi + 0x10]
test eax, eax
je 0x4113eb
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 0x4113eb
mov ecx, dword [esi + 0x3c]
lea eax, [edx + edx*8]
test byte [ecx + eax*8 + 0x44], 1
je 0x40f63c
push 0xfffffffffffffff0
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x100
je 0x40f63c
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 0x4113eb
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]
nop word [eax + eax]
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 0x40f600
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 0x4113eb
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 0x4113eb
mov eax, dword [esi + 0x220]
mov dword [ebp - 0x3c], 0
test eax, eax
je 0x40f74a
cmp edx, dword [ebp - 0x7c]
jne 0x40f74a
cmp di, 1
jne 0x40f74a
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 0x40f6eb
cmp edi, 1
jl 0x40f6eb
cmp edi, dword [esi + 0x40]
jg 0x40f6eb
lea eax, [edi + edi*8]
cmp dword [edx + eax*8 + 0xc], 0
jne 0x40f6ed
xor edi, edi
mov ecx, dword [esi + 0x25c]
cmp ecx, edi
je 0x40f84d
test ecx, ecx
je 0x40f808
test edx, edx
je 0x40f808
cmp ecx, 1
jl 0x40f808
cmp ecx, dword [esi + 0x40]
jg 0x40f808
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
lea eax, [edx + eax*8]
mov dword [ebp - 0x18], eax
je 0x40f808
cmp dword [eax], 0x22
jne 0x40f7db
push ecx
push 0
push ecx
mov ecx, esi
call fcn.004166a0
jmp 0x40f808
test edx, edx
je 0x40f6ce
push 0xfffffffffffffff4
push edx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov edi, eax
test edx, edx
je 0x40f6ce
cmp edi, 1
jl 0x40f6ce
cmp edi, dword [esi + 0x40]
jg 0x40f6ce
lea eax, [edi + edi*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x40f6ce
mov ecx, dword [ebp - 0x88]
cmp dword [edx + eax*8 + 4], ecx
jne 0x40f6ce
lea eax, [edi + edi*8]
cmp dword [edx + eax*8], 0x22
jne 0x40f7b9
lea eax, [edi + edi*8]
mov eax, dword [edx + eax*8 + 0x44]
test eax, eax
je 0x40f7b9
cmp dword [eax], 3
jle 0x40f7b9
mov dword [ebp - 0x3c], 0
jmp 0x40f6d0
lea eax, [edi + edi*8]
mov eax, dword [edx + eax*8 + 0x18]
test eax, eax
je 0x40f6d0
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [ebp - 0x3c], 1
jmp 0x40f6d0
lea eax, [ecx + ecx*8]
mov eax, dword [edx + eax*8]
cmp eax, 0x23
je 0x40f7eb
cmp eax, 0x24
jne 0x40f808
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x40f808
mov edx, dword [ecx + 0x14]
cmp dword [eax + 0x1c], edx
je 0x40f808
push edx
push dword [ecx + 4]
mov ecx, esi
call fcn.004138f0
test edi, edi
je 0x40f84d
mov eax, dword [esi + 0x3c]
lea ecx, [edi + edi*8]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x22
jne 0x40f829
push ecx
push 1
push edi
mov ecx, esi
call fcn.004166a0
jmp 0x40f84d
cmp eax, 0x23
je 0x40f833
cmp eax, 0x24
jne 0x40f84d
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x40f84d
mov edx, dword [eax + 0x18]
cmp dword [ecx + 0x1c], edx
je 0x40f84d
push edx
push dword [eax + 4]
mov ecx, esi
call fcn.004138f0
mov eax, dword [esi + 0x1c0]
mov dword [esi + 0x25c], edi
test eax, eax
je 0x40f8a4
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.0x410d32.531
jmp 0x4113ed
mov edx, dword [esi + 0x144]
mov ecx, dword [esi + 0x140]
lea eax, [ecx + edx]
test eax, eax
je 0x40f8cd
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 0x4113eb
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
jmp 0x4113eb
mov edx, dword [esi + 0x230]
mov ecx, dword [ebp - 0x7c]
cmp ecx, edx
jne 0x4113eb
test edi, edi
je 0x4113eb
test byte [edi + 0x18], 2
jne 0x40f9bd
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [ebp - 0x3c], eax
test edx, edx
je 0x40f9bd
cmp dword [esi + 0x4c], 0
je 0x40f9bd
lea eax, [esi + 0x120]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x40f9ba
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 0x40f9ba
lea edi, [esi + 0x50]
mov ecx, dword [edi]
test ecx, ecx
je 0x40f9ab
push edx
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x40f99f
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 0x40f966
mov ecx, dword [ebp - 0x7c]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x410ebf
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 0x40fa10
cmp eax, ecx
jne 0x40fa20
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
test edi, edi
je 0x4113eb
test byte [edi + 0x18], 1
jne 0x4113eb
mov edi, dword [ebp - 0x7c]
mov ecx, esi
push edi
call fcn.0040ca40
cmp dword [esi + 0x204], 2
jne 0x40fa56
push 1
push 0
push dword [esi + 0x230]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x410eb6
cmp dword [esi + 0x204], 3
je case.0x410d32.531
cmp dword [esi + 0x1fc], 0
je 0x410d81
cmp dword [esi + 0x3c], 0
je 0x40fc09
cmp dword [esi + 0x40], 1
mov dword [ebp - 0x84], 1
jl 0x40fc09
mov edi, 0x48
mov eax, dword [esi + 0x3c]
cmp dword [edi + eax + 0xc], 0
je 0x40fbf0
mov edx, dword [edi + eax + 4]
test edx, edx
je 0x40fbf0
test dword [edi + eax + 0x3c], 0x400
je 0x40fbf0
mov ecx, dword [edi + eax]
cmp ecx, 0x1e
je 0x40fbf0
cmp ecx, 0x1c
je 0x40fbf0
cmp dword [edi + eax + 0x20], 0xfffffffe
je 0x40fbf0
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x40fbf0
mov eax, dword [esi + 0x3c]
push dword [edi + eax + 4]
call dword [sym.imp.USER32.dll_GetParent]
cmp eax, dword [esi + 0x230]
jne 0x40fbf0
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 0x40fbf0
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 0x40fb9e
cmp eax, 0x20
jne 0x40fb78
cmp dword [ecx + edi + 0x40], 0
jne 0x40fb9e
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 0x40fbf0
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 0x40fbe7
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 0x40fac1
lea edi, [esi + 0x120]
push edi
push dword [ebp - 0x7c]
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x40fc7c
cmp dword [esi + 0x204], 2
jne 0x40fc69
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 0x40fc7c
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 0x4113ed
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 0x40fcb0
cmp eax, ecx
jne 0x40fcc0
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 0x40fd1e
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 0x40fd1e
mov eax, dword [ebp - 0x80]
test edx, edx
je 0x40fd2a
mov edi, dword [esi + 0x230]
jmp 0x40fd2c
xor edi, edi
test eax, eax
je 0x40fd54
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40fd3e
cmp edi, eax
jne 0x40fd4e
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 0x40fd6c
cmp dword [esi + 0x24c], 0
jne 0x410d81
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.0x410d32.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 0x40e5a3
cmp ecx, 0x211
ja 0x410d11
je 0x410cfd
lea eax, [ecx - 0x110]
cmp eax, 0xfa
ja case.0x410d32.531
movzx eax, byte [eax + 0x411548]
jmp dword [eax*4 + 0x411508]
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.0x410d32.531
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40fe37
cmp edi, eax
jne 0x40fe47
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.0x410d32.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 0x40fe07
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff3
jmp 0x40fde9
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40febb
cmp edi, eax
jne 0x40fecb
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.0x410d32.531
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff2
jmp 0x40fde9
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40ff0a
cmp edi, eax
jne 0x40ff1a
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.0x410d32.531
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff1
jmp 0x40fde9
mov eax, dword [ebp - 0x80]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffef
jmp 0x40fde9
push edi
push edx
push ecx
push dword [ebp - 0x7c]
call dword [sym.imp.USER32.dll_DefDlgProcW]
jmp 0x4113ed
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x40ff81
cmp edi, eax
jne 0x40ff91
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.0040e060
mov eax, dword [ebp - 0x88]
cmp eax, 0xf120
jne 0x40ffaf
mov ecx, 0xfffffff8
jmp 0x40fff0
cmp eax, 0xf030
jne 0x40ffbd
mov ecx, 0xfffffff7
jmp 0x40fff0
cmp eax, 0xf020
jne 0x40ffcb
mov ecx, 0xfffffff9
jmp 0x40fff0
cmp eax, 0xf060
jne 0x40ffe0
push 0
push 0
push 0xcae
jmp 0x4113d6
cmp eax, 0xf010
jne case.0x410d32.531
mov ecx, 0xffffffe8
mov eax, dword [esi + 0x1c0]
test eax, eax
je case.0x410d32.531
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], ecx
mov ecx, dword [ebx + 8]
jmp 0x40e597
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 0x40fde9
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x410057
cmp edx, eax
jne 0x410067
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 0x4100df
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
test edx, edx
je 0x4100df
cmp ecx, 1
jl 0x4100df
cmp ecx, dword [esi + 0x40]
jg 0x4100df
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x4100df
cmp dword [edx + eax*8 + 4], edi
jne 0x4100df
lea eax, [ecx + ecx*8]
test dword [edx + eax*8 + 0x3c], 0x1000
je 0x4100df
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.0x410d32.531
mov ecx, dword [ebx + 8]
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xfffffff6
jmp 0x40e597
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 0x41012a
mov byte [ebp - 0x89], cl
test edi, edi
je 0x410131
mov byte [ebp - 0x89], 0
cmp dword [esi + 0x3c], 0
mov ecx, dword [ebx + 8]
movzx eax, ax
je case.0x410d32.531
cmp eax, 1
jb case.0x410d32.531
cmp eax, dword [esi + 0x40]
jg case.0x410d32.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.0x410d32.531
mov eax, dword [eax]
cmp eax, 5
je 0x4105f7
cmp eax, 6
je 0x4105f7
cmp eax, 9
je 0x410543
cmp eax, 0xc
je 0x410543
cmp byte [ebp - 0x89], 0
jne 0x4101fd
cmp word [ebp - 0x18], dx
jne 0x4101fd
cmp eax, 0x13
je 0x4101b7
cmp eax, 0xd
je 0x4101b7
cmp eax, 0xb
jne 0x410213
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x410ecc
mov dword [ebp - 0x18], 0
cmp word [ebp - 0x18], dx
je 0x410258
cmp byte [ebp - 0x89], 0
jne 0x410258
cmp eax, 0x23
jne 0x410227
mov eax, 1
cmp ax, dx
je 0x41027e
jmp 0x4113eb
cmp eax, 0x25
jne 0x41023f
mov eax, 1
cmp ax, dx
je 0x4103b7
jmp 0x4113eb
cmp eax, 0x22
jne 0x4113eb
mov eax, 1
cmp ax, dx
jne 0x4113eb
jmp 0x41025d
cmp eax, 0x22
jne 0x410275
mov eax, dword [ebp - 0x80]
mov ecx, esi
push 0x80
movzx eax, ax
push eax
call fcn.00414360
jmp 0x4104ec
cmp eax, 0x23
jne 0x41032d
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 0x4113eb
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.00414360
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x4107a8
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x39], 1
jmp 0x4113eb
cmp eax, 0x24
jne 0x4103ae
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 0x4113eb
cmp dword [eax + 8], 4
je 0x41036c
mov eax, dword [ebp - 0x80]
mov ecx, esi
push 4
movzx eax, ax
push eax
call fcn.00414360
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 0x4113eb
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 0x4102f5
cmp eax, 0x25
jne 0x41045a
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 0x4103f5
cmp byte [ecx + 0xc], 0
je 0x4103f5
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.00414360
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x80]
mov eax, dword [esi + 0x1c0]
movzx ecx, cx
test eax, eax
je 0x4104ec
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 0x4104ec
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 0x410499
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 0x4104ec
mov eax, dword [ebp - 0x90]
cmp dword [eax], 0x27
jne 0x4104ef
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 0x4113eb
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 0x40e74c
mov eax, 0x400
cmp ax, dx
jne 0x41056f
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb5
jmp 0x4106f5
mov eax, 0x300
cmp ax, dx
jne 0x41059b
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb4
jmp 0x4106f5
mov eax, 0x100
cmp ax, dx
jne 0x4105c7
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb3
jmp 0x4106f5
mov eax, 0x200
cmp ax, dx
jne 0x4113eb
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffb2
jmp 0x4106f5
mov eax, 1
cmp ax, dx
jne 0x410623
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbf
jmp 0x4106f5
mov eax, 7
cmp ax, dx
jne 0x41064f
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbe
jmp 0x4106f5
mov eax, 8
cmp ax, dx
jne 0x410678
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbd
jmp 0x4106f5
mov eax, 3
cmp ax, dx
jne 0x4106a1
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbc
jmp 0x4106f5
mov eax, 2
cmp ax, dx
jne 0x4106ca
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffbb
jmp 0x4106f5
mov eax, 5
cmp ax, dx
jne 0x4113eb
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x4113eb
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 0x41074d
cmp eax, ecx
jne 0x41075d
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 0x4113eb
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 0x4102f5
test edx, edx
jle 0x4113eb
mov eax, dword [esi + 0x1c0]
mov byte [eax + 0x39], 0
jmp 0x4113eb
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 0x4107db
cmp eax, ecx
jne 0x4107eb
xor ecx, ecx
test eax, eax
mov eax, dword [esi + 0x1c0]
cmovne ecx, esi
mov dword [eax + 0x34], ecx
test edi, edi
je case.0x410d32.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.0x410d32.531
cmp ecx, 1
jl case.0x410d32.531
cmp ecx, dword [esi + 0x40]
jg case.0x410d32.531
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je case.0x410d32.531
cmp dword [edx + eax*8 + 4], edi
jne case.0x410d32.531
mov eax, edx
lea ecx, [ecx + ecx*8]
cmp dword [eax + ecx*8], 0x17
jne case.0x410d32.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 0x4113eb
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 0x4113eb
cmp dword [esi + 0x3c], 0
je case.0x410d32.531
test edi, edi
je case.0x410d32.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.0x410d32.531
cmp ecx, 1
jl case.0x410d32.531
cmp ecx, dword [esi + 0x40]
jg case.0x410d32.531
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je case.0x410d32.531
cmp dword [edx + eax*8 + 4], edi
jne case.0x410d32.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 0x410938
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 0x410952
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.0x410d32.531
jmp 0x4113ed
cmp dword [esi + 0x3c], 0
je case.0x410d32.531
test edi, edi
je case.0x410d32.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.0x410d32.531
cmp ecx, 1
jl case.0x410d32.531
cmp ecx, dword [esi + 0x40]
jg case.0x410d32.531
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je case.0x410d32.531
cmp dword [edx + eax*8 + 4], edi
jne case.0x410d32.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 0x4109db
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 0x410a00
push 1
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
push 5
call dword [sym.imp.GDI32.dll_GetStockObject]
jmp 0x4113ed
cmp eax, 0xffffffff
je 0x410a21
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 0x410a2a
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 0x410c98
test ecx, ecx
je case.0x410d32.531
mov eax, dword [ebp - 0x7c]
cmp eax, dword [esi + 0x40]
jg case.0x410d32.531
lea eax, [eax + eax*8]
cmp dword [ecx + eax*8 + 0xc], edx
lea ecx, [ecx + eax*8]
je case.0x410d32.531
test edi, edi
je case.0x410d32.531
mov eax, dword [esi + 0x204]
test eax, eax
jne 0x410a80
mov edx, dword [esi + 0x1fc]
jmp 0x410c8d
cmp eax, 3
jne 0x410a90
mov edx, dword [esi + 0x1fc]
jmp 0x410c8d
lea eax, [esi + 0x120]
push eax
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
jne 0x410aaf
mov edx, dword [esi + 0x1fc]
jmp 0x410c8d
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.0x410d32.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 0x410bf3
cmp dword [esi + 0x1e8], 0
je 0x410bf3
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 0x410c43
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 0x410c67
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.0x410d32.531
mov eax, dword [ebp - 0x7c]
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x3c]
cmp dword [eax + ecx*8], 0xa
jne 0x410cf6
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 0x410ce4
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.0x410d32.531
mov eax, edx
jmp 0x4113ed
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffff32
jmp 0x40e597
cmp ecx, 0x232
ja 0x410ee8
je 0x410ddc
lea edi, [ecx - 0x212]
cmp edi, 7
ja case.0x410d32.531
jmp dword [edi*4 + 0x411644]
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 0x4113ed
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 0x410ebf
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffff31
jmp 0x40e597
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffff30
jmp 0x40fde9
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x410df0
cmp edi, eax
jne 0x410e00
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.0040ca40
cmp dword [esi + 0x40], 1
jl 0x410e8d
mov ecx, 0x48
mov dword [ebp - 0x3c], ecx
lea edi, [ecx - 0x47]
nop dword [eax]
add ecx, dword [esi + 0x3c]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x90], eax
test eax, eax
je 0x410e7d
test dword [ecx + 0x3c], 0x8000
je 0x410e7d
lea ecx, [ebp - 0x2c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x410e7d
push dword [ebp - 0x90]
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x410e7d
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 0x410e20
mov edi, dword [ebp - 0x7c]
mov eax, dword [esi + 0x1c0]
test eax, eax
je 0x4113eb
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 0x4113eb
cmp ecx, 0x400
ja 0x4113c4
je 0x41138a
mov edi, ecx
sub edi, 0x233
je 0x410f21
sub edi, 0x6f
jne case.0x410d32.531
mov dword [eax + 0x30], esi
mov eax, dword [esi + 0x1c0]
mov dword [eax], 0xffffffe9
jmp 0x40fde9
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x410f35
cmp edi, eax
jne 0x410f45
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 0x410f74
push dword [esi + 0x20c]
call dword [sym.imp.SHELL32.dll_DragFinish]
jmp 0x4113eb
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 0x410fa2
push eax
call fcn.00489f13
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.0048a2cb
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 0x410ffc
push eax
call fcn.00489f13
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 0x411232
cmp dword [ebp - 0x80], 0
je 0x4110f5
xor eax, eax
mov byte [ebp - 0x20], 0
cmp word [edi], ax
je 0x41103d
nop
inc eax
cmp word [edi + eax*2], 0
jne 0x411030
mov dword [ebp - 0x24], eax
jmp 0x411042
mov dword [ebp - 0x24], eax
xor eax, eax
xor ecx, ecx
inc ecx
cmp word [ecx*2 + 0x4c013c], 0
jne 0x411044
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.0048a2cb
mov edx, 0x4c013c
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 0x411090
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 0x4110d1
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 0x4110c0
xor eax, eax
push edi
mov word [ecx], ax
call fcn.00489f13
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 0x411110
push 2
call fcn.0048a2cb
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 0x411154
mov ecx, dword [esi + 0x110]
mov dword [ebp - 0x84], eax
test ecx, ecx
je 0x41114e
cmp word [ecx], ax
je 0x41114e
inc eax
cmp word [ecx + eax*2], 0
jne 0x411140
mov dword [ebp - 0x84], eax
mov dword [esi + 0x114], eax
test edi, edi
je 0x411170
xor ecx, ecx
cmp word [edi], cx
je 0x411168
nop
inc ecx
cmp word [edi + ecx*2], 0
jne 0x411160
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.0048a2cb
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 0x4111d4
movzx ecx, word [ecx]
mov esi, ecx
mov dword [ebp - 0x94], esi
mov esi, dword [ebp - 0x3c]
test cx, cx
je 0x4111d4
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 0x4111c0
mov esi, dword [ebp - 0x3c]
test edi, edi
je 0x4111fa
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x4111fa
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 0x4111e6
mov esi, dword [ebp - 0x3c]
xor eax, eax
mov word [edx], ax
mov eax, dword [esi + 0x110]
test eax, eax
je 0x411212
push eax
call fcn.00489f13
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 0x410fbd
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.00409830
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4112fb
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 0x4112a1
cmp ecx, 1
jl 0x4112a1
cmp ecx, dword [esi + 0x40]
jg 0x4112a1
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0x3c]
je 0x4112a4
cmp dword [ecx + 4], eax
jne 0x4112a4
jmp 0x4112fb
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4112f1
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, dword [esi + 0x3c]
mov ecx, eax
test edx, edx
je 0x4112f1
cmp ecx, 1
jl 0x4112f1
cmp ecx, dword [esi + 0x40]
jg 0x4112f1
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
lea edx, [edx + eax*8]
je 0x4112f1
mov eax, dword [ebp - 0x18]
cmp dword [edx + 4], eax
mov eax, 0
cmovne ecx, eax
mov dword [ebp - 0x84], ecx
jmp 0x4112fb
mov dword [ebp - 0x84], 0
cmp dword [esi + 0x110], 0
jne 0x41131f
push 2
call fcn.0048a2cb
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 0x41137f
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.00489f13
add esp, 4
jmp 0x4113eb
mov edi, dword [esi + 0x230]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test edi, edi
je 0x41139e
cmp edi, eax
jne 0x4113ae
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 0x4113eb
mov eax, ecx
or eax, 0x534b0000
jmp 0x4113ed
cmp ecx, 0xcb0
jne case.0x410d32.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.00489f05
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10