Function at 0x40df40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48b218
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x4ae1dc]
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 0x40dfa9
xor edx, edx
xor ecx, ecx
test esi, esi
jle 0x40dfa9
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 0x40df90
lea ecx, [ebp - 0xb8]
call fcn.00414000
push 1
push 0
push ebx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 4], 0
call fcn.00416a70
push str.d4783929dd69
lea ecx, [ebp - 0xb8]
call fcn.00414dd0
mov edi, eax
test edi, edi
jne 0x40e011
push str.bb92580149b0
lea ecx, [ebp - 0xb8]
call fcn.00414dd0
mov edi, eax
test edi, edi
jne 0x40e011
test ebx, ebx
je 0x40e472
push 1
push ebx
call fcn.00413263
add esp, 8
xor esi, esi
jmp 0x40e499
push str.ee70a97e1361
mov ecx, edi
call fcn.00414dd0
test eax, eax
je 0x40e0e5
mov ecx, eax
call fcn.00414e70
test eax, eax
je 0x40e0e5
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004213da
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 0x48fac4
cmovae eax, dword [ebp - 0x40]
push eax
mov byte [ebp - 4], 1
call fcn.0043a544
mov ecx, eax
add esp, 0x10
xor ebx, ebx
mov dword [ebp - 0x60], ecx
xor eax, eax
test ecx, ecx
je 0x40e088
push 0x48fac4
push eax
call fcn.0043a544
push dword [ebp - 0x60]
mov esi, eax
call fcn.0043a1f4
push esi
mov ebx, eax
call fcn.0043a1f4
add esp, 0x10
push eax
push 0
call fcn.00427507
add esp, 8
cmp eax, ebx
jle 0x40e0c9
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x40e0a9
push 1
push eax
call fcn.00413263
add esp, 8
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x40e472
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00405df0
xor esi, esi
jmp 0x40e499
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x40e0e2
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00405df0
mov ebx, dword [ebp - 0x5c]
push str.e4e59b904cff
mov ecx, edi
call fcn.00414dd0
test eax, eax
jne 0x40e10f
test ebx, ebx
je 0x40e472
push 1
push ebx
call fcn.00413263
add esp, 8
xor esi, esi
jmp 0x40e499
mov ecx, eax
call fcn.00414e10
mov esi, eax
mov dword [ebp - 0x60], esi
test esi, esi
je 0x40e44e
push 8
call fcn.0041322b
mov ebx, eax
add esp, 4
mov dword [ebp - 0x70], ebx
mov byte [ebp - 4], 2
test ebx, ebx
je 0x40e159
xorps xmm0, xmm0
mov ecx, ebx
movq qword [ebx], xmm0
mov dword [ebx], 0
mov dword [ebx + 4], 0
call fcn.0040c0f0
mov dword [ebx], eax
jmp 0x40e15b
xor ebx, ebx
mov ecx, esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x64], ebx
call fcn.00414e10
mov edi, eax
test edi, edi
je 0x40e39d
mov ecx, dword [edi + 0x20]
lea eax, [ebp - 0x40]
add ecx, 8
push ecx
push eax
call fcn.0041ab56
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 0x40e2cb
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
je 0x40e2aa
mov eax, dword [eax + 0x20]
add eax, 8
je 0x40e2aa
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00421459
add esp, 8
mov esi, eax
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x40e253
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e1ed
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 0x40e221
mov eax, dword [esi + 0x10]
add eax, 1
je 0x40e22c
add eax, eax
push eax
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.00431140
add esp, 0xc
jmp 0x40e22c
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 0x40e24e
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 0x40e2aa
mov ecx, dword [ebp - 0x58]
inc eax
cmp eax, 0x7fffffff
ja 0x40e476
add eax, eax
cmp eax, 0x1000
jb 0x40e2a1
test cl, 0x1f
jne 0x40e476
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e476
sub ecx, eax
cmp ecx, 4
jb 0x40e476
cmp ecx, 0x23
ja 0x40e476
mov ecx, eax
push ecx
call fcn.0041325e
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.0040e4f0
add esp, 0xc
mov ecx, edi
call fcn.00414f30
mov edi, eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e32b
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x7fffffff
ja 0x40e476
add eax, eax
cmp eax, 0x1000
jb 0x40e322
test cl, 0x1f
jne 0x40e476
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e476
sub ecx, eax
cmp ecx, 4
jb 0x40e476
cmp ecx, 0x23
ja 0x40e476
mov ecx, eax
push ecx
call fcn.0041325e
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 0x40e395
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x7fffffff
ja 0x40e476
add eax, eax
cmp eax, 0x1000
jb 0x40e38c
test cl, 0x1f
jne 0x40e476
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40e476
sub ecx, eax
cmp ecx, 4
jb 0x40e476
cmp ecx, 0x23
ja 0x40e476
mov ecx, eax
push ecx
call fcn.0041325e
add esp, 4
test edi, edi
jne 0x40e173
mov eax, dword [ebp - 0x68]
mov edi, dword [eax]
lea eax, [ebp - 0x64]
mov ecx, dword [edi + 4]
cmp eax, ecx
jae 0x40e41e
mov esi, dword [edi]
cmp esi, eax
ja 0x40e41e
mov edx, dword [edi + 8]
mov ebx, eax
sub ebx, esi
sar ebx, 2
cmp ecx, edx
jne 0x40e40e
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x40e40e
sub ecx, esi
mov eax, 0x3fffffff
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x40e47b
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.0040e6b0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x40e435
mov eax, dword [edi]
mov eax, dword [eax + ebx*4]
mov dword [ecx], eax
jmp 0x40e435
cmp ecx, dword [edi + 8]
jne 0x40e42c
push 1
mov ecx, edi
call fcn.0040e710
mov eax, dword [edi + 4]
test eax, eax
je 0x40e435
mov dword [eax], ebx
mov ecx, dword [ebp - 0x60]
add dword [edi + 4], 4
call fcn.00414f30
mov esi, eax
mov dword [ebp - 0x60], eax
test esi, esi
jne 0x40e123
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 0x40e485
test eax, eax
je 0x40e472
push 1
push eax
call fcn.00413263
add esp, 8
xor esi, esi
jmp 0x40e499
call fcn.00435b11
push str.vector_T__too_long
call fcn.004131d8
test eax, eax
je 0x40e494
push 1
push eax
call fcn.00413263
add esp, 8
mov esi, 1
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xb8], vtable.TiXmlDocument.0
cmp eax, 0x4aff60
je 0x40e4b9
push eax
call fcn.00413516
add esp, 4
lea ecx, [ebp - 0xb8]
call fcn.00414460
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.004134d9
mov esp, ebp
pop ebp
ret 8