Function at 0x443468
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
and dword [ebp - 0x18], 0
push ebx
push esi
push edi
lea esi, [ebp - 0x10]
call fcn.00424fc8
lea esi, [ebp - 0x38]
call fcn.00424fc8
lea esi, [ebp - 0x34]
call fcn.00424fc8
lea esi, [ebp - 0xc]
call fcn.00424fc8
lea esi, [ebp - 0x20]
call fcn.00424fc8
lea esi, [ebp - 8]
call fcn.00424fc8
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x1c]
push eax
mov eax, 0x40639c
call fcn.0043e85b
pop ecx
mov ebx, eax
lea esi, [ebp - 0x10]
call fcn.00425388
lea esi, [ebp - 0x1c]
call fcn.00424fe3
push 0
push ecx
push esp
mov eax, 0x405eb8
call fcn.0043e85b
lea esi, [ebp - 0x10]
mov edi, esp
call fcn.00424f98
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x1c]
push eax
call 0x41ffba
mov ebx, eax
lea esi, [ebp - 0xc]
call fcn.00425388
lea esi, [ebp - 0x1c]
call fcn.00424fe3
lea eax, [ebp - 0xc]
call fcn.00424ab4
test al, al
jne 0x443611
mov edi, dword [ebp + 8]
cmp dword [edi + 0x18c], 0
jne 0x443611
lea esi, [edi + 0x32c]
lea ebx, [ebp - 0xc]
mov dword [ebp - 0x30], esi
call fcn.00425388
push 0
push ecx
add edi, 0x330
push esp
mov eax, 0x406318
mov dword [ebp - 0x1c], edi
call fcn.0043e85b
lea esi, [ebp - 0x10]
mov edi, esp
call fcn.00424f98
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x24]
push eax
call 0x41ffba
mov esi, dword [ebp - 0x1c]
mov ebx, eax
call fcn.00425388
lea esi, [ebp - 0x24]
call fcn.00424fe3
lea eax, [ebp - 0x2c]
push eax
mov eax, 0x4063d0
call fcn.0043e85b
pop ecx
push 0
push ecx
mov dword [ebp - 0x24], eax
push esp
mov eax, 0x4063bc
call fcn.0043e85b
lea esi, [ebp - 0x10]
mov edi, esp
call fcn.00424f98
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
call 0x41ffba
mov ecx, dword [ebp - 0x24]
call fcn.00424d48
mov ecx, dword [ebp + 8]
lea esi, [ebp - 0x28]
mov byte [ecx + 0x31b], al
call fcn.00424fe3
lea esi, [ebp - 0x2c]
call fcn.00424fe3
mov eax, dword [ebp - 0x30]
call fcn.00424ab4
test al, al
jne 0x443611
mov edx, dword [ebp - 0x1c]
mov eax, edx
call fcn.00424ab4
test al, al
jne 0x443611
mov ecx, dword [0x448688]
mov eax, dword [edx]
mov edx, dword [ecx + 0xa0]
push 1
call fcn.004246ae
pop ecx
test eax, eax
je 0x443611
mov esi, dword [ebp + 8]
push esi
push 0x41b9b9
call fcn.00428fa0
pop ecx
pop ecx
mov dword [esi + 0x18c], eax
lea eax, [ebp - 0x30]
push eax
mov eax, 0x4063e0
call fcn.0043e85b
pop ecx
mov ebx, eax
lea esi, [ebp - 0x10]
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
push 0
push ecx
push esp
mov eax, 0x405eb8
call fcn.0043e85b
lea esi, [ebp - 0x10]
mov edi, esp
call fcn.00424f98
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x30]
push eax
call 0x41ffba
mov ebx, eax
lea esi, [ebp - 0xc]
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
lea eax, [ebp - 0xc]
call fcn.00424ab4
test al, al
jne 0x4436c1
mov esi, dword [ebp + 8]
add esi, 0x334
lea ebx, [ebp - 0xc]
call fcn.00425388
push 0
push ecx
push esp
mov eax, 0x4063fc
call fcn.0043e85b
lea esi, [ebp - 0x10]
mov edi, esp
call fcn.00424f98
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x30]
push eax
call 0x41ffba
mov esi, dword [ebp + 8]
add esi, 0x338
mov ebx, eax
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
push 0
push ecx
push esp
mov eax, 0x405ca4
call fcn.0043e85b
push esp
mov eax, 0x406408
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp - 0x30]
push eax
call 0x41ffba
mov edi, eax
call fcn.00424e82
mov ebx, eax
lea esi, [ebp - 8]
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
lea eax, [ebp - 0x30]
push eax
mov eax, 0x406390
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424dc0
lea esi, [ebp - 0x30]
mov bl, al
call fcn.00424fe3
test bl, bl
je 0x443783
mov dword [ebp - 0x78], 0xd0a0d16
mov dword [ebp - 0x70], 0x6363630f
mov dword [ebp - 0x74], 0xf021710
mov byte [ebp - 0x6f], 0x63
mov byte [ebp - 0x78], 0x75
lea eax, [ebp - 0x78]
inc eax
xor byte [eax], 0x63
jne 0x443747
lea eax, [ebp - 0x78]
push eax
lea esi, [ebp - 0x1c]
call fcn.00424f68
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ecx, esi
push ecx
mov ecx, edi
call dword [eax + 8]
call fcn.00424fe3
mov eax, edi
call fcn.004365e6
mov eax, dword [0x448688]
push dword [eax + 0xd0]
call fcn.00428cb0
pop ecx
push 0
push ecx
push esp
mov eax, 0x405ca4
call fcn.0043e85b
push esp
mov eax, 0x406428
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp - 0x30]
push eax
call 0x41ffba
mov edi, eax
call fcn.00424e82
mov ebx, eax
lea esi, [ebp - 8]
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
lea eax, [ebp - 8]
call fcn.00424ab4
xor ebx, ebx
test al, al
jne 0x44387a
mov edi, dword [ebp + 8]
cmp dword [edi + 0x174], ebx
jne 0x44387a
lea eax, [ebp - 0x30]
push eax
mov eax, 0x405a6c
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424dc0
lea esi, [ebp - 0x30]
mov byte [ebp - 1], al
call fcn.00424fe3
cmp byte [ebp - 1], bl
je 0x443816
push ebx
mov eax, edi
call fcn.0043760d
jmp 0x44387a
lea eax, [ebp - 0x30]
push eax
mov eax, 0x406444
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424dc0
lea esi, [ebp - 0x30]
mov byte [ebp - 1], al
call fcn.00424fe3
cmp byte [ebp - 1], bl
je 0x443849
push ebx
mov eax, edi
call fcn.004375db
jmp 0x44387a
lea eax, [ebp - 0x30]
push eax
mov eax, 0x406454
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424dc0
lea esi, [ebp - 0x30]
mov byte [ebp - 1], al
call fcn.00424fe3
cmp byte [ebp - 1], bl
je 0x44387a
push ebx
mov eax, edi
call fcn.004375a9
push ebx
push ecx
push esp
mov eax, 0x405ca4
call fcn.0043e85b
push esp
mov eax, 0x406468
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp - 0x30]
push eax
call 0x41ffba
mov edi, eax
call fcn.00424e82
mov ebx, eax
lea esi, [ebp - 8]
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
lea eax, [ebp - 8]
call fcn.00424ab4
mov edi, dword [ebp + 8]
xor ebx, ebx
test al, al
jne 0x443970
cmp dword [edi + 0x170], ebx
jne 0x443970
lea eax, [ebp - 0x30]
push eax
mov eax, 0x405a6c
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424dc0
lea esi, [ebp - 0x30]
mov byte [ebp - 1], al
call fcn.00424fe3
cmp byte [ebp - 1], bl
je 0x44390c
push ebx
mov eax, edi
call fcn.00437577
jmp 0x443970
lea eax, [ebp - 0x30]
push eax
mov eax, 0x406444
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424dc0
lea esi, [ebp - 0x30]
mov byte [ebp - 1], al
call fcn.00424fe3
cmp byte [ebp - 1], bl
je 0x44393f
push ebx
mov eax, edi
call fcn.00437545
jmp 0x443970
lea eax, [ebp - 0x30]
push eax
mov eax, 0x406454
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424dc0
lea esi, [ebp - 0x30]
mov byte [ebp - 1], al
call fcn.00424fe3
cmp byte [ebp - 1], bl
je 0x443970
push ebx
mov eax, edi
call fcn.00437513
push ebx
push ecx
push esp
mov eax, 0x405eb8
call fcn.0043e85b
push esp
mov eax, 0x406484
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp - 0x30]
push eax
call 0x41ffba
mov ebx, eax
lea esi, [ebp - 0xc]
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
lea eax, [ebp - 0xc]
call fcn.00424ab4
test al, al
jne 0x443a90
cmp dword [edi + 0x178], 0
jne 0x443a90
push 0xc
call fcn.004288fe
pop ecx
test eax, eax
je 0x4439df
mov edi, eax
call 0x40d7b6
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
jmp 0x4439e3
and dword [ebp - 0x1c], 0
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x443a90
lea ebx, [ebp - 0xc]
call fcn.00425388
push 0
push ecx
push esp
mov eax, 0x4063fc
call fcn.0043e85b
push esp
mov eax, 0x406484
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp + 8]
push eax
call 0x41ffba
add esi, 4
mov ebx, eax
call fcn.00425388
lea esi, [ebp + 8]
call fcn.00424fe3
push 0
push ecx
push esp
mov eax, 0x4064a0
call fcn.0043e85b
push esp
mov eax, 0x406484
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp + 8]
push eax
call 0x41ffba
mov ebx, eax
lea esi, [ebp - 8]
call fcn.00425388
lea esi, [ebp + 8]
call fcn.00424fe3
push dword [ebp - 8]
call fcn.0042769a
mov ecx, eax
mov eax, dword [ebp - 0x1c]
imul ecx, ecx, 0x3e8
push eax
push 0x41b404
mov dword [eax + 8], ecx
call fcn.00428fa0
add esp, 0xc
mov dword [edi + 0x178], eax
push 0
push ecx
push esp
mov eax, 0x4064b0
call fcn.0043e85b
push esp
mov eax, 0x4064c0
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp + 8]
push eax
call 0x41ffba
mov ebx, eax
lea esi, [ebp - 0xc]
call fcn.00425388
lea esi, [ebp + 8]
call fcn.00424fe3
lea eax, [ebp - 0xc]
call fcn.00424ab4
test al, al
jne 0x443b13
cmp dword [edi + 0x17c], 0
jne 0x443b13
push 4
call fcn.004288fe
mov esi, eax
pop ecx
test esi, esi
je 0x443af2
call fcn.00424fc8
jmp 0x443af4
xor esi, esi
test esi, esi
je 0x443b13
lea ebx, [ebp - 0xc]
call fcn.00425388
push esi
push 0x41be0e
call fcn.00428fa0
pop ecx
pop ecx
mov dword [edi + 0x17c], eax
cmp dword [edi + 0xe8], 0
jne 0x443b5e
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
push ecx
push esp
mov eax, 0x405eb8
call fcn.0043e85b
push esp
mov eax, 0x4064e0
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp + 8]
push eax
call 0x41ffba
lea esi, [ebp + 8]
call fcn.00424fe3
xor eax, eax
cmp dword [ebp - 0x14], eax
setne al
mov dword [edi + 0xe8], eax
and dword [ebp - 0x14], 0
lea eax, [ebp + 8]
push eax
mov eax, 0x406500
call fcn.0043e85b
pop ecx
mov ebx, eax
lea esi, [ebp - 0x10]
call fcn.00425388
lea esi, [ebp + 8]
call fcn.00424fe3
cmp dword [edi + 0xe4], 0
je 0x443b99
cmp dword [edi + 0xe8], 0
jne 0x443d1a
mov eax, dword [ebp - 0x14]
mov dword [ebp + 8], eax
lea eax, [ebp - 0x14]
push eax
push ecx
push esp
mov eax, 0x4061d0
call fcn.0043e85b
mov esi, esp
push dword [ebp - 0x10]
call fcn.00424f68
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x30]
push eax
call 0x41ffba
mov ebx, eax
lea esi, [ebp - 0x20]
call fcn.00425388
lea esi, [ebp - 0x30]
call fcn.00424fe3
cmp dword [ebp - 0x14], 0
je 0x443d1a
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push ecx
push esp
mov eax, 0x405eb8
call fcn.0043e85b
mov esi, esp
push dword [ebp - 0x10]
call fcn.00424f68
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x2c]
push eax
call 0x41ffba
call fcn.004255a8
mov ebx, eax
lea esi, [ebp - 0xc]
call fcn.00425388
lea esi, [ebp - 0x2c]
call fcn.00424fe3
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push ecx
push esp
mov eax, 0x405ca4
call fcn.0043e85b
mov esi, esp
push dword [ebp - 0x10]
call fcn.00424f68
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
call 0x41ffba
call fcn.004255a8
mov ebx, eax
lea esi, [ebp - 8]
call fcn.00425388
lea esi, [ebp - 0x28]
call fcn.00424fe3
lea eax, [ebp - 0x20]
call fcn.00424ab4
xor ebx, ebx
inc ebx
cmp al, bl
je 0x443cb2
lea eax, [ebp - 0xc]
call fcn.00424ab4
cmp al, bl
je 0x443cb2
lea eax, [ebp - 8]
call fcn.00424ab4
cmp al, bl
je 0x443cb2
or dword [ebp - 0x18], ebx
lea eax, [ebp - 0x24]
push eax
mov eax, 0x406324
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424d48
mov byte [ebp + 0xb], 0
cmp al, bl
jne 0x443cb5
mov byte [ebp + 0xb], bl
test byte [ebp - 0x18], bl
je 0x443cc6
and dword [ebp - 0x18], 0xfffffffe
lea esi, [ebp - 0x24]
call fcn.00424fe3
cmp byte [ebp + 0xb], 0
jne 0x443b83
lea eax, [ebp - 0x1c]
push eax
mov eax, 0x405fc4
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 0x20]
call fcn.00424d48
lea esi, [ebp - 0x1c]
lea ebx, [eax - 1]
neg bl
sbb bl, bl
call fcn.00424fe3
inc bl
je 0x443d0b
mov dword [edi + 0xe4], 1
jmp 0x443b83
mov dword [edi + 0xe8], 1
jmp 0x443b83
push 0
push ecx
push esp
mov eax, 0x406524
call fcn.0043e85b
push esp
mov eax, 0x406534
call fcn.0043e85b
mov ebx, dword [ebp + 0xc]
pop ecx
lea eax, [ebp + 8]
push eax
call 0x41ffba
mov ebx, eax
lea esi, [ebp - 8]
call fcn.00425388
lea esi, [ebp + 8]
call fcn.00424fe3
lea eax, [ebp + 0xc]
push eax
mov eax, 0x406550
call fcn.0043e85b
pop ecx
mov ecx, eax
lea eax, [ebp - 8]
call fcn.00424d48
lea esi, [ebp + 0xc]
lea ebx, [eax - 1]
neg bl
sbb bl, bl
call fcn.00424fe3
inc bl
je 0x443dd9
mov eax, dword [0x448688]
push dword [eax + 0x50]
call fcn.0043b6bd
mov esi, eax
xor ebx, ebx
pop ecx
cmp esi, ebx
je 0x443dd9
push esi
call fcn.00428cb0
push esi
call fcn.00429254
mov esi, dword [edi]
lea eax, [ebp + 0xc]
push eax
mov eax, 0x40655c
call fcn.0043e85b
add esp, 0xc
push eax
mov ecx, edi
call dword [esi + 8]
lea esi, [ebp + 0xc]
call fcn.00424fe3
mov dword [edi + 0xec], ebx
mov dword [edi + 0xf0], ebx
mov dword [edi + 0xe8], ebx
mov dword [edi + 0xe4], ebx
lea esi, [ebp - 8]
call fcn.00424fe3
lea esi, [ebp - 0x20]
call fcn.00424fe3
lea esi, [ebp - 0xc]
call fcn.00424fe3
lea esi, [ebp - 0x34]
call fcn.00424fe3
lea esi, [ebp - 0x38]
call fcn.00424fe3
lea esi, [ebp - 0x10]
call fcn.00424fe3
pop edi
pop esi
pop ebx
leave
ret 8