Function at 0x4fbae0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4fc515
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 0x4fbb6b
je 0x4fbc30
cmp edx, 0x28
jg 0x4fbb53
je 0x4fbf50
sub edx, 1
jb 0x4fc094
sub edx, 0x23
je 0x4fbbe8
jmp 0x4fc329
sub edx, 0x29
je 0x4fc094
dec edx
sub edx, 2
jb 0x4fc0a5
jmp 0x4fc329
cmp edx, 0x5c
jg 0x4fbb8d
je 0x4fc0b6
sub edx, 0x3f
je 0x4fc0a5
sub edx, 0x1c
je 0x4fbc76
jmp 0x4fc329
sub edx, 0x5e
je 0x4fbba0
sub edx, 0x1e
je 0x4fc094
jmp 0x4fc329
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x10
je 0x4fbbc4
mov eax, dword [ebp - 4]
cmp dword [eax + 0x128], 0
jne 0x4fbbd6
mov eax, dword [ebp - 4]
cmp byte [eax + 0x12c], 0
jne 0x4fbbd6
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4f7
mov dl, 0x22
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4f7
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x10
je 0x4fbc0c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x128], 0
jne 0x4fbc1e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x12c], 0
jne 0x4fbc1e
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4f7
mov dl, 0x23
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4f7
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 4
je 0x4fbc5e
mov dl, 3
mov eax, dword [ebp - 4]
call fcn.004fa800
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 0x4fc4f7
mov dl, 0x24
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
or dword [eax], 1
jmp 0x4fc4f7
cmp byte [eax], 0x5e
jne 0x4fbcac
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4fbc95
push ebp
mov al, 0x16
call fcn.004fb558
pop ecx
mov dword [ebp - 8], eax
jmp 0x4fbca1
push ebp
mov al, 5
call fcn.004fb558
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4fbcd2
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4fbcc6
push ebp
mov al, 0x15
call fcn.004fb558
pop ecx
mov dword [ebp - 8], eax
jmp 0x4fbcd2
push ebp
mov al, 4
call fcn.004fb558
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 0x4fbef3
push ebp
call fcn.004fb940
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4fbef3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov dl, byte [eax]
cmp dl, 0x2d
jne 0x4fbe4d
mov ecx, eax
inc ecx
cmp byte [ecx], 0
je 0x4fbe4d
inc eax
cmp byte [eax], 0x5d
je 0x4fbe4d
cmp byte [ebp - 0x3f], 0
je 0x4fbe4d
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 0x4fbd88
inc eax
mov al, byte [eax]
add al, 0xc0
cmp al, 0x37
ja 0x4fbd5e
and eax, 0x7f
bt dword [0x4fc528], eax
jae 0x4fbd6e
push ebp
mov al, 0x2d
call fcn.004fb65c
pop ecx
jmp 0x4fbef3
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.004fb990
pop ecx
mov ebx, eax
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4fbdb0
cmp byte [ebp - 0x40], 0xe0
jne 0x4fbdb0
cmp bl, 0xff
jne 0x4fbdb0
push ebp
mov eax, 0x4fc538
call fcn.004fb95c
pop ecx
jmp 0x4fbe3f
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4fbdd5
cmp byte [ebp - 0x40], 0xc0
jne 0x4fbdd5
cmp bl, 0xdf
jne 0x4fbdd5
push ebp
mov eax, 0x4fc564
call fcn.004fb95c
pop ecx
jmp 0x4fbe3f
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4fbe06
cmp byte [ebp - 0x40], 0xe0
jne 0x4fbe06
cmp bl, 0xdf
jne 0x4fbe06
push ebp
mov eax, 0x4fc538
call fcn.004fb95c
pop ecx
push ebp
mov eax, 0x4fc564
call fcn.004fb95c
pop ecx
jmp 0x4fbe3f
cmp bl, byte [ebp - 0x40]
jae 0x4fbe1c
mov edx, 0x6d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
inc byte [ebp - 0x40]
push ebp
mov eax, ebx
call fcn.004fb65c
pop ecx
cmp bl, byte [ebp - 0x40]
jbe 0x4fbe3f
push ebp
mov al, byte [ebp - 0x40]
call fcn.004fb65c
pop ecx
inc byte [ebp - 0x40]
cmp bl, byte [ebp - 0x40]
ja 0x4fbe2d
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4fbef3
cmp dl, 0x5c
jne 0x4fbee1
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0
jne 0x4fbe7e
mov edx, 0x6e
mov eax, dword [ebp - 4]
cld
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
sub al, 0x64
je 0x4fbe97
sub al, 0xf
je 0x4fbeb7
sub al, 4
je 0x4fbea5
jmp 0x4fbec9
push ebp
mov eax, 0x4fc590
call fcn.004fb95c
pop ecx
jmp 0x4fbeea
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.004fb95c
pop ecx
jmp 0x4fbeea
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.004fb95c
pop ecx
jmp 0x4fbeea
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.004fb990
pop ecx
call fcn.004fb940
pop ecx
jmp 0x4fbeea
push ebp
mov eax, edx
call fcn.004fb940
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 0x4fbf0a
cmp al, 0x5d
jne 0x4fbcfe
push ebp
xor eax, eax
call fcn.004fb65c
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x5d
je 0x4fbf32
mov edx, 0x71
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
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 0x4fc4f7
cmp byte [eax], 0x3f
jne 0x4fc064
inc eax
cmp byte [eax], 0x23
jne 0x4fbfc1
mov eax, dword [ebp - 4]
add dword [eax + 0xe0], 2
jmp 0x4fbf74
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 0x4fbf87
cmp al, 0x29
jne 0x4fbf6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x29
je 0x4fbfa6
mov edx, 0x7d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4f7
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xe0]
jmp 0x4fbfde
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 0x4fbff1
cmp al, 0x29
jne 0x4fbfd5
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xe0]
cmp byte [edi], 0x29
jne 0x4fc038
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
mov edx, ebx
call fcn.004042b8
mov eax, dword [ebp - 0x4c]
mov ecx, edi
sub ecx, ebx
mov edx, 1
call fcn.004045e0
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x110]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004fa3e4
test al, al
jne 0x4fc049
mov edx, 0x7f
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4f7
lea ecx, [ebp - 0x44]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004fab88
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x4fc084
xor esi, esi
jmp 0x4fc4fa
mov eax, dword [ebp - 0x44]
and eax, 5
mov edx, dword [ebp - 0xc]
or dword [edx], eax
jmp 0x4fc4f7
mov edx, 0x72
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
mov edx, 0x73
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
cmp byte [eax], 0
jne 0x4fc0cc
mov edx, 0x74
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
cmp eax, 0x57
jg 0x4fc117
je 0x4fc27e
cmp eax, 0x42
jg 0x4fc100
je 0x4fc156
add eax, 0xffffffcf
sub eax, 9
jb 0x4fc2b5
sub eax, 7
je 0x4fc168
jmp 0x4fc305
sub eax, 0x44
je 0x4fc1ae
sub eax, 0xf
je 0x4fc20a
jmp 0x4fc305
cmp eax, 0x64
jg 0x4fc12d
je 0x4fc18c
sub eax, 0x5a
je 0x4fc17a
sub eax, 8
je 0x4fc144
jmp 0x4fc305
sub eax, 0x73
je 0x4fc1d0
sub eax, 4
je 0x4fc244
jmp 0x4fc305
mov dl, 0x25
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc31b
mov dl, 0x26
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc31b
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc31b
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc31b
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.004fa800
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 0x4fc31b
mov dl, 0xd
mov eax, dword [ebp - 4]
call fcn.004fa800
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 0x4fc31b
push ebp
mov al, 4
call fcn.004fb558
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.004fb95c
pop ecx
push ebp
xor eax, eax
call fcn.004fb65c
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 0x4fc31b
push ebp
mov al, 5
call fcn.004fb558
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.004fb95c
pop ecx
push ebp
xor eax, eax
call fcn.004fb65c
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 0x4fc31b
push ebp
mov al, 4
call fcn.004fb558
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.004fb95c
pop ecx
push ebp
xor eax, eax
call fcn.004fb65c
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 0x4fc31b
push ebp
mov al, 5
call fcn.004fb558
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.004fb95c
pop ecx
push ebp
xor eax, eax
call fcn.004fb65c
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 0x4fc31b
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4fc2d0
mov dl, 0x1d
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc2dd
mov dl, 0x1c
mov eax, dword [ebp - 4]
call fcn.004fa800
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.004fa83c
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 0x4fc31b
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.004fb990
pop ecx
call fcn.004fb4a0
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4fc4f7
mov eax, dword [ebp - 4]
dec dword [eax + 0xe0]
mov edx, dword [ebp - 4]
test byte [edx + 0x110], 0x20
je 0x4fc3e7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
cmp al, 0x23
je 0x4fc363
add al, 0xf7
sub al, 2
jb 0x4fc363
sub al, 2
je 0x4fc363
sub al, 0x13
jne 0x4fc3e7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x4fc3bc
jmp 0x4fc37c
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 0x4fc39e
cmp al, 0xd
je 0x4fc39e
cmp al, 0xa
jne 0x4fc373
jmp 0x4fc39e
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 0x4fc395
cmp al, 0xa
je 0x4fc395
jmp 0x4fc3d5
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 0x4fc3b3
sub al, 2
je 0x4fc3b3
sub al, 0x13
je 0x4fc3b3
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4f7
mov edx, 0x53fea8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
call fcn.004fa8c0
mov ebx, eax
test ebx, ebx
jg 0x4fc42f
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xe0]
cmp byte [ebx], 0x7b
je 0x4fc41f
mov edx, 0x77
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4fc4fa
mov edx, 0x53fea8
mov eax, ebx
inc eax
call fcn.004fa8c0
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 0x4fc452
cmp al, 0x2a
je 0x4fc451
cmp al, 0x2b
je 0x4fc451
cmp al, 0x3f
je 0x4fc451
cmp al, 0x7b
jne 0x4fc452
dec ebx
mov eax, dword [ebp - 0xc]
or dword [eax], 1
cmp ebx, 1
jne 0x4fc463
mov eax, dword [ebp - 0xc]
or dword [eax], 2
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4fc47e
mov dl, 0x14
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4cf
mov dl, 8
mov eax, dword [ebp - 4]
call fcn.004fa800
mov dword [ebp - 8], eax
jmp 0x4fc4cf
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x20
je 0x4fc4b2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
add al, 0xf7
sub al, 2
jb 0x4fc4c5
sub al, 2
je 0x4fc4c5
sub al, 0x13
je 0x4fc4c5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov dl, byte [eax]
mov eax, dword [ebp - 4]
call fcn.004fa83c
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
dec ebx
test ebx, ebx
jle 0x4fc4ed
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x20
je 0x4fc48d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x4fc48d
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004fa83c
mov esi, dword [ebp - 8]