Function at 0x422b40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ab288
mov eax, dword fs:[0]
push eax
sub esp, 0xac
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 dword [ebp - 0x68], ecx
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x5c], ebx
test esi, esi
jle 0x422ba9
xor edx, edx
xor ecx, ecx
test esi, esi
jle 0x422ba9
nop word [eax + eax]
mov al, byte [edx + str.013504b5f4737ad1193c9ab5594434e7]
xor byte [ebx + ecx], al
lea eax, [edx + 1]
xor edx, edx
inc ecx
cmp eax, 0x20
cmovl edx, eax
cmp ecx, esi
jl 0x422b90
lea ecx, [ebp - 0xb8]
call fcn.00435630
push 1
push 0
push ebx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 4], 0
call fcn.00438040
push str.c3c95704
lea ecx, [ebp - 0xb8]
call fcn.004363f0
mov edi, eax
test edi, edi
jne 0x422c11
push str.b7365278
lea ecx, [ebp - 0xb8]
call fcn.004363f0
mov edi, eax
test edi, edi
jne 0x422c11
test ebx, ebx
je 0x423072
push 1
push ebx
call fcn.00434851
add esp, 8
xor esi, esi
jmp 0x423099
push str.b7365278
mov ecx, edi
call fcn.004363f0
test eax, eax
je 0x422ce5
mov ecx, eax
call fcn.00436490
test eax, eax
je 0x422ce5
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0043c14c
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 0x4b1a08
cmovae eax, dword [ebp - 0x40]
push eax
mov byte [ebp - 4], 1
call fcn.00461b70
mov ecx, eax
add esp, 0x10
xor ebx, ebx
mov dword [ebp - 0x60], ecx
xor eax, eax
test ecx, ecx
je 0x422c88
push 0x4b1a08
push eax
call fcn.00461b70
push dword [ebp - 0x60]
mov esi, eax
call fcn.0045da03
push esi
mov ebx, eax
call fcn.0045da03
add esp, 0x10
push eax
push 0
call fcn.004499cf
add esp, 8
cmp eax, ebx
jle 0x422cc9
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x422ca9
push 1
push eax
call fcn.00434851
add esp, 8
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x423072
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.0040c0b0
xor esi, esi
jmp 0x423099
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x422ce2
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.0040c0b0
mov ebx, dword [ebp - 0x5c]
push str.bb92c7e0
mov ecx, edi
call fcn.004363f0
test eax, eax
jne 0x422d0f
test ebx, ebx
je 0x423072
push 1
push ebx
call fcn.00434851
add esp, 8
xor esi, esi
jmp 0x423099
mov ecx, eax
call fcn.00436430
mov esi, eax
mov dword [ebp - 0x60], esi
test esi, esi
je 0x42304e
push 8
call fcn.00434808
mov ebx, eax
add esp, 4
mov dword [ebp - 0x70], ebx
mov byte [ebp - 4], 2
test ebx, ebx
je 0x422d59
xorps xmm0, xmm0
mov ecx, ebx
movq qword [ebx], xmm0
mov dword [ebx], 0
mov dword [ebx + 4], 0
call fcn.00416c60
mov dword [ebx], eax
jmp 0x422d5b
xor ebx, ebx
mov ecx, esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x64], ebx
call fcn.00436430
mov edi, eax
test edi, edi
je 0x422f9d
mov ecx, dword [edi + 0x20]
lea eax, [ebp - 0x40]
add ecx, 8
push ecx
push eax
call fcn.004406e2
add esp, 8
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov ecx, dword [edi + 0x18]
mov byte [ebp - 4], 4
test ecx, ecx
je 0x422ecb
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
je 0x422eaa
mov eax, dword [eax + 0x20]
add eax, 8
je 0x422eaa
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0043c1cb
add esp, 8
mov esi, eax
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x422e53
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x422ded
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00407b30
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp dword [esi + 0x14], 8
jae 0x422e21
mov eax, dword [esi + 0x10]
add eax, 1
je 0x422e2c
add eax, eax
push eax
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.00458210
add esp, 0xc
jmp 0x422e2c
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x14], eax
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x422e4e
mov esi, dword [esi]
xor eax, eax
mov word [esi], ax
mov eax, dword [ebp - 0x44]
mov byte [ebp - 4], 4
cmp eax, 8
jb 0x422eaa
mov ecx, dword [ebp - 0x58]
inc eax
cmp eax, 0x7fffffff
ja 0x423076
add eax, eax
cmp eax, 0x1000
jb 0x422ea1
test cl, 0x1f
jne 0x423076
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x423076
sub ecx, eax
cmp ecx, 4
jb 0x423076
cmp ecx, 0x23
ja 0x423076
mov ecx, eax
push ecx
call fcn.0043483b
add esp, 4
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
lea eax, [ebp - 0x40]
cmovae ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae eax, dword [ebp - 0x40]
push eax
push ebx
call fcn.004215d0
add esp, 0xc
mov ecx, edi
call fcn.00436550
mov edi, eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x422f2b
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x7fffffff
ja 0x423076
add eax, eax
cmp eax, 0x1000
jb 0x422f22
test cl, 0x1f
jne 0x423076
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x423076
sub ecx, eax
cmp ecx, 4
jb 0x423076
cmp ecx, 0x23
ja 0x423076
mov ecx, eax
push ecx
call fcn.0043483b
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
cmp eax, 8
jb 0x422f95
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x7fffffff
ja 0x423076
add eax, eax
cmp eax, 0x1000
jb 0x422f8c
test cl, 0x1f
jne 0x423076
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x423076
sub ecx, eax
cmp ecx, 4
jb 0x423076
cmp ecx, 0x23
ja 0x423076
mov ecx, eax
push ecx
call fcn.0043483b
add esp, 4
test edi, edi
jne 0x422d73
mov eax, dword [ebp - 0x68]
mov edi, dword [eax]
lea eax, [ebp - 0x64]
mov ecx, dword [edi + 4]
cmp eax, ecx
jae 0x42301e
mov esi, dword [edi]
cmp esi, eax
ja 0x42301e
mov edx, dword [edi + 8]
mov ebx, eax
sub ebx, esi
sar ebx, 2
cmp ecx, edx
jne 0x42300e
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x42300e
sub ecx, esi
mov eax, 0x3fffffff
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x42307b
sub edx, dword [edi]
lea esi, [ecx + 1]
sar edx, 2
mov ecx, 0x3fffffff
mov eax, edx
mov dword [ebp - 0x6c], edx
shr eax, 1
sub ecx, eax
add eax, edx
xor edx, edx
cmp ecx, dword [ebp - 0x6c]
mov ecx, edi
cmovae edx, eax
cmp edx, esi
cmovae esi, edx
push esi
call fcn.004230f0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x423035
mov eax, dword [edi]
mov eax, dword [eax + ebx*4]
mov dword [ecx], eax
jmp 0x423035
cmp ecx, dword [edi + 8]
jne 0x42302c
push 1
mov ecx, edi
call fcn.00423150
mov eax, dword [edi + 4]
test eax, eax
je 0x423035
mov dword [eax], ebx
mov ecx, dword [ebp - 0x60]
add dword [edi + 4], 4
call fcn.00436550
mov esi, eax
mov dword [ebp - 0x60], eax
test esi, esi
jne 0x422d23
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
sar ecx, 2
cmp ecx, 1
jae 0x423085
test eax, eax
je 0x423072
push 1
push eax
call fcn.00434851
add esp, 8
xor esi, esi
jmp 0x423099
call fcn.0045cc11
push str.vector_T__too_long
call fcn.004347b5
test eax, eax
je 0x423094
push 1
push eax
call fcn.00434851
add esp, 8
mov esi, 1
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xb8], vtable.TiXmlDocument.0
cmp eax, 0x4d6e40
je 0x4230b9
push eax
call fcn.00434af3
add esp, 4
lea ecx, [ebp - 0xb8]
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