Function at 0x45d270
Capabilities:
Check if file exists
Encode data using xor
Get common file path
Get file attributes

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 0x5286e1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x288
push esi
push edi
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], edi
lea esi, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
push 0x55d1d0
cmovae esi, dword [ebx + 8]
mov dword [ebp - 0x150], edi
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x45fc6d
test esi, esi
je 0x45d2fd
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d2e0
sub ecx, edx
je 0x45d2fd
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x45d2fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x55d1d0
call fcn.004fa403
add esp, 4
cmp byte [0x55d0d8], 2
jne 0x45fc26
lea eax, [ebp - 0x14c]
mov ecx, 0x55d0d8
push eax
call fcn.004806f0
mov edx, ecx
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xe0], edx
movzx eax, byte [edx]
mov ecx, eax
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], connect
sub ecx, 1
je 0x45d3a9
sub ecx, 1
je 0x45d39b
mov dword [ebp - 0xd4], connect
sub eax, 1
je 0x45d3a9
sub eax, 1
je 0x45d39b
mov dword [ebp - 0xd4], 1
jmp 0x45d3b4
mov eax, dword [edx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xd8], eax
jmp 0x45d3b4
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp - 0x14c]
call fcn.00480220
test al, al
je 0x45fc26
nop
lea ecx, [ebp - 0x14c]
call fcn.00480330
movaps xmm0, xmmword [0x5479f0]
mov esi, eax
mov dword [ebp - 0x6b], 0xefe5fdf5
xor ecx, ecx
mov dword [ebp - 0x67], 0xedf5e9d4
mov byte [ebp - 0x63], 0xea
movups xmmword [ebp - 0x62], xmm0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x6b], al
inc ecx
cmp ecx, 0xf
jb 0x45d400
mov dword [0x55d558], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x6b]
mov byte [ebp - 0x5c], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d433
sub ecx, edx
lea eax, [ebp - 0x6b]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
or edi, 0x10000
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 1
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x50]
push eax
call fcn.00486ff0
lea ecx, [ebp - 0x18c]
push ecx
mov ecx, eax
call fcn.00487130
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45d4af
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d4a5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x547710]
xor ecx, ecx
mov dword [ebp - 0x30], 0xefe5fdf5
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x30], al
inc ecx
cmp ecx, 0xa
jb 0x45d4c3
mov dword [0x55d5e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d4f6
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 4
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x50]
push eax
call fcn.00486ff0
lea ecx, [ebp - 0x168]
push ecx
mov ecx, eax
call fcn.00487130
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45d569
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d55f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x547790]
xor ecx, ecx
mov dword [ebp - 0x31], 0xefe5fdf5
mov byte [ebp - 0x2d], 0xd4
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x31], al
inc ecx
cmp ecx, 0xb
jb 0x45d581
mov dword [0x55d530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x31]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d5b4
sub ecx, edx
lea eax, [ebp - 0x31]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 7
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x50]
push eax
call fcn.00486ff0
lea ecx, [ebp - 0xb0]
push ecx
mov ecx, eax
call fcn.00487130
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45d627
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d61d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x547eb0]
xor ecx, ecx
mov dword [ebp - 0x32], 0xefe5fdf5
mov word [ebp - 0x2e], 0xffd4
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x32], al
inc ecx
cmp ecx, 0xc
jb 0x45d641
mov dword [0x55d528], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x32]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d674
sub ecx, edx
lea eax, [ebp - 0x32]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x50]
push eax
call fcn.00486ff0
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, eax
call fcn.00487130
cmp dword [eax + 0x14], 0x10
jb 0x45d6b4
mov eax, dword [eax]
push eax
call fcn.005089d5
mov ecx, dword [ebp - 0x58]
add esp, 4
mov dword [ebp - 0xc4], eax
cmp ecx, 0x10
jb 0x45d6f7
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d6ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov byte [ebp - 0x6c], 0
cmp ecx, 0x10
jb 0x45d741
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d737
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x549b50]
xor ecx, ecx
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0xeceaeae2
xorps xmm0, xmm0
mov word [ebp - 0x54], 0
movq qword [ebp - 0x5c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x70], al
inc ecx
cmp ecx, 0x14
jb 0x45d763
mov dword [0x55d540], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x70]
mov byte [ebp - 0x5c], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d796
sub ecx, edx
lea eax, [ebp - 0x70]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x50]
push eax
call fcn.00486ff0
cmp byte [eax], 4
jne 0x45fc73
mov al, byte [eax + 8]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 0xb5], al
cmp ecx, 0x10
jb 0x45d80d
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d803
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
xorps xmm0, xmm0
mov byte [ebp - 0x12f], 0xbd
movq qword [ebp - 0x12e], xmm0
xor ecx, ecx
mov word [ebp - 0x126], 0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x12f], al
inc ecx
cmp ecx, 1
jb 0x45d830
mov dword [0x55d620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x12f]
mov byte [ebp - 0x12e], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d870
sub ecx, edx
lea eax, [ebp - 0x12f]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
xorps xmm0, xmm0
cmovae edx, dword [ebp - 0x50]
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0xbc], esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d8c0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00402b80
sub esp, 0x18
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x18c]
mov ecx, esp
push eax
call fcn.00483010
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 0xe
call fcn.0040e070
add esp, 0x30
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45d931
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45d927
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
xorps xmm0, xmm0
mov word [ebp - 0x124], 0xa8ab
movq qword [ebp - 0x122], xmm0
xor ecx, ecx
mov word [ebp - 0x11a], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x124], al
inc ecx
cmp ecx, 2
jb 0x45d950
mov dword [0x55d598], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x124]
mov byte [ebp - 0x122], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d990
sub ecx, edx
lea eax, [ebp - 0x124]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x12
lea edx, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
xorps xmm0, xmm0
cmovae edx, dword [ebp - 0x50]
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0xbc], esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d9e0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00402b80
sub esp, 0x18
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x168]
mov ecx, esp
push eax
call fcn.00483010
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x12
call fcn.0040e070
add esp, 0x30
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45da51
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45da47
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x546db0]
xor ecx, ecx
mov word [ebp - 0x2f], 0xcca2
mov byte [ebp - 0x2d], 0xcc
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 9
jb 0x45da68
mov dword [0x55d630], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45daa0
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x207e0
lea edi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
mov esi, dword [ebp - 0x6c]
cmovae edi, esi
setae byte [ebp - 0x11]
mov edx, edi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x45dad3
sub edx, ecx
cmp dword [ebp - 0x9c], 0x10
push edx
mov edx, dword [ebp - 0xa0]
lea ecx, [ebp - 0xb0]
cmovae ecx, dword [ebp - 0xb0]
push edi
push 0
call fcn.004886c0
add esp, 0xc
mov edi, eax
cmp byte [ebp - 0x11], 0
je 0x45db36
mov ecx, dword [ebp - 0x58]
mov eax, esi
inc ecx
cmp ecx, 0x1000
jb 0x45db2c
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push esi
call fcn.004fb0f1
add esp, 8
test edi, edi
jne 0x45de27
push 0x104
lea eax, [ebp - 0x298]
push edi
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x298]
push eax
push edi
push edi
push edi
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x40], edi
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x3c], edi
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45db80
sub ecx, edx
lea eax, [ebp - 0x298]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x16
xor ecx, ecx
movaps xmm0, xmmword [0x546db0]
mov word [ebp - 0x2f], 0xcca2
mov byte [ebp - 0x2d], 0xcc
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 9
jb 0x45dbb4
mov dword [0x55d630], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45dbe7
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x400000
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45dc36
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x84], 0x10
lea edi, [ebp - 0xb0]
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x88]
cmovae ecx, edx
mov eax, dword [ebp - 0xa0]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0xb0]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x80], edi
cmp esi, eax
ja 0x45dd7e
sub eax, esi
test esi, esi
jne 0x45dca8
xor edi, edi
jmp 0x45dd5f
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45dd7b
nop dword [eax + eax]
mov edx, dword [ebp - 0x74]
mov ecx, edi
sub esi, 4
jb 0x45dcf1
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45dcf6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x45dce0
cmp esi, 0xfffffffc
je 0x45dd2a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x45dd23
cmp esi, 0xfffffffd
je 0x45dd2a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x45dd23
cmp esi, 0xfffffffe
je 0x45dd2a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x45dd23
cmp esi, 0xffffffff
je 0x45dd2a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45dd2a
sbb eax, eax
or eax, 1
jmp 0x45dd2c
xor eax, eax
test eax, eax
je 0x45dd51
mov eax, dword [ebp - 0x78]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x7c]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45dcd0
jmp 0x45dd7b
sub edi, dword [ebp - 0x80]
cmp edi, 0xffffffff
je 0x45dd7b
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
lea ecx, [ebp - 0xb0]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x17
je 0x45ddb7
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45ddad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45ddef
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45dde5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45de27
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45de1d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x546e70]
xor ecx, ecx
mov dword [ebp - 0x31], 0xc9c6cca2
mov byte [ebp - 0x2d], 0xde
movups xmmword [ebp - 0x2c], xmm0
nop
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x31], al
inc ecx
cmp ecx, 0xb
jb 0x45de40
mov dword [0x55d530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x31]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45de73
sub ecx, edx
lea eax, [ebp - 0x31]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x800
lea edi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
mov esi, dword [ebp - 0x6c]
cmovae edi, esi
setae byte [ebp - 0x11]
mov edx, edi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x45dea6
sub edx, ecx
cmp dword [ebp - 0x9c], 0x10
push edx
mov edx, dword [ebp - 0xa0]
lea ecx, [ebp - 0xb0]
cmovae ecx, dword [ebp - 0xb0]
push edi
push 0
call fcn.004886c0
add esp, 0xc
mov edi, eax
cmp byte [ebp - 0x11], 0
je 0x45df09
mov ecx, dword [ebp - 0x58]
mov eax, esi
inc ecx
cmp ecx, 0x1000
jb 0x45deff
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push esi
call fcn.004fb0f1
add esp, 8
test edi, edi
jne 0x45e1f7
push 0x104
lea eax, [ebp - 0x298]
push edi
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x298]
push eax
push edi
push edi
push 5
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x40], edi
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x3c], edi
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45df50
sub ecx, edx
lea eax, [ebp - 0x298]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x19
xor ecx, ecx
movaps xmm0, xmmword [0x546e70]
mov dword [ebp - 0x31], 0xc9c6cca2
mov byte [ebp - 0x2d], 0xde
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x31], al
inc ecx
cmp ecx, 0xb
jb 0x45df85
mov dword [0x55d530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x31]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45dfb8
sub ecx, edx
lea eax, [ebp - 0x31]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x200000
mov byte [ebp - 4], 0x1a
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e007
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x84], 0x10
lea edi, [ebp - 0xb0]
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x88]
cmovae ecx, edx
mov eax, dword [ebp - 0xa0]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0xb0]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edi
cmp esi, eax
ja 0x45e14e
sub eax, esi
test esi, esi
jne 0x45e079
xor edi, edi
jmp 0x45e12f
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45e14b
nop dword [eax]
mov edx, dword [ebp - 0x80]
mov ecx, edi
sub esi, 4
jb 0x45e0c1
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45e0c6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x45e0b0
cmp esi, 0xfffffffc
je 0x45e0fa
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x45e0f3
cmp esi, 0xfffffffd
je 0x45e0fa
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x45e0f3
cmp esi, 0xfffffffe
je 0x45e0fa
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x45e0f3
cmp esi, 0xffffffff
je 0x45e0fa
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45e0fa
sbb eax, eax
or eax, 1
jmp 0x45e0fc
xor eax, eax
test eax, eax
je 0x45e121
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x78]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45e0a0
jmp 0x45e14b
sub edi, dword [ebp - 0x7c]
cmp edi, 0xffffffff
je 0x45e14b
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
lea ecx, [ebp - 0xb0]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x1a
je 0x45e187
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45e17d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45e1bf
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e1b5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45e1f7
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e1ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x546ea0]
xor ecx, ecx
mov dword [ebp - 0x33], 0xcfdadda2
mov word [ebp - 0x2f], 0xdcd9
mov byte [ebp - 0x2d], 0xdf
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x33], al
inc ecx
cmp ecx, 0xd
jb 0x45e215
mov dword [0x55d57c], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x33]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e248
sub ecx, edx
lea eax, [ebp - 0x33]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x1000
lea edi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
mov esi, dword [ebp - 0x6c]
cmovae edi, esi
setae byte [ebp - 0x11]
mov edx, edi
lea ecx, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x45e280
sub edx, ecx
cmp dword [ebp - 0x9c], 0x10
push edx
mov edx, dword [ebp - 0xa0]
lea ecx, [ebp - 0xb0]
cmovae ecx, dword [ebp - 0xb0]
push edi
push 0
call fcn.004886c0
add esp, 0xc
mov edi, eax
cmp byte [ebp - 0x11], 0
je 0x45e2e3
mov ecx, dword [ebp - 0x58]
mov eax, esi
inc ecx
cmp ecx, 0x1000
jb 0x45e2d9
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push esi
call fcn.004fb0f1
add esp, 8
test edi, edi
jne 0x45e5d7
push 0x104
lea eax, [ebp - 0x298]
push edi
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x298]
push eax
push edi
push edi
push 0x28
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x40], edi
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x3c], edi
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e328
sub ecx, edx
lea eax, [ebp - 0x298]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x1c
xor ecx, ecx
movaps xmm0, xmmword [0x546ea0]
mov dword [ebp - 0x33], 0xcfdadda2
mov word [ebp - 0x2f], 0xdcd9
mov byte [ebp - 0x2d], 0xdf
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x33], al
inc ecx
cmp ecx, 0xd
jb 0x45e363
mov dword [0x55d57c], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x33]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e396
sub ecx, edx
lea eax, [ebp - 0x33]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x100000
mov byte [ebp - 4], 0x1d
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e3e5
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x84], 0x10
lea edi, [ebp - 0xb0]
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x88]
cmovae ecx, edx
mov eax, dword [ebp - 0xa0]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0xb0]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edi
cmp esi, eax
ja 0x45e52e
sub eax, esi
test esi, esi
jne 0x45e457
xor edi, edi
jmp 0x45e50f
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45e52b
nop word [eax + eax]
mov edx, dword [ebp - 0x80]
mov ecx, edi
sub esi, 4
jb 0x45e4a1
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45e4a6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x45e490
cmp esi, 0xfffffffc
je 0x45e4da
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x45e4d3
cmp esi, 0xfffffffd
je 0x45e4da
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x45e4d3
cmp esi, 0xfffffffe
je 0x45e4da
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x45e4d3
cmp esi, 0xffffffff
je 0x45e4da
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45e4da
sbb eax, eax
or eax, 1
jmp 0x45e4dc
xor eax, eax
test eax, eax
je 0x45e501
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x78]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45e480
jmp 0x45e52b
sub edi, dword [ebp - 0x7c]
cmp edi, 0xffffffff
je 0x45e52b
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
lea ecx, [ebp - 0xb0]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x1d
je 0x45e567
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45e55d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45e59f
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e595
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45e5d7
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e5cd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x546da0]
xor ecx, ecx
mov word [ebp - 0x2f], 0xc9a2
mov byte [ebp - 0x2d], 0xd9
movups xmmword [ebp - 0x2c], xmm0
nop
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 9
jb 0x45e5f0
mov dword [0x55d630], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e623
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x2000
lea edi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
mov esi, dword [ebp - 0x6c]
cmovae edi, esi
setae byte [ebp - 0x11]
mov edx, edi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x45e656
sub edx, ecx
cmp dword [ebp - 0x9c], 0x10
push edx
mov edx, dword [ebp - 0xa0]
lea ecx, [ebp - 0xb0]
cmovae ecx, dword [ebp - 0xb0]
push edi
push 0
call fcn.004886c0
add esp, 0xc
mov edi, eax
cmp byte [ebp - 0x11], 0
je 0x45e6b9
mov ecx, dword [ebp - 0x58]
mov eax, esi
inc ecx
cmp ecx, 0x1000
jb 0x45e6af
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push esi
call fcn.004fb0f1
add esp, 8
test edi, edi
jne 0x45e9a7
push 0x104
lea eax, [ebp - 0x298]
push edi
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x298]
push eax
push edi
push edi
push 0x1a
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x40], edi
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x3c], edi
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e700
sub ecx, edx
lea eax, [ebp - 0x298]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x1f
xor ecx, ecx
movaps xmm0, xmmword [0x546da0]
mov word [ebp - 0x2f], 0xc9a2
mov byte [ebp - 0x2d], 0xd9
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 9
jb 0x45e734
mov dword [0x55d630], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2f]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e767
sub ecx, edx
lea eax, [ebp - 0x2f]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x40000
mov byte [ebp - 4], 0x20
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e7b6
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x84], 0x10
lea edi, [ebp - 0xb0]
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x88]
cmovae ecx, edx
mov eax, dword [ebp - 0xa0]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0xb0]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edi
cmp esi, eax
ja 0x45e8fe
sub eax, esi
test esi, esi
jne 0x45e828
xor edi, edi
jmp 0x45e8df
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45e8fb
nop dword [eax + eax]
mov edx, dword [ebp - 0x80]
mov ecx, edi
sub esi, 4
jb 0x45e871
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45e876
add ecx, 4
add edx, 4
sub esi, 4
jae 0x45e860
cmp esi, 0xfffffffc
je 0x45e8aa
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x45e8a3
cmp esi, 0xfffffffd
je 0x45e8aa
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x45e8a3
cmp esi, 0xfffffffe
je 0x45e8aa
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x45e8a3
cmp esi, 0xffffffff
je 0x45e8aa
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45e8aa
sbb eax, eax
or eax, 1
jmp 0x45e8ac
xor eax, eax
test eax, eax
je 0x45e8d1
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x78]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45e850
jmp 0x45e8fb
sub edi, dword [ebp - 0x7c]
cmp edi, 0xffffffff
je 0x45e8fb
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
lea ecx, [ebp - 0xb0]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x20
je 0x45e937
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45e92d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45e96f
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e965
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45e9a7
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e99d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x546e30]
xor ecx, ecx
mov dword [ebp - 0x34], 0xc9c6c4a2
mov dword [ebp - 0x30], 0xdeccc0ca
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0xe
jb 0x45e9c2
mov dword [0x55d524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e9f5
sub ecx, edx
lea eax, [ebp - 0x34]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x4000
lea edi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
mov esi, dword [ebp - 0x6c]
cmovae edi, esi
setae byte [ebp - 0x11]
mov edx, edi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x45ea28
sub edx, ecx
cmp dword [ebp - 0x9c], 0x10
push edx
mov edx, dword [ebp - 0xa0]
lea ecx, [ebp - 0xb0]
cmovae ecx, dword [ebp - 0xb0]
push edi
push 0
call fcn.004886c0
add esp, 0xc
mov edi, eax
cmp byte [ebp - 0x11], 0
je 0x45ea8b
mov ecx, dword [ebp - 0x58]
mov eax, esi
inc ecx
cmp ecx, 0x1000
jb 0x45ea81
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push esi
call fcn.004fb0f1
add esp, 8
test edi, edi
jne 0x45ed77
push 0x104
lea eax, [ebp - 0x298]
push edi
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x298]
push eax
push edi
push edi
push 0x1c
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x40], edi
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x3c], edi
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ead0
sub ecx, edx
lea eax, [ebp - 0x298]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x22
xor ecx, ecx
movaps xmm0, xmmword [0x546e30]
mov dword [ebp - 0x34], 0xc9c6c4a2
mov dword [ebp - 0x30], 0xdeccc0ca
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0xe
jb 0x45eb08
mov dword [0x55d524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45eb40
sub ecx, edx
lea eax, [ebp - 0x34]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x800000
mov byte [ebp - 4], 0x23
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45eb90
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x84], 0x10
lea edi, [ebp - 0xb0]
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x88]
cmovae ecx, edx
mov eax, dword [ebp - 0xa0]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0xb0]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edi
cmp esi, eax
ja 0x45ecce
sub eax, esi
test esi, esi
jne 0x45ec02
xor edi, edi
jmp 0x45ecaf
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45eccb
mov edx, dword [ebp - 0x80]
mov ecx, edi
sub esi, 4
jb 0x45ec41
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45ec46
add ecx, 4
add edx, 4
sub esi, 4
jae 0x45ec30
cmp esi, 0xfffffffc
je 0x45ec7a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x45ec73
cmp esi, 0xfffffffd
je 0x45ec7a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x45ec73
cmp esi, 0xfffffffe
je 0x45ec7a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x45ec73
cmp esi, 0xffffffff
je 0x45ec7a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45ec7a
sbb eax, eax
or eax, 1
jmp 0x45ec7c
xor eax, eax
test eax, eax
je 0x45eca1
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x78]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45ec25
jmp 0x45eccb
sub edi, dword [ebp - 0x7c]
cmp edi, 0xffffffff
je 0x45eccb
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
lea ecx, [ebp - 0xb0]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x23
je 0x45ed07
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45ecfd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45ed3f
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ed35
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45ed77
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ed6d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x546de0]
xor ecx, ecx
mov word [ebp - 0x2e], 0xdaa2
movups xmmword [ebp - 0x2c], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2e], al
inc ecx
cmp ecx, 8
jb 0x45ed90
mov dword [0x55d624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2e]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45edc3
sub ecx, edx
lea eax, [ebp - 0x2e]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x8000
lea edi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
mov esi, dword [ebp - 0x6c]
cmovae edi, esi
setae byte [ebp - 0x11]
mov edx, edi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x45edf6
sub edx, ecx
cmp dword [ebp - 0x9c], 0x10
push edx
mov edx, dword [ebp - 0xa0]
lea ecx, [ebp - 0xb0]
cmovae ecx, dword [ebp - 0xb0]
push edi
push 0
call fcn.004886c0
add esp, 0xc
mov edi, eax
cmp byte [ebp - 0x11], 0
je 0x45ee59
mov ecx, dword [ebp - 0x58]
mov eax, esi
inc ecx
cmp ecx, 0x1000
jb 0x45ee4f
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push esi
call fcn.004fb0f1
add esp, 8
test edi, edi
jne 0x45f138
push 0x104
lea eax, [ebp - 0x298]
push edi
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x298]
push eax
push edi
push edi
push 8
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x40], edi
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x3c], edi
movups xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45eea0
sub ecx, edx
lea eax, [ebp - 0x298]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x25
xor ecx, ecx
movaps xmm0, xmmword [0x546de0]
mov word [ebp - 0x2e], 0xdaa2
movups xmmword [ebp - 0x2c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2e], al
inc ecx
cmp ecx, 8
jb 0x45eed0
mov dword [0x55d624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2e]
mov byte [ebp - 0x26], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ef03
sub ecx, edx
lea eax, [ebp - 0x2e]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x80000
mov byte [ebp - 4], 0x26
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ef52
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x98]
cmp dword [ebp - 0x84], 0x10
lea edi, [ebp - 0xb0]
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x88]
cmovae ecx, edx
mov eax, dword [ebp - 0xa0]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0xb0]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edi
cmp esi, eax
ja 0x45f08f
sub eax, esi
test esi, esi
jne 0x45efc4
xor edi, edi
jmp 0x45f070
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45f08c
mov edx, dword [ebp - 0x80]
mov ecx, edi
sub esi, 4
jb 0x45f002
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45f007
add ecx, 4
add edx, 4
sub esi, 4
jae 0x45eff1
cmp esi, 0xfffffffc
je 0x45f03b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x45f034
cmp esi, 0xfffffffd
je 0x45f03b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x45f034
cmp esi, 0xfffffffe
je 0x45f03b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x45f034
cmp esi, 0xffffffff
je 0x45f03b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45f03b
sbb eax, eax
or eax, 1
jmp 0x45f03d
xor eax, eax
test eax, eax
je 0x45f062
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x78]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45efe7
jmp 0x45f08c
sub edi, dword [ebp - 0x7c]
cmp edi, 0xffffffff
je 0x45f08c
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
lea ecx, [ebp - 0xb0]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x26
je 0x45f0c8
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45f0be
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45f100
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f0f6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45f138
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f12e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov ecx, dword [ebp - 0xcc]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0xd0]
xor esi, esi
imul ecx
mov dword [ebp - 0x7c], esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x45fa41
lea edi, [esi + esi*2]
mov esi, dword [ebp - 0xd0]
shl edi, 3
add esi, edi
mov dword [ebp - 0x78], edi
cmp dword [esi + 0x14], 0x10
mov eax, dword [esi + 0x10]
jb 0x45f17c
mov esi, dword [esi]
test eax, eax
je 0x45f555
push eax
push 0x2a
push esi
call fcn.004fe8c0
add esp, 0xc
test eax, eax
je 0x45f555
sub eax, esi
cmp eax, 0xffffffff
je 0x45f555
xorps xmm0, xmm0
mov dword [ebp - 0xee], 0xa3a4a6af
movq qword [ebp - 0xea], xmm0
xor ecx, ecx
mov word [ebp - 0xe2], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xee], al
inc ecx
cmp ecx, 4
jb 0x45f1c3
mov dword [0x55d5d8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xee]
mov byte [ebp - 0xea], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f200
sub ecx, edx
lea eax, [ebp - 0xee]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402b80
mov byte [ebp - 4], 0x28
lea edx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
cmovae edx, dword [ebp - 0x34]
mov ecx, edx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f242
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x29
xorps xmm0, xmm0
mov byte [ebp - 0x13a], 0xad
xor ecx, ecx
movq qword [ebp - 0x139], xmm0
mov word [ebp - 0x131], 0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x13a], al
inc ecx
cmp ecx, 1
jb 0x45f280
mov dword [0x55d620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x13a]
mov byte [ebp - 0x139], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f2c0
sub ecx, edx
lea eax, [ebp - 0x13a]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0xc
mov byte [ebp - 4], 0x2a
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f310
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x98]
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x98]
add esi, edi
cmp dword [ebp - 0x84], 0x10
mov edi, esi
mov dword [ebp - 0xb4], esi
cmovae ecx, edx
mov dword [ebp - 0x18], edx
mov eax, dword [esi + 0x10]
setae byte [ebp - 0x11]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x78], esi
jb 0x45f36b
mov edi, dword [esi]
mov dword [ebp - 0x78], edi
mov esi, dword [ebp - 0x88]
cmp esi, eax
ja 0x45f465
sub eax, esi
test esi, esi
jne 0x45f386
xor edi, edi
jmp 0x45f446
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0x74], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45f462
nop dword [eax]
mov edx, dword [ebp - 0x80]
mov ecx, edi
sub esi, 4
jb 0x45f3d1
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45f3d6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x45f3c0
cmp esi, 0xfffffffc
je 0x45f40a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x45f403
cmp esi, 0xfffffffd
je 0x45f40a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x45f403
cmp esi, 0xfffffffe
je 0x45f40a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x45f403
cmp esi, 0xffffffff
je 0x45f40a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45f40a
sbb eax, eax
or eax, 1
jmp 0x45f40c
xor eax, eax
test eax, eax
je 0x45f438
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0xc0]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45f3b0
jmp 0x45f462
sub edi, dword [ebp - 0x78]
cmp edi, 0xffffffff
je 0x45f462
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0xb4]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x2a
je 0x45f49e
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45f494
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45f4d6
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f4cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45f50e
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f504
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov esi, dword [ebp - 0x7c]
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x45f160
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f543
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
mov esi, dword [ebp - 0x7c]
add esp, 8
jmp 0x45f160
mov eax, dword [ebp - 0xd0]
xorps xmm0, xmm0
add eax, edi
mov dword [ebp - 0xfc], 0xa3a4a6af
mov dword [ebp - 0xb4], eax
xor ecx, ecx
movq qword [ebp - 0xf8], xmm0
mov word [ebp - 0xf0], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xfc], al
inc ecx
cmp ecx, 4
jb 0x45f583
mov dword [0x55d5d8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xfc]
mov byte [ebp - 0xf8], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f5c0
sub ecx, edx
lea eax, [ebp - 0xfc]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 1
lea ecx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
mov edi, dword [ebp - 0x6c]
cmovae ecx, edi
setae byte [ebp - 0x11]
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x45f5f3
mov eax, dword [ebp - 0xb4]
sub esi, edx
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x45f60d
mov eax, dword [eax]
push esi
push ecx
push 0
mov ecx, eax
call fcn.004886c0
add esp, 0xc
mov esi, eax
cmp byte [ebp - 0x11], 0
je 0x45f64f
mov ecx, dword [ebp - 0x58]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x45f645
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edi
call fcn.004fb0f1
add esp, 8
cmp esi, 0xffffffff
je 0x45fa15
xorps xmm0, xmm0
mov dword [ebp - 0x10a], 0xa3a3a6af
movq qword [ebp - 0x106], xmm0
xor ecx, ecx
mov word [ebp - 0xfe], 0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x10a], al
inc ecx
cmp ecx, 4
jb 0x45f680
mov dword [0x55d5d8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x10a]
mov byte [ebp - 0x106], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f6c0
sub ecx, edx
lea eax, [ebp - 0x10a]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402b80
mov byte [ebp - 4], 0x2c
lea edx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
cmovae edx, dword [ebp - 0x34]
mov ecx, edx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f702
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00402b80
mov byte [ebp - 4], 0x2d
xorps xmm0, xmm0
mov dword [ebp - 0x118], 0xa3a4a6af
xor ecx, ecx
movq qword [ebp - 0x114], xmm0
mov word [ebp - 0x10c], 0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x118], al
inc ecx
cmp ecx, 4
jb 0x45f740
mov dword [0x55d5d8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x118]
mov byte [ebp - 0x114], 0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x58], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f780
sub ecx, edx
lea eax, [ebp - 0x118]
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402b80
or dword [ebp - 0x1c], 0x12
mov byte [ebp - 4], 0x2e
lea edx, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x98], xmm0
cmovae edx, dword [ebp - 0x6c]
mov ecx, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f7d0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x98]
call fcn.00402b80
mov esi, dword [ebp - 0x78]
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x2f
add esi, dword [ebp - 0xd0]
cmp dword [ebp - 0x84], 0x10
mov edi, esi
mov edx, dword [ebp - 0x98]
cmovae ecx, edx
mov dword [ebp - 0xbc], esi
mov eax, dword [esi + 0x10]
setae byte [ebp - 0x11]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0x74], esi
jb 0x45f82f
mov edi, dword [esi]
mov dword [ebp - 0x74], edi
mov esi, dword [ebp - 0x88]
cmp esi, eax
ja 0x45f925
sub eax, esi
test esi, esi
jne 0x45f84a
xor edi, edi
jmp 0x45f906
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0xc0], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004fe8c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45f922
mov ecx, dword [ebp - 0xb4]
mov edx, edi
sub esi, 4
jb 0x45f891
nop dword [eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x45f896
add edx, 4
add ecx, 4
sub esi, 4
jae 0x45f880
cmp esi, 0xfffffffc
je 0x45f8ca
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x45f8c3
cmp esi, 0xfffffffd
je 0x45f8ca
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x45f8c3
cmp esi, 0xfffffffe
je 0x45f8ca
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x45f8c3
cmp esi, 0xffffffff
je 0x45f8ca
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x45f8ca
sbb eax, eax
or eax, 1
jmp 0x45f8cc
xor eax, eax
test eax, eax
je 0x45f8f8
mov eax, dword [ebp - 0xc0]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x80]
push edi
call fcn.004fe8c0
mov esi, dword [ebp - 0x88]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x45f870
jmp 0x45f922
sub edi, dword [ebp - 0x74]
cmp edi, 0xffffffff
je 0x45f922
mov esi, dword [ebp - 0x88]
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
push dword [ebp - 0x40]
cmovae eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0xbc]
push eax
push esi
push edi
call fcn.00485740
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x2e
je 0x45f95e
mov ecx, dword [ebp - 0x84]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x45f954
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x45f996
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f98c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x45f9ce
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f9c4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov edi, dword [ebp - 0x78]
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x45f555
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fa03
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
mov edi, dword [ebp - 0x78]
add esp, 8
jmp 0x45f555
mov ecx, dword [ebp - 0xcc]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0x7c]
imul ecx
inc esi
sar edx, 2
mov eax, edx
mov dword [ebp - 0x7c], esi
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x45f160
sub esp, 0xc
lea eax, [ebp - 0xd0]
mov ecx, esp
mov dword [ebp - 0xbc], esp
push eax
call fcn.00481da0
sub esp, 0xc
mov byte [ebp - 4], 0x30
lea eax, [ebp - 0x174]
mov dword [ebp - 0xb4], esp
mov ecx, esp
push eax
call fcn.00481da0
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 0x31
mov esi, dword [ebp - 0xc4]
push eax
sub esp, 0x18
shl esi, 0xa
lea eax, [ebx + 8]
mov dword [ebp - 0xc4], esp
mov ecx, esp
push eax
call fcn.00483010
sub esp, 0x18
mov byte [ebp - 4], 0x32
lea eax, [ebp - 0xb0]
mov ecx, esp
push eax
call fcn.00483010
mov cl, byte [ebp - 0xb5]
mov edx, esi
mov byte [ebp - 4], 0x15
call fcn.0045bae0
add esp, 0x4c
lea ecx, [ebp - 0xd0]
call fcn.00485200
lea ecx, [ebp - 0x174]
call fcn.00485200
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x9c]
cmp ecx, 0x10
jb 0x45fb18
mov edx, dword [ebp - 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fb0e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0xf
mov byte [ebp - 0xb0], 0
cmp ecx, 0x10
jb 0x45fb71
mov edx, dword [ebp - 0x168]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fb67
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0xf
mov byte [ebp - 0x168], 0
cmp ecx, 0x10
jb 0x45fbca
mov edx, dword [ebp - 0x18c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fbc0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax]
sub eax, 1
je 0x45fbee
sub eax, 1
je 0x45fbe5
inc dword [ebp - 0x140]
jmp 0x45fc08
add dword [ebp - 0x144], 0x10
jmp 0x45fc08
mov eax, dword [ebp - 0x148]
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], eax
call fcn.004844c0
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp - 0x14c]
call fcn.00480220
test al, al
je 0x45fc26
mov edi, dword [ebp - 0x1c]
jmp 0x45d3d0
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0x10
jb 0x45fc5a
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fc50
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45fcbe
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push eax
call fcn.004fa09b
mov ecx, eax
call fcn.00484ce0
push eax
lea ecx, [ebp - 0x6c]
call fcn.00402ab0
push eax
mov edx, str.type_must_be_boolean__but_is
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x98]
call fcn.00486e40
add esp, 4
push eax
mov edx, 0x12e
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x38]
call fcn.00408cb0
add esp, 4
lea eax, [ebp - 0x38]
push 0x558298
push eax
call fcn.004fcadb
call fcn.00500390
int3