Function at 0x40e32d
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, eax
movzx ecx, byte [ebx]
xor eax, eax
inc eax
cmp ecx, 0x2e
push edi
jg 0x40e49f
je 0x40e497
cmp ecx, 0x26
jg 0x40e418
je 0x40e410
cmp ecx, 0x21
jg 0x40e3be
je 0x40e3a6
cmp ecx, 9
jl 0x40e4d2
cmp ecx, 0xa
jle 0x40e381
cmp ecx, 0xb
jle 0x40e4d2
cmp ecx, 0xd
jle 0x40e381
cmp ecx, 0x20
jne 0x40e4d2
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
mov ecx, eax
jmp 0x40e391
inc ecx
movzx edx, byte [ecx + ebx]
test byte [edx + 0x4555c0], al
jne 0x40e38c
mov dword [esi], 0x95
mov eax, ecx
jmp 0x40e796
cmp byte [ebx + 1], 0x3d
push 2
pop eax
jne 0x40e790
mov dword [esi], 0x4b
jmp 0x40e796
mov edx, ecx
sub edx, 0x22
je 0x40e677
dec edx
je 0x40e3df
dec edx
dec edx
jne 0x40e4d2
mov dword [esi], 0x5a
jmp 0x40e467
movzx edx, byte [ebx + 1]
test byte [edx + 0x4555c0], 4
mov ecx, eax
je 0x40e766
inc ecx
movzx edx, byte [ecx + ebx]
test byte [edx + 0x4555c0], 4
jne 0x40e3f2
cmp ecx, eax
jle 0x40e766
mov dword [esi], 0x84
jmp 0x40e39f
mov dword [esi], 0x52
jmp 0x40e467
mov eax, ecx
sub eax, 0x27
je 0x40e677
dec eax
je 0x40e48f
dec eax
je 0x40e487
dec eax
je 0x40e47f
dec eax
je 0x40e477
dec eax
je 0x40e46f
dec eax
jne 0x40e4d2
cmp byte [ebx + 1], 0x2d
jne 0x40e461
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x40e452
cmp ecx, 0xa
je 0x40e456
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x40e448
mov dword [esi], 0x95
jmp 0x40e796
mov dword [esi], 0x57
xor eax, eax
inc eax
jmp 0x40e796
mov dword [esi], 0x19
jmp 0x40e467
mov dword [esi], 0x56
jmp 0x40e467
mov dword [esi], 0x58
jmp 0x40e467
mov dword [esi], 0x17
jmp 0x40e467
mov dword [esi], 0x16
jmp 0x40e467
mov dword [esi], 0x76
jmp 0x40e467
cmp ecx, 0x3f
jg 0x40e618
je 0x40e5f6
cmp ecx, 0x3b
jg 0x40e56b
je 0x40e561
cmp ecx, 0x2f
je 0x40e523
jle 0x40e4d2
cmp ecx, 0x39
jle 0x40e4e7
cmp ecx, 0x3a
je 0x40e766
test byte [ecx + 0x4555c0], 0x46
jne 0x40e744
xor eax, eax
inc eax
jmp 0x40e790
mov dword [esi], 0x81
xor eax, eax
jmp 0x40e4f6
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4555c0], 4
jne 0x40e4f1
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4555c0], 0x46
je 0x40e796
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4555c0], 0x46
jne 0x40e510
jmp 0x40e790
cmp byte [ebx + 1], 0x2a
jne 0x40e556
mov cl, byte [ebx + 2]
test cl, cl
je 0x40e556
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x40e541
cmp byte [eax + ebx], 0x2f
je 0x40e550
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x40e456
inc eax
jmp 0x40e536
inc eax
jmp 0x40e456
mov dword [esi], 0x59
jmp 0x40e467
xor eax, eax
inc eax
mov dword [esi], eax
jmp 0x40e796
mov eax, ecx
sub eax, 0x3c
je 0x40e5ba
dec eax
je 0x40e5a5
dec eax
jne 0x40e4d2
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x40e58d
mov dword [esi], 0x50
jmp 0x40e5c9
cmp eax, 0x3e
jne 0x40e59a
mov dword [esi], 0x55
jmp 0x40e5c9
mov dword [esi], 0x4d
jmp 0x40e467
xor eax, eax
cmp byte [ebx + 1], 0x3d
mov dword [esi], 0x4c
sete al
inc eax
jmp 0x40e796
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x40e5d1
mov dword [esi], 0x4e
push 2
pop eax
jmp 0x40e796
cmp eax, 0x3e
jne 0x40e5de
mov dword [esi], 0x4b
jmp 0x40e5c9
cmp eax, 0x3c
jne 0x40e5eb
mov dword [esi], 0x54
jmp 0x40e5c9
mov dword [esi], 0x4f
jmp 0x40e467
movzx ecx, byte [ebx + 1]
xor eax, eax
mov dword [esi], 0x85
inc eax
jmp 0x40e60a
inc eax
movzx ecx, byte [eax + ebx]
test byte [ecx + 0x4555c0], 4
jne 0x40e605
jmp 0x40e796
mov edx, ecx
sub edx, 0x40
je 0x40e766
sub edx, 0x18
je 0x40e6e6
sub edx, 3
je 0x40e6ba
sub edx, 5
je 0x40e677
sub edx, 0x18
je 0x40e6e6
sub edx, 4
je 0x40e65b
dec edx
dec edx
jne 0x40e4d2
mov dword [esi], 0x5d
jmp 0x40e467
cmp byte [ebx + 1], 0x7c
je 0x40e66c
mov dword [esi], 0x53
jmp 0x40e467
mov dword [esi], 0x5b
jmp 0x40e5c9
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
jmp 0x40e693
cmp edx, ecx
jne 0x40e68e
movzx edi, byte [ebx + eax + 1]
cmp edi, ecx
jne 0x40e697
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x40e680
cmp edx, 0x27
jne 0x40e6a7
mov dword [esi], 0x5e
jmp 0x40e5b4
test edx, edx
je 0x40e790
mov dword [esi], 0x1a
jmp 0x40e5b4
xor eax, eax
inc eax
jmp 0x40e6c8
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x40e6cd
inc eax
cmp ecx, 0x5d
jne 0x40e6bf
xor edx, edx
cmp ecx, 0x5d
setne dl
dec edx
and edx, 0xffffff86
add edx, 0x94
mov dword [esi], edx
jmp 0x40e796
cmp byte [ebx + 1], 0x27
jne 0x40e4d2
movzx ecx, byte [ebx + 2]
push 2
mov dword [esi], 0x83
pop eax
mov edx, 0x94
jmp 0x40e71c
cmp ecx, 0x27
je 0x40e720
movzx ecx, cl
test byte [ecx + 0x4555c0], 8
jne 0x40e717
mov dword [esi], edx
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x40e704
mov edi, eax
and edi, 0x80000001
jns 0x40e72f
dec edi
or edi, 0xfffffffe
inc edi
jne 0x40e739
test ecx, ecx
jne 0x40e5b4
test ecx, ecx
mov dword [esi], edx
je 0x40e796
jmp 0x40e5b4
movzx eax, byte [ebx + 1]
xor edi, edi
inc edi
jmp 0x40e752
inc edi
movzx eax, byte [edi + ebx]
test byte [eax + 0x4555c0], 0x46
jne 0x40e74d
call fcn.0040c24d
mov dword [esi], eax
mov eax, edi
jmp 0x40e796
movzx ecx, byte [ebx + 1]
xor edx, edx
test ecx, ecx
mov dword [esi], 0x85
je 0x40e790
movzx ecx, cl
test byte [ecx + 0x4555c0], 0x46
je 0x40e78c
inc edx
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x40e776
test edx, edx
jne 0x40e796
mov dword [esi], 0x94
pop edi
pop ebx
ret