Function at 0x4c8110
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff9c
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x1fbdbd2
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov edx, eax
dec edx
movzx edx, byte [edx]
cmp edx, 0x2e
jg 0x4c81ad
je 0x4c8272
cmp edx, 0x28
jg 0x4c8195
je 0x4c860d
sub edx, 1
jb 0x4c8751
sub edx, 0x23
je 0x4c822a
jmp 0x4c89e6
sub edx, 0x29
je 0x4c8751
dec edx
sub edx, 2
jb 0x4c8762
jmp 0x4c89e6
cmp edx, 0x5c
jg 0x4c81cf
je 0x4c8773
sub edx, 0x3f
je 0x4c8762
sub edx, 0x1c
je 0x4c82b8
jmp 0x4c89e6
sub edx, 0x5e
je 0x4c81e2
sub edx, 0x1e
je 0x4c8751
jmp 0x4c89e6
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x10
je 0x4c8206
mov eax, dword [ebp - 4]
cmp dword [eax + 0x128], 0
jne 0x4c8218
mov eax, dword [ebp - 4]
cmp byte [eax + 0x12c], 0
jne 0x4c8218
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8bb4
mov dl, 0x22
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8bb4
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x10
je 0x4c824e
mov eax, dword [ebp - 4]
cmp dword [eax + 0x128], 0
jne 0x4c8260
mov eax, dword [ebp - 4]
cmp byte [eax + 0x12c], 0
jne 0x4c8260
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8bb4
mov dl, 0x23
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8bb4
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 4
je 0x4c82a0
mov dl, 3
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c8bb4
mov dl, 0x24
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
or dword [eax], 1
jmp 0x4c8bb4
cmp byte [eax], 0x5e
jne 0x4c82ee
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4c82d7
push ebp
mov al, 0x16
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
jmp 0x4c82e3
push ebp
mov al, 5
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4c8314
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4c8308
push ebp
mov al, 0x15
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
jmp 0x4c8314
push ebp
mov al, 4
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
mov byte [ebp - 0x3f], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
cmp al, 0x5d
jne 0x4c85b0
push ebp
call fcn.004c7f70
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4c85b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov dl, byte [eax]
cmp dl, 0x2d
jne 0x4c850a
mov ecx, eax
inc ecx
cmp byte [ecx], 0
je 0x4c850a
inc eax
cmp byte [eax], 0x5d
je 0x4c850a
cmp byte [ebp - 0x3f], 0
je 0x4c850a
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov bl, byte [eax]
cmp bl, 0x5c
jne 0x4c83ca
inc eax
mov al, byte [eax]
add al, 0xc0
cmp al, 0x37
ja 0x4c83a0
and eax, 0x7f
bt dword [0x1fbdbe4], eax
jae 0x4c83b0
push ebp
mov al, 0x2d
call fcn.004c7c88
pop ecx
jmp 0x4c85b0
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.004c7fc0
pop ecx
mov ebx, eax
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4c841a
lea eax, [ebp - 0x48]
mov dl, byte [ebp - 0x40]
call fcn.00404330
mov eax, dword [ebp - 0x48]
mov edx, 0x1fbdbf4
call fcn.00404564
jne 0x4c841a
lea eax, [ebp - 0x4c]
mov edx, ebx
call fcn.00404330
mov eax, dword [ebp - 0x4c]
mov edx, 0x1fbdc00
call fcn.00404564
jne 0x4c841a
push ebp
mov eax, 0x1fbdc0c
call fcn.004c7f8c
pop ecx
jmp 0x4c84fc
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4c846a
lea eax, [ebp - 0x50]
mov dl, byte [ebp - 0x40]
call fcn.00404330
mov eax, dword [ebp - 0x50]
mov edx, 0x1fbdc58
call fcn.00404564
jne 0x4c846a
lea eax, [ebp - 0x54]
mov edx, ebx
call fcn.00404330
mov eax, dword [ebp - 0x54]
mov edx, 0x1fbdc64
call fcn.00404564
jne 0x4c846a
push ebp
mov eax, 0x1fbdc70
call fcn.004c7f8c
pop ecx
jmp 0x4c84fc
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4c84c3
lea eax, [ebp - 0x58]
mov dl, byte [ebp - 0x40]
call fcn.00404330
mov eax, dword [ebp - 0x58]
mov edx, 0x1fbdbf4
call fcn.00404564
jne 0x4c84c3
lea eax, [ebp - 0x5c]
mov edx, ebx
call fcn.00404330
mov eax, dword [ebp - 0x5c]
mov edx, 0x1fbdc64
call fcn.00404564
jne 0x4c84c3
push ebp
mov eax, 0x1fbdc0c
call fcn.004c7f8c
pop ecx
push ebp
mov eax, 0x1fbdc70
call fcn.004c7f8c
pop ecx
jmp 0x4c84fc
cmp bl, byte [ebp - 0x40]
jae 0x4c84d9
mov edx, 0x6d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
inc byte [ebp - 0x40]
push ebp
mov eax, ebx
call fcn.004c7c88
pop ecx
cmp bl, byte [ebp - 0x40]
jbe 0x4c84fc
push ebp
mov al, byte [ebp - 0x40]
call fcn.004c7c88
pop ecx
inc byte [ebp - 0x40]
cmp bl, byte [ebp - 0x40]
ja 0x4c84ea
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4c85b0
cmp dl, 0x5c
jne 0x4c859e
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0
jne 0x4c853b
mov edx, 0x6e
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
sub al, 0x64
je 0x4c8554
sub al, 0xf
je 0x4c8574
sub al, 4
je 0x4c8562
jmp 0x4c8586
push ebp
mov eax, 0x1fbdcbc
call fcn.004c7f8c
pop ecx
jmp 0x4c85a7
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.004c7f8c
pop ecx
jmp 0x4c85a7
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.004c7f8c
pop ecx
jmp 0x4c85a7
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.004c7fc0
pop ecx
call fcn.004c7f70
pop ecx
jmp 0x4c85a7
push ebp
mov eax, edx
call fcn.004c7f70
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
test al, al
je 0x4c85c7
cmp al, 0x5d
jne 0x4c8340
push ebp
xor eax, eax
call fcn.004c7c88
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x5d
je 0x4c85ef
mov edx, 0x71
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c8bb4
cmp byte [eax], 0x3f
jne 0x4c8721
inc eax
cmp byte [eax], 0x23
jne 0x4c867e
mov eax, dword [ebp - 4]
add dword [eax + 0xe0], 2
jmp 0x4c8631
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
test al, al
je 0x4c8644
cmp al, 0x29
jne 0x4c8628
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x29
je 0x4c8663
mov edx, 0x7d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8bb4
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xe0]
jmp 0x4c869b
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
test al, al
je 0x4c86ae
cmp al, 0x29
jne 0x4c8692
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xe0]
cmp byte [edi], 0x29
jne 0x4c86f5
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x64]
mov edx, ebx
call fcn.00404350
mov eax, dword [ebp - 0x64]
mov ecx, edi
sub ecx, ebx
mov edx, 1
call fcn.0040467c
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x110]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004c6a10
test al, al
jne 0x4c8706
mov edx, 0x7f
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8bb4
lea ecx, [ebp - 0x44]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004c71b4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x4c8741
xor esi, esi
jmp 0x4c8bb7
mov eax, dword [ebp - 0x44]
and eax, 5
mov edx, dword [ebp - 0xc]
or dword [edx], eax
jmp 0x4c8bb4
mov edx, 0x72
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
mov edx, 0x73
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
cmp byte [eax], 0
jne 0x4c8789
mov edx, 0x74
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
cmp eax, 0x57
jg 0x4c87d4
je 0x4c893b
cmp eax, 0x42
jg 0x4c87bd
je 0x4c8813
add eax, 0xffffffcf
sub eax, 9
jb 0x4c8972
sub eax, 7
je 0x4c8825
jmp 0x4c89c2
sub eax, 0x44
je 0x4c886b
sub eax, 0xf
je 0x4c88c7
jmp 0x4c89c2
cmp eax, 0x64
jg 0x4c87ea
je 0x4c8849
sub eax, 0x5a
je 0x4c8837
sub eax, 8
je 0x4c8801
jmp 0x4c89c2
sub eax, 0x73
je 0x4c888d
sub eax, 4
je 0x4c8901
jmp 0x4c89c2
mov dl, 0x25
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c89d8
mov dl, 0x26
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c89d8
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c89d8
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c89d8
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c89d8
mov dl, 0xd
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c89d8
push ebp
mov al, 4
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.004c7f8c
pop ecx
push ebp
xor eax, eax
call fcn.004c7c88
pop ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c89d8
push ebp
mov al, 5
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.004c7f8c
pop ecx
push ebp
xor eax, eax
call fcn.004c7c88
pop ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c89d8
push ebp
mov al, 4
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.004c7f8c
pop ecx
push ebp
xor eax, eax
call fcn.004c7c88
pop ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c89d8
push ebp
mov al, 5
call fcn.004c7b84
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.004c7f8c
pop ecx
push ebp
xor eax, eax
call fcn.004c7c88
pop ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c89d8
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4c898d
mov dl, 0x1d
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c899a
mov dl, 0x1c
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov dl, byte [eax]
sub dl, 0x30
mov eax, dword [ebp - 4]
call fcn.004c6e68
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x4c89d8
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.004c7fc0
pop ecx
call fcn.004c7acc
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4c8bb4
mov eax, dword [ebp - 4]
dec dword [eax + 0xe0]
mov edx, dword [ebp - 4]
test byte [edx + 0x110], 0x20
je 0x4c8aa4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
cmp al, 0x23
je 0x4c8a20
add al, 0xf7
sub al, 2
jb 0x4c8a20
sub al, 2
je 0x4c8a20
sub al, 0x13
jne 0x4c8aa4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x4c8a79
jmp 0x4c8a39
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
test al, al
je 0x4c8a5b
cmp al, 0xd
je 0x4c8a5b
cmp al, 0xa
jne 0x4c8a30
jmp 0x4c8a5b
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
cmp al, 0xd
je 0x4c8a52
cmp al, 0xa
je 0x4c8a52
jmp 0x4c8a92
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
add al, 0xf7
sub al, 2
jb 0x4c8a70
sub al, 2
je 0x4c8a70
sub al, 0x13
je 0x4c8a70
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8bb4
mov edx, 0x200d18c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
call fcn.004c6eec
mov ebx, eax
test ebx, ebx
jg 0x4c8aec
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xe0]
cmp byte [ebx], 0x7b
je 0x4c8adc
mov edx, 0x77
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4c8bb7
mov edx, 0x200d18c
mov eax, ebx
inc eax
call fcn.004c6eec
inc eax
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
add eax, ebx
mov al, byte [eax]
cmp ebx, 1
jle 0x4c8b0f
cmp al, 0x2a
je 0x4c8b0e
cmp al, 0x2b
je 0x4c8b0e
cmp al, 0x3f
je 0x4c8b0e
cmp al, 0x7b
jne 0x4c8b0f
dec ebx
mov eax, dword [ebp - 0xc]
or dword [eax], 1
cmp ebx, 1
jne 0x4c8b20
mov eax, dword [ebp - 0xc]
or dword [eax], 2
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4c8b3b
mov dl, 0x14
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8b8c
mov dl, 8
mov eax, dword [ebp - 4]
call fcn.004c6e2c
mov dword [ebp - 8], eax
jmp 0x4c8b8c
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x20
je 0x4c8b6f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
add al, 0xf7
sub al, 2
jb 0x4c8b82
sub al, 2
je 0x4c8b82
sub al, 0x13
je 0x4c8b82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov dl, byte [eax]
mov eax, dword [ebp - 4]
call fcn.004c6e68
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
dec ebx
test ebx, ebx
jle 0x4c8baa
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x20
je 0x4c8b4a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x4c8b4a
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004c6e68
mov esi, dword [ebp - 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x1fbdbd9
lea eax, [ebp - 0x64]
mov edx, 8
call fcn.0040416c
ret