Function at 0x1055086
Capabilities:
Encode data using xor

Disassembly:
pushfd
push ebp
mov ebp, esp
sub esp, 0x88
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x84], ebx
lea eax, [ebp + 4]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x78], edi
mov ebx, dword [eax + 4]
sub eax, 4
mov esi, dword [0x1116588]
mov dword [ebp - 0x50], eax
mov eax, dword [ebx]
and eax, 0xfffffff
xor edx, edx
lea ecx, [esi + eax - 1]
mov eax, ecx
div esi
sub ecx, edx
mov eax, dword [0x1116588]
mov dword [ebp - 0x14], ecx
mov eax, dword [0x1011bb0]
mov dword [ebp - 0x44], eax
mov eax, dword [0x1116588]
mov eax, dword [0x1011bb0]
test eax, eax
je 0x1055167
mov eax, dword [0x1011bb0]
xor edi, edi
dec eax
lea ecx, [eax + 1]
mov edx, ecx
xor eax, eax
test ecx, ecx
je 0x1055124
mov esi, dword [0x12d47a4]
imul esi, esi, 0x343fd
add esi, 0x269ec3
mov dword [0x12d47a4], esi
shr esi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, esi
test edx, edx
jne 0x10550fd
xor edx, edx
div ecx
cmp dword [ebp - 0x44], 0
jbe 0x1055161
lea esi, [edx*4 + 0x12d4c14]
inc edi
mov eax, 0xcb65
mov ecx, 0xffff349a
lock cmpxchg dword [esi], ecx
cmp eax, 0xcb65
je 0x10552ef
mov ecx, dword [0x1011bb0]
lea eax, [edx + 1]
xor edx, edx
div ecx
cmp edi, dword [ebp - 0x44]
jb 0x105512e
xor edi, edi
test edi, edi
jne 0x10551dd
call dword [fcn.01001238]
mov esi, eax
xor edi, edi
push 0x40
inc edi
push 0x1000
push dword [ebp - 0x14]
push 0
call dword [0x1001198]
test eax, eax
jne 0x1055303
push eax
call dword [0x10010c8]
cmp edi, 0x11
jb 0x1055171
xor edi, edi
cmp dword [0x12ef80c], edi
ja 0x10551aa
test edi, 3
je 0x10551be
test edi, edi
je 0x10551bc
push 0x8000
push 0
push edi
call dword [0x1001194]
xor edi, edi
push esi
call dword [0x100118c]
test edi, edi
je 0x10550d4
mov ecx, dword [ebp - 0x14]
test ecx, ecx
mov eax, edi
je 0x10551dd
mov byte [eax], 0
inc eax
dec ecx
jne 0x10551d6
mov eax, 0xbdbf39cf
mov esi, 0x1000000
mov eax, dword [ebx]
mov ecx, eax
shr ecx, 0x1d
lea ecx, [ecx + ebx + 8]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], ecx
and eax, 0xfffffff
lea ebx, [ecx + eax]
mov ecx, dword [0x1116588]
sub ecx, eax
sub dword [ebp - 0x40], esi
inc ecx
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x38], ecx
test ecx, ecx
je 0x1055245
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x38], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x38], 0
jne 0x105521b
xor edx, edx
div ecx
lea eax, [edx + edi]
push eax
push dword [ebp - 0x4c]
mov dword [ebp - 0x38], eax
push dword [ebp - 0x40]
mov eax, 0x2ad09ae2
lea eax, [ebp - 0x70]
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
push eax
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0xd], 0
mov eax, 0xe9a4f007
mov eax, 0xfffffff
mov ecx, dword [0x11e47bc]
and dword [ebp - 0x28], 0
and dword [ebp - 0x24], 0
and ebx, eax
and edi, eax
add esp, 0x10
add edi, esi
mov dword [ebp - 0x18], ebx
mov eax, esi
mov ebx, 0xfffff000
sub eax, ecx
mov dword [ebp - 0x34], eax
jne 0x105530a
xor esi, esi
cmp dword [ebp - 0x18], esi
jbe 0x10554fd
mov ebx, 0x328f5a12
movzx ecx, byte [esi + edi]
sub ecx, ebx
add dword [ebp - 0x28], ecx
add ecx, dword [ebp - 0x24]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x10552b0
jmp 0x10554fd
mov edi, dword [0x1116588]
imul edi, edx
lea edi, [edi + section..data]
jmp 0x1055163
mov edi, eax
jmp 0x105519a
mov edx, dword [0x100003c]
lea edx, [edx + 0x10000a0]
mov eax, dword [ebp - 0x18]
mov ecx, edi
add eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [edx]
add eax, esi
sub ecx, esi
mov edx, dword [edx + 4]
mov dword [ebp - 0x2c], edx
mov edx, ecx
mov esi, ecx
and edx, ebx
sub esi, edx
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x18]
add ecx, esi
mov esi, ecx
and esi, ebx
sub ecx, esi
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x64], esi
mov esi, eax
add ecx, eax
mov dword [ebp - 0x5c], ecx
cmp eax, ecx
je 0x1055361
cmp dword [esi], edx
jae 0x1055361
add esi, dword [esi + 4]
cmp esi, ecx
jne 0x1055356
and dword [ebp - 0x54], 0
cmp esi, ecx
je 0x1055392
cmp dword [esi], edx
jne 0x1055392
mov eax, dword [esi + 4]
sub eax, 8
shr eax, 1
je 0x1055392
lea ecx, [esi + 8]
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x14]
jae 0x1055392
inc dword [ebp - 0x54]
inc ecx
inc ecx
cmp dword [ebp - 0x54], eax
jne 0x105537a
mov ebx, 0x328f5a12
mov ecx, 0xfff
cmp esi, dword [ebp - 0x5c]
je 0x10554b7
mov eax, dword [esi]
cmp eax, dword [ebp - 0x64]
ja 0x10554b7
mov edx, dword [ebp - 0x54]
mov eax, dword [esi + 4]
add eax, 0xfffffff8
shr eax, 1
cmp edx, eax
jne 0x10553da
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x5c]
je 0x10554b7
mov eax, dword [ebp - 0x64]
cmp dword [esi], eax
ja 0x10554b7
xor edx, edx
jmp 0x10553b3
mov eax, dword [ebp - 0x64]
cmp dword [esi], eax
jne 0x10553f1
movzx eax, word [esi + edx*2 + 8]
and eax, ecx
cmp eax, dword [ebp - 0x60]
jae 0x10554b7
mov eax, edx
inc edx
mov dword [ebp - 0x54], edx
mov edx, 0xf000
test word [esi + eax*2 + 8], dx
je 0x105539c
movzx eax, word [esi + eax*2 + 8]
and dword [ebp - 0x18], 0
and eax, ecx
mov ecx, dword [esi]
lea eax, [eax + ecx + 0x1000000]
mov dword [ebp - 0x30], eax
sub dword [ebp - 0x30], edi
mov dword [ebp - 0x14], eax
je 0x1055464
mov eax, dword [ebp - 0x18]
movzx ecx, byte [edi + eax]
sub ecx, ebx
add dword [ebp - 0x28], ecx
add ecx, dword [ebp - 0x24]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x30]
jb 0x1055422
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x34]
xor edi, edi
mov dword [ebp - 0x68], eax
movzx ecx, byte [ebp + edi - 0x68]
sub ecx, ebx
add dword [ebp - 0x28], ecx
add ecx, dword [ebp - 0x24]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
inc edi
cmp edi, 4
jb 0x1055471
mov edi, dword [ebp - 0x14]
add edi, 4
jmp 0x1055397
xor esi, esi
mov eax, dword [ebp - 0x20]
sub eax, edi
mov dword [ebp - 0x2c], eax
je 0x10554fd
movzx ecx, byte [esi + edi]
sub ecx, ebx
add dword [ebp - 0x28], ecx
add ecx, dword [ebp - 0x24]
mov eax, ecx
imul eax, eax, 0x41b
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, 0xcd70a5ee
mul ecx
add eax, edx
imul eax, eax, 0xcd70a5ee
ror eax, 0x1b
add dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
inc esi
cmp esi, dword [ebp - 0x2c]
jb 0x10554c3
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x28]
mov byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 8
jb 0x1055501
mov eax, 0x499f51a5
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x4c]
and eax, 7
mov dword [ebp - 0x2c], eax
je 0x10556da
mov esi, dword [ebp - 0x40]
not esi
cmp eax, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x1c], ebx
jle 0x105556c
push 0x38
pop edx
movzx ebx, byte [edi]
cmp dword [ebp - 0x1c], 4
jge 0x1055559
lea ecx, [edx - 0x20]
shl ebx, cl
or dword [ebp - 0x34], ebx
jmp 0x1055560
mov ecx, edx
shl ebx, cl
or dword [ebp - 0x18], ebx
inc edi
inc dword [ebp - 0x1c]
sub edx, 8
cmp dword [ebp - 0x1c], eax
jl 0x1055546
movzx edx, word [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], edx
sub ecx, esi
rol ecx, 0xc
imul edx, ecx
movzx ecx, word [ebp - 0xc]
mov dword [ebp - 0x14], ecx
mov eax, esi
ror eax, 0x10
xor eax, edx
xor eax, dword [ebp - 0x40]
movzx edx, word [ebp - 0xa]
mov ebx, eax
xor ecx, eax
imul ecx, edx
ror ebx, 5
xor ebx, ecx
xor esi, ebx
mov ecx, esi
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
mov edx, esi
sub ecx, dword [ebp - 8]
ror ecx, 0xb
imul ebx, ecx
rol edx, 7
add edx, ebx
movzx ecx, word [ebp - 6]
xor eax, edx
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
xor edx, eax
imul edx, ecx
mov dword [ebp - 0x30], ecx
mov ecx, eax
shr ecx, 5
xor edx, ecx
xor esi, edx
mov edx, esi
mov ecx, esi
sub ecx, dword [ebp - 0xc]
rol ecx, 0xb
imul ebx, ecx
ror edx, 0xe
xor edx, ebx
mov ebx, dword [ebp - 0x1c]
xor eax, edx
mov edx, eax
mov ecx, eax
sub ecx, dword [ebp - 8]
ror ecx, 1
imul ebx, ecx
rol edx, 0xb
mov ecx, dword [ebp - 0x30]
xor edx, ebx
mov ebx, dword [ebp - 0x14]
xor esi, edx
mov edx, esi
xor ecx, esi
rol ecx, 7
imul ebx, ecx
ror edx, 2
mov ecx, dword [ebp - 0xc]
xor edx, ebx
mov ebx, ecx
xor eax, edx
mov edx, dword [ebp - 8]
xor edx, eax
sub ebx, edx
mov edx, dword [ebp - 0x20]
xor esi, ebx
add ecx, esi
rol ecx, 7
mov ebx, esi
imul edx, ecx
mov ecx, dword [ebp - 0x1c]
ror ebx, 3
sub edx, ebx
xor eax, edx
mov edx, dword [ebp - 8]
xor edx, eax
rol edx, 6
imul ecx, edx
mov edx, eax
shr edx, 8
sub ecx, edx
mov edx, dword [ebp - 0x14]
xor esi, ecx
mov ebx, esi
mov ecx, dword [ebp - 8]
and dword [ebp - 0x1c], 0
xor ecx, esi
rol ecx, 2
imul edx, ecx
xor esi, dword [ebp - 0x18]
rol ebx, 0xf
add ebx, edx
mov ecx, esi
xor ebx, dword [ebp - 0x34]
xor eax, ebx
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
test ebx, ebx
jle 0x10556b0
cmp dword [ebp - 0x1c], 4
jge 0x1055697
rol dword [ebp - 0x20], 8
mov dl, byte [ebp - 0x20]
mov ebx, dword [ebp - 0x3c]
inc dword [ebp - 0x3c]
xor byte [ebp - 0xd], dl
mov byte [ebx], dl
jmp 0x10556a5
mov edx, dword [ebp - 0x3c]
inc dword [ebp - 0x3c]
rol ecx, 8
xor byte [ebp - 0xd], cl
mov byte [edx], cl
inc dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x2c]
cmp dword [ebp - 0x1c], ebx
jl 0x105567d
add ebx, 0xfffffffc
test ebx, ebx
jle 0x10556c7
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr esi, cl
shl esi, cl
mov edx, esi
jmp 0x10556e9
xor edx, edx
test ebx, ebx
jge 0x10556e9
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x10556e9
xor edx, edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
not eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x4c]
shr ecx, 3
test ecx, ecx
jbe 0x10558aa
movzx esi, word [ebp - 6]
mov dword [ebp - 0x30], esi
movzx esi, word [ebp - 0xa]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x2c], ecx
movzx ecx, byte [edi]
movzx esi, byte [edi + 1]
shl ecx, 8
or ecx, esi
shl ecx, 8
movzx esi, byte [edi + 2]
or ecx, esi
movzx esi, byte [edi + 3]
shl ecx, 8
or ecx, esi
movzx esi, byte [edi + 5]
mov dword [ebp - 0x20], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
or ecx, esi
shl ecx, 8
movzx esi, byte [edi + 6]
or ecx, esi
movzx esi, byte [edi + 7]
shl ecx, 8
or ecx, esi
movzx esi, word [ebp - 8]
mov dword [ebp - 0x14], ecx
xor edx, ecx
mov ebx, edx
mov ecx, dword [ebp - 0xc]
sub ecx, edx
add edi, 8
rol ecx, 0xc
imul esi, ecx
movzx ecx, word [ebp - 0xc]
ror ebx, 0x10
xor ebx, esi
xor ebx, dword [ebp - 0x20]
xor eax, ebx
mov esi, eax
xor ecx, eax
imul ecx, dword [ebp - 0x1c]
ror esi, 5
xor esi, ecx
xor edx, esi
mov ecx, edx
sub ecx, dword [ebp - 8]
movzx esi, word [ebp - 0xc]
ror ecx, 0xb
mov ebx, edx
imul esi, ecx
rol ebx, 7
add ebx, esi
movzx esi, word [ebp - 8]
mov ecx, esi
xor eax, ebx
mov ebx, eax
xor ecx, eax
imul ecx, dword [ebp - 0x30]
shr ebx, 5
xor ecx, ebx
xor edx, ecx
mov ecx, edx
mov ebx, edx
sub ecx, dword [ebp - 0xc]
rol ecx, 0xb
imul esi, ecx
ror ebx, 0xe
xor ebx, esi
xor eax, ebx
mov esi, eax
mov ebx, dword [ebp - 0x1c]
mov ecx, eax
sub ecx, dword [ebp - 8]
ror ecx, 1
imul ebx, ecx
mov ecx, dword [ebp - 0x30]
rol esi, 0xb
xor esi, ebx
xor edx, esi
xor ecx, edx
mov ebx, edx
movzx esi, word [ebp - 0xc]
rol ecx, 7
ror ebx, 2
imul esi, ecx
mov ecx, dword [ebp - 0xc]
xor ebx, esi
mov esi, dword [ebp - 8]
xor eax, ebx
mov ebx, ecx
xor esi, eax
sub ebx, esi
xor edx, ebx
movzx esi, word [ebp - 8]
mov ebx, edx
add ecx, edx
rol ecx, 7
imul esi, ecx
mov ecx, dword [ebp - 8]
ror ebx, 3
sub esi, ebx
xor eax, esi
mov esi, dword [ebp - 0x1c]
xor ecx, eax
rol ecx, 6
imul esi, ecx
mov ecx, eax
shr ecx, 8
sub esi, ecx
xor edx, esi
mov ebx, edx
movzx esi, word [ebp - 0xc]
mov ecx, dword [ebp - 8]
xor ecx, edx
rol ecx, 2
imul esi, ecx
mov cl, byte [ebp - 0xd]
xor edx, dword [ebp - 0x18]
rol ebx, 0xf
add ebx, esi
xor ebx, dword [ebp - 0x34]
xor eax, ebx
xor cl, al
xor cl, dl
mov esi, dword [ebp - 0x3c]
mov byte [esi + 3], al
ror eax, 8
xor cl, al
mov byte [esi + 7], dl
ror edx, 8
xor cl, dl
mov byte [esi + 2], al
mov byte [esi + 6], dl
ror eax, 8
mov byte [esi + 1], al
xor cl, al
ror edx, 8
xor cl, dl
mov byte [esi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0xd], cl
mov ecx, dword [ebp - 0x20]
mov byte [esi], al
mov byte [esi + 4], dl
add esi, 8
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x14]
dec dword [ebp - 0x2c]
ror eax, 8
ror edx, 8
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x3c], esi
jne 0x1055708
movzx ecx, byte [ebp - 0xd]
mov eax, dword [ebp - 0x48]
movzx eax, byte [eax + 8]
sub ecx, eax
je 0x1055942
call fcn.01244f80
mov edi, eax
mov eax, 0xfffff000
mov edx, dword [ebp - 0x50]
mov dword [edx + 8], 0x10d8814
lea ecx, [edx + 0xc]
and ecx, 0xfffffffc
and edi, eax
lea esi, [ecx + 0xfff]
and esi, eax
mov edx, 0xffff
xor eax, eax
mov ebx, dword [0x12d47a4]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x12d47a4], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x10558ea
mov ebx, 0xffff
div ebx
mov eax, ecx
inc edx
cmp ecx, esi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x48], 0
jae 0x1055938
mov ecx, dword [ebp - 0x48]
mov dword [eax], ecx
add eax, 4
cmp eax, esi
jb 0x105592c
mov eax, 0x10d8814
jmp 0x1055a13
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x38]
mov edx, dword [0x11e47bc]
mov dword [ebp - 0x14], eax
mov ecx, 0x1000000
sub ecx, edx
mov dword [ebp - 0x2c], ecx
jne 0x1055965
test eax, eax
je 0x1055a06
mov esi, dword [ebp - 0x38]
sub esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x40]
mov ecx, dword [0x11efd70]
mov eax, dword [ebp - 0x4c]
add eax, ebx
mov dword [ebp - 0x48], eax
xor edi, edi
dec ecx
js 0x10559a8
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp ebx, edx
jae 0x105599f
lea ecx, [eax - 1]
jmp 0x10559a4
jbe 0x10559ac
lea edi, [eax + 1]
cmp ecx, edi
jge 0x1055981
mov ebx, edi
jmp 0x10559fe
mov ebx, eax
jmp 0x10559fe
mov eax, dword [ebx*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x48]
jae 0x1055a06
lea edi, [ecx + esi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x10559f1
dec ecx
je 0x10559ec
dec ecx
jne 0x10559f7
mov edx, dword [ebp - 0x2c]
jmp 0x10559f7
mov edx, dword [ebp - 0x14]
jmp 0x10559f7
mov edx, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x14]
dec eax
dec eax
jne 0x10559fd
add dword [edi], edx
inc ebx
cmp ebx, dword [0x11efd70]
jb 0x10559b0
mov eax, dword [0x1116588]
mov eax, 0xad0b8105
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x88]
mov esi, dword [ebp - 0x80]
mov edi, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x84]
mov esp, ebp
pop ebp
popfd
ret