Function at 0x415851
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x47b00c]
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 + 0x1b8]
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 0x4164d4
je case.0x4164fe.289
lea eax, [edx - 3]
cmp eax, 0xa0
ja case.0x4164fe.275
movzx eax, byte [eax + 0x416d18]
jmp dword [eax*4 + 0x416cd4]
cmp esi, dword [ebx + 0x224]
jne case.0x4164fe.275
cmp byte [ebx + 0x23a], 0
je case.0x4164fe.275
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00430eab
mov esp, ebp
pop ebp
ret 0x10
cmp byte [ebx + 0x23a], 0
je case.0x4164fe.275
cmp esi, dword [ebx + 0x224]
jne case.0x4164fe.275
test ecx, ecx
je 0x416cbd
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 + 0x23a]
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov edx, dword [esp + 0x5c]
movzx eax, byte [edx + 0x23a]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
movzx eax, byte [edx + 0x23a]
sub edi, eax
inc edi
mov dword [ecx + 8], edi
movzx eax, byte [edx + 0x23a]
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.00430eab
mov esp, ebp
pop ebp
ret 0x10
test ecx, ecx
je 0x41577b
mov edi, 1
cmp dword [ebx + 0x3c], edi
jle 0x415768
nop dword [eax]
push edi
mov ecx, ebx
call fcn.00419760
test al, al
je 0x41575f
mov edx, dword [ebx + 0x248]
mov eax, dword [ebx + 0x38]
lea ecx, [edx + edx*8]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x22
jne 0x415740
push 1
push 0
push edx
mov ecx, ebx
call fcn.00419900
jmp 0x41575f
cmp eax, 0x23
jne 0x41575f
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x41575f
mov edx, dword [eax + 0x14]
cmp dword [ecx + 0x1c], edx
je 0x41575f
push edx
push dword [eax + 4]
mov ecx, ebx
call fcn.00418540
inc edi
cmp edi, dword [ebx + 0x3c]
jl 0x415710
mov edx, dword [ebp + 8]
mov eax, dword [ebx + 0x1b8]
push 0
push 0
push esi
push edx
mov dword [eax + 0x34], esi
push 0xffffffffffffffee
jmp 0x415790
mov eax, dword [ebx + 0x1b8]
push 0
push 0
push esi
push edx
mov dword [eax + 0x34], 0
push 0xffffffffffffffed
mov ecx, ebx
call fcn.0041a650
mov dword [ebx + 0x248], 0
jmp case.0x4164fe.275
push 0
push ecx
push esi
push edx
push 0xffffffffffffffef
jmp 0x416caf
push 0
push ecx
push esi
push edx
push 0xffffffffffffffe5
jmp 0x416caf
push 0
push 0
push esi
push edx
push 0xfffffffffffffffb
mov ecx, ebx
call fcn.0041a650
jmp 0x416cbd
push 0xfffffffffffffff4
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov ecx, ebx
push edi
call fcn.00419760
test al, al
jne 0x4157fd
xor edi, edi
push edi
push edi
push esi
push dword [ebp + 8]
push 0xffffffffffffffeb
call fcn.0041a650
jmp 0x416cbd
push 0
push edi
push esi
push dword [ebp + 8]
mov dword [ebx + 0x248], edi
push 0xffffffffffffffeb
call fcn.0041a650
jmp 0x416cbd
push 0
push 0
push esi
push edx
push 0xffffffffffffffe7
mov ecx, ebx
call fcn.0041a650
jmp 0x416cbd
push 0
push 0
push esi
push edx
push 0xfffffffffffffffd
mov ecx, ebx
call fcn.0041a650
cmp dword [esp + 0xc], 3
jae 0x416cbd
push esi
mov ecx, ebx
call fcn.004149e0
jmp 0x416cbd
mov eax, dword [edi + 4]
mov ecx, ebx
push eax
mov dword [esp + 0x10], eax
call fcn.00419760
test al, al
je 0x416cbd
mov edx, dword [edi + 8]
cmp edx, 0xfffffffe
jne 0x4158d3
mov edx, dword [esp + 0xc]
mov eax, dword [ebx + 0x38]
lea ecx, [edx + edx*8]
mov eax, dword [eax + ecx*8]
cmp eax, 0x1f
jne 0x4158b4
lea eax, [edi + 0x7c]
push eax
lea ecx, [ebx + 0x10c]
call fcn.0040ac70
lea ecx, [ebx + 0x10c]
call fcn.0040ae10
push eax
push dword [edi + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0041a650
jmp 0x416cbd
cmp eax, 0x1b
jne 0x416cbd
push 0
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push dword [edi + 0xc]
call fcn.0041a650
jmp 0x416cbd
mov eax, dword [esp + 0xc]
lea ecx, [eax + eax*8]
mov eax, dword [ebx + 0x38]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x1b
jne 0x415906
cmp edx, 0xfffffd3a
jne 0x415906
push 0
push dword [edi + 0xc]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xffffffffffffffeb
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0xfffffffd
jne 0x415923
push 0
push dword [esp + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xfffffffffffffff3
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0xfffffffc
jne 0x415940
push 0
push dword [esp + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xffffffffffffffe6
call fcn.0041a650
jmp 0x416cbd
cmp eax, 0x19
jne 0x415a95
cmp edx, 0xfffffdd8
jne 0x4159b4
push 0
push 0
push 0x130b
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x416cbd
push eax
push dword [edi]
call fcn.00419790
mov edi, eax
test edi, edi
je 0x416cbd
push edi
mov ecx, ebx
call fcn.00419760
test al, al
je 0x416cbd
mov eax, dword [ebx + 0x38]
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.0041a650
jmp 0x416cbd
cmp edx, 0xfffffdd9
jne 0x416cbd
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 0x416cbd
push eax
push dword [edi]
call fcn.00419790
mov dword [esp + 0x5c], eax
test eax, eax
je 0x416cbd
push eax
mov ecx, ebx
call fcn.00419760
test al, al
je 0x416cbd
lea esi, [ebx + 0x118]
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 + 0x11c]
push 0
lea esi, [eax + eax*8]
mov eax, dword [ebx + 0x124]
sub eax, ecx
push eax
mov eax, dword [ebx + 0x120]
sub eax, edx
push eax
mov eax, dword [ebx + 0x38]
push ecx
push edx
push dword [edi]
push dword [eax + esi*8 + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [ebx + 0x38]
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.0041a650
jmp 0x416cbd
cmp eax, 0xf
jne 0x415e15
cmp edx, 0xffffff98
je 0x416cbd
cmp edx, 0xffffff99
jne 0x415ad1
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x415ab9
push ecx
call fcn.00416f00
push 0
push dword [esp + 0x10]
mov ecx, ebx
push esi
push dword [ebp + 8]
push 0xffffffffffffffcf
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0xffffff94
jne 0x415af0
test byte [ecx + 0x44], 1
je 0x416cbd
mov edx, dword [edi + 0x10]
push ecx
mov ecx, dword [edi]
call fcn.00410410
jmp 0x416cbd
cmp edx, 0xffffff9b
jne 0x415b9c
mov eax, dword [edi + 0x14]
mov ecx, eax
and ecx, 2
je 0x415b22
test byte [edi + 0x18], 2
jne 0x415b22
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd3
call fcn.0041a650
jmp 0x416cbd
test ecx, ecx
jne 0x415b45
test byte [edi + 0x18], 2
je 0x415b45
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd2
call fcn.0041a650
jmp 0x416cbd
and eax, 0x2000
je 0x415b6e
test dword [edi + 0x18], 0x2000
jne 0x415b6e
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd1
call fcn.0041a650
jmp 0x416cbd
test eax, eax
jne 0x416cbd
test dword [edi + 0x18], 0x2000
je 0x416cbd
push dword [edi + 0xc]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffd0
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0xffffff4c
je 0x415deb
cmp edx, 0xffffff4b
je 0x415deb
cmp edx, 0xfffffff4
jne 0x416cbd
mov eax, dword [edi + 0xc]
cmp eax, 1
jne 0x415bde
mov eax, 0x20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00430eab
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x10001
jne 0x415cd0
cmp dword [edi + 0x3c], 0
jne 0x415cd0
mov ebx, dword [edi + 0x2c]
mov dword [esp + 0x54], ebx
test ebx, ebx
je 0x416cbd
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x415c13
push eax
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x415c1d
mov dword [edi + 0x30], eax
cmp dword [ebx + 0x10], 0
je 0x415cac
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx + 8]
test eax, eax
je 0x415c47
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.004017c0
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.004014f0
push dword [esp + 0x5c]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
jmp 0x415cb7
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
je 0x415cb7
mov dword [edi + 0x34], eax
cmp dword [ebx + 0x14], 0
je 0x415dd2
cmp dword [ebx + 0x18], 0
je 0x415dd2
jmp 0x415bc5
cmp eax, 0x30001
jne 0x416cbd
cmp dword [edi + 0x3c], 0
jne 0x416cbd
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x416cbd
mov eax, dword [edi + 0x38]
test eax, eax
js 0x416cbd
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x416cbd
cmp eax, dword [ecx + 0x18]
jg 0x416cbd
lea eax, [eax + eax*4]
lea ebx, [edx + eax*4]
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x415d1f
mov dword [edi + 0x30], eax
cmp dword [ebx + 0x10], 0
je 0x415db2
push 1
push dword [edi + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx + 8]
test eax, eax
je 0x415d49
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.004017c0
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.004014f0
push dword [esp + 0x54]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
jmp 0x415dbd
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
je 0x415dbd
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x416cbd
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.00430eab
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 0x416caf
cmp eax, 0x1d
jne 0x416cbd
cmp edx, 0xfffffe36
jne 0x415e5d
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.0041a650
mov eax, dword [esp + 0x54]
test eax, eax
je 0x416cbd
push 0xc
push eax
call fcn.0043177f
add esp, 8
jmp 0x416cbd
cmp edx, 0xfffffe60
je 0x415f79
cmp edx, 0xfffffe5f
je 0x415f79
cmp edx, 0xfffffe5e
je 0x415f60
cmp edx, 0xfffffe5d
je 0x415f60
cmp edx, 0xfffffe3a
jne 0x415ec0
test byte [edi + 0xc], 2
mov ecx, ebx
push dword [edi + 0x3c]
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
je 0x415eb4
push 0xffffffffffffffc9
call fcn.0041a650
jmp 0x416cbd
push 0xffffffffffffffc8
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0xfffffe3d
jne 0x415ee1
push dword [edi + 0x3c]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffc7
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0xfffffffb
jne 0x415f12
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 8
push 0x110a
push dword [edi]
call esi
test eax, eax
je 0x416cbd
push eax
push 9
push 0x110b
push dword [edi]
call esi
jmp 0x416cbd
cmp edx, 0xfffffff4
jne 0x416cbd
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x415bc5
cmp eax, 0x10001
jne 0x416cbd
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x416cbd
test byte [edi + 0x28], 0x10
jne 0x415f58
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x415f4d
mov dword [edi + 0x30], ecx
mov ecx, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x415f58
mov dword [edi + 0x34], ecx
mov eax, dword [eax + 8]
jmp 0x415dc0
push dword [edi + 0x10]
mov ecx, ebx
push dword [esp + 0x10]
push esi
push dword [ebp + 8]
push 0xffffffffffffffc5
call fcn.0041a650
jmp 0x416cbd
test byte [ecx + 0x44], 1
je 0x41605f
push 0xfffffffffffffff0
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x100
je 0x41605f
push dword [edi + 0x10]
push 4
push 0x110a
push dword [edi]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x416cbd
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 0x416020
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.0041a650
jmp 0x416cbd
xor eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0x218]
test eax, eax
je 0x4160fc
cmp ecx, esi
jne 0x4160fc
cmp di, 1
jne 0x4160fc
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x5c], 1
xor edi, edi
push edi
mov ecx, ebx
call fcn.00419760
xor ecx, ecx
test al, al
mov eax, dword [ebx + 0x248]
cmove edi, ecx
cmp eax, edi
je 0x41619d
test eax, eax
je 0x41615c
push eax
mov ecx, ebx
call fcn.00419760
test al, al
je 0x41615c
mov edx, dword [ebx + 0x248]
mov eax, dword [ebx + 0x38]
lea ecx, [edx + edx*8]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x22
jne 0x41613d
push 1
push 0
push edx
mov ecx, ebx
call fcn.00419900
jmp 0x41615c
test ecx, ecx
je 0x4160a1
push 0xfffffffffffffff4
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
mov ecx, ebx
push edi
call fcn.00419760
test al, al
je 0x4160a3
mov ecx, dword [ebx + 0x38]
lea edx, [edi + edi*8]
mov eax, dword [ecx + edx*8 + 0x18]
test eax, eax
je 0x4160a3
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [esp + 0x5c], 1
jmp 0x4160a3
cmp eax, 0x23
jne 0x41615c
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x41615c
mov edx, dword [eax + 0x14]
cmp dword [ecx + 0x1c], edx
je 0x41615c
push edx
push dword [eax + 4]
mov ecx, ebx
call fcn.00418540
test edi, edi
je 0x41619d
mov eax, dword [ebx + 0x38]
lea ecx, [edi + edi*8]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp eax, 0x22
jne 0x41617e
push 1
push 1
push edi
mov ecx, ebx
call fcn.00419900
jmp 0x41619d
cmp eax, 0x23
jne 0x41619d
mov eax, dword [ecx + 0x44]
test eax, eax
je 0x41619d
mov edx, dword [eax + 0x18]
cmp dword [ecx + 0x1c], edx
je 0x41619d
push edx
push dword [eax + 4]
mov ecx, ebx
call fcn.00418540
push 0
push edi
push esi
push dword [ebp + 8]
mov ecx, ebx
mov dword [ebx + 0x248], edi
push 0xffffffffffffffec
call fcn.0041a650
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x4164fe.275
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00430eab
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebx + 0x13c]
mov ecx, dword [ebx + 0x138]
lea eax, [ecx + edx]
test eax, eax
je 0x4161ec
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
mov edx, dword [ebx + 0x144]
mov ecx, dword [ebx + 0x140]
lea eax, [ecx + edx]
test eax, eax
je 0x416cbd
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
jmp 0x416cbd
cmp esi, dword [ebx + 0x224]
jne 0x416cbd
test edi, edi
je 0x416cbd
test byte [edi + 0x18], 2
jne 0x416239
push dword [edi + 0xc]
mov ecx, ebx
push dword [edi + 8]
push esi
call fcn.004148e0
mov edx, dword [ebp + 8]
push 0
push 0
push esi
push edx
push 0xfffffffffffffffe
mov ecx, ebx
call fcn.0041a650
jmp 0x416cbd
test edi, edi
je 0x416cbd
test byte [edi + 0x18], 1
jne 0x416cbd
push esi
mov ecx, ebx
call fcn.004149e0
cmp dword [ebx + 0x1fc], 2
jne 0x416280
push 1
push 0
push dword [ebx + 0x224]
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0
push 0
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xfffffffffffffffd
call fcn.0041a650
jmp 0x416cbd
cmp dword [ebx + 0x1f4], 0
je 0x41562b
cmp dword [ebx + 0x38], 0
mov edi, dword [esp + 0xc]
je 0x416426
cmp dword [ebx + 0x3c], 1
mov dword [esp + 0x14], 1
jl 0x416426
mov ecx, 0x48
mov dword [esp + 0x10], ecx
nop dword [eax]
mov eax, dword [ebx + 0x38]
cmp dword [ecx + eax + 0xc], 0
je 0x41640d
mov edx, dword [ecx + eax + 4]
mov dword [esp + 0x54], edx
test edx, edx
je 0x41640d
test dword [ecx + eax + 0x3c], 0x400
je 0x41640d
mov edx, dword [ecx + eax]
cmp edx, 0x1e
je 0x41640d
cmp edx, 0x1a
je 0x41640d
cmp edx, 0x1c
je 0x41640d
cmp dword [ecx + eax + 0x20], 0xfffffffe
je 0x41640d
push dword [esp + 0x54]
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x41640d
mov eax, dword [ebx + 0x38]
push dword [ecx + eax + 4]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [esp + 0x10]
cmp eax, dword [ebx + 0x224]
jne 0x41640d
lea eax, [ebx + 0x118]
push eax
mov eax, dword [ebx + 0x38]
push dword [ecx + eax + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x416409
push 2
lea eax, [ebx + 0x118]
push eax
push esi
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + eax], 0xa
jne 0x4163ea
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [ebx + 0x38]
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 0x4163de
push dword [ebx + 0x11c]
push dword [ebx + 0x118]
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 0x416409
push dword [ebx + 0x124]
push dword [ebx + 0x120]
push dword [ebx + 0x11c]
push dword [ebx + 0x118]
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 + 0x3c]
jle 0x4162d0
lea eax, [ebx + 0x118]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x4164b2
cmp dword [ebx + 0x1fc], 2
je 0x416477
push dword [ebx + 0x1f4]
lea eax, [ebx + 0x118]
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.00430eab
mov esp, ebp
pop ebp
ret 0x10
push 4
push edi
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
push 0xcc0020
push dword [ebx + 0x214]
push dword [ebx + 0x210]
push 0
push 0
push dword [ebx + 0x1e0]
push dword [ebx + 0x124]
push dword [ebx + 0x120]
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.00430eab
mov esp, ebp
pop ebp
ret 0x10
cmp edx, 0x214
ja 0x416b44
je 0x416b2c
lea eax, [edx - 0x111]
cmp eax, 0xf9
ja case.0x4164fe.275
movzx eax, byte [eax + 0x416dfc]
jmp dword [eax*4 + 0x416dbc]
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff6
jmp 0x416caf
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff5
jmp 0x416caf
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff4
jmp 0x416caf
push 0
push dword [ebx + 0x248]
push esi
push edx
push 0xfffffffffffffff3
jmp 0x416caf
push 0
push dword [ebx + 0x248]
push esi
push edx
push 0xfffffffffffffff2
jmp 0x416caf
push 0
push ecx
push esi
push edx
push 0xfffffffffffffff0
jmp 0x416caf
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.00430eab
mov esp, ebp
pop ebp
ret 0x10
sub esp, 0x24
mov ecx, ebx
call fcn.00415570
mov edi, dword [esp + 0xc]
cmp edi, 0xf120
jne 0x41659e
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffff9
push eax
jmp 0x416caf
cmp edi, 0xf030
jne 0x4165b9
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffff8
push eax
jmp 0x416caf
cmp edi, 0xf020
jne 0x4165d4
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffffa
push eax
jmp 0x416caf
cmp edi, 0xf060
jne 0x4165ef
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xfffffffb
push eax
jmp 0x416caf
cmp edi, 0xf010
jne case.0x4164fe.275
push 0
push 0
push esi
push dword [ebp + 8]
mov eax, 0xffffffe8
push eax
jmp 0x416caf
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 + 0x23c], ecx
mov dword [ebx + 0x240], eax
mov dword [ebx + 0x244], edi
push 0xfffffffffffffff1
jmp 0x416caf
push 0
push 0
push esi
push edx
push 0xfffffffffffffff7
mov ecx, ebx
call fcn.0041a650
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.0x4164fe.275
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
push eax
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00419760
test al, al
je case.0x4164fe.275
mov eax, dword [esp + 0x14]
lea ecx, [eax + eax*8]
mov eax, dword [ebx + 0x38]
test dword [eax + ecx*8 + 0x3c], 0x1000
je case.0x4164fe.275
push edi
push 2
push 0xa1
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x416cbd
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.00419760
test al, al
je case.0x4164fe.275
mov edx, dword [esp + 0xc]
mov eax, dword [ebx + 0x38]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*8]
mov ecx, dword [eax]
mov dword [esp + 0x14], eax
cmp ecx, 5
je 0x41684f
cmp ecx, 6
je 0x41684f
cmp ecx, 9
je 0x4167cf
cmp ecx, 0xc
je 0x4167cf
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], 0
cmp word [esp + 0x54], ax
je 0x416728
mov dword [esp + 0x54], 1
cmp word [esp + 0x54], ax
jne 0x416cbd
cmp ecx, 0x22
jne 0x41673c
push 0x80
push edx
mov ecx, ebx
call fcn.004188f0
jmp 0x4167b1
mov eax, dword [esp + 0x14]
cmp ecx, 0x23
jne 0x416786
mov ecx, dword [eax + 0x44]
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x4167b5
xor eax, eax
cmp dword [ecx + 8], 4
mov ecx, ebx
sete al
lea eax, [eax*4 + 4]
push eax
push edx
call fcn.004188f0
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.0041a650
jmp 0x4167b1
test dword [eax + 0x3c], 0x1000
je 0x4167b5
mov eax, dword [ebx + 0x1b8]
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.0041a650
jmp 0x416cbd
mov eax, dword [esp + 0x10]
mov ecx, 0x400
cmp cx, ax
jne 0x4167f1
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb5
call fcn.0041a650
jmp 0x416cbd
mov ecx, 0x300
cmp cx, ax
jne 0x41680f
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb4
call fcn.0041a650
jmp 0x416cbd
mov ecx, 0x100
cmp cx, ax
jne 0x41682d
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb3
call fcn.0041a650
jmp 0x416cbd
mov ecx, 0x200
cmp cx, ax
jne 0x416cbd
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffb2
call fcn.0041a650
jmp 0x416cbd
mov eax, dword [esp + 0x10]
mov ecx, 1
cmp cx, ax
jne 0x416871
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbf
call fcn.0041a650
jmp 0x416cbd
mov ecx, 7
cmp cx, ax
jne 0x41688f
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbe
call fcn.0041a650
jmp 0x416cbd
mov ecx, 8
cmp cx, ax
jne 0x4168ad
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbd
call fcn.0041a650
jmp 0x416cbd
mov ecx, 3
cmp cx, ax
jne 0x4168cb
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbc
call fcn.0041a650
jmp 0x416cbd
mov ecx, 4
cmp cx, ax
jne 0x4168e9
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffbb
call fcn.0041a650
jmp 0x416cbd
mov ecx, 2
cmp cx, ax
jne 0x416cbd
push edi
push edx
push esi
push dword [ebp + 8]
mov ecx, ebx
push 0xffffffffffffffba
call fcn.0041a650
jmp 0x416cbd
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.0041a650
jmp 0x416cbd
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.00419760
test al, al
je case.0x4164fe.275
mov ecx, dword [ebx + 0x38]
lea edx, [edi + edi*8]
cmp dword [ecx + edx*8], 0x17
jne case.0x4164fe.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.0041a650
jmp 0x416cbd
cmp dword [ebx + 0x38], 0
je case.0x4164fe.275
push 0xfffffffffffffff4
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov esi, eax
mov ecx, ebx
push esi
call fcn.00419760
test al, al
je case.0x4164fe.275
mov eax, dword [ebx + 0x38]
lea esi, [esi + esi*8]
mov edi, dword [esp + 0xc]
mov eax, dword [eax + esi*8 + 0x1c]
cmp eax, 0xffffffff
je 0x4169c9
push eax
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*8 + 0x20]
cmp eax, 0xffffffff
je 0x4169dd
push eax
push edi
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*8 + 0x10]
test eax, eax
je case.0x4164fe.275
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00430eab
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebx + 0x38], 0
je case.0x4164fe.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.00419760
test al, al
je case.0x4164fe.275
mov eax, dword [ebx + 0x38]
lea esi, [esi + esi*8]
mov edi, dword [esp + 0xc]
mov eax, dword [eax + esi*8 + 0x1c]
cmp eax, 0xffffffff
je 0x416a44
push eax
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*8 + 0x20]
cmp eax, 0xfffffffe
jne 0x416a75
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.00430eab
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0xffffffff
je 0x416a93
push 2
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx + 0x38]
push dword [eax + esi*8 + 0x20]
push edi
call dword [sym.imp.GDI32.dll_SetBkColor]
jmp 0x416a9c
push 1
push edi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + esi*8 + 0x10]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x416ac3
push edi
push dword [esp + 0x18]
mov ecx, ebx
call fcn.00419290
mov dword [esp + 0x10], eax
test eax, eax
je case.0x4164fe.275
mov ecx, dword [ebx + 0x38]
cmp dword [ecx + esi*8], 0xa
jne 0x416b0a
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [ebx + 0x38]
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 0x416b01
push esi
push ebx
push edi
call dword [sym.imp.GDI32.dll_FillRgn]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x416b0e
mov esi, dword [esp + 0x10]
test esi, esi
je case.0x4164fe.275
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00430eab
mov esp, ebp
pop ebp
ret 0x10
push 0
push 0
push esi
push 0x214
push 0xfffffffffffffffe
mov ecx, ebx
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0x233
ja 0x416c6b
je 0x416bc2
sub edx, 0x216
je 0x416b81
sub edx, 0x1c
jne case.0x4164fe.275
push edx
push edx
push esi
push 0x232
push 0xffffffffffffffe7
mov ecx, ebx
call fcn.0041a650
push esi
mov ecx, ebx
call fcn.004149e0
jmp 0x416cbd
push 0
push 0
push esi
push 0x216
push 0xffffffffffffffe8
mov ecx, ebx
call fcn.0041a650
test edi, edi
je 0x41562b
push dword [edi + 4]
mov ecx, ebx
push dword [edi]
push esi
call fcn.004148e0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00430eab
mov esp, ebp
pop ebp
ret 0x10
lea edi, [ebx + 0x208]
mov dword [ebx + 0x204], ecx
push edi
push ecx
call dword [sym.imp.SHELL32.dll_DragQueryPoint]
test eax, eax
jne 0x416beb
push dword [ebx + 0x204]
call dword [sym.imp.SHELL32.dll_DragFinish]
jmp 0x416cbd
push 0x800
push 0
lea ecx, [ebx + 0x10c]
push 0x800
call fcn.0040b080
push eax
push 0
push dword [ebx + 0x204]
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
push dword [ebx + 0x204]
test eax, eax
je 0x416be0
call dword [sym.imp.SHELL32.dll_DragFinish]
mov edx, dword [edi]
push ecx
push dword [ebx + 0x20c]
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.00413100
test eax, eax
je 0x416c4a
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [esp + 0x14], eax
lea ecx, [ebx + 0x10c]
call fcn.0040ae10
push eax
push dword [esp + 0x18]
mov ecx, ebx
push esi
push 0x233
push 0xfffffffffffffffc
call fcn.0041a650
jmp 0x416cbd
cmp edx, 0x2a2
je 0x416ca4
cmp edx, 0x400
jne case.0x4164fe.275
cmp dword [ebx + 0x1e4], 0
je 0x416cbd
movzx eax, word [ebx + 0x1e4]
or eax, 0x534b0000
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00430eab
mov esp, ebp
pop ebp
ret 0x10
push 0
push ecx
push esi
push 0x2a2
push 0xffffffffffffffea
mov ecx, ebx
call fcn.0041a650
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.00430eab
mov esp, ebp
pop ebp
ret 0x10