Function at 0x463ec4
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 0x4648f9
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 0x463f4f
je 0x464014
cmp edx, 0x28
jg 0x463f37
je 0x464334
sub edx, 1
jb 0x464478
sub edx, 0x23
je 0x463fcc
jmp 0x46470d
sub edx, 0x29
je 0x464478
dec edx
sub edx, 2
jb 0x464489
jmp 0x46470d
cmp edx, 0x5c
jg 0x463f71
je 0x46449a
sub edx, 0x3f
je 0x464489
sub edx, 0x1c
je 0x46405a
jmp 0x46470d
sub edx, 0x5e
je 0x463f84
sub edx, 0x1e
je 0x464478
jmp 0x46470d
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x10
je 0x463fa8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x128], 0
jne 0x463fba
mov eax, dword [ebp - 4]
cmp byte [eax + 0x12c], 0
jne 0x463fba
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648db
mov dl, 0x22
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648db
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x10
je 0x463ff0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x128], 0
jne 0x464002
mov eax, dword [ebp - 4]
cmp byte [eax + 0x12c], 0
jne 0x464002
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648db
mov dl, 0x23
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648db
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 4
je 0x464042
mov dl, 3
mov eax, dword [ebp - 4]
call fcn.00462be0
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 0x4648db
mov dl, 0x24
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
or dword [eax], 1
jmp 0x4648db
cmp byte [eax], 0x5e
jne 0x464090
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x464079
push ebp
mov al, 0x16
call fcn.00463938
pop ecx
mov dword [ebp - 8], eax
jmp 0x464085
push ebp
mov al, 5
call fcn.00463938
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4640b6
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4640aa
push ebp
mov al, 0x15
call fcn.00463938
pop ecx
mov dword [ebp - 8], eax
jmp 0x4640b6
push ebp
mov al, 4
call fcn.00463938
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 0x4642d7
push ebp
call fcn.00463d24
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4642d7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov dl, byte [eax]
cmp dl, 0x2d
jne 0x464231
mov ecx, eax
inc ecx
cmp byte [ecx], 0
je 0x464231
inc eax
cmp byte [eax], 0x5d
je 0x464231
cmp byte [ebp - 0x3f], 0
je 0x464231
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 0x46416c
inc eax
mov al, byte [eax]
add al, 0xc0
cmp al, 0x37
ja 0x464142
and eax, 0x7f
bt dword [0x46490c], eax
jae 0x464152
push ebp
mov al, 0x2d
call fcn.00463a3c
pop ecx
jmp 0x4642d7
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.00463d74
pop ecx
mov ebx, eax
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x464194
cmp byte [ebp - 0x40], 0xe0
jne 0x464194
cmp bl, 0xff
jne 0x464194
push ebp
mov eax, 0x46491c
call fcn.00463d40
pop ecx
jmp 0x464223
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4641b9
cmp byte [ebp - 0x40], 0xc0
jne 0x4641b9
cmp bl, 0xdf
jne 0x4641b9
push ebp
mov eax, 0x464948
call fcn.00463d40
pop ecx
jmp 0x464223
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 2
je 0x4641ea
cmp byte [ebp - 0x40], 0xe0
jne 0x4641ea
cmp bl, 0xdf
jne 0x4641ea
push ebp
mov eax, 0x46491c
call fcn.00463d40
pop ecx
push ebp
mov eax, 0x464948
call fcn.00463d40
pop ecx
jmp 0x464223
cmp bl, byte [ebp - 0x40]
jae 0x464200
mov edx, 0x6d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
inc byte [ebp - 0x40]
push ebp
mov eax, ebx
call fcn.00463a3c
pop ecx
cmp bl, byte [ebp - 0x40]
jbe 0x464223
push ebp
mov al, byte [ebp - 0x40]
call fcn.00463a3c
pop ecx
inc byte [ebp - 0x40]
cmp bl, byte [ebp - 0x40]
ja 0x464211
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4642d7
cmp dl, 0x5c
jne 0x4642c5
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0
jne 0x464262
mov edx, 0x6e
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
sub al, 0x64
je 0x46427b
sub al, 0xf
je 0x46429b
sub al, 4
je 0x464289
jmp 0x4642ad
push ebp
mov eax, 0x464974
call fcn.00463d40
pop ecx
jmp 0x4642ce
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.00463d40
pop ecx
jmp 0x4642ce
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.00463d40
pop ecx
jmp 0x4642ce
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.00463d74
pop ecx
call fcn.00463d24
pop ecx
jmp 0x4642ce
push ebp
mov eax, edx
call fcn.00463d24
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 0x4642ee
cmp al, 0x5d
jne 0x4640e2
push ebp
xor eax, eax
call fcn.00463a3c
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x5d
je 0x464316
mov edx, 0x71
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
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 0x4648db
cmp byte [eax], 0x3f
jne 0x464448
inc eax
cmp byte [eax], 0x23
jne 0x4643a5
mov eax, dword [ebp - 4]
add dword [eax + 0xe0], 2
jmp 0x464358
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 0x46436b
cmp al, 0x29
jne 0x46434f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x29
je 0x46438a
mov edx, 0x7d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648db
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xe0]
jmp 0x4643c2
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 0x4643d5
cmp al, 0x29
jne 0x4643b9
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xe0]
cmp byte [edi], 0x29
jne 0x46441c
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
mov edx, ebx
call fcn.00404294
mov eax, dword [ebp - 0x4c]
mov ecx, edi
sub ecx, ebx
mov edx, 1
call fcn.004045bc
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.004627c4
test al, al
jne 0x46442d
mov edx, 0x7f
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648db
lea ecx, [ebp - 0x44]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00462f68
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x464468
xor esi, esi
jmp 0x4648de
mov eax, dword [ebp - 0x44]
and eax, 5
mov edx, dword [ebp - 0xc]
or dword [edx], eax
jmp 0x4648db
mov edx, 0x72
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
mov edx, 0x73
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
cmp byte [eax], 0
jne 0x4644b0
mov edx, 0x74
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
movzx eax, byte [eax]
cmp eax, 0x57
jg 0x4644fb
je 0x464662
cmp eax, 0x42
jg 0x4644e4
je 0x46453a
add eax, 0xffffffcf
sub eax, 9
jb 0x464699
sub eax, 7
je 0x46454c
jmp 0x4646e9
sub eax, 0x44
je 0x464592
sub eax, 0xf
je 0x4645ee
jmp 0x4646e9
cmp eax, 0x64
jg 0x464511
je 0x464570
sub eax, 0x5a
je 0x46455e
sub eax, 8
je 0x464528
jmp 0x4646e9
sub eax, 0x73
je 0x4645b4
sub eax, 4
je 0x464628
jmp 0x4646e9
mov dl, 0x25
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4646ff
mov dl, 0x26
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4646ff
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4646ff
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4646ff
mov dl, 0xc
mov eax, dword [ebp - 4]
call fcn.00462be0
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 0x4646ff
mov dl, 0xd
mov eax, dword [ebp - 4]
call fcn.00462be0
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 0x4646ff
push ebp
mov al, 4
call fcn.00463938
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.00463d40
pop ecx
push ebp
xor eax, eax
call fcn.00463a3c
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 0x4646ff
push ebp
mov al, 5
call fcn.00463938
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
call fcn.00463d40
pop ecx
push ebp
xor eax, eax
call fcn.00463a3c
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 0x4646ff
push ebp
mov al, 4
call fcn.00463938
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.00463d40
pop ecx
push ebp
xor eax, eax
call fcn.00463a3c
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 0x4646ff
push ebp
mov al, 5
call fcn.00463938
pop ecx
mov dword [ebp - 8], eax
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x11c]
call fcn.00463d40
pop ecx
push ebp
xor eax, eax
call fcn.00463a3c
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 0x4646ff
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x4646b4
mov dl, 0x1d
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4646c1
mov dl, 0x1c
mov eax, dword [ebp - 4]
call fcn.00462be0
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.00462c1c
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 0x4646ff
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xe0
call fcn.00463d74
pop ecx
call fcn.00463880
pop ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
jmp 0x4648db
mov eax, dword [ebp - 4]
dec dword [eax + 0xe0]
mov edx, dword [ebp - 4]
test byte [edx + 0x110], 0x20
je 0x4647cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
cmp al, 0x23
je 0x464747
add al, 0xf7
sub al, 2
jb 0x464747
sub al, 2
je 0x464747
sub al, 0x13
jne 0x4647cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x4647a0
jmp 0x464760
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 0x464782
cmp al, 0xd
je 0x464782
cmp al, 0xa
jne 0x464757
jmp 0x464782
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 0x464779
cmp al, 0xa
je 0x464779
jmp 0x4647b9
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 0x464797
sub al, 2
je 0x464797
sub al, 0x13
je 0x464797
mov dl, 0x13
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648db
mov edx, 0x489444
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
call fcn.00462ca0
mov ebx, eax
test ebx, ebx
jg 0x464813
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xe0]
cmp byte [ebx], 0x7b
je 0x464803
mov edx, 0x77
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x4648de
mov edx, 0x489444
mov eax, ebx
inc eax
call fcn.00462ca0
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 0x464836
cmp al, 0x2a
je 0x464835
cmp al, 0x2b
je 0x464835
cmp al, 0x3f
je 0x464835
cmp al, 0x7b
jne 0x464836
dec ebx
mov eax, dword [ebp - 0xc]
or dword [eax], 1
cmp ebx, 1
jne 0x464847
mov eax, dword [ebp - 0xc]
or dword [eax], 2
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 1
je 0x464862
mov dl, 0x14
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648b3
mov dl, 8
mov eax, dword [ebp - 4]
call fcn.00462be0
mov dword [ebp - 8], eax
jmp 0x4648b3
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x20
je 0x464896
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov al, byte [eax]
add al, 0xf7
sub al, 2
jb 0x4648a9
sub al, 2
je 0x4648a9
sub al, 0x13
je 0x4648a9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
mov dl, byte [eax]
mov eax, dword [ebp - 4]
call fcn.00462c1c
mov eax, dword [ebp - 4]
inc dword [eax + 0xe0]
dec ebx
test ebx, ebx
jle 0x4648d1
mov eax, dword [ebp - 4]
test byte [eax + 0x110], 0x20
je 0x464871
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe0]
cmp byte [eax], 0x23
jne 0x464871
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00462c1c
mov esi, dword [ebp - 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x464900
lea eax, [ebp - 0x4c]
mov edx, 2
call fcn.004040c0
ret