Function at 0x41a5e3
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, eax
movzx ecx, byte [ebx]
cmp ecx, 0x2e
push esi
mov esi, dword [sym.imp.MSVCR90.dll_isdigit]
push edi
jg 0x41a7a8
je 0x41a791
cmp ecx, 0x26
jg 0x41a6fd
je 0x41a6f2
cmp ecx, 0x22
jg 0x41a695
je 0x41aa2f
cmp ecx, 9
jl 0x41a7df
cmp ecx, 0xa
jle 0x41a669
cmp ecx, 0xb
jle 0x41a7df
cmp ecx, 0xd
jle 0x41a669
cmp ecx, 0x20
je 0x41a669
cmp ecx, 0x21
jne 0x41a7df
cmp byte [ebx + 1], 0x3d
mov eax, dword [ebp + 8]
push 2
je 0x41a65e
mov dword [eax], 0x91
jmp 0x41a96f
mov dword [eax], 0x43
jmp 0x41a96f
movzx eax, byte [ebx + 1]
mov esi, dword [sym.imp.MSVCR90.dll_isspace]
xor edi, edi
inc edi
jmp 0x41a67d
inc edi
movzx eax, byte [edi + ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a678
mov eax, dword [ebp + 8]
mov dword [eax], 0x92
mov eax, edi
jmp 0x41abc8
mov eax, ecx
sub eax, 0x23
je 0x41a6b8
dec eax
je 0x41ab3b
dec eax
jne 0x41a7df
mov eax, dword [ebp + 8]
mov dword [eax], 0x52
jmp 0x41a752
movzx eax, byte [ebx + 1]
mov esi, dword [sym.imp.MSVCR90.dll_isdigit]
xor edi, edi
push eax
inc edi
call esi
pop ecx
test eax, eax
je 0x41ab3b
inc edi
movzx eax, byte [edi + ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a6d1
cmp edi, 1
jle 0x41ab3b
mov eax, dword [ebp + 8]
mov dword [eax], 0x80
jmp 0x41a68e
mov eax, dword [ebp + 8]
mov dword [eax], 0x4a
jmp 0x41a752
mov eax, ecx
sub eax, 0x27
je 0x41aa2f
dec eax
je 0x41a786
dec eax
je 0x41a77b
dec eax
je 0x41a770
dec eax
je 0x41a765
dec eax
je 0x41a75a
dec eax
jne 0x41a7df
cmp byte [ebx + 1], 0x2d
jne 0x41a749
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x41a737
cmp ecx, 0xa
je 0x41a73b
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x41a72d
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x92
jmp 0x41abc8
mov eax, dword [ebp + 8]
mov dword [eax], 0x4f
xor eax, eax
inc eax
jmp 0x41abc8
mov eax, dword [ebp + 8]
mov dword [eax], 0x16
jmp 0x41a752
mov eax, dword [ebp + 8]
mov dword [eax], 0x4e
jmp 0x41a752
mov eax, dword [ebp + 8]
mov dword [eax], 0x50
jmp 0x41a752
mov eax, dword [ebp + 8]
mov dword [eax], 0x14
jmp 0x41a752
mov eax, dword [ebp + 8]
mov dword [eax], 0x13
jmp 0x41a752
movzx eax, byte [ebx + 1]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a807
mov eax, dword [ebp + 8]
mov dword [eax], 0x70
jmp 0x41a752
cmp ecx, 0x3f
jg 0x41a9ca
je 0x41a9a0
cmp ecx, 0x3b
jg 0x41a903
je 0x41a8f6
cmp ecx, 0x2f
je 0x41a8b5
jle 0x41a7df
cmp ecx, 0x39
jle 0x41a807
cmp ecx, 0x3a
je 0x41ab3b
test cl, cl
js 0x41ab10
cmp ecx, 0x1f
jle 0x41a7f9
cmp byte [ecx + 0x484f20], 0
jne 0x41ab10
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
jmp 0x41a752
mov eax, dword [ebp + 8]
mov dword [eax], 0x7d
movzx eax, byte [ebx]
xor edi, edi
jmp 0x41a81c
inc edi
movzx eax, byte [edi + ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a817
cmp byte [edi + ebx], 0x2e
jne 0x41a840
inc edi
movzx eax, byte [edi + ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a82a
mov eax, dword [ebp + 8]
mov dword [eax], 0x7e
mov al, byte [edi + ebx]
cmp al, 0x65
je 0x41a84b
cmp al, 0x45
jne 0x41a88b
movzx eax, byte [edi + ebx + 1]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a871
mov al, byte [edi + ebx + 1]
cmp al, 0x2b
je 0x41a864
cmp al, 0x2d
jne 0x41a88b
movzx eax, byte [edi + ebx + 2]
push eax
call esi
pop ecx
test eax, eax
je 0x41a88b
inc edi
inc edi
jmp 0x41a876
inc edi
movzx eax, byte [edi + ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a875
mov eax, dword [ebp + 8]
mov dword [eax], 0x7e
movzx eax, byte [edi + ebx]
test al, al
js 0x41a8a9
cmp eax, 0x1f
jle 0x41a68e
cmp byte [eax + 0x484f20], 0
je 0x41a68e
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
inc edi
jmp 0x41a88b
cmp byte [ebx + 1], 0x2a
jne 0x41a8e8
mov cl, byte [ebx + 2]
test cl, cl
je 0x41a8e8
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x41a8d3
cmp byte [eax + ebx], 0x2f
je 0x41a8e2
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x41a73b
inc eax
jmp 0x41a8c8
inc eax
jmp 0x41a73b
mov eax, dword [ebp + 8]
mov dword [eax], 0x51
jmp 0x41a752
mov ecx, dword [ebp + 8]
xor eax, eax
inc eax
mov dword [ecx], eax
jmp 0x41abc8
mov eax, ecx
sub eax, 0x3c
je 0x41a95b
dec eax
je 0x41a943
dec eax
jne 0x41a7df
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x41a928
mov eax, dword [ebp + 8]
mov dword [eax], 0x48
jmp 0x41a96d
cmp eax, 0x3e
mov eax, dword [ebp + 8]
jne 0x41a938
mov dword [eax], 0x4d
jmp 0x41a96d
mov dword [eax], 0x45
jmp 0x41a752
mov eax, dword [ebp + 8]
mov dword [eax], 0x44
xor eax, eax
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x41abc8
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x41a975
mov eax, dword [ebp + 8]
mov dword [eax], 0x46
push 2
pop eax
jmp 0x41abc8
cmp eax, 0x3e
jne 0x41a985
mov eax, dword [ebp + 8]
mov dword [eax], 0x43
jmp 0x41a96d
cmp eax, 0x3c
mov eax, dword [ebp + 8]
jne 0x41a995
mov dword [eax], 0x4c
jmp 0x41a96d
mov dword [eax], 0x47
jmp 0x41a752
mov eax, dword [ebp + 8]
mov esi, dword [sym.imp.MSVCR90.dll_isdigit]
xor edi, edi
mov dword [eax], 0x81
movzx eax, byte [ebx + 1]
inc edi
jmp 0x41a9bd
inc edi
movzx eax, byte [edi + ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x41a9b8
jmp 0x41a68e
mov eax, ecx
sub eax, 0x40
je 0x41ab3b
sub eax, 0x18
je 0x41aaab
sub eax, 3
je 0x41aa7c
sub eax, 5
je 0x41aa2f
sub eax, 0x18
je 0x41aaab
sub eax, 4
je 0x41aa10
dec eax
dec eax
jne 0x41a7df
mov eax, dword [ebp + 8]
mov dword [eax], 0x57
jmp 0x41a752
cmp byte [ebx + 1], 0x7c
mov eax, dword [ebp + 8]
je 0x41aa24
mov dword [eax], 0x4b
jmp 0x41a752
mov dword [eax], 0x53
jmp 0x41a96d
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
jmp 0x41aa4b
cmp edx, ecx
jne 0x41aa46
movzx esi, byte [ebx + eax + 1]
cmp esi, ecx
jne 0x41aa4f
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x41aa38
mov ecx, dword [ebp + 8]
cmp edx, 0x27
jne 0x41aa62
mov dword [ecx], 0x58
jmp 0x41a955
test edx, edx
je 0x41aa71
mov dword [ecx], 0x17
jmp 0x41a955
mov dword [ecx], 0x91
jmp 0x41abc8
xor eax, eax
inc eax
jmp 0x41aa8a
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x41aa8f
inc eax
cmp ecx, 0x5d
jne 0x41aa81
xor edx, edx
cmp ecx, 0x5d
mov ecx, dword [ebp + 8]
setne dl
dec edx
and edx, 0xffffff86
add edx, 0x91
mov dword [ecx], edx
jmp 0x41abc8
cmp byte [ebx + 1], 0x27
jne 0x41a7df
mov esi, dword [ebp + 8]
push 2
mov dword [esi], 0x7f
movzx eax, byte [ebx + 2]
pop edi
jmp 0x41aae3
cmp eax, 0x27
je 0x41aae7
push eax
call dword [sym.imp.MSVCR90.dll_isxdigit]
pop ecx
test eax, eax
jne 0x41aade
mov dword [esi], 0x91
inc edi
movzx eax, byte [edi + ebx]
test eax, eax
jne 0x41aac7
mov ecx, edi
and ecx, reloc.WS2_32.dll_accept
jns 0x41aaf6
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x41aafc
test eax, eax
jne 0x41ab0a
mov dword [esi], 0x91
test eax, eax
je 0x41a68e
inc edi
jmp 0x41a68e
xor edi, edi
inc edi
movzx eax, byte [edi + ebx]
test al, al
js 0x41ab29
cmp eax, 0x1f
jle 0x41ab2c
cmp byte [eax + 0x484f20], 0
je 0x41ab2c
inc edi
jmp 0x41ab13
call fcn.0041a56d
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jmp 0x41a68e
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
mov dword [eax], 0x81
movzx eax, byte [ebx + 1]
xor esi, esi
inc esi
test eax, eax
je 0x41abbd
test al, al
js 0x41ab7e
cmp eax, 0x1f
jle 0x41ab65
cmp byte [eax + 0x484f20], 0
jne 0x41ab7e
cmp eax, 0x28
jne 0x41ab70
cmp dword [ebp - 4], 0
jg 0x41ab8c
cmp eax, 0x3a
jne 0x41abb7
cmp byte [ebx + esi + 1], al
jne 0x41abb7
inc esi
jmp 0x41ab81
inc dword [ebp - 4]
inc esi
movzx eax, byte [esi + ebx]
test eax, eax
jne 0x41ab53
jmp 0x41abb7
inc esi
movzx edi, byte [esi + ebx]
test edi, edi
je 0x41aba6
push edi
call dword [sym.imp.MSVCR90.dll_isspace]
pop ecx
test eax, eax
jne 0x41aba6
cmp edi, 0x29
jne 0x41ab8c
cmp edi, 0x29
jne 0x41abae
inc esi
jmp 0x41abb7
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
cmp dword [ebp - 4], 0
jne 0x41abc6
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret