Function at 0x418cb3
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 0x418fb3
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x418fb3
mov dword [ebp - 8], eax
jmp 0x419749
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3c
je 0x418cef
inc edi
mov al, byte [edi]
test al, al
jne 0x418ce4
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3c
jne 0x419749
inc edi
mov bl, byte [edi]
cmp bl, 0x3f
jne 0x418d53
inc edi
mov bl, byte [edi]
call fcn.004187cd
test al, al
je 0x41950d
test byte [ebp + 0x14], 2
je 0x41950d
cmp byte [edi], 0
mov ecx, edi
je 0x418fb3
cmp byte [edi], 0x3f
je 0x418d39
inc edi
cmp byte [edi], 0
jne 0x418d2e
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3f
jne 0x418d4a
mov byte [edi], 0x2f
mov edi, ecx
push 6
jmp 0x41900e
cmp bl, 0x21
jne 0x418fff
inc edi
mov al, byte [edi]
cmp al, 0x2d
jne 0x418e47
inc edi
test byte [ebp + 0x14], 8
je 0x418e0b
cmp byte [edi], al
jne 0x418e0b
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 5
inc edi
call fcn.00418a81
mov esi, eax
lea eax, [esi + 0x28]
mov dword [eax], edi
cmp byte [edi], 0
pop ecx
je 0x418fb3
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x418dbf
mov bl, byte [edi + 2]
test bl, bl
je 0x418dbf
cmp byte [edi], 0x2d
jne 0x418db8
cmp dl, 0x2d
jne 0x418db8
cmp bl, 0x3e
je 0x418dbf
mov edi, ecx
cmp byte [edi], 0
jne 0x418d99
cmp byte [edi], 0
je 0x418fb3
test byte [ebp + 0x15], 8
mov byte [edi], 0
je 0x418de3
test byte [ebp + 0x15], 0x10
je 0x418dde
call fcn.00418921
jmp 0x418de3
call fcn.004187f4
mov eax, dword [esi]
inc edi
inc edi
mov dword [ebp - 8], eax
cmp byte [edi], 0x3e
jne 0x419798
inc edi
mov ebx, edi
mov al, byte [edi]
test al, al
jle 0x41922f
cmp al, 0x21
jge 0x41922f
inc edi
jmp 0x418df6
mov al, byte [edi]
test al, al
je 0x418fb3
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x418e3a
mov bl, byte [edi + 2]
test bl, bl
je 0x418e3a
cmp al, 0x2d
jne 0x418e32
cmp dl, al
jne 0x418e32
cmp bl, 0x3e
je 0x418e3a
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x418e15
cmp byte [edi], 0
je 0x418fb3
inc edi
inc edi
jmp 0x418dea
cmp al, 0x5b
jne 0x4192f1
inc edi
mov al, byte [edi]
cmp al, 0x49
jne 0x418f27
inc edi
cmp byte [edi], 0x4e
jne 0x419749
inc edi
cmp byte [edi], 0x43
jne 0x419749
inc edi
cmp byte [edi], 0x4c
jne 0x419749
inc edi
cmp byte [edi], 0x55
jne 0x419749
inc edi
cmp byte [edi], 0x44
jne 0x419749
inc edi
cmp byte [edi], 0x45
jne 0x419749
inc edi
cmp byte [edi], 0x5b
jne 0x419749
inc edi
test byte [ebp + 0x14], 4
je 0x418f1a
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 7
call fcn.00418a81
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
cmp byte [edi], 0x5d
jne 0x418ecd
cmp byte [edi + 1], 0x5d
jne 0x418ecd
cmp byte [edi + 2], 0x3e
je 0x418ed0
inc edi
jmp 0x418ebc
cmp byte [edi], 0x5d
jne 0x418fbf
mov byte [edi], 0
inc edi
test byte [ebp + 0x15], 1
je 0x418fbf
test byte [ebp + 0x15], 0x10
je 0x418fba
call fcn.00418921
jmp 0x418fbf
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x418f20
mov bl, byte [edi + 2]
test bl, bl
je 0x418f20
cmp al, 0x5d
jne 0x418f18
cmp dl, al
jne 0x418f18
cmp bl, 0x3e
je 0x418f20
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x418efb
inc edi
inc edi
jmp 0x418dea
cmp al, 0x43
jne 0x419749
inc edi
cmp byte [edi], 0x44
jne 0x419749
inc edi
cmp byte [edi], 0x41
jne 0x419749
inc edi
cmp byte [edi], 0x54
jne 0x419749
inc edi
cmp byte [edi], 0x41
jne 0x419749
inc edi
cmp byte [edi], 0x5b
jne 0x419749
inc edi
test byte [ebp + 0x14], 0x10
je 0x418ff4
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 4
call fcn.00418a81
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
jmp 0x418fa4
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x418fa9
mov bl, byte [edi + 2]
test bl, bl
je 0x418fa9
cmp byte [edi], 0x5d
jne 0x418fa2
cmp dl, 0x5d
jne 0x418fa2
cmp bl, 0x3e
je 0x418fa9
mov edi, ecx
cmp byte [edi], 0
jne 0x418f83
cmp byte [edi + 2], 0
jne 0x418ed0
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
call fcn.004187f4
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x418f21
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x418f20
mov bl, byte [edi + 2]
test bl, bl
je 0x418f20
cmp al, 0x5d
jne 0x418ff2
cmp dl, al
jne 0x418ff2
cmp bl, 0x3e
je 0x418f20
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x418fc9
jmp 0x418f20
call fcn.004187cd
test al, al
je 0x4197ae
push 2
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
call fcn.00418a81
mov esi, eax
pop ecx
mov dword [ebp - 8], eax
mov dword [esi + 4], edi
jmp 0x419025
inc edi
mov bl, byte [edi]
call fcn.004187cd
test al, al
jne 0x419024
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x418fb3
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x418fb3
cmp al, 0x2f
je 0x419779
cmp al, cl
jle 0x418df4
cmp al, 0x21
jge 0x418df4
mov al, byte [edi]
test al, al
jle 0x41906c
cmp al, 0x21
jge 0x41906c
inc edi
jmp 0x41905f
cmp byte [edi], 0
je 0x418fb3
mov bl, byte [edi]
call fcn.004187cd
test al, al
je 0x418dea
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.00418ac7
mov esi, eax
mov dword [esi], edi
jmp 0x419096
inc edi
mov bl, byte [edi]
call fcn.004187cd
test al, al
jne 0x419095
mov dl, byte [edi]
xor bl, bl
cmp dl, bl
je 0x418fb3
mov byte [edi], bl
inc edi
mov cl, byte [edi]
cmp cl, bl
je 0x418fb3
cmp dl, bl
jle 0x4190da
cmp dl, 0x21
jge 0x4190da
mov al, byte [edi]
cmp al, bl
jle 0x4190d0
cmp al, 0x21
jge 0x4190d0
inc edi
jmp 0x4190c3
mov cl, byte [edi]
cmp cl, bl
je 0x418fb3
cmp cl, bl
je 0x419189
cmp dl, 0x3d
je 0x4190f0
cmp cl, 0x3d
jne 0x419189
cmp cl, 0x3d
jne 0x4190f6
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x419100
cmp al, 0x21
jl 0x4190f5
mov cl, byte [edi]
cmp cl, bl
je 0x418fb3
cmp cl, 0x22
je 0x419114
cmp cl, 0x27
jne 0x419189
inc edi
lea eax, [esi + 8]
mov dword [eax], edi
cmp byte [edi], bl
je 0x418fb3
cmp byte [edi], cl
je 0x41912b
inc edi
cmp byte [edi], bl
jne 0x419122
cmp byte [edi], bl
je 0x418fb3
mov byte [edi], bl
inc edi
cmp byte [edi], bl
je 0x418fb3
test byte [ebp + 0x14], 0x80
je 0x419156
test byte [ebp + 0x15], 0x10
je 0x419151
call fcn.00418921
jmp 0x419156
call fcn.004187f4
mov cl, byte [edi]
cmp cl, 0x3e
je 0x418df3
cmp cl, 0x2f
je 0x4191d0
cmp cl, bl
jle 0x419189
cmp cl, 0x21
jge 0x419189
mov al, byte [edi]
cmp al, bl
jle 0x41917c
cmp al, 0x21
jge 0x41917c
inc edi
jmp 0x41916f
cmp byte [edi], bl
jne 0x419075
jmp 0x418fb3
mov bl, cl
call fcn.004187cd
test al, al
jne 0x419075
mov al, byte [edi]
test al, al
je 0x418dea
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0xc], 6
jne 0x418dea
cmp al, 0x2f
je 0x4191ba
inc edi
mov al, byte [edi]
test al, al
jne 0x4191af
cmp byte [edi], 0
je 0x418fb3
mov al, byte [edi]
test al, al
jle 0x4191fa
cmp al, 0x21
jge 0x4191fa
inc edi
jmp 0x4191c3
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x4191e3
cmp al, 0x21
jl 0x4191d8
mov al, byte [edi]
cmp al, bl
je 0x418fb3
cmp al, 0x3e
jne 0x418df4
jmp 0x418df3
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x2f
jne 0x419209
inc edi
mov al, byte [edi]
test al, al
jle 0x419213
cmp al, 0x21
jl 0x419208
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3e
jne 0x419222
inc edi
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x418df4
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3c
je 0x4194e5
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 3
mov edi, ebx
call fcn.00418a81
lea esi, [eax + 0x28]
mov dword [esi], ebx
cmp byte [ebx], 0
pop ecx
mov dword [ebp - 8], eax
je 0x419269
cmp byte [edi], 0x3c
je 0x419269
inc edi
cmp byte [edi], 0
jne 0x41925e
mov cl, byte [edi]
test cl, cl
mov byte [ebp + 0xb], cl
je 0x418fb3
mov byte [edi], 0
inc edi
cmp byte [edi], 0
je 0x418fb3
test byte [ebp + 0x14], 0x40
je 0x4192a7
test byte [ebp + 0x15], 0x10
mov eax, esi
je 0x419298
call fcn.00418921
jmp 0x41929d
call fcn.004187f4
mov ebx, dword [esi]
call fcn.00418847
mov eax, dword [ebp - 8]
cmp byte [ebp + 0xb], 0x3c
mov eax, dword [eax]
mov dword [ebp - 8], eax
jne 0x419749
mov al, byte [edi]
cmp al, 0x2f
jne 0x4192da
cmp al, 0x3e
je 0x4192c7
inc edi
mov al, byte [edi]
test al, al
jne 0x4192bc
cmp byte [edi], 0
je 0x418fb3
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x418de7
mov al, byte [edi]
cmp al, 0x21
je 0x418d02
test al, al
jne 0x418d02
jmp 0x418fb3
mov bl, byte [edi]
cmp bl, 0x44
je 0x419530
call fcn.004187cd
test al, al
je 0x419749
mov esi, edi
jmp 0x41930e
inc edi
mov bl, byte [edi]
call fcn.004187cd
test al, al
jne 0x41930d
mov bl, byte [edi]
test bl, bl
je 0x418fb3
mov byte [edi], al
inc edi
cmp byte [edi], al
je 0x418fb3
push str.ATTLIST
push esi
mov dword [ebp + 8], 9
call fcn.00420fad
test eax, eax
pop ecx
pop ecx
jne 0x41934f
mov dword [ebp + 8], 0xa
jmp 0x419381
push str.ELEMENT
push esi
call fcn.00420fad
test eax, eax
pop ecx
pop ecx
jne 0x419369
mov dword [ebp + 8], 0xb
jmp 0x419381
push str.NOTATION
push esi
call fcn.00420fad
test eax, eax
pop ecx
pop ecx
jne 0x419381
mov dword [ebp + 8], 0xc
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.00418a81
cmp byte [edi], 0
pop ecx
mov esi, eax
je 0x419772
test bl, bl
jle 0x419772
cmp bl, 0x21
jge 0x419772
mov al, byte [edi]
test al, al
jle 0x4193b9
cmp al, 0x21
jge 0x4193b9
inc edi
jmp 0x4193ac
mov al, byte [edi]
test al, al
je 0x418fb3
mov bl, al
call fcn.004187cd
test al, al
jne 0x4193d7
cmp byte [edi], 0x25
jne 0x419772
cmp byte [edi], 0x25
mov ecx, edi
jne 0x41940f
inc edi
mov al, byte [edi]
test al, al
jle 0x41940a
cmp al, 0x21
jge 0x41940a
mov al, byte [edi]
test al, al
jle 0x4193f6
cmp al, 0x21
jge 0x4193f6
inc edi
jmp 0x4193e9
cmp byte [edi], 0
je 0x418fb3
lea eax, [edi - 1]
mov byte [eax], 0x25
mov dword [esi + 4], eax
jmp 0x419415
mov dword [esi + 4], ecx
jmp 0x419415
mov dword [esi + 4], edi
jmp 0x419415
inc edi
mov bl, byte [edi]
call fcn.004187cd
test al, al
jne 0x419414
mov al, byte [edi]
test al, al
je 0x418fb3
mov byte [edi], 0
inc edi
cmp byte [edi], 0
mov byte [ebp - 1], al
je 0x418fb3
test al, al
jle 0x419772
cmp al, 0x21
jge 0x419772
mov cl, byte [edi]
xor dl, dl
cmp cl, dl
jle 0x41945a
cmp cl, 0x21
jge 0x41945a
inc edi
jmp 0x41944a
cmp byte [edi], dl
je 0x418fb3
cmp dword [ebp + 8], 9
lea eax, [esi + 0x28]
mov dword [eax], edi
jne 0x4194ba
mov byte [ebp + 0xb], dl
mov cl, byte [edi]
cmp cl, dl
je 0x419757
cmp byte [ebp + 0xb], dl
jne 0x419492
cmp cl, 0x22
je 0x419489
cmp cl, 0x27
jne 0x41949c
mov byte [ebp - 1], cl
mov byte [ebp + 0xb], 1
jmp 0x4194a1
cmp cl, byte [ebp - 1]
jne 0x4194a1
mov byte [ebp + 0xb], dl
jmp 0x4194a1
cmp cl, 0x3e
je 0x4194a4
inc edi
jmp 0x419470
mov byte [edi], dl
inc edi
test byte [ebp + 0x15], 2
je 0x4194db
test byte [ebp + 0x15], 0x10
je 0x4194d6
call fcn.00418921
jmp 0x4194db
cmp byte [edi], dl
je 0x418fb3
cmp byte [edi], 0x3e
je 0x4194cc
inc edi
cmp byte [edi], dl
jne 0x4194c2
cmp byte [edi], dl
je 0x418fb3
jmp 0x4194a4
call fcn.004187f4
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x418cda
cmp byte [edi + 1], 0x2f
jne 0x418cda
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3e
je 0x4197bf
inc edi
mov al, byte [edi]
test al, al
jne 0x4194f9
jmp 0x4197bf
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3e
je 0x419522
inc edi
mov al, byte [edi]
test al, al
jne 0x419517
cmp byte [edi], 0
je 0x418fb3
jmp 0x4197ab
inc edi
cmp byte [edi], 0x4f
jne 0x419749
inc edi
cmp byte [edi], 0x43
jne 0x419749
inc edi
cmp byte [edi], 0x54
jne 0x419749
inc edi
cmp byte [edi], 0x59
jne 0x419749
inc edi
cmp byte [edi], 0x50
jne 0x419749
inc edi
cmp byte [edi], 0x45
jne 0x419749
inc edi
mov al, byte [edi]
test al, al
jle 0x419577
cmp al, 0x21
jl 0x41956c
cmp byte [edi], 0
je 0x418fb3
mov eax, dword [ebp + 0x14]
and eax, 4
mov dword [ebp + 8], eax
je 0x4195ae
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 8
call fcn.00418a81
pop ecx
mov esi, eax
push 3
pop ebx
mov dword [ebp - 8], esi
call fcn.00418ac7
mov dword [eax], edi
mov dword [eax + 8], edi
jmp 0x4195ae
inc edi
mov bl, byte [edi]
call fcn.004187cd
test al, al
jne 0x4195ad
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x418fb3
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x418fb3
cmp al, cl
jle 0x4195ed
cmp al, 0x21
jge 0x4195ed
mov al, byte [edi]
cmp al, cl
jle 0x4195e5
cmp al, 0x21
jge 0x4195e5
inc edi
jmp 0x4195d8
cmp byte [edi], cl
je 0x418fb3
mov bl, byte [edi]
call fcn.004187cd
test al, al
je 0x419641
mov dword [ebp - 0xc], edi
jmp 0x4195fe
inc edi
mov bl, byte [edi]
call fcn.004187cd
test al, al
jne 0x4195fd
cmp byte [edi], al
je 0x418fb3
cmp dword [ebp + 8], 0
je 0x41962d
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.00418ac7
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 0x419638
cmp al, 0x21
jl 0x41962d
cmp byte [edi], 0
je 0x418fb3
mov al, byte [edi]
cmp al, 0x22
je 0x41964b
cmp al, 0x27
jne 0x4196a9
inc edi
cmp byte [edi], 0
mov dword [ebp - 0xc], edi
je 0x4196a9
cmp byte [edi], al
je 0x41965e
inc edi
cmp byte [edi], 0
jne 0x419654
cmp byte [edi], 0
je 0x4196a9
cmp dword [ebp + 8], 0
je 0x41967d
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.00418ac7
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov byte [edi], 0
inc edi
mov al, byte [edi]
test al, al
jle 0x419688
cmp al, 0x21
jl 0x41967d
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x22
je 0x41964b
cmp al, 0x27
je 0x41964b
mov bl, al
call fcn.004187cd
test al, al
jne 0x4195ed
cmp byte [edi], 0x5b
jne 0x4197c8
mov esi, dword [ebp - 8]
inc edi
cmp dword [ebp + 8], 0
je 0x4196bf
mov dword [esi + 0x28], edi
xor ecx, ecx
inc ecx
jmp 0x4196d7
mov al, byte [edi]
cmp al, 0x5d
jne 0x4196cd
dec ecx
jmp 0x4196d2
cmp al, 0x5b
jne 0x4196d2
inc ecx
test ecx, ecx
je 0x4196dc
inc edi
cmp byte [edi], 0
jne 0x4196c4
cmp dword [ebp + 8], 0
je 0x419734
mov ebx, dword [ebp + 0x14]
mov eax, ebx
and eax, 0x2000
mov byte [edi], 0
jne 0x419711
test bh, 0x40
jne 0x419711
test bh, 4
je 0x41972e
test bh, 0x10
lea eax, [esi + 0x28]
je 0x41970a
call fcn.00418921
jmp 0x41972e
call fcn.004187f4
jmp 0x41972e
test eax, eax
je 0x419725
push ebx
push dword [ebp + 0x10]
push esi
push dword [esi + 0x28]
call fcn.00418cb3
add esp, 0x10
test bh, 0x40
jne 0x4197d2
mov eax, dword [esi]
inc edi
mov dword [ebp - 8], eax
mov al, byte [edi]
test al, al
je 0x418fb3
cmp al, 0x3e
je 0x419749
inc edi
mov al, byte [edi]
test al, al
jne 0x41973e
cmp byte [edi], 0
jne 0x418cda
jmp 0x418fb3
test byte [ebp + 0x15], 2
je 0x419772
test byte [ebp + 0x15], 0x10
lea eax, [esi + 0x28]
je 0x41976d
call fcn.00418921
jmp 0x419772
call fcn.004187f4
mov eax, dword [esi]
jmp 0x418cd2
mov al, byte [edi]
cmp al, cl
je 0x418fb3
cmp al, 0x3e
je 0x41978e
inc edi
mov al, byte [edi]
cmp al, cl
jne 0x419783
cmp byte [edi], cl
je 0x418fb3
jmp 0x419772
cmp byte [edi], 0x2f
jne 0x419749
inc edi
cmp byte [edi], 0x3e
jne 0x419749
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
jmp 0x419749
mov al, byte [edi]
cmp al, 0x2f
jne 0x419749
cmp al, 0x3e
je 0x4197bf
inc edi
mov al, byte [edi]
test al, al
jne 0x4197b4
cmp byte [edi], 0
je 0x418fb3
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x418cd2
lea eax, [edi + 1]
jmp 0x418fb5