Function at 0xdfba10
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4e4
mov dword [ebp - 0x28], ecx
xor ecx, ecx
mov dword [ebp - 0x90], edx
xor eax, eax
mov dword [ebp - 0x4c], 0x3f
mov dword [ebp - 0x48], 0x41
mov dword [ebp - 0x44], 0xffffff80
sub ecx, dword [ebp + eax*4 - 0x4c]
inc eax
cmp eax, 3
jl 0xdfba3b
push ebx
push esi
push edi
push 0xb
pop eax
mov dword [ebp - 0xc], ecx
lea edi, [ebp - 0x54]
push 5
pop ecx
mov esi, 0xdd301c
mov byte [ebp - 0x18], al
rep movsd dword es:[edi], dword [esi]
xor edi, edi
mov dword [ebp - 0x24], 0xadd60738
mov dword [ebp - 0x20], 0x36ddaf3d
xor eax, eax
mov dword [ebp - 0x1c], 0x3e927ba8
mov dword [ebp - 0x17], 0x12099796
mov dword [ebp - 0x13], 0xe77c5263
mov word [ebp - 0xf], 0xb879
mov byte [ebp - 0xd], 0xe4
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0xdfba8f
push 0x13
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
mov eax, esi
div ecx
movzx ecx, bl
push 0x13
movzx eax, byte [ebp + edx - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0xdfbaa3
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x190]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
mov byte [ebp + ebx - 0x190], cl
movzx eax, byte [ebp + edi - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x24]
mov byte [ebp + esi - 0x1ac], al
inc esi
cmp esi, 0x18
jb 0xdfbae6
mov esi, 0xdd3030
mov byte [ebp - 0x194], 0
lea edi, [ebp - 0x54]
mov dword [ebp - 4], 0x901dfe7c
xor ebx, ebx
xor eax, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0xdfbb55
mov eax, 0xe1a788
mov dword [ebp - 0x78], eax
mov ecx, eax
mov al, byte [0xe1a788]
jmp 0xdfbb7e
sub al, 0x30
cmp al, 9
ja 0xdfbbf0
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdfbb75
mov esi, dword [0xe1a8a4]
sub esi, 0x3e48fd38
call fcn.00dfb6e9
xor edi, edi
mov dl, byte [ebp + edi - 0x190]
mov eax, edi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x54]
add eax, ebx
add ecx, eax
movzx ebx, cl
mov al, byte [ebp + ebx - 0x190]
mov byte [ebp + edi - 0x190], al
inc edi
mov byte [ebp + ebx - 0x190], dl
cmp edi, 0x100
jb 0xdfbb95
mov al, byte [0xe1a738]
xor edi, edi
mov byte [ebp - 5], al
test al, al
je 0xdfbc19
inc edi
cmp edi, 0x26b4
jl 0xdfbbfe
cmp byte [edi + 0xe1a738], 0
jne 0xdfbbdc
jmp 0xdfbc11
mov esi, dword [0xe1a8a4]
sub esi, 0x39451ca7
jmp 0xdfbb88
call fcn.00dfb84c
add esi, 0x116c6d19
cmp edi, 0xaa3
jle 0xdfbc19
and esi, 0x85db9a9b
jmp 0xdfbc1f
or esi, 0x1f804836
mov edi, 0xdd31d0
add esi, 0x692da2ed
xor ebx, ebx
mov dword [ebp - 0x7c], edi
xor edx, edx
xor ecx, ecx
lea eax, [edx + 1]
movzx edx, al
mov al, byte [ebp + edx - 0x190]
mov byte [ebp - 0x29], al
movzx eax, al
mov dword [ebp - 0x30], eax
add eax, ebx
movzx ebx, al
mov al, 0x6f
sub al, 0x30
cmp al, 9
ja 0xdfbc5f
inc edi
mov al, byte [edi]
test al, al
jne 0xdfbc50
jmp 0xdfbc65
sub esi, 0x45b523ef
mov al, byte [ebp + ebx - 0x190]
imul edi, esi, 0xd735f421
mov esi, 0xe1a788
mov byte [ebp + edx - 0x190], al
mov al, byte [0xe1a788]
jmp 0xdfbc8e
sub al, 0x30
cmp al, 9
ja 0xdfbc94
inc esi
mov al, byte [esi]
test al, al
jne 0xdfbc85
jmp 0xdfbc9a
or edi, 0xa9188a53
mov al, byte [ebp - 0x29]
mov byte [ebp + ebx - 0x190], al
movzx eax, byte [ebp + edx - 0x190]
add eax, dword [ebp - 0x30]
movzx eax, al
imul esi, edi, 0x67153f2f
mov edi, 0xdd31d0
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + ecx - 4]
mov byte [ebp + ecx - 0x84], al
inc ecx
cmp ecx, 4
jb 0xdfbc33
xor ecx, ecx
mov byte [ebp - 0x80], 0
mov dword [ebp - 0x4c], 0x25
xor eax, eax
mov dword [ebp - 0x48], 0x2a
mov dword [ebp - 0x44], 0xffffffb1
sub ecx, dword [ebp + eax*4 - 0x4c]
inc eax
cmp eax, 3
jl 0xdfbcf6
push 9
mov dword [ebp - 0x74], ecx
mov al, 0x6f
mov ecx, 0xdd31d0
pop edx
sub al, 0x30
cmp al, dl
ja 0xdfbd1c
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdfbd0d
jmp 0xdfbd22
sub esi, 0x72e3c68c
mov dword [ebp - 0x48], 0x49
xorps xmm1, xmm1
mov dword [ebp - 0x44], 0xffffff76
xor eax, eax
mov dword [ebp - 0x50], 0x22
xorps xmm2, xmm2
mov dword [ebp - 0x4c], 0x1f
or esi, 0xccd27f0f
movups xmm0, xmmword [ebp - 0x50]
push 0x50
pop ecx
psubd xmm1, xmm0
mov dword [ebp - 0x48], edx
movaps xmm0, xmm1
mov dword [ebp - 0x44], 0xffffffa8
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
push 2
movd dword [ebp - 0x70], xmm1
pop edx
add ecx, dword [ebp + eax*4 - 0x48]
or esi, 0xc46e9e49
inc eax
cmp eax, edx
jl 0xdfbd81
push 0x17
mov dword [ebp - 0x44], ecx
xor eax, eax
pop ecx
push 0xb
pop ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], 0xffffffe0
add ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, edx
jl 0xdfbda5
push 0x34
mov dword [ebp - 0x10], ecx
xor eax, eax
pop ecx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], 0x42
mov dword [ebp - 0x38], 0x4f
mov dword [ebp - 0x34], 0x3d
mov dword [ebp - 0x30], 0xffffff57
sub ecx, dword [ebp + eax*4 - 0x40]
inc eax
cmp eax, 5
jl 0xdfbdd5
mov dword [ebp - 0x3c], 0x5c
movaps xmm1, xmm2
mov dword [ebp - 0x38], 0x31
mov dword [ebp - 0x34], 0x1d
mov dword [ebp - 0x30], 0xffffff9e
movups xmm0, xmmword [ebp - 0x3c]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], 0x3a
psubd xmm1, xmm0
mov dword [ebp - 0x30], 0xffffffec
movaps xmm0, xmm1
mov dword [ebp - 0x3c], 0x58
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x8c], ecx
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x3c]
push 0x48
movd eax, xmm1
movaps xmm1, xmm2
psubd xmm1, xmm0
mov dword [ebp - 0x38], 0x63
movaps xmm0, xmm1
mov dword [ebp - 0x34], 0x13
psrldq xmm0, 8
add eax, 0x50
paddd xmm1, xmm0
mov dword [ebp - 0x88], eax
movups xmm0, xmm1
mov dword [ebp - 0x30], 0xffffff62
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edi
add eax, 0x90
xor ebx, ebx
mov dword [ebp - 4], eax
xor eax, eax
inc eax
cmp eax, 0x1a34
jl 0xdfbeb9
cmp byte [eax + 0xdd31d0], 0
jne 0xdfbe94
cmp eax, 0x1cec
jle 0xdfbebf
call fcn.00dfb5df
xor esi, 0xa0cba6bf
jmp 0xdfbec5
sub esi, 0x28cdf7bf
and esi, 0x763439f1
add esi, 0x1e97cf70
call fcn.00dfb6e9
add edi, dword [ebp + ebx*4 - 0x38]
inc ebx
cmp ebx, 3
jl 0xdfbe92
mov cl, byte [ebp - 5]
mov eax, 0xe1a738
push 0x5f
pop ebx
jmp 0xdfbef2
sub cl, 0x30
cmp cl, 9
ja 0xdfbef8
inc eax
mov cl, byte [eax]
test cl, cl
jne 0xdfbee7
jmp 0xdfbefe
xor esi, 0x94d6e826
xor esi, 0xec8f2ed2
call fcn.00dfb84c
movzx eax, byte [0xe1a788]
mov edx, 0x1ae5
mov dword [ebp - 0x34], 0x62
mov ecx, 0xe1a788
mov dword [ebp - 0x30], 0xffffff3f
test eax, eax
je 0xdfbf46
add edx, eax
inc ecx
cmp edx, 0x844
ja 0xdfbf40
movzx eax, byte [ecx]
test eax, eax
jne 0xdfbf2c
jmp 0xdfbf4f
or esi, 0x42e8aace
push ecx
mov edx, esi
call fcn.00dfb572
pop ecx
add esi, 0xfd91916
xor eax, eax
mov dword [0xe1a8a4], esi
add ebx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 2
jl 0xdfbf5d
or edi, dword [ebp - 4]
or edi, dword [ebp - 0x88]
or edi, dword [ebp - 0x8c]
or edi, dword [ebp - 0x10]
or edi, dword [ebp - 0x44]
mov dword [ebp - 0x30], 0xffffff83
and edi, 0xffefffff
mov dword [ebp - 0x3c], 0x25
or edi, 0xf0000
mov dword [ebp - 0x38], 0x3d
mov dword [ebp - 0x34], 0x1b
movups xmm0, xmmword [ebp - 0x3c]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x84]
psubd xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd eax, xmm2
push eax
lea eax, [ebp - 0x30]
push eax
push ebx
push edi
push 0
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x28]
push 0x80000001
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x1ac]
call fcn.00dee9ca
call eax
test eax, eax
jne 0xdfc4f6
mov esi, 0xdd2300
mov dword [ebp - 0x24], 0x7dae1bbe
lea edi, [ebp - 0x4c]
mov dword [ebp - 0x20], 0x88c27d73
mov dword [ebp - 0x1c], 0x35e05111
mov dword [ebp - 0x18], 0xac706d73
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0x2677e91
mov dword [ebp - 0x10], 0xfb69065f
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
mov byte [ebp + eax - 0x190], al
inc eax
cmp eax, 0x100
jb 0xdfc03e
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x190]
push 0xb
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x4c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov byte [ebp + edi - 0x190], bl
cmp esi, 0x100
jb 0xdfc04f
and dword [ebp - 0xc], 0
xor ebx, ebx
mov esi, dword [0xe1a8a4]
xor edi, edi
lea eax, [ebx + 1]
or esi, 0xa6d31da0
movzx ebx, al
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + ebx - 0x190]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + ebx - 0x190], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x190], cl
movzx eax, byte [ebp + ebx - 0x190]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edi - 0x24]
mov byte [ebp + edi - 0x1c8], al
inc edi
cmp edi, 0x18
jb 0xdfc09a
xor eax, eax
mov dword [ebp - 4], esi
mov byte [ebp - 0x1b0], 0
mov dword [ebp - 0xc], 0xa6fe5d97
cmp byte [0xe1a738], al
je 0xdfc13b
inc eax
cmp eax, 0x1c92
jl 0xdfc132
cmp byte [eax + 0xe1a738], 0
jne 0xdfc113
cmp eax, 0x22dc
jle 0xdfc13b
call fcn.00dfb6e9
jmp 0xdfc13b
add esi, 0x7b6fe27
mov dword [ebp - 4], esi
mov esi, 0xdd1908
and dword [ebp - 0x28], 0
lea edi, [ebp - 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 4]
xor esi, 0xffe7ffff
or esi, 0x1fe7ff79
sub esi, 0x440389eb
xor eax, eax
mov dword [ebp - 4], esi
mov byte [ebp + eax - 0x2e4], al
inc eax
cmp eax, 0x100
jb 0xdfc167
mov esi, dword [ebp - 0x28]
xor edi, edi
push 0xe
pop ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x2e4]
mov eax, edi
div ecx
movzx ecx, bl
push 0xe
movzx eax, byte [ebp + edx - 0x50]
add eax, esi
add ecx, eax
movzx esi, cl
pop ecx
mov al, byte [ebp + esi - 0x2e4]
mov byte [ebp + edi - 0x2e4], al
inc edi
mov byte [ebp + esi - 0x2e4], bl
cmp edi, 0x100
jb 0xdfc17e
and dword [ebp - 0x28], 0
xor ebx, ebx
mov al, byte [0xe1a788]
mov esi, dword [ebp - 4]
jmp 0xdfc1da
sub al, 0x30
cmp al, 9
ja 0xdfc1e0
mov eax, dword [ebp - 0x78]
inc eax
mov dword [ebp - 0x78], eax
mov al, byte [eax]
test al, al
jne 0xdfc1cb
jmp 0xdfc1e6
add esi, 0x6630472a
sub esi, 0x14474d5e
xor edi, edi
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0x28]
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x2e4]
movzx edx, cl
lea eax, [esi + edx]
movzx esi, al
mov al, byte [ebp + esi - 0x2e4]
mov byte [ebp + ebx - 0x2e4], al
mov byte [ebp + esi - 0x2e4], cl
movzx eax, byte [ebp + ebx - 0x2e4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x2e4]
xor al, byte [ebp + edi - 0xc]
mov byte [ebp + edi - 0x48], al
inc edi
cmp edi, 4
jb 0xdfc1f4
mov esi, dword [ebp - 4]
xor ecx, ecx
mov byte [ebp - 0x44], 0
xor eax, eax
mov dword [ebp - 0x1c], 0x12
mov dword [ebp - 0x18], 0x3a
mov dword [ebp - 0x14], 0x2b
mov dword [ebp - 0x10], 0xffffff89
sub ecx, dword [ebp + eax*4 - 0x1c]
xor esi, 0x37b1b967
inc eax
cmp eax, 4
jl 0xdfc268
add esi, 0x2b3ff9e1
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0xc], esi
lea edi, [ebp - 0x18]
mov esi, 0xdd2d8c
mov dword [ebp - 0x6c], 0xc94bb9a5
mov dword [ebp - 0x68], 0xb5c7cf6c
mov dword [ebp - 0x64], 0x48d36770
mov dword [ebp - 0x60], 0x28d7739f
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x5c], 0xe573cfeb
mov dword [ebp - 0x58], 0xe9b7ded
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x3e4], al
inc eax
cmp eax, 0x100
jb 0xdfc2bf
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x3e4]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x18]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x3e4]
mov byte [ebp + esi - 0x3e4], al
inc esi
mov byte [ebp + edi - 0x3e4], bl
cmp esi, 0x100
jb 0xdfc2d0
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x3e4]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x3e4]
mov byte [ebp + edi - 0x3e4], al
mov byte [ebp + ebx - 0x3e4], cl
movzx eax, byte [ebp + edi - 0x3e4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x3e4]
xor al, byte [ebp + esi - 0x6c]
mov byte [ebp + esi - 0x1e4], al
inc esi
cmp esi, 0x18
jb 0xdfc313
mov esi, 0xdd10a8
mov byte [ebp - 0x1cc], 0
lea edi, [ebp - 0x1c]
mov dword [ebp - 4], 0x334aba1a
push 0x6f
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
sub cl, 0x30
cmp cl, 9
ja 0xdfc39c
mov eax, dword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x7c], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0xdfc380
mov esi, dword [ebp - 0xc]
jmp 0xdfc3a5
mov esi, dword [ebp - 0xc]
add esi, 0x73b8bf3a
add esi, 0x28261b4f
mov dword [ebp - 0xc], esi
call fcn.00dfb5df
and dword [ebp - 0x28], 0
xor eax, eax
mov byte [ebp + eax - 0x4e4], al
inc eax
cmp eax, 0x100
jb 0xdfc3b9
mov esi, dword [ebp - 0x28]
xor edi, edi
xor edx, edx
mov bl, byte [ebp + edi - 0x4e4]
push 0xc
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x1c]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x4e4]
mov byte [ebp + edi - 0x4e4], al
inc edi
mov byte [ebp + esi - 0x4e4], bl
cmp edi, 0x100
jb 0xdfc3cd
mov esi, dword [ebp - 0xc]
xor ecx, ecx
xor ebx, ebx
xor edi, edi
lea eax, [ebx + 1]
movzx ebx, al
mov al, byte [ebp + ebx - 0x4e4]
mov byte [ebp - 5], al
movzx eax, al
mov dword [ebp - 0x74], eax
add eax, ecx
movzx eax, al
mov ecx, 0xe1a738
mov dword [ebp - 0x28], eax
mov al, byte [ebp + eax - 0x4e4]
mov byte [ebp + ebx - 0x4e4], al
mov al, byte [0xe1a738]
jmp 0xdfc454
sub al, 0x30
cmp al, 9
ja 0xdfc45a
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdfc44b
jmp 0xdfc460
and esi, 0x9911cdf9
xor esi, 0xd15bf189
call fcn.00dfb84c
mov ecx, dword [ebp - 0x28]
mov al, byte [ebp - 5]
mov byte [ebp + ecx - 0x4e4], al
movzx eax, byte [ebp + ebx - 0x4e4]
add eax, dword [ebp - 0x74]
movzx eax, al
mov al, byte [ebp + eax - 0x4e4]
xor al, byte [ebp + edi - 4]
mov byte [ebp + edi - 0x14], al
inc edi
cmp edi, 4
jb 0xdfc413
mov ecx, dword [ebp + 8]
mov dword [0xe1a8a4], esi
mov byte [ebp - 0x10], 0
call fcn.00e05897
add eax, eax
lea ecx, [ebp - 0x48]
push eax
push dword [ebp + 8]
push 1
push dword [ebp - 0x70]
push dword [ebp - 0x90]
push dword [ebp - 0x30]
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x1c8]
call fcn.00dee9ca
call eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x14]
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x1e4]
call fcn.00dee9ca
call eax
pop edi
pop esi
pop ebx
leave
ret