Function at 0x415682
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x46400c]
xor eax, esp
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, ecx
mov dword [esp + 0x4c], eax
mov ecx, dword [ebp + 0xc]
push esi
mov esi, edx
mov dword [esp + 0x58], ebx
mov eax, dword [ebx + 0x180]
mov edx, dword [ebp + 8]
mov dword [esp + 0x10], esi
mov dword [esp + 8], ecx
mov dword [eax + 0x30], ebx
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x10], edi
cmp edx, 0x110
ja 0x4162bf
je case.0x4162e9.289
lea eax, [edx - 3]
cmp eax, 0xa0
ja case.0x4162e9.275
movzx eax, byte [eax + 0x416af0]
jmp dword [eax*4 + 0x416ab0]
cmp esi, dword [ebx + 0x1ec]
jne case.0x4162e9.275
cmp byte [ebx + 0x202], 0
je case.0x4162e9.275
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
cmp byte [ebx + 0x202], 0
je case.0x4162e9.275
cmp esi, dword [ebx + 0x1ec]
jne case.0x4162e9.275
test ecx, ecx
je 0x416a9a
mov edi, dword [edi + 8]
mov eax, edi
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
sub eax, edx
mov dword [esp + 0x54], eax
dec edx
mov eax, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov esi, dword [eax + 0xc]
mov ebx, esi
mov ecx, dword [eax + 4]
sub ebx, ecx
movups xmmword [eax + 0x10], xmm0
mov eax, dword [esp + 0x5c]
dec ecx
movzx eax, byte [eax + 0x202]
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov edx, dword [esp + 0x5c]
movzx eax, byte [edx + 0x202]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
movzx eax, byte [edx + 0x202]
sub edi, eax
inc edi
mov dword [ecx + 8], edi
movzx eax, byte [edx + 0x202]
mov edx, dword [esp + 0x10]
sub esi, eax
mov eax, dword [ecx + 0x30]
inc esi
mov dword [ecx + 0xc], esi
mov ecx, dword [esp + 0x54]
mov dword [eax + 0x10], ecx
mov eax, dword [edx + 0x30]
mov dword [eax + 0x14], ebx
mov eax, 0x700
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + 0x180]
test ecx, ecx
push 0
push 0
push esi
push edx
mov ecx, ebx
je 0x4155c6
push 0xffffffffffffffee
mov dword [eax + 0x34], esi
call fcn.00418c10
mov dword [ebx + 0x210], 0
jmp case.0x4162e9.275
push 0xffffffffffffffed
mov dword [eax + 0x34], 0
call fcn.00418c10
mov dword [ebx + 0x210], 0
jmp case.0x4162e9.275
push 0
push ecx
push esi
push edx
push 0xffffffffffffffef
jmp 0x416a8c
push 0
push 0
push esi
push edx
push 0xfffffffffffffffb
mov ecx, ebx
call fcn.00418c10
jmp 0x416a9a
push 0xfffffffffffffff4
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov ecx, ebx
push edi
call fcn.004182f0
test al, al
jne 0x41562e
xor edi, edi
push edi
push edi
push esi
push dword [ebp + 8]
push 0xffffffffffffffeb
call fcn.00418c10
jmp 0x416a9a
push 0
push edi
push esi
push dword [ebp + 8]
mov dword [ebx + 0x210], edi
push 0xffffffffffffffeb
call fcn.00418c10
jmp 0x416a9a
push 0
push 0
push esi
push edx
push 0xffffffffffffffe7
mov ecx, ebx
call fcn.00418c10
jmp 0x416a9a
push 0
push 0
push esi
push edx
push 0xfffffffffffffffd
mov ecx, ebx
call fcn.00418c10
cmp dword [esp + 0xc], 3
jae 0x416a9a
push esi
mov ecx, ebx
call fcn.00414a40
jmp 0x416a9a
mov eax, dword [edi + 4]
mov ecx, ebx
push eax
mov dword [esp + 0x10], eax
call fcn.004182f0
test al, al
je 0x416a9a
mov edx, dword [edi + 8]
cmp edx, 0xfffffffe
jne 0x415703
mov edx, dword [esp + 0xc]
mov eax, dword [ebx]
lea ecx, [edx + edx*8]
mov eax, dword [eax + ecx*8]
cmp eax, 0x1f
jne 0x4156e4
lea eax, [edi + 0x7c]
push eax
lea ecx, [ebx + 0xd4]
call fcn.0040ab90
lea ecx, [ebx + 0xd4]
call fcn.0040ad30
push eax
push dword [edi + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.00418c10
jmp 0x416a9a
cmp eax, 0x1b
jne 0x416a9a
push 0
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push dword [edi + 0xc]
call fcn.00418c10
jmp 0x416a9a
mov eax, dword [esp + 0xc]
lea ecx, [eax + eax*8]
mov eax, dword [ebx]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x1b
jne 0x415735
cmp edx, 0xfffffd3a
jne 0x415735
push 0
push dword [edi + 0xc]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xffffffffffffffeb
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0xfffffffd
jne 0x415752
push 0
push dword [esp + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xfffffffffffffff3
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0xfffffffc
jne 0x41576f
push 0
push dword [esp + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xffffffffffffffe6
call fcn.00418c10
jmp 0x416a9a
cmp eax, 0x19
jne 0x4158c1
cmp edx, 0xfffffdd8
jne 0x4157e2
push 0
push 0
push 0x130b
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x416a9a
push eax
push dword [edi]
call fcn.00418320
mov edi, eax
test edi, edi
je 0x416a9a
push edi
mov ecx, ebx
call fcn.004182f0
test al, al
je 0x416a9a
mov eax, dword [ebx]
lea ecx, [edi + edi*8]
push 0
push dword [eax + ecx*8 + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push edi
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffdd
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0xfffffdd9
jne 0x416a9a
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xb
push dword [edi]
call esi
push 0
push 0
push 0x130b
push dword [edi]
call esi
cmp eax, 0xffffffff
je 0x416a9a
push eax
push dword [edi]
call fcn.00418320
mov dword [esp + 0x5c], eax
test eax, eax
je 0x416a9a
push eax
mov ecx, ebx
call fcn.004182f0
test al, al
je 0x416a9a
lea esi, [ebx + 0xe0]
push esi
push dword [edi]
call dword [sym.imp.USER32.dll_GetClientRect]
push esi
push 0
push 0x1328
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x5c]
mov edx, dword [esi]
mov ecx, dword [ebx + 0xe4]
push 0
lea esi, [eax + eax*8]
mov eax, dword [ebx + 0xec]
sub eax, ecx
push eax
mov eax, dword [ebx + 0xe8]
sub eax, edx
push eax
mov eax, dword [ebx]
push ecx
push edx
push dword [edi]
push dword [eax + esi*8 + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebx]
push 5
push dword [eax + esi*8 + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 1
push 0xb
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push dword [esp + 0x60]
mov ecx, ebx
push dword [esp + 0x1c]
push dword [ebp + 8]
push 0xffffffffffffffdc
call fcn.00418c10
jmp 0x416a9a
cmp eax, 0xf
jne 0x415c41
cmp edx, 0xffffff98
je 0x416a9a
cmp edx, 0xffffff99
jne 0x4158fd
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x4158e5
push ecx
call fcn.00416cd0
push 0
push dword [esp + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xffffffffffffffcf
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0xffffff94
jne 0x41591c
test byte [ecx + 0x44], 1
je 0x416a9a
mov edx, dword [edi + 0x10]
push ecx
mov ecx, dword [edi]
call fcn.00412f50
jmp 0x416a9a
cmp edx, 0xffffff9b
jne 0x4159c8
mov eax, dword [edi + 0x14]
mov ecx, eax
and ecx, 2
je 0x41594e
test byte [edi + 0x18], 2
jne 0x41594e
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd3
call fcn.00418c10
jmp 0x416a9a
test ecx, ecx
jne 0x415971
test byte [edi + 0x18], 2
je 0x415971
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd2
call fcn.00418c10
jmp 0x416a9a
and eax, 0x2000
je 0x41599a
test dword [edi + 0x18], 0x2000
jne 0x41599a
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd1
call fcn.00418c10
jmp 0x416a9a
test eax, eax
jne 0x416a9a
test dword [edi + 0x18], 0x2000
je 0x416a9a
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd0
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0xffffff4c
je 0x415c17
cmp edx, 0xffffff4b
je 0x415c17
cmp edx, 0xfffffff4
jne 0x416a9a
mov eax, dword [edi + 0xc]
cmp eax, 1
jne 0x415a0a
mov eax, 0x20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x10001
jne 0x415afc
cmp dword [edi + 0x3c], 0
jne 0x415afc
mov ebx, dword [edi + 0x2c]
mov dword [esp + 0x54], ebx
test ebx, ebx
je 0x416a9a
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x415a3f
push eax
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x415a49
mov dword [edi + 0x30], eax
cmp dword [ebx + 0x10], 0
je 0x415ad8
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx + 8]
test eax, eax
je 0x415a73
push eax
lea eax, [edi + 0x14]
push eax
push dword [edi + 0x10]
call dword [sym.imp.USER32.dll_FillRect]
mov ecx, dword [ebx + 0x10]
mov esi, dword [edi + 0x18]
call fcn.004023e0
mov edi, dword [edi + 0x20]
xorps xmm0, xmm0
mov ebx, dword [esp + 0x10]
sub edi, esi
sub edi, eax
movq qword [esp + 0x5c], xmm0
lea eax, [esp + 0x14]
shr edi, 1
push eax
push dword [ebx + 0x10]
add edi, esi
mov dword [esp + 0x1c], 0
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
push edi
push dword [ebx + 0x14]
mov ebx, dword [esp + 0x5c]
lea ecx, [esp + 0x64]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
push dword [ebx + 0x10]
call fcn.00402110
push dword [esp + 0x5c]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
jmp 0x415ae3
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
je 0x415ae3
mov dword [edi + 0x34], eax
cmp dword [ebx + 0x14], 0
je 0x415bfe
cmp dword [ebx + 0x18], 0
je 0x415bfe
jmp 0x4159f1
cmp eax, 0x30001
jne 0x416a9a
cmp dword [edi + 0x3c], 0
jne 0x416a9a
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x416a9a
mov eax, dword [edi + 0x38]
test eax, eax
js 0x416a9a
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x416a9a
cmp eax, dword [ecx + 0x18]
jg 0x416a9a
lea eax, [eax + eax*4]
lea ebx, [edx + eax*4]
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x415b4b
mov dword [edi + 0x30], eax
cmp dword [ebx + 0x10], 0
je 0x415bde
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx + 8]
test eax, eax
je 0x415b75
push eax
lea eax, [edi + 0x14]
push eax
push dword [edi + 0x10]
call dword [sym.imp.USER32.dll_FillRect]
mov ecx, dword [ebx + 0x10]
mov esi, dword [edi + 0x18]
call fcn.004023e0
mov edi, dword [edi + 0x20]
xorps xmm0, xmm0
mov edx, dword [esp + 0x10]
sub edi, esi
sub edi, eax
movq qword [esp + 0x54], xmm0
lea eax, [esp + 0x14]
shr edi, 1
push eax
push dword [edx + 0x10]
add edi, esi
mov dword [esp + 0x1c], 0
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
push edi
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x14]
add eax, 2
push eax
push dword [ebx + 0x10]
call fcn.00402110
push dword [esp + 0x54]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
jmp 0x415be9
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
je 0x415be9
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x416a9a
push eax
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
movzx ecx, word [edi + 0x10]
movzx eax, word [edi + 0xc]
shl ecx, 0x10
or ecx, eax
xor eax, eax
push ecx
push dword [esp + 0x10]
cmp edx, 0xffffff4c
push esi
push dword [ebp + 8]
sete al
add eax, 0xffffffcd
push eax
jmp 0x416a8c
cmp eax, 0x1d
jne 0x416a9a
cmp edx, 0xfffffe36
jne 0x415c89
push dword [edi + 0x14]
mov eax, dword [edi + 0x34]
mov ecx, ebx
push dword [esp + 0x10]
mov dword [esp + 0x5c], eax
push esi
push dword [ebp + 8]
push 0xffffffffffffffc4
call fcn.00418c10
mov eax, dword [esp + 0x54]
test eax, eax
je 0x416a9a
push 0xc
push eax
call fcn.0042d7f2
add esp, 8
jmp 0x416a9a
cmp edx, 0xfffffe60
je 0x415da5
cmp edx, 0xfffffe5f
je 0x415da5
cmp edx, 0xfffffe5e
je 0x415d8c
cmp edx, 0xfffffe5d
je 0x415d8c
cmp edx, 0xfffffe3a
jne 0x415cec
test byte [edi + 0xc], 2
mov ecx, ebx
push dword [edi + 0x3c]
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
je 0x415ce0
push 0xffffffffffffffc9
call fcn.00418c10
jmp 0x416a9a
push 0xffffffffffffffc8
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0xfffffe3d
jne 0x415d0d
push dword [edi + 0x3c]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffc7
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0xfffffffb
jne 0x415d3e
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 8
push 0x110a
push dword [edi]
call esi
test eax, eax
je 0x416a9a
push eax
push 9
push 0x110b
push dword [edi]
call esi
jmp 0x416a9a
cmp edx, 0xfffffff4
jne 0x416a9a
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x4159f1
cmp eax, 0x10001
jne 0x416a9a
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x416a9a
test byte [edi + 0x28], 0x10
jne 0x415d84
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x415d79
mov dword [edi + 0x30], ecx
mov ecx, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x415d84
mov dword [edi + 0x34], ecx
mov eax, dword [eax + 8]
jmp 0x415bec
push dword [edi + 0x10]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffc5
call fcn.00418c10
jmp 0x416a9a
test byte [ecx + 0x44], 1
je 0x415e8f
push 0xfffffffffffffff0
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x100
je 0x415e8f
push dword [edi + 0x10]
push 4
push 0x110a
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x416a9a
push 0
push 0
push 0xb
push dword [edi]
mov ebx, eax
mov dword [esp + 0x28], 8
mov eax, dword [edi + 0x14]
xorps xmm0, xmm0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0xf000
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
call dword [sym.imp.USER32.dll_SendMessageW]
nop dword [eax]
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], ebx
push eax
push 0
push 0x113f
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push 1
push 0x110a
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
test ebx, ebx
jne 0x415e50
push eax
push 1
push 0xb
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, dword [esp + 0x5c]
push dword [edi + 0x10]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffc6
call fcn.00418c10
jmp 0x416a9a
xor eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0x1e0]
test eax, eax
je 0x415f27
cmp ecx, esi
jne 0x415f27
cmp di, 1
jne 0x415f27
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x5c], 1
xor edi, edi
push edi
mov ecx, ebx
call fcn.004182f0
xor ecx, ecx
test al, al
mov eax, dword [ebx + 0x210]
cmove edi, ecx
cmp eax, edi
je 0x415fc2
test eax, eax
je 0x415f82
push eax
mov ecx, ebx
call fcn.004182f0
test al, al
je 0x415f82
mov edx, dword [ebx + 0x210]
mov eax, dword [ebx]
lea ecx, [edx + edx*8]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x22
jne 0x415f63
push 1
push 0
push edx
mov ecx, ebx
call fcn.00418440
jmp 0x415f82
test ecx, ecx
je 0x415ed1
push 0xfffffffffffffff4
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov ecx, ebx
push edi
call fcn.004182f0
test al, al
je 0x415ed3
mov ecx, dword [ebx]
lea edx, [edi + edi*8]
mov eax, dword [ecx + edx*8 + 0x18]
test eax, eax
je 0x415ed3
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x5c], 1
jmp 0x415ed3
cmp eax, 0x23
jne 0x415f82
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x415f82
mov edx, dword [eax + 0x14]
cmp dword [ecx + 0x1c], edx
je 0x415f82
push edx
push dword [eax + 4]
mov ecx, ebx
call fcn.00417910
test edi, edi
je 0x415fc2
mov eax, dword [ebx]
lea ecx, [edi + edi*8]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x22
jne 0x415fa3
push 1
push 1
push edi
mov ecx, ebx
call fcn.00418440
jmp 0x415fc2
cmp eax, 0x23
jne 0x415fc2
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x415fc2
mov edx, dword [eax + 0x18]
cmp dword [ecx + 0x1c], edx
je 0x415fc2
push edx
push dword [eax + 4]
mov ecx, ebx
call fcn.00417910
push 0
push edi
push esi
push dword [ebp + 8]
mov ecx, ebx
mov dword [ebx + 0x210], edi
push 0xffffffffffffffec
call fcn.00418c10
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x4162e9.275
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebx + 0x104]
mov ecx, dword [ebx + 0x100]
lea eax, [ecx + edx]
test eax, eax
je 0x416011
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
mov edx, dword [ebx + 0x10c]
mov ecx, dword [ebx + 0x108]
lea eax, [ecx + edx]
test eax, eax
je 0x416a9a
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
jmp 0x416a9a
cmp esi, dword [ebx + 0x1ec]
jne 0x416a9a
test edi, edi
je 0x416a9a
test byte [edi + 0x18], 2
jne 0x416a9a
push dword [edi + 0xc]
mov ecx, ebx
push dword [edi + 8]
push esi
call fcn.00414940
jmp 0x416a9a
test edi, edi
je 0x416a9a
test byte [edi + 0x18], 1
jne 0x416a9a
push esi
mov ecx, ebx
call fcn.00414a40
jmp 0x416a9a
cmp dword [ebx + 0x1bc], 0
je 0x4154cb
cmp dword [ebx], 0
mov edi, dword [esp + 0xc]
je 0x416211
cmp dword [ebx + 4], 1
mov dword [esp + 0x14], 1
jl 0x416211
mov ecx, 0x48
mov dword [esp + 0x10], ecx
nop dword [eax + eax]
mov eax, dword [ebx]
cmp dword [ecx + eax + 0xc], 0
je 0x4161f8
mov edx, dword [ecx + eax + 4]
mov dword [esp + 0x54], edx
test edx, edx
je 0x4161f8
test dword [ecx + eax + 0x3c], 0x400
je 0x4161f8
mov edx, dword [ecx + eax]
cmp edx, 0x1e
je 0x4161f8
cmp edx, 0x1a
je 0x4161f8
cmp edx, 0x1c
je 0x4161f8
cmp dword [ecx + eax + 0x20], 0xfffffffe
je 0x4161f8
push dword [esp + 0x54]
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4161f8
mov eax, dword [ebx]
push dword [ecx + eax + 4]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [esp + 0x10]
cmp eax, dword [ebx + 0x1ec]
jne 0x4161f8
lea eax, [ebx + 0xe0]
push eax
mov eax, dword [ebx]
push dword [ecx + eax + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x4161f4
push 2
lea eax, [ebx + 0xe0]
push eax
push esi
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + eax], 0xa
jne 0x4161d5
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [ebx]
push eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x14]
push dword [eax + ecx + 4]
call dword [sym.imp.USER32.dll_GetWindowRgn]
test eax, eax
je 0x4161c9
push dword [ebx + 0xe4]
push dword [ebx + 0xe0]
push dword [esp + 0x64]
call dword [sym.imp.GDI32.dll_OffsetRgn]
push 4
push dword [esp + 0x60]
push edi
call dword [sym.imp.GDI32.dll_ExtSelectClipRgn]
push dword [esp + 0x5c]
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x4161f4
push dword [ebx + 0xec]
push dword [ebx + 0xe8]
push dword [ebx + 0xe4]
push dword [ebx + 0xe0]
push edi
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ecx, 0x48
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 4]
jle 0x4160c0
lea eax, [ebx + 0xe0]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x41629d
cmp dword [ebx + 0x1c4], 2
je 0x416262
push dword [ebx + 0x1bc]
lea eax, [ebx + 0xe0]
push eax
push edi
call dword [sym.imp.USER32.dll_FillRect]
push 0
push edi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
push 4
push edi
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
push 0xcc0020
push dword [ebx + 0x1dc]
push dword [ebx + 0x1d8]
push 0
push 0
push dword [ebx + 0x1a8]
push dword [ebx + 0xec]
push dword [ebx + 0xe8]
push 0
push 0
push edi
call dword [sym.imp.GDI32.dll_StretchBlt]
push 0
push edi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
cmp edx, 0x214
ja 0x416921
je 0x416909
lea eax, [edx - 0x111]
cmp eax, 0xf9
ja case.0x4162e9.275
movzx eax, byte [eax + 0x416bd4]
jmp dword [eax*4 + 0x416b94]
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff6
jmp 0x416a8c
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff5
jmp 0x416a8c
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff4
jmp 0x416a8c
push 0
push dword [ebx + 0x210]
push esi
push edx
push 0xfffffffffffffff3
jmp 0x416a8c
push 0
push dword [ebx + 0x210]
push esi
push edx
push 0xfffffffffffffff2
jmp 0x416a8c
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff0
jmp 0x416a8c
push edi
push ecx
push edx
push esi
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
sub esp, 0x24
mov ecx, ebx
call fcn.00415410
mov edi, dword [esp + 0xc]
cmp edi, 0xf120
jne 0x416389
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffff9
push eax
jmp 0x416a8c
cmp edi, 0xf030
jne 0x4163a4
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffff8
push eax
jmp 0x416a8c
cmp edi, 0xf020
jne 0x4163bf
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffffa
push eax
jmp 0x416a8c
cmp edi, 0xf060
jne 0x4163da
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffffb
push eax
jmp 0x416a8c
cmp edi, 0xf010
jne case.0x4162e9.275
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xffffffe8
push eax
jmp 0x416a8c
movsx ecx, di
shr edi, 0x10
push 0
movsx eax, di
mov edi, dword [esp + 0x10]
push edi
push esi
push edx
mov dword [ebx + 0x204], ecx
mov dword [ebx + 0x208], eax
mov dword [ebx + 0x20c], edi
push 0xfffffffffffffff1
jmp 0x416a8c
push 0
push 0
push esi
push edx
push 0xfffffffffffffff7
mov ecx, ebx
call fcn.00418c10
mov eax, edi
movsx ecx, di
shr eax, 0x10
cwde
push eax
push ecx
push esi
call dword [sym.imp.USER32.dll_ChildWindowFromPoint]
test eax, eax
je case.0x4162e9.275
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
push eax
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.004182f0
test al, al
je case.0x4162e9.275
mov eax, dword [esp + 0x14]
lea ecx, [eax + eax*8]
mov eax, dword [ebx]
test dword [eax + ecx*8 + 0x3c], 0x1000
je case.0x4162e9.275
push edi
push 2
push 0xa1
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x416a9a
mov eax, ecx
shr eax, 0x10
mov dword [esp + 0x10], eax
movzx eax, cx
mov ecx, ebx
push eax
mov dword [esp + 0x10], eax
call fcn.004182f0
test al, al
je case.0x4162e9.275
mov edx, dword [esp + 0xc]
mov eax, dword [ebx]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*8]
mov ecx, dword [eax]
mov dword [esp + 0x14], eax
cmp ecx, 5
je 0x416638
cmp ecx, 6
je 0x416638
cmp ecx, 9
je 0x4165b8
cmp ecx, 0xc
je 0x4165b8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], 0
cmp word [esp + 0x54], ax
je 0x416511
mov dword [esp + 0x54], 1
cmp word [esp + 0x54], ax
jne 0x416a9a
cmp ecx, 0x22
jne 0x416525
push 0x80
push edx
mov ecx, ebx
call fcn.00417bd0
jmp 0x41659a
mov eax, dword [esp + 0x14]
cmp ecx, 0x23
jne 0x41656f
mov ecx, dword [eax + 0x44]
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x41659e
xor eax, eax
cmp dword [ecx + 8], 4
mov ecx, ebx
sete al
lea eax, [eax*4 + 4]
push eax
push edx
call fcn.00417bd0
mov eax, dword [esp + 0x10]
mov ecx, ebx
push edi
movzx eax, ax
push eax
mov eax, dword [esp + 0x5c]
push esi
push dword [ebp + 8]
push dword [eax + 4]
call fcn.00418c10
jmp 0x41659a
test dword [eax + 0x3c], 0x1000
je 0x41659e
mov eax, dword [ebx + 0x180]
movzx ecx, word [eax + 0x2c]
movzx eax, word [eax + 0x28]
shl ecx, 0x10
or ecx, eax
push ecx
push 2
push 0xa1
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0xc]
push edi
mov edi, dword [esp + 0x14]
mov ecx, ebx
movzx eax, di
push eax
push esi
push dword [ebp + 8]
push edx
call fcn.00418c10
jmp 0x416a9a
mov eax, dword [esp + 0x10]
mov ecx, 0x400
cmp cx, ax
jne 0x4165da
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb5
call fcn.00418c10
jmp 0x416a9a
mov ecx, 0x300
cmp cx, ax
jne 0x4165f8
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb4
call fcn.00418c10
jmp 0x416a9a
mov ecx, 0x100
cmp cx, ax
jne 0x416616
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb3
call fcn.00418c10
jmp 0x416a9a
mov ecx, 0x200
cmp cx, ax
jne 0x416a9a
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb2
call fcn.00418c10
jmp 0x416a9a
mov eax, dword [esp + 0x10]
mov ecx, 1
cmp cx, ax
jne 0x41665a
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbf
call fcn.00418c10
jmp 0x416a9a
mov ecx, 7
cmp cx, ax
jne 0x416678
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbe
call fcn.00418c10
jmp 0x416a9a
mov ecx, 8
cmp cx, ax
jne 0x416696
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbd
call fcn.00418c10
jmp 0x416a9a
mov ecx, 3
cmp cx, ax
jne 0x4166b4
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbc
call fcn.00418c10
jmp 0x416a9a
mov ecx, 4
cmp cx, ax
jne 0x4166d2
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbb
call fcn.00418c10
jmp 0x416a9a
mov ecx, 2
cmp cx, ax
jne 0x416a9a
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffba
call fcn.00418c10
jmp 0x416a9a
push ecx
push edi
call dword [sym.imp.USER32.dll_GetMenuItemID]
push edi
mov edi, dword [esp + 0x10]
mov ecx, ebx
push edi
push esi
push dword [ebp + 8]
push eax
call fcn.00418c10
jmp 0x416a9a
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov ecx, ebx
push edi
mov dword [esp + 0x18], edi
call fcn.004182f0
test al, al
je case.0x4162e9.275
mov ecx, dword [ebx]
lea edx, [edi + edi*8]
cmp dword [ecx + edx*8], 0x17
jne case.0x4162e9.275
push 0
push 0
push 0x400
push dword [ecx + edx*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [esp + 0xc]
mov ecx, ebx
push eax
movzx eax, di
push eax
push esi
push dword [ebp + 8]
push dword [esp + 0x24]
call fcn.00418c10
jmp 0x416a9a
cmp dword [ebx], 0
je case.0x4162e9.275
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov esi, eax
mov ecx, ebx
push esi
call fcn.004182f0
test al, al
je case.0x4162e9.275
mov eax, dword [ebx]
lea esi, [esi + esi*8]
mov edi, dword [esp + 0xc]
mov eax, dword [eax + esi*8 + 0x1c]
cmp eax, 0xffffffff
je 0x4167af
push eax
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [ebx]
mov eax, dword [eax + esi*8 + 0x20]
cmp eax, 0xffffffff
je 0x4167c2
push eax
push edi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [ebx]
mov eax, dword [eax + esi*8 + 0x10]
test eax, eax
je case.0x4162e9.275
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebx], 0
je case.0x4162e9.275
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov esi, eax
mov ecx, ebx
push esi
mov dword [esp + 0x18], esi
call fcn.004182f0
test al, al
je case.0x4162e9.275
mov eax, dword [ebx]
lea esi, [esi + esi*8]
mov edi, dword [esp + 0xc]
mov eax, dword [eax + esi*8 + 0x1c]
cmp eax, 0xffffffff
je 0x416826
push eax
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [ebx]
mov eax, dword [eax + esi*8 + 0x20]
cmp eax, 0xfffffffe
jne 0x416856
push 1
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
push 5
call dword [sym.imp.GDI32.dll_GetStockObject]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0xffffffff
je 0x416873
push 2
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx]
push dword [eax + esi*8 + 0x20]
push edi
call dword [sym.imp.GDI32.dll_SetBkColor]
jmp 0x41687c
push 1
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx]
mov eax, dword [eax + esi*8 + 0x10]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4168a2
push edi
push dword [esp + 0x18]
mov ecx, ebx
call fcn.004180d0
mov dword [esp + 0x10], eax
test eax, eax
je case.0x4162e9.275
mov ecx, dword [ebx]
cmp dword [ecx + esi*8], 0xa
jne 0x4168e7
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [ebx]
push eax
mov dword [esp + 0x18], eax
push dword [ecx + esi*8 + 4]
call dword [sym.imp.USER32.dll_GetWindowRgn]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x4168de
push esi
push ebx
push edi
call dword [sym.imp.GDI32.dll_FillRgn]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x4168eb
mov esi, dword [esp + 0x10]
test esi, esi
je case.0x4162e9.275
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
push 0
push 0
push esi
push 0x214
push 0xfffffffffffffffe
mov ecx, ebx
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0x233
ja 0x416a48
je 0x41699f
sub edx, 0x216
je 0x41695e
sub edx, 0x1c
jne case.0x4162e9.275
push edx
push edx
push esi
push 0x232
push 0xffffffffffffffe7
mov ecx, ebx
call fcn.00418c10
push esi
mov ecx, ebx
call fcn.00414a40
jmp 0x416a9a
push 0
push 0
push esi
push 0x216
push 0xffffffffffffffe8
mov ecx, ebx
call fcn.00418c10
test edi, edi
je 0x4154cb
push dword [edi + 4]
mov ecx, ebx
push dword [edi]
push esi
call fcn.00414940
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
lea edi, [ebx + 0x1d0]
mov dword [ebx + 0x1cc], ecx
push edi
push ecx
call dword [sym.imp.SHELL32.dll_DragQueryPoint]
test eax, eax
jne 0x4169c8
push dword [ebx + 0x1cc]
call dword [sym.imp.SHELL32.dll_DragFinish]
jmp 0x416a9a
push 0x800
push 0
lea ecx, [ebx + 0xd4]
push 0x800
call fcn.0040afa0
push eax
push 0
push dword [ebx + 0x1cc]
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
push dword [ebx + 0x1cc]
test eax, eax
je 0x4169bd
call dword [sym.imp.SHELL32.dll_DragFinish]
mov edx, dword [edi]
push ecx
push dword [ebx + 0x1d4]
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.00413410
test eax, eax
je 0x416a27
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0x14], eax
lea ecx, [ebx + 0xd4]
call fcn.0040ad30
push eax
push dword [esp + 0x18]
mov ecx, ebx
push esi
push 0x233
push 0xfffffffffffffffc
call fcn.00418c10
jmp 0x416a9a
cmp edx, 0x2a2
je 0x416a81
cmp edx, 0x400
jne case.0x4162e9.275
cmp dword [ebx + 0x1ac], 0
je 0x416a9a
movzx eax, word [ebx + 0x1ac]
or eax, 0x534b0000
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10
push 0
push ecx
push esi
push 0x2a2
push 0xffffffffffffffea
mov ecx, ebx
call fcn.00418c10
mov eax, dword [esp + 0x54]
mov byte [eax], 1
mov ecx, dword [esp + 0x64]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042cf3b
mov esp, ebp
pop ebp
ret 0x10