Function at 0x410b20
Capabilities:
Check if file exists

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 0x45c1a1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4e0
mov eax, dword [0x474104]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x4ec], eax
mov dword [ebp - 0x4b8], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x458], eax
mov dword [ebp - 4], 0
xor esi, esi
mov ecx, eax
mov dword [ebp - 0x444], esi
call fcn.0042e9e0
push esi
push str.Resources
mov ecx, eax
call fcn.0042ea60
mov dword [ebp - 0x4a8], eax
test eax, eax
je 0x410d1c
push esi
mov ecx, eax
call fcn.0042ea90
mov edi, eax
test edi, edi
je 0x410d12
nop dword [eax]
test esi, esi
jne 0x410d1c
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x14]
call eax
push str.uap:Scale
mov ecx, eax
call fcn.0042d660
test eax, eax
je 0x410cf8
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x14]
call eax
push str.uap:Scale
mov ecx, eax
call fcn.0042d660
mov edx, eax
mov dword [ebp - 0x460], esi
mov ecx, edx
mov dword [ebp - 0x45c], 0xf
mov byte [ebp - 0x470], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410c18
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x470]
call fcn.00407160
mov byte [ebp - 4], 1
lea esi, [ebp - 0x470]
cmp dword [ebp - 0x45c], 0x10
cmovae esi, dword [ebp - 0x470]
call fcn.00403280
mov ecx, eax
test ecx, ecx
je 0x412016
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x448], eax
push esi
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 2
call fcn.00414370
test al, al
jne 0x410c85
push esi
lea ecx, [ebp - 0x448]
call fcn.00413f60
mov esi, dword [ebp - 0x448]
push esi
call dword [sym.imp.SHLWAPI.dll_StrToIntW]
mov dword [ebp - 0x444], eax
add esi, 0xfffffff0
mov byte [ebp - 4], 3
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x410cb4
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x45c]
cmp edx, 0x10
jb 0x410cf2
mov ecx, dword [ebp - 0x470]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x410ce8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412057
push edx
push ecx
call fcn.0043389e
add esp, 8
mov esi, dword [ebp - 0x444]
mov ecx, dword [ebp - 0x4a8]
push edi
call fcn.0042ea90
mov edi, eax
test edi, edi
jne 0x410bc0
test esi, esi
jne 0x410d1c
mov dword [ebp - 0x444], 0x64
mov ecx, dword [ebp - 0x458]
call fcn.0042e9e0
push 0
push str.Applications
mov ecx, eax
call fcn.0042ea60
mov dword [ebp - 0x4a8], eax
mov byte [ebp - 4], 4
call fcn.00403280
mov ecx, eax
test ecx, ecx
je 0x412016
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x454], edi
mov byte [ebp - 4], 6
call fcn.00403280
mov ecx, eax
test ecx, ecx
je 0x412020
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x450], esi
mov eax, dword [ebp - 0x4a8]
mov byte [ebp - 4], 7
test eax, eax
je 0x411f65
push 0
push str.Application
mov ecx, eax
call fcn.0042ea60
test eax, eax
je 0x411f65
push 0
push str.uap:VisualElements
mov ecx, eax
call fcn.0042ea60
mov dword [ebp - 0x43c], eax
mov byte [ebp - 4], 8
call fcn.00403280
mov ecx, eax
test ecx, ecx
je 0x41202a
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x448], edi
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x43c]
test ecx, ecx
je 0x411050
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
push str.Square44x44Logo
mov ecx, eax
call fcn.0042d660
test eax, eax
je 0x410f1e
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
push str.Square44x44Logo
mov ecx, eax
call fcn.0042d660
mov dword [ebp - 0x4a4], eax
call fcn.00403280
mov ecx, eax
test ecx, ecx
je 0x412034
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x440], eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x440]
push dword [ebp - 0x4a4]
call fcn.00414370
test al, al
jne 0x410e75
push dword [ebp - 0x4a4]
lea ecx, [ebp - 0x440]
call fcn.00413f60
mov byte [ebp - 4], 0xb
lea ecx, [edi - 0x10]
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x4a8], ecx
lea edx, [eax - 0x10]
mov dword [ebp - 0x4a4], edx
cmp edx, ecx
je 0x410f01
mov ecx, dword [ecx + 0xc]
shr ecx, 0x1f
test cl, cl
jne 0x410ee6
mov edi, dword [ebp - 0x4a8]
mov ecx, dword [edx]
cmp ecx, dword [edi]
jne 0x410ee6
push edx
call fcn.00414980
add esp, 4
mov dword [ebp - 0x4a8], eax
mov byte [ebp - 4], 0xc
lea ecx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x410ed5
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x4a8]
add edi, 0x10
mov dword [ebp - 0x448], edi
jmp 0x410efb
push dword [eax - 0xc]
lea ecx, [ebp - 0x448]
push eax
call fcn.004149f0
mov edi, dword [ebp - 0x448]
mov edx, dword [ebp - 0x4a4]
mov byte [ebp - 4], 0xd
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x410f1a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
push str.BackgroundColor
mov ecx, eax
call fcn.0042d660
test eax, eax
je 0x411050
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
push str.BackgroundColor
mov ecx, eax
call fcn.0042d660
mov dword [ebp - 0x4a4], eax
call fcn.00403280
mov ecx, eax
test ecx, ecx
je 0x41203e
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x440], eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x440]
push dword [ebp - 0x4a4]
call fcn.00414370
test al, al
jne 0x410fa7
push dword [ebp - 0x4a4]
lea ecx, [ebp - 0x440]
call fcn.00413f60
mov byte [ebp - 4], 0xf
lea ecx, [esi - 0x10]
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x4a8], ecx
lea edx, [eax - 0x10]
mov dword [ebp - 0x4a4], edx
cmp edx, ecx
je 0x411033
mov ecx, dword [ecx + 0xc]
shr ecx, 0x1f
test cl, cl
jne 0x411018
mov esi, dword [ebp - 0x4a8]
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x411018
push edx
call fcn.00414980
add esp, 4
mov dword [ebp - 0x4a8], eax
mov byte [ebp - 4], 0x10
lea ecx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x411007
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x4a8]
add esi, 0x10
mov dword [ebp - 0x450], esi
jmp 0x41102d
push dword [eax - 0xc]
lea ecx, [ebp - 0x450]
push eax
call fcn.004149f0
mov esi, dword [ebp - 0x450]
mov edx, dword [ebp - 0x4a4]
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41104c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
cmp dword [edi - 0xc], 0
lea eax, [edi - 0x10]
mov dword [ebp - 0x4a8], eax
jne 0x41111b
lea eax, [esi - 0x10]
push eax
mov dword [ebp - 0x458], eax
call fcn.00414980
mov esi, dword [ebp - 0x4b8]
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov byte [ebp - 4], 0x12
mov edi, dword [ebp - 0x454]
add edi, 0xfffffff0
push edi
call fcn.00414980
add eax, 0x10
add esp, 4
mov dword [esi + 4], eax
mov edx, dword [ebp - 0x4a8]
or esi, 0xffffffff
mov byte [ebp - 4], 0x13
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4110bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x14
mov eax, esi
mov edx, dword [ebp - 0x458]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4110db
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4110f3
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x10]
add eax, 0xfffffff0
mov dword [ebp - 4], 0x16
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x411ff0
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
jmp 0x411ff0
mov ecx, str.transparent
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x411148
test dx, dx
je 0x411144
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x411148
add eax, 4
add ecx, 4
test dx, dx
jne 0x411122
xor eax, eax
jmp 0x41114d
sbb eax, eax
or eax, 1
mov byte [ebp - 4], 9
test eax, eax
jne 0x4111d9
push eax
push eax
push 0xffffffffffffffff
push str.0078d7
push eax
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edx, [eax - 1]
mov dword [ebp - 0x4a4], edx
test edx, edx
jle 0x4111ce
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x4111a1
push edx
lea ecx, [ebp - 0x450]
call fcn.00414ae0
mov esi, dword [ebp - 0x450]
mov edx, dword [ebp - 0x4a4]
push edx
push esi
push 0xffffffffffffffff
push str.0078d7
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x4a4]
cmp eax, dword [esi - 8]
jg 0x412048
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
jmp 0x4111d9
lea ecx, [ebp - 0x450]
call fcn.004141d0
lea ecx, [ebp - 0x458]
mov dword [ebp - 0x458], 0
call fcn.00414160
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x18
push eax
mov dword [ebp - 0x44c], 0
call fcn.00414980
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x4ac], esi
push 0x210
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 0x19
push 0
push eax
call fcn.004356c0
mov eax, dword [ebx + 0x10]
add esp, 0xc
test eax, eax
je 0x411253
xor ecx, ecx
cmp cx, word [eax]
je 0x411253
test esi, esi
je 0x411259
cmp cx, word [esi]
je 0x411259
push esi
push eax
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
jmp 0x411259
lea eax, [ebp - 0x228]
push eax
lea ecx, [ebp - 0x44c]
call fcn.00414090
add esi, 0xfffffff0
mov byte [ebp - 4], 0x1c
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x411281
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x43c]
mov dword [ebp - 0x43c], 0
call fcn.00414160
mov byte [ebp - 4], 0x1d
push dword [ebp - 0x44c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov esi, dword [ebp - 0x43c]
test eax, eax
je 0x411342
mov eax, dword [ebp - 0x44c]
lea edx, [esi - 0x10]
mov dword [ebp - 0x440], edx
lea ecx, [eax - 0x10]
cmp ecx, edx
je 0x411342
lea ecx, [edx + 0xc]
mov dword [ebp - 0x4a4], ecx
lea esi, [eax - 0x10]
mov ecx, dword [ecx]
shr ecx, 0x1f
test cl, cl
jne 0x41132d
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x41132d
push esi
call fcn.00414980
add esp, 4
mov dword [ebp - 0x4b0], eax
mov byte [ebp - 4], 0x1e
or ecx, 0xffffffff
mov edx, dword [ebp - 0x4a4]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41131e
mov esi, dword [ebp - 0x440]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x4b0]
lea esi, [eax + 0x10]
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x43c], esi
jmp 0x411342
push dword [esi + 4]
lea ecx, [ebp - 0x43c]
push eax
call fcn.004149f0
mov esi, dword [ebp - 0x43c]
cmp dword [esi - 0xc], 0
jne 0x411727
push edi
lea ecx, [ebp - 0x488]
call fcn.00405b20
sub esp, 8
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x488]
call fcn.00413510
cmp eax, 0xffffffff
je 0x41142a
lea edx, [eax + 1]
mov eax, dword [ebp - 0x478]
cmp edx, eax
jae 0x41142a
xor ecx, ecx
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 7
mov word [ebp - 0x4a0], cx
cmp eax, edx
jb 0x412052
sub eax, edx
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [ebp - 0x474], 8
lea eax, [ebp - 0x488]
cmovae eax, dword [ebp - 0x488]
push ecx
lea ecx, [ebp - 0x4a0]
lea eax, [eax + edx*2]
push eax
call fcn.00406fd0
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x488]
call fcn.00413660
mov edx, dword [ebp - 0x48c]
cmp edx, 8
jb 0x41142a
mov ecx, dword [ebp - 0x4a0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411420
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412057
push edx
push ecx
call fcn.0043389e
add esp, 8
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4ac], esp
push 0x46bdb0
call fcn.00405b20
sub esp, 0x18
mov byte [ebp - 4], 0x20
mov ecx, esp
mov dword [ebp - 0x4b4], esp
push str..png
call fcn.00405b20
sub esp, 0x18
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x488]
mov ecx, esp
push eax
call fcn.004136a0
xor dl, dl
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x4e8]
call fcn.0041d550
add esp, 0x48
lea ecx, [ebp - 0x488]
push eax
call fcn.00413660
mov edx, dword [ebp - 0x4d4]
cmp edx, 8
jb 0x4114cd
mov ecx, dword [ebp - 0x4e8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4114c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41205c
push edx
push ecx
call fcn.0043389e
add esp, 8
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x4e8]
call fcn.00415410
add esp, 4
push 0xc
push str..colorful.
mov ecx, eax
mov byte [ebp - 4], 0x22
call fcn.00416a60
mov dword [ebp - 0x460], 0
xor ecx, ecx
mov dword [ebp - 0x45c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x470], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x460], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x4d4]
cmp edx, 8
jb 0x411576
mov ecx, dword [ebp - 0x4e8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41156c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412061
push edx
push ecx
call fcn.0043389e
add esp, 8
push dword [ebx + 0x10]
xor eax, eax
mov dword [ebp - 0x4d8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x4d4], 7
lea ecx, [ebp - 0x4d0]
mov word [ebp - 0x4e8], ax
movq qword [ebp - 0x494], xmm0
mov dword [ebp - 0x48c], eax
call fcn.00405b20
lea eax, [ebp - 0x470]
mov byte [ebp - 4], 0x25
push eax
lea edx, [ebp - 0x4d0]
lea ecx, [ebp - 0x494]
call fcn.0041c4f0
add esp, 4
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x4bc]
cmp edx, 8
jb 0x411615
mov ecx, dword [ebp - 0x4d0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41160b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412066
push edx
push ecx
call fcn.0043389e
add esp, 8
mov edx, dword [ebp - 0x494]
xor eax, eax
mov dword [ebp - 0x4c0], 0
mov dword [ebp - 0x4bc], 7
mov word [ebp - 0x4d0], ax
cmp edx, dword [ebp - 0x490]
je 0x411677
cmp dword [edx + 0x14], 8
jb 0x411648
mov edx, dword [edx]
test edx, edx
jne 0x411650
xor ecx, ecx
jmp 0x411664
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411655
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x43c]
call fcn.004149f0
mov esi, dword [ebp - 0x43c]
lea ecx, [ebp - 0x494]
call fcn.00414290
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x45c]
cmp edx, 8
jb 0x4116c6
mov ecx, dword [ebp - 0x470]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4116bc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41206b
push edx
push ecx
call fcn.0043389e
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x474]
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 7
mov word [ebp - 0x470], ax
cmp edx, 8
jb 0x411727
mov ecx, dword [ebp - 0x488]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x41171d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412070
push edx
push ecx
call fcn.0043389e
add esp, 8
cmp dword [esi - 0xc], 0
lea eax, [esi - 0x10]
mov dword [ebp - 0x4b0], eax
jne 0x411830
lea ecx, [ebp - 0x440]
mov dword [ebp - 0x440], 0
call fcn.00414160
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x440]
push dword [ebp - 0x444]
push str..scale__d.png
push eax
call fcn.00415310
mov edi, dword [ebp - 0x440]
lea ecx, [ebp - 0x44c]
add esp, 0xc
push edi
push str..png
call fcn.00413d00
push dword [ebp - 0x44c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41180a
mov eax, dword [ebp - 0x44c]
lea ecx, [esi - 0x10]
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41180a
mov esi, dword [ebp - 0x4b0]
mov ecx, dword [esi + 0xc]
shr ecx, 0x1f
test cl, cl
jne 0x4117f5
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x4117f5
push edx
call fcn.00414980
add esp, 4
mov dword [ebp - 0x4b0], eax
mov byte [ebp - 4], 0x29
lea edx, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4117ea
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x4b0]
lea esi, [eax + 0x10]
mov dword [ebp - 0x43c], esi
jmp 0x41180a
push dword [edx + 4]
lea ecx, [ebp - 0x43c]
push eax
call fcn.004149f0
mov esi, dword [ebp - 0x43c]
add edi, 0xfffffff0
mov byte [ebp - 4], 0x2a
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x411826
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
mov edi, dword [ebp - 0x448]
cmp dword [esi - 0xc], 0
lea eax, [esi - 0x10]
mov dword [ebp - 0x4ac], eax
jne 0x411a54
lea eax, [edi - 0x10]
mov dword [ebp - 0x444], 0
push eax
call fcn.00414980
add eax, 0x10
add esp, 4
mov dword [ebp - 0x440], eax
push str.en_us
lea ecx, [ebp - 0x4b4]
mov byte [ebp - 4], 0x2b
call fcn.00414090
mov byte [ebp - 4], 0x2c
mov eax, dword [eax]
push 0x210
mov dword [ebp - 0x4b0], eax
lea eax, [ebp - 0x228]
push 0
push eax
call fcn.004356c0
mov eax, dword [ebx + 0x10]
add esp, 0xc
test eax, eax
je 0x4118c8
xor ecx, ecx
cmp cx, word [eax]
je 0x4118c8
mov ecx, dword [ebp - 0x4b0]
test ecx, ecx
je 0x4118ce
xor edx, edx
cmp dx, word [ecx]
je 0x4118ce
push ecx
push eax
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
jmp 0x4118ce
lea eax, [ebp - 0x228]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.00414090
push 0x210
lea eax, [ebp - 0x438]
mov byte [ebp - 4], 0x2d
push 0
push eax
call fcn.004356c0
mov eax, dword [ebp - 0x4a4]
add esp, 0xc
test eax, eax
je 0x411927
xor ecx, ecx
cmp cx, word [eax]
je 0x411927
mov ecx, dword [ebp - 0x440]
test ecx, ecx
je 0x41192d
xor edx, edx
cmp dx, word [ecx]
je 0x41192d
push ecx
push eax
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
jmp 0x41192d
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x444]
call fcn.00414090
mov edx, dword [ebp - 0x4a4]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x30
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41195b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4b4]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x32
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41197d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x440]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x34
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41199f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x33
push dword [ebp - 0x444]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x411a2e
mov ecx, dword [ebp - 0x444]
lea eax, [esi - 0x10]
add ecx, 0xfffffff0
cmp ecx, eax
je 0x411a2e
mov esi, dword [ebp - 0x4ac]
mov eax, dword [esi + 0xc]
shr eax, 0x1f
test al, al
jne 0x411a14
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x411a14
push ecx
call fcn.00414980
add esp, 4
mov dword [ebp - 0x4ac], eax
mov byte [ebp - 4], 0x35
lea edx, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411a09
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x4ac]
lea esi, [eax + 0x10]
mov dword [ebp - 0x43c], esi
jmp 0x411a2e
push dword [ecx + 4]
lea ecx, [ebp - 0x43c]
push dword [ebp - 0x444]
call fcn.004149f0
mov esi, dword [ebp - 0x43c]
mov edx, dword [ebp - 0x444]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x36
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411a50
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
cmp dword [esi - 0xc], 0
jne 0x411e56
push edi
lea ecx, [ebp - 0x488]
call fcn.00405b20
sub esp, 8
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x488]
call fcn.00413510
cmp eax, 0xffffffff
je 0x411b3c
lea edx, [eax + 1]
mov eax, dword [ebp - 0x478]
cmp edx, eax
jae 0x411b3c
xor ecx, ecx
mov dword [ebp - 0x4c0], 0
mov dword [ebp - 0x4bc], 7
mov word [ebp - 0x4d0], cx
cmp eax, edx
jb 0x412075
sub eax, edx
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [ebp - 0x474], 8
lea eax, [ebp - 0x488]
cmovae eax, dword [ebp - 0x488]
push ecx
lea ecx, [ebp - 0x4d0]
lea eax, [eax + edx*2]
push eax
call fcn.00406fd0
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x488]
call fcn.00413660
mov edx, dword [ebp - 0x4bc]
cmp edx, 8
jb 0x411b3c
mov ecx, dword [ebp - 0x4d0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411b32
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41207a
push edx
push ecx
call fcn.0043389e
add esp, 8
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4ac], esp
push 0x46bdb0
call fcn.00405b20
sub esp, 0x18
mov byte [ebp - 4], 0x38
mov ecx, esp
mov dword [ebp - 0x4b4], esp
push str..png
call fcn.00405b20
sub esp, 0x18
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0x488]
mov ecx, esp
push eax
call fcn.004136a0
xor dl, dl
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x4e8]
call fcn.0041d550
add esp, 0x48
lea ecx, [ebp - 0x488]
push eax
call fcn.00413660
mov edx, dword [ebp - 0x4d4]
cmp edx, 8
jb 0x411bdf
mov ecx, dword [ebp - 0x4e8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411bd5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41207f
push edx
push ecx
call fcn.0043389e
add esp, 8
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x4e8]
call fcn.00415410
add esp, 4
push 0x12
push str..contrast_black.
mov ecx, eax
mov byte [ebp - 4], 0x3a
call fcn.00416a60
mov dword [ebp - 0x460], 0
xor ecx, ecx
mov dword [ebp - 0x45c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x470], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x460], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 0x3c
mov edx, dword [ebp - 0x4d4]
cmp edx, 8
jb 0x411c88
mov ecx, dword [ebp - 0x4e8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411c7e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412084
push edx
push ecx
call fcn.0043389e
add esp, 8
push dword [ebx + 0x10]
xor eax, eax
mov dword [ebp - 0x4d8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x4d4], 7
lea ecx, [ebp - 0x4d0]
mov word [ebp - 0x4e8], ax
movq qword [ebp - 0x494], xmm0
mov dword [ebp - 0x48c], eax
call fcn.00405b20
lea eax, [ebp - 0x470]
mov byte [ebp - 4], 0x3d
push eax
lea edx, [ebp - 0x4d0]
lea ecx, [ebp - 0x494]
call fcn.0041c4f0
add esp, 4
mov byte [ebp - 4], 0x3f
mov edx, dword [ebp - 0x4bc]
cmp edx, 8
jb 0x411d27
mov ecx, dword [ebp - 0x4d0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411d1d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412089
push edx
push ecx
call fcn.0043389e
add esp, 8
mov edx, dword [ebp - 0x494]
xor eax, eax
mov dword [ebp - 0x4c0], 0
mov dword [ebp - 0x4bc], 7
mov word [ebp - 0x4d0], ax
cmp edx, dword [ebp - 0x490]
je 0x411d89
cmp dword [edx + 0x14], 8
jb 0x411d5a
mov edx, dword [edx]
test edx, edx
jne 0x411d62
xor ecx, ecx
jmp 0x411d76
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411d67
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x43c]
call fcn.004149f0
mov esi, dword [ebp - 0x43c]
lea ecx, [ebp - 0x494]
call fcn.00414290
mov byte [ebp - 4], 0x37
mov edx, dword [ebp - 0x45c]
cmp edx, 8
jb 0x411dd8
mov ecx, dword [ebp - 0x470]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411dce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41208e
push edx
push ecx
call fcn.0043389e
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x474]
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 7
mov word [ebp - 0x470], ax
cmp edx, 8
jb 0x411e39
mov ecx, dword [ebp - 0x488]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x411e2f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412093
push edx
push ecx
call fcn.0043389e
add esp, 8
xor eax, eax
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x474], 7
mov word [ebp - 0x488], ax
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, dword [ebp - 0x454]
test eax, eax
je 0x411edd
lea ecx, [edi - 0x10]
lea edx, [esi - 0x10]
mov dword [ebp - 0x4ac], ecx
cmp edx, ecx
je 0x411edd
mov eax, dword [ecx + 0xc]
lea edi, [ecx + 0xc]
shr eax, 0x1f
test al, al
jne 0x411ec8
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x411ec8
push edx
call fcn.00414980
add esp, 4
mov dword [ebp - 0x4b4], eax
mov byte [ebp - 4], 0x40
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x411ebd
mov edi, dword [ebp - 0x4ac]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x4b4]
lea edi, [eax + 0x10]
mov dword [ebp - 0x454], edi
jmp 0x411edd
push dword [edx + 4]
lea ecx, [ebp - 0x454]
push esi
call fcn.004149f0
mov edi, dword [ebp - 0x454]
lea edx, [esi - 0x10]
or esi, 0xffffffff
mov byte [ebp - 4], 0x41
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411efb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x42
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411f1c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x458]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x43
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411f3d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x4a8]
mov eax, esi
mov byte [ebp - 4], 0x44
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411f5b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov esi, dword [ebp - 0x450]
lea eax, [esi - 0x10]
push eax
mov dword [ebp - 0x4ac], eax
call fcn.00414980
mov esi, dword [ebp - 0x4b8]
add eax, 0x10
add esp, 4
mov dword [esi], eax
add edi, 0xfffffff0
mov byte [ebp - 4], 0x45
push edi
call fcn.00414980
add eax, 0x10
add esp, 4
mov dword [esi + 4], eax
or esi, 0xffffffff
mov byte [ebp - 4], 0x46
mov edx, dword [ebp - 0x4ac]
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411fb9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x47
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x411fd1
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebx + 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0x48
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x411ff0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x4b8]
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.00433370
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
push 0x80004005
call fcn.00403130
push 0x80004005
call fcn.00403130
push 0x80004005
call fcn.00403130
push 0x80004005
call fcn.00403130
push 0x80004005
call fcn.00403130
push 0x80070057
call fcn.00403130
call fcn.00407440
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.00407440
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
call fcn.0043d7cf
int3