Function at 0x4499c0
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 0x508ad2
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 0x538280
cmovae esi, dword [ebx + 8]
mov dword [ebp - 0x198], 0
call fcn.004dc762
add esp, 4
test eax, eax
jne 0x44b632
test esi, esi
je 0x449a4d
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449a30
sub ecx, edx
je 0x449a4d
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x449a4d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x538280
call fcn.004dc773
add esp, 4
cmp byte [0x538188], 2
jne 0x44b5eb
lea eax, [ebp - 0x194]
mov ecx, 0x538188
push eax
call fcn.004637b0
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], connect
sub ecx, 1
je 0x449af9
sub ecx, 1
je 0x449aeb
mov dword [ebp - 0x178], connect
sub eax, 1
je 0x449af9
sub eax, 1
je 0x449aeb
mov dword [ebp - 0x178], 1
jmp 0x449b04
mov eax, dword [edx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x17c], eax
jmp 0x449b04
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.00462c10
test al, al
je 0x44b5eb
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea ecx, [ebp - 0x194]
call fcn.00462d20
movaps xmm0, xmmword [0x525e20]
mov esi, eax
movups xmmword [ebp - 0x2d], xmm0
mov byte [ebp - 0x1d], 1
xor ecx, ecx
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xf
jb 0x449b42
lea eax, [ebp - 0x2d]
mov byte [ebp - 0x1d], 0
push eax
mov ecx, esi
call fcn.0046a110
lea ecx, [ebp - 0x1d4]
push ecx
mov ecx, eax
call fcn.0046a250
mov byte [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0x104], 0xd9d7cfcb
mov dword [ebp - 0x100], 0xacd6d8e2
mov dword [ebp - 0xfc], 0x100b1a4
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x104], al
inc ecx
cmp ecx, 0xa
jb 0x449b91
lea eax, [ebp - 0x104]
mov byte [ebp - 0xf9], 0
push eax
mov ecx, esi
call fcn.0046a110
lea ecx, [ebp - 0x1b0]
push ecx
mov ecx, eax
call fcn.0046a250
mov byte [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x14f], 0xd9d7cfcb
mov dword [ebp - 0x14b], 0xacd0d8e2
mov dword [ebp - 0x147], 0xb1a7a5
mov byte [ebp - 0x143], 1
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x14f], al
inc ecx
cmp ecx, 0xb
jb 0x449bf0
lea eax, [ebp - 0x14f]
mov byte [ebp - 0x143], 0
push eax
mov ecx, esi
call fcn.0046a110
lea ecx, [ebp - 0x70]
push ecx
mov ecx, eax
call fcn.0046a250
mov byte [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 0x15d], 0xd9d7cfcb
mov dword [ebp - 0x159], 0xbad6cde2
mov dword [ebp - 0x155], 0xa6a89da4
mov word [ebp - 0x151], 0x100
nop
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x15d], al
inc ecx
cmp ecx, 0xc
jb 0x449c50
lea eax, [ebp - 0x15d]
mov byte [ebp - 0x150], 0
push eax
mov ecx, esi
call fcn.0046a110
lea ecx, [ebp - 0x58]
push ecx
mov ecx, eax
call fcn.0046a250
cmp dword [eax + 0x14], 0x10
jb 0x449c89
mov eax, dword [eax]
push eax
call fcn.004ead47
mov ecx, dword [ebp - 0x44]
add esp, 4
mov dword [ebp - 0x164], eax
cmp ecx, 0x10
jb 0x449ccc
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x449cc2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
movaps xmm0, xmmword [0x526d00]
xor ecx, ecx
movups xmmword [ebp - 0x32], xmm0
mov dword [ebp - 0x22], 0xbab8b8bc
mov word [ebp - 0x1e], 0x100
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x32], al
inc ecx
cmp ecx, 0x14
jb 0x449ce6
lea eax, [ebp - 0x32]
mov byte [ebp - 0x1d], 0
push eax
mov ecx, esi
call fcn.0046a110
cmp byte [eax], 4
jne 0x44b638
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 0x449d47
sub ecx, esi
lea eax, [ebp - 0x9b]
push ecx
push eax
mov ecx, edx
call fcn.004028a0
sub esp, 0x18
mov byte [ebp - 4], 6
lea eax, [ebp - 0x1d4]
mov ecx, esp
push eax
call fcn.00466110
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 3
call fcn.0040c490
add esp, 0x30
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x74], 0x1009a95
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x74], al
inc ecx
cmp ecx, 2
jb 0x449d93
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 0x449dc7
sub ecx, esi
lea eax, [ebp - 0x74]
push ecx
push eax
mov ecx, edx
call fcn.004028a0
sub esp, 0x18
mov byte [ebp - 4], 8
lea eax, [ebp - 0x1b0]
mov ecx, esp
push eax
call fcn.00466110
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 7
call fcn.0040c490
add esp, 0x30
mov byte [ebp - 4], 9
xor ecx, ecx
mov dword [ebp - 0xbd], 0xeffefe9c
mov dword [ebp - 0xb9], 0x90f0eaf6
mov word [ebp - 0xb5], 0xe4
mov byte [ebp - 0xb3], 1
nop dword [eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xbd], al
inc ecx
cmp ecx, 9
jb 0x449e30
lea edx, [ebp - 0xbd]
mov byte [ebp - 0xb3], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x449e51
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.0046b770
add esp, 0xc
test eax, eax
jne 0x44a0d9
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df440
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 0x449ec6
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
mov byte [ebp - 4], 0xa
xor ecx, ecx
mov dword [ebp - 0xc8], 0xeffefe9c
mov dword [ebp - 0xc4], 0x90f0eaf6
mov word [ebp - 0xc0], 0xe4
mov byte [ebp - 0xbe], 1
nop dword [eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xc8], al
inc ecx
cmp ecx, 9
jb 0x449f10
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 0x449f46
sub ecx, edx
lea eax, [ebp - 0xc8]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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 0x44a065
sub eax, esi
test esi, esi
jne 0x449fa3
xor edi, edi
jmp 0x44a049
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.004e0c30
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a062
mov edx, dword [ebp - 0x3c]
mov ecx, edi
sub esi, 4
jb 0x449fe1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x449fe6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x449fd0
cmp esi, 0xfffffffc
je 0x44a01a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44a013
cmp esi, 0xfffffffd
je 0x44a01a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44a013
cmp esi, 0xfffffffe
je 0x44a01a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44a013
cmp esi, 0xffffffff
je 0x44a01a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44a01a
sbb eax, eax
or eax, 1
jmp 0x44a01c
xor eax, eax
test eax, eax
je 0x44a03e
mov eax, dword [ebp - 0x38]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x1c]
push edi
call fcn.004e0c30
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x449fc6
jmp 0x44a062
sub edi, dword [ebp - 0x40]
cmp edi, 0xffffffff
je 0x44a062
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.004687c0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0xa
je 0x44a09b
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44a091
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44a0d3
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a0c9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0xeb], 0xfff4fe9c
xor ecx, ecx
mov dword [ebp - 0xe7], 0x8efaf3e8
mov dword [ebp - 0xe3], 0xe69195
mov byte [ebp - 0xdf], 1
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xeb], al
inc ecx
cmp ecx, 0xb
jb 0x44a100
lea edx, [ebp - 0xeb]
mov byte [ebp - 0xdf], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a121
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.0046b770
add esp, 0xc
test eax, eax
jne 0x44a3a3
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df440
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 0x44a196
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
mov byte [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0xf8], 0xfff4fe9c
mov dword [ebp - 0xf4], 0x8efaf3e8
mov dword [ebp - 0xf0], 0xe69195
mov byte [ebp - 0xec], 1
nop word [eax + eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xf8], al
inc ecx
cmp ecx, 0xb
jb 0x44a1e0
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 0x44a216
sub ecx, edx
lea eax, [ebp - 0xf8]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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 0x44a335
sub eax, esi
test esi, esi
jne 0x44a273
xor edi, edi
jmp 0x44a319
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.004e0c30
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a332
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44a2b1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44a2b6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44a2a0
cmp esi, 0xfffffffc
je 0x44a2ea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44a2e3
cmp esi, 0xfffffffd
je 0x44a2ea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44a2e3
cmp esi, 0xfffffffe
je 0x44a2ea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44a2e3
cmp esi, 0xffffffff
je 0x44a2ea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44a2ea
sbb eax, eax
or eax, 1
jmp 0x44a2ec
xor eax, eax
test eax, eax
je 0x44a30e
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e0c30
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44a296
jmp 0x44a332
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44a332
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.004687c0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0xc
je 0x44a36b
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44a361
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44a3a3
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a399
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov dword [ebp - 0x113], 0xf9e8ef9c
xor ecx, ecx
mov dword [ebp - 0x10f], 0x8fedeeef
mov dword [ebp - 0x10b], 0x818f8b87
mov word [ebp - 0x107], 0xe0
mov byte [ebp - 0x105], 1
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x113], al
inc ecx
cmp ecx, 0xd
jb 0x44a3d3
lea edx, [ebp - 0x113]
mov byte [ebp - 0x105], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a3f4
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.0046b770
add esp, 0xc
test eax, eax
jne 0x44a5cf
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df440
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 0x44a470
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
mov byte [ebp - 4], 0xe
xor ecx, ecx
mov dword [ebp - 0x122], 0xf9e8ef9c
mov dword [ebp - 0x11e], 0x8fedeeef
mov dword [ebp - 0x11a], 0x818f8b87
mov word [ebp - 0x116], 0xe0
mov byte [ebp - 0x114], 1
nop dword [eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x122], al
inc ecx
cmp ecx, 0xd
jb 0x44a4c0
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 0x44a4f6
sub ecx, edx
lea eax, [ebp - 0x122]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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.0046b770
add esp, 0xc
cmp eax, 0xffffffff
je 0x44a562
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.004687c0
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0xe
je 0x44a597
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x44a58d
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push esi
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44a5cf
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a5c5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov dword [ebp - 0xd3], 0xecebfb9c
xor ecx, ecx
mov dword [ebp - 0xcf], 0x81ebfff9
mov word [ebp - 0xcb], 0xe4
mov byte [ebp - 0xc9], 1
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xd3], al
inc ecx
cmp ecx, 9
jb 0x44a5f5
lea edx, [ebp - 0xd3]
mov byte [ebp - 0xc9], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a616
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.0046b770
add esp, 0xc
test eax, eax
jne 0x44a8a3
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df440
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 0x44a690
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
mov byte [ebp - 4], 0x10
xor ecx, ecx
mov dword [ebp - 0xde], 0xecebfb9c
mov dword [ebp - 0xda], 0x81ebfff9
mov word [ebp - 0xd6], 0xe4
mov byte [ebp - 0xd4], 1
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xde], al
inc ecx
cmp ecx, 9
jb 0x44a6d3
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 0x44a710
sub ecx, edx
lea eax, [ebp - 0xde]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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 0x44a835
sub eax, esi
test esi, esi
jne 0x44a76d
xor edi, edi
jmp 0x44a819
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.004e0c30
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44a832
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44a7b1
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44a7b6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44a7a0
cmp esi, 0xfffffffc
je 0x44a7ea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44a7e3
cmp esi, 0xfffffffd
je 0x44a7ea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44a7e3
cmp esi, 0xfffffffe
je 0x44a7ea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44a7e3
cmp esi, 0xffffffff
je 0x44a7ea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44a7ea
sbb eax, eax
or eax, 1
jmp 0x44a7ec
xor eax, eax
test eax, eax
je 0x44a80e
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e0c30
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44a790
jmp 0x44a832
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44a832
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.004687c0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x10
je 0x44a86b
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44a861
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44a8a3
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a899
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov dword [ebp - 0x142], 0xfff4f69c
xor ecx, ecx
mov dword [ebp - 0x13e], 0x90fef2fc
mov dword [ebp - 0x13a], 0x90828691
mov dword [ebp - 0x136], 0x100e384
nop dword [eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x142], al
inc ecx
cmp ecx, 0xe
jb 0x44a8d0
lea edx, [ebp - 0x142]
mov byte [ebp - 0x133], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44a8f1
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.0046b770
add esp, 0xc
test eax, eax
jne 0x44ab83
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df440
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 0x44a970
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
mov byte [ebp - 4], 0x12
xor ecx, ecx
mov dword [ebp - 0x132], 0xfff4f69c
mov dword [ebp - 0x12e], 0x90fef2fc
mov dword [ebp - 0x12a], 0x90828691
mov dword [ebp - 0x126], 0x100e384
nop word [eax + eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x132], al
inc ecx
cmp ecx, 0xe
jb 0x44a9c0
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 0x44a9f6
sub ecx, edx
lea eax, [ebp - 0x132]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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 0x44ab15
sub eax, esi
test esi, esi
jne 0x44aa53
xor edi, edi
jmp 0x44aaf9
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.004e0c30
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44ab12
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44aa91
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44aa96
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44aa80
cmp esi, 0xfffffffc
je 0x44aaca
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44aac3
cmp esi, 0xfffffffd
je 0x44aaca
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44aac3
cmp esi, 0xfffffffe
je 0x44aaca
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44aac3
cmp esi, 0xffffffff
je 0x44aaca
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44aaca
sbb eax, eax
or eax, 1
jmp 0x44aacc
xor eax, eax
test eax, eax
je 0x44aaee
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e0c30
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44aa76
jmp 0x44ab12
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44ab12
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.004687c0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x12
je 0x44ab4b
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44ab41
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44ab83
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ab79
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov dword [ebp - 0xa8], 0xfffee89c
xor ecx, ecx
mov dword [ebp - 0xa4], 0xe5ebf0f8
mov word [ebp - 0xa0], 0x100
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xa8], al
inc ecx
cmp ecx, 8
jb 0x44aba2
lea edx, [ebp - 0xa8]
mov byte [ebp - 0x9f], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44abc3
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.0046b770
add esp, 0xc
test eax, eax
jne 0x44ae43
push 0x104
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.004df440
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 0x44ac40
sub ecx, edx
lea eax, [ebp - 0x2e0]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
mov byte [ebp - 4], 0x14
xor ecx, ecx
mov dword [ebp - 0xb2], 0xfffee89c
mov dword [ebp - 0xae], 0xe5ebf0f8
mov word [ebp - 0xaa], 0x100
nop dword [eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0xb2], al
inc ecx
cmp ecx, 8
jb 0x44ac80
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 0x44acb6
sub ecx, edx
lea eax, [ebp - 0xb2]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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 0x44add5
sub eax, esi
test esi, esi
jne 0x44ad13
xor edi, edi
jmp 0x44adb9
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.004e0c30
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44add2
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44ad51
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44ad56
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44ad40
cmp esi, 0xfffffffc
je 0x44ad8a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44ad83
cmp esi, 0xfffffffd
je 0x44ad8a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44ad83
cmp esi, 0xfffffffe
je 0x44ad8a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44ad83
cmp esi, 0xffffffff
je 0x44ad8a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44ad8a
sbb eax, eax
or eax, 1
jmp 0x44ad8c
xor eax, eax
test eax, eax
je 0x44adae
mov eax, dword [ebp - 0x3c]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x38]
push edi
call fcn.004e0c30
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44ad36
jmp 0x44add2
sub edi, dword [ebp - 0x1c]
cmp edi, 0xffffffff
je 0x44add2
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.004687c0
mov edx, dword [ebp - 0x18]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x14
je 0x44ae0b
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44ae01
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44ae43
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ae39
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
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 0x44b431
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 0x44ae85
mov esi, dword [esi]
test eax, eax
je 0x44b100
push eax
push 0x2a
push esi
call fcn.004e0c30
add esp, 0xc
test eax, eax
je 0x44b100
sub eax, esi
cmp eax, 0xffffffff
je 0x44b100
mov dword [ebp - 0x82], 0x95969491
xor ecx, ecx
mov word [ebp - 0x7e], 0x100
nop
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x82], al
inc ecx
cmp ecx, 4
jb 0x44aec0
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 0x44aef3
sub ecx, edx
lea eax, [ebp - 0x82]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
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 0x44af40
sub ecx, edx
lea eax, [ebp - 0x9e]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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 0x44af92
mov edi, dword [esi]
mov dword [ebp - 0x38], edi
mov esi, dword [ebp - 0x24]
cmp esi, eax
ja 0x44b083
sub eax, esi
test esi, esi
jne 0x44afaa
xor edi, edi
jmp 0x44b067
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.004e0c30
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44b080
mov edx, dword [ebp - 0x40]
mov ecx, edi
sub esi, 4
jb 0x44aff1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44affa
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44afe0
cmp esi, 0xfffffffc
je 0x44b02e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44b027
cmp esi, 0xfffffffd
je 0x44b02e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44b027
cmp esi, 0xfffffffe
je 0x44b02e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44b027
cmp esi, 0xffffffff
je 0x44b02e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44b02e
sbb eax, eax
or eax, 1
jmp 0x44b030
xor eax, eax
test eax, eax
je 0x44b05c
mov eax, dword [ebp - 0x168]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x98]
push edi
call fcn.004e0c30
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44afd3
jmp 0x44b080
sub edi, dword [ebp - 0x38]
cmp edi, 0xffffffff
je 0x44b080
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.004687c0
mov edx, dword [ebp - 0x1c]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x16
je 0x44b0b9
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44b0af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44ae72
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b0ee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
mov edi, dword [ebp - 0x18]
add esp, 8
jmp 0x44ae72
add edi, dword [ebp - 0x174]
xor ecx, ecx
mov dword [ebp - 0x88], 0x95969491
mov word [ebp - 0x84], 0x100
nop dword [eax + eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x88], al
inc ecx
cmp ecx, 4
jb 0x44b120
lea esi, [ebp - 0x88]
mov byte [ebp - 0x83], 0
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x44b141
mov edx, dword [edi + 0x10]
sub esi, ecx
cmp dword [edi + 0x14], 0x10
jb 0x44b155
mov edi, dword [edi]
push esi
lea eax, [ebp - 0x88]
mov ecx, edi
push eax
push 0
call fcn.0046b770
add esp, 0xc
cmp eax, 0xffffffff
je 0x44b3fc
mov dword [ebp - 0x8e], 0x95919491
xor ecx, ecx
mov word [ebp - 0x8a], 0x100
nop word [eax + eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x8e], al
inc ecx
cmp ecx, 4
jb 0x44b190
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 0x44b1c6
sub ecx, edx
lea eax, [ebp - 0x8e]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004028a0
mov byte [ebp - 4], 0x18
xor ecx, ecx
mov dword [ebp - 0x94], 0x95969491
mov word [ebp - 0x90], 0x100
nop dword [eax + eax]
mov al, cl
sub al, 0x47
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 4
jb 0x44b200
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 0x44b236
sub ecx, edx
lea eax, [ebp - 0x94]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004028a0
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 0x44b289
mov edi, dword [esi]
mov dword [ebp - 0x38], edi
mov esi, dword [ebp - 0x24]
cmp esi, eax
ja 0x44b37f
sub eax, esi
test esi, esi
jne 0x44b2a1
xor edi, edi
jmp 0x44b363
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.004e0c30
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44b37c
nop word [eax + eax]
mov ecx, dword [ebp - 0x7c]
mov edx, edi
sub esi, 4
jb 0x44b2f1
nop word [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x44b2f6
add edx, 4
add ecx, 4
sub esi, 4
jae 0x44b2e0
cmp esi, 0xfffffffc
je 0x44b32a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x44b323
cmp esi, 0xfffffffd
je 0x44b32a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x44b323
cmp esi, 0xfffffffe
je 0x44b32a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x44b323
cmp esi, 0xffffffff
je 0x44b32a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x44b32a
sbb eax, eax
or eax, 1
jmp 0x44b32c
xor eax, eax
test eax, eax
je 0x44b358
mov eax, dword [ebp - 0x98]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x168]
push edi
call fcn.004e0c30
mov esi, dword [ebp - 0x24]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44b2d0
jmp 0x44b37c
sub edi, dword [ebp - 0x38]
cmp edi, 0xffffffff
je 0x44b37c
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.004687c0
mov edx, dword [ebp - 0x1c]
cmp byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x18
je 0x44b3b5
mov ecx, dword [ebp - 0x20]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44b3ab
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov edi, dword [ebp - 0x18]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x44b100
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b3ea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
mov edi, dword [ebp - 0x18]
add esp, 8
jmp 0x44b100
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 0x44ae72
sub esp, 0xc
lea eax, [ebp - 0x174]
mov ecx, esp
mov dword [ebp - 0x7c], esp
push eax
call fcn.00464e50
sub esp, 0xc
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x1bc]
mov dword [ebp - 0x98], esp
mov ecx, esp
push eax
call fcn.00464e50
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.00466110
sub esp, 0x18
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x70]
mov ecx, esp
push eax
call fcn.00466110
mov cl, byte [ebp - 0x75]
mov edx, esi
mov byte [ebp - 4], 9
call fcn.00448720
add esp, 0x4c
lea ecx, [ebp - 0x174]
call fcn.00468250
lea ecx, [ebp - 0x1bc]
call fcn.00468250
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x44b4f9
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b4ef
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
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 0x44b549
mov edx, dword [ebp - 0x1b0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b53f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
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 0x44b5a2
mov edx, dword [ebp - 0x1d4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b598
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
add esp, 8
mov eax, dword [ebp - 0x194]
movzx eax, byte [eax]
sub eax, 1
je 0x44b5cc
sub eax, 1
je 0x44b5c0
inc dword [ebp - 0x188]
jmp 0x449b04
add dword [ebp - 0x18c], 0x10
jmp 0x449b04
mov eax, dword [ebp - 0x190]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
call fcn.00467510
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x190], eax
jmp 0x449b04
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0x10
jb 0x44b61f
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b615
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44b686
push ecx
push edx
call fcn.004dd461
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.004dc40b
mov ecx, eax
call fcn.00467d30
push eax
lea ecx, [ebp - 0x58]
call fcn.00402760
push eax
mov edx, str.type_must_be_boolean__but_is
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x34]
call fcn.00469ec0
add esp, 4
push eax
mov edx, 0x12e
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2fc]
call fcn.00408920
add esp, 4
lea eax, [ebp - 0x2fc]
push 0x5329f8
push eax
call fcn.004dee4b
call fcn.004e2700
int3