Function at 0x4097b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47c718
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x49d1b4]
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 0x409819
xor edx, edx
xor ecx, ecx
test esi, esi
jle 0x409819
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 0x409800
lea ecx, [ebp - 0xb8]
call fcn.0040f840
push 1
push 0
push ebx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 4], 0
call fcn.004122b0
push str.I25B0172585E005054441307
lea ecx, [ebp - 0xb8]
call fcn.00410610
mov edi, eax
test edi, edi
jne 0x409881
push str.I25B0160425514407A5F070D
lea ecx, [ebp - 0xb8]
call fcn.00410610
mov edi, eax
test edi, edi
jne 0x409881
test ebx, ebx
je 0x409ce2
push 1
push ebx
call fcn.0040ea7e
add esp, 8
xor esi, esi
jmp 0x409d09
push str.I25B0160425514407A5F070D
mov ecx, edi
call fcn.00410610
test eax, eax
je 0x409955
mov ecx, eax
call fcn.004106b0
test eax, eax
je 0x409955
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00421aec
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 0x480964
cmovae eax, dword [ebp - 0x40]
push eax
mov byte [ebp - 4], 1
call fcn.004320f5
mov ecx, eax
add esp, 0x10
xor ebx, ebx
mov dword [ebp - 0x60], ecx
xor eax, eax
test ecx, ecx
je 0x4098f8
push 0x480964
push eax
call fcn.004320f5
push dword [ebp - 0x60]
mov esi, eax
call fcn.00431da5
push esi
mov ebx, eax
call fcn.00431da5
add esp, 0x10
push eax
push 0
call fcn.00421c08
add esp, 8
cmp eax, ebx
jle 0x409939
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x409919
push 1
push eax
call fcn.0040ea7e
add esp, 8
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x409ce2
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004044b0
xor esi, esi
jmp 0x409d09
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0
cmp eax, 0x10
jb 0x409952
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004044b0
mov ebx, dword [ebp - 0x5c]
push str.I74601434E7C0F4A47
mov ecx, edi
call fcn.00410610
test eax, eax
jne 0x40997f
test ebx, ebx
je 0x409ce2
push 1
push ebx
call fcn.0040ea7e
add esp, 8
xor esi, esi
jmp 0x409d09
mov ecx, eax
call fcn.00410650
mov esi, eax
mov dword [ebp - 0x60], esi
test esi, esi
je 0x409cbe
push 8
call fcn.0040ea46
mov ebx, eax
add esp, 4
mov dword [ebp - 0x70], ebx
mov byte [ebp - 4], 2
test ebx, ebx
je 0x4099c9
xorps xmm0, xmm0
mov ecx, ebx
movq qword [ebx], xmm0
mov dword [ebx], 0
mov dword [ebx + 4], 0
call fcn.00407980
mov dword [ebx], eax
jmp 0x4099cb
xor ebx, ebx
mov ecx, esi
mov byte [ebp - 4], 0
mov dword [ebp - 0x64], ebx
call fcn.00410650
mov edi, eax
test edi, edi
je 0x409c0d
mov ecx, dword [edi + 0x20]
lea eax, [ebp - 0x40]
add ecx, 8
push ecx
push eax
call fcn.0041a4bc
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 0x409b3b
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
je 0x409b1a
mov eax, dword [eax + 0x20]
add eax, 8
je 0x409b1a
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00421b6b
add esp, 8
mov esi, eax
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x409ac3
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x409a5d
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00404500
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp dword [esi + 0x14], 8
jae 0x409a91
mov eax, dword [esi + 0x10]
add eax, 1
je 0x409a9c
add eax, eax
push eax
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.00429a40
add esp, 0xc
jmp 0x409a9c
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 0x409abe
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 0x409b1a
mov ecx, dword [ebp - 0x58]
inc eax
cmp eax, 0x7fffffff
ja 0x409ce6
add eax, eax
cmp eax, 0x1000
jb 0x409b11
test cl, 0x1f
jne 0x409ce6
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x409ce6
sub ecx, eax
cmp ecx, 4
jb 0x409ce6
cmp ecx, 0x23
ja 0x409ce6
mov ecx, eax
push ecx
call fcn.0040ea79
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.00409d60
add esp, 0xc
mov ecx, edi
call fcn.00410770
mov edi, eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x409b9b
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x7fffffff
ja 0x409ce6
add eax, eax
cmp eax, 0x1000
jb 0x409b92
test cl, 0x1f
jne 0x409ce6
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x409ce6
sub ecx, eax
cmp ecx, 4
jb 0x409ce6
cmp ecx, 0x23
ja 0x409ce6
mov ecx, eax
push ecx
call fcn.0040ea79
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 0x409c05
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x7fffffff
ja 0x409ce6
add eax, eax
cmp eax, 0x1000
jb 0x409bfc
test cl, 0x1f
jne 0x409ce6
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x409ce6
sub ecx, eax
cmp ecx, 4
jb 0x409ce6
cmp ecx, 0x23
ja 0x409ce6
mov ecx, eax
push ecx
call fcn.0040ea79
add esp, 4
test edi, edi
jne 0x4099e3
mov eax, dword [ebp - 0x68]
mov edi, dword [eax]
lea eax, [ebp - 0x64]
mov ecx, dword [edi + 4]
cmp eax, ecx
jae 0x409c8e
mov esi, dword [edi]
cmp esi, eax
ja 0x409c8e
mov edx, dword [edi + 8]
mov ebx, eax
sub ebx, esi
sar ebx, 2
cmp ecx, edx
jne 0x409c7e
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x409c7e
sub ecx, esi
mov eax, 0x3fffffff
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x409ceb
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.00409f10
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x409ca5
mov eax, dword [edi]
mov eax, dword [eax + ebx*4]
mov dword [ecx], eax
jmp 0x409ca5
cmp ecx, dword [edi + 8]
jne 0x409c9c
push 1
mov ecx, edi
call fcn.00409f70
mov eax, dword [edi + 4]
test eax, eax
je 0x409ca5
mov dword [eax], ebx
mov ecx, dword [ebp - 0x60]
add dword [edi + 4], 4
call fcn.00410770
mov esi, eax
mov dword [ebp - 0x60], eax
test esi, esi
jne 0x409993
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 0x409cf5
test eax, eax
je 0x409ce2
push 1
push eax
call fcn.0040ea7e
add esp, 8
xor esi, esi
jmp 0x409d09
call fcn.0042d6a1
push str.vector_T__too_long
call fcn.0040e9f9
test eax, eax
je 0x409d04
push 1
push eax
call fcn.0040ea7e
add esp, 8
mov esi, 1
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xb8], vtable.TiXmlDocument.0
cmp eax, 0x49e9e0
je 0x409d29
push eax
call fcn.0040ea95
add esp, 4
lea ecx, [ebp - 0xb8]
call fcn.0040fca0
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.0040ea9a
mov esp, ebp
pop ebp
ret 8