Function at 0x420260
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x420692
push ebx
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x420690
cmp eax, 0x29
jne 0x420299
cmp dword [esi + 0x10], 0
jne 0x420690
test dword [esi + 0x50], 0x10000000
je 0x4206a6
cmp eax, 0x2e
jne 0x4202ad
push 5
lea ecx, [esi + 0x24]
call fcn.00424f90
jmp 0x420634
cmp eax, 0x5c
jne 0x420383
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4202f8
cmp word [eax], 0x5c
jne 0x4202f5
add eax, 2
cmp eax, ecx
je 0x4202f5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4202e1
movzx edx, word [eax]
cmp edx, 0x28
je 0x4202f3
cmp edx, 0x29
je 0x4202f3
test cl, 0x10
jne 0x4202f5
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4202f3
cmp ecx, 0x7d
jne 0x4202f5
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00425bb0
test byte [esi + 0x50], 0x80
je 0x420377
cmp word [esi + 0x48], 0x62
jne 0x42035d
push 4
lea ecx, [esi + 0x24]
call fcn.00424f90
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4205d3
cmp word [eax], 0x5c
jne 0x4205d0
add eax, 2
cmp eax, ecx
je 0x4205d0
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x420355
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x4205ce
cmp ecx, 0x29
je 0x4205ce
test dl, 0x10
jmp 0x4205bf
cmp word [esi + 0x48], 0x42
jne 0x420377
push 4
lea ecx, [esi + 0x24]
call fcn.00424f90
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
jmp 0x420316
mov ecx, esi
call fcn.00420810
jmp 0x42067d
cmp eax, 0x5b
jne 0x42042e
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4203ce
cmp word [eax], 0x5c
jne 0x4203cb
add eax, 2
cmp eax, ecx
je 0x4203cb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4203b7
movzx edx, word [eax]
cmp edx, 0x28
je 0x4203c9
cmp edx, 0x29
je 0x4203c9
test cl, 0x10
jne 0x4203cb
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4203c9
cmp ecx, 0x7d
jne 0x4203cb
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00425bb0
lea ecx, [esi + 0x24]
call fcn.0041edc0
cmp dword [esi + 0x4c], 0x5e
jne 0x4203f1
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.00425050
test dword [esi + 0x50], 0x20000000
je 0x420411
cmp dword [esi + 0x4c], 0x5d
jne 0x420411
push 0x5d
lea ecx, [esi + 0x24]
call fcn.0041ed40
mov ecx, esi
call fcn.00425050
mov ecx, esi
call fcn.00421820
cmp dword [esi + 0x4c], 0x5d
jne 0x4206b8
mov ecx, esi
call fcn.00425050
jmp 0x42067d
cmp eax, 0x28
jne 0x420579
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x420479
cmp word [eax], 0x5c
jne 0x420476
add eax, 2
cmp eax, ecx
je 0x420476
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x420462
movzx edx, word [eax]
cmp edx, 0x28
je 0x420474
cmp edx, 0x29
je 0x420474
test cl, 0x10
jne 0x420476
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x420474
cmp ecx, 0x7d
jne 0x420476
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00425bb0
inc dword [esi + 0x10]
mov eax, dword [esi + 0x50]
test eax, 0x8000000
jne 0x420497
cmp dword [esi + 0x4c], 0x29
je 0x4206a6
test al, 0x20
je 0x4204eb
cmp dword [esi + 0x4c], 0x3f
jne 0x4204eb
mov ecx, esi
call fcn.00425050
mov edi, dword [esi + 0x4c]
mov ecx, esi
call fcn.00425050
cmp edi, 0x3a
jne 0x4204bc
lea ecx, [esi + 0x24]
jmp 0x4204f7
mov ecx, esi
cmp edi, 0x21
jne 0x4204d4
push 1
call fcn.00422070
dec dword [esi + 0x10]
xor bl, bl
jmp 0x42055b
cmp edi, 0x3d
jne 0x42069f
push 0
call fcn.00422070
dec dword [esi + 0x10]
xor bl, bl
jmp 0x42055b
test dword [esi + 0x40], 0x200
lea ecx, [esi + 0x24]
je 0x420512
push 8
call fcn.00424f90
mov ecx, esi
mov edi, eax
call fcn.00421c90
push edi
lea ecx, [esi + 0x24]
call fcn.00423e70
jmp 0x420556
inc dword [esi + 0xc]
push dword [esi + 0xc]
call fcn.004209a0
mov ecx, esi
mov ebx, eax
call fcn.00421c90
push ebx
lea ecx, [esi + 0x24]
call fcn.00423e70
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x14]
push 0
inc eax
push eax
call fcn.00427990
mov edx, dword [ebx + 0x14]
mov eax, edx
mov ecx, dword [esi + 0x14]
and edx, 0x1f
shr eax, 5
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
bts eax, edx
mov dword [ecx], eax
dec dword [esi + 0x10]
mov bl, 1
cmp dword [esi + 0x4c], 0x29
jne 0x4206a6
mov ecx, esi
call fcn.00425050
test bl, bl
je 0x420684
jmp 0x42067d
cmp eax, 0x5e
jne 0x420582
push 2
jmp 0x420589
cmp eax, 0x24
jne 0x4205df
push 3
lea ecx, [esi + 0x24]
call fcn.00424f90
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x4205d3
cmp word [eax], 0x5c
jne 0x4205d0
add eax, 2
cmp eax, ecx
je 0x4205d0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4205bc
movzx edx, word [eax]
cmp edx, 0x28
je 0x4205ce
cmp edx, 0x29
je 0x4205ce
test cl, 0x10
jne 0x4205d0
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x4205ce
cmp ecx, 0x7d
jne 0x4205d0
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00425bb0
jmp 0x420684
cmp eax, 0x2a
je 0x420696
cmp eax, 0x2b
je 0x420696
cmp eax, 0x3f
je 0x420696
cmp eax, 0x7b
je 0x420696
cmp eax, 0x7d
jne 0x420615
test dword [esi + 0x50], 0x10000000
je 0x4206af
cmp eax, 0x5d
jne 0x420627
test dword [esi + 0x50], 0x10000000
je 0x4206b8
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0041ea60
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x420676
cmp word [eax], 0x5c
jne 0x420673
add eax, 2
cmp eax, ecx
je 0x420673
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42065f
movzx edx, word [eax]
cmp edx, 0x28
je 0x420671
cmp edx, 0x29
je 0x420671
test cl, 0x10
jne 0x420673
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x420671
cmp ecx, 0x7d
jne 0x420673
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.00425bb0
mov ecx, esi
call fcn.00425300
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x420271
pop edi
pop ebx
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.00423f00
push 0xe
call fcn.00423f00
push 5
mov ecx, esi
call fcn.00423f00
push 6
mov ecx, esi
call fcn.00423f00
push 4
mov ecx, esi
call fcn.00423f00
int3