Function at 0x449840
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 0x508a62
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x2f0
push esi
push edi
mov dword [ebp - 4], 0
lea esi, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
push 0x537268
cmovae esi, dword [ebx + 8]
mov dword [ebp - 0x198], 0
call fcn.004dcb32
add esp, 4
test eax, eax
jne 0x44b4b2
test esi, esi
je 0x4498cd
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4498b0
sub ecx, edx
je 0x4498cd
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4498cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x537268
call fcn.004dcb43
add esp, 4
cmp byte [0x537178], 2
jne 0x44b46b
lea eax, [ebp - 0x194]
mov ecx, 0x537178
push eax
call fcn.00463c00
mov edx, ecx
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x184], edx
movzx eax, byte [edx]
mov ecx, eax
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0x80000000
sub ecx, 1
je 0x449979
sub ecx, 1
je 0x44996b
mov dword [ebp - 0x178], 0x80000000
sub eax, 1
je 0x449979
sub eax, 1
je 0x44996b
mov dword [ebp - 0x178], 1
jmp 0x449984
mov eax, dword [edx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x17c], eax
jmp 0x449984
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x194]
call fcn.004631c0
test al, al
je 0x44b46b
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea ecx, [ebp - 0x194]
call fcn.004632d0
movaps xmm0, xmmword [0x525e60]
mov esi, eax
movups xmmword [ebp - 0x2d], xmm0
mov byte [ebp - 0x1d], 1
xor ecx, ecx
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xf
jb 0x4499c2
lea eax, [ebp - 0x2d]
mov byte [ebp - 0x1d], 0
push eax
mov ecx, esi
call fcn.0046a630
lea ecx, [ebp - 0x1d4]
push ecx
mov ecx, eax
call fcn.0046a770
mov byte [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0x104], 0xfbf1e9e9
mov dword [ebp - 0x100], 0xcec8c6c0
mov dword [ebp - 0xfc], 0x100d7c6
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x104], al
inc ecx
cmp ecx, 0xa
jb 0x449a11
lea eax, [ebp - 0x104]
mov byte [ebp - 0xf9], 0
push eax
mov ecx, esi
call fcn.0046a630
lea ecx, [ebp - 0x1b0]
push ecx
mov ecx, eax
call fcn.0046a770
mov byte [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x14f], 0xfbf1e9e9
mov dword [ebp - 0x14b], 0xcecec6c0
mov dword [ebp - 0x147], 0xd7c1c7
mov byte [ebp - 0x143], 1
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x14f], al
inc ecx
cmp ecx, 0xb
jb 0x449a70
lea eax, [ebp - 0x14f]
mov byte [ebp - 0x143], 0
push eax
mov ecx, esi
call fcn.0046a630
lea ecx, [ebp - 0x70]
push ecx
mov ecx, eax
call fcn.0046a770
mov byte [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 0x15d], 0xfbf1e9e9
mov dword [ebp - 0x159], 0xd8c8d3c0
mov dword [ebp - 0x155], 0xc4cefbc6
mov word [ebp - 0x151], 0x100
nop
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x15d], al
inc ecx
cmp ecx, 0xc
jb 0x449ad0
lea eax, [ebp - 0x15d]
mov byte [ebp - 0x150], 0
push eax
mov ecx, esi
call fcn.0046a630
lea ecx, [ebp - 0x58]
push ecx
mov ecx, eax
call fcn.0046a770
cmp dword [eax + 0x14], 0x10
jb 0x449b09
mov eax, dword [eax]
push eax
call fcn.004eb117
mov ecx, dword [ebp - 0x44]
add esp, 4
mov dword [ebp - 0x164], eax
cmp ecx, 0x10
jb 0x449b4c
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449b42
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
movaps xmm0, xmmword [0x526a60]
xor ecx, ecx
movups xmmword [ebp - 0x32], xmm0
mov dword [ebp - 0x22], 0xd8dedede
mov word [ebp - 0x1e], 0x100
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x32], al
inc ecx
cmp ecx, 0x14
jb 0x449b66
lea eax, [ebp - 0x32]
mov byte [ebp - 0x1d], 0
push eax
mov ecx, esi
call fcn.0046a630
cmp byte [eax], 4
jne 0x44b4b8
mov al, byte [eax + 8]
lea ecx, [ebp - 0x9b]
sub esp, 0x18
mov byte [ebp - 0x75], al
mov edx, esp
mov word [ebp - 0x9b], 0x3a
xorps xmm0, xmm0
mov byte [ebp - 0x99], 0
mov dword [ebp - 0x7c], esp
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449bc7
sub ecx, esi
lea eax, [ebp - 0x9b]
push ecx
push eax
mov ecx, edx
call fcn.00402870
sub esp, 0x18
mov byte [ebp - 4], 6
lea eax, [ebp - 0x1d4]
mov ecx, esp
push eax
call fcn.00466580
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 3
call fcn.0040c470
add esp, 0x30
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x74], 0x100bcb7
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x74], al
inc ecx
cmp ecx, 2
jb 0x449c13
sub esp, 0x18
mov byte [ebp - 0x71], 0
mov edx, esp
mov dword [ebp - 0x7c], esp
xorps xmm0, xmm0
lea ecx, [ebp - 0x74]
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449c47
sub ecx, esi
lea eax, [ebp - 0x74]
push ecx
push eax
mov ecx, edx
call fcn.00402870
sub esp, 0x18
mov byte [ebp - 4], 8
lea eax, [ebp - 0x1b0]
mov ecx, esp
push eax
call fcn.00466580
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 7
call fcn.0040c470
add esp, 0x30
mov byte [ebp - 4], 9
xor ecx, ecx
mov dword [ebp - 0xbd], 0xcdd8d8be
mov dword [ebp - 0xb9], 0xf2eef4d4
mov word [ebp - 0xb5], 0x86
mov byte [ebp - 0xb3], 1
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xbd], al
inc ecx
cmp ecx, 9
jb 0x449cb0
lea edx, [ebp - 0xbd]
mov byte [ebp - 0xb3], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x449cd1
sub edx, ecx
lea eax, [ebp - 0xbd]
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
push edx
cmovae ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x60]
push eax
push 0
call fcn.0046bbf0
add esp, 0xc
test eax, eax
jne 0x449f59
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df810
add esp, 0xc
lea eax, [ebp - 0x2e0]
push eax
push 0
push 0
push 0
push 0
call edi
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449d46
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0xa
xor ecx, ecx
mov dword [ebp - 0xc8], 0xcdd8d8be
mov dword [ebp - 0xc4], 0xf2eef4d4
mov word [ebp - 0xc0], 0x86
mov byte [ebp - 0xbe], 1
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xc8], al
inc ecx
cmp ecx, 9
jb 0x449d90
xorps xmm0, xmm0
mov byte [ebp - 0xbe], 0
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449dc6
sub ecx, edx
lea eax, [ebp - 0xc8]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
lea edi, [ebp - 0x70]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
cmovae ecx, edx
mov eax, dword [ebp - 0x60]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0x70]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x40], edi
cmp esi, eax
ja 0x449ee5
sub eax, esi
test esi, esi
jne 0x449e23
xor edi, edi
jmp 0x449ec9
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x38], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x449ee2
mov edx, dword [ebp - 0x3c]
mov ecx, edi
sub esi, 4
jb 0x449e61
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x449e66
add ecx, 4
add edx, 4
sub esi, 4
jae 0x449e50
cmp esi, 0xfffffffc
je 0x449e9a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x449e93
cmp esi, 0xfffffffd
je 0x449e9a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x449e93
cmp esi, 0xfffffffe
je 0x449e9a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x449e93
cmp esi, 0xffffffff
je 0x449e9a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x449e9a
sbb eax, eax
or eax, 1
jmp 0x449e9c
xor eax, eax
test eax, eax
je 0x449ebe
mov eax, dword [ebp - 0x38]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x1c]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x449e46
jmp 0x449ee2
sub edi, dword [ebp - 0x40]
cmp edi, 0xffffffff
je 0x449ee2
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x70]
push eax
push esi
push edi
call fcn.00468ce0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0xa
je 0x449f1b
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x449f11
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x449f53
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449f49
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0xeb], 0xddd2d8be
xor ecx, ecx
mov dword [ebp - 0xe7], 0xece4edca
mov dword [ebp - 0xe3], 0x80f7f7
mov byte [ebp - 0xdf], 1
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xeb], al
inc ecx
cmp ecx, 0xb
jb 0x449f80
lea edx, [ebp - 0xeb]
mov byte [ebp - 0xdf], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x449fa1
sub edx, ecx
lea eax, [ebp - 0xeb]
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
push edx
cmovae ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x60]
push eax
push 0
call fcn.0046bbf0
add esp, 0xc
test eax, eax
jne 0x44a223
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df810
add esp, 0xc
lea eax, [ebp - 0x2e0]
push eax
push 0
push 0
push 5
push 0
call edi
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a016
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0xf8], 0xddd2d8be
mov dword [ebp - 0xf4], 0xece4edca
mov dword [ebp - 0xf0], 0x80f7f7
mov byte [ebp - 0xec], 1
nop word [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xf8], al
inc ecx
cmp ecx, 0xb
jb 0x44a060
xorps xmm0, xmm0
mov byte [ebp - 0xec], 0
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a096
sub ecx, edx
lea eax, [ebp - 0xf8]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
lea edi, [ebp - 0x70]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
cmovae ecx, edx
mov eax, dword [ebp - 0x60]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0x70]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], edi
cmp esi, eax
ja 0x44a1b5
sub eax, esi
test esi, esi
jne 0x44a0f3
xor edi, edi
jmp 0x44a199
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a1b2
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44a131
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44a136
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44a120
cmp esi, 0xfffffffc
je 0x44a16a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44a163
cmp esi, 0xfffffffd
je 0x44a16a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44a163
cmp esi, 0xfffffffe
je 0x44a16a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44a163
cmp esi, 0xffffffff
je 0x44a16a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44a16a
sbb eax, eax
or eax, 1
jmp 0x44a16c
xor eax, eax
test eax, eax
je 0x44a18e
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44a116
jmp 0x44a1b2
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44a1b2
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x70]
push eax
push esi
push edi
call fcn.00468ce0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0xc
je 0x44a1eb
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44a1e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44a223
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a219
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 0x113], 0xdbcec9be
xor ecx, ecx
mov dword [ebp - 0x10f], 0xedf3f0cd
mov dword [ebp - 0x10b], 0xe3e9ede5
mov word [ebp - 0x107], 0x82
mov byte [ebp - 0x105], 1
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x113], al
inc ecx
cmp ecx, 0xd
jb 0x44a253
lea edx, [ebp - 0x113]
mov byte [ebp - 0x105], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a274
sub edx, ecx
lea eax, [ebp - 0x113]
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
push edx
cmovae ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x60]
push eax
push 0
call fcn.0046bbf0
add esp, 0xc
test eax, eax
jne 0x44a44f
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df810
add esp, 0xc
lea eax, [ebp - 0x2e0]
push eax
push 0
push 0
push 0x28
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a2f0
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0xe
xor ecx, ecx
mov dword [ebp - 0x122], 0xdbcec9be
mov dword [ebp - 0x11e], 0xedf3f0cd
mov dword [ebp - 0x11a], 0xe3e9ede5
mov word [ebp - 0x116], 0x82
mov byte [ebp - 0x114], 1
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x122], al
inc ecx
cmp ecx, 0xd
jb 0x44a340
xorps xmm0, xmm0
mov byte [ebp - 0x114], 0
lea ecx, [ebp - 0x122]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a376
sub ecx, edx
lea eax, [ebp - 0x122]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x34]
mov edi, dword [ebp - 0x20]
lea ecx, [ebp - 0x70]
push dword [ebp - 0x24]
mov esi, dword [ebp - 0x34]
cmp edi, 0x10
mov edx, dword [ebp - 0x60]
cmovae eax, esi
setae byte [ebp - 0x11]
cmp dword [ebp - 0x5c], 0x10
push eax
cmovae ecx, dword [ebp - 0x70]
push 0
call fcn.0046bbf0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44a3e2
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae ecx, dword [ebp - 0x58]
push ecx
push dword [ebp - 0x24]
lea ecx, [ebp - 0x70]
push eax
call fcn.00468ce0
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0xe
je 0x44a417
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x44a40d
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push esi
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44a44f
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a445
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 0xd3], 0xcecdddbe
xor ecx, ecx
mov dword [ebp - 0xcf], 0xe3f5e1db
mov word [ebp - 0xcb], 0x86
mov byte [ebp - 0xc9], 1
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xd3], al
inc ecx
cmp ecx, 9
jb 0x44a475
lea edx, [ebp - 0xd3]
mov byte [ebp - 0xc9], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a496
sub edx, ecx
lea eax, [ebp - 0xd3]
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
push edx
cmovae ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x60]
push eax
push 0
call fcn.0046bbf0
add esp, 0xc
test eax, eax
jne 0x44a723
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df810
add esp, 0xc
lea eax, [ebp - 0x2e0]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a510
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0x10
xor ecx, ecx
mov dword [ebp - 0xde], 0xcecdddbe
mov dword [ebp - 0xda], 0xe3f5e1db
mov word [ebp - 0xd6], 0x86
mov byte [ebp - 0xd4], 1
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xde], al
inc ecx
cmp ecx, 9
jb 0x44a553
xorps xmm0, xmm0
mov byte [ebp - 0xd4], 0
lea ecx, [ebp - 0xde]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a590
sub ecx, edx
lea eax, [ebp - 0xde]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
lea edi, [ebp - 0x70]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
cmovae ecx, edx
mov eax, dword [ebp - 0x60]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0x70]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], edi
cmp esi, eax
ja 0x44a6b5
sub eax, esi
test esi, esi
jne 0x44a5ed
xor edi, edi
jmp 0x44a699
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a6b2
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44a631
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44a636
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44a620
cmp esi, 0xfffffffc
je 0x44a66a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44a663
cmp esi, 0xfffffffd
je 0x44a66a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44a663
cmp esi, 0xfffffffe
je 0x44a66a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44a663
cmp esi, 0xffffffff
je 0x44a66a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44a66a
sbb eax, eax
or eax, 1
jmp 0x44a66c
xor eax, eax
test eax, eax
je 0x44a68e
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44a610
jmp 0x44a6b2
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44a6b2
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x70]
push eax
push esi
push edi
call fcn.00468ce0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x10
je 0x44a6eb
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44a6e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44a723
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a719
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 0x142], 0xddd2d0be
xor ecx, ecx
mov dword [ebp - 0x13e], 0xf2e0ecde
mov dword [ebp - 0x13a], 0xf2e4e0f3
mov dword [ebp - 0x136], 0x1008de6
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x142], al
inc ecx
cmp ecx, 0xe
jb 0x44a750
lea edx, [ebp - 0x142]
mov byte [ebp - 0x133], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a771
sub edx, ecx
lea eax, [ebp - 0x142]
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
push edx
cmovae ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x60]
push eax
push 0
call fcn.0046bbf0
add esp, 0xc
test eax, eax
jne 0x44aa03
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df810
add esp, 0xc
lea eax, [ebp - 0x2e0]
push eax
push 0
push 0
push 0x1c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a7f0
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0x12
xor ecx, ecx
mov dword [ebp - 0x132], 0xddd2d0be
mov dword [ebp - 0x12e], 0xf2e0ecde
mov dword [ebp - 0x12a], 0xf2e4e0f3
mov dword [ebp - 0x126], 0x1008de6
nop word [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x132], al
inc ecx
cmp ecx, 0xe
jb 0x44a840
xorps xmm0, xmm0
mov byte [ebp - 0x123], 0
lea ecx, [ebp - 0x132]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a876
sub ecx, edx
lea eax, [ebp - 0x132]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
lea edi, [ebp - 0x70]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
cmovae ecx, edx
mov eax, dword [ebp - 0x60]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0x70]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], edi
cmp esi, eax
ja 0x44a995
sub eax, esi
test esi, esi
jne 0x44a8d3
xor edi, edi
jmp 0x44a979
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a992
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44a911
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44a916
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44a900
cmp esi, 0xfffffffc
je 0x44a94a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44a943
cmp esi, 0xfffffffd
je 0x44a94a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44a943
cmp esi, 0xfffffffe
je 0x44a94a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44a943
cmp esi, 0xffffffff
je 0x44a94a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44a94a
sbb eax, eax
or eax, 1
jmp 0x44a94c
xor eax, eax
test eax, eax
je 0x44a96e
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44a8f6
jmp 0x44a992
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44a992
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x70]
push eax
push esi
push edi
call fcn.00468ce0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x12
je 0x44a9cb
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44a9c1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44aa03
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a9f9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 0xa8], 0xddd8cebe
xor ecx, ecx
mov dword [ebp - 0xa4], 0x87f5eeda
mov word [ebp - 0xa0], 0x100
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xa8], al
inc ecx
cmp ecx, 8
jb 0x44aa22
lea edx, [ebp - 0xa8]
mov byte [ebp - 0x9f], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44aa43
sub edx, ecx
lea eax, [ebp - 0xa8]
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
push edx
cmovae ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x60]
push eax
push 0
call fcn.0046bbf0
add esp, 0xc
test eax, eax
jne 0x44acc3
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df810
add esp, 0xc
lea eax, [ebp - 0x2e0]
push eax
push 0
push 0
push 8
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x58], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44aac0
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0x14
xor ecx, ecx
mov dword [ebp - 0xb2], 0xddd8cebe
mov dword [ebp - 0xae], 0x87f5eeda
mov word [ebp - 0xaa], 0x100
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xb2], al
inc ecx
cmp ecx, 8
jb 0x44ab00
xorps xmm0, xmm0
mov byte [ebp - 0xa9], 0
lea ecx, [ebp - 0xb2]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ab36
sub ecx, edx
lea eax, [ebp - 0xb2]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
lea edi, [ebp - 0x70]
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
cmovae ecx, edx
mov eax, dword [ebp - 0x60]
setae byte [ebp - 0x11]
cmp dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x18], edx
cmovae edi, dword [ebp - 0x70]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], edi
cmp esi, eax
ja 0x44ac55
sub eax, esi
test esi, esi
jne 0x44ab93
xor edi, edi
jmp 0x44ac39
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44ac52
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44abd1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44abd6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44abc0
cmp esi, 0xfffffffc
je 0x44ac0a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44ac03
cmp esi, 0xfffffffd
je 0x44ac0a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44ac03
cmp esi, 0xfffffffe
je 0x44ac0a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44ac03
cmp esi, 0xffffffff
je 0x44ac0a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44ac0a
sbb eax, eax
or eax, 1
jmp 0x44ac0c
xor eax, eax
test eax, eax
je 0x44ac2e
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44abb6
jmp 0x44ac52
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44ac52
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x70]
push eax
push esi
push edi
call fcn.00468ce0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x14
je 0x44ac8b
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44ac81
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44acc3
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44acb9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebp - 0x170]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x174]
imul ecx
mov dword [ebp - 0x3c], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x44b2b1
xor edi, edi
mov dword [ebp - 0x18], edi
mov esi, dword [ebp - 0x174]
add esi, edi
cmp dword [esi + 0x14], 0x10
mov eax, dword [esi + 0x10]
jb 0x44ad05
mov esi, dword [esi]
test eax, eax
je 0x44af80
push eax
push 0x2a
push esi
call fcn.004e1000
add esp, 0xc
test eax, eax
je 0x44af80
sub eax, esi
cmp eax, 0xffffffff
je 0x44af80
mov dword [ebp - 0x82], 0xb7b0b2b3
xor ecx, ecx
mov word [ebp - 0x7e], 0x100
nop
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x82], al
inc ecx
cmp ecx, 4
jb 0x44ad40
xorps xmm0, xmm0
mov byte [ebp - 0x7d], 0
lea ecx, [ebp - 0x82]
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x44], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ad73
sub ecx, edx
lea eax, [ebp - 0x82]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x9e]
xorps xmm0, xmm0
mov word [ebp - 0x9e], 0x2a
mov byte [ebp - 0x9c], 0
lea edx, [ecx + 1]
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44adc0
sub ecx, edx
lea eax, [ebp - 0x9e]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x34]
mov esi, dword [ebp - 0x174]
mov edx, dword [ebp - 0x34]
add esi, edi
cmp dword [ebp - 0x20], 0x10
mov edi, esi
mov dword [ebp - 0x7c], esi
cmovae ecx, edx
mov dword [ebp - 0x1c], edx
mov eax, dword [esi + 0x10]
setae byte [ebp - 0x11]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x38], esi
jb 0x44ae12
mov edi, dword [esi]
mov dword [ebp - 0x38], edi
mov esi, dword [ebp - 0x24]
cmp esi, eax
ja 0x44af03
sub eax, esi
test esi, esi
jne 0x44ae2a
xor edi, edi
jmp 0x44aee7
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x168], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44af00
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44ae71
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44ae7a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44ae60
cmp esi, 0xfffffffc
je 0x44aeae
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44aea7
cmp esi, 0xfffffffd
je 0x44aeae
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44aea7
cmp esi, 0xfffffffe
je 0x44aeae
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44aea7
cmp esi, 0xffffffff
je 0x44aeae
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44aeae
sbb eax, eax
or eax, 1
jmp 0x44aeb0
xor eax, eax
test eax, eax
je 0x44aedc
mov eax, dword [ebp - 0x168]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x98]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44ae53
jmp 0x44af00
sub edi, dword [ebp - 0x38]
cmp edi, 0xffffffff
je 0x44af00
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x7c]
push eax
push esi
push edi
call fcn.00468ce0
mov edx, dword [ebp - 0x1c]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x16
je 0x44af39
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44af2f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44acf2
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44af6e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
mov edi, dword [ebp - 0x18]
add esp, 8
jmp 0x44acf2
add edi, dword [ebp - 0x174]
xor ecx, ecx
mov dword [ebp - 0x88], 0xb7b0b2b3
mov word [ebp - 0x84], 0x100
nop dword [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x88], al
inc ecx
cmp ecx, 4
jb 0x44afa0
lea esi, [ebp - 0x88]
mov byte [ebp - 0x83], 0
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x44afc1
mov edx, dword [edi + 0x10]
sub esi, ecx
cmp dword [edi + 0x14], 0x10
jb 0x44afd5
mov edi, dword [edi]
push esi
lea eax, [ebp - 0x88]
mov ecx, edi
push eax
push 0
call fcn.0046bbf0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44b27c
mov dword [ebp - 0x8e], 0xb7b7b2b3
xor ecx, ecx
mov word [ebp - 0x8a], 0x100
nop word [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x8e], al
inc ecx
cmp ecx, 4
jb 0x44b010
xorps xmm0, xmm0
mov byte [ebp - 0x89], 0
lea ecx, [ebp - 0x8e]
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x44], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b046
sub ecx, edx
lea eax, [ebp - 0x8e]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402870
mov byte [ebp - 4], 0x18
xor ecx, ecx
mov dword [ebp - 0x94], 0xb7b0b2b3
mov word [ebp - 0x90], 0x100
nop dword [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 4
jb 0x44b080
xorps xmm0, xmm0
mov byte [ebp - 0x8f], 0
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b0b6
sub ecx, edx
lea eax, [ebp - 0x94]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402870
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x19
add esi, dword [ebp - 0x174]
cmp dword [ebp - 0x20], 0x10
mov edi, esi
mov edx, dword [ebp - 0x34]
cmovae ecx, edx
mov dword [ebp - 0x40], esi
mov eax, dword [esi + 0x10]
setae byte [ebp - 0x11]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x38], esi
jb 0x44b109
mov edi, dword [esi]
mov dword [ebp - 0x38], edi
mov esi, dword [ebp - 0x24]
cmp esi, eax
ja 0x44b1ff
sub eax, esi
test esi, esi
jne 0x44b121
xor edi, edi
jmp 0x44b1e3
movsx ecx, byte [ecx]
inc eax
add eax, edi
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x98], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44b1fc
nop word [eax + eax]
mov ecx, dword [ebp - 0x7c]
mov edx, edi
sub esi, 4
jb 0x44b171
nop word [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x44b176
add edx, 4
add ecx, 4
sub esi, 4
jae 0x44b160
cmp esi, 0xfffffffc
je 0x44b1aa
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x44b1a3
cmp esi, 0xfffffffd
je 0x44b1aa
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x44b1a3
cmp esi, 0xfffffffe
je 0x44b1aa
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x44b1a3
cmp esi, 0xffffffff
je 0x44b1aa
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x44b1aa
sbb eax, eax
or eax, 1
jmp 0x44b1ac
xor eax, eax
test eax, eax
je 0x44b1d8
mov eax, dword [ebp - 0x98]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x168]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44b150
jmp 0x44b1fc
sub edi, dword [ebp - 0x38]
cmp edi, 0xffffffff
je 0x44b1fc
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
push dword [ebp - 0x48]
cmovae eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x40]
push eax
push esi
push edi
call fcn.00468ce0
mov edx, dword [ebp - 0x1c]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x18
je 0x44b235
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44b22b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44af80
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b26a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
mov edi, dword [ebp - 0x18]
add esp, 8
jmp 0x44af80
mov ecx, dword [ebp - 0x170]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x174]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x18]
inc esi
imul ecx
add edi, 0x18
mov dword [ebp - 0x3c], esi
sar edx, 2
mov eax, edx
mov dword [ebp - 0x18], edi
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x44acf2
sub esp, 0xc
lea eax, [ebp - 0x174]
mov ecx, esp
mov dword [ebp - 0x7c], esp
push eax
call fcn.004652c0
sub esp, 0xc
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x1bc]
mov dword [ebp - 0x98], esp
mov ecx, esp
push eax
call fcn.004652c0
lea eax, [ebp - 0x198]
mov byte [ebp - 4], 0x1b
mov esi, dword [ebp - 0x164]
push eax
sub esp, 0x18
shl esi, 0xa
lea eax, [ebx + 8]
mov dword [ebp - 0x164], esp
mov ecx, esp
push eax
call fcn.00466580
sub esp, 0x18
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x70]
mov ecx, esp
push eax
call fcn.00466580
mov cl, byte [ebp - 0x75]
mov edx, esi
mov byte [ebp - 4], 9
call fcn.004485c0
add esp, 0x4c
lea ecx, [ebp - 0x174]
call fcn.00468770
lea ecx, [ebp - 0x1bc]
call fcn.00468770
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x44b379
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b36f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x19c]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
cmp ecx, 0x10
jb 0x44b3c9
mov edx, dword [ebp - 0x1b0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b3bf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x1c0]
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
mov byte [ebp - 0x1b0], 0
cmp ecx, 0x10
jb 0x44b422
mov edx, dword [ebp - 0x1d4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b418
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
add esp, 8
mov eax, dword [ebp - 0x194]
movzx eax, byte [eax]
sub eax, 1
je 0x44b44c
sub eax, 1
je 0x44b440
inc dword [ebp - 0x188]
jmp 0x449984
add dword [ebp - 0x18c], 0x10
jmp 0x449984
mov eax, dword [ebp - 0x190]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
call fcn.00467a30
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x190], eax
jmp 0x449984
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0x10
jb 0x44b49f
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b495
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b506
push ecx
push edx
call fcn.004dd831
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.004dc7db
mov ecx, eax
call fcn.00468250
push eax
lea ecx, [ebp - 0x58]
call fcn.00402710
push eax
mov edx, str.type_must_be_boolean__but_is
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x34]
call fcn.0046a3e0
add esp, 4
push eax
mov edx, 0x12e
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2fc]
call fcn.00408960
add esp, 4
lea eax, [ebp - 0x2fc]
push 0x532798
push eax
call fcn.004df21b
call fcn.004e2ad0
int3