Function at 0x519448
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 6
push 0
push 0
dec ecx
jne 0x519450
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x519f8a
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 0x10]
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 0x5194d8
je 0x5195b1
cmp edx, 0x28
jg 0x5194c0
je 0x5199a3
sub edx, 1
jb 0x519b10
sub edx, 0x23
je 0x51955f
jmp 0x519d61
sub edx, 0x29
je 0x519b10
dec edx
sub edx, 2
jb 0x519b21
jmp 0x519d61
cmp edx, 0x5c
jg 0x5194fa
je 0x519b32
sub edx, 0x3f
je 0x519b21
sub edx, 0x1c
je 0x5195fb
jmp 0x519d61
sub edx, 0x5e
je 0x51950d
sub edx, 0x1e
je 0x519b10
jmp 0x519d61
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x10
je 0x519537
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
xor edx, edx
call fcn.00406aac
jne 0x51954b
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10c], 0
jne 0x51954b
mov dx, 1
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f5f
mov dx, 0x22
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f5f
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x10
je 0x519589
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x108]
xor edx, edx
call fcn.00406aac
jne 0x51959d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x10c], 0
jne 0x51959d
mov dx, 2
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f5f
mov dx, 0x23
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f5f
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 4
je 0x5195e1
mov dx, 3
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519f5f
mov dx, 0x24
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
or dword [eax], 1
jmp 0x519f5f
cmp word [eax], 0x5e
jne 0x519637
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x51961d
push ebp
mov ax, 0x16
call fcn.00519258
pop ecx
mov dword [ebp - 8], eax
jmp 0x51962b
push ebp
mov ax, 5
call fcn.00519258
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x519661
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x519653
push ebp
mov ax, 0x15
call fcn.00519258
pop ecx
mov dword [ebp - 8], eax
jmp 0x519661
push ebp
mov ax, 4
call fcn.00519258
pop ecx
mov dword [ebp - 8], eax
mov byte [ebp - 0x11], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
cmp ax, 0x5d
jne 0x519939
push ebp
call fcn.00519284
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x519939
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
cmp word [esi], 0x2d
jne 0x519875
mov eax, esi
add eax, 2
cmp word [eax], 0
je 0x519875
add esi, 2
cmp word [esi], 0x5d
je 0x519875
cmp byte [ebp - 0x11], 0
je 0x519875
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edi, word [eax]
cmp di, 0x5c
jne 0x51975a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
add eax, 2
movzx eax, word [eax]
cmp ax, 0x100
jae 0x51973f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
add eax, 2
movzx eax, word [eax]
add eax, 0xffffffc0
cmp ax, 0x37
ja 0x51972d
and eax, 0x7f
mov edx, 0x519f9c
mov ecx, edx
and ecx, 3
sub edx, ecx
add ecx, ecx
add ecx, ecx
add ecx, ecx
add eax, ecx
bt dword [edx], eax
jae 0x51973f
push ebp
mov ax, 0x2d
call fcn.0051926c
pop ecx
jmp 0x519939
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.005192dc
pop ecx
mov edi, eax
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x519796
cmp word [ebp - 0x14], 0x430
jne 0x519796
cmp di, 0x44f
jne 0x519796
push ebp
lea eax, [ebp - 0x1c]
mov edx, 0x52be58
mov ecx, 0x22
call fcn.0040685c
mov eax, dword [ebp - 0x1c]
call fcn.005192a4
pop ecx
jmp 0x519866
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x5197d2
cmp word [ebp - 0x14], 0x410
jne 0x5197d2
cmp di, 0x42f
jne 0x5197d2
push ebp
lea eax, [ebp - 0x20]
mov edx, 0x52be9c
mov ecx, 0x22
call fcn.0040685c
mov eax, dword [ebp - 0x20]
call fcn.005192a4
pop ecx
jmp 0x519866
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 2
je 0x519827
cmp word [ebp - 0x14], 0x430
jne 0x519827
cmp di, 0x42f
jne 0x519827
push ebp
lea eax, [ebp - 0x24]
mov edx, 0x52be58
mov ecx, 0x22
call fcn.0040685c
mov eax, dword [ebp - 0x24]
call fcn.005192a4
pop ecx
push ebp
lea eax, [ebp - 0x28]
mov edx, 0x52be9c
mov ecx, 0x22
call fcn.0040685c
mov eax, dword [ebp - 0x28]
call fcn.005192a4
pop ecx
jmp 0x519866
cmp di, word [ebp - 0x14]
jae 0x51983e
mov edx, 0x6d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
inc word [ebp - 0x14]
push ebp
mov eax, edi
call fcn.0051926c
pop ecx
cmp di, word [ebp - 0x14]
jbe 0x519866
push ebp
movzx eax, word [ebp - 0x14]
call fcn.0051926c
pop ecx
inc word [ebp - 0x14]
cmp di, word [ebp - 0x14]
ja 0x519851
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x519939
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x5c
jne 0x51991c
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 0x5198b2
mov edx, 0x6e
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
sub ax, 0x64
je 0x5198d2
sub ax, 0xf
je 0x5198f2
sub ax, 4
je 0x5198e0
jmp 0x519904
push ebp
mov eax, 0x519fa8
call fcn.005192a4
pop ecx
jmp 0x51992f
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xfc]
call fcn.005192a4
pop ecx
jmp 0x51992f
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xf8]
call fcn.005192a4
pop ecx
jmp 0x51992f
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.005192dc
pop ecx
call fcn.00519284
pop ecx
jmp 0x51992f
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
call fcn.00519284
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0
je 0x51995b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x5d
jne 0x519691
push ebp
xor eax, eax
call fcn.0051926c
pop ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x5d
je 0x519984
mov edx, 0x71
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519f5f
cmp word [eax], 0x3f
jne 0x519ae0
add eax, 2
cmp word [eax], 0x23
jne 0x519a21
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 4
jmp 0x5199cc
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
test ax, ax
je 0x5199e3
cmp ax, 0x29
jne 0x5199c2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x29
je 0x519a03
mov edx, 0x7d
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f5f
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
jmp 0x519a40
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
test ax, ax
je 0x519a57
cmp ax, 0x29
jne 0x519a36
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0xc0]
cmp word [edi], 0x29
jne 0x519ab1
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
mov edx, esi
call fcn.00406e5c
mov eax, dword [ebp - 0x34]
mov ecx, edi
sub ecx, esi
sar ecx, 1
jns 0x519a82
adc ecx, 0
mov edx, 1
call fcn.004073d8
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
call fcn.00406f14
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xf0]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.0051802c
test al, al
jne 0x519ac2
mov edx, 0x7f
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f5f
lea ecx, [ebp - 0x18]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.005187b4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x519b00
xor ebx, ebx
jmp 0x519f62
mov eax, dword [ebp - 0x18]
and eax, 5
mov edx, dword [ebp - 0x10]
or dword [edx], eax
jmp 0x519f5f
mov edx, 0x72
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
mov edx, 0x73
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
cmp word [eax], 0
jne 0x519b49
mov edx, 0x74
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
cmp eax, 0x57
jg 0x519b94
je 0x519cc5
cmp eax, 0x42
jg 0x519b7d
je 0x519bd5
add eax, 0xffffffcf
sub eax, 9
jb 0x519ce6
sub eax, 7
je 0x519be9
jmp 0x519d3c
sub eax, 0x44
je 0x519c35
sub eax, 0xf
je 0x519c7d
jmp 0x519d3c
cmp eax, 0x64
jg 0x519baa
je 0x519c11
sub eax, 0x5a
je 0x519bfd
sub eax, 8
je 0x519bc1
jmp 0x519d3c
sub eax, 0x73
je 0x519c59
sub eax, 4
je 0x519ca1
jmp 0x519d3c
mov dx, 0x25
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519d52
mov dx, 0x26
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519d52
mov dx, 1
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519d52
mov dx, 2
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519d52
mov dx, 0xc
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519d52
mov dx, 0xd
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519d52
mov dx, 0x10
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519d52
mov dx, 0x11
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519d52
mov dx, 0xe
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519d52
mov dx, 0xf
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519d52
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x519d03
mov dx, 0x1d
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519d12
mov dx, 0x1c
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
sub dx, 0x30
mov eax, dword [ebp - 4]
call fcn.00518474
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
jmp 0x519d52
push ebp
push ebp
mov eax, dword [ebp - 4]
add eax, 0xc0
call fcn.005192dc
pop ecx
call fcn.00519190
pop ecx
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
jmp 0x519f5f
mov eax, dword [ebp - 4]
sub dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x519e37
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx esi, word [eax]
cmp si, 0x23
je 0x519da1
mov edx, esi
mov eax, 0x519fc0
call fcn.00516a78
test eax, eax
je 0x519e37
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x23
jne 0x519e09
jmp 0x519dbc
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
test ax, ax
je 0x519de5
cmp ax, 0xd
je 0x519de5
cmp ax, 0xa
jne 0x519db2
jmp 0x519de5
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx eax, word [eax]
cmp ax, 0xd
je 0x519ddb
cmp ax, 0xa
je 0x519ddb
jmp 0x519e23
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
mov eax, 0x519fc0
call fcn.00516a78
test eax, eax
jne 0x519dff
mov dx, 0x13
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f5f
mov edx, str._.____
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
call fcn.00518514
mov esi, eax
test esi, esi
jg 0x519e82
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0xc0]
cmp word [esi], 0x7b
je 0x519e70
mov edx, 0x77
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x519f62
mov edx, str._.____
mov eax, esi
add eax, 2
call fcn.00518514
inc eax
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, esi
add edx, edx
add eax, edx
movzx eax, word [eax]
cmp esi, 1
jle 0x519eb2
cmp ax, 0x2a
je 0x519eb1
cmp ax, 0x2b
je 0x519eb1
cmp ax, 0x3f
je 0x519eb1
cmp ax, 0x7b
jne 0x519eb2
dec esi
mov eax, dword [ebp - 0x10]
or dword [eax], 1
cmp esi, 1
jne 0x519ec3
mov eax, dword [ebp - 0x10]
or dword [eax], 2
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 1
je 0x519ee0
mov dx, 0x14
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f36
mov dx, 8
mov eax, dword [ebp - 4]
call fcn.00518434
mov dword [ebp - 8], eax
jmp 0x519f36
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x519f17
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
mov eax, 0x519fc0
call fcn.00516a78
test eax, eax
jne 0x519f2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
movzx edx, word [eax]
mov eax, dword [ebp - 4]
call fcn.00518474
mov eax, dword [ebp - 4]
add dword [eax + 0xc0], 2
dec esi
test esi, esi
jle 0x519f55
mov eax, dword [ebp - 4]
test byte [eax + 0xf0], 0x20
je 0x519ef1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp word [eax], 0x23
jne 0x519ef1
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00518474
mov ebx, dword [ebp - 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x519f91
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.00406c98
lea eax, [ebp - 0x2c]
mov edx, 5
call fcn.004066c4
ret