Function at 0x4c42f0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov ebx, eax
movzx ecx, byte [ebx]
xor esi, esi
inc esi
cmp ecx, 0x2e
push edi
jg 0x4c44b3
je 0x4c4499
cmp ecx, 0x26
jg 0x4c4405
je 0x4c43fa
cmp ecx, 0x22
jg 0x4c439a
je 0x4c4742
cmp ecx, 9
jl 0x4c44ea
cmp ecx, 0xa
jle 0x4c4373
cmp ecx, 0xb
jle 0x4c44ea
cmp ecx, 0xd
jle 0x4c4373
cmp ecx, 0x20
je 0x4c4373
cmp ecx, 0x21
jne 0x4c44ea
cmp byte [ebx + 1], 0x3d
mov eax, dword [ebp + 8]
push 2
je 0x4c4368
mov dword [eax], 0x90
jmp 0x4c4685
mov dword [eax], 0x43
jmp 0x4c4685
movzx eax, byte [ebx + 1]
xor esi, esi
inc esi
jmp 0x4c4381
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.004f434f
pop ecx
test eax, eax
jne 0x4c437c
mov eax, dword [ebp + 8]
mov dword [eax], 0x91
jmp 0x4c48c9
mov eax, ecx
sub eax, 0x23
je 0x4c43bd
dec eax
je 0x4c4842
dec eax
jne 0x4c44ea
mov eax, dword [ebp + 8]
mov dword [eax], 0x52
jmp 0x4c445a
movzx eax, byte [ebx + 1]
push eax
mov edi, esi
call fcn.004f424a
pop ecx
test eax, eax
je 0x4c4842
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f424a
pop ecx
test eax, eax
jne 0x4c43d2
cmp edi, esi
jle 0x4c4842
mov eax, dword [ebp + 8]
mov dword [eax], 0x7f
mov eax, edi
jmp 0x4c48cb
mov eax, dword [ebp + 8]
mov dword [eax], 0x4a
jmp 0x4c445a
mov eax, ecx
sub eax, 0x27
je 0x4c4742
dec eax
je 0x4c448e
dec eax
je 0x4c4483
dec eax
je 0x4c4478
dec eax
je 0x4c446d
dec eax
je 0x4c4462
dec eax
jne 0x4c44ea
cmp byte [ebx + 1], 0x2d
jne 0x4c4451
movzx ecx, byte [ebx + 2]
push 2
pop eax
jmp 0x4c443f
cmp ecx, 0xa
je 0x4c4443
inc eax
movzx ecx, byte [eax + ebx]
test ecx, ecx
jne 0x4c4435
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x93
jmp 0x4c48cb
mov eax, dword [ebp + 8]
mov dword [eax], 0x4f
xor eax, eax
inc eax
jmp 0x4c48cb
mov eax, dword [ebp + 8]
mov dword [eax], 0x16
jmp 0x4c445a
mov eax, dword [ebp + 8]
mov dword [eax], 0x4e
jmp 0x4c445a
mov eax, dword [ebp + 8]
mov dword [eax], 0x50
jmp 0x4c445a
mov eax, dword [ebp + 8]
mov dword [eax], 0x14
jmp 0x4c445a
mov eax, dword [ebp + 8]
mov dword [eax], 0x13
jmp 0x4c445a
movzx eax, byte [ebx + 1]
push eax
call fcn.004f424a
pop ecx
test eax, eax
jne 0x4c4512
mov eax, dword [ebp + 8]
mov dword [eax], 0x70
jmp 0x4c445a
cmp ecx, 0x3f
jg 0x4c46dd
je 0x4c46b6
cmp ecx, 0x3b
jg 0x4c4619
je 0x4c460c
cmp ecx, 0x2f
je 0x4c45cb
jle 0x4c44ea
cmp ecx, 0x39
jle 0x4c4512
cmp ecx, 0x3a
je 0x4c4842
test cl, cl
js 0x4c4817
cmp ecx, 0x1f
jle 0x4c4504
cmp byte [ecx + 0x54c700], 0
jne 0x4c4817
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
jmp 0x4c445a
mov esi, dword [ebp + 8]
movzx eax, byte [ebx]
mov dword [esi], 0x7c
xor edi, edi
jmp 0x4c4527
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f424a
pop ecx
test eax, eax
jne 0x4c4522
cmp byte [edi + ebx], 0x2e
jne 0x4c454e
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f424a
pop ecx
test eax, eax
jne 0x4c4538
mov dword [esi], 0x7d
lea esi, [edi + ebx]
mov al, byte [esi]
cmp al, 0x65
je 0x4c455b
cmp al, 0x45
jne 0x4c45a1
movzx eax, byte [esi + 1]
push eax
call fcn.004f424a
pop ecx
test eax, eax
jne 0x4c4584
mov al, byte [esi + 1]
cmp al, 0x2b
je 0x4c4575
cmp al, 0x2d
jne 0x4c45a1
movzx eax, byte [esi + 2]
push eax
call fcn.004f424a
pop ecx
test eax, eax
je 0x4c45a1
inc edi
inc edi
jmp 0x4c4589
inc edi
movzx eax, byte [edi + ebx]
push eax
call fcn.004f424a
pop ecx
test eax, eax
jne 0x4c4588
mov eax, dword [ebp + 8]
mov dword [eax], 0x7d
movzx eax, byte [edi + ebx]
test al, al
js 0x4c45bf
cmp eax, 0x1f
jle 0x4c43f3
cmp byte [eax + 0x54c700], 0
je 0x4c43f3
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
inc edi
jmp 0x4c45a1
cmp byte [ebx + 1], 0x2a
jne 0x4c45fe
mov cl, byte [ebx + 2]
test cl, cl
je 0x4c45fe
push 3
pop eax
movzx ecx, cl
cmp ecx, 0x2a
jne 0x4c45e9
cmp byte [eax + ebx], 0x2f
je 0x4c45f8
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4c4443
inc eax
jmp 0x4c45de
inc eax
jmp 0x4c4443
mov eax, dword [ebp + 8]
mov dword [eax], 0x51
jmp 0x4c445a
mov eax, dword [ebp + 8]
xor esi, esi
inc esi
mov dword [eax], esi
jmp 0x4c48c9
mov eax, ecx
sub eax, 0x3c
je 0x4c4671
dec eax
je 0x4c4659
dec eax
jne 0x4c44ea
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4c463e
mov eax, dword [ebp + 8]
mov dword [eax], 0x48
jmp 0x4c4683
cmp eax, 0x3e
mov eax, dword [ebp + 8]
jne 0x4c464e
mov dword [eax], 0x4d
jmp 0x4c4683
mov dword [eax], 0x45
jmp 0x4c445a
mov eax, dword [ebp + 8]
mov dword [eax], 0x44
xor eax, eax
cmp byte [ebx + 1], 0x3d
sete al
inc eax
jmp 0x4c48cb
movzx eax, byte [ebx + 1]
cmp eax, 0x3d
jne 0x4c468b
mov eax, dword [ebp + 8]
mov dword [eax], 0x46
push 2
pop eax
jmp 0x4c48cb
cmp eax, 0x3e
jne 0x4c469b
mov eax, dword [ebp + 8]
mov dword [eax], 0x43
jmp 0x4c4683
cmp eax, 0x3c
mov eax, dword [ebp + 8]
jne 0x4c46ab
mov dword [eax], 0x4c
jmp 0x4c4683
mov dword [eax], 0x47
jmp 0x4c445a
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
inc esi
jmp 0x4c46cd
inc esi
movzx eax, byte [esi + ebx]
push eax
call fcn.004f424a
pop ecx
test eax, eax
jne 0x4c46c8
jmp 0x4c48c9
mov eax, ecx
sub eax, 0x40
je 0x4c4842
sub eax, 0x18
je 0x4c47b3
sub eax, 3
je 0x4c4784
sub eax, 5
je 0x4c4742
sub eax, 0x18
je 0x4c47b3
sub eax, 4
je 0x4c4723
dec eax
dec eax
jne 0x4c44ea
mov eax, dword [ebp + 8]
mov dword [eax], 0x57
jmp 0x4c445a
cmp byte [ebx + 1], 0x7c
mov eax, dword [ebp + 8]
je 0x4c4737
mov dword [eax], 0x4b
jmp 0x4c445a
mov dword [eax], 0x53
jmp 0x4c4683
movzx edx, byte [ebx + 1]
xor eax, eax
inc eax
test edx, edx
je 0x4c4776
cmp edx, ecx
jne 0x4c475b
movzx esi, byte [ebx + eax + 1]
cmp esi, ecx
jne 0x4c4764
inc eax
inc eax
movzx edx, byte [eax + ebx]
test edx, edx
jne 0x4c474d
test edx, edx
je 0x4c4776
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x58
jmp 0x4c466b
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x90
jmp 0x4c48cb
xor eax, eax
inc eax
jmp 0x4c4792
movzx ecx, byte [eax + ebx]
test ecx, ecx
je 0x4c4797
inc eax
cmp ecx, 0x5d
jne 0x4c4789
xor edx, edx
cmp ecx, 0x5d
mov ecx, dword [ebp + 8]
setne dl
dec edx
and edx, 0xffffff87
add edx, 0x90
mov dword [ecx], edx
jmp 0x4c48cb
cmp byte [ebx + 1], 0x27
jne 0x4c44ea
mov esi, dword [ebp + 8]
movzx eax, byte [ebx + 2]
push 2
mov dword [esi], 0x7e
pop edi
jmp 0x4c47ea
cmp eax, 0x27
je 0x4c47ee
push eax
call fcn.004f42ce
pop ecx
test eax, eax
jne 0x4c47e5
mov dword [esi], 0x90
inc edi
movzx eax, byte [edi + ebx]
test eax, eax
jne 0x4c47cf
mov ecx, edi
and ecx, 0x80000001
jns 0x4c47fd
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4c4803
test eax, eax
jne 0x4c4811
mov dword [esi], 0x90
test eax, eax
je 0x4c43f3
inc edi
jmp 0x4c43f3
xor edi, edi
inc edi
movzx eax, byte [edi + ebx]
test al, al
js 0x4c4830
cmp eax, 0x1f
jle 0x4c4833
cmp byte [eax + 0x54c700], 0
je 0x4c4833
inc edi
jmp 0x4c481a
call fcn.004c427a
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jmp 0x4c43f3
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
mov dword [eax], 0x80
movzx eax, byte [ebx + 1]
test eax, eax
je 0x4c48c0
test al, al
js 0x4c4882
cmp eax, 0x1f
jle 0x4c4869
cmp byte [eax + 0x54c700], 0
jne 0x4c4882
cmp eax, 0x28
jne 0x4c4874
cmp dword [ebp - 4], 0
jg 0x4c4890
cmp eax, 0x3a
jne 0x4c48ba
cmp byte [ebx + esi + 1], al
jne 0x4c48ba
inc esi
jmp 0x4c4885
inc dword [ebp - 4]
inc esi
movzx eax, byte [esi + ebx]
test eax, eax
jne 0x4c4857
jmp 0x4c48ba
inc esi
movzx edi, byte [esi + ebx]
test edi, edi
je 0x4c48a9
push edi
call fcn.004f434f
pop ecx
test eax, eax
jne 0x4c48a9
cmp edi, 0x29
jne 0x4c4890
cmp edi, 0x29
jne 0x4c48b1
inc esi
jmp 0x4c48ba
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
cmp dword [ebp - 4], 0
jne 0x4c48c9
mov eax, dword [ebp + 8]
mov dword [eax], 0x90
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret