Function at 0x10022420
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10022887
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x10022887
cmp eax, 0x29
jne 0x10022460
cmp dword [esi + 0x10], 0
jne 0x10022887
test dword [esi + 0x50], 0x10000000
je 0x10022894
jmp 0x10022820
cmp eax, 0x2e
jne 0x100224b3
push 5
lea ecx, [esi + 0x24]
call fcn.100223b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10022868
cmp byte [eax], 0x5c
jne 0x1002266f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1002266f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100224ab
mov dl, byte [ecx]
cmp dl, 0x28
je 0x1002266d
cmp dl, 0x29
je 0x1002266d
test bl, 0x10
jmp 0x1002265f
cmp eax, 0x5c
jne 0x100225d1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100224fa
cmp byte [eax], 0x5c
jne 0x100224f7
lea ecx, [eax + 1]
cmp ecx, edx
je 0x100224f7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100224e4
mov dl, byte [ecx]
cmp dl, 0x28
je 0x100224f5
cmp dl, 0x29
je 0x100224f5
test bl, 0x10
jne 0x100224f7
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x100224f5
cmp dl, 0x7d
jne 0x100224f7
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10020a20
test byte [esi + 0x50], 0x80
je 0x100225c5
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x10022566
push 4
lea ecx, [esi + 0x24]
call fcn.100223b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002255a
cmp byte [eax], 0x5c
jne 0x10022557
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10022557
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10022544
mov dl, byte [ecx]
cmp dl, 0x28
je 0x10022555
cmp dl, 0x29
je 0x10022555
test bl, 0x10
jne 0x10022557
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10022555
cmp dl, 0x7d
jne 0x10022557
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10020a20
jmp 0x10022879
cmp al, 0x42
jne 0x100225c5
push 4
lea ecx, [esi + 0x24]
call fcn.100223b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100225b9
cmp byte [eax], 0x5c
jne 0x100225b6
lea ecx, [eax + 1]
cmp ecx, edx
je 0x100225b6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x100225a3
mov al, byte [ecx]
cmp al, 0x28
je 0x100225b4
cmp al, 0x29
je 0x100225b4
mov eax, dword [esi]
test dl, 0x10
jne 0x100225b6
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x100225b4
cmp dl, 0x7d
jne 0x100225b6
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10020a20
jmp 0x10022879
mov ecx, esi
call fcn.10024880
jmp 0x1002286f
cmp eax, 0x5b
jne 0x10022677
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10022618
cmp byte [eax], 0x5c
jne 0x10022615
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10022615
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10022602
mov al, byte [ecx]
cmp al, 0x28
je 0x10022613
cmp al, 0x29
je 0x10022613
mov eax, dword [esi]
test dl, 0x10
jne 0x10022615
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10022613
cmp dl, 0x7d
jne 0x10022615
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10020a20
mov ecx, esi
call fcn.10024750
cmp dword [esi + 0x4c], 0x5d
jne 0x100228a2
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10022868
cmp byte [eax], 0x5c
jne 0x1002266f
lea ecx, [eax + 1]
cmp ecx, edx
je 0x1002266f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002265c
mov al, byte [ecx]
cmp al, 0x28
je 0x1002266d
cmp al, 0x29
je 0x1002266d
mov eax, dword [esi]
test dl, 0x10
jne 0x1002266f
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x1002266d
cmp dl, 0x7d
jne 0x1002266f
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x10022868
cmp eax, 0x28
jne 0x1002272a
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100226be
cmp byte [eax], 0x5c
jne 0x100226bb
lea ecx, [eax + 1]
cmp ecx, edx
je 0x100226bb
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x100226a8
mov al, byte [ecx]
cmp al, 0x28
je 0x100226b9
cmp al, 0x29
je 0x100226b9
mov eax, dword [esi]
test dl, 0x10
jne 0x100226bb
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x100226b9
cmp dl, 0x7d
jne 0x100226bb
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10020a20
mov ecx, esi
call fcn.100249d0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10022894
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10022716
cmp byte [eax], 0x5c
jne 0x10022713
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10022713
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10022700
mov al, byte [ecx]
cmp al, 0x28
je 0x10022711
cmp al, 0x29
je 0x10022711
mov eax, dword [esi]
test dl, 0x10
jne 0x10022713
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10022711
cmp dl, 0x7d
jne 0x10022713
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10020a20
test bl, bl
je 0x10022879
jmp 0x1002286f
cmp eax, 0x5e
jne 0x10022780
push 2
lea ecx, [esi + 0x24]
call fcn.100223b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10022774
cmp byte [eax], 0x5c
jne 0x10022772
inc eax
cmp eax, ecx
je 0x10022772
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002275f
mov dl, byte [eax]
cmp dl, 0x28
je 0x10022770
cmp dl, 0x29
je 0x10022770
test cl, 0x10
jne 0x10022772
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10022770
cmp cl, 0x7d
jne 0x10022772
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10020a20
jmp 0x10022879
cmp eax, 0x24
jne 0x100227d6
push 3
lea ecx, [esi + 0x24]
call fcn.100223b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100227ca
cmp byte [eax], 0x5c
jne 0x100227c8
inc eax
cmp eax, ecx
je 0x100227c8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100227b5
mov dl, byte [eax]
cmp dl, 0x28
je 0x100227c6
cmp dl, 0x29
je 0x100227c6
test cl, 0x10
jne 0x100227c8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100227c6
cmp cl, 0x7d
jne 0x100227c8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10020a20
jmp 0x10022879
cmp eax, 0x2a
je 0x1002288d
cmp eax, 0x2b
je 0x1002288d
cmp eax, 0x3f
je 0x1002288d
cmp eax, 0x7b
je 0x1002288d
cmp eax, 0x7d
jne 0x1002280e
test dword [esi + 0x50], 0x10000000
je 0x1002289b
jmp 0x10022820
cmp eax, 0x5d
jne 0x10022820
test dword [esi + 0x50], 0x10000000
je 0x100228a2
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10024e60
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10022868
cmp byte [eax], 0x5c
jne 0x10022866
inc eax
cmp eax, ecx
je 0x10022866
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10022853
mov dl, byte [eax]
cmp dl, 0x28
je 0x10022864
cmp dl, 0x29
je 0x10022864
test cl, 0x10
jne 0x10022866
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10022864
cmp cl, 0x7d
jne 0x10022866
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10020a20
mov ecx, esi
call fcn.10024c30
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10022436
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.100204b0
push 5
call fcn.100204b0
push 6
call fcn.100204b0
push 4
call fcn.100204b0
int3