Function at 0x4337bf
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, 0x1ec
push ebx
push esi
push edi
push 5
pop ecx
mov esi, 0x4018b8
mov dword [ebp - 0x20], 0x2666dfc2
lea edi, [ebp - 0x70]
mov dword [ebp - 0x1c], 0x963d1f87
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov dword [ebp - 0x18], 0x6f0f8aa6
mov dword [ebp - 0x14], 0xa16be81f
mov eax, ebx
mov dword [ebp - 0x10], 0x480b576a
mov dword [ebp - 0xc], 0xb7993bec
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x180], al
inc eax
cmp eax, 0x100
jb 0x433807
mov esi, dword [0x44a6b4]
mov edi, ebx
xor edx, edx
mov dword [ebp - 4], 0x14
mov eax, edi
mov cl, byte [ebp + edi - 0x180]
div dword [ebp - 4]
mov byte [ebp - 5], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x70]
add eax, ebx
add ecx, eax
movzx ebx, cl
mov ecx, 0x403510
mov al, byte [ebp + ebx - 0x180]
mov byte [ebp + edi - 0x180], al
mov al, 0x44
sub al, 0x30
cmp al, 9
ja 0x433869
inc ecx
mov al, byte [ecx]
test al, al
jne 0x43385a
jmp 0x43386f
or esi, 0xf676f847
sub esi, 0x12a14b6f
call fcn.00433572
mov al, byte [ebp - 5]
inc edi
mov byte [ebp + ebx - 0x180], al
cmp edi, 0x100
jb 0x43381e
xor ebx, ebx
mov dword [ebp - 4], esi
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
push 0x18
mov cl, byte [ebp + edi - 0x180]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x180]
mov byte [ebp + edi - 0x180], al
mov byte [ebp + ebx - 0x180], cl
movzx eax, byte [ebp + edi - 0x180]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x180]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x19c], al
inc esi
pop eax
cmp esi, eax
jb 0x433896
mov esi, 0x403468
mov dword [ebp - 0x30], 0x9d2e6002
lea edi, [ebp - 0x68]
mov word [ebp - 0x2c], 0x730b
xor ebx, ebx
mov eax, 0x4034cc
mov byte [ebp - 0x184], bl
mov ecx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
inc ecx
lea eax, [eax + 2]
cmp ecx, 0xfaa
jg 0x433927
cmp word [eax], bx
jne 0x433911
mov eax, dword [ebp - 4]
jmp 0x43392f
mov eax, dword [ebp - 4]
add eax, 0x3175aee4
or eax, 0x32db3503
imul edi, eax, 0x5c18adf5
push ecx
mov dword [0x44a6b4], edi
call fcn.0043355d
add esp, 4
mov dword [ebp - 4], ebx
mov eax, ebx
mov byte [ebp + eax - 0x180], al
inc eax
cmp eax, 0x100
jb 0x43394e
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x180]
push 0xa
mov eax, esi
imul edi, edi, 0x28f7a991
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x68]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x180]
mov byte [ebp + esi - 0x180], al
inc esi
mov byte [ebp + ecx - 0x180], bl
cmp esi, 0x100
jb 0x43395f
lea esi, [edi - 0x62141864]
xor ebx, ebx
mov dword [ebp - 0x24], esi
mov edi, ebx
mov dword [ebp - 4], ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 4]
mov cl, byte [ebp + edi - 0x180]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 4], eax
mov al, byte [ebp + eax - 0x180]
mov byte [ebp + edi - 0x180], al
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x180], cl
movzx eax, byte [ebp + edi - 0x180]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x180]
xor al, byte [ebp + esi - 0x30]
mov byte [ebp + esi - 0x80], al
inc esi
cmp esi, 6
jb 0x4339b8
mov esi, dword [ebp - 0x24]
mov ecx, 0x403550
mov byte [ebp - 0x7a], bl
mov al, 0x6f
sub al, 0x30
cmp al, 9
ja 0x433a29
inc ecx
mov al, byte [ecx]
test al, al
jne 0x433a1a
jmp 0x433a2f
sub esi, 0x19758ca6
sub esi, 0x6b8bb45d
mov dword [ebp - 0x24], esi
call fcn.0043364a
mov ecx, ebx
mov dword [ebp - 0x70], 0x20
mov dword [ebp - 0x6c], 0x2c
mov eax, ebx
mov dword [ebp - 0x68], 0x3a
mov dword [ebp - 0x64], 0xe
mov dword [ebp - 0x60], 0xffffff6c
sub ecx, dword [ebp + eax*4 - 0x70]
inc eax
cmp eax, 5
jl 0x433a64
push 0x16
mov dword [ebp - 0x30], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0x68], 0x34
mov dword [ebp - 0x64], 0x2a
mov dword [ebp - 0x60], 0xffffff8d
add ecx, dword [ebp + eax*4 - 0x68]
inc eax
cmp eax, 3
jl 0x433a8b
mov esi, 0x40319c
mov dword [ebp - 0x78], ecx
lea edi, [ebp - 0x68]
mov dword [ebp - 0x58], 0x9d349339
mov dword [ebp - 0x54], 0x216fa03d
mov eax, ebx
mov dword [ebp - 0x50], 0x5748be8
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x4c], 0x6c82efaf
mov dword [ebp - 0x48], 0x440b9abd
mov dword [ebp - 0x44], 0xf44ee73b
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x40], 0x33d55404
mov dword [ebp - 0x3c], 0xae633c32
mov dword [ebp - 0x38], 0x4b49f8a7
mov word [ebp - 0x34], 0x36b0
movsw word es:[edi], word [esi]
mov byte [ebp + eax - 0x180], al
inc eax
cmp eax, 0x100
jb 0x433aeb
mov esi, dword [ebp - 0x24]
mov edi, ebx
mov dword [ebp - 0x28], 9
xor edx, edx
mov cl, byte [ebp + edi - 0x180]
mov eax, edi
mov byte [ebp - 5], cl
div dword [ebp - 0x28]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x68]
add eax, ebx
add ecx, eax
mov al, 0x6f
movzx ebx, cl
mov ecx, 0x403550
sub al, 0x30
cmp al, 9
ja 0x433b3c
inc ecx
mov al, byte [ecx]
test al, al
jne 0x433b2d
jmp 0x433b42
imul esi, esi, 0x8c0f9944
imul esi, esi, 0x69aeb34
push ecx
mov dword [0x44a6b4], esi
call fcn.0043355d
mov al, byte [ebp + ebx - 0x180]
add esp, 4
mov byte [ebp + edi - 0x180], al
inc edi
mov al, byte [ebp - 5]
mov byte [ebp + ebx - 0x180], al
cmp edi, 0x100
jb 0x433b06
xor ebx, ebx
mov dword [ebp - 0x24], esi
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x180]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x180]
mov byte [ebp + edi - 0x180], al
mov byte [ebp + ebx - 0x180], cl
movzx eax, byte [ebp + edi - 0x180]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x180]
xor al, byte [ebp + esi - 0x58]
movzx eax, al
mov word [ebp + esi*2 - 0x1ec], ax
inc esi
cmp esi, 0x26
jb 0x433b81
mov esi, 0x40319c
mov dword [ebp - 0x20], 0x85268c29
lea edi, [ebp - 0x68]
mov dword [ebp - 0x1c], 0x3111b755
xor eax, eax
mov dword [ebp - 0x18], 0x3e76cea3
mov word [ebp - 0x1a0], ax
xor ebx, ebx
movsd dword es:[edi], dword [esi]
push 0x18
pop eax
mov byte [ebp - 0xc], al
mov eax, ebx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0x6ec3ee82
mov dword [ebp - 0x10], 0x3b5bb68f
mov word [ebp - 0xb], 0x21a8
mov byte [ebp - 9], 0xef
movsw word es:[edi], word [esi]
mov dword [ebp - 4], ebx
mov byte [ebp + eax - 0x180], al
inc eax
cmp eax, 0x100
jb 0x433c24
mov esi, dword [ebp - 0x24]
mov edi, ebx
inc ebx
cmp ebx, 0x3dd
jl 0x433c4c
cmp byte [ebx + 0x403510], 0
jne 0x433c38
jmp 0x433c57
call fcn.0043364a
and esi, 0x35783948
add esi, 0xed2b8d9f
or esi, 0x9719ae61
call fcn.0043364a
push 9
pop ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x180]
mov eax, edi
div ecx
movzx ecx, bl
push 0
movzx eax, byte [ebp + edx - 0x68]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x180]
mov byte [ebp + edi - 0x180], al
inc edi
mov byte [ebp + ecx - 0x180], bl
pop ebx
cmp edi, 0x100
jb 0x433c38
mov dword [ebp - 4], ebx
mov edi, ebx
lea eax, [ebx + 1]
xor esi, 0xa86a2281
movzx ebx, al
mov eax, dword [ebp - 4]
push 0x18
mov cl, byte [ebp + ebx - 0x180]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 4], eax
mov al, byte [ebp + eax - 0x180]
mov byte [ebp + ebx - 0x180], al
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x180], cl
movzx eax, byte [ebp + ebx - 0x180]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x180]
xor al, byte [ebp + edi - 0x20]
mov byte [ebp + edi - 0x4c], al
inc edi
pop eax
cmp edi, eax
jb 0x433cb1
mov dword [ebp - 0x24], esi
lea edi, [ebp - 0x74]
push 6
pop ecx
mov esi, 0x402728
mov dword [ebp - 0x10], 0x6b4f412d
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov word [ebp - 0xc], 0xed56
mov byte [ebp - 0x34], bl
mov eax, ebx
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x180], al
inc eax
cmp eax, 0x100
jb 0x433d33
add dword [ebp - 0x24], 0x262be86b
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x180]
push 0x18
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x74]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x180]
mov byte [ebp + edi - 0x180], al
inc edi
mov byte [ebp + esi - 0x180], bl
cmp edi, 0x100
jb 0x433d4d
mov esi, dword [ebp - 0x24]
xor ebx, ebx
mov edi, ebx
mov dword [ebp - 4], ebx
lea eax, [edi + 1]
mov ecx, 0x403550
movzx edi, al
mov al, 0x6f
sub al, 0x30
cmp al, 9
ja 0x433db0
inc ecx
mov al, byte [ecx]
test al, al
jne 0x433da1
jmp 0x433db6
imul esi, esi, 0xca7ed53c
and esi, 0x7ddf32d7
push ecx
mov dword [0x44a6b4], esi
call fcn.0043355d
mov cl, byte [ebp + edi - 0x180]
add esi, 0x56ed5bc8
movzx edx, cl
add esp, 4
mov dword [0x44a6b4], esi
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x180]
mov byte [ebp + edi - 0x180], al
mov byte [ebp + ebx - 0x180], cl
movzx eax, byte [ebp + edi - 0x180]
add eax, edx
mov edx, dword [ebp - 4]
movzx eax, al
mov al, byte [ebp + eax - 0x180]
xor al, byte [ebp + edx - 0x10]
mov byte [ebp + edx - 0x64], al
inc edx
mov dword [ebp - 4], edx
cmp edx, 6
jb 0x433d94
xor ebx, ebx
mov dword [ebp - 0x14], 0x5e
push 0x40
mov byte [ebp - 0x5e], bl
mov eax, ebx
pop edi
mov dword [ebp - 0x10], 0x59
mov dword [ebp - 0xc], 0xffffff09
add edi, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 3
jl 0x433e47
mov esi, ebx
mov dword [ebp - 0x14], 0x53
mov dword [ebp - 0x10], 0x64
mov eax, ebx
mov dword [ebp - 0xc], 0xffffff49
sub esi, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 3
jl 0x433e6a
mov dword [ebp - 0x18], 0x24
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x14], 0x51
mov dword [ebp - 0x10], 0x2d
mov dword [ebp - 0xc], 0xffffff59
movups xmm1, xmmword [ebp - 0x18]
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 5
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x1ec]
push eax
push dword [ebp - 0x78]
push dword [ebp - 0x30]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x19c]
call fcn.0041d4c4
call eax
lea ecx, [ebp - 0x64]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x4c]
call fcn.0041d4c4
call eax
cmp eax, 0xb7
jne 0x433f27
push 0xe
mov dword [ebp - 0x1c], 0x4f
mov dword [ebp - 0x18], 0x1b
mov dword [ebp - 0x14], 0x42
mov dword [ebp - 0x10], 0xb
mov dword [ebp - 0xc], 0xffffff56
pop eax
sub eax, dword [ebp + ebx*4 - 0x1c]
inc ebx
cmp ebx, 5
jl 0x433f1b
jmp 0x433f33
mov edx, esi
mov ecx, edi
call fcn.004112dd
mov eax, dword [ebp - 0x28]
pop edi
pop esi
pop ebx
leave
ret