Function at 0x421380
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5218a5
mov eax, dword fs:[0]
push eax
sub esp, 0x868
mov eax, dword [0x5793bc]
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 - 0x824], ecx
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x814], ebx
test esi, esi
jle 0x4213e9
xor edx, edx
xor ecx, ecx
test esi, esi
jle 0x4213e9
nop dword [eax]
mov al, byte [edx + str.GUANGSU]
xor byte [ebx + ecx], al
lea eax, [edx + 1]
xor edx, edx
inc ecx
cmp eax, 7
cmovl edx, eax
cmp ecx, esi
jl 0x4213d0
lea ecx, [ebp - 0x874]
call fcn.00454300
push 1
push 0
push ebx
lea ecx, [ebp - 0x874]
mov dword [ebp - 4], 0
call fcn.00456d30
push str.TheConfigure
lea ecx, [ebp - 0x874]
call fcn.00455110
mov edi, eax
test edi, edi
jne 0x421451
push str.TheQueryInfo
lea ecx, [ebp - 0x874]
call fcn.00455110
mov edi, eax
test edi, edi
jne 0x421451
test ebx, ebx
je 0x421909
push 1
push ebx
call fcn.0042773f
add esp, 8
xor esi, esi
jmp 0x421936
push str.QueryProbability
mov ecx, edi
call fcn.00455110
test eax, eax
je 0x4214c6
mov ecx, eax
call fcn.004551b0
test eax, eax
je 0x4214c6
push 0x525cb8
push eax
call fcn.004f8790
mov ecx, eax
add esp, 8
xor ebx, ebx
mov dword [ebp - 0x81c], ecx
xor eax, eax
test ecx, ecx
je 0x4214ad
push 0x525cb8
push eax
call fcn.004f8790
push dword [ebp - 0x81c]
mov esi, eax
call fcn.004f8766
push esi
mov ebx, eax
call fcn.004f8766
add esp, 0x10
push eax
push 0
call fcn.004da0ae
add esp, 8
cmp eax, ebx
jg 0x4218f4
mov ebx, dword [ebp - 0x814]
push str.QueryList
mov ecx, edi
call fcn.00455110
mov esi, eax
test esi, esi
jne 0x4214f0
test ebx, ebx
je 0x421909
push 1
push ebx
call fcn.0042773f
add esp, 8
jmp 0x421936
push 0x3e8
lea eax, [ebp - 0x7e0]
push 0
push eax
call fcn.004f1300
push 0x3e8
lea eax, [ebp - 0x3f8]
push 0
push eax
call fcn.004f1300
add esp, 0x18
mov ecx, esi
call fcn.00455150
mov edi, eax
mov dword [ebp - 0x81c], edi
test edi, edi
je 0x4218df
push 8
call fcn.00427707
mov ebx, eax
mov dword [ebp - 0x818], eax
add esp, 4
mov dword [ebp - 0x828], ebx
mov byte [ebp - 4], 1
test ebx, ebx
je 0x421599
xorps xmm0, xmm0
movq qword [ebx], xmm0
push 8
mov dword [ebx], vtable.MapParameter_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t____class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___.0
call fcn.00427707
mov esi, eax
add esp, 4
mov dword [ebp - 0x82c], esi
mov byte [ebp - 4], 2
test esi, esi
je 0x421592
mov ecx, esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0041e6d0
mov dword [esi], eax
mov dword [ebx + 4], esi
jmp 0x4215a1
xor esi, esi
mov dword [ebx + 4], esi
jmp 0x4215a1
xor ebx, ebx
mov dword [ebp - 0x818], ebx
mov ecx, edi
mov byte [ebp - 4], 0
mov dword [ebp - 0x820], ebx
call fcn.00455150
mov edi, eax
test edi, edi
je 0x4217d1
nop dword [eax]
mov esi, dword [edi + 0x20]
lea eax, [ebp - 0x7e0]
push 0x3e8
push 0
push eax
add esi, 8
call fcn.004f1300
push 0x3e8
lea eax, [ebp - 0x3f8]
push 0
push eax
call fcn.004f1300
lea eax, [ebp - 0x7e0]
push eax
push esi
call fcn.004db0b3
mov ecx, dword [edi + 0x18]
add esp, 0x20
test ecx, ecx
je 0x4217c0
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
je 0x421626
mov eax, dword [eax + 0x20]
lea ecx, [ebp - 0x3f8]
add eax, 8
push ecx
push eax
call fcn.004db0b3
add esp, 8
xor eax, eax
mov dword [ebp - 0x7fc], 7
mov dword [ebp - 0x800], 0
mov word [ebp - 0x810], ax
cmp word [ebp - 0x3f8], ax
je 0x421664
lea eax, [ebp - 0x3f8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x421655
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x3f8]
push eax
lea ecx, [ebp - 0x810]
call fcn.0041b090
xor eax, eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x7e4], 7
mov dword [ebp - 0x7e8], 0
mov word [ebp - 0x7f8], ax
cmp word [ebp - 0x7e0], ax
jne 0x4216a5
xor ecx, ecx
jmp 0x4216bf
lea ecx, [ebp - 0x7e0]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4216b0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x7e0]
push eax
lea ecx, [ebp - 0x7f8]
call fcn.0041b090
mov eax, dword [ebx]
lea ecx, [ebp - 0x810]
push ecx
lea ecx, [ebp - 0x7f8]
mov byte [ebp - 4], 4
push ecx
mov ecx, ebx
call dword [eax]
mov eax, dword [ebp - 0x7e4]
mov byte [ebp - 4], 3
cmp eax, 8
jb 0x421747
mov ecx, dword [ebp - 0x7f8]
inc eax
cmp eax, 0x7fffffff
ja 0x42190d
add eax, eax
cmp eax, 0x1000
jb 0x42173e
test cl, 0x1f
jne 0x42190d
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x42190d
sub ecx, eax
cmp ecx, 4
jb 0x42190d
cmp ecx, 0x23
ja 0x42190d
mov ecx, eax
push ecx
call fcn.0042773a
add esp, 4
xor eax, eax
mov dword [ebp - 0x7e4], 7
mov word [ebp - 0x7f8], ax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x7fc]
mov dword [ebp - 0x7e8], 0
cmp eax, 8
jb 0x4217c0
mov ecx, dword [ebp - 0x810]
inc eax
cmp eax, 0x7fffffff
ja 0x42190d
add eax, eax
cmp eax, 0x1000
jb 0x4217b7
test cl, 0x1f
jne 0x42190d
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x42190d
sub ecx, eax
cmp ecx, 4
jb 0x42190d
cmp ecx, 0x23
ja 0x42190d
mov ecx, eax
push ecx
call fcn.0042773a
add esp, 4
mov ecx, edi
call fcn.00455270
mov edi, eax
test edi, edi
jne 0x4215c0
mov eax, dword [ebp - 0x824]
mov edi, dword [eax]
lea eax, [ebp - 0x820]
mov esi, dword [edi + 4]
cmp eax, esi
jae 0x421860
mov ecx, dword [edi]
cmp ecx, eax
ja 0x421860
mov edx, dword [edi + 8]
mov ebx, eax
sub ebx, ecx
sar ebx, 2
cmp esi, edx
jne 0x421850
mov eax, edx
sub eax, esi
sar eax, 2
cmp eax, 1
jae 0x421850
sub esi, ecx
mov eax, 0x3fffffff
sar esi, 2
sub eax, esi
cmp eax, 1
jb 0x421912
sub edx, ecx
inc esi
sar edx, 2
mov ecx, 0x3fffffff
mov eax, edx
mov dword [ebp - 0x818], edx
shr eax, 1
sub ecx, eax
add eax, edx
xor edx, edx
cmp ecx, dword [ebp - 0x818]
mov ecx, edi
cmovae edx, eax
cmp edx, esi
cmovae esi, edx
push esi
call fcn.00421ac0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4218c0
mov eax, dword [edi]
mov eax, dword [eax + ebx*4]
mov dword [ecx], eax
jmp 0x4218c0
mov ebx, dword [edi + 8]
cmp esi, ebx
jne 0x4218b1
mov eax, ebx
sub eax, esi
sar eax, 2
cmp eax, 1
jae 0x4218b1
mov ecx, dword [edi]
mov eax, 0x3fffffff
sub esi, ecx
sar esi, 2
sub eax, esi
cmp eax, 1
jb 0x421912
sub ebx, ecx
inc esi
sar ebx, 2
mov ecx, 0x3fffffff
mov eax, ebx
xor edx, edx
shr eax, 1
sub ecx, eax
add eax, ebx
cmp ecx, ebx
mov ecx, edi
cmovae edx, eax
cmp edx, esi
cmovae esi, edx
push esi
call fcn.00421ac0
mov eax, dword [edi + 4]
test eax, eax
je 0x4218c0
mov ecx, dword [ebp - 0x818]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x81c]
add dword [edi + 4], 4
call fcn.00455270
mov edi, eax
mov dword [ebp - 0x81c], eax
test edi, edi
jne 0x421530
mov eax, dword [ebp - 0x824]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
cmp ecx, 1
jae 0x42191c
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x421909
push 1
push eax
call fcn.0042773f
add esp, 8
xor esi, esi
jmp 0x421936
call fcn.004f40a1
push str.vector_T__too_long
call fcn.004276ba
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x421931
push 1
push eax
call fcn.0042773f
add esp, 8
mov esi, 1
mov eax, dword [ebp - 0x840]
mov dword [ebp - method.TiXmlDocument.virtual_0], vtable.TiXmlDocument.0
cmp eax, 0x5835ec
je 0x421956
push eax
call fcn.0042778a
add esp, 4
lea ecx, [ebp - 0x874]
call fcn.004547a0
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.0042774d
mov esp, ebp
pop ebp
ret 8