Function at 0x10020510
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x100209b6
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x100209b4
cmp eax, 0x29
jne 0x10020550
cmp dword [esi + 0x10], 0
jne 0x100209b4
test dword [esi + 0x50], 0x10000000
je 0x100209c3
jmp 0x10020947
cmp eax, 0x2e
jne 0x100205ab
push 5
lea ecx, [esi + 0x24]
call fcn.1000c3b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10020995
cmp word [eax], 0x5c
jne 0x100205a1
lea ecx, [eax + 2]
cmp ecx, edx
je 0x100205a1
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002058d
movzx edx, word [ecx]
cmp edx, 0x28
je 0x1002059f
cmp edx, 0x29
je 0x1002059f
test bl, 0x10
jne 0x100205a1
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x1002059f
cmp edx, 0x7d
jne 0x100205a1
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x10020995
cmp eax, 0x5c
jne 0x100206df
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100205f7
cmp word [eax], 0x5c
jne 0x100205f2
lea ecx, [eax + 2]
cmp ecx, edx
je 0x100205f2
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100205de
movzx edx, word [ecx]
cmp edx, 0x28
je 0x100205f0
cmp edx, 0x29
je 0x100205f0
test bl, 0x10
jne 0x100205f2
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x100205f0
cmp edx, 0x7d
jne 0x100205f2
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100246a0
test byte [esi + 0x50], 0x80
je 0x100206d3
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x1002066c
push 4
lea ecx, [esi + 0x24]
call fcn.1000c3b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10020660
cmp word [eax], 0x5c
jne 0x1002065b
lea ecx, [eax + 2]
cmp ecx, edx
je 0x1002065b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10020647
movzx edx, word [ecx]
cmp edx, 0x28
je 0x10020659
cmp edx, 0x29
je 0x10020659
test bl, 0x10
jne 0x1002065b
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x10020659
cmp edx, 0x7d
jne 0x1002065b
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100246a0
jmp 0x100209a6
cmp ecx, 0x42
jne 0x100206d3
push 4
lea ecx, [esi + 0x24]
call fcn.1000c3b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100206c7
cmp word [eax], 0x5c
jne 0x100206c2
lea ecx, [eax + 2]
cmp ecx, edx
je 0x100206c2
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x100206ae
movzx eax, word [ecx]
cmp eax, 0x28
je 0x100206c0
cmp eax, 0x29
je 0x100206c0
mov eax, dword [esi]
test dl, 0x10
jne 0x100206c2
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x100206c0
cmp edx, 0x7d
jne 0x100206c2
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100246a0
jmp 0x100209a6
mov ecx, esi
call fcn.100209e0
jmp 0x1002099c
cmp eax, 0x5b
jne 0x100207cf
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002072d
cmp word [eax], 0x5c
jne 0x10020728
lea ecx, [eax + 2]
cmp ecx, edx
je 0x10020728
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10020714
movzx eax, word [ecx]
cmp eax, 0x28
je 0x10020726
cmp eax, 0x29
je 0x10020726
mov eax, dword [esi]
test dl, 0x10
jne 0x10020728
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x10020726
cmp edx, 0x7d
jne 0x10020728
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100246a0
lea ecx, [esi + 0x24]
call fcn.1001fd60
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1002079a
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10020790
cmp word [eax], 0x5c
jne 0x1002078b
lea ecx, [eax + 2]
cmp ecx, edx
je 0x1002078b
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10020777
movzx eax, word [ecx]
cmp eax, 0x28
je 0x10020789
cmp eax, 0x29
je 0x10020789
mov eax, dword [esi]
test dl, 0x10
jne 0x1002078b
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x10020789
cmp edx, 0x7d
jne 0x1002078b
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100246a0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x100207b8
cmp eax, 0x5d
jne 0x100207b8
push eax
lea ecx, [esi + 0x24]
call fcn.1001fce0
mov ecx, esi
call fcn.10024260
mov ecx, esi
call fcn.10021120
push 4
push 0x5d
mov ecx, esi
call fcn.10022fd0
jmp 0x1002099c
cmp eax, 0x28
jne 0x10020841
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10020819
cmp word [eax], 0x5c
jne 0x10020814
lea ecx, [eax + 2]
cmp ecx, edx
je 0x10020814
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10020800
movzx eax, word [ecx]
cmp eax, 0x28
je 0x10020812
cmp eax, 0x29
je 0x10020812
mov eax, dword [esi]
test dl, 0x10
jne 0x10020814
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x10020812
cmp edx, 0x7d
jne 0x10020814
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100246a0
mov ecx, esi
call fcn.10024880
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.10022fd0
test bl, bl
je 0x100209a6
jmp 0x1002099c
cmp eax, 0x5e
jne 0x100208a1
push 2
lea ecx, [esi + 0x24]
call fcn.1000c3b0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10020895
cmp word [eax], 0x5c
jne 0x10020890
lea ecx, [eax + 2]
cmp ecx, edx
je 0x10020890
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002087c
movzx eax, word [ecx]
cmp eax, 0x28
je 0x1002088e
cmp eax, 0x29
je 0x1002088e
mov eax, dword [esi]
test dl, 0x10
jne 0x10020890
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x1002088e
cmp edx, 0x7d
jne 0x10020890
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100246a0
jmp 0x100209a6
cmp eax, 0x24
jne 0x100208fd
push 3
lea ecx, [esi + 0x24]
call fcn.1000c3b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100208f1
cmp word [eax], 0x5c
jne 0x100208ee
add eax, 2
cmp eax, ecx
je 0x100208ee
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100208da
movzx edx, word [eax]
cmp edx, 0x28
je 0x100208ec
cmp edx, 0x29
je 0x100208ec
test cl, 0x10
jne 0x100208ee
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x100208ec
cmp ecx, 0x7d
jne 0x100208ee
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.100246a0
jmp 0x100209a6
cmp eax, 0x2a
je 0x100209ba
cmp eax, 0x2b
je 0x100209ba
cmp eax, 0x3f
je 0x100209ba
cmp eax, 0x7b
je 0x100209ba
cmp eax, 0x7d
jne 0x10020935
test dword [esi + 0x50], 0x10000000
je 0x100209cc
jmp 0x10020947
cmp eax, 0x5d
jne 0x10020947
test dword [esi + 0x50], 0x10000000
je 0x100209d5
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1001fb10
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10020995
cmp word [eax], 0x5c
jne 0x10020992
add eax, 2
cmp eax, ecx
je 0x10020992
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002097e
movzx edx, word [eax]
cmp edx, 0x28
je 0x10020990
cmp edx, 0x29
je 0x10020990
test cl, 0x10
jne 0x10020992
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10020990
cmp ecx, 0x7d
jne 0x10020992
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.100246a0
mov ecx, esi
call fcn.100242b0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10020526
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.1000b7b0
push 5
mov ecx, esi
call fcn.1000b7b0
push 6
mov ecx, esi
call fcn.1000b7b0
push 4
mov ecx, esi
call fcn.1000b7b0
int3