Function at 0x4d1ba0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x4d261c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
mov eax, dword [ebp - 0x30]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
mov edx, eax
dec edx
movzx edx, byte [edx]
cmp edx, 0x2e
jg 0x4d1c2b
je 0x4d1cf0
cmp edx, 0x28
jg 0x4d1c13
je 0x4d2048
sub edx, 1
jb 0x4d2193
sub edx, 0x23
je 0x4d1ca8
jmp 0x4d2429
sub edx, 0x29
je 0x4d2193
dec edx
sub edx, 2
jb 0x4d21a4
jmp 0x4d2429
cmp edx, 0x5c
jg 0x4d1c4d
je 0x4d21b5
sub edx, 0x3f
je 0x4d21a4
sub edx, 0x1c
je 0x4d1d36
jmp 0x4d2429
sub edx, 0x5e
je 0x4d1c60
sub edx, 0x1e
je 0x4d2193
jmp 0x4d2429
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 0x10
je 0x4d1c84
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x128], 0
jne 0x4d1c96
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x12c], 0
jne 0x4d1c96
mov dl, 1
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25fe
mov dl, 0x22
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25fe
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 0x10
je 0x4d1ccc
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x128], 0
jne 0x4d1cde
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x12c], 0
jne 0x4d1cde
mov dl, 2
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25fe
mov dl, 0x23
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25fe
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 4
je 0x4d1d1e
mov dl, 3
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d25fe
mov dl, 0x24
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
or dword [eax], 1
jmp 0x4d25fe
cmp byte [eax], 0x5e
jne 0x4d1d6c
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 1
je 0x4d1d55
push ebp
mov al, 0x16
call fcn.004d169c
pop ecx
mov dword [ebp - 0x28], eax
jmp 0x4d1d61
push ebp
mov al, 5
call fcn.004d169c
pop ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
jmp 0x4d1d92
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 1
add byte [eax], al
invalid
je 0x4d1d86
push ebp
push ebp
mov al, 4
call fcn.004d169c
pop ecx
mov dword [ebp - 0x28], eax
cmp byte [eax], 0x3f
jne 0x4d2163
inc eax
cmp byte [eax], 0x23
jne 0x4d20ba
mov eax, dword [ebp - 0x24]
add dword [eax + 0xe0], 2
jmp 0x4d206c
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
test al, al
je 0x4d2080
cmp al, 0x29
jne 0x4d2063
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x29
je 0x4d209f
mov edx, 0x7d
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4d2601
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25fe
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax + 0xe0]
jmp 0x4d20d7
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
test al, al
je 0x4d20eb
cmp al, 0x29
jne 0x4d20ce
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 0xe0]
cmp byte [esi], 0x29
jne 0x4d2137
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
mov edx, ebx
mov ecx, 0
call fcn.00406460
mov eax, dword [ebp - 0x50]
mov ecx, esi
sub ecx, ebx
mov edx, 1
call fcn.0040696c
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + 0x110]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
call fcn.004d044c
test al, al
jne 0x4d2148
mov edx, 0x7f
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4d2601
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25fe
lea ecx, [ebp - 0x48]
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.004d0c9c
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jne 0x4d2183
xor edi, edi
jmp 0x4d2601
mov eax, dword [ebp - 0x48]
and eax, 5
mov edx, dword [ebp - 0x30]
or dword [edx], eax
jmp 0x4d25fe
mov edx, 0x72
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4d2601
mov edx, 0x73
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4d2601
cmp byte [eax], 0
jne 0x4d21cb
mov edx, 0x74
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4d2601
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
cmp eax, 0x57
jg 0x4d2216
je 0x4d237d
cmp eax, 0x42
jg 0x4d21ff
je 0x4d2255
add eax, 0xffffffcf
sub eax, 9
jb 0x4d23b4
sub eax, 7
je 0x4d2267
jmp 0x4d2405
sub eax, 0x44
je 0x4d22ad
sub eax, 0xf
je 0x4d2309
jmp 0x4d2405
cmp eax, 0x64
jg 0x4d222c
je 0x4d228b
sub eax, 0x5a
je 0x4d2279
sub eax, 8
je 0x4d2243
jmp 0x4d2405
sub eax, 0x73
je 0x4d22cf
sub eax, 4
je 0x4d2343
jmp 0x4d2405
mov dl, 0x25
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d241b
mov dl, 0x26
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d241b
mov dl, 1
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d241b
mov dl, 2
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d241b
mov dl, 0xc
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d241b
mov dl, 0xd
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d241b
push ebp
mov al, 4
call fcn.004d169c
pop ecx
mov dword [ebp - 0x28], eax
push ebp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x118]
call fcn.004d19a8
pop ecx
push ebp
xor eax, eax
call fcn.004d1798
pop ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d241b
push ebp
mov al, 5
call fcn.004d169c
pop ecx
mov dword [ebp - 0x28], eax
push ebp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x118]
call fcn.004d19a8
pop ecx
push ebp
xor eax, eax
call fcn.004d1798
pop ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d241b
push ebp
mov al, 4
call fcn.004d169c
pop ecx
mov dword [ebp - 0x28], eax
push ebp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x11c]
call fcn.004d19a8
pop ecx
push ebp
xor eax, eax
call fcn.004d1798
pop ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d241b
push ebp
mov al, 5
call fcn.004d169c
pop ecx
mov dword [ebp - 0x28], eax
push ebp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x11c]
call fcn.004d19a8
pop ecx
push ebp
xor eax, eax
call fcn.004d1798
pop ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d241b
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 1
je 0x4d23cf
mov dl, 0x1d
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d23dc
mov dl, 0x1c
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx edx, byte [eax]
sub dl, 0x30
mov eax, dword [ebp - 0x24]
call fcn.004d0948
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x4d241b
push ebp
push ebp
mov eax, dword [ebp - 0x24]
add eax, 0xe0
call fcn.004d1a50
pop ecx
call fcn.004d15e8
pop ecx
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
jmp 0x4d25fe
mov eax, dword [ebp - 0x24]
dec dword [eax + 0xe0]
mov edx, dword [ebp - 0x24]
test byte [edx + 0x110], 0x20
je 0x4d24eb
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
cmp al, 0x23
je 0x4d2464
add al, 0xf7
sub al, 2
jb 0x4d2464
sub al, 2
je 0x4d2464
sub al, 0x13
jne 0x4d24eb
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x4d24bf
jmp 0x4d247d
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
test al, al
je 0x4d24a0
cmp al, 0xd
je 0x4d24a0
cmp al, 0xa
jne 0x4d2474
jmp 0x4d24a0
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
cmp al, 0xd
je 0x4d2497
cmp al, 0xa
je 0x4d2497
jmp 0x4d24d9
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
add al, 0xf7
sub al, 2
jb 0x4d24b6
sub al, 2
je 0x4d24b6
sub al, 0x13
je 0x4d24b6
mov dl, 0x13
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25fe
mov edx, str._.____
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
call fcn.004d09d0
mov ebx, eax
test ebx, ebx
jg 0x4d2533
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax + 0xe0]
cmp byte [ebx], 0x7b
je 0x4d2523
mov edx, 0x77
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4d2601
mov edx, str._.____
mov eax, ebx
inc eax
call fcn.004d09d0
inc eax
mov ebx, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
add eax, ebx
movzx eax, byte [eax]
cmp ebx, 1
jle 0x4d2557
cmp al, 0x2a
je 0x4d2556
cmp al, 0x2b
je 0x4d2556
cmp al, 0x3f
je 0x4d2556
cmp al, 0x7b
jne 0x4d2557
dec ebx
mov eax, dword [ebp - 0x30]
or dword [eax], 1
cmp ebx, 1
jne 0x4d2568
mov eax, dword [ebp - 0x30]
or dword [eax], 2
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 1
je 0x4d2583
mov dl, 0x14
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25d6
mov dl, 8
mov eax, dword [ebp - 0x24]
call fcn.004d090c
mov dword [ebp - 0x28], eax
jmp 0x4d25d6
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 0x20
je 0x4d25b8
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
add al, 0xf7
sub al, 2
jb 0x4d25cc
sub al, 2
je 0x4d25cc
sub al, 0x13
je 0x4d25cc
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x24]
call fcn.004d0948
mov eax, dword [ebp - 0x24]
inc dword [eax + 0xe0]
dec ebx
test ebx, ebx
jle 0x4d25f4
mov eax, dword [ebp - 0x24]
test byte [eax + 0x110], 0x20
je 0x4d2592
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x4d2592
xor edx, edx
mov eax, dword [ebp - 0x24]
call fcn.004d0948