Function at 0x4fc8c1
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x13c]
sub esp, 0x1bc
mov eax, dword [0x55f050]
xor eax, ebp
mov dword [ebp + 0x138], eax
or dword [ebp - 0x60], 0xffffffff
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 0x144]
mov eax, dword [ebx + 8]
push esi
mov esi, dword [ebp + 0x148]
mov dword [esi + 4], eax
mov dword [esi + 0xc], ecx
mov eax, dword [ebx + 8]
push edi
mov edi, dword [ebx + 0xc]
add edi, eax
mov dword [ebp - 0x70], eax
mov al, byte [edi]
test al, al
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x80], ecx
jne 0x4fc92d
push 0xfffffffffffffffe
mov dword [esi + 8], ecx
mov dword [esi], ecx
pop eax
jmp 0x4fce48
movsx eax, al
cmp eax, ecx
mov dword [ebp - 0x64], eax
je 0x4fcbad
cmp dword [ebp - 0x78], ecx
je 0x4fc9a8
movsx eax, byte [ebp - 0x64]
push eax
push 0x515bd0
call 0x5cc8ce
test eax, eax
pop ecx
pop ecx
je 0x4fcb91
mov eax, dword [ebp - 0x78]
mov esi, edi
sub esi, dword [ebx + 0xc]
sub esi, eax
cmp dword [ebp - 0x60], 0
jne 0x4fc974
mov dword [ebx], eax
lea eax, [esi + eax - 1]
mov dword [ebx + 4], eax
jmp 0x4fc99d
mov ecx, dword [ebp - 0x74]
add ecx, 0x10
push esi
call fcn.004f28c9
mov ecx, dword [ebx + 0xc]
add ecx, dword [ebp - 0x78]
push esi
push ecx
push eax
call 0x5cc920
mov ecx, dword [ebp - 0x74]
add esp, 0xc
push esi
add ecx, 0x10
call fcn.004f5334
xor eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
xor edx, edx
cmp dword [ebp - 0x68], edx
je 0x4fcb46
mov eax, dword [ebp - 0x64]
cmp eax, 0x3e
jne 0x4fca52
test byte [ebp - 0x5c], 0xc0
jne 0x4fca6b
mov ecx, dword [ebp - 0x6c]
mov eax, edi
sub eax, dword [ebx + 0xc]
cmp ecx, 1
mov dword [ebp - 0x70], eax
jne 0x4fca0d
cmp dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], edx
jne 0x4fca43
cmp dword [ebp - 0x7c], 0x2f
jne 0x4fca43
cmp dword [ebp - 0x80], edx
je 0x4fca01
movsx eax, byte [ebp - 0x80]
push eax
push 0x515bc8
call 0x5cc8ce
test eax, eax
pop ecx
pop ecx
je 0x4fca43
mov eax, dword [ebp - 0x74]
or dword [eax + 0xc], 0x10000
jmp 0x4fca43
cmp eax, ecx
jle 0x4fca3a
mov eax, edi
sub eax, ecx
lea esi, [eax + 1]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x64], ecx
sub eax, esi
jmp 0x4fca24
xor edx, edx
dec dword [ebp - 0x64]
je 0x4fca37
mov cl, byte [esi]
mov dl, byte [eax + esi]
inc esi
cmp cl, dl
je 0x4fca22
xor edx, edx
jmp 0x4fca3a
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x68], edx
jne 0x4fcb91
test byte [ebp - 0x5c], 0x20
je 0x4fce33
jmp 0x4fcb91
cmp eax, 0x3c
jne 0x4fca6b
cmp dword [ebp - 0x60], 2
je 0x4fcf02
cmp dword [ebp - 0x60], 0xffffffff
je 0x4fcf02
test byte [ebp - 0x60], 1
je 0x4fcb1b
test byte [ebp - 0x5c], 0xc0
je 0x4fcaa4
cmp eax, 0x22
jne 0x4fca93
test byte [ebp - 0x5c], 0x80
je 0x4fcb10
xor dword [ebp - 0x5c], 0x80
jmp 0x4fcb10
cmp eax, 0x27
jne 0x4fcb10
test byte [ebp - 0x5c], 0x40
je 0x4fcb10
xor dword [ebp - 0x5c], 0x40
jmp 0x4fcb10
cmp eax, 0x22
jne 0x4fcaba
test word [ebp - 0x5c], 0x100
je 0x4fcb10
xor dword [ebp - 0x5c], 0x180
jmp 0x4fcb10
cmp eax, 0x27
jne 0x4fcad0
test word [ebp - 0x5c], 0x100
je 0x4fcb10
xor dword [ebp - 0x5c], 0x140
jmp 0x4fcb10
cmp eax, 0x3d
jne 0x4fcae9
cmp dword [ebp - 0x7c], eax
je 0x4fcae9
mov ecx, 0x100
test dword [ebp - 0x5c], ecx
jne 0x4fcae9
xor dword [ebp - 0x5c], ecx
jmp 0x4fcb10
test word [ebp - 0x5c], 0x100
je 0x4fcb10
movsx eax, byte [ebp - 0x64]
push eax
push 0x515a30
call 0x5cc8ce
pop ecx
test eax, eax
mov eax, dword [ebp - 0x64]
pop ecx
jne 0x4fcb10
xor dword [ebp - 0x5c], 0x100
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], eax
jmp 0x4fcb91
test byte [ebp - 0x60], 0x40
je 0x4fcb91
cmp eax, 0x22
jne 0x4fcb35
test byte [ebp - 0x5c], 0x40
jne 0x4fcb91
xor dword [ebp - 0x5c], 0x80
jmp 0x4fcb91
cmp eax, 0x27
jne 0x4fcb91
test byte [ebp - 0x5c], 0x80
jne 0x4fcb91
xor dword [ebp - 0x5c], 0x40
jmp 0x4fcb91
cmp dword [ebp - 0x5c], edx
je 0x4fce60
test byte [ebp - 0x5c], 0x10
je 0x4fcbf6
cmp dword [ebp - 0x64], 0x3c
je 0x4fcf0b
movsx eax, byte [ebp - 0x64]
push eax
push 0x515a30
call 0x5cc8ce
test eax, eax
pop ecx
pop ecx
jne 0x4fcb91
xor dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x60], 2
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x68], 0x515bc4
push edi
call 0x5cddd7
add edi, eax
movsx eax, byte [edi]
pop ecx
xor ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x64], eax
jne 0x4fc93b
mov esi, dword [ebp - 0x74]
sub edi, dword [ebx + 0xc]
dec edi
cmp dword [ebp - 0x60], 4
mov dword [ebp - 0x70], edi
je 0x4fce33
cmp dword [ebp - 0x60], 2
je 0x4fce33
test byte [ebp - 0x5c], 0x20
mov edx, 0x515bc0
jne 0x4fcecd
mov eax, dword [ebp - 0x60]
cmp eax, 0x40
je 0x4fcecd
cmp eax, 1
jne 0x4fce9e
mov edx, 0x515bb4
jmp 0x4fced2
test byte [ebp - 0x5c], 1
je 0x4fccaf
mov ecx, dword [ebp - 0x64]
xor eax, eax
inc eax
xor dword [ebp - 0x5c], eax
cmp ecx, 0x60
ja 0x4fcc95
cmp ecx, 0x40
jbe 0x4fcc1c
cmp ecx, 0x5b
jb 0x4fcc95
cmp ecx, 0x5f
je 0x4fcc95
cmp ecx, 0x3a
je 0x4fcc95
cmp ecx, 0x2f
jne 0x4fcc39
mov dword [ebp - 0x6c], eax
mov eax, edi
sub eax, dword [ebx + 0xc]
mov dword [ebp - 0x60], edx
inc eax
jmp 0x4fcca0
cmp ecx, 0x21
jne 0x4fcc47
or dword [ebp - 0x5c], 2
jmp 0x4fcb91
cmp ecx, 0x3f
jne 0x4fcc69
mov eax, edi
sub eax, dword [ebx + 0xc]
mov dword [ebp - 0x68], 0x515bb0
mov dword [ebp - 0x6c], 2
mov dword [ebp - 0x60], 0x10
inc eax
jmp 0x4fcca7
push dword [ebp - 0x70]
lea eax, [ebp - 0x58]
push 0x515b9c
push 0x515b80
push eax
mov dword [ebp - 0x68], 0x515b7c
mov dword [ebp - 0x6c], 1
call 0x5cea53
lea eax, [ebp - 0x58]
jmp 0x4fcdeb
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], eax
mov eax, edi
sub eax, dword [ebx + 0xc]
mov dword [ebp - 0x68], 0x515b7c
mov dword [ebp - 0x78], eax
jmp 0x4fcb91
test byte [ebp - 0x5c], 2
je 0x4fcd43
xor dword [ebp - 0x5c], 2
cmp dword [ebp - 0x64], 0x2d
jne 0x4fcccc
or dword [ebp - 0x5c], 4
jmp 0x4fcb91
cmp dword [ebp - 0x64], 0x5b
jne 0x4fcce1
test byte [ebp - 0x5c], 0x20
jne 0x4fccf6
or dword [ebp - 0x5c], 8
jmp 0x4fcb91
cmp dword [ebp - 0x64], 0x44
jne 0x4fccf6
test byte [ebp - 0x5c], 0x20
jne 0x4fccf6
or dword [ebp - 0x5c], 0x20
jmp 0x4fcb91
movsx eax, byte [ebp - 0x64]
push eax
push 0x515b78
call 0x5cc8ce
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x68], 0x515b7c
mov dword [ebp - 0x6c], 1
je 0x4fcd25
mov dword [ebp - 0x60], 0x40
jmp 0x4fcb91
push dword [ebp - 0x70]
lea eax, [ebp + 0xc]
push 0x515b70
push 0x515b80
push eax
call 0x5cea53
lea eax, [ebp + 0xc]
jmp 0x4fcdeb
test byte [ebp - 0x5c], 4
je 0x4fcd96
xor dword [ebp - 0x5c], 4
cmp dword [ebp - 0x64], 0x2d
jne 0x4fcd6d
mov dword [ebp - 0x68], 0x515b6c
mov dword [ebp - 0x6c], 3
mov dword [ebp - 0x60], 0x20
jmp 0x4fcb91
push dword [ebp - 0x70]
lea eax, [ebp + 0x70]
push 0x515b60
push 0x515b80
push eax
mov dword [ebp - 0x68], 0x515b7c
mov dword [ebp - 0x6c], 1
call 0x5cea53
lea eax, [ebp + 0x70]
jmp 0x4fcdeb
test byte [ebp - 0x5c], 8
je 0x4fce03
push 8
pop eax
xor dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0x43
jne 0x4fcdbe
mov dword [ebp - 0x68], 0x515b5c
mov dword [ebp - 0x6c], 3
mov dword [ebp - 0x60], eax
jmp 0x4fcb91
push dword [ebp - 0x70]
lea eax, [ebp + 0xd4]
push 0x515bc0
push 0x515b80
push eax
mov dword [ebp - 0x68], 0x515b7c
mov dword [ebp - 0x6c], 1
call 0x5cea53
lea eax, [ebp + 0xd4]
mov ecx, dword [ebp - 0x74]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.004f2aea
or dword [ebp - 0x60], 0xffffffff
jmp 0x4fcb91
test byte [ebp - 0x5c], 0x20
je 0x4fcb91
cmp dword [ebp - 0x64], 0x3c
jne 0x4fce1c
or dword [ebp - 0x5c], 1
jmp 0x4fcb91
cmp dword [ebp - 0x64], 0x3e
jne 0x4fcb91
sub edi, dword [ebx + 0xc]
mov dword [ebp - 0x60], 0x40
mov dword [ebp - 0x70], edi
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x74]
inc eax
mov dword [ebx + 8], eax
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x138]
pop edi
pop esi
xor ecx, ebp
pop ebx
call 0x5cbb23
add ebp, 0x13c
leave
ret
cmp dword [ebp - 0x64], 0x3c
jne 0x4fce72
mov dword [ebp - 0x5c], 1
jmp 0x4fcb91
movsx eax, byte [ebp - 0x64]
push eax
push 0x515a30
mov dword [ebp - 0x60], 4
call 0x5cc8ce
test eax, eax
pop ecx
pop ecx
je 0x4fcb7c
mov dword [ebp - 0x5c], 0x10
jmp 0x4fcb91
cmp eax, ecx
jne 0x4fcea9
mov edx, 0x515b4c
jmp 0x4fced2
cmp eax, 8
jne 0x4fceb5
mov edx, 0x515b3c
jmp 0x4fced2
cmp eax, 0x10
jne 0x4fcec1
mov edx, 0x515b24
jmp 0x4fced2
cmp eax, 0x20
jne 0x4fced2
mov edx, 0x515b1c
jmp 0x4fced2
mov edx, 0x515b14
push dword [esi + 4]
or dword [ebp - 0x60], 0xffffffff
push edx
lea eax, [ebp + 0xd4]
push 0x515af4
push eax
call 0x5cea53
add esp, 0x10
lea eax, [ebp + 0xd4]
push eax
lea ecx, [esi + 0x10]
call fcn.004f2aea
jmp 0x4fce33
sub edi, dword [ebx + 0xc]
dec edi
jmp 0x4fce30
sub edi, dword [ebx + 0xc]
mov dword [ebp - 0x60], 4
dec edi
jmp 0x4fce30