Function at 0x420b40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4aaf68
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x4d5210]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
test esi, esi
jle 0x420b99
xor ecx, ecx
xor edx, edx
test esi, esi
jle 0x420b99
nop
mov al, byte [ecx + str.013504b5f4737ad1193c9ab5594434e7]
xor byte [ebx + edx], al
lea eax, [ecx + 1]
xor ecx, ecx
inc edx
cmp eax, 0x20
cmovl ecx, eax
cmp edx, esi
jl 0x420b80
lea ecx, [ebp - 0x7c]
call fcn.00435630
push 1
push 0
push ebx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], 0
call fcn.00438040
push str.a69ac625
lea ecx, [ebp - 0x7c]
call fcn.004363f0
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x420bdf
test ebx, ebx
je 0x420bd8
push 1
push ebx
call fcn.00434851
add esp, 8
xor esi, esi
jmp 0x420f92
push str.f1910767
mov ecx, eax
call fcn.004363f0
test eax, eax
je 0x420c42
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x420c42
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c1cb
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
push 1
push 0x4b20f8
push dword [ebp - 0x18]
cmp esi, 8
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.0040a3e0
add esp, 0x18
test eax, eax
jne 0x420c2e
mov dword [edi], 1
cmp esi, 8
jb 0x420c42
lea eax, [esi + 1]
push eax
push dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
call fcn.00407b30
mov esi, dword [ebp - 0x30]
mov ecx, esi
push str.aa1aa6da
call fcn.004363f0
test eax, eax
je 0x420cf4
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x420cf4
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c14c
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push 0x4b1a08
cmovae eax, dword [ebp - 0x28]
push eax
mov byte [ebp - 4], 1
call fcn.00461b70
mov ecx, eax
mov dword [ebp - 0x34], 0
add esp, 0x10
mov dword [ebp - 0x2c], ecx
xor eax, eax
test ecx, ecx
je 0x420cc5
push 0x4b1a08
push eax
call fcn.00461b70
push dword [ebp - 0x2c]
mov esi, eax
call fcn.0045da03
push esi
mov dword [ebp - 0x34], eax
call fcn.0045da03
mov esi, dword [ebp - 0x30]
add esp, 0x10
push eax
push 0
call fcn.004499cf
add esp, 8
cmp eax, dword [ebp - 0x34]
jle 0x420cdb
mov dword [edi], 0
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x420cf4
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0040c0b0
push str.b2398937
mov ecx, esi
call fcn.004363f0
test eax, eax
je 0x420d7e
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x420d7e
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c1cb
mov ecx, eax
lea esi, [edi + 0x34]
add esp, 8
mov dword [ebp - 0x2c], ecx
cmp esi, ecx
je 0x420d65
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x420d3e
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.00407b30
mov ecx, dword [ebp - 0x2c]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x420d56
mov eax, dword [esi]
jmp 0x420d58
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.00409f30
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 8
jb 0x420d7e
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00407b30
mov ecx, dword [ebp - 0x30]
push str.b22bd567
call fcn.004363f0
test eax, eax
je 0x420e09
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x420e09
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c1cb
mov ecx, eax
lea esi, [edi + 0x4c]
add esp, 8
mov dword [ebp - 0x2c], ecx
cmp esi, ecx
je 0x420df0
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x420dc9
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.00407b30
mov ecx, dword [ebp - 0x2c]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x420de1
mov eax, dword [esi]
jmp 0x420de3
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.00409f30
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 8
jb 0x420e09
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00407b30
mov ecx, dword [ebp - 0x30]
push str.b425b360
call fcn.004363f0
test eax, eax
je 0x420e94
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x420e94
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c1cb
mov ecx, eax
lea esi, [edi + 0x64]
add esp, 8
mov dword [ebp - 0x2c], ecx
cmp esi, ecx
je 0x420e7b
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x420e54
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.00407b30
mov ecx, dword [ebp - 0x2c]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x420e6c
mov eax, dword [esi]
jmp 0x420e6e
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.00409f30
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 8
jb 0x420e94
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00407b30
mov ecx, dword [ebp - 0x30]
push str.b4bb8c76
call fcn.004363f0
test eax, eax
je 0x420f12
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x420f12
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c1cb
mov ecx, eax
lea esi, [edi + 0x7c]
add esp, 8
mov dword [ebp - 0x2c], ecx
cmp esi, ecx
je 0x420f06
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x420edf
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.00407b30
mov ecx, dword [ebp - 0x2c]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x420ef7
mov eax, dword [esi]
jmp 0x420ef9
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.00409f30
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.00407890
mov ecx, dword [ebp - 0x30]
push str.f24823fb
call fcn.004363f0
test eax, eax
je 0x420f4f
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x420f4f
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043c1cb
add esp, 8
lea ecx, [edi + 0x94]
push eax
call fcn.00409bd0
lea ecx, [ebp - 0x28]
call fcn.00407890
mov ecx, edi
call fcn.00420560
test eax, eax
jne 0x420f5c
mov dword [edi], eax
lea eax, [edi + 0x34]
mov ecx, edi
push eax
call fcn.00420010
test al, al
jne 0x420f71
mov dword [edi], 0
mov ecx, edi
call fcn.00421740
test eax, eax
jne 0x420f7e
mov dword [edi], eax
test ebx, ebx
je 0x420f8d
push 1
push ebx
call fcn.00434851
add esp, 8
mov esi, 1
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x7c], vtable.TiXmlDocument.0
cmp eax, 0x4d6e40
je 0x420fac
push eax
call fcn.00434af3
add esp, 4
lea ecx, [ebp - 0x7c]
call fcn.00435ad0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00434840
mov esp, ebp
pop ebp
ret 8