Function at 0x418102
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 0x418402
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x418402
mov dword [ebp - 8], eax
jmp 0x418b98
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3c
je 0x41813e
inc edi
mov al, byte [edi]
test al, al
jne 0x418133
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3c
jne 0x418b98
inc edi
mov bl, byte [edi]
cmp bl, 0x3f
jne 0x4181a2
inc edi
mov bl, byte [edi]
call fcn.00417c1c
test al, al
je 0x41895c
test byte [ebp + 0x14], 2
je 0x41895c
cmp byte [edi], 0
mov ecx, edi
je 0x418402
cmp byte [edi], 0x3f
je 0x418188
inc edi
cmp byte [edi], 0
jne 0x41817d
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3f
jne 0x418199
mov byte [edi], 0x2f
mov edi, ecx
push 6
jmp 0x41845d
cmp bl, 0x21
jne 0x41844e
inc edi
mov al, byte [edi]
cmp al, 0x2d
jne 0x418296
inc edi
test byte [ebp + 0x14], 8
je 0x41825a
cmp byte [edi], al
jne 0x41825a
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 5
inc edi
call fcn.00417ed0
mov esi, eax
lea eax, [esi + 0x28]
mov dword [eax], edi
cmp byte [edi], 0
pop ecx
je 0x418402
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41820e
mov bl, byte [edi + 2]
test bl, bl
je 0x41820e
cmp byte [edi], 0x2d
jne 0x418207
cmp dl, 0x2d
jne 0x418207
cmp bl, 0x3e
je 0x41820e
mov edi, ecx
cmp byte [edi], 0
jne 0x4181e8
cmp byte [edi], 0
je 0x418402
test byte [ebp + 0x15], 8
mov byte [edi], 0
je 0x418232
test byte [ebp + 0x15], 0x10
je 0x41822d
call fcn.00417d70
jmp 0x418232
call fcn.00417c43
mov eax, dword [esi]
inc edi
inc edi
mov dword [ebp - 8], eax
cmp byte [edi], 0x3e
jne 0x418be7
inc edi
mov ebx, edi
mov al, byte [edi]
test al, al
jle 0x41867e
cmp al, 0x21
jge 0x41867e
inc edi
jmp 0x418245
mov al, byte [edi]
test al, al
je 0x418402
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x418289
mov bl, byte [edi + 2]
test bl, bl
je 0x418289
cmp al, 0x2d
jne 0x418281
cmp dl, al
jne 0x418281
cmp bl, 0x3e
je 0x418289
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x418264
cmp byte [edi], 0
je 0x418402
inc edi
inc edi
jmp 0x418239
cmp al, 0x5b
jne 0x418740
inc edi
mov al, byte [edi]
cmp al, 0x49
jne 0x418376
inc edi
cmp byte [edi], 0x4e
jne 0x418b98
inc edi
cmp byte [edi], 0x43
jne 0x418b98
inc edi
cmp byte [edi], 0x4c
jne 0x418b98
inc edi
cmp byte [edi], 0x55
jne 0x418b98
inc edi
cmp byte [edi], 0x44
jne 0x418b98
inc edi
cmp byte [edi], 0x45
jne 0x418b98
inc edi
cmp byte [edi], 0x5b
jne 0x418b98
inc edi
test byte [ebp + 0x14], 4
je 0x418369
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 7
call fcn.00417ed0
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
cmp byte [edi], 0x5d
jne 0x41831c
cmp byte [edi + 1], 0x5d
jne 0x41831c
cmp byte [edi + 2], 0x3e
je 0x41831f
inc edi
jmp 0x41830b
cmp byte [edi], 0x5d
jne 0x41840e
mov byte [edi], 0
inc edi
test byte [ebp + 0x15], 1
je 0x41840e
test byte [ebp + 0x15], 0x10
je 0x418409
call fcn.00417d70
jmp 0x41840e
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41836f
mov bl, byte [edi + 2]
test bl, bl
je 0x41836f
cmp al, 0x5d
jne 0x418367
cmp dl, al
jne 0x418367
cmp bl, 0x3e
je 0x41836f
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x41834a
inc edi
inc edi
jmp 0x418239
cmp al, 0x43
jne 0x418b98
inc edi
cmp byte [edi], 0x44
jne 0x418b98
inc edi
cmp byte [edi], 0x41
jne 0x418b98
inc edi
cmp byte [edi], 0x54
jne 0x418b98
inc edi
cmp byte [edi], 0x41
jne 0x418b98
inc edi
cmp byte [edi], 0x5b
jne 0x418b98
inc edi
test byte [ebp + 0x14], 0x10
je 0x418443
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 4
call fcn.00417ed0
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
jmp 0x4183f3
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x4183f8
mov bl, byte [edi + 2]
test bl, bl
je 0x4183f8
cmp byte [edi], 0x5d
jne 0x4183f1
cmp dl, 0x5d
jne 0x4183f1
cmp bl, 0x3e
je 0x4183f8
mov edi, ecx
cmp byte [edi], 0
jne 0x4183d2
cmp byte [edi + 2], 0
jne 0x41831f
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
call fcn.00417c43
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x418370
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x41836f
mov bl, byte [edi + 2]
test bl, bl
je 0x41836f
cmp al, 0x5d
jne 0x418441
cmp dl, al
jne 0x418441
cmp bl, 0x3e
je 0x41836f
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x418418
jmp 0x41836f
call fcn.00417c1c
test al, al
je 0x418bfd
push 2
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
call fcn.00417ed0
mov esi, eax
pop ecx
mov dword [ebp - 8], eax
mov dword [esi + 4], edi
jmp 0x418474
inc edi
mov bl, byte [edi]
call fcn.00417c1c
test al, al
jne 0x418473
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x418402
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x418402
cmp al, 0x2f
je 0x418bc8
cmp al, cl
jle 0x418243
cmp al, 0x21
jge 0x418243
mov al, byte [edi]
test al, al
jle 0x4184bb
cmp al, 0x21
jge 0x4184bb
inc edi
jmp 0x4184ae
cmp byte [edi], 0
je 0x418402
mov bl, byte [edi]
call fcn.00417c1c
test al, al
je 0x418239
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.00417f16
mov esi, eax
mov dword [esi], edi
jmp 0x4184e5
inc edi
mov bl, byte [edi]
call fcn.00417c1c
test al, al
jne 0x4184e4
mov dl, byte [edi]
xor bl, bl
cmp dl, bl
je 0x418402
mov byte [edi], bl
inc edi
mov cl, byte [edi]
cmp cl, bl
je 0x418402
cmp dl, bl
jle 0x418529
cmp dl, 0x21
jge 0x418529
mov al, byte [edi]
cmp al, bl
jle 0x41851f
cmp al, 0x21
jge 0x41851f
inc edi
jmp 0x418512
mov cl, byte [edi]
cmp cl, bl
je 0x418402
cmp cl, bl
je 0x4185d8
cmp dl, 0x3d
je 0x41853f
cmp cl, 0x3d
jne 0x4185d8
cmp cl, 0x3d
jne 0x418545
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x41854f
cmp al, 0x21
jl 0x418544
mov cl, byte [edi]
cmp cl, bl
je 0x418402
cmp cl, 0x22
je 0x418563
cmp cl, 0x27
jne 0x4185d8
inc edi
lea eax, [esi + 8]
mov dword [eax], edi
cmp byte [edi], bl
je 0x418402
cmp byte [edi], cl
je 0x41857a
inc edi
cmp byte [edi], bl
jne 0x418571
cmp byte [edi], bl
je 0x418402
mov byte [edi], bl
inc edi
cmp byte [edi], bl
je 0x418402
test byte [ebp + 0x14], 0x80
je 0x4185a5
test byte [ebp + 0x15], 0x10
je 0x4185a0
call fcn.00417d70
jmp 0x4185a5
call fcn.00417c43
mov cl, byte [edi]
cmp cl, 0x3e
je 0x418242
cmp cl, 0x2f
je 0x41861f
cmp cl, bl
jle 0x4185d8
cmp cl, 0x21
jge 0x4185d8
mov al, byte [edi]
cmp al, bl
jle 0x4185cb
cmp al, 0x21
jge 0x4185cb
inc edi
jmp 0x4185be
cmp byte [edi], bl
jne 0x4184c4
jmp 0x418402
mov bl, cl
call fcn.00417c1c
test al, al
jne 0x4184c4
mov al, byte [edi]
test al, al
je 0x418239
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0xc], 6
jne 0x418239
cmp al, 0x2f
je 0x418609
inc edi
mov al, byte [edi]
test al, al
jne 0x4185fe
cmp byte [edi], 0
je 0x418402
mov al, byte [edi]
test al, al
jle 0x418649
cmp al, 0x21
jge 0x418649
inc edi
jmp 0x418612
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x418632
cmp al, 0x21
jl 0x418627
mov al, byte [edi]
cmp al, bl
je 0x418402
cmp al, 0x3e
jne 0x418243
jmp 0x418242
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x2f
jne 0x418658
inc edi
mov al, byte [edi]
test al, al
jle 0x418662
cmp al, 0x21
jl 0x418657
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3e
jne 0x418671
inc edi
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x418243
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3c
je 0x418934
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 3
mov edi, ebx
call fcn.00417ed0
lea esi, [eax + 0x28]
mov dword [esi], ebx
cmp byte [ebx], 0
pop ecx
mov dword [ebp - 8], eax
je 0x4186b8
cmp byte [edi], 0x3c
je 0x4186b8
inc edi
cmp byte [edi], 0
jne 0x4186ad
mov cl, byte [edi]
test cl, cl
mov byte [ebp + 0xb], cl
je 0x418402
mov byte [edi], 0
inc edi
cmp byte [edi], 0
je 0x418402
test byte [ebp + 0x14], 0x40
je 0x4186f6
test byte [ebp + 0x15], 0x10
mov eax, esi
je 0x4186e7
call fcn.00417d70
jmp 0x4186ec
call fcn.00417c43
mov ebx, dword [esi]
call fcn.00417c96
mov eax, dword [ebp - 8]
cmp byte [ebp + 0xb], 0x3c
mov eax, dword [eax]
mov dword [ebp - 8], eax
jne 0x418b98
mov al, byte [edi]
cmp al, 0x2f
jne 0x418729
cmp al, 0x3e
je 0x418716
inc edi
mov al, byte [edi]
test al, al
jne 0x41870b
cmp byte [edi], 0
je 0x418402
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x418236
mov al, byte [edi]
cmp al, 0x21
je 0x418151
test al, al
jne 0x418151
jmp 0x418402
mov bl, byte [edi]
cmp bl, 0x44
je 0x41897f
call fcn.00417c1c
test al, al
je 0x418b98
mov esi, edi
jmp 0x41875d
inc edi
mov bl, byte [edi]
call fcn.00417c1c
test al, al
jne 0x41875c
mov bl, byte [edi]
test bl, bl
je 0x418402
mov byte [edi], al
inc edi
cmp byte [edi], al
je 0x418402
push str.ATTLIST
push esi
mov dword [ebp + 8], 9
call fcn.0042040d
test eax, eax
pop ecx
pop ecx
jne 0x41879e
mov dword [ebp + 8], 0xa
jmp 0x4187d0
push str.ELEMENT
push esi
call fcn.0042040d
test eax, eax
pop ecx
pop ecx
jne 0x4187b8
mov dword [ebp + 8], 0xb
jmp 0x4187d0
push str.NOTATION
push esi
call fcn.0042040d
test eax, eax
pop ecx
pop ecx
jne 0x4187d0
mov dword [ebp + 8], 0xc
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.00417ed0
cmp byte [edi], 0
pop ecx
mov esi, eax
je 0x418bc1
test bl, bl
jle 0x418bc1
cmp bl, 0x21
jge 0x418bc1
mov al, byte [edi]
test al, al
jle 0x418808
cmp al, 0x21
jge 0x418808
inc edi
jmp 0x4187fb
mov al, byte [edi]
test al, al
je 0x418402
mov bl, al
call fcn.00417c1c
test al, al
jne 0x418826
cmp byte [edi], 0x25
jne 0x418bc1
cmp byte [edi], 0x25
mov ecx, edi
jne 0x41885e
inc edi
mov al, byte [edi]
test al, al
jle 0x418859
cmp al, 0x21
jge 0x418859
mov al, byte [edi]
test al, al
jle 0x418845
cmp al, 0x21
jge 0x418845
inc edi
jmp 0x418838
cmp byte [edi], 0
je 0x418402
lea eax, [edi - 1]
mov byte [eax], 0x25
mov dword [esi + 4], eax
jmp 0x418864
mov dword [esi + 4], ecx
jmp 0x418864
mov dword [esi + 4], edi
jmp 0x418864
inc edi
mov bl, byte [edi]
call fcn.00417c1c
test al, al
jne 0x418863
mov al, byte [edi]
test al, al
je 0x418402
mov byte [edi], 0
inc edi
cmp byte [edi], 0
mov byte [ebp - 1], al
je 0x418402
test al, al
jle 0x418bc1
cmp al, 0x21
jge 0x418bc1
mov cl, byte [edi]
xor dl, dl
cmp cl, dl
jle 0x4188a9
cmp cl, 0x21
jge 0x4188a9
inc edi
jmp 0x418899
cmp byte [edi], dl
je 0x418402
cmp dword [ebp + 8], 9
lea eax, [esi + 0x28]
mov dword [eax], edi
jne 0x418909
mov byte [ebp + 0xb], dl
mov cl, byte [edi]
cmp cl, dl
je 0x418ba6
cmp byte [ebp + 0xb], dl
jne 0x4188e1
cmp cl, 0x22
je 0x4188d8
cmp cl, 0x27
jne 0x4188eb
mov byte [ebp - 1], cl
mov byte [ebp + 0xb], 1
jmp 0x4188f0
cmp cl, byte [ebp - 1]
jne 0x4188f0
mov byte [ebp + 0xb], dl
jmp 0x4188f0
cmp cl, 0x3e
je 0x4188f3
inc edi
jmp 0x4188bf
mov byte [edi], dl
inc edi
test byte [ebp + 0x15], 2
je 0x41892a
test byte [ebp + 0x15], 0x10
je 0x418925
call fcn.00417d70
jmp 0x41892a
cmp byte [edi], dl
je 0x418402
cmp byte [edi], 0x3e
je 0x41891b
inc edi
cmp byte [edi], dl
jne 0x418911
cmp byte [edi], dl
je 0x418402
jmp 0x4188f3
call fcn.00417c43
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x418129
cmp byte [edi + 1], 0x2f
jne 0x418129
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3e
je 0x418c0e
inc edi
mov al, byte [edi]
test al, al
jne 0x418948
jmp 0x418c0e
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3e
je 0x418971
inc edi
mov al, byte [edi]
test al, al
jne 0x418966
cmp byte [edi], 0
je 0x418402
jmp 0x418bfa
inc edi
cmp byte [edi], 0x4f
jne 0x418b98
inc edi
cmp byte [edi], 0x43
jne 0x418b98
inc edi
cmp byte [edi], 0x54
jne 0x418b98
inc edi
cmp byte [edi], 0x59
jne 0x418b98
inc edi
cmp byte [edi], 0x50
jne 0x418b98
inc edi
cmp byte [edi], 0x45
jne 0x418b98
inc edi
mov al, byte [edi]
test al, al
jle 0x4189c6
cmp al, 0x21
jl 0x4189bb
cmp byte [edi], 0
je 0x418402
mov eax, dword [ebp + 0x14]
and eax, 4
mov dword [ebp + 8], eax
je 0x4189fd
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 8
call fcn.00417ed0
pop ecx
mov esi, eax
push 3
pop ebx
mov dword [ebp - 8], esi
call fcn.00417f16
mov dword [eax], edi
mov dword [eax + 8], edi
jmp 0x4189fd
inc edi
mov bl, byte [edi]
call fcn.00417c1c
test al, al
jne 0x4189fc
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x418402
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x418402
cmp al, cl
jle 0x418a3c
cmp al, 0x21
jge 0x418a3c
mov al, byte [edi]
cmp al, cl
jle 0x418a34
cmp al, 0x21
jge 0x418a34
inc edi
jmp 0x418a27
cmp byte [edi], cl
je 0x418402
mov bl, byte [edi]
call fcn.00417c1c
test al, al
je 0x418a90
mov dword [ebp - 0xc], edi
jmp 0x418a4d
inc edi
mov bl, byte [edi]
call fcn.00417c1c
test al, al
jne 0x418a4c
cmp byte [edi], al
je 0x418402
cmp dword [ebp + 8], 0
je 0x418a7c
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.00417f16
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 0x418a87
cmp al, 0x21
jl 0x418a7c
cmp byte [edi], 0
je 0x418402
mov al, byte [edi]
cmp al, 0x22
je 0x418a9a
cmp al, 0x27
jne 0x418af8
inc edi
cmp byte [edi], 0
mov dword [ebp - 0xc], edi
je 0x418af8
cmp byte [edi], al
je 0x418aad
inc edi
cmp byte [edi], 0
jne 0x418aa3
cmp byte [edi], 0
je 0x418af8
cmp dword [ebp + 8], 0
je 0x418acc
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.00417f16
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov byte [edi], 0
inc edi
mov al, byte [edi]
test al, al
jle 0x418ad7
cmp al, 0x21
jl 0x418acc
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x22
je 0x418a9a
cmp al, 0x27
je 0x418a9a
mov bl, al
call fcn.00417c1c
test al, al
jne 0x418a3c
cmp byte [edi], 0x5b
jne 0x418c17
mov esi, dword [ebp - 8]
inc edi
cmp dword [ebp + 8], 0
je 0x418b0e
mov dword [esi + 0x28], edi
xor ecx, ecx
inc ecx
jmp 0x418b26
mov al, byte [edi]
cmp al, 0x5d
jne 0x418b1c
dec ecx
jmp 0x418b21
cmp al, 0x5b
jne 0x418b21
inc ecx
test ecx, ecx
je 0x418b2b
inc edi
cmp byte [edi], 0
jne 0x418b13
cmp dword [ebp + 8], 0
je 0x418b83
mov ebx, dword [ebp + 0x14]
mov eax, ebx
and eax, 0x2000
mov byte [edi], 0
jne 0x418b60
test bh, 0x40
jne 0x418b60
test bh, 4
je 0x418b7d
test bh, 0x10
lea eax, [esi + 0x28]
je 0x418b59
call fcn.00417d70
jmp 0x418b7d
call fcn.00417c43
jmp 0x418b7d
test eax, eax
je 0x418b74
push ebx
push dword [ebp + 0x10]
push esi
push dword [esi + 0x28]
call fcn.00418102
add esp, 0x10
test bh, 0x40
jne 0x418c21
mov eax, dword [esi]
inc edi
mov dword [ebp - 8], eax
mov al, byte [edi]
test al, al
je 0x418402
cmp al, 0x3e
je 0x418b98
inc edi
mov al, byte [edi]
test al, al
jne 0x418b8d
cmp byte [edi], 0
jne 0x418129
jmp 0x418402
test byte [ebp + 0x15], 2
je 0x418bc1
test byte [ebp + 0x15], 0x10
lea eax, [esi + 0x28]
je 0x418bbc
call fcn.00417d70
jmp 0x418bc1
call fcn.00417c43
mov eax, dword [esi]
jmp 0x418121
mov al, byte [edi]
cmp al, cl
je 0x418402
cmp al, 0x3e
je 0x418bdd
inc edi
mov al, byte [edi]
cmp al, cl
jne 0x418bd2
cmp byte [edi], cl
je 0x418402
jmp 0x418bc1
cmp byte [edi], 0x2f
jne 0x418b98
inc edi
cmp byte [edi], 0x3e
jne 0x418b98
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
jmp 0x418b98
mov al, byte [edi]
cmp al, 0x2f
jne 0x418b98
cmp al, 0x3e
je 0x418c0e
inc edi
mov al, byte [edi]
test al, al
jne 0x418c03
cmp byte [edi], 0
je 0x418402
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x418121
lea eax, [edi + 1]
jmp 0x418404