Function at 0x4313b0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov esi, eax
mov edi, edx
or eax, 0xffffffff
test edx, edx
je 0x4314f1
mov eax, esi
lea ebx, [edi + 1]
call fcn.0042f580
mov dword [ebp - 0x10], edi
mov al, byte [edi]
mov ecx, 2
lea edx, [eax - 0x61]
cmp dl, 0x19
seta dl
sub eax, 0x41
cmp al, 0x19
seta al
and eax, 0xff
test edx, eax
je 0x431501
mov eax, ecx
test ecx, ecx
jne 0x431561
mov eax, dword [ebp - 0x10]
mov edx, eax
cmp byte [eax], 0x3a
je 0x4316c6
mov eax, esi
mov ebx, edi
call fcn.0042f580
mov dword [ebp - 0x1c], edi
cmp byte [edi], 0x2f
je 0x431697
mov cl, byte [edi]
cmp cl, 0x2f
je 0x431825
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 0x431453
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x431599
mov dword [ebp - 0x20], edi
mov edx, 0x3a
lea eax, [ebp - 0x20]
push 0
call fcn.0042f320
lea ebx, [ebp - 0x1c]
pop edx
test eax, eax
jne 0x4314b4
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0x2f
je 0x43157f
test esi, esi
je 0x4314b0
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x431845
mov edx, dword [ebx]
cmp edx, eax
je 0x4319f0
test byte [esi + 0x24], 2
je 0x431834
sub eax, edx
push ecx
push ecx
push eax
push edx
call fcn.00462260
mov dword [esi + 0x18], eax
add esp, 0x10
mov eax, dword [ebp - 0x20]
mov dword [ebx], eax
xor eax, eax
mov ebx, eax
test eax, eax
jne 0x431688
mov ebx, dword [ebp - 0x1c]
cmp byte [ebx], 0x3f
je 0x431670
cmp byte [ebx], 0x23
je 0x431990
cmp byte [ebx], 0
je 0x431569
mov eax, esi
mov ebx, 1
call fcn.0042f580
mov eax, esi
call fcn.0042f580
mov eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
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 0x431500
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x431500
cmp cl, 0x2b
je 0x431500
cmp cl, 0x2d
je 0x431500
cmp cl, 0x2e
je 0x431500
test esi, esi
je 0x431552
mov eax, dword [esi]
test eax, eax
jne 0x431813
push eax
push eax
mov edx, ebx
mov eax, dword [ebp - 0x10]
sub edx, eax
push edx
push eax
call fcn.00462260
add esp, 0x10
mov dword [esi], eax
xor ecx, ecx
mov dword [ebp - 0x10], ebx
mov eax, ecx
test ecx, ecx
je 0x431404
test eax, eax
jne 0x431412
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0x2f
jne 0x431479
inc eax
xor edx, edx
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push 1
call fcn.0042f320
pop edi
test eax, eax
je 0x431573
jmp 0x4314b4
cmp cl, 0x2d
je 0x431453
cmp cl, 0x2e
je 0x431453
cmp cl, 0x5f
je 0x431453
cmp cl, 0x7e
je 0x431453
cmp cl, 0x25
je 0x431938
mov cl, byte [edi]
cmp cl, 0x21
sete dl
cmp cl, 0x24
sete al
or eax, edx
test al, 1
jne 0x431453
cmp cl, 0x26
je 0x431453
cmp cl, 0x28
je 0x431453
cmp cl, 0x29
je 0x431453
cmp cl, 0x2a
je 0x431453
cmp cl, 0x2b
je 0x431453
cmp cl, 0x2c
je 0x431453
cmp cl, 0x3b
je 0x431453
cmp cl, 0x3d
je 0x431453
cmp cl, 0x27
je 0x431453
cmp cl, 0x3a
je 0x431453
cmp cl, 0x40
je 0x431453
test esi, esi
je 0x4314c1
mov eax, dword [esi + 0x18]
test eax, eax
je 0x431660
sub esp, 0xc
push eax
call dword [0x69a2d0]
add esp, 0x10
mov ebx, dword [ebp - 0x1c]
mov dword [esi + 0x18], 0
jmp 0x4314c1
inc ebx
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
mov eax, esi
call fcn.00430f60
mov ebx, eax
test eax, eax
je 0x431930
test ebx, ebx
jne 0x4314e8
xor eax, eax
jmp 0x43156b
cmp byte [edi + 1], 0x2f
jne 0x431427
add ebx, 2
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
mov eax, esi
call fcn.004309c0
mov ebx, eax
test eax, eax
jne 0x431688
lea edx, [ebp - 0x1c]
mov eax, esi
call fcn.00430df0
jmp 0x4314b4
lea ebx, [eax + 1]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], ebx
cmp byte [edx + 1], 0x2f
je 0x4319b0
mov cl, byte [ebx]
cmp cl, 0x2f
je 0x4319fc
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 0x4318a2
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4318a2
cmp cl, 0x2d
je 0x4318a2
cmp cl, 0x2e
je 0x4318a2
cmp cl, 0x5f
je 0x4318a2
cmp cl, 0x7e
je 0x4318a2
cmp cl, 0x25
je 0x43185a
mov cl, byte [ebx]
cmp cl, 0x21
sete dl
cmp cl, 0x24
sete al
or eax, edx
test al, 1
jne 0x4318a2
cmp cl, 0x26
je 0x4318a2
cmp cl, 0x28
je 0x4318a2
cmp cl, 0x29
je 0x4318a2
cmp cl, 0x2a
je 0x4318a2
cmp cl, 0x2b
je 0x4318a2
cmp cl, 0x2c
je 0x4318a2
cmp cl, 0x3b
je 0x4318a2
cmp cl, 0x3d
je 0x4318a2
cmp cl, 0x27
je 0x4318a2
cmp cl, 0x3a
je 0x4318a2
cmp cl, 0x40
je 0x4318a2
test esi, esi
je 0x4317d9
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4317d2
sub esp, 0xc
push eax
call dword [0x69a2d0]
mov eax, dword [ebp - 0x14]
add esp, 0x10
mov dword [ebp - 0x24], eax
mov dword [esi + 0x18], 0
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
xor eax, eax
test eax, eax
jne 0x431561
mov eax, dword [ebp - 0x10]
cmp byte [eax], 0x3f
je 0x431a3a
cmp byte [eax], 0x23
je 0x431a1c
cmp byte [eax], 0
je 0x431569
mov eax, esi
call fcn.0042f580
jmp 0x431412
sub esp, 0xc
push eax
call dword [0x69a2d0]
add esp, 0x10
jmp 0x43153d
lea edx, [ebp - 0x1c]
mov eax, esi
call fcn.00430e90
jmp 0x4314b4
sub eax, edx
push edi
push 0
push eax
push edx
call fcn.00430850
jmp 0x4314a7
sub esp, 0xc
push edx
call dword [0x69a2d0]
add esp, 0x10
mov eax, dword [ebp - 0x20]
jmp 0x431488
mov cl, byte [ebx + 1]
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 0x43187e
lea eax, [ecx - 0x41]
cmp al, 5
ja 0x431739
mov cl, byte [ebx + 2]
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 0x4318a2
lea eax, [ecx - 0x41]
cmp al, 5
ja 0x431739
mov dword [ebp - 0x18], ebx
xor edx, edx
lea eax, [ebp - 0x18]
push 0
call fcn.0042f320
pop ecx
test eax, eax
jne 0x4318fb
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x2f
je 0x431919
test esi, esi
je 0x4318f6
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x431a58
mov edx, dword [ebp - 0x14]
cmp edx, eax
je 0x431a6d
test byte [esi + 0x24], 2
je 0x431a0b
sub eax, edx
push ebx
push ebx
push eax
push edx
call fcn.00462260
mov dword [esi + 0x18], eax
add esp, 0x10
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
xor eax, eax
test eax, eax
jne 0x4317e1
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
jmp 0x4317dc
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x2f
jne 0x4318be
inc eax
xor edx, edx
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push 1
call fcn.0042f320
pop edx
test eax, eax
je 0x431911
jmp 0x4318fb
mov ebx, dword [ebp - 0x1c]
jmp 0x4314ca
mov cl, byte [edi + 1]
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 0x43195c
lea eax, [ecx - 0x41]
cmp al, 5
ja 0x4315c6
mov cl, byte [edi + 2]
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 0x431453
lea eax, [ecx - 0x41]
cmp al, 5
jbe 0x431453
jmp 0x4315c6
inc ebx
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
mov eax, esi
call fcn.00431190
mov ebx, eax
test eax, eax
jne 0x431688
mov ebx, dword [ebp - 0x1c]
jmp 0x4314d3
cmp byte [ebx + 1], 0x2f
jne 0x4316dc
add edx, 3
mov eax, esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], edx
lea edx, [ebp - 0x14]
call fcn.004309c0
test eax, eax
jne 0x4317e1
lea edx, [ebp - 0x14]
mov eax, esi
call fcn.00430df0
test eax, eax
jne 0x4317e1
mov eax, dword [ebp - 0x14]
jmp 0x4317dc
mov dword [esi + 0x18], 0
jmp 0x4314b0
lea edx, [ebp - 0x14]
mov eax, esi
call fcn.00430e90
jmp 0x4318fb
sub eax, edx
push ecx
push 0
push eax
push edx
call fcn.00430850
jmp 0x4318ed
inc eax
lea edx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, esi
call fcn.00431190
test eax, eax
jne 0x431561
mov eax, dword [ebp - 0x10]
jmp 0x4317fe
inc eax
lea edx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, esi
call fcn.00430f60
test eax, eax
jne 0x431561
mov eax, dword [ebp - 0x10]
jmp 0x4317f5
sub esp, 0xc
push edx
call dword [0x69a2d0]
add esp, 0x10
mov eax, dword [ebp - 0x18]
jmp 0x4318cd
mov dword [esi + 0x18], 0
jmp 0x4318f6