Function at 0x1b15669
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, ecx
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x1b15680
xor eax, eax
jmp 0x1b16099
push esi
push edi
push 0x51
mov dword [ebp - 4], 0x50
call fcn.01a5412a
mov edi, eax
pop ecx
test edi, edi
je 0x1b15c20
mov ebx, dword [ebx]
xor esi, esi
mov edx, 0x20000000
test ebx, ebx
je 0x1b1571c
cmp byte [ebx], 0
je 0x1b15712
push 0x50
pop ecx
cmp esi, ecx
jl 0x1b156df
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, edx
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 4]
mov edi, eax
mov edx, 0x20000000
mov al, byte [ebx]
mov byte [esi + edi], al
inc esi
inc ebx
cmp byte [ebx], 0
jne 0x1b156b0
cmp esi, ecx
jl 0x1b15712
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, edx
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov byte [esi + edi], 0x3a
mov edx, 0x20000000
inc esi
mov ebx, dword [ebp - 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x1b15840
cmp byte [ecx], 0
mov ebx, dword [ebp - 4]
je 0x1b15dc7
lea eax, [esi + 3]
cmp eax, ebx
jl 0x1b15763
add ebx, ebx
lea eax, [ebx + 1]
cmp eax, edx
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 0xc]
mov edi, eax
mov al, byte [ecx]
cmp al, 0x3b
je 0x1b15825
cmp al, 0x2f
je 0x1b15825
cmp al, 0x3f
je 0x1b15825
cmp al, 0x3a
je 0x1b15825
cmp al, 0x40
je 0x1b15825
cmp al, 0x26
je 0x1b15825
cmp al, 0x3d
je 0x1b15825
cmp al, 0x2b
je 0x1b15825
cmp al, 0x24
je 0x1b15825
cmp al, 0x2c
je 0x1b15825
cmp al, 0x5b
je 0x1b15825
cmp al, 0x5d
je 0x1b15825
cmp al, 0x61
jl 0x1b157bd
cmp al, 0x7a
jle 0x1b15825
cmp al, 0x41
jl 0x1b157c5
cmp al, 0x5a
jle 0x1b15825
cmp al, 0x30
jl 0x1b157cd
cmp al, 0x39
jle 0x1b15825
cmp al, 0x2d
je 0x1b15825
cmp al, 0x5f
je 0x1b15825
cmp al, 0x2e
je 0x1b15825
cmp al, 0x21
je 0x1b15825
cmp al, 0x7e
je 0x1b15825
cmp al, 0x2a
je 0x1b15825
cmp al, 0x27
je 0x1b15825
cmp al, 0x28
je 0x1b15825
cmp al, 0x29
je 0x1b15825
movzx edx, al
push 9
mov ecx, edx
mov byte [esi + edi], 0x25
shr ecx, 4
and edx, 0xf
pop eax
cmp eax, ecx
push 9
sbb al, al
add cl, 0x30
and al, 7
add al, cl
mov ecx, dword [ebp - 0xc]
mov byte [esi + edi + 1], al
add esi, 2
pop eax
cmp eax, edx
sbb al, al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + edi], al
inc esi
inc ecx
mov dword [ebp - 0xc], ecx
cmp byte [ecx], 0
je 0x1b15dc7
mov edx, 0x20000000
jmp 0x1b15739
cmp dword [ebx + 0xc], 0
je 0x1b15a3a
mov ebx, dword [ebp - 4]
lea eax, [esi + 3]
cmp eax, ebx
jl 0x1b15877
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
cmp eax, edx
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov eax, dword [ebp - 8]
mov word [esi + edi], 0x2f2f
add esi, 2
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x1b1599b
jmp 0x1b1595d
cmp eax, ebx
jl 0x1b158c3
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 0xc]
mov edi, eax
mov al, byte [ecx]
cmp al, 0x61
jl 0x1b158d1
cmp al, 0x7a
jle 0x1b15955
cmp al, 0x41
jl 0x1b158d9
cmp al, 0x5a
jle 0x1b15955
cmp al, 0x30
jl 0x1b158e1
cmp al, 0x39
jle 0x1b15955
cmp al, 0x2d
je 0x1b15955
cmp al, 0x5f
je 0x1b15955
cmp al, 0x2e
je 0x1b15955
cmp al, 0x21
je 0x1b15955
cmp al, 0x7e
je 0x1b15955
cmp al, 0x2a
je 0x1b15955
cmp al, 0x27
je 0x1b15955
cmp al, 0x28
je 0x1b15955
cmp al, 0x29
je 0x1b15955
cmp al, 0x3b
je 0x1b15955
cmp al, 0x3a
je 0x1b15955
cmp al, 0x26
je 0x1b15955
cmp al, 0x3d
je 0x1b15955
cmp al, 0x2b
je 0x1b15955
cmp al, 0x24
je 0x1b15955
cmp al, 0x2c
je 0x1b15955
movzx edx, al
push 9
mov ecx, edx
mov byte [esi + edi], 0x25
shr ecx, 4
and edx, 0xf
pop eax
cmp eax, ecx
push 9
sbb al, al
add cl, 0x30
and al, 7
add al, cl
mov ecx, dword [ebp - 0xc]
mov byte [esi + edi + 1], al
add esi, 2
pop eax
cmp eax, edx
sbb al, al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + edi], al
inc esi
inc ecx
mov dword [ebp - 0xc], ecx
cmp byte [ecx], 0
lea eax, [esi + 3]
jne 0x1b15896
cmp eax, ebx
jl 0x1b15993
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov eax, dword [ebp - 8]
mov byte [esi + edi], 0x40
inc esi
mov ebx, dword [eax + 0xc]
cmp byte [ebx], 0
je 0x1b159dd
mov eax, dword [ebp - 4]
cmp esi, eax
jl 0x1b159ce
add eax, eax
mov dword [ebp - 4], eax
inc eax
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov al, byte [ebx]
mov byte [esi + edi], al
inc esi
inc ebx
cmp byte [ebx], 0
jne 0x1b159a3
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x1b15b95
mov ebx, dword [ebp - 4]
lea eax, [esi + 0xa]
cmp eax, ebx
jl 0x1b15a1e
add ebx, ebx
mov dword [ebp - 4], ebx
lea eax, [ebx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x14]
push ecx
push 0x11c75548
sub ebx, esi
lea eax, [esi + edi]
push ebx
push eax
call 0x528fcf
add esp, 0x10
add esi, eax
jmp 0x1b15b95
cmp dword [ebx + 8], 0
je 0x1b15b5a
mov ecx, dword [ebp - 4]
lea eax, [esi + 3]
cmp eax, ecx
jl 0x1b15a74
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, edx
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 4]
mov edi, eax
mov word [esi + edi], 0x2f2f
add esi, 2
mov ebx, dword [ebx + 8]
cmp byte [ebx], 0
je 0x1b15b95
lea eax, [esi + 3]
cmp eax, ecx
jl 0x1b15ab6
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov al, byte [ebx]
cmp al, 0x61
jl 0x1b15ac4
cmp al, 0x7a
jle 0x1b15b48
cmp al, 0x41
jl 0x1b15acc
cmp al, 0x5a
jle 0x1b15b48
cmp al, 0x30
jl 0x1b15ad4
cmp al, 0x39
jle 0x1b15b48
cmp al, 0x2d
je 0x1b15b48
cmp al, 0x5f
je 0x1b15b48
cmp al, 0x2e
je 0x1b15b48
cmp al, 0x21
je 0x1b15b48
cmp al, 0x7e
je 0x1b15b48
cmp al, 0x2a
je 0x1b15b48
cmp al, 0x27
je 0x1b15b48
cmp al, 0x28
je 0x1b15b48
cmp al, 0x29
je 0x1b15b48
cmp al, 0x24
je 0x1b15b48
cmp al, 0x2c
je 0x1b15b48
cmp al, 0x3b
je 0x1b15b48
cmp al, 0x3a
je 0x1b15b48
cmp al, 0x40
je 0x1b15b48
cmp al, 0x26
je 0x1b15b48
cmp al, 0x3d
je 0x1b15b48
cmp al, 0x2b
je 0x1b15b48
movzx edx, al
push 9
mov ecx, edx
mov byte [esi + edi], 0x25
shr ecx, 4
and edx, 0xf
pop eax
cmp eax, ecx
push 9
sbb al, al
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi + 1], al
add esi, 2
pop eax
cmp eax, edx
sbb al, al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + edi], al
inc esi
inc ebx
cmp byte [ebx], 0
je 0x1b15b95
mov ecx, dword [ebp - 4]
jmp 0x1b15a89
cmp dword [ebx], 0
je 0x1b15b95
mov ecx, dword [ebp - 4]
lea eax, [esi + 3]
cmp eax, ecx
jl 0x1b15b8c
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, edx
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov word [esi + edi], 0x2f2f
add esi, 2
mov edx, dword [ebp - 8]
mov ebx, dword [edx + 0x18]
test ebx, ebx
je 0x1b15d2c
cmp dword [edx], 0
je 0x1b15d23
cmp byte [ebx], 0x2f
jne 0x1b15d23
lea eax, [ebx + 1]
mov dword [ebp - 0xc], eax
mov al, byte [eax]
cmp al, 0x61
jl 0x1b15bc5
cmp al, 0x7a
jle 0x1b15bcf
sub al, 0x41
cmp al, 0x19
ja 0x1b15d23
cmp byte [ebx + 2], 0x3a
jne 0x1b15d23
push 0x11c7554c
push dword [edx]
call fcn.01af5b1a
pop ecx
pop ecx
test eax, eax
je 0x1b15d23
mov ecx, dword [ebp - 4]
lea eax, [esi + 3]
cmp eax, ecx
jl 0x1b15c3c
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, 0x20000000
jbe 0x1b15c11
mov byte [0], 0
jmp 0x1b15c20
push eax
push edi
call fcn.01a58bf6
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x1b15c3c
call fcn.01b19e86
mov esi, eax
call fcn.01b19ea0
push 0x11c7552c
push dword [eax]
call dword [esi]
pop ecx
pop ecx
jmp 0x1b1608b
mov al, byte [ebx]
mov ebx, dword [ebp - 0xc]
mov byte [esi + edi], al
mov al, byte [ebx]
mov byte [esi + edi + 1], al
mov al, byte [ebx + 1]
mov byte [esi + edi + 2], al
add esi, 3
add ebx, 2
jmp 0x1b15d23
mov ecx, dword [ebp - 4]
lea eax, [esi + 3]
cmp eax, ecx
jl 0x1b15c8c
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov al, byte [ebx]
cmp al, 0x61
jl 0x1b15c9a
cmp al, 0x7a
jle 0x1b15d1e
cmp al, 0x41
jl 0x1b15ca2
cmp al, 0x5a
jle 0x1b15d1e
cmp al, 0x30
jl 0x1b15caa
cmp al, 0x39
jle 0x1b15d1e
cmp al, 0x2d
je 0x1b15d1e
cmp al, 0x5f
je 0x1b15d1e
cmp al, 0x2e
je 0x1b15d1e
cmp al, 0x21
je 0x1b15d1e
cmp al, 0x7e
je 0x1b15d1e
cmp al, 0x2a
je 0x1b15d1e
cmp al, 0x27
je 0x1b15d1e
cmp al, 0x28
je 0x1b15d1e
cmp al, 0x29
je 0x1b15d1e
cmp al, 0x2f
je 0x1b15d1e
cmp al, 0x3b
je 0x1b15d1e
cmp al, 0x40
je 0x1b15d1e
cmp al, 0x26
je 0x1b15d1e
cmp al, 0x3d
je 0x1b15d1e
cmp al, 0x2b
je 0x1b15d1e
cmp al, 0x24
je 0x1b15d1e
cmp al, 0x2c
je 0x1b15d1e
movzx edx, al
push 9
mov ecx, edx
mov byte [esi + edi], 0x25
shr ecx, 4
and edx, 0xf
pop eax
cmp eax, ecx
push 9
sbb al, al
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi + 1], al
add esi, 2
pop eax
cmp eax, edx
sbb al, al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + edi], al
inc esi
inc ebx
cmp byte [ebx], 0
jne 0x1b15c5c
mov ebx, dword [ebp - 8]
xor edx, edx
cmp dword [ebx + 0x28], edx
je 0x1b15e0e
mov ecx, dword [ebp - 4]
lea ebx, [esi + 1]
cmp ebx, ecx
jl 0x1b15d6d
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, 0x20000000
ja 0x1b15e29
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 4]
mov edi, eax
mov eax, dword [ebp - 8]
mov byte [esi + edi], 0x3f
mov esi, ebx
mov ebx, dword [eax + 0x28]
cmp byte [ebx], 0
je 0x1b15dc4
lea eax, [esi + 1]
mov dword [ebp - 0xc], eax
cmp eax, ecx
jl 0x1b15db1
add ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ecx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 4]
mov edi, eax
mov al, byte [ebx]
mov byte [esi + edi], al
inc esi
mov eax, dword [ebp - 0xc]
inc eax
inc ebx
mov dword [ebp - 0xc], eax
cmp byte [ebx], 0
jne 0x1b15d84
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x20], 0
je 0x1b16044
lea eax, [esi + 3]
cmp eax, ebx
jl 0x1b15dfe
add ebx, ebx
lea eax, [ebx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov eax, dword [ebp - 8]
mov byte [esi + edi], 0x23
inc esi
mov ecx, dword [eax + 0x20]
jmp 0x1b16038
cmp dword [ebx + 0x1c], edx
mov ebx, dword [ebp - 4]
je 0x1b15dc7
lea eax, [esi + 3]
cmp eax, ebx
jl 0x1b15e47
add ebx, ebx
lea eax, [ebx + 1]
cmp eax, 0x20000000
jbe 0x1b15e34
mov byte [0], dl
jmp 0x1b1606c
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov edi, eax
mov eax, dword [ebp - 8]
mov byte [esi + edi], 0x3f
inc esi
mov ecx, dword [eax + 0x1c]
jmp 0x1b15f3f
lea eax, [esi + 3]
cmp eax, ebx
jl 0x1b15e84
add ebx, ebx
lea eax, [ebx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 0xc]
mov edi, eax
mov al, byte [ecx]
cmp al, 0x61
jl 0x1b15e92
cmp al, 0x7a
jle 0x1b15f3a
cmp al, 0x41
jl 0x1b15e9e
cmp al, 0x5a
jle 0x1b15f3a
cmp al, 0x30
jl 0x1b15eaa
cmp al, 0x39
jle 0x1b15f3a
cmp al, 0x2d
je 0x1b15f3a
cmp al, 0x5f
je 0x1b15f3a
cmp al, 0x2e
je 0x1b15f3a
cmp al, 0x21
je 0x1b15f3a
cmp al, 0x7e
je 0x1b15f3a
cmp al, 0x2a
je 0x1b15f3a
cmp al, 0x27
je 0x1b15f3a
cmp al, 0x28
je 0x1b15f3a
cmp al, 0x29
je 0x1b15f3a
cmp al, 0x3b
je 0x1b15f3a
cmp al, 0x2f
je 0x1b15f3a
cmp al, 0x3f
je 0x1b15f3a
cmp al, 0x3a
je 0x1b15f3a
cmp al, 0x40
je 0x1b15f3a
cmp al, 0x26
je 0x1b15f3a
cmp al, 0x3d
je 0x1b15f3a
cmp al, 0x2b
je 0x1b15f3a
cmp al, 0x24
je 0x1b15f3a
cmp al, 0x2c
je 0x1b15f3a
cmp al, 0x5b
je 0x1b15f3a
cmp al, 0x5d
je 0x1b15f3a
movzx edx, al
push 9
mov ecx, edx
mov byte [esi + edi], 0x25
shr ecx, 4
and edx, 0xf
pop eax
cmp eax, ecx
push 9
sbb al, al
add cl, 0x30
and al, 7
add al, cl
mov ecx, dword [ebp - 0xc]
mov byte [esi + edi + 1], al
add esi, 2
pop eax
cmp eax, edx
sbb al, al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + edi], al
inc esi
inc ecx
cmp byte [ecx], 0
mov dword [ebp - 0xc], ecx
jne 0x1b15e57
jmp 0x1b15dc7
lea eax, [esi + 3]
cmp eax, ebx
jl 0x1b15f7d
add ebx, ebx
lea eax, [ebx + 1]
cmp eax, 0x20000000
ja 0x1b16056
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
je 0x1b1606c
mov ecx, dword [ebp - 0xc]
mov edi, eax
mov al, byte [ecx]
cmp al, 0x61
jl 0x1b15f8b
cmp al, 0x7a
jle 0x1b16033
cmp al, 0x41
jl 0x1b15f97
cmp al, 0x5a
jle 0x1b16033
cmp al, 0x30
jl 0x1b15fa3
cmp al, 0x39
jle 0x1b16033
cmp al, 0x2d
je 0x1b16033
cmp al, 0x5f
je 0x1b16033
cmp al, 0x2e
je 0x1b16033
cmp al, 0x21
je 0x1b16033
cmp al, 0x7e
je 0x1b16033
cmp al, 0x2a
je 0x1b16033
cmp al, 0x27
je 0x1b16033
cmp al, 0x28
je 0x1b16033
cmp al, 0x29
je 0x1b16033
cmp al, 0x3b
je 0x1b16033
cmp al, 0x2f
je 0x1b16033
cmp al, 0x3f
je 0x1b16033
cmp al, 0x3a
je 0x1b16033
cmp al, 0x40
je 0x1b16033
cmp al, 0x26
je 0x1b16033
cmp al, 0x3d
je 0x1b16033
cmp al, 0x2b
je 0x1b16033
cmp al, 0x24
je 0x1b16033
cmp al, 0x2c
je 0x1b16033
cmp al, 0x5b
je 0x1b16033
cmp al, 0x5d
je 0x1b16033
movzx edx, al
push 9
mov ecx, edx
mov byte [esi + edi], 0x25
shr ecx, 4
and edx, 0xf
pop eax
cmp eax, ecx
push 9
sbb al, al
add cl, 0x30
and al, 7
add al, cl
mov ecx, dword [ebp - 0xc]
mov byte [esi + edi + 1], al
add esi, 2
pop eax
cmp eax, edx
sbb al, al
and al, 7
add al, 0x30
add al, dl
mov byte [esi + edi], al
inc esi
inc ecx
cmp byte [ecx], 0
mov dword [ebp - 0xc], ecx
jne 0x1b15f50
cmp esi, ebx
jl 0x1b16091
lea eax, [ebx*2 + 1]
cmp eax, 0x20000000
jbe 0x1b1605f
mov byte [0], 0
jmp 0x1b1606c
push eax
push edi
call fcn.01a58bf6
pop ecx
pop ecx
test eax, eax
jne 0x1b1608f
call fcn.01b19e86
mov esi, eax
call fcn.01b19ea0
push 0x11c7552c
push dword [eax]
call dword [esi]
push edi
call dword [0x11f95d30]
add esp, 0xc
xor eax, eax
jmp 0x1b16097
mov edi, eax
mov byte [esi + edi], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret