Function at 0x42a7fa
Capabilities:
Encode data using xor
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, edx
push esi
push ebx
mov ebx, eax
sub esp, 0x2c
mov eax, dword [eax]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebx]
mov dword [ebp - 0x20], eax
test edi, edi
je 0x42ae09
cmp dword [ebp - 0x1c], edi
je 0x42a837
movzx ecx, byte [edi]
cmp cl, 0x7c
je 0x42ade0
cmp cl, 0x29
jne 0x42a84d
jmp 0x42ade0
test edi, edi
je 0x42ae09
cmp dword [ebp - 0x1c], edi
jne 0x42ade0
jmp 0x42ae09
cmp cl, 0x28
jne 0x42a8cf
mov eax, dword [ebx + 4]
dec eax
mov dword [ebx + 4], eax
cmp eax, dword [ebp - 0x20]
jae 0x42a876
cmp dword [ebp + 8], 0
je 0x42ad3d
mov eax, dword [ebp + 8]
mov dword [eax], str.regular_expression_too_compex
jmp 0x42ad3d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
lea edx, [edi + 1]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, ebx
call fcn.0042a7fa
test eax, eax
je 0x42ad96
inc dword [ebx + 4]
cmp dword [ebp - 0x1c], eax
je 0x42a8ac
cmp byte [eax], 0x29
lea esi, [eax + 1]
je 0x42ad98
cmp dword [ebp + 8], 0
je 0x42a8bb
mov edi, dword [ebp + 8]
mov dword [edi], 0x524696
cmp dword [ebp + 0xc], 0
je 0x42ad96
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
jmp 0x42ad96
lea esi, [edi + 1]
cmp cl, 0x5b
jne 0x42ac68
cmp dword [ebp - 0x1c], esi
je 0x42a91f
cmp byte [edi + 1], 0x5e
mov dword [ebp - 0x24], 0
jne 0x42a8fc
lea esi, [edi + 2]
cmp dword [ebp - 0x1c], esi
je 0x42a91f
mov dword [ebp - 0x24], 1
cmp byte [esi], 0x5d
jne 0x42a918
mov dword [esp], 0x5d
mov edx, dword [ebp - 0x20]
mov ecx, 0x5d
inc esi
mov eax, ebx
call fcn.0042a63c
mov edi, esi
cmp dword [ebp - 0x1c], esi
jne 0x42a937
cmp dword [ebp + 8], 0
je 0x42ad8b
mov eax, dword [ebp + 8]
mov dword [eax], str.expected__
jmp 0x42ad8b
movzx ecx, byte [esi]
inc esi
cmp cl, 0x5d
jne 0x42a964
cmp dword [ebp - 0x24], 0
je 0x42ad56
mov ecx, dword [ebx]
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
xor ecx, ecx
jmp 0x42ac4c
cmp cl, 0x5b
jne 0x42ae1d
cmp dword [ebp - 0x1c], esi
jbe 0x42ae1d
mov al, byte [edi + 1]
cmp al, 0x2e
jne 0x42a995
cmp dword [ebp + 8], 0
je 0x42ad3d
mov eax, dword [ebp + 8]
mov dword [eax], str.collating_elements_are_not_supported
jmp 0x42ad3d
cmp al, 0x3d
jne 0x42a9b1
cmp dword [ebp + 8], 0
je 0x42ad3d
mov eax, dword [ebp + 8]
mov dword [eax], str.equivalence_classes_are_not_supported
jmp 0x42ad3d
cmp al, 0x3a
jne 0x42ae1d
add edi, 2
mov esi, edi
lea eax, [esi + 1]
cmp dword [ebp - 0x1c], eax
ja 0x42a9de
cmp dword [ebp + 8], 0
je 0x42ad8b
mov eax, dword [ebp + 8]
mov dword [eax], str.expected_:_
jmp 0x42ad8b
cmp byte [eax - 1], 0x3a
je 0x42a9e8
mov esi, eax
jmp 0x42a9be
cmp byte [eax], 0x5d
jne 0x42a9e4
mov dword [esp + 4], edi
add esi, 2
mov dword [esp], str.alnum
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42aa1b
mov dword [esp], 0x39
mov edx, dword [ebx]
mov ecx, 0x30
mov eax, ebx
call fcn.0042a63c
jmp 0x42aa9a
mov dword [esp + 4], edi
mov dword [esp], str.cntrl
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42aa52
mov dword [esp], 0x1f
mov edx, dword [ebx]
xor ecx, ecx
mov eax, ebx
call fcn.0042a63c
mov dword [esp], 0x7f
mov ecx, 0x7f
jmp 0x42ac26
mov dword [esp + 4], edi
mov dword [esp], str.lower
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x42aaaf
mov dword [esp + 4], edi
mov dword [esp], str.space
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42aa86
mov dword [esp], 0xd
jmp 0x42ab45
mov dword [esp + 4], edi
mov dword [esp], 0x524721
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42aabb
mov dword [esp], 0x5a
mov edx, dword [ebx]
mov ecx, 0x41
mov eax, ebx
call fcn.0042a63c
mov dword [esp], 0x7a
jmp 0x42ac21
mov dword [esp + 4], edi
mov dword [esp], str.digit
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42aae0
mov dword [esp], 0x39
mov ecx, 0x30
jmp 0x42ac26
mov dword [esp + 4], edi
mov dword [esp], str.print
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42ab05
mov dword [esp], 0x7e
mov ecx, 0x20
jmp 0x42ac26
mov dword [esp + 4], edi
mov dword [esp], str.upper
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42ab2a
mov dword [esp], 0x5a
mov ecx, 0x41
jmp 0x42ac26
mov dword [esp + 4], edi
mov dword [esp], str.blank
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42ab5c
mov dword [esp], 9
mov edx, dword [ebx]
mov ecx, 9
mov eax, ebx
call fcn.0042a63c
mov dword [esp], 0x20
jmp 0x42aafb
mov dword [esp + 4], edi
mov dword [esp], 0x52473f
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42ab81
mov dword [esp], 0x7e
mov ecx, 0x21
jmp 0x42ac26
mov dword [esp + 4], edi
mov dword [esp], str.punct
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42abde
mov dword [esp], 0x2f
mov edx, dword [ebx]
mov eax, ebx
mov ecx, 0x21
call fcn.0042a63c
mov dword [esp], 0x40
mov edx, dword [ebx]
mov ecx, 0x3a
call fcn.0042a63c
mov dword [esp], 0x60
mov edx, dword [ebx]
mov ecx, 0x5b
call fcn.0042a63c
mov dword [esp], 0x7e
mov ecx, 0x7b
jmp 0x42ac26
mov dword [esp + 4], edi
mov dword [esp], str.xdigit
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x42ac34
mov dword [esp], 0x39
mov edx, dword [ebx]
mov ecx, 0x30
mov eax, ebx
call fcn.0042a63c
mov dword [esp], 0x46
mov edx, dword [ebx]
mov ecx, 0x41
call fcn.0042a63c
mov dword [esp], 0x66
mov ecx, 0x61
mov edx, dword [ebx]
mov eax, ebx
call fcn.0042a63c
jmp 0x42a918
cmp dword [ebp + 8], 0
je 0x42ad8b
mov eax, dword [ebp + 8]
mov dword [eax], str.unknown_character_class_name
jmp 0x42ad8b
xor dword [ebx + ecx*8 + 0x228], eax
xor dword [ebx + ecx*8 + 0x22c], edx
inc ecx
cmp ecx, 0x100
jne 0x42ac4c
jmp 0x42ad56
cmp cl, 0x2e
jne 0x42ac7e
mov dword [esp], 0xffffffff
mov edx, dword [ebp - 0x20]
xor ecx, ecx
jmp 0x42ad4f
cmp cl, 0x5e
jne 0x42aca2
mov cl, byte [ebp - 0x20]
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
or dword [ebx + 0x1c], edx
or dword [ebx + 0x18], eax
jmp 0x42ad56
cmp cl, 0x24
jne 0x42acc6
mov cl, byte [ebp - 0x20]
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
or dword [ebx + 0x24], edx
or dword [ebx + 0x20], eax
jmp 0x42ad56
cmp cl, 0x5c
jne 0x42acf6
cmp dword [ebp - 0x1c], esi
jne 0x42acf0
cmp dword [ebp + 8], 0
je 0x42acdf
mov eax, dword [ebp + 8]
mov dword [eax], str.trailing_
cmp dword [ebp + 0xc], 0
je 0x42acfb
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [eax], esi
xor esi, esi
jmp 0x42acff
movzx ecx, byte [edi + 1]
jmp 0x42acf8
mov esi, edi
inc esi
jmp 0x42acff
xor esi, esi
xor ecx, ecx
test esi, esi
jne 0x42ad4a
cmp dword [ebp + 0xc], 0
je 0x42ad2a
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp dword [ebp - 0x1c], eax
jbe 0x42ae6d
test eax, eax
je 0x42ae6d
cmp byte [eax], 0x5c
jne 0x42ae6d
jmp 0x42ad96
test esi, esi
jne 0x42ad4a
cmp dword [ebp + 8], 0
je 0x42ad3d
mov eax, dword [ebp + 8]
mov dword [eax], str.expected_._______or_a_character
cmp dword [ebp + 0xc], 0
je 0x42ad96
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
jmp 0x42ad96
mov dword [esp], ecx
mov edx, dword [ebx]
mov eax, ebx
call fcn.0042a63c
mov eax, dword [ebx]
xor edx, edx
lea ecx, [eax + 1]
lea edi, [ebx + eax*8]
xor eax, eax
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
or dword [edi + 0x2c], edx
or dword [edi + 0x28], eax
mov dword [ebx], ecx
cmp ecx, dword [ebx + 4]
jbe 0x42ad98
cmp dword [ebp + 8], 0
je 0x42ad8b
mov eax, dword [ebp + 8]
mov dword [eax], str.regular_expression_too_compex
cmp dword [ebp + 0xc], 0
je 0x42ad96
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
xor esi, esi
test esi, esi
jne 0x42ada3
mov edi, esi
jmp 0x42a80f
cmp dword [ebp - 0x1c], esi
je 0x42ad9c
mov al, byte [esi]
lea edx, [eax - 0x2a]
cmp dl, 1
jbe 0x42adb8
cmp al, 0x3f
jne 0x42ad9c
jmp 0x42adbc
cmp al, 0x2a
jne 0x42add1
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x20]
mov eax, ebx
call fcn.0042a681
mov al, byte [esi]
sub eax, 0x2a
cmp al, 1
ja 0x42addd
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebx]
mov eax, ebx
call fcn.0042a681
inc esi
jmp 0x42ad9c
cmp byte [edi], 0x7c
mov ecx, dword [ebx + 4]
jne 0x42ae09
inc edi
cmp ecx, dword [ebp - 0x20]
je 0x42adf8
mov edx, dword [ebp - 0x20]
mov eax, ebx
call fcn.0042a737
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x28]
mov eax, ebx
call fcn.0042a681
jmp 0x42a80f
mov edx, dword [ebx + 4]
cmp edx, dword [ebp - 0x20]
je 0x42ae7c
mov ecx, dword [ebp - 0x20]
mov eax, ebx
call fcn.0042a737
jmp 0x42ae7c
lea eax, [edi + 2]
cmp dword [ebp - 0x1c], eax
jbe 0x42ae65
cmp byte [edi + 1], 0x2d
jne 0x42ae65
movzx eax, byte [edi + 2]
cmp al, 0x5d
je 0x42ae65
add edi, 3
cmp ecx, eax
jbe 0x42ae52
cmp dword [ebp + 8], 0
je 0x42ad8b
mov eax, dword [ebp + 8]
mov dword [eax], str.invalid_range
jmp 0x42ad8b
mov dword [esp], eax
mov edx, dword [ebx]
mov eax, ebx
mov esi, edi
call fcn.0042a63c
jmp 0x42a918
mov dword [esp], ecx
jmp 0x42ac26
cmp dword [ebp + 8], 0
jne 0x42ad34
jmp 0x42ad43
add esp, 0x2c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret