Function at 0x40e430
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48a678
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x4ad1dc]
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 0x40e499
xor edx, edx
xor ecx, ecx
test esi, esi
jle 0x40e499
nop word [eax + eax]
mov al, byte [edx + str.BUDINGPAOPAO]
xor byte [ebx + ecx], al
lea eax, [edx + 1]
xor edx, edx
inc ecx
cmp eax, 0xc
cmovl edx, eax
cmp ecx, esi
jl 0x40e480
lea ecx, [ebp - 0xb8]
call fcn.00414530
push 1
push 0
push ebx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 4], 0
call fcn.00416f90
push str.d4783929dd69
lea ecx, [ebp - 0xb8]
call fcn.00415340
mov edi, eax
test edi, edi
jne 0x40e501
push str.bb92580149b0
lea ecx, [ebp - 0xb8]
call fcn.00415340
mov edi, eax
test edi, edi
jne 0x40e501
test ebx, ebx
je 0x40e962
push 1
push ebx
call fcn.0041374c
add esp, 8
xor esi, esi
jmp 0x40e989
push str.ee70a97e1361
mov ecx, edi
call fcn.00415340
test eax, eax
je 0x40e5d5
mov ecx, eax
call fcn.004153e0
test eax, eax
je 0x40e5d5
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004216e8
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 0x48ea64
cmovae eax, dword [ebp - 0x40]
push eax
mov byte [ebp - 4], 1
call fcn.00439a8d
mov ecx, eax
add esp, 0x10
xor ebx, ebx
mov dword [ebp - 0x60], ecx
xor eax, eax
test ecx, ecx
je 0x40e578
push 0x48ea64
push eax
call fcn.00439a8d
push dword [ebp - 0x60]
mov esi, eax
call fcn.0043973d
push esi
mov ebx, eax
call fcn.0043973d
add esp, 0x10
push eax
push 0
call fcn.004264d5
add esp, 8
cmp eax, ebx
jle 0x40e5b9
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x40e599
push 1
push eax
call fcn.0041374c
add esp, 8
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x40e962
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004066c0
xor esi, esi
jmp 0x40e989
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x40e5d2
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004066c0
mov ebx, dword [ebp - 0x5c]
push str.e4e59b904cff
mov ecx, edi
call fcn.00415340
test eax, eax
jne 0x40e5ff
test ebx, ebx
je 0x40e962
push 1
push ebx
call fcn.0041374c
add esp, 8
xor esi, esi
jmp 0x40e989
mov ecx, eax
call fcn.00415380
mov esi, eax
mov dword [ebp - 0x60], esi
test esi, esi
je 0x40e93e
push 8
call fcn.00413714
mov ebx, eax
add esp, 4
mov dword [ebp - 0x70], ebx
mov byte [ebp - 4], 2
test ebx, ebx
je 0x40e649
xorps xmm0, xmm0
mov ecx, ebx
movq qword [ebx], xmm0
mov dword [ebx], 0
mov dword [ebx + 4], 0
call fcn.0040c660
mov dword [ebx], eax
jmp 0x40e64b
xor ebx, ebx
mov ecx, esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x64], ebx
call fcn.00415380
mov edi, eax
test edi, edi
je 0x40e88d
mov ecx, dword [edi + 0x20]
lea eax, [ebp - 0x40]
add ecx, 8
push ecx
push eax
call fcn.0041b009
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 0x40e7bb
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
je 0x40e79a
mov eax, dword [eax + 0x20]
add eax, 8
je 0x40e79a
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00421767
add esp, 8
mov esi, eax
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x40e743
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e6dd
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00402170
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp dword [esi + 0x14], 8
jae 0x40e711
mov eax, dword [esi + 0x10]
add eax, 1
je 0x40e71c
add eax, eax
push eax
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.004306b0
add esp, 0xc
jmp 0x40e71c
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 0x40e73e
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 0x40e79a
mov ecx, dword [ebp - 0x58]
inc eax
cmp eax, 0x7fffffff
ja 0x40e966
add eax, eax
cmp eax, 0x1000
jb 0x40e791
test cl, 0x1f
jne 0x40e966
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e966
sub ecx, eax
cmp ecx, 4
jb 0x40e966
cmp ecx, 0x23
ja 0x40e966
mov ecx, eax
push ecx
call fcn.00413747
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.0040e9e0
add esp, 0xc
mov ecx, edi
call fcn.004154a0
mov edi, eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e81b
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x7fffffff
ja 0x40e966
add eax, eax
cmp eax, 0x1000
jb 0x40e812
test cl, 0x1f
jne 0x40e966
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e966
sub ecx, eax
cmp ecx, 4
jb 0x40e966
cmp ecx, 0x23
ja 0x40e966
mov ecx, eax
push ecx
call fcn.00413747
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 0x40e885
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x7fffffff
ja 0x40e966
add eax, eax
cmp eax, 0x1000
jb 0x40e87c
test cl, 0x1f
jne 0x40e966
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e966
sub ecx, eax
cmp ecx, 4
jb 0x40e966
cmp ecx, 0x23
ja 0x40e966
mov ecx, eax
push ecx
call fcn.00413747
add esp, 4
test edi, edi
jne 0x40e663
mov eax, dword [ebp - 0x68]
mov edi, dword [eax]
lea eax, [ebp - 0x64]
mov ecx, dword [edi + 4]
cmp eax, ecx
jae 0x40e90e
mov esi, dword [edi]
cmp esi, eax
ja 0x40e90e
mov edx, dword [edi + 8]
mov ebx, eax
sub ebx, esi
sar ebx, 2
cmp ecx, edx
jne 0x40e8fe
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x40e8fe
sub ecx, esi
mov eax, 0x3fffffff
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x40e96b
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.0040eba0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x40e925
mov eax, dword [edi]
mov eax, dword [eax + ebx*4]
mov dword [ecx], eax
jmp 0x40e925
cmp ecx, dword [edi + 8]
jne 0x40e91c
push 1
mov ecx, edi
call fcn.0040ec00
mov eax, dword [edi + 4]
test eax, eax
je 0x40e925
mov dword [eax], ebx
mov ecx, dword [ebp - 0x60]
add dword [edi + 4], 4
call fcn.004154a0
mov esi, eax
mov dword [ebp - 0x60], eax
test esi, esi
jne 0x40e613
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 0x40e975
test eax, eax
je 0x40e962
push 1
push eax
call fcn.0041374c
add esp, 8
xor esi, esi
jmp 0x40e989
call fcn.00435054
push str.vector_T__too_long
call fcn.004136c1
test eax, eax
je 0x40e984
push 1
push eax
call fcn.0041374c
add esp, 8
mov esi, 1
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xb8], vtable.TiXmlDocument.0
cmp eax, 0x4aef60
je 0x40e9a9
push eax
call fcn.004139ff
add esp, 4
lea ecx, [ebp - 0xb8]
call fcn.004149d0
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.004139c2
mov esp, ebp
pop ebp
ret 8