Function at 0x42706d
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x10
mov edi, eax
mov dword [ebp - 0x10], edx
or eax, 0xffffffff
test edx, edx
je 0x427770
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
mov ebx, eax
jmp 0x42709a
cmp byte [ebx], 0x25
jne 0x427099
add ebx, 3
jmp 0x42709a
inc ebx
mov cl, byte [ebx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x42708f
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x42708f
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x42708f
cmp cl, 0x2e
je 0x42708f
cmp cl, 0x21
je 0x42708f
cmp cl, 0x7e
je 0x42708f
cmp cl, 0x2a
je 0x42708f
cmp cl, 0x27
je 0x42708f
cmp cl, 0x28
je 0x42708f
cmp cl, 0x29
je 0x42708f
cmp cl, 0x25
jne 0x427143
movzx esi, byte [ebx + 1]
lea eax, [esi - 0x30]
cmp al, 9
lea eax, [esi - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x427118
lea eax, [esi - 0x41]
cmp al, 5
ja 0x4271cd
movzx esi, byte [ebx + 2]
lea eax, [esi - 0x30]
cmp al, 9
lea eax, [esi - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x42708f
lea eax, [esi - 0x41]
cmp al, 5
jbe 0x42708f
jmp 0x42714c
cmp cl, 0x3b
je 0x42708f
cmp cl, 0x3a
je 0x42708f
cmp cl, 0x26
je 0x42708f
cmp cl, 0x3d
je 0x42708f
cmp cl, 0x2b
je 0x42708f
cmp cl, 0x24
je 0x42708f
cmp cl, 0x2c
je 0x42708f
cmp cl, 0x40
jne 0x4271cd
test edi, edi
je 0x4271ca
mov eax, dword [edi + 0x10]
test eax, eax
je 0x42719a
push eax
call dword [0x4fa8e0]
pop esi
mov eax, dword [ebp - 0x10]
test byte [edi + 0x24], 2
mov edx, dword [eax]
je 0x4271b7
mov eax, ebx
sub eax, edx
push eax
push edx
call fcn.00449b00
pop edx
pop ecx
mov dword [edi + 0x18], eax
jmp 0x4271ca
mov eax, ebx
push 0
sub eax, edx
push eax
push edx
call fcn.0042681b
add esp, 0xc
mov dword [edi + 0x10], eax
inc ebx
jmp 0x4271ec
test edi, edi
je 0x4271e7
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4271e0
push eax
call dword [0x4fa8e0]
pop eax
mov dword [edi + 0x10], 0
mov edx, dword [ebp - 0x10]
mov ebx, dword [edx]
mov dword [ebp - 0x18], ebx
mov al, byte [ebx]
cmp al, 0x2f
jne 0x427235
test edi, edi
je 0x4274af
mov eax, dword [edi + 8]
test eax, eax
je 0x42720c
push eax
call dword [0x4fa8e0]
pop eax
mov eax, dword [edi + 0xc]
mov dword [edi + 8], 0
test eax, eax
je 0x427222
push eax
call dword [0x4fa8e0]
pop eax
mov dword [edi + 0xc], 0
mov dword [edi + 0x14], 0
jmp 0x4274af
xor esi, esi
cmp al, 0x5b
jne 0x4272ee
mov dword [ebp - 0x1c], 0
inc ebx
mov cl, byte [ebx]
cmp cl, 0x3a
jne 0x42726f
cmp dword [ebp - 0x1c], 0
jne 0x4274d8
test esi, esi
jne 0x427266
inc ebx
cmp byte [ebx], 0x3a
jne 0x4274d8
mov dword [ebp - 0x1c], 1
jmp 0x42729b
lea eax, [ecx - 0x30]
cmp al, 9
lea eax, [ecx - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x42728c
lea eax, [ecx - 0x41]
cmp al, 5
ja 0x427291
inc ebx
mov cl, byte [ebx]
jmp 0x42726f
cmp esi, 7
je 0x42729c
cmp byte [ebx], 0x3a
jne 0x4272a2
inc ebx
inc esi
cmp esi, 7
jle 0x427247
cmp dword [ebp - 0x1c], 0
sete dl
xor eax, eax
cmp esi, 8
setne al
test eax, edx
jne 0x4274d8
cmp byte [ebx], 0x5d
jne 0x4274d8
test edi, edi
je 0x4272eb
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4272d5
push eax
call dword [0x4fa8e0]
pop eax
mov eax, ebx
sub eax, dword [ebp - 0x18]
dec eax
push eax
mov eax, dword [ebp - 0x18]
inc eax
push eax
call fcn.00449b00
pop edx
pop ecx
mov dword [edi + 0xc], eax
inc ebx
jmp 0x427315
mov al, byte [ebx]
cmp al, 0x2e
je 0x4274d8
sub eax, 0x30
cmp al, 9
ja 0x427304
inc ebx
mov al, byte [ebx]
jmp 0x4272f8
cmp esi, 3
je 0x42730f
cmp byte [ebx], 0x2e
jne 0x427315
inc ebx
inc esi
cmp esi, 3
jle 0x4272ee
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x5b
je 0x427413
cmp esi, 3
jle 0x42734e
cmp byte [ebx], 0x2e
jne 0x427331
inc ebx
cmp ebx, 1
jne 0x42734e
mov al, byte [ebx]
lea edx, [eax - 0x61]
cmp dl, 0x19
setbe dl
sub eax, 0x41
cmp al, 0x19
setbe al
or eax, edx
test al, 1
je 0x427413
mov cl, byte [ebx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
seta dl
cmp al, 0x19
seta al
movzx eax, al
test eax, edx
je 0x427372
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x4274d8
inc ebx
mov cl, byte [ebx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x427372
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x427372
cmp cl, 0x2d
jne 0x42739d
dec ebx
cmp byte [ebx], 0x2e
jmp 0x4273af
cmp cl, 0x2e
jne 0x4273b8
dec ebx
mov al, byte [ebx]
cmp al, 0x2d
je 0x4274d8
cmp al, 0x2e
je 0x4274d8
inc ebx
jmp 0x427372
mov ecx, ebx
cmp byte [ebx - 1], 0x2e
jne 0x4273c3
lea ecx, [ebx - 1]
dec ecx
cmp ecx, dword [ebp - 0x18]
jb 0x4273e9
movzx esi, byte [ecx]
lea eax, [esi - 0x61]
cmp al, 0x19
lea eax, [esi - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x4273c3
lea eax, [esi - 0x30]
cmp al, 9
jbe 0x4273c3
inc ecx
cmp ecx, dword [ebp - 0x18]
je 0x4273f5
cmp byte [ecx - 1], 0x2e
jne 0x427413
mov al, byte [ecx]
lea edx, [eax - 0x61]
cmp dl, 0x19
seta dl
sub eax, 0x41
cmp al, 0x19
seta al
movzx eax, al
test eax, edx
jne 0x4274d8
test edi, edi
je 0x427472
mov eax, dword [edi + 8]
test eax, eax
je 0x427426
push eax
call dword [0x4fa8e0]
pop eax
mov edx, dword [ebp - 0x18]
mov dword [edi + 8], 0
cmp byte [edx], 0x5b
je 0x427472
mov eax, dword [edi + 0xc]
test eax, eax
je 0x427444
push eax
call dword [0x4fa8e0]
pop esi
test byte [edi + 0x24], 2
je 0x42745c
mov eax, ebx
sub eax, dword [ebp - 0x18]
push eax
push dword [ebp - 0x18]
call fcn.00449b00
pop edx
pop ecx
jmp 0x42746f
mov eax, ebx
push 0
sub eax, dword [ebp - 0x18]
push eax
push dword [ebp - 0x18]
call fcn.0042681b
add esp, 0xc
mov dword [edi + 0xc], eax
cmp byte [ebx], 0x3a
jne 0x4274aa
inc ebx
mov al, byte [ebx]
sub eax, 0x30
cmp al, 9
ja 0x4274aa
test edi, edi
je 0x42748c
mov dword [edi + 0x14], 0
mov dl, byte [ebx]
lea eax, [edx - 0x30]
cmp al, 9
ja 0x4274aa
test edi, edi
je 0x4274a7
imul eax, dword [edi + 0x14], 0xa
movsx edx, dl
lea eax, [eax + edx - 0x30]
mov dword [edi + 0x14], eax
inc ebx
jmp 0x42748c
mov eax, dword [ebp - 0x10]
mov dword [eax], ebx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
test eax, eax
je 0x4274d8
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x2f
sete al
or eax, edx
test al, 1
jne 0x42776e
cmp cl, 0x3f
je 0x42776e
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [eax], edx
mov cl, byte [edx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
seta dl
cmp al, 0x19
seta al
movzx eax, al
test eax, edx
je 0x4275de
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4275de
cmp cl, 0x2d
setne dl
xor eax, eax
cmp cl, 0x5f
setne al
test eax, edx
je 0x4275de
cmp cl, 0x2e
je 0x4275de
cmp cl, 0x21
je 0x4275de
cmp cl, 0x7e
je 0x4275de
cmp cl, 0x2a
je 0x4275de
cmp cl, 0x27
je 0x4275de
cmp cl, 0x28
je 0x4275de
cmp cl, 0x29
je 0x4275de
cmp cl, 0x25
jne 0x4275ac
mov eax, dword [ebp - 0x14]
mov bl, byte [eax + 1]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
seta dl
cmp al, 5
seta al
movzx eax, al
test eax, edx
je 0x427586
lea eax, [ebx - 0x41]
cmp al, 5
ja 0x4275d4
mov edx, dword [ebp - 0x14]
mov bl, byte [edx + 2]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
seta dl
cmp al, 5
seta al
movzx eax, al
test eax, edx
je 0x4275de
lea eax, [ebx - 0x41]
cmp al, 5
jbe 0x4275de
jmp 0x4275b1
cmp cl, 0x24
je 0x4275de
cmp cl, 0x2c
je 0x4275de
cmp cl, 0x3b
je 0x4275de
cmp cl, 0x3a
je 0x4275de
cmp cl, 0x40
je 0x4275de
cmp cl, 0x26
je 0x4275de
cmp cl, 0x3d
je 0x4275de
cmp cl, 0x2b
je 0x4275de
mov eax, 5
jmp 0x427770
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x25
jne 0x4275fe
add eax, 3
mov dword [ebp - 0x14], eax
jmp 0x427601
mov edx, dword [ebp - 0x14]
cmp byte [edx], 0x25
jne 0x4275fe
add edx, 3
mov dword [ebp - 0x14], edx
jmp 0x427601
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x4275ee
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4275ee
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x4275ee
cmp cl, 0x2e
je 0x4275ee
cmp cl, 0x21
je 0x4275ee
cmp cl, 0x7e
je 0x4275ee
cmp cl, 0x2a
je 0x4275ee
cmp cl, 0x27
je 0x4275ee
cmp cl, 0x28
je 0x4275ee
cmp cl, 0x29
je 0x4275ee
cmp cl, 0x25
jne 0x4276ad
mov edx, dword [ebp - 0x14]
mov bl, byte [edx + 1]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x427680
lea eax, [ebx - 0x41]
cmp al, 5
ja 0x4276f5
mov eax, dword [ebp - 0x14]
mov bl, byte [eax + 2]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x4275ee
lea eax, [ebx - 0x41]
cmp al, 5
jbe 0x4275ee
jmp 0x4276b6
cmp cl, 0x24
je 0x4275ee
cmp cl, 0x2c
je 0x4275ee
cmp cl, 0x3b
je 0x4275ee
cmp cl, 0x3a
je 0x4275ee
cmp cl, 0x40
je 0x4275ee
cmp cl, 0x26
je 0x4275ee
cmp cl, 0x3d
je 0x4275ee
cmp cl, 0x2b
je 0x4275ee
test edi, edi
je 0x427766
mov eax, dword [edi + 0xc]
test eax, eax
je 0x427708
push eax
call dword [0x4fa8e0]
pop esi
mov eax, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test eax, eax
je 0x42771e
push eax
call dword [0x4fa8e0]
pop ebx
mov eax, dword [edi + 8]
mov dword [edi + 0x10], 0
test eax, eax
je 0x427734
push eax
call dword [0x4fa8e0]
pop ecx
mov eax, dword [ebp - 0x10]
test byte [edi + 0x24], 2
mov edx, dword [eax]
je 0x427752
mov eax, dword [ebp - 0x14]
sub eax, edx
push eax
push edx
call fcn.00449b00
mov dword [edi + 8], eax
pop eax
pop edx
jmp 0x427766
mov eax, dword [ebp - 0x14]
push 0
sub eax, edx
push eax
push edx
call fcn.0042681b
add esp, 0xc
mov dword [edi + 8], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov dword [edx], eax
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret