Function at 0x42589a
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 0x425b9a
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x425b9a
mov dword [ebp - 8], eax
jmp 0x426330
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3c
je 0x4258d6
inc edi
mov al, byte [edi]
test al, al
jne 0x4258cb
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3c
jne 0x426330
inc edi
mov bl, byte [edi]
cmp bl, 0x3f
jne 0x42593a
inc edi
mov bl, byte [edi]
call fcn.004253b4
test al, al
je 0x4260f4
test byte [ebp + 0x14], 2
je 0x4260f4
cmp byte [edi], 0
mov ecx, edi
je 0x425b9a
cmp byte [edi], 0x3f
je 0x425920
inc edi
cmp byte [edi], 0
jne 0x425915
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3f
jne 0x425931
mov byte [edi], 0x2f
mov edi, ecx
push 6
jmp 0x425bf5
cmp bl, 0x21
jne 0x425be6
inc edi
mov al, byte [edi]
cmp al, 0x2d
jne 0x425a2e
inc edi
test byte [ebp + 0x14], 8
je 0x4259f2
cmp byte [edi], al
jne 0x4259f2
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 5
inc edi
call fcn.00425668
mov esi, eax
lea eax, [esi + 0x28]
mov dword [eax], edi
cmp byte [edi], 0
pop ecx
je 0x425b9a
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x4259a6
mov bl, byte [edi + 2]
test bl, bl
je 0x4259a6
cmp byte [edi], 0x2d
jne 0x42599f
cmp dl, 0x2d
jne 0x42599f
cmp bl, 0x3e
je 0x4259a6
mov edi, ecx
cmp byte [edi], 0
jne 0x425980
cmp byte [edi], 0
je 0x425b9a
test byte [ebp + 0x15], 8
mov byte [edi], 0
je 0x4259ca
test byte [ebp + 0x15], 0x10
je 0x4259c5
call fcn.00425508
jmp 0x4259ca
call fcn.004253db
mov eax, dword [esi]
inc edi
inc edi
mov dword [ebp - 8], eax
cmp byte [edi], 0x3e
jne 0x42637f
inc edi
mov ebx, edi
mov al, byte [edi]
test al, al
jle 0x425e16
cmp al, 0x21
jge 0x425e16
inc edi
jmp 0x4259dd
mov al, byte [edi]
test al, al
je 0x425b9a
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x425a21
mov bl, byte [edi + 2]
test bl, bl
je 0x425a21
cmp al, 0x2d
jne 0x425a19
cmp dl, al
jne 0x425a19
cmp bl, 0x3e
je 0x425a21
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x4259fc
cmp byte [edi], 0
je 0x425b9a
inc edi
inc edi
jmp 0x4259d1
cmp al, 0x5b
jne 0x425ed8
inc edi
mov al, byte [edi]
cmp al, 0x49
jne 0x425b0e
inc edi
cmp byte [edi], 0x4e
jne 0x426330
inc edi
cmp byte [edi], 0x43
jne 0x426330
inc edi
cmp byte [edi], 0x4c
jne 0x426330
inc edi
cmp byte [edi], 0x55
jne 0x426330
inc edi
cmp byte [edi], 0x44
jne 0x426330
inc edi
cmp byte [edi], 0x45
jne 0x426330
inc edi
cmp byte [edi], 0x5b
jne 0x426330
inc edi
test byte [ebp + 0x14], 4
je 0x425b01
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 7
call fcn.00425668
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
cmp byte [edi], 0x5d
jne 0x425ab4
cmp byte [edi + 1], 0x5d
jne 0x425ab4
cmp byte [edi + 2], 0x3e
je 0x425ab7
inc edi
jmp 0x425aa3
cmp byte [edi], 0x5d
jne 0x425ba6
mov byte [edi], 0
inc edi
test byte [ebp + 0x15], 1
je 0x425ba6
test byte [ebp + 0x15], 0x10
je 0x425ba1
call fcn.00425508
jmp 0x425ba6
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x425b07
mov bl, byte [edi + 2]
test bl, bl
je 0x425b07
cmp al, 0x5d
jne 0x425aff
cmp dl, al
jne 0x425aff
cmp bl, 0x3e
je 0x425b07
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x425ae2
inc edi
inc edi
jmp 0x4259d1
cmp al, 0x43
jne 0x426330
inc edi
cmp byte [edi], 0x44
jne 0x426330
inc edi
cmp byte [edi], 0x41
jne 0x426330
inc edi
cmp byte [edi], 0x54
jne 0x426330
inc edi
cmp byte [edi], 0x41
jne 0x426330
inc edi
cmp byte [edi], 0x5b
jne 0x426330
inc edi
test byte [ebp + 0x14], 0x10
je 0x425bdb
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 4
call fcn.00425668
mov esi, eax
lea eax, [esi + 0x28]
pop ecx
mov dword [eax], edi
jmp 0x425b8b
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x425b90
mov bl, byte [edi + 2]
test bl, bl
je 0x425b90
cmp byte [edi], 0x5d
jne 0x425b89
cmp dl, 0x5d
jne 0x425b89
cmp bl, 0x3e
je 0x425b90
mov edi, ecx
cmp byte [edi], 0
jne 0x425b6a
cmp byte [edi + 2], 0
jne 0x425ab7
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
call fcn.004253db
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x425b08
lea ecx, [edi + 1]
mov dl, byte [ecx]
test dl, dl
je 0x425b07
mov bl, byte [edi + 2]
test bl, bl
je 0x425b07
cmp al, 0x5d
jne 0x425bd9
cmp dl, al
jne 0x425bd9
cmp bl, 0x3e
je 0x425b07
mov edi, ecx
mov al, byte [edi]
test al, al
jne 0x425bb0
jmp 0x425b07
call fcn.004253b4
test al, al
je 0x426395
push 2
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
call fcn.00425668
mov esi, eax
pop ecx
mov dword [ebp - 8], eax
mov dword [esi + 4], edi
jmp 0x425c0c
inc edi
mov bl, byte [edi]
call fcn.004253b4
test al, al
jne 0x425c0b
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x425b9a
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x425b9a
cmp al, 0x2f
je 0x426360
cmp al, cl
jle 0x4259db
cmp al, 0x21
jge 0x4259db
mov al, byte [edi]
test al, al
jle 0x425c53
cmp al, 0x21
jge 0x425c53
inc edi
jmp 0x425c46
cmp byte [edi], 0
je 0x425b9a
mov bl, byte [edi]
call fcn.004253b4
test al, al
je 0x4259d1
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.004256ae
mov esi, eax
mov dword [esi], edi
jmp 0x425c7d
inc edi
mov bl, byte [edi]
call fcn.004253b4
test al, al
jne 0x425c7c
mov dl, byte [edi]
xor bl, bl
cmp dl, bl
je 0x425b9a
mov byte [edi], bl
inc edi
mov cl, byte [edi]
cmp cl, bl
je 0x425b9a
cmp dl, bl
jle 0x425cc1
cmp dl, 0x21
jge 0x425cc1
mov al, byte [edi]
cmp al, bl
jle 0x425cb7
cmp al, 0x21
jge 0x425cb7
inc edi
jmp 0x425caa
mov cl, byte [edi]
cmp cl, bl
je 0x425b9a
cmp cl, bl
je 0x425d70
cmp dl, 0x3d
je 0x425cd7
cmp cl, 0x3d
jne 0x425d70
cmp cl, 0x3d
jne 0x425cdd
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x425ce7
cmp al, 0x21
jl 0x425cdc
mov cl, byte [edi]
cmp cl, bl
je 0x425b9a
cmp cl, 0x22
je 0x425cfb
cmp cl, 0x27
jne 0x425d70
inc edi
lea eax, [esi + 8]
mov dword [eax], edi
cmp byte [edi], bl
je 0x425b9a
cmp byte [edi], cl
je 0x425d12
inc edi
cmp byte [edi], bl
jne 0x425d09
cmp byte [edi], bl
je 0x425b9a
mov byte [edi], bl
inc edi
cmp byte [edi], bl
je 0x425b9a
test byte [ebp + 0x14], 0x80
je 0x425d3d
test byte [ebp + 0x15], 0x10
je 0x425d38
call fcn.00425508
jmp 0x425d3d
call fcn.004253db
mov cl, byte [edi]
cmp cl, 0x3e
je 0x4259da
cmp cl, 0x2f
je 0x425db7
cmp cl, bl
jle 0x425d70
cmp cl, 0x21
jge 0x425d70
mov al, byte [edi]
cmp al, bl
jle 0x425d63
cmp al, 0x21
jge 0x425d63
inc edi
jmp 0x425d56
cmp byte [edi], bl
jne 0x425c5c
jmp 0x425b9a
mov bl, cl
call fcn.004253b4
test al, al
jne 0x425c5c
mov al, byte [edi]
test al, al
je 0x4259d1
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0xc], 6
jne 0x4259d1
cmp al, 0x2f
je 0x425da1
inc edi
mov al, byte [edi]
test al, al
jne 0x425d96
cmp byte [edi], 0
je 0x425b9a
mov al, byte [edi]
test al, al
jle 0x425de1
cmp al, 0x21
jge 0x425de1
inc edi
jmp 0x425daa
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
mov al, byte [edi]
cmp al, bl
jle 0x425dca
cmp al, 0x21
jl 0x425dbf
mov al, byte [edi]
cmp al, bl
je 0x425b9a
cmp al, 0x3e
jne 0x4259db
jmp 0x4259da
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x2f
jne 0x425df0
inc edi
mov al, byte [edi]
test al, al
jle 0x425dfa
cmp al, 0x21
jl 0x425def
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3e
jne 0x425e09
inc edi
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x4259db
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3c
je 0x4260cc
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 3
mov edi, ebx
call fcn.00425668
lea esi, [eax + 0x28]
mov dword [esi], ebx
cmp byte [ebx], 0
pop ecx
mov dword [ebp - 8], eax
je 0x425e50
cmp byte [edi], 0x3c
je 0x425e50
inc edi
cmp byte [edi], 0
jne 0x425e45
mov cl, byte [edi]
test cl, cl
mov byte [ebp + 0xb], cl
je 0x425b9a
mov byte [edi], 0
inc edi
cmp byte [edi], 0
je 0x425b9a
test byte [ebp + 0x14], 0x40
je 0x425e8e
test byte [ebp + 0x15], 0x10
mov eax, esi
je 0x425e7f
call fcn.00425508
jmp 0x425e84
call fcn.004253db
mov ebx, dword [esi]
call fcn.0042542e
mov eax, dword [ebp - 8]
cmp byte [ebp + 0xb], 0x3c
mov eax, dword [eax]
mov dword [ebp - 8], eax
jne 0x426330
mov al, byte [edi]
cmp al, 0x2f
jne 0x425ec1
cmp al, 0x3e
je 0x425eae
inc edi
mov al, byte [edi]
test al, al
jne 0x425ea3
cmp byte [edi], 0
je 0x425b9a
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x4259ce
mov al, byte [edi]
cmp al, 0x21
je 0x4258e9
test al, al
jne 0x4258e9
jmp 0x425b9a
mov bl, byte [edi]
cmp bl, 0x44
je 0x426117
call fcn.004253b4
test al, al
je 0x426330
mov esi, edi
jmp 0x425ef5
inc edi
mov bl, byte [edi]
call fcn.004253b4
test al, al
jne 0x425ef4
mov bl, byte [edi]
test bl, bl
je 0x425b9a
mov byte [edi], al
inc edi
cmp byte [edi], al
je 0x425b9a
push str.ATTLIST
push esi
mov dword [ebp + 8], 9
call fcn.0043475c
test eax, eax
pop ecx
pop ecx
jne 0x425f36
mov dword [ebp + 8], 0xa
jmp 0x425f68
push str.ELEMENT
push esi
call fcn.0043475c
test eax, eax
pop ecx
pop ecx
jne 0x425f50
mov dword [ebp + 8], 0xb
jmp 0x425f68
push str.NOTATION
push esi
call fcn.0043475c
test eax, eax
pop ecx
pop ecx
jne 0x425f68
mov dword [ebp + 8], 0xc
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
call fcn.00425668
cmp byte [edi], 0
pop ecx
mov esi, eax
je 0x426359
test bl, bl
jle 0x426359
cmp bl, 0x21
jge 0x426359
mov al, byte [edi]
test al, al
jle 0x425fa0
cmp al, 0x21
jge 0x425fa0
inc edi
jmp 0x425f93
mov al, byte [edi]
test al, al
je 0x425b9a
mov bl, al
call fcn.004253b4
test al, al
jne 0x425fbe
cmp byte [edi], 0x25
jne 0x426359
cmp byte [edi], 0x25
mov ecx, edi
jne 0x425ff6
inc edi
mov al, byte [edi]
test al, al
jle 0x425ff1
cmp al, 0x21
jge 0x425ff1
mov al, byte [edi]
test al, al
jle 0x425fdd
cmp al, 0x21
jge 0x425fdd
inc edi
jmp 0x425fd0
cmp byte [edi], 0
je 0x425b9a
lea eax, [edi - 1]
mov byte [eax], 0x25
mov dword [esi + 4], eax
jmp 0x425ffc
mov dword [esi + 4], ecx
jmp 0x425ffc
mov dword [esi + 4], edi
jmp 0x425ffc
inc edi
mov bl, byte [edi]
call fcn.004253b4
test al, al
jne 0x425ffb
mov al, byte [edi]
test al, al
je 0x425b9a
mov byte [edi], 0
inc edi
cmp byte [edi], 0
mov byte [ebp - 1], al
je 0x425b9a
test al, al
jle 0x426359
cmp al, 0x21
jge 0x426359
mov cl, byte [edi]
xor dl, dl
cmp cl, dl
jle 0x426041
cmp cl, 0x21
jge 0x426041
inc edi
jmp 0x426031
cmp byte [edi], dl
je 0x425b9a
cmp dword [ebp + 8], 9
lea eax, [esi + 0x28]
mov dword [eax], edi
jne 0x4260a1
mov byte [ebp + 0xb], dl
mov cl, byte [edi]
cmp cl, dl
je 0x42633e
cmp byte [ebp + 0xb], dl
jne 0x426079
cmp cl, 0x22
je 0x426070
cmp cl, 0x27
jne 0x426083
mov byte [ebp - 1], cl
mov byte [ebp + 0xb], 1
jmp 0x426088
cmp cl, byte [ebp - 1]
jne 0x426088
mov byte [ebp + 0xb], dl
jmp 0x426088
cmp cl, 0x3e
je 0x42608b
inc edi
jmp 0x426057
mov byte [edi], dl
inc edi
test byte [ebp + 0x15], 2
je 0x4260c2
test byte [ebp + 0x15], 0x10
je 0x4260bd
call fcn.00425508
jmp 0x4260c2
cmp byte [edi], dl
je 0x425b9a
cmp byte [edi], 0x3e
je 0x4260b3
inc edi
cmp byte [edi], dl
jne 0x4260a9
cmp byte [edi], dl
je 0x425b9a
jmp 0x42608b
call fcn.004253db
mov eax, dword [esi]
mov dword [ebp - 8], eax
jmp 0x4258c1
cmp byte [edi + 1], 0x2f
jne 0x4258c1
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3e
je 0x4263a6
inc edi
mov al, byte [edi]
test al, al
jne 0x4260e0
jmp 0x4263a6
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3e
je 0x426109
inc edi
mov al, byte [edi]
test al, al
jne 0x4260fe
cmp byte [edi], 0
je 0x425b9a
jmp 0x426392
inc edi
cmp byte [edi], 0x4f
jne 0x426330
inc edi
cmp byte [edi], 0x43
jne 0x426330
inc edi
cmp byte [edi], 0x54
jne 0x426330
inc edi
cmp byte [edi], 0x59
jne 0x426330
inc edi
cmp byte [edi], 0x50
jne 0x426330
inc edi
cmp byte [edi], 0x45
jne 0x426330
inc edi
mov al, byte [edi]
test al, al
jle 0x42615e
cmp al, 0x21
jl 0x426153
cmp byte [edi], 0
je 0x425b9a
mov eax, dword [ebp + 0x14]
and eax, 4
mov dword [ebp + 8], eax
je 0x426195
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
push 8
call fcn.00425668
pop ecx
mov esi, eax
push 3
pop ebx
mov dword [ebp - 8], esi
call fcn.004256ae
mov dword [eax], edi
mov dword [eax + 8], edi
jmp 0x426195
inc edi
mov bl, byte [edi]
call fcn.004253b4
test al, al
jne 0x426194
mov al, byte [edi]
xor cl, cl
cmp al, cl
je 0x425b9a
mov byte [edi], cl
inc edi
cmp byte [edi], cl
je 0x425b9a
cmp al, cl
jle 0x4261d4
cmp al, 0x21
jge 0x4261d4
mov al, byte [edi]
cmp al, cl
jle 0x4261cc
cmp al, 0x21
jge 0x4261cc
inc edi
jmp 0x4261bf
cmp byte [edi], cl
je 0x425b9a
mov bl, byte [edi]
call fcn.004253b4
test al, al
je 0x426228
mov dword [ebp - 0xc], edi
jmp 0x4261e5
inc edi
mov bl, byte [edi]
call fcn.004253b4
test al, al
jne 0x4261e4
cmp byte [edi], al
je 0x425b9a
cmp dword [ebp + 8], 0
je 0x426214
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.004256ae
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 0x42621f
cmp al, 0x21
jl 0x426214
cmp byte [edi], 0
je 0x425b9a
mov al, byte [edi]
cmp al, 0x22
je 0x426232
cmp al, 0x27
jne 0x426290
inc edi
cmp byte [edi], 0
mov dword [ebp - 0xc], edi
je 0x426290
cmp byte [edi], al
je 0x426245
inc edi
cmp byte [edi], 0
jne 0x42623b
cmp byte [edi], 0
je 0x426290
cmp dword [ebp + 8], 0
je 0x426264
mov esi, dword [ebp - 8]
xor ebx, ebx
inc ebx
call fcn.004256ae
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov byte [edi], 0
inc edi
mov al, byte [edi]
test al, al
jle 0x42626f
cmp al, 0x21
jl 0x426264
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x22
je 0x426232
cmp al, 0x27
je 0x426232
mov bl, al
call fcn.004253b4
test al, al
jne 0x4261d4
cmp byte [edi], 0x5b
jne 0x4263af
mov esi, dword [ebp - 8]
inc edi
cmp dword [ebp + 8], 0
je 0x4262a6
mov dword [esi + 0x28], edi
xor ecx, ecx
inc ecx
jmp 0x4262be
mov al, byte [edi]
cmp al, 0x5d
jne 0x4262b4
dec ecx
jmp 0x4262b9
cmp al, 0x5b
jne 0x4262b9
inc ecx
test ecx, ecx
je 0x4262c3
inc edi
cmp byte [edi], 0
jne 0x4262ab
cmp dword [ebp + 8], 0
je 0x42631b
mov ebx, dword [ebp + 0x14]
mov eax, ebx
and eax, 0x2000
mov byte [edi], 0
jne 0x4262f8
test bh, 0x40
jne 0x4262f8
test bh, 4
je 0x426315
test bh, 0x10
lea eax, [esi + 0x28]
je 0x4262f1
call fcn.00425508
jmp 0x426315
call fcn.004253db
jmp 0x426315
test eax, eax
je 0x42630c
push ebx
push dword [ebp + 0x10]
push esi
push dword [esi + 0x28]
call fcn.0042589a
add esp, 0x10
test bh, 0x40
jne 0x4263b9
mov eax, dword [esi]
inc edi
mov dword [ebp - 8], eax
mov al, byte [edi]
test al, al
je 0x425b9a
cmp al, 0x3e
je 0x426330
inc edi
mov al, byte [edi]
test al, al
jne 0x426325
cmp byte [edi], 0
jne 0x4258c1
jmp 0x425b9a
test byte [ebp + 0x15], 2
je 0x426359
test byte [ebp + 0x15], 0x10
lea eax, [esi + 0x28]
je 0x426354
call fcn.00425508
jmp 0x426359
call fcn.004253db
mov eax, dword [esi]
jmp 0x4258b9
mov al, byte [edi]
cmp al, cl
je 0x425b9a
cmp al, 0x3e
je 0x426375
inc edi
mov al, byte [edi]
cmp al, cl
jne 0x42636a
cmp byte [edi], cl
je 0x425b9a
jmp 0x426359
cmp byte [edi], 0x2f
jne 0x426330
inc edi
cmp byte [edi], 0x3e
jne 0x426330
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 8], eax
inc edi
jmp 0x426330
mov al, byte [edi]
cmp al, 0x2f
jne 0x426330
cmp al, 0x3e
je 0x4263a6
inc edi
mov al, byte [edi]
test al, al
jne 0x42639b
cmp byte [edi], 0
je 0x425b9a
mov eax, dword [ebp - 8]
mov eax, dword [eax]
jmp 0x4258b9
lea eax, [edi + 1]
jmp 0x425b9c