Function at 0x100d4610
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
mov eax, dword [0x103c4120]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x134], edi
mov edx, dword [edi + 8]
mov esi, edx
mov ecx, dword [edi + 0xc]
mov ebx, edx
mov eax, ecx
shrd esi, eax, 1
shr eax, 1
mov dword [ebp - 0x118], eax
mov eax, ecx
shrd ebx, eax, 3
mov dword [ebp - 0x11c], esi
shr eax, 3
mov dword [ebp - 0x120], ebx
cmp edx, 0xe0
jne 0x100d4670
test ecx, ecx
je 0x100d469c
cmp edx, 0x100
jne 0x100d467c
test ecx, ecx
je 0x100d469c
cmp edx, 0x180
jne 0x100d4688
test ecx, ecx
je 0x100d469c
cmp edx, 0x200
jne 0x100d4e1e
test ecx, ecx
jne 0x100d4e1e
mov al, byte [edi + 0x11]
lea ecx, [edi + 0x17]
mov dl, byte [edi + 0x12]
mov bh, byte [edi + 0x10]
mov bl, byte [edi + 0x13]
mov byte [ebp - 0x106], al
mov al, byte [edi + 0x14]
mov byte [ebp - 0x107], al
mov al, byte [edi + 0x15]
mov byte [ebp - 0x10d], al
mov eax, dword [ebp - 0x120]
movzx eax, al
push eax
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x104]
push ecx
push eax
mov byte [ebp - 0x105], dl
mov dword [ebp - 0x138], ecx
call fcn.101c6b90
mov eax, dword [ebp - 0x130]
add esp, 0xc
cdq
mov dword [ebp - 0x128], eax
mov ecx, edx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x10c], edx
cmp eax, esi
jne 0x100d4724
mov eax, dword [ebp - 0x118]
cmp ecx, eax
je 0x100d4780
mov eax, dword [ebp - 0x114]
mov edi, dword [ebp - 0x118]
lea ebx, [ebx]
push dword [ebp - 0x130]
lea ecx, [ebp - 0x104]
push ecx
add eax, ecx
push eax
call fcn.101c6b90
mov eax, dword [ebp - 0x114]
add esp, 0xc
add eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x10c]
adc ecx, dword [ebp - 0x124]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x10c], ecx
cmp eax, esi
jne 0x100d4730
cmp ecx, edi
jne 0x100d4730
mov edi, dword [ebp - 0x134]
mov eax, dword [ebp - 0x118]
cmp byte [ebp - 0x107], 0
xorps xmm0, xmm0
mov edx, dword [edi + 8]
mov ecx, dword [edi + 0xc]
movlpd qword [ebp - 0x12c], xmm0
je 0x100d4b31
cmp edx, 0xe0
jne 0x100d47aa
test ecx, ecx
je 0x100d47be
cmp edx, 0x180
jne 0x100d48f6
test ecx, ecx
jne 0x100d48f6
test eax, eax
jb 0x100d48f6
ja 0x100d47d0
test esi, esi
je 0x100d48f6
movzx eax, byte [ebp - 0x107]
mov ecx, 8
mov dl, byte [ebp - 0x105]
sub ecx, eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x124], ecx
mov ecx, dword [ebp - 0x12c]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x114], ecx
jmp 0x100d4810
mov al, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x107]
mov dh, al
shr dh, cl
xor dh, byte [ebp - 0x10d]
mov ecx, dword [ebp - 0x124]
shl al, cl
mov byte [ebp - 0x10d], al
movzx ecx, dl
movzx eax, bl
inc bl
movzx esi, bh
inc bh
mov dl, byte [eax + edi + 0x17]
sub dl, byte [ecx + edi + 0x17]
mov cl, byte [ebp - 0x106]
movzx eax, cl
inc cl
sub dl, byte [eax + edi + 0x17]
add dl, byte [esi + edi + 0x17]
movzx eax, dl
mov dl, byte [ebp - 0x105]
inc dl
movzx eax, byte [eax + 0x102b5f18]
add al, dh
mov byte [esi + edi + 0x17], al
xor esi, esi
cmp bh, byte [ebp - 0x120]
movzx eax, bh
cmove eax, esi
cmp cl, byte [ebp - 0x120]
mov bh, al
movzx eax, cl
mov ecx, dword [ebp - 0x120]
cmove eax, esi
cmp dl, cl
mov byte [ebp - 0x106], al
movzx eax, dl
cmove eax, esi
cmp bl, cl
mov ecx, dword [ebp - 0x114]
mov dl, al
movzx eax, bl
cmove eax, esi
mov byte [ebp - 0x105], dl
mov esi, dword [ebp - 0x10c]
add ecx, 1
mov bl, al
mov dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x118]
adc esi, 0
mov dword [ebp - 0x10c], esi
cmp esi, eax
jb 0x100d4810
mov esi, dword [ebp - 0x11c]
ja 0x100d4914
cmp ecx, esi
jb 0x100d4810
jmp 0x100d4914
mov ecx, dword [ebp - 0x128]
mov dl, byte [ebp - 0x105]
mov dword [ebp - 0x10c], ecx
mov ecx, dword [ebp - 0x12c]
mov dword [ebp - 0x114], ecx
cmp dword [edi + 8], 0x100
jne 0x100d4a1a
cmp dword [edi + 0xc], 0
jne 0x100d4a1a
cmp dword [ebp - 0x10c], eax
ja 0x100d4a1a
jb 0x100d4941
cmp ecx, esi
jae 0x100d4a1a
movzx eax, byte [ebp - 0x107]
mov esi, 8
sub esi, eax
mov dword [ebp - 0x124], esi
jmp 0x100d4960
mov al, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x107]
mov dh, al
shr dh, cl
xor dh, byte [ebp - 0x10d]
mov ecx, dword [ebp - 0x124]
shl al, cl
mov byte [ebp - 0x10d], al
movzx ecx, dl
movzx eax, bl
inc bl
movzx esi, bh
and bl, 0x1f
inc bh
and bh, 0x1f
mov dl, byte [eax + edi + 0x17]
sub dl, byte [ecx + edi + 0x17]
mov cl, byte [ebp - 0x106]
movzx eax, cl
inc cl
and cl, 0x1f
mov byte [ebp - 0x106], cl
mov ecx, dword [ebp - 0x114]
sub dl, byte [eax + edi + 0x17]
add dl, byte [esi + edi + 0x17]
movzx eax, dl
mov dl, byte [ebp - 0x105]
inc dl
and dl, 0x1f
movzx eax, byte [eax + 0x102b5f18]
add al, dh
mov byte [ebp - 0x105], dl
mov byte [esi + edi + 0x17], al
add ecx, 1
mov esi, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x118]
adc esi, 0
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], esi
cmp esi, eax
jb 0x100d4960
ja 0x100d4a20
cmp ecx, dword [ebp - 0x11c]
jb 0x100d4960
jmp 0x100d4a20
mov esi, dword [ebp - 0x10c]
cmp dword [edi + 8], 0x200
jne 0x100d4def
cmp dword [edi + 0xc], 0
jne 0x100d4def
cmp esi, eax
ja 0x100d4def
jb 0x100d4a4d
cmp ecx, dword [ebp - 0x11c]
jae 0x100d4def
movzx eax, byte [ebp - 0x107]
mov esi, 8
sub esi, eax
mov dword [ebp - 0x120], esi
jmp 0x100d4a70
mov al, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp - 0x107]
mov dh, al
shr dh, cl
mov ecx, esi
xor dh, byte [ebp - 0x10d]
shl al, cl
mov byte [ebp - 0x10d], al
movzx ecx, dl
movzx eax, bl
inc bl
movzx esi, bh
and bl, 0x3f
inc bh
and bh, 0x3f
mov dl, byte [eax + edi + 0x17]
sub dl, byte [ecx + edi + 0x17]
mov cl, byte [ebp - 0x106]
movzx eax, cl
inc cl
and cl, 0x3f
mov byte [ebp - 0x106], cl
mov ecx, dword [ebp - 0x114]
sub dl, byte [eax + edi + 0x17]
add dl, byte [esi + edi + 0x17]
movzx eax, dl
mov dl, byte [ebp - 0x105]
inc dl
and dl, 0x3f
movzx eax, byte [eax + 0x102b5f18]
add al, dh
mov byte [ebp - 0x105], dl
mov byte [esi + edi + 0x17], al
add ecx, 1
mov eax, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x120]
adc eax, 0
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], eax
cmp eax, dword [ebp - 0x118]
jb 0x100d4a70
ja 0x100d4def
cmp ecx, dword [ebp - 0x11c]
jb 0x100d4a70
jmp 0x100d4def
cmp edx, 0xe0
jne 0x100d4b3d
test ecx, ecx
je 0x100d4b51
cmp edx, 0x180
jne 0x100d4c45
test ecx, ecx
jne 0x100d4c45
test eax, eax
jb 0x100d4c45
ja 0x100d4b63
test esi, esi
je 0x100d4c45
mov eax, dword [ebp - 0x128]
mov dh, byte [ebp - 0x106]
mov cl, byte [ebp - 0x105]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x114], eax
movzx eax, bl
inc bl
movzx ecx, cl
movzx esi, bh
inc bh
mov dl, byte [eax + edi + 0x17]
sub dl, byte [ecx + edi + 0x17]
mov ecx, dword [ebp - 0x114]
movzx eax, dh
inc dh
sub dl, byte [eax + edi + 0x17]
add dl, byte [esi + edi + 0x17]
movzx eax, dl
mov dl, byte [ebp - 0x105]
inc dl
mov al, byte [eax + 0x102b5f18]
add al, byte [ebp + ecx - 0x104]
mov ecx, dword [ebp - 0x120]
mov byte [esi + edi + 0x17], al
xor esi, esi
cmp bh, cl
mov edi, dword [ebp - 0x134]
movzx eax, bh
cmove eax, esi
cmp dh, cl
mov bh, al
movzx eax, dh
cmove eax, esi
cmp dl, cl
mov dh, al
movzx eax, dl
cmove eax, esi
cmp bl, byte [ebp - 0x120]
mov cl, al
movzx eax, bl
cmove eax, esi
mov byte [ebp - 0x105], cl
mov esi, dword [ebp - 0x10c]
mov bl, al
mov eax, dword [ebp - 0x114]
add eax, 1
mov dword [ebp - 0x114], eax
adc esi, 0
mov dword [ebp - 0x10c], esi
cmp esi, dword [ebp - 0x118]
jb 0x100d4b87
ja 0x100d4c69
cmp eax, dword [ebp - 0x11c]
jb 0x100d4b87
jmp 0x100d4c69
mov eax, dword [ebp - 0x128]
mov dh, byte [ebp - 0x106]
mov cl, byte [ebp - 0x105]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x114], eax
cmp dword [edi + 8], 0x100
jne 0x100d4d2e
cmp dword [edi + 0xc], 0
jne 0x100d4d2e
mov esi, dword [ebp - 0x118]
cmp dword [ebp - 0x10c], esi
mov esi, dword [ebp - 0x11c]
ja 0x100d4d2e
jb 0x100d4ca2
cmp eax, esi
jae 0x100d4d2e
movzx eax, bl
inc bl
movzx ecx, cl
and bl, 0x1f
movzx esi, bh
inc bh
and bh, 0x1f
mov dl, byte [eax + edi + 0x17]
sub dl, byte [ecx + edi + 0x17]
mov ecx, dword [ebp - 0x114]
movzx eax, dh
inc dh
and dh, 0x1f
sub dl, byte [eax + edi + 0x17]
add dl, byte [esi + edi + 0x17]
movzx eax, dl
mov al, byte [eax + 0x102b5f18]
add al, byte [ebp + ecx - 0x104]
mov cl, byte [ebp - 0x105]
mov byte [esi + edi + 0x17], al
inc cl
mov eax, dword [ebp - 0x114]
and cl, 0x1f
mov esi, dword [ebp - 0x10c]
add eax, 1
mov byte [ebp - 0x105], cl
adc esi, 0
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x10c], esi
cmp esi, dword [ebp - 0x118]
jb 0x100d4ca2
ja 0x100d4d34
cmp eax, dword [ebp - 0x11c]
jb 0x100d4ca2
jmp 0x100d4d34
mov esi, dword [ebp - 0x10c]
cmp dword [edi + 8], 0x200
jne 0x100d4def
cmp dword [edi + 0xc], 0
jne 0x100d4def
cmp esi, dword [ebp - 0x118]
ja 0x100d4def
jb 0x100d4d65
cmp eax, dword [ebp - 0x11c]
jae 0x100d4def
movzx eax, bl
inc bl
movzx ecx, cl
and bl, 0x3f
movzx esi, bh
inc bh
and bh, 0x3f
mov dl, byte [eax + edi + 0x17]
sub dl, byte [ecx + edi + 0x17]
mov ecx, dword [ebp - 0x114]
movzx eax, dh
inc dh
and dh, 0x3f
sub dl, byte [eax + edi + 0x17]
add dl, byte [esi + edi + 0x17]
movzx eax, dl
mov al, byte [eax + 0x102b5f18]
add al, byte [ebp + ecx - 0x104]
mov cl, byte [ebp - 0x105]
mov byte [esi + edi + 0x17], al
inc cl
mov eax, dword [ebp - 0x114]
and cl, 0x3f
mov esi, dword [ebp - 0x10c]
add eax, 1
mov byte [ebp - 0x105], cl
adc esi, 0
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x10c], esi
cmp esi, dword [ebp - 0x118]
jb 0x100d4d65
ja 0x100d4def
cmp eax, dword [ebp - 0x11c]
jb 0x100d4d65
push dword [ebp - 0x130]
push dword [ebp - 0x138]
push dword [ebp - 0x13c]
call fcn.101c6b90
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101c6a5b
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
mov eax, 2
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101c6a5b
mov esp, ebp
pop ebp
ret 4