Function at 0x44bab0
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50f30a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x45c
push ebx
push esi
push edi
mov dword [ebp - 4], 0
lea ecx, [ebp + 8]
cmp dword [ebp + 0x1c], 0xf
mov dword [ebp - 0x28c], 0
jbe 0x44baee
mov ecx, dword [ebp + 8]
call fcn.0040b340
cmp byte [0x544368], 2
jne 0x44d388
lea eax, [ebp - 0x160]
mov ecx, 0x544368
push eax
call fcn.00465ec0
mov edx, ecx
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x150], edx
movzx eax, byte [edx]
mov ecx, eax
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], connect
sub ecx, 1
je 0x44bb92
sub ecx, 1
je 0x44bb84
mov dword [ebp - 0x144], connect
sub eax, 1
je 0x44bb92
sub eax, 1
je 0x44bb84
mov dword [ebp - 0x144], 1
jmp 0x44bb9d
mov eax, dword [edx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x148], eax
jmp 0x44bb9d
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x150]
push eax
lea ecx, [ebp - 0x160]
call fcn.00465140
test al, al
je 0x44d388
jmp 0x44bbc0
lea ecx, [ebp - 0x160]
call fcn.00465250
mov esi, eax
mov dword [ebp - 0x45], 0x8f859d95
mov dword [ebp - 0x41], 0x8d9589b4
xor ecx, ecx
mov dword [ebp - 0x3d], 0x9b85808a
mov dword [ebp - 0x39], 0x869a9c
mov byte [ebp - 0x35], 1
nop
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x45], al
inc ecx
cmp ecx, 0xf
jb 0x44bbf0
lea eax, [ebp - 0x45]
mov byte [ebp - 0x35], 0
push eax
mov ecx, esi
call fcn.0046d4f0
lea ecx, [ebp - 0x34c]
push ecx
mov ecx, eax
call fcn.0046d630
mov byte [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0xda], 0x8f859d95
mov dword [ebp - 0xd6], 0x82848ab4
mov dword [ebp - 0xd2], 0x100838a
nop
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xda], al
inc ecx
cmp ecx, 0xa
jb 0x44bc40
lea eax, [ebp - 0xda]
mov byte [ebp - 0xcf], 0
push eax
mov ecx, esi
call fcn.0046d4f0
lea ecx, [ebp - 0x334]
push ecx
mov ecx, eax
call fcn.0046d630
mov byte [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x125], 0x8f859d95
mov dword [ebp - 0x121], 0x82828ab4
mov dword [ebp - 0x11d], 0x83958b
mov byte [ebp - 0x119], 1
nop
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x125], al
inc ecx
cmp ecx, 0xb
jb 0x44bca0
lea eax, [ebp - 0x125]
mov byte [ebp - 0x119], 0
push eax
mov ecx, esi
call fcn.0046d4f0
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, eax
call fcn.0046d630
mov byte [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 0x133], 0x8f859d95
mov dword [ebp - 0x12f], 0x94849fb4
mov dword [ebp - 0x12b], 0x909aaf8a
mov word [ebp - 0x127], 0x100
mov edi, edi
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x133], al
inc ecx
cmp ecx, 0xc
jb 0x44bd00
lea eax, [ebp - 0x133]
mov byte [ebp - 0x126], 0
push eax
mov ecx, esi
call fcn.0046d4f0
lea ecx, [ebp - 0x364]
push ecx
mov ecx, eax
call fcn.0046d630
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 0xf
jbe 0x44bd40
mov eax, dword [eax]
push eax
call fcn.004ed3b7
add esp, 4
mov dword [ebp - 0x1f4], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x364]
call fcn.00402c80
mov dword [ebp - 0x4a], 0x8f859d95
xor ecx, ecx
mov dword [ebp - 0x46], 0x82828fb4
mov dword [ebp - 0x42], 0x86929583
mov dword [ebp - 0x3e], 0x959086ac
mov dword [ebp - 0x3a], 0x8c8a8a82
mov word [ebp - 0x36], 0x100
lea esp, [esp]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x4a], al
inc ecx
cmp ecx, 0x14
jb 0x44bd90
lea eax, [ebp - 0x4a]
mov byte [ebp - 0x35], 0
push eax
mov ecx, esi
call fcn.0046d4f0
cmp byte [eax], 4
jne 0x44d3a8
mov al, byte [eax + 8]
lea ecx, [ebp - 0x66]
sub esp, 0x18
mov byte [ebp - 0x4b], al
mov edx, esp
mov word [ebp - 0x66], 0x3a
xor eax, eax
mov byte [ebp - 0x64], 0
mov dword [ebp - 0x2f4], esp
lea esi, [ecx + 1]
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44bdf0
sub ecx, esi
lea eax, [ebp - 0x66]
push ecx
push eax
mov ecx, edx
call fcn.00402ea0
mov byte [ebp - 4], 7
sub esp, 0x18
lea eax, [ebp - 0x34c]
mov dword [ebp - 0x2f8], esp
mov ecx, esp
push eax
call fcn.00468b20
mov byte [ebp - 4], 8
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x314]
call fcn.0040b920
add esp, 0x30
mov byte [ebp - 4], 9
xor ecx, ecx
mov dword [ebp - 0x30], 0x100c8cb
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x30], al
inc ecx
cmp ecx, 2
jb 0x44be43
sub esp, 0x18
mov byte [ebp - 0x2d], 0
mov edx, esp
mov dword [ebp - 0x2fc], esp
xor eax, eax
lea ecx, [ebp - 0x30]
lea esi, [ecx + 1]
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44be80
sub ecx, esi
lea eax, [ebp - 0x30]
push ecx
push eax
mov ecx, edx
call fcn.00402ea0
mov byte [ebp - 4], 0xa
sub esp, 0x18
lea eax, [ebp - 0x334]
mov dword [ebp - 0x318], esp
mov ecx, esp
push eax
call fcn.00468b20
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x140]
call fcn.0040b920
add esp, 0x30
mov byte [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0x93], 0xb9acacc2
mov dword [ebp - 0x8f], 0xbea2b8a0
mov word [ebp - 0x8b], 0xca
mov byte [ebp - 0x89], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x93], al
inc ecx
cmp ecx, 9
jb 0x44bef0
lea edx, [ebp - 0x93]
mov byte [ebp - 0x89], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44bf11
mov ebx, dword [ebp - 0x18]
sub edx, ecx
mov edi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
cmp ebx, 0xf
jbe 0x44bf2a
mov ecx, edi
mov esi, dword [ebp - 0x1c]
lea eax, [ebp - 0x93]
push edx
push eax
push 0
mov edx, esi
call fcn.0046ece0
add esp, 0xc
test eax, eax
jne 0x44c0df
push 0x104
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.004e1ab0
add esp, 0xc
lea eax, [ebp - 0x468]
push eax
push 0
push 0
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x2bc], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44bfa2
sub ecx, edx
lea eax, [ebp - 0x468]
push ecx
push eax
lea ecx, [ebp - 0x2bc]
call fcn.00402ea0
mov byte [ebp - 4], 0xd
xor ecx, ecx
mov dword [ebp - 0x9e], 0xb9acacc2
mov dword [ebp - 0x9a], 0xbea2b8a0
mov word [ebp - 0x96], 0xca
mov byte [ebp - 0x94], 1
jmp 0x44bff0
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x9e], al
inc ecx
cmp ecx, 9
jb 0x44bff0
xor eax, eax
mov byte [ebp - 0x94], 0
lea ecx, [ebp - 0x9e]
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x2a0], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x29c], eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x290], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c037
sub ecx, edx
lea eax, [ebp - 0x9e]
push ecx
push eax
lea ecx, [ebp - 0x2a4]
call fcn.00402ea0
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x2a4]
cmp dword [ebp - 0x290], 0xf
jbe 0x44c06c
mov eax, dword [ebp - 0x2a4]
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
jbe 0x44c078
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x294]
mov edx, dword [ebp - 0x1c]
push esi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44c0b8
cmp dword [ebp - 0x2a8], 0xf
lea ecx, [ebp - 0x2bc]
jbe 0x44c0a7
mov ecx, dword [ebp - 0x2bc]
push dword [ebp - 0x2ac]
push ecx
push esi
push eax
lea ecx, [ebp - 0x2c]
call fcn.0046b1a0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2a4]
call fcn.00402c80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2bc]
call fcn.00402c80
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xc1], 0xa9a6acc2
xor ecx, ecx
mov dword [ebp - 0xbd], 0xa0a8a1be
mov dword [ebp - 0xb9], 0xd4a3bb
mov byte [ebp - 0xb5], 1
jmp 0x44c110
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xc1], al
inc ecx
cmp ecx, 0xb
jb 0x44c110
lea edx, [ebp - 0xc1]
mov byte [ebp - 0xb5], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44c131
sub edx, ecx
lea ecx, [ebp - 0x2c]
cmp ebx, 0xf
jbe 0x44c144
mov ecx, edi
push edx
lea eax, [ebp - 0xc1]
mov edx, esi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
test eax, eax
jne 0x44c2ff
push 0x104
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.004e1ab0
add esp, 0xc
lea eax, [ebp - 0x468]
push eax
push 0
push 0
push 5
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x2ec], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2d8], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c1c0
sub ecx, edx
lea eax, [ebp - 0x468]
push ecx
push eax
lea ecx, [ebp - 0x2ec]
call fcn.00402ea0
mov byte [ebp - 4], 0xf
xor ecx, ecx
mov dword [ebp - 0xce], 0xa9a6acc2
mov dword [ebp - 0xca], 0xa0a8a1be
mov dword [ebp - 0xc6], 0xd4a3bb
mov byte [ebp - 0xc2], 1
jmp 0x44c210
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xce], al
inc ecx
cmp ecx, 0xb
jb 0x44c210
xor eax, eax
mov byte [ebp - 0xc2], 0
lea ecx, [ebp - 0xce]
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2d0], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2c0], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c257
sub ecx, edx
lea eax, [ebp - 0xce]
push ecx
push eax
lea ecx, [ebp - 0x2d4]
call fcn.00402ea0
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x2d4]
cmp dword [ebp - 0x2c0], 0xf
jbe 0x44c28c
mov eax, dword [ebp - 0x2d4]
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
jbe 0x44c298
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x1c]
push esi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44c2d8
cmp dword [ebp - 0x2d8], 0xf
lea ecx, [ebp - 0x2ec]
jbe 0x44c2c7
mov ecx, dword [ebp - 0x2ec]
push dword [ebp - 0x2dc]
push ecx
push esi
push eax
lea ecx, [ebp - 0x2c]
call fcn.0046b1a0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2d4]
call fcn.00402c80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2ec]
call fcn.00402c80
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xf8], 0xafbabdc2
xor ecx, ecx
mov dword [ebp - 0xf4], 0xa1bfbcb9
mov dword [ebp - 0xf0], 0xb7bdb9a9
mov word [ebp - 0xec], 0xd6
mov byte [ebp - 0xea], 1
nop
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xf8], al
inc ecx
cmp ecx, 0xd
jb 0x44c330
lea edx, [ebp - 0xf8]
mov byte [ebp - 0xea], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44c351
sub edx, ecx
lea ecx, [ebp - 0x2c]
cmp ebx, 0xf
jbe 0x44c364
mov ecx, edi
push edx
lea eax, [ebp - 0xf8]
mov edx, esi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
test eax, eax
jne 0x44c5ad
push 0x104
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.004e1ab0
add esp, 0xc
lea eax, [ebp - 0x468]
push eax
push 0
push 0
push 0x28
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x190], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c3e0
sub ecx, edx
lea eax, [ebp - 0x468]
push ecx
push eax
lea ecx, [ebp - 0x190]
call fcn.00402ea0
mov byte [ebp - 4], 0x11
xor ecx, ecx
mov dword [ebp - 0xe9], 0xafbabdc2
mov dword [ebp - 0xe5], 0xa1bfbcb9
mov dword [ebp - 0xe1], 0xb7bdb9a9
mov word [ebp - 0xdd], 0xd6
mov byte [ebp - 0xdb], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xe9], al
inc ecx
cmp ecx, 0xd
jb 0x44c430
xor eax, eax
mov byte [ebp - 0xdb], 0
lea ecx, [ebp - 0xe9]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c477
sub ecx, edx
lea eax, [ebp - 0xe9]
push ecx
push eax
lea ecx, [ebp - 0x1d8]
call fcn.00402ea0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x1d8]
mov edi, dword [ebp - 0x1c4]
mov esi, dword [ebp - 0x1d8]
cmp edi, 0xf
jbe 0x44c4b0
mov eax, esi
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
jbe 0x44c4bc
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1c]
push ebx
push eax
push 0
call fcn.0046ece0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44c4fc
cmp dword [ebp - 0x17c], 0xf
lea ecx, [ebp - 0x190]
jbe 0x44c4eb
mov ecx, dword [ebp - 0x190]
push dword [ebp - 0x180]
push ecx
push ebx
push eax
lea ecx, [ebp - 0x2c]
call fcn.0046b1a0
mov byte [ebp - 4], 0x11
cmp edi, 0xf
jbe 0x44c530
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x44c526
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44d3f9
push ecx
push esi
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x1c4], 0xf
mov byte [ebp - 0x1d8], 0
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x17c]
cmp ecx, 0xf
jbe 0x44c589
mov edx, dword [ebp - 0x190]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44c57f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44d3f9
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0xf
mov byte [ebp - 0x190], 0
mov dword [ebp - 0xa9], 0xbab9a9c2
xor ecx, ecx
mov dword [ebp - 0xa5], 0xafb9adaf
mov word [ebp - 0xa1], 0xca
mov byte [ebp - 0x9f], 1
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xa9], al
inc ecx
cmp ecx, 9
jb 0x44c5d3
lea edx, [ebp - 0xa9]
mov byte [ebp - 0x9f], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44c5f4
sub edx, ecx
lea ecx, [ebp - 0x2c]
cmp ebx, 0xf
jbe 0x44c607
mov ecx, edi
push edx
lea eax, [ebp - 0xa9]
mov edx, esi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
test eax, eax
jne 0x44c8bf
push 0x104
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.004e1ab0
add esp, 0xc
lea eax, [ebp - 0x468]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x20c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x204], eax
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1f8], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c680
sub ecx, edx
lea eax, [ebp - 0x468]
push ecx
push eax
lea ecx, [ebp - 0x20c]
call fcn.00402ea0
mov byte [ebp - 4], 0x13
xor ecx, ecx
mov dword [ebp - 0xb4], 0xbab9a9c2
mov dword [ebp - 0xb0], 0xafb9adaf
mov word [ebp - 0xac], 0xca
mov byte [ebp - 0xaa], 1
jmp 0x44c6d0
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0xb4], al
inc ecx
cmp ecx, 9
jb 0x44c6d0
xor eax, eax
mov byte [ebp - 0xaa], 0
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1ac], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c717
sub ecx, edx
lea eax, [ebp - 0xb4]
push ecx
push eax
lea ecx, [ebp - 0x1c0]
call fcn.00402ea0
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0x1c0]
cmp dword [ebp - 0x1ac], 0xf
mov edx, dword [ebp - 0x1c0]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x10], edx
jbe 0x44c757
mov esi, edx
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x14], ecx
jbe 0x44c769
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], ecx
mov ebx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1c]
cmp ebx, eax
ja 0x44c852
sub eax, ebx
test ebx, ebx
jne 0x44c787
xor edi, edi
jmp 0x44c829
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e32a0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44c84f
lea ebx, [ebx]
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44c7d1
jmp 0x44c7c0
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44c7d6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44c7c0
cmp esi, 0xfffffffc
je 0x44c821
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44c803
cmp esi, 0xfffffffd
je 0x44c821
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44c803
cmp esi, 0xfffffffe
je 0x44c821
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44c803
cmp esi, 0xffffffff
je 0x44c821
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44c821
mov eax, dword [ebp - 0x70]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x74]
push edi
call fcn.004e32a0
mov esi, dword [ebp - 0x34]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44c7b0
jmp 0x44c84f
sub edi, dword [ebp - 0x14]
cmp edi, 0xffffffff
je 0x44c84f
cmp dword [ebp - 0x1f8], 0xf
lea eax, [ebp - 0x20c]
jbe 0x44c83e
mov eax, dword [ebp - 0x20c]
push dword [ebp - 0x1fc]
lea ecx, [ebp - 0x2c]
push eax
push ebx
push edi
call fcn.0046b1a0
mov edx, dword [ebp - 0x10]
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x1ac]
cmp eax, 0xf
jbe 0x44c88c
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x44c882
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44d3f9
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 0xf
mov byte [ebp - 0x1c0], 0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x20c]
call fcn.00402c80
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x118], 0xa9a6a4c2
xor ecx, ecx
mov dword [ebp - 0x114], 0xbeaca0aa
mov dword [ebp - 0x110], 0xa6b0b4bf
mov dword [ebp - 0x10c], 0x100d1b2
lea esp, [esp]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x118], al
inc ecx
cmp ecx, 0xe
jb 0x44c8f0
lea edx, [ebp - 0x118]
mov byte [ebp - 0x109], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x44c911
sub edx, ecx
lea ecx, [ebp - 0x2c]
cmp ebx, 0xf
jbe 0x44c924
mov ecx, edi
push edx
lea eax, [ebp - 0x118]
mov edx, esi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
test eax, eax
jne 0x44cb83
push 0x104
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.004e1ab0
add esp, 0xc
lea eax, [ebp - 0x468]
push eax
push 0
push 0
push 0x1c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x23c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x228], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c9a0
sub ecx, edx
lea eax, [ebp - 0x468]
push ecx
push eax
lea ecx, [ebp - 0x23c]
call fcn.00402ea0
mov byte [ebp - 4], 0x15
xor ecx, ecx
mov dword [ebp - 0x108], 0xa9a6a4c2
mov dword [ebp - 0x104], 0xbeaca0aa
mov dword [ebp - 0x100], 0xa6b0b4bf
mov dword [ebp - 0xfc], 0x100d1b2
lea ebx, [ebx]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x108], al
inc ecx
cmp ecx, 0xe
jb 0x44c9f0
xor eax, eax
mov byte [ebp - 0xf9], 0
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ca37
sub ecx, edx
lea eax, [ebp - 0x108]
push ecx
push eax
lea ecx, [ebp - 0x224]
call fcn.00402ea0
mov byte [ebp - 4], 0x16
lea esi, [ebp - 0x224]
cmp dword [ebp - 0x210], 0xf
mov dword [ebp - 0x14], esi
jbe 0x44ca72
mov esi, dword [ebp - 0x224]
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
jbe 0x44ca84
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
mov ebx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x1c]
cmp ebx, eax
ja 0x44cb5f
sub eax, ebx
test ebx, ebx
jne 0x44caa2
xor edi, edi
jmp 0x44cb39
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x74], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e32a0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44cb5f
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44cae1
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44cae6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44cad0
cmp esi, 0xfffffffc
je 0x44cb31
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44cb13
cmp esi, 0xfffffffd
je 0x44cb31
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44cb13
cmp esi, 0xfffffffe
je 0x44cb31
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44cb13
cmp esi, 0xffffffff
je 0x44cb31
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44cb31
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x70]
push edi
call fcn.004e32a0
mov esi, dword [ebp - 0x14]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44cac5
jmp 0x44cb5f
sub edi, dword [ebp - 0x34]
cmp edi, 0xffffffff
je 0x44cb5f
cmp dword [ebp - 0x228], 0xf
lea eax, [ebp - 0x23c]
jbe 0x44cb4e
mov eax, dword [ebp - 0x23c]
push dword [ebp - 0x22c]
lea ecx, [ebp - 0x2c]
push eax
push ebx
push edi
call fcn.0046b1a0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x224]
call fcn.00402c80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x23c]
call fcn.00402c80
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x7e], 0xa9acbac2
xor ecx, ecx
mov dword [ebp - 0x7a], 0xcbb9a2ae
mov word [ebp - 0x76], 0x100
lea esp, [esp]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x7e], al
inc ecx
cmp ecx, 8
jb 0x44cba0
lea esi, [ebp - 0x7e]
mov byte [ebp - 0x75], 0
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x44cbb8
sub esi, ecx
lea ecx, [ebp - 0x2c]
cmp ebx, 0xf
jbe 0x44cbcb
mov ecx, edi
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x7e]
push esi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
test eax, eax
jne 0x44cea2
push 0x104
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.004e1ab0
add esp, 0xc
lea eax, [ebp - 0x468]
push eax
push 0
push 0
push 8
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x178], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], eax
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44cc40
sub ecx, edx
lea eax, [ebp - 0x468]
push ecx
push eax
lea ecx, [ebp - 0x178]
call fcn.00402ea0
mov byte [ebp - 4], 0x17
xor ecx, ecx
mov dword [ebp - 0x88], 0xa9acbac2
mov dword [ebp - 0x84], 0xcbb9a2ae
mov word [ebp - 0x80], 0x100
lea esp, [esp]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x88], al
inc ecx
cmp ecx, 8
jb 0x44cc80
xor eax, eax
mov byte [ebp - 0x7f], 0
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ccc4
sub ecx, edx
lea eax, [ebp - 0x88]
push ecx
push eax
lea ecx, [ebp - 0x1a8]
call fcn.00402ea0
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x1a8]
cmp dword [ebp - 0x194], 0xf
mov edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], edx
jbe 0x44cd04
mov esi, edx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
jbe 0x44cd16
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
mov ebx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1c]
cmp ebx, eax
ja 0x44cdf4
sub eax, ebx
test ebx, ebx
jne 0x44cd34
xor edi, edi
jmp 0x44cdcb
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x74], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e32a0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44cdf1
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44cd73
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44cd78
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44cd62
cmp esi, 0xfffffffc
je 0x44cdc3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44cda5
cmp esi, 0xfffffffd
je 0x44cdc3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44cda5
cmp esi, 0xfffffffe
je 0x44cdc3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44cda5
cmp esi, 0xffffffff
je 0x44cdc3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44cdc3
mov eax, dword [ebp - 0x74]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x70]
push edi
call fcn.004e32a0
mov esi, dword [ebp - 0x14]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44cd57
jmp 0x44cdf1
sub edi, dword [ebp - 0x34]
cmp edi, 0xffffffff
je 0x44cdf1
cmp dword [ebp - 0x164], 0xf
lea eax, [ebp - 0x178]
jbe 0x44cde0
mov eax, dword [ebp - 0x178]
push dword [ebp - 0x168]
lea ecx, [ebp - 0x2c]
push eax
push ebx
push edi
call fcn.0046b1a0
mov edx, dword [ebp - 0x10]
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x194]
cmp eax, 0xf
jbe 0x44ce2e
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x44ce24
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44d3f9
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 0xf
mov byte [ebp - 0x1a8], 0
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x164]
cmp ecx, 0xf
jbe 0x44ce87
mov edx, dword [ebp - 0x178]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ce7d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44d3f9
push ecx
push edx
call fcn.004dfaf3
add esp, 8
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0xf
mov byte [ebp - 0x178], 0
mov ecx, dword [ebp - 0x13c]
mov eax, 0x2aaaaaab
mov ebx, dword [ebp - 0x140]
sub ecx, ebx
imul ecx
mov dword [ebp - 0x14], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x44d261
xor edi, edi
mov dword [ebp - 0x10], edi
cmp dword [ebx + edi + 0x14], 0xf
lea esi, [ebx + edi]
mov eax, dword [esi + 0x10]
jbe 0x44cee2
mov esi, dword [esi]
test eax, eax
je 0x44d060
push eax
push 0x2a
push esi
call fcn.004e32a0
add esp, 0xc
test eax, eax
je 0x44d060
sub eax, esi
cmp eax, 0xffffffff
je 0x44d060
mov dword [ebp - 0x51], 0xc3c4c6cf
xor ecx, ecx
mov word [ebp - 0x4d], 0x100
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x51], al
inc ecx
cmp ecx, 4
jb 0x44cf18
xor eax, eax
mov byte [ebp - 0x4c], 0
lea ecx, [ebp - 0x51]
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x258], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44cf56
sub ecx, edx
lea eax, [ebp - 0x51]
push ecx
push eax
lea ecx, [ebp - 0x26c]
call fcn.00402ea0
mov byte [ebp - 4], 0x19
xor eax, eax
lea ecx, [ebp - 0x69]
mov word [ebp - 0x69], 0x2a
mov byte [ebp - 0x67], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x240], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44cfb0
sub ecx, edx
lea eax, [ebp - 0x69]
push ecx
push eax
lea ecx, [ebp - 0x254]
call fcn.00402ea0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x254]
mov esi, dword [ebp - 0x140]
add esi, edi
cmp dword [ebp - 0x240], 0xf
jbe 0x44cfea
mov eax, dword [ebp - 0x254]
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x44cff4
mov ecx, dword [esi]
mov edi, dword [ebp - 0x244]
mov edx, dword [esi + 0x10]
push edi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44d033
cmp dword [ebp - 0x258], 0xf
lea ecx, [ebp - 0x26c]
jbe 0x44d023
mov ecx, dword [ebp - 0x26c]
push dword [ebp - 0x25c]
push ecx
push edi
push eax
mov ecx, esi
call fcn.0046b1a0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x254]
call fcn.00402c80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x26c]
call fcn.00402c80
mov ebx, dword [ebp - 0x140]
mov edi, dword [ebp - 0x10]
jmp 0x44ced3
add edi, ebx
mov dword [ebp - 0x57], 0xc3c4c6cf
mov word [ebp - 0x53], 0x100
xor ecx, ecx
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x57], al
inc ecx
cmp ecx, 4
jb 0x44d071
lea esi, [ebp - 0x57]
mov byte [ebp - 0x52], 0
lea ecx, [esi + 1]
lea esp, [esp]
mov al, byte [esi]
inc esi
test al, al
jne 0x44d090
mov edx, dword [edi + 0x10]
sub esi, ecx
cmp dword [edi + 0x14], 0xf
jbe 0x44d0a4
mov edi, dword [edi]
push esi
lea eax, [ebp - 0x57]
mov ecx, edi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44d230
mov dword [ebp - 0x5d], 0xc3c3c6cf
xor eax, eax
mov word [ebp - 0x59], 0x100
lea ecx, [ecx]
lea ecx, [eax - 0x19]
xor byte [ebp + eax - 0x5d], cl
inc eax
cmp eax, 4
jb 0x44d0d0
xor eax, eax
mov byte [ebp - 0x58], 0
lea ecx, [ebp - 0x5d]
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], eax
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44d110
sub ecx, edx
lea eax, [ebp - 0x5d]
push ecx
push eax
lea ecx, [ebp - 0x1f0]
call fcn.00402ea0
mov byte [ebp - 4], 0x1b
xor ecx, ecx
mov dword [ebp - 0x63], 0xc3c4c6cf
mov word [ebp - 0x5f], 0x100
lea esp, [esp]
mov al, cl
sub al, 0x19
xor byte [ebp + ecx - 0x63], al
inc ecx
cmp ecx, 4
jb 0x44d140
xor eax, eax
mov byte [ebp - 0x5e], 0
lea ecx, [ebp - 0x63]
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x280], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], eax
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44d180
sub ecx, edx
lea eax, [ebp - 0x63]
push ecx
push eax
lea ecx, [ebp - 0x284]
call fcn.00402ea0
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x284]
mov esi, dword [ebp - 0x140]
add esi, dword [ebp - 0x10]
cmp dword [ebp - 0x270], 0xf
jbe 0x44d1bb
mov eax, dword [ebp - 0x284]
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x44d1c5
mov ecx, dword [esi]
mov edi, dword [ebp - 0x274]
mov edx, dword [esi + 0x10]
push edi
push eax
push 0
call fcn.0046ece0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44d204
cmp dword [ebp - 0x1dc], 0xf
lea ecx, [ebp - 0x1f0]
jbe 0x44d1f4
mov ecx, dword [ebp - 0x1f0]
push dword [ebp - 0x1e0]
push ecx
push edi
push eax
mov ecx, esi
call fcn.0046b1a0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x284]
call fcn.00402c80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x1f0]
call fcn.00402c80
mov ebx, dword [ebp - 0x140]
mov edi, dword [ebp - 0x10]
jmp 0x44d060
mov ecx, dword [ebp - 0x13c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x14]
sub ecx, ebx
mov edi, dword [ebp - 0x10]
inc esi
imul ecx
add edi, 0x18
mov dword [ebp - 0x14], esi
sar edx, 2
mov eax, edx
mov dword [ebp - 0x10], edi
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x44ced3
sub esp, 0xc
lea eax, [ebp - 0x140]
mov ecx, esp
mov dword [ebp - 0x308], esp
push eax
call fcn.004679f0
mov byte [ebp - 4], 0x1d
sub esp, 0xc
lea eax, [ebp - 0x314]
mov dword [ebp - 0x31c], esp
mov ecx, esp
push eax
call fcn.004679f0
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x28c]
mov ebx, dword [ebp - 0x1f4]
push eax
sub esp, 0x18
shl ebx, 0xa
lea eax, [ebp + 8]
mov dword [ebp - 0x304], esp
mov ecx, esp
push eax
call fcn.00468b20
mov byte [ebp - 4], 0x1f
sub esp, 0x18
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x300], esp
mov ecx, esp
push eax
call fcn.00468b20
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0xc
mov edx, ebx
mov cl, byte [ebp - 0x4b]
call fcn.0044aa60
add esp, 0x4c
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x140]
call fcn.0046ac50
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x314]
call fcn.0046ac50
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00402c80
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x334]
call fcn.00402c80
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x34c]
call fcn.00402c80
mov eax, dword [ebp - 0x160]
movzx eax, byte [eax]
sub eax, 1
je 0x44d354
sub eax, 1
je 0x44d34b
inc dword [ebp - 0x154]
jmp 0x44d36e
add dword [ebp - 0x158], 0x10
jmp 0x44d36e
mov eax, dword [ebp - 0x15c]
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], eax
call fcn.0046a090
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x150]
push eax
lea ecx, [ebp - 0x160]
call fcn.00465140
test al, al
jne 0x44bbc0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00402c80
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, eax
call fcn.0046a890
push eax
lea ecx, [ebp - 0x364]
call fcn.00402b80
mov byte [ebp - 4], 5
mov edx, str.type_must_be_boolean__but_is
push eax
lea ecx, [ebp - 0x1f0]
call fcn.0046d240
mov byte [ebp - 4], 6
mov edx, 0x12e
push eax
lea ecx, [ebp - 0x288]
call fcn.004089a0
add esp, 8
lea eax, [ebp - 0x288]
push 0x53dff0
push eax
call fcn.004e12fb
call fcn.004e4d70
int3