Function at 0x4f4c7c
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 5
push 0
push 0
dec ecx
jne 0x4f4c84
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4f5770
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, eax
sub edx, 2
movzx edx, word [edx]
cmp edx, 0x2e
jg 0x4f4d0c
je 0x4f4de5
cmp edx, 0x28
jg 0x4f4cf4
je 0x4f51a1
sub edx, 1
jb 0x4f5303
sub edx, 0x23
je 0x4f4d93
jmp 0x4f5554
sub edx, 0x29
je 0x4f5303
dec edx
sub edx, 2
jb 0x4f5314
jmp 0x4f5554
cmp edx, 0x5c
jg 0x4f4d2e
je 0x4f5325
sub edx, 0x3f
je 0x4f5314
sub edx, 0x1c
je 0x4f4e2f
jmp 0x4f5554
sub edx, 0x5e
je 0x4f4d41
sub edx, 0x1e
je 0x4f5303
jmp 0x4f5554
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x10
je 0x4f4d6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
xor edx, edx
call fcn.00405238
jne 0x4f4d7f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10c], 0
jne 0x4f4d7f
mov dx, 1
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5752
mov dx, 0x22
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5752
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x10
je 0x4f4dbd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
xor edx, edx
call fcn.00405238
jne 0x4f4dd1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10c], 0
jne 0x4f4dd1
mov dx, 2
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5752
mov dx, 0x23
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5752
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 4
je 0x4f4e15
mov dx, 3
mov eax, dword [ebp - 4]
call fcn.004f3c64
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 0x4f5752
mov dx, 0x24
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
or dword [eax], 1
jmp 0x4f5752
cmp word [eax], 0x5e
jne 0x4f4e6b
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x4f4e51
push ebp
mov ax, 0x16
call fcn.004f4a90
pop ecx
mov dword [ebp - 8], eax
jmp 0x4f4e5f
push ebp
mov ax, 5
call fcn.004f4a90
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x4f4e95
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x4f4e87
push ebp
mov ax, 0x15
call fcn.004f4a90
pop ecx
mov dword [ebp - 8], eax
jmp 0x4f4e95
push ebp
mov ax, 4
call fcn.004f4a90
pop ecx
mov dword [ebp - 8], eax
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ax, word [eax]
cmp ax, 0x5d
jne 0x4f513e
push ebp
call fcn.004f4abc
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x4f513e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov dx, word [eax]
cmp dx, 0x2d
jne 0x4f508d
mov ecx, eax
add ecx, 2
cmp word [ecx], 0
je 0x4f508d
add eax, 2
cmp word [eax], 0x5d
je 0x4f508d
cmp byte [ebp - 0xd], 0
je 0x4f508d
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov si, word [eax]
cmp si, 0x5c
jne 0x4f4f72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
add eax, 2
mov dx, word [eax]
cmp dx, 0x100
jae 0x4f4f57
mov al, byte [eax]
add al, 0xc0
cmp al, 0x37
ja 0x4f4f45
and eax, 0x7f
bt dword [0x4f5780], eax
jae 0x4f4f57
push ebp
mov ax, 0x2d
call fcn.004f4aa4
pop ecx
jmp 0x4f513e
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.004f4b10
pop ecx
mov esi, eax
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x4f4fae
cmp word [ebp - 0x10], 0x430
jne 0x4f4fae
cmp si, 0x44f
jne 0x4f4fae
push ebp
lea eax, [ebp - 0x18]
mov edx, 0x513198
mov ecx, 0x22
call fcn.00405078
mov eax, dword [ebp - 0x18]
call fcn.004f4adc
pop ecx
jmp 0x4f507e
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x4f4fea
cmp word [ebp - 0x10], 0x410
jne 0x4f4fea
cmp si, 0x42f
jne 0x4f4fea
push ebp
lea eax, [ebp - 0x1c]
mov edx, 0x5131dc
mov ecx, 0x22
call fcn.00405078
mov eax, dword [ebp - 0x1c]
call fcn.004f4adc
pop ecx
jmp 0x4f507e
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x4f503f
cmp word [ebp - 0x10], 0x430
jne 0x4f503f
cmp si, 0x42f
jne 0x4f503f
push ebp
lea eax, [ebp - 0x20]
mov edx, 0x513198
mov ecx, 0x22
call fcn.00405078
mov eax, dword [ebp - 0x20]
call fcn.004f4adc
pop ecx
push ebp
lea eax, [ebp - 0x24]
mov edx, 0x5131dc
mov ecx, 0x22
call fcn.00405078
mov eax, dword [ebp - 0x24]
call fcn.004f4adc
pop ecx
jmp 0x4f507e
cmp si, word [ebp - 0x10]
jae 0x4f5056
mov edx, 0x6d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
inc word [ebp - 0x10]
push ebp
mov eax, esi
call fcn.004f4aa4
pop ecx
cmp si, word [ebp - 0x10]
jbe 0x4f507e
push ebp
mov ax, word [ebp - 0x10]
call fcn.004f4aa4
pop ecx
inc word [ebp - 0x10]
cmp si, word [ebp - 0x10]
ja 0x4f5069
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x4f513e
cmp dx, 0x5c
jne 0x4f512b
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0
jne 0x4f50c1
mov edx, 0x6e
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ax, word [eax]
sub ax, 0x64
je 0x4f50e1
sub ax, 0xf
je 0x4f5101
sub ax, 4
je 0x4f50ef
jmp 0x4f5113
push ebp
mov eax, 0x4f578c
call fcn.004f4adc
pop ecx
jmp 0x4f5134
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xfc]
call fcn.004f4adc
pop ecx
jmp 0x4f5134
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xf8]
call fcn.004f4adc
pop ecx
jmp 0x4f5134
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.004f4b10
pop ecx
call fcn.004f4abc
pop ecx
jmp 0x4f5134
push ebp
mov eax, edx
call fcn.004f4abc
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ax, word [eax]
test ax, ax
je 0x4f5159
cmp ax, 0x5d
jne 0x4f4ec5
push ebp
xor eax, eax
call fcn.004f4aa4
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x5d
je 0x4f5182
mov edx, 0x71
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
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 0x4f5752
cmp word [eax], 0x3f
jne 0x4f52d3
add eax, 2
cmp word [eax], 0x23
jne 0x4f521f
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 4
jmp 0x4f51ca
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ax, word [eax]
test ax, ax
je 0x4f51e1
cmp ax, 0x29
jne 0x4f51c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x29
je 0x4f5201
mov edx, 0x7d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5752
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
jmp 0x4f523e
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ax, word [eax]
test ax, ax
je 0x4f5255
cmp ax, 0x29
jne 0x4f5234
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xc0]
cmp word [edi], 0x29
jne 0x4f52a4
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
mov edx, esi
call fcn.00405024
mov eax, dword [ebp - 0x2c]
mov ecx, edi
sub ecx, esi
sar ecx, 1
jns 0x4f5280
adc ecx, 0
mov edx, 1
call fcn.004052bc
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xf0]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004f386c
test al, al
jne 0x4f52b5
mov edx, 0x7f
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5752
lea ecx, [ebp - 0x14]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004f3fe0
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x4f52f3
xor ebx, ebx
jmp 0x4f5755
mov eax, dword [ebp - 0x14]
and eax, 5
mov edx, dword [ebp - 0xc]
or dword [edx], eax
jmp 0x4f5752
mov edx, 0x72
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
mov edx, 0x73
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
cmp word [eax], 0
jne 0x4f533c
mov edx, 0x74
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
cmp eax, 0x57
jg 0x4f5387
je 0x4f54b8
cmp eax, 0x42
jg 0x4f5370
je 0x4f53c8
add eax, 0xffffffcf
sub eax, 9
jb 0x4f54d9
sub eax, 7
je 0x4f53dc
jmp 0x4f552f
sub eax, 0x44
je 0x4f5428
sub eax, 0xf
je 0x4f5470
jmp 0x4f552f
cmp eax, 0x64
jg 0x4f539d
je 0x4f5404
sub eax, 0x5a
je 0x4f53f0
sub eax, 8
je 0x4f53b4
jmp 0x4f552f
sub eax, 0x73
je 0x4f544c
sub eax, 4
je 0x4f5494
jmp 0x4f552f
mov dx, 0x25
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5545
mov dx, 0x26
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5545
mov dx, 1
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5545
mov dx, 2
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5545
mov dx, 0xc
mov eax, dword [ebp - 4]
call fcn.004f3c64
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 0x4f5545
mov dx, 0xd
mov eax, dword [ebp - 4]
call fcn.004f3c64
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 0x4f5545
mov dx, 0x10
mov eax, dword [ebp - 4]
call fcn.004f3c64
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 0x4f5545
mov dx, 0x11
mov eax, dword [ebp - 4]
call fcn.004f3c64
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 0x4f5545
mov dx, 0xe
mov eax, dword [ebp - 4]
call fcn.004f3c64
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 0x4f5545
mov dx, 0xf
mov eax, dword [ebp - 4]
call fcn.004f3c64
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 0x4f5545
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x4f54f6
mov dx, 0x1d
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5505
mov dx, 0x1c
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov dx, word [eax]
sub dx, 0x30
mov eax, dword [ebp - 4]
call fcn.004f3ca4
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 0x4f5545
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.004f4b10
pop ecx
call fcn.004f49c8
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x4f5752
mov eax, dword [ebp - 4]
sub dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x4f562a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov si, word [eax]
cmp si, 0x23
je 0x4f5594
mov edx, esi
mov eax, 0x4f57a4
call fcn.004f23e8
test eax, eax
je 0x4f562a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x23
jne 0x4f55fc
jmp 0x4f55af
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ax, word [eax]
test ax, ax
je 0x4f55d8
cmp ax, 0xd
je 0x4f55d8
cmp ax, 0xa
jne 0x4f55a5
jmp 0x4f55d8
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ax, word [eax]
cmp ax, 0xd
je 0x4f55ce
cmp ax, 0xa
je 0x4f55ce
jmp 0x4f5616
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov dx, word [eax]
mov eax, 0x4f57a4
call fcn.004f23e8
test eax, eax
jne 0x4f55f2
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5752
mov edx, 0x51317c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
call fcn.004f3d44
mov esi, eax
test esi, esi
jg 0x4f5675
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
cmp word [esi], 0x7b
je 0x4f5663
mov edx, 0x77
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4f5755
mov edx, 0x51317c
mov eax, esi
add eax, 2
call fcn.004f3d44
inc eax
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, esi
add edx, edx
add eax, edx
mov ax, word [eax]
cmp esi, 1
jle 0x4f56a5
cmp ax, 0x2a
je 0x4f56a4
cmp ax, 0x2b
je 0x4f56a4
cmp ax, 0x3f
je 0x4f56a4
cmp ax, 0x7b
jne 0x4f56a5
dec esi
mov eax, dword [ebp - 0xc]
or dword [eax], 1
cmp esi, 1
jne 0x4f56b6
mov eax, dword [ebp - 0xc]
or dword [eax], 2
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x4f56d3
mov dx, 0x14
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5729
mov dx, 8
mov eax, dword [ebp - 4]
call fcn.004f3c64
mov dword [ebp - 8], eax
jmp 0x4f5729
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x4f570a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov dx, word [eax]
mov eax, 0x4f57a4
call fcn.004f23e8
test eax, eax
jne 0x4f571e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov dx, word [eax]
mov eax, dword [ebp - 4]
call fcn.004f3ca4
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
dec esi
test esi, esi
jle 0x4f5748
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x4f56e4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x23
jne 0x4f56e4
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004f3ca4
mov ebx, dword [ebp - 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f5777
lea eax, [ebp - 0x2c]
mov edx, 6
call fcn.00404ee4
ret