Function at 0x41e506
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x41e806
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x41e806
mov dword [ebp - 8], eax
jmp 0x41ef9c
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3c
je 0x41e542
inc edi
mov al, byte [edi]
test al, al
jne 0x41e537
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3c
jne 0x41ef9c
inc edi
mov bl, byte [edi]
cmp bl, 0x3f
jne 0x41e5a6
inc edi
mov bl, byte [edi]
call fcn.0041e020
test al, al
je 0x41ed60
test byte [ebp + 0x14], 2
je 0x41ed60
cmp byte [edi], 0
mov ecx, edi
je 0x41e806
cmp byte [edi], 0x3f
je 0x41e58c
inc edi
cmp byte [edi], 0
jne 0x41e581
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3f
jne 0x41e59d
mov byte [edi], 0x2f
mov edi, ecx
push 6
jmp 0x41e861
cmp bl, 0x21
jne 0x41e852
inc edi
mov al, byte [edi]
cmp al, 0x2d
jne 0x41e69a
inc edi
test byte [ebp + 0x14], 8
je 0x41e65e
cmp byte [edi], al
jne 0x41e65e
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 5
inc edi
call fcn.0041e2d4
mov esi, eax
lea eax, [esi + 0x28]
mov dword [eax], edi
cmp byte [edi], 0
pop ecx
je 0x41e806
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41e612
mov bl, byte [edi + 2]
test bl, bl
je 0x41e612
cmp byte [edi], 0x2d
jne 0x41e60b
cmp dl, 0x2d
jne 0x41e60b
cmp bl, 0x3e
je 0x41e612
mov edi, ecx
cmp byte [edi], 0
jne 0x41e5ec
cmp byte [edi], 0
je 0x41e806
test byte [ebp + 0x15], 8
mov byte [edi], 0
je 0x41e636
test byte [ebp + 0x15], 0x10
je 0x41e631
call fcn.0041e174
jmp 0x41e636
call fcn.0041e047
mov eax, dword [esi]
inc edi
inc edi
mov dword [ebp - 8], eax
cmp byte [edi], 0x3e
jne 0x41efeb
inc edi
mov ebx, edi
mov al, byte [edi]
test al, al
jle 0x41ea82
cmp al, 0x21
jge 0x41ea82
inc edi
jmp 0x41e649
mov al, byte [edi]
test al, al
je 0x41e806
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41e68d
mov bl, byte [edi + 2]
test bl, bl
je 0x41e68d
cmp al, 0x2d
jne 0x41e685
cmp dl, al
jne 0x41e685
cmp bl, 0x3e
je 0x41e68d
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x41e668
cmp byte [edi], 0
je 0x41e806
inc edi
inc edi
jmp 0x41e63d
cmp al, 0x5b
jne 0x41eb44
inc edi
mov al, byte [edi]
cmp al, 0x49
jne 0x41e77a
inc edi
cmp byte [edi], 0x4e
jne 0x41ef9c
inc edi
cmp byte [edi], 0x43
jne 0x41ef9c
inc edi
cmp byte [edi], 0x4c
jne 0x41ef9c
inc edi
cmp byte [edi], 0x55
jne 0x41ef9c
inc edi
cmp byte [edi], 0x44
jne 0x41ef9c
inc edi
cmp byte [edi], 0x45
jne 0x41ef9c
inc edi
cmp byte [edi], 0x5b
jne 0x41ef9c
inc edi
test byte [ebp + 0x14], 4
je 0x41e76d
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 7
call fcn.0041e2d4
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
cmp byte [edi], 0x5d
jne 0x41e720
cmp byte [edi + 1], 0x5d
jne 0x41e720
cmp byte [edi + 2], 0x3e
je 0x41e723
inc edi
jmp 0x41e70f
cmp byte [edi], 0x5d
jne 0x41e812
mov byte [edi], 0
inc edi
test byte [ebp + 0x15], 1
je 0x41e812
test byte [ebp + 0x15], 0x10
je 0x41e80d
call fcn.0041e174
jmp 0x41e812
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41e773
mov bl, byte [edi + 2]
test bl, bl
je 0x41e773
cmp al, 0x5d
jne 0x41e76b
cmp dl, al
jne 0x41e76b
cmp bl, 0x3e
je 0x41e773
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x41e74e
inc edi
inc edi
jmp 0x41e63d
cmp al, 0x43
jne 0x41ef9c
inc edi
cmp byte [edi], 0x44
jne 0x41ef9c
inc edi
cmp byte [edi], 0x41
jne 0x41ef9c
inc edi
cmp byte [edi], 0x54
jne 0x41ef9c
inc edi
cmp byte [edi], 0x41
jne 0x41ef9c
inc edi
cmp byte [edi], 0x5b
jne 0x41ef9c
inc edi
test byte [ebp + 0x14], 0x10
je 0x41e847
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 4
call fcn.0041e2d4
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
jmp 0x41e7f7
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41e7fc
mov bl, byte [edi + 2]
test bl, bl
je 0x41e7fc
cmp byte [edi], 0x5d
jne 0x41e7f5
cmp dl, 0x5d
jne 0x41e7f5
cmp bl, 0x3e
je 0x41e7fc
mov edi, ecx
cmp byte [edi], 0
jne 0x41e7d6
cmp byte [edi + 2], 0
jne 0x41e723
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
call fcn.0041e047
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x41e774
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41e773
mov bl, byte [edi + 2]
test bl, bl
je 0x41e773
cmp al, 0x5d
jne 0x41e845
cmp dl, al
jne 0x41e845
cmp bl, 0x3e
je 0x41e773
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x41e81c
jmp 0x41e773
call fcn.0041e020
test al, al
je 0x41f001
push 2
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
call fcn.0041e2d4
mov esi, eax
pop ecx
mov dword [ebp - 8], eax
mov dword [esi + 4], edi
jmp 0x41e878
inc edi
mov bl, byte [edi]
call fcn.0041e020
test al, al
jne 0x41e877
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x41e806
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x41e806
cmp al, 0x2f
je 0x41efcc
cmp al, cl
jle 0x41e647
cmp al, 0x21
jge 0x41e647
mov al, byte [edi]
test al, al
jle 0x41e8bf
cmp al, 0x21
jge 0x41e8bf
inc edi
jmp 0x41e8b2
cmp byte [edi], 0
je 0x41e806
mov bl, byte [edi]
call fcn.0041e020
test al, al
je 0x41e63d
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.0041e31a
mov esi, eax
mov dword [esi], edi
jmp 0x41e8e9
inc edi
mov bl, byte [edi]
call fcn.0041e020
test al, al
jne 0x41e8e8
mov dl, byte [edi]
xor bl, bl
cmp dl, bl
je 0x41e806
mov byte [edi], bl
inc edi
mov cl, byte [edi]
cmp cl, bl
je 0x41e806
cmp dl, bl
jle 0x41e92d
cmp dl, 0x21
jge 0x41e92d
mov al, byte [edi]
cmp al, bl
jle 0x41e923
cmp al, 0x21
jge 0x41e923
inc edi
jmp 0x41e916
mov cl, byte [edi]
cmp cl, bl
je 0x41e806
cmp cl, bl
je 0x41e9dc
cmp dl, 0x3d
je 0x41e943
cmp cl, 0x3d
jne 0x41e9dc
cmp cl, 0x3d
jne 0x41e949
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x41e953
cmp al, 0x21
jl 0x41e948
mov cl, byte [edi]
cmp cl, bl
je 0x41e806
cmp cl, 0x22
je 0x41e967
cmp cl, 0x27
jne 0x41e9dc
inc edi
lea eax, [esi + 8]
mov dword [eax], edi
cmp byte [edi], bl
je 0x41e806
cmp byte [edi], cl
je 0x41e97e
inc edi
cmp byte [edi], bl
jne 0x41e975
cmp byte [edi], bl
je 0x41e806
mov byte [edi], bl
inc edi
cmp byte [edi], bl
je 0x41e806
test byte [ebp + 0x14], 0x80
je 0x41e9a9
test byte [ebp + 0x15], 0x10
je 0x41e9a4
call fcn.0041e174
jmp 0x41e9a9
call fcn.0041e047
mov cl, byte [edi]
cmp cl, 0x3e
je 0x41e646
cmp cl, 0x2f
je 0x41ea23
cmp cl, bl
jle 0x41e9dc
cmp cl, 0x21
jge 0x41e9dc
mov al, byte [edi]
cmp al, bl
jle 0x41e9cf
cmp al, 0x21
jge 0x41e9cf
inc edi
jmp 0x41e9c2
cmp byte [edi], bl
jne 0x41e8c8
jmp 0x41e806
mov bl, cl
call fcn.0041e020
test al, al
jne 0x41e8c8
mov al, byte [edi]
test al, al
je 0x41e63d
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0xc], 6
jne 0x41e63d
cmp al, 0x2f
je 0x41ea0d
inc edi
mov al, byte [edi]
test al, al
jne 0x41ea02
cmp byte [edi], 0
je 0x41e806
mov al, byte [edi]
test al, al
jle 0x41ea4d
cmp al, 0x21
jge 0x41ea4d
inc edi
jmp 0x41ea16
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x41ea36
cmp al, 0x21
jl 0x41ea2b
mov al, byte [edi]
cmp al, bl
je 0x41e806
cmp al, 0x3e
jne 0x41e647
jmp 0x41e646
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x2f
jne 0x41ea5c
inc edi
mov al, byte [edi]
test al, al
jle 0x41ea66
cmp al, 0x21
jl 0x41ea5b
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3e
jne 0x41ea75
inc edi
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x41e647
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3c
je 0x41ed38
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 3
mov edi, ebx
call fcn.0041e2d4
lea esi, [eax + 0x28]
mov dword [esi], ebx
cmp byte [ebx], 0
pop ecx
mov dword [ebp - 8], eax
je 0x41eabc
cmp byte [edi], 0x3c
je 0x41eabc
inc edi
cmp byte [edi], 0
jne 0x41eab1
mov cl, byte [edi]
test cl, cl
mov byte [ebp + 0xb], cl
je 0x41e806
mov byte [edi], 0
inc edi
cmp byte [edi], 0
je 0x41e806
test byte [ebp + 0x14], 0x40
je 0x41eafa
test byte [ebp + 0x15], 0x10
mov eax, esi
je 0x41eaeb
call fcn.0041e174
jmp 0x41eaf0
call fcn.0041e047
mov ebx, dword [esi]
call fcn.0041e09a
mov eax, dword [ebp - 8]
cmp byte [ebp + 0xb], 0x3c
mov eax, dword [eax]
mov dword [ebp - 8], eax
jne 0x41ef9c
mov al, byte [edi]
cmp al, 0x2f
jne 0x41eb2d
cmp al, 0x3e
je 0x41eb1a
inc edi
mov al, byte [edi]
test al, al
jne 0x41eb0f
cmp byte [edi], 0
je 0x41e806
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x41e63a
mov al, byte [edi]
cmp al, 0x21
je 0x41e555
test al, al
jne 0x41e555
jmp 0x41e806
mov bl, byte [edi]
cmp bl, 0x44
je 0x41ed83
call fcn.0041e020
test al, al
je 0x41ef9c
mov esi, edi
jmp 0x41eb61
inc edi
mov bl, byte [edi]
call fcn.0041e020
test al, al
jne 0x41eb60
mov bl, byte [edi]
test bl, bl
je 0x41e806
mov byte [edi], al
inc edi
cmp byte [edi], al
je 0x41e806
push str.ATTLIST
push esi
mov dword [ebp + 8], 9
call fcn.0042c9b5
test eax, eax
pop ecx
pop ecx
jne 0x41eba2
mov dword [ebp + 8], 0xa
jmp 0x41ebd4
push str.ELEMENT
push esi
call fcn.0042c9b5
test eax, eax
pop ecx
pop ecx
jne 0x41ebbc
mov dword [ebp + 8], 0xb
jmp 0x41ebd4
push str.NOTATION
push esi
call fcn.0042c9b5
test eax, eax
pop ecx
pop ecx
jne 0x41ebd4
mov dword [ebp + 8], 0xc
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.0041e2d4
cmp byte [edi], 0
pop ecx
mov esi, eax
je 0x41efc5
test bl, bl
jle 0x41efc5
cmp bl, 0x21
jge 0x41efc5
mov al, byte [edi]
test al, al
jle 0x41ec0c
cmp al, 0x21
jge 0x41ec0c
inc edi
jmp 0x41ebff
mov al, byte [edi]
test al, al
je 0x41e806
mov bl, al
call fcn.0041e020
test al, al
jne 0x41ec2a
cmp byte [edi], 0x25
jne 0x41efc5
cmp byte [edi], 0x25
mov ecx, edi
jne 0x41ec62
inc edi
mov al, byte [edi]
test al, al
jle 0x41ec5d
cmp al, 0x21
jge 0x41ec5d
mov al, byte [edi]
test al, al
jle 0x41ec49
cmp al, 0x21
jge 0x41ec49
inc edi
jmp 0x41ec3c
cmp byte [edi], 0
je 0x41e806
lea eax, [edi - 1]
mov byte [eax], 0x25
mov dword [esi + 4], eax
jmp 0x41ec68
mov dword [esi + 4], ecx
jmp 0x41ec68
mov dword [esi + 4], edi
jmp 0x41ec68
inc edi
mov bl, byte [edi]
call fcn.0041e020
test al, al
jne 0x41ec67
mov al, byte [edi]
test al, al
je 0x41e806
mov byte [edi], 0
inc edi
cmp byte [edi], 0
mov byte [ebp - 1], al
je 0x41e806
test al, al
jle 0x41efc5
cmp al, 0x21
jge 0x41efc5
mov cl, byte [edi]
xor dl, dl
cmp cl, dl
jle 0x41ecad
cmp cl, 0x21
jge 0x41ecad
inc edi
jmp 0x41ec9d
cmp byte [edi], dl
je 0x41e806
cmp dword [ebp + 8], 9
lea eax, [esi + 0x28]
mov dword [eax], edi
jne 0x41ed0d
mov byte [ebp + 0xb], dl
mov cl, byte [edi]
cmp cl, dl
je 0x41efaa
cmp byte [ebp + 0xb], dl
jne 0x41ece5
cmp cl, 0x22
je 0x41ecdc
cmp cl, 0x27
jne 0x41ecef
mov byte [ebp - 1], cl
mov byte [ebp + 0xb], 1
jmp 0x41ecf4
cmp cl, byte [ebp - 1]
jne 0x41ecf4
mov byte [ebp + 0xb], dl
jmp 0x41ecf4
cmp cl, 0x3e
je 0x41ecf7
inc edi
jmp 0x41ecc3
mov byte [edi], dl
inc edi
test byte [ebp + 0x15], 2
je 0x41ed2e
test byte [ebp + 0x15], 0x10
je 0x41ed29
call fcn.0041e174
jmp 0x41ed2e
cmp byte [edi], dl
je 0x41e806
cmp byte [edi], 0x3e
je 0x41ed1f
inc edi
cmp byte [edi], dl
jne 0x41ed15
cmp byte [edi], dl
je 0x41e806
jmp 0x41ecf7
call fcn.0041e047
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x41e52d
cmp byte [edi + 1], 0x2f
jne 0x41e52d
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3e
je 0x41f012
inc edi
mov al, byte [edi]
test al, al
jne 0x41ed4c
jmp 0x41f012
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3e
je 0x41ed75
inc edi
mov al, byte [edi]
test al, al
jne 0x41ed6a
cmp byte [edi], 0
je 0x41e806
jmp 0x41effe
inc edi
cmp byte [edi], 0x4f
jne 0x41ef9c
inc edi
cmp byte [edi], 0x43
jne 0x41ef9c
inc edi
cmp byte [edi], 0x54
jne 0x41ef9c
inc edi
cmp byte [edi], 0x59
jne 0x41ef9c
inc edi
cmp byte [edi], 0x50
jne 0x41ef9c
inc edi
cmp byte [edi], 0x45
jne 0x41ef9c
inc edi
mov al, byte [edi]
test al, al
jle 0x41edca
cmp al, 0x21
jl 0x41edbf
cmp byte [edi], 0
je 0x41e806
mov eax, dword [ebp + 0x14]
and eax, 4
mov dword [ebp + 8], eax
je 0x41ee01
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 8
call fcn.0041e2d4
pop ecx
mov esi, eax
push 3
pop ebx
mov dword [ebp - 8], esi
call fcn.0041e31a
mov dword [eax], edi
mov dword [eax + 8], edi
jmp 0x41ee01
inc edi
mov bl, byte [edi]
call fcn.0041e020
test al, al
jne 0x41ee00
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x41e806
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x41e806
cmp al, cl
jle 0x41ee40
cmp al, 0x21
jge 0x41ee40
mov al, byte [edi]
cmp al, cl
jle 0x41ee38
cmp al, 0x21
jge 0x41ee38
inc edi
jmp 0x41ee2b
cmp byte [edi], cl
je 0x41e806
mov bl, byte [edi]
call fcn.0041e020
test al, al
je 0x41ee94
mov dword [ebp - 0xc], edi
jmp 0x41ee51
inc edi
mov bl, byte [edi]
call fcn.0041e020
test al, al
jne 0x41ee50
cmp byte [edi], al
je 0x41e806
cmp dword [ebp + 8], 0
je 0x41ee80
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.0041e31a
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov dword [eax + 8], ecx
mov byte [edi], 0
inc edi
mov al, byte [edi]
test al, al
jle 0x41ee8b
cmp al, 0x21
jl 0x41ee80
cmp byte [edi], 0
je 0x41e806
mov al, byte [edi]
cmp al, 0x22
je 0x41ee9e
cmp al, 0x27
jne 0x41eefc
inc edi
cmp byte [edi], 0
mov dword [ebp - 0xc], edi
je 0x41eefc
cmp byte [edi], al
je 0x41eeb1
inc edi
cmp byte [edi], 0
jne 0x41eea7
cmp byte [edi], 0
je 0x41eefc
cmp dword [ebp + 8], 0
je 0x41eed0
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.0041e31a
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov byte [edi], 0
inc edi
mov al, byte [edi]
test al, al
jle 0x41eedb
cmp al, 0x21
jl 0x41eed0
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x22
je 0x41ee9e
cmp al, 0x27
je 0x41ee9e
mov bl, al
call fcn.0041e020
test al, al
jne 0x41ee40
cmp byte [edi], 0x5b
jne 0x41f01b
mov esi, dword [ebp - 8]
inc edi
cmp dword [ebp + 8], 0
je 0x41ef12
mov dword [esi + 0x28], edi
xor ecx, ecx
inc ecx
jmp 0x41ef2a
mov al, byte [edi]
cmp al, 0x5d
jne 0x41ef20
dec ecx
jmp 0x41ef25
cmp al, 0x5b
jne 0x41ef25
inc ecx
test ecx, ecx
je 0x41ef2f
inc edi
cmp byte [edi], 0
jne 0x41ef17
cmp dword [ebp + 8], 0
je 0x41ef87
mov ebx, dword [ebp + 0x14]
mov eax, ebx
and eax, 0x2000
mov byte [edi], 0
jne 0x41ef64
test bh, 0x40
jne 0x41ef64
test bh, 4
je 0x41ef81
test bh, 0x10
lea eax, [esi + 0x28]
je 0x41ef5d
call fcn.0041e174
jmp 0x41ef81
call fcn.0041e047
jmp 0x41ef81
test eax, eax
je 0x41ef78
push ebx
push dword [ebp + 0x10]
push esi
push dword [esi + 0x28]
call fcn.0041e506
add esp, 0x10
test bh, 0x40
jne 0x41f025
mov eax, dword [esi]
inc edi
mov dword [ebp - 8], eax
mov al, byte [edi]
test al, al
je 0x41e806
cmp al, 0x3e
je 0x41ef9c
inc edi
mov al, byte [edi]
test al, al
jne 0x41ef91
cmp byte [edi], 0
jne 0x41e52d
jmp 0x41e806
test byte [ebp + 0x15], 2
je 0x41efc5
test byte [ebp + 0x15], 0x10
lea eax, [esi + 0x28]
je 0x41efc0
call fcn.0041e174
jmp 0x41efc5
call fcn.0041e047
mov eax, dword [esi]
jmp 0x41e525
mov al, byte [edi]
cmp al, cl
je 0x41e806
cmp al, 0x3e
je 0x41efe1
inc edi
mov al, byte [edi]
cmp al, cl
jne 0x41efd6
cmp byte [edi], cl
je 0x41e806
jmp 0x41efc5
cmp byte [edi], 0x2f
jne 0x41ef9c
inc edi
cmp byte [edi], 0x3e
jne 0x41ef9c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
jmp 0x41ef9c
mov al, byte [edi]
cmp al, 0x2f
jne 0x41ef9c
cmp al, 0x3e
je 0x41f012
inc edi
mov al, byte [edi]
test al, al
jne 0x41f007
cmp byte [edi], 0
je 0x41e806
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x41e525
lea eax, [edi + 1]
jmp 0x41e808