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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50a61f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2e8
push ebx
push esi
push edi
mov dword [ebp - 4], 0
lea esi, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
mov dword [ebp - 0x194], 0
jb 0x44a93e
mov esi, dword [ebp + 8]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x44c5c3
test esi, esi
je 0x44a97d
mov ecx, esi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a960
sub ecx, edx
je 0x44a97d
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x44a97d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x5374a0
call fcn.004de823
add esp, 4
cmp byte [0x5373a8], 2
jne 0x44c582
lea eax, [ebp - 0x190]
mov ecx, 0x5373a8
push eax
call fcn.00468080
mov edx, ecx
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x180], edx
movzx eax, byte [edx]
mov ecx, eax
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], connect
sub ecx, 1
je 0x44aa29
sub ecx, 1
je 0x44aa1b
mov dword [ebp - 0x174], connect
sub eax, 1
je 0x44aa29
sub eax, 1
je 0x44aa1b
mov dword [ebp - 0x174], 1
jmp 0x44aa34
mov eax, dword [edx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x178], eax
jmp 0x44aa34
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x17c], eax
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x190]
call fcn.004674e0
test al, al
je 0x44c582
mov ebx, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea ecx, [ebp - 0x190]
call fcn.004675f0
mov esi, eax
mov dword [ebp - 0x25], 0x929a8086
mov dword [ebp - 0x21], 0x98829ca7
xor ecx, ecx
mov dword [ebp - 0x1d], 0x968a8d99
mov dword [ebp - 0x19], 0x716f6f
mov byte [ebp - 0x15], 1
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x25], al
inc ecx
cmp ecx, 0xf
jb 0x44aa83
lea eax, [ebp - 0x25]
mov byte [ebp - 0x15], 0
push eax
mov ecx, esi
call fcn.0046e710
lea ecx, [ebp - 0x1d0]
push ecx
mov ecx, eax
call fcn.0046e840
mov byte [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0x100], 0x929a8086
mov dword [ebp - 0xfc], 0x97939fa7
mov dword [ebp - 0xf8], 0x1008e99
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x100], al
inc ecx
cmp ecx, 0xa
jb 0x44aad2
lea eax, [ebp - 0x100]
mov byte [ebp - 0xf5], 0
push eax
mov ecx, esi
call fcn.0046e710
lea ecx, [ebp - 0x1ac]
push ecx
mov ecx, eax
call fcn.0046e840
mov byte [ebp - 4], 2
xor ecx, ecx
mov dword [ebp - 0x14b], 0x929a8086
mov dword [ebp - 0x147], 0x97959fa7
mov dword [ebp - 0x143], 0x8c9898
mov byte [ebp - 0x13f], 1
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x14b], al
inc ecx
cmp ecx, 0xb
jb 0x44ab31
lea eax, [ebp - 0x14b]
mov byte [ebp - 0x13f], 0
push eax
mov ecx, esi
call fcn.0046e710
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, eax
call fcn.0046e840
mov byte [ebp - 4], 3
xor ecx, ecx
mov dword [ebp - 0x159], 0x929a8086
mov dword [ebp - 0x155], 0x81938aa7
mov dword [ebp - 0x151], 0x9d95a299
mov word [ebp - 0x14d], 0x100
nop
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x159], al
inc ecx
cmp ecx, 0xc
jb 0x44ab90
lea eax, [ebp - 0x159]
mov byte [ebp - 0x14c], 0
push eax
mov ecx, esi
call fcn.0046e710
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, eax
call fcn.0046e840
cmp dword [eax + 0x14], 0x10
jb 0x44abc9
mov eax, dword [eax]
push eax
call fcn.004ecdf7
mov ecx, dword [ebp - 0x38]
add esp, 4
mov dword [ebp - 0x160], eax
cmp ecx, 0x10
jb 0x44ac0c
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ac02
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov dword [ebp - 0x2a], 0x929a8086
xor ecx, ecx
mov dword [ebp - 0x26], 0x97959aa7
mov dword [ebp - 0x22], 0x8b9d9890
mov dword [ebp - 0x1e], 0x6067735f
mov dword [ebp - 0x1a], 0x71757771
mov word [ebp - 0x16], 0x100
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 0x14
jb 0x44ac37
lea eax, [ebp - 0x2a]
mov byte [ebp - 0x15], 0
push eax
mov ecx, esi
call fcn.0046e710
cmp byte [eax], 4
jne 0x44c5c9
mov al, byte [eax + 8]
lea ecx, [ebp - 0x97]
sub esp, 0x18
mov byte [ebp - 0x71], al
mov edx, esp
mov word [ebp - 0x97], 0x3a
xor eax, eax
mov byte [ebp - 0x95], 0
mov dword [ebp - 0x78], 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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ac97
sub ecx, esi
lea eax, [ebp - 0x97]
push ecx
push eax
mov ecx, edx
call fcn.00402ae0
sub esp, 0x18
mov byte [ebp - 4], 6
lea eax, [ebp - 0x1d0]
mov ecx, esp
push eax
call fcn.0046a770
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 3
call fcn.0040ab40
add esp, 0x30
mov byte [ebp - 4], 7
xor ecx, ecx
mov dword [ebp - 0x70], 0x100d5d8
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x70], al
inc ecx
cmp ecx, 2
jb 0x44ace3
sub esp, 0x18
mov byte [ebp - 0x6d], 0
mov edx, esp
mov dword [ebp - 0x78], esp
xor eax, eax
lea ecx, [ebp - 0x70]
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
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ad16
sub ecx, esi
lea eax, [ebp - 0x70]
push ecx
push eax
mov ecx, edx
call fcn.00402ae0
sub esp, 0x18
mov byte [ebp - 4], 8
lea eax, [ebp - 0x1ac]
mov ecx, esp
push eax
call fcn.0046a770
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 7
call fcn.0040ab40
add esp, 0x30
mov byte [ebp - 4], 9
xor ecx, ecx
mov dword [ebp - 0xb9], 0xa4b3b1d1
mov dword [ebp - 0xb5], 0xabb5adb3
mov word [ebp - 0xb1], 0xd9
mov byte [ebp - 0xaf], 1
lea esp, [esp]
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xb9], al
inc ecx
cmp ecx, 9
jb 0x44ad80
lea ecx, [ebp - 0xb9]
mov byte [ebp - 0xaf], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ada1
sub ecx, edx
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
jb 0x44adb6
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0xb9]
push ecx
push 0
mov ecx, eax
call fcn.0046feb0
add esp, 0xc
test eax, eax
jne 0x44b039
push 0x104
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x2d8]
push eax
push 0
push 0
push 0
push 0
call ebx
xor eax, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ae18
sub ecx, edx
lea eax, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0xa
xor ecx, ecx
mov dword [ebp - 0xc4], 0xa4b3b1d1
mov dword [ebp - 0xc0], 0xabb5adb3
mov word [ebp - 0xbc], 0xd9
mov byte [ebp - 0xba], 1
jmp 0x44ae60
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xc4], al
inc ecx
cmp ecx, 9
jb 0x44ae60
xor eax, eax
mov byte [ebp - 0xba], 0
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ae95
sub ecx, edx
lea eax, [ebp - 0xc4]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0xb
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
cmp edi, 0x10
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], esi
setae byte [ebp - 0xd]
mov dword [ebp - 0x14], edx
jb 0x44aecf
mov esi, edx
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x34], ecx
jb 0x44aee1
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x34], ecx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
cmp ebx, eax
ja 0x44afc6
sub eax, ebx
test ebx, ebx
jne 0x44aefc
xor edi, edi
jmp 0x44afa6
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x54], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44afc0
nop
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44af41
jmp 0x44af30
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44af46
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44af30
cmp esi, 0xfffffffc
je 0x44af7a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44af73
cmp esi, 0xfffffffd
je 0x44af7a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44af73
cmp esi, 0xfffffffe
je 0x44af7a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44af73
cmp esi, 0xffffffff
je 0x44af7a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44af7a
sbb eax, eax
or eax, 1
jmp 0x44af7c
xor eax, eax
test eax, eax
je 0x44af9e
mov eax, dword [ebp - 0x54]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x50]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x30]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44af20
jmp 0x44afc0
sub edi, dword [ebp - 0x34]
cmp edi, 0xffffffff
je 0x44afc0
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
jb 0x44afb2
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x6c]
push eax
push ebx
push edi
call fcn.0046cde0
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0xa
je 0x44affb
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x44aff1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44b033
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b029
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov ebx, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0xe7], 0xb4b9b1d1
xor ecx, ecx
mov dword [ebp - 0xe3], 0xb5bfb4ad
mov dword [ebp - 0xdf], 0xdbaea8
mov byte [ebp - 0xdb], 1
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xe7], al
inc ecx
cmp ecx, 0xb
jb 0x44b060
lea ecx, [ebp - 0xe7]
mov byte [ebp - 0xdb], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b081
sub ecx, edx
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
jb 0x44b096
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0xe7]
push ecx
push 0
mov ecx, eax
call fcn.0046feb0
add esp, 0xc
test eax, eax
jne 0x44b313
push 0x104
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x2d8]
push eax
push 0
push 0
push 5
push 0
call ebx
xor eax, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b0f8
sub ecx, edx
lea eax, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0xf4], 0xb4b9b1d1
mov dword [ebp - 0xf0], 0xb5bfb4ad
mov dword [ebp - 0xec], 0xdbaea8
mov byte [ebp - 0xe8], 1
lea esp, [esp]
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xf4], al
inc ecx
cmp ecx, 0xb
jb 0x44b140
xor eax, eax
mov byte [ebp - 0xe8], 0
lea ecx, [ebp - 0xf4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b175
sub ecx, edx
lea eax, [ebp - 0xf4]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
cmp edi, 0x10
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], esi
setae byte [ebp - 0xd]
mov dword [ebp - 0x14], edx
jb 0x44b1af
mov esi, edx
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
jb 0x44b1c1
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
cmp ebx, eax
ja 0x44b2a6
sub eax, ebx
test ebx, ebx
jne 0x44b1dc
xor edi, edi
jmp 0x44b286
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x54], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44b2a0
nop
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44b221
jmp 0x44b210
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44b226
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44b210
cmp esi, 0xfffffffc
je 0x44b25a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44b253
cmp esi, 0xfffffffd
je 0x44b25a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44b253
cmp esi, 0xfffffffe
je 0x44b25a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44b253
cmp esi, 0xffffffff
je 0x44b25a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44b25a
sbb eax, eax
or eax, 1
jmp 0x44b25c
xor eax, eax
test eax, eax
je 0x44b27e
mov eax, dword [ebp - 0x54]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x50]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x34]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44b200
jmp 0x44b2a0
sub edi, dword [ebp - 0x30]
cmp edi, 0xffffffff
je 0x44b2a0
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
jb 0x44b292
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x6c]
push eax
push ebx
push edi
call fcn.0046cde0
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0xc
je 0x44b2db
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x44b2d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44b313
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b309
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov dword [ebp - 0x10f], 0xb2a5a0d1
xor ecx, ecx
mov dword [ebp - 0x10b], 0xb4a8a9aa
mov dword [ebp - 0x107], 0xbab2b4ba
mov word [ebp - 0x103], 0x25
mov byte [ebp - 0x101], 1
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x10f], al
inc ecx
cmp ecx, 0xd
jb 0x44b343
lea ecx, [ebp - 0x10f]
mov byte [ebp - 0x101], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b364
sub ecx, edx
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
jb 0x44b379
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x10f]
push ecx
push 0
mov ecx, eax
call fcn.0046feb0
add esp, 0xc
test eax, eax
jne 0x44b540
push 0x104
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x2d8]
push eax
push 0
push 0
push 0x28
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b3e0
sub ecx, edx
lea eax, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0xe
xor ecx, ecx
mov dword [ebp - 0x11e], 0xb2a5a0d1
mov dword [ebp - 0x11a], 0xb4a8a9aa
mov dword [ebp - 0x116], 0xbab2b4ba
mov word [ebp - 0x112], 0x25
mov byte [ebp - 0x110], 1
lea ecx, [ecx]
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x11e], al
inc ecx
cmp ecx, 0xd
jb 0x44b430
xor eax, eax
mov byte [ebp - 0x110], 0
lea ecx, [ebp - 0x11e]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b465
sub ecx, edx
lea eax, [ebp - 0x11e]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
cmp edi, 0x10
mov esi, dword [ebp - 0x2c]
setae byte [ebp - 0xd]
jb 0x44b496
mov eax, esi
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
jb 0x44b4a2
mov ecx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x5c]
push ebx
push eax
push 0
call fcn.0046feb0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44b4d3
cmp dword [ebp - 0x38], 0x10
lea ecx, [ebp - 0x4c]
jb 0x44b4c5
mov ecx, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
push ecx
push ebx
push eax
lea ecx, [ebp - 0x6c]
call fcn.0046cde0
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0xe
je 0x44b508
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x44b4fe
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push esi
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44b540
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b536
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov dword [ebp - 0xcf], 0xa7a6b4d1
xor ecx, ecx
mov dword [ebp - 0xcb], 0xbaaeb8bc
mov word [ebp - 0xc7], 0xd9
mov byte [ebp - 0xc5], 1
jmp 0x44b570
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xcf], al
inc ecx
cmp ecx, 9
jb 0x44b570
lea ecx, [ebp - 0xcf]
mov byte [ebp - 0xc5], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b591
sub ecx, edx
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
jb 0x44b5a6
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0xcf]
push ecx
push 0
mov ecx, eax
call fcn.0046feb0
add esp, 0xc
test eax, eax
jne 0x44b823
push 0x104
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x2d8]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b610
sub ecx, edx
lea eax, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0x10
xor ecx, ecx
mov dword [ebp - 0xda], 0xa7a6b4d1
mov dword [ebp - 0xd6], 0xbaaeb8bc
mov word [ebp - 0xd2], 0xd9
mov byte [ebp - 0xd0], 1
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xda], al
inc ecx
cmp ecx, 9
jb 0x44b653
xor eax, eax
mov byte [ebp - 0xd0], 0
lea ecx, [ebp - 0xda]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b688
sub ecx, edx
lea eax, [ebp - 0xda]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0x11
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
cmp edi, 0x10
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], esi
setae byte [ebp - 0xd]
mov dword [ebp - 0x14], edx
jb 0x44b6c2
mov esi, edx
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
jb 0x44b6d4
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
cmp ebx, eax
ja 0x44b7b6
sub eax, ebx
test ebx, ebx
jne 0x44b6ef
xor edi, edi
jmp 0x44b796
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x54], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44b7b0
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44b731
lea ecx, [ecx]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44b736
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44b720
cmp esi, 0xfffffffc
je 0x44b76a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44b763
cmp esi, 0xfffffffd
je 0x44b76a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44b763
cmp esi, 0xfffffffe
je 0x44b76a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44b763
cmp esi, 0xffffffff
je 0x44b76a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44b76a
sbb eax, eax
or eax, 1
jmp 0x44b76c
xor eax, eax
test eax, eax
je 0x44b78e
mov eax, dword [ebp - 0x54]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x50]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x34]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44b712
jmp 0x44b7b0
sub edi, dword [ebp - 0x30]
cmp edi, 0xffffffff
je 0x44b7b0
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
jb 0x44b7a2
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x6c]
push eax
push ebx
push edi
call fcn.0046cde0
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0x10
je 0x44b7eb
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x44b7e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44b823
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44b819
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov dword [ebp - 0x13e], 0xb4b9b9d1
xor ecx, ecx
mov dword [ebp - 0x13a], 0xabbbb5b9
mov dword [ebp - 0x136], 0xabbfb9ac
mov dword [ebp - 0x132], 0x1002441
lea ecx, [ecx]
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x13e], al
inc ecx
cmp ecx, 0xe
jb 0x44b850
lea ecx, [ebp - 0x13e]
mov byte [ebp - 0x12f], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b871
sub ecx, edx
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
jb 0x44b886
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x13e]
push ecx
push 0
mov ecx, eax
call fcn.0046feb0
add esp, 0xc
test eax, eax
jne 0x44bb13
push 0x104
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x2d8]
push eax
push 0
push 0
push 0x1c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b8f0
sub ecx, edx
lea eax, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0x12
xor ecx, ecx
mov dword [ebp - 0x12e], 0xb4b9b9d1
mov dword [ebp - 0x12a], 0xabbbb5b9
mov dword [ebp - 0x126], 0xabbfb9ac
mov dword [ebp - 0x122], 0x1002441
jmp 0x44b940
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x12e], al
inc ecx
cmp ecx, 0xe
jb 0x44b940
xor eax, eax
mov byte [ebp - 0x11f], 0
lea ecx, [ebp - 0x12e]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44b975
sub ecx, edx
lea eax, [ebp - 0x12e]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0x13
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
cmp edi, 0x10
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], esi
setae byte [ebp - 0xd]
mov dword [ebp - 0x14], edx
jb 0x44b9af
mov esi, edx
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
jb 0x44b9c1
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
cmp ebx, eax
ja 0x44baa6
sub eax, ebx
test ebx, ebx
jne 0x44b9dc
xor edi, edi
jmp 0x44ba86
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x54], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44baa0
nop
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44ba21
jmp 0x44ba10
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44ba26
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44ba10
cmp esi, 0xfffffffc
je 0x44ba5a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44ba53
cmp esi, 0xfffffffd
je 0x44ba5a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44ba53
cmp esi, 0xfffffffe
je 0x44ba5a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44ba53
cmp esi, 0xffffffff
je 0x44ba5a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44ba5a
sbb eax, eax
or eax, 1
jmp 0x44ba5c
xor eax, eax
test eax, eax
je 0x44ba7e
mov eax, dword [ebp - 0x54]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x50]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x34]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44ba00
jmp 0x44baa0
sub edi, dword [ebp - 0x30]
cmp edi, 0xffffffff
je 0x44baa0
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
jb 0x44ba92
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x6c]
push eax
push ebx
push edi
call fcn.0046cde0
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0x12
je 0x44badb
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x44bad1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44bb13
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44bb09
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov dword [ebp - 0xa4], 0xb4b3a7d1
xor ecx, ecx
mov dword [ebp - 0xa0], 0xdeaeb7bd
mov word [ebp - 0x9c], 0x100
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xa4], al
inc ecx
cmp ecx, 8
jb 0x44bb32
lea ecx, [ebp - 0xa4]
mov byte [ebp - 0x9b], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44bb53
sub ecx, edx
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 0x10
jb 0x44bb68
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0xa4]
push ecx
push 0
mov ecx, eax
call fcn.0046feb0
add esp, 0xc
test eax, eax
jne 0x44bde3
push 0x104
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x2d8]
push eax
push 0
push 0
push 8
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x4c], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44bbd0
sub ecx, edx
lea eax, [ebp - 0x2d8]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0x14
xor ecx, ecx
mov dword [ebp - 0xae], 0xb4b3a7d1
mov dword [ebp - 0xaa], 0xdeaeb7bd
mov word [ebp - 0xa6], 0x100
lea esp, [esp]
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0xae], al
inc ecx
cmp ecx, 8
jb 0x44bc10
xor eax, eax
mov byte [ebp - 0xa5], 0
lea ecx, [ebp - 0xae]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44bc45
sub ecx, edx
lea eax, [ebp - 0xae]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0x15
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
cmp edi, 0x10
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], esi
setae byte [ebp - 0xd]
mov dword [ebp - 0x14], edx
jb 0x44bc7f
mov esi, edx
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x58], 0x10
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
jb 0x44bc91
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x30], ecx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
cmp ebx, eax
ja 0x44bd76
sub eax, ebx
test ebx, ebx
jne 0x44bcac
xor edi, edi
jmp 0x44bd56
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x54], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44bd70
nop
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44bcf1
jmp 0x44bce0
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44bcf6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44bce0
cmp esi, 0xfffffffc
je 0x44bd2a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44bd23
cmp esi, 0xfffffffd
je 0x44bd2a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44bd23
cmp esi, 0xfffffffe
je 0x44bd2a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44bd23
cmp esi, 0xffffffff
je 0x44bd2a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44bd2a
sbb eax, eax
or eax, 1
jmp 0x44bd2c
xor eax, eax
test eax, eax
je 0x44bd4e
mov eax, dword [ebp - 0x54]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x50]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x34]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44bcd0
jmp 0x44bd70
sub edi, dword [ebp - 0x30]
cmp edi, 0xffffffff
je 0x44bd70
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
jb 0x44bd62
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x6c]
push eax
push ebx
push edi
call fcn.0046cde0
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0x14
je 0x44bdab
lea ecx, [edi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x44bda1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44bde3
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44bdd9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp - 0x16c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x170]
imul ecx
mov dword [ebp - 0x54], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x44c3c8
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp - 0x170]
add esi, ebx
cmp dword [esi + 0x14], 0x10
mov eax, dword [esi + 0x10]
jb 0x44be25
mov esi, dword [esi]
test eax, eax
je 0x44c0a0
push eax
push 0x2a
push esi
call fcn.004e2ce0
add esp, 0xc
test eax, eax
je 0x44c0a0
sub eax, esi
cmp eax, 0xffffffff
je 0x44c0a0
mov dword [ebp - 0x7e], 0xdedbdbdc
xor ecx, ecx
mov word [ebp - 0x7a], 0x100
jmp 0x44be60
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x7e], al
inc ecx
cmp ecx, 4
jb 0x44be60
xor eax, eax
mov byte [ebp - 0x79], 0
lea ecx, [ebp - 0x7e]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44be90
sub ecx, edx
lea eax, [ebp - 0x7e]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x9a]
xor eax, eax
mov word [ebp - 0x9a], 0x2a
mov byte [ebp - 0x98], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44bed7
sub ecx, edx
lea eax, [ebp - 0x9a]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0x17
lea esi, [ebp - 0x2c]
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x2c]
add ecx, ebx
cmp dword [ebp - 0x18], 0x10
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x34], esi
setae byte [ebp - 0xd]
mov dword [ebp - 0x30], edx
jb 0x44bf1a
mov esi, edx
mov dword [ebp - 0x34], edx
cmp dword [ecx + 0x14], 0x10
mov edi, ecx
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x50], ecx
jb 0x44bf2d
mov edi, dword [ecx]
mov dword [ebp - 0x50], edi
mov ebx, dword [ebp - 0x1c]
cmp ebx, eax
ja 0x44c01d
sub eax, ebx
test ebx, ebx
jne 0x44bf45
xor edi, edi
jmp 0x44c003
movsx ecx, byte [esi]
inc eax
add eax, edi
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x164], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44c01a
mov edi, edi
mov edx, esi
mov ecx, edi
mov esi, ebx
sub esi, 4
jb 0x44bf91
jmp 0x44bf80
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x44bf96
add ecx, 4
add edx, 4
sub esi, 4
jae 0x44bf80
cmp esi, 0xfffffffc
je 0x44bfca
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x44bfc3
cmp esi, 0xfffffffd
je 0x44bfca
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x44bfc3
cmp esi, 0xfffffffe
je 0x44bfca
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x44bfc3
cmp esi, 0xffffffff
je 0x44bfca
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x44bfca
sbb eax, eax
or eax, 1
jmp 0x44bfcc
xor eax, eax
test eax, eax
je 0x44bff8
mov eax, dword [ebp - 0x164]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x94]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x34]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44bf70
jmp 0x44c01a
sub edi, dword [ebp - 0x50]
cmp edi, 0xffffffff
je 0x44c01a
mov ecx, dword [ebp - 0x78]
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
jb 0x44c00f
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
push eax
push ebx
push edi
call fcn.0046cde0
mov edx, dword [ebp - 0x30]
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0x16
je 0x44c053
mov ecx, dword [ebp - 0x18]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44c049
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov ebx, dword [ebp - 0x14]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44be12
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44c088
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
mov ebx, dword [ebp - 0x14]
add esp, 8
jmp 0x44be12
mov esi, dword [ebp - 0x170]
add esi, ebx
mov dword [ebp - 0x84], 0xdedbdbdc
mov word [ebp - 0x80], 0x100
xor ecx, ecx
lea ebx, [ebx]
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x84], al
inc ecx
cmp ecx, 4
jb 0x44c0c0
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x7f], 0
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c0e0
sub ecx, edx
cmp dword [esi + 0x14], 0x10
mov edx, dword [esi + 0x10]
jb 0x44c0f4
mov esi, dword [esi]
push ecx
lea eax, [ebp - 0x84]
mov ecx, esi
push eax
push 0
call fcn.0046feb0
add esp, 0xc
cmp eax, 0xffffffff
je 0x44c396
mov dword [ebp - 0x8a], 0xdedcdbdc
xor ecx, ecx
mov word [ebp - 0x86], 0x100
jmp 0x44c130
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x8a], al
inc ecx
cmp ecx, 4
jb 0x44c130
xor eax, eax
mov byte [ebp - 0x85], 0
lea ecx, [ebp - 0x8a]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c165
sub ecx, edx
lea eax, [ebp - 0x8a]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402ae0
mov byte [ebp - 4], 0x18
xor ecx, ecx
mov dword [ebp - 0x90], 0xdedbdbdc
mov word [ebp - 0x8c], 0x100
jmp 0x44c1a0
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x90], al
inc ecx
cmp ecx, 4
jb 0x44c1a0
xor eax, eax
mov byte [ebp - 0x8b], 0
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea edx, [ecx + 1]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44c1d5
sub ecx, edx
lea eax, [ebp - 0x90]
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402ae0
mov byte [ebp - 4], 0x19
lea esi, [ebp - 0x2c]
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x2c]
add ecx, ebx
cmp dword [ebp - 0x18], 0x10
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x50], esi
setae byte [ebp - 0xd]
mov dword [ebp - 0x30], edx
jb 0x44c21b
mov esi, edx
mov dword [ebp - 0x50], edx
cmp dword [ecx + 0x14], 0x10
mov edi, ecx
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x34], ecx
jb 0x44c22e
mov edi, dword [ecx]
mov dword [ebp - 0x34], edi
mov ebx, dword [ebp - 0x1c]
cmp ebx, eax
ja 0x44c319
sub eax, ebx
test ebx, ebx
jne 0x44c246
xor edi, edi
jmp 0x44c2ff
movsx ecx, byte [esi]
inc eax
add eax, edi
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x78], eax
sub eax, edi
push eax
push ecx
push edi
call fcn.004e2ce0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x44c316
lea esp, [esp]
mov ecx, esi
mov edx, edi
mov esi, ebx
sub esi, 4
jb 0x44c291
jmp 0x44c280
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x44c296
add edx, 4
add ecx, 4
sub esi, 4
jae 0x44c280
cmp esi, 0xfffffffc
je 0x44c2ca
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x44c2c3
cmp esi, 0xfffffffd
je 0x44c2ca
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x44c2c3
cmp esi, 0xfffffffe
je 0x44c2ca
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x44c2c3
cmp esi, 0xffffffff
je 0x44c2ca
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x44c2ca
sbb eax, eax
or eax, 1
jmp 0x44c2cc
xor eax, eax
test eax, eax
je 0x44c2f1
mov eax, dword [ebp - 0x78]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x94]
push edi
call fcn.004e2ce0
mov esi, dword [ebp - 0x50]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x44c270
jmp 0x44c316
sub edi, dword [ebp - 0x34]
cmp edi, 0xffffffff
je 0x44c316
mov ecx, dword [ebp - 0x164]
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
jb 0x44c30b
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x3c]
push eax
push ebx
push edi
call fcn.0046cde0
mov edx, dword [ebp - 0x30]
cmp byte [ebp - 0xd], 0
mov byte [ebp - 4], 0x18
je 0x44c34f
mov ecx, dword [ebp - 0x18]
mov eax, edx
inc ecx
cmp ecx, 0x1000
jb 0x44c345
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov ebx, dword [ebp - 0x14]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x38]
cmp ecx, 0x10
jb 0x44c0a0
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44c384
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
mov ebx, dword [ebp - 0x14]
add esp, 8
jmp 0x44c0a0
mov ecx, dword [ebp - 0x16c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x170]
add ebx, 0x18
mov edi, dword [ebp - 0x54]
imul ecx
inc edi
mov dword [ebp - 0x14], ebx
sar edx, 2
mov eax, edx
mov dword [ebp - 0x54], edi
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x44be12
sub esp, 0xc
lea eax, [ebp - 0x170]
mov ecx, esp
mov dword [ebp - 0x78], esp
push eax
call fcn.004696e0
sub esp, 0xc
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x1b8]
mov dword [ebp - 0x94], esp
mov ecx, esp
push eax
call fcn.004696e0
lea eax, [ebp - 0x194]
mov byte [ebp - 4], 0x1b
mov ebx, dword [ebp - 0x160]
push eax
sub esp, 0x18
shl ebx, 0xa
lea eax, [ebp + 8]
mov dword [ebp - 0x160], esp
mov ecx, esp
push eax
call fcn.0046a770
sub esp, 0x18
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x6c]
mov ecx, esp
push eax
call fcn.0046a770
mov cl, byte [ebp - 0x71]
mov edx, ebx
mov byte [ebp - 4], 9
call fcn.00449550
add esp, 0x4c
lea ecx, [ebp - 0x170]
call fcn.0046c860
lea ecx, [ebp - 0x1b8]
call fcn.0046c860
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x58]
cmp ecx, 0x10
jb 0x44c490
mov edx, dword [ebp - 0x6c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44c486
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x198]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov byte [ebp - 0x6c], 0
cmp ecx, 0x10
jb 0x44c4e0
mov edx, dword [ebp - 0x1ac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44c4d6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x1bc]
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0xf
mov byte [ebp - 0x1ac], 0
cmp ecx, 0x10
jb 0x44c539
mov edx, dword [ebp - 0x1d0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44c52f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov eax, dword [ebp - 0x190]
movzx eax, byte [eax]
sub eax, 1
je 0x44c563
sub eax, 1
je 0x44c557
inc dword [ebp - 0x184]
jmp 0x44aa34
add dword [ebp - 0x188], 0x10
jmp 0x44aa34
mov eax, dword [ebp - 0x18c]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], eax
call fcn.0046bae0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x18c], eax
jmp 0x44aa34
mov ecx, dword [ebp + 0x1c]
cmp ecx, 0x10
jb 0x44c5b2
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44c5a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44c617
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.004de4bb
mov ecx, eax
call fcn.0046c340
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402980
push eax
mov edx, str.type_must_be_boolean__but_is
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
call fcn.0046e530
add esp, 4
push eax
mov edx, 0x12e
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2f4]
call fcn.00407820
add esp, 4
lea eax, [ebp - 0x2f4]
push 0x5316e0
push eax
call fcn.004e0efb
call fcn.004e47b0
int3