Function at 0x461db0
Capabilities:
Parse credit card information

Disassembly:
jg 0x461e20
jl 0x461dbb
cmp dword [esp + 0x30], 0x11
ja 0x461e20
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x461e04
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x11
and ecx, 1
shr eax, 0x11
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x461e9f
jl 0x461e3a
cmp dword [esp + 0x30], 0x12
ja 0x461e9f
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x461e83
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x12
and ecx, 1
shr eax, 0x12
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x461f1e
jl 0x461eb9
cmp dword [esp + 0x30], 0x13
ja 0x461f1e
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x461f02
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x13
and ecx, 1
shr eax, 0x13
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
add byte [eax], al
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x461f9d
jl 0x461f38
cmp dword [esp + 0x30], 0x14
ja 0x461f9d
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x461f81
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x14
and ecx, 1
shr eax, 0x14
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x46201c
jl 0x461fb7
cmp dword [esp + 0x30], 0x15
ja 0x46201c
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x462000
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x15
and ecx, 1
shr eax, 0x15
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x46209b
jl 0x462036
cmp dword [esp + 0x30], 0x16
ja 0x46209b
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x46207f
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x16
and ecx, 1
shr eax, 0x16
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x46211a
jl 0x4620b5
cmp dword [esp + 0x30], 0x17
ja 0x46211a
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x4620fe
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x17
and ecx, 1
shr eax, 0x17
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462199
jl 0x462134
cmp dword [esp + 0x30], 0x18
ja 0x462199
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x46217d
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x18
and ecx, 1
shr eax, 0x18
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462218
jl 0x4621b3
cmp dword [esp + 0x30], 0x19
ja 0x462218
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x4621fc
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x19
and ecx, 1
shr eax, 0x19
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462297
jl 0x462232
cmp dword [esp + 0x30], 0x1a
ja 0x462297
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x46227b
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x1a
and ecx, 1
shr eax, 0x1a
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462316
jl 0x4622b1
cmp dword [esp + 0x30], 0x1b
ja 0x462316
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x4622fa
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x1b
and ecx, 1
shr eax, 0x1b
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462395
jl 0x462330
cmp dword [esp + 0x30], 0x1c
ja 0x462395
xor edx, edx
xor ecx, ecx
leave
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x462379
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x1c
and ecx, 1
shr eax, 0x1c
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462414
jl 0x4623af
cmp dword [esp + 0x30], 0x1d
ja 0x462414
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x4623f8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x1d
and ecx, 1
shr eax, 0x1d
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462493
jl 0x46242e
cmp dword [esp + 0x30], 0x1e
ja 0x462493
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x462477
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x1e
and ecx, 1
shr eax, 0x1e
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462512
jl 0x4624ad
cmp dword [esp + 0x30], 0x1f
ja 0x462512
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [ebx]
and ecx, dword [ebx + 4]
or edx, ecx
je 0x4624f6
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shrd ecx, eax, 0x1f
and ecx, 1
shr eax, 0x1f
add ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
call 0xfff69dd0
test eax, eax
js 0x468044
mov ecx, dword [esp + 0x10]
add esi, 1
mov edx, dword [esp + 0x28]
adc edi, 0
add ecx, 0xffffffff
mov dword [esp + 0x10], ecx
adc edx, 0xffffffff
mov dword [esp + 0x28], edx
mov eax, ecx
or eax, edx
je 0x4634c0
cmp dword [esp + 0x38], 0
jg 0x462591
jl 0x46252c
cmp dword [esp + 0x30], 0x20
ja 0x462591
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
invalid
inc ebx