Function at 0x41fd70
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x42022d
push ebx
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x42022b
cmp eax, 0x29
jne 0x41fda9
cmp dword [esi + 0x10], 0
jne 0x42022b
test dword [esi + 0x50], 0x10000000
je 0x420241
cmp eax, 0x2e
jne 0x41fdbd
push 5
lea ecx, [esi + 0x24]
call fcn.00424f90
jmp 0x4201d5
cmp eax, 0x5c
jne 0x41fe87
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41fe02
cmp byte [eax], 0x5c
jne 0x41fe00
inc eax
cmp eax, ecx
je 0x41fe00
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41fded
mov dl, byte [eax]
cmp dl, 0x28
je 0x41fdfe
cmp dl, 0x29
je 0x41fdfe
test cl, 0x10
jne 0x41fe00
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41fdfe
cmp cl, 0x7d
jne 0x41fe00
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00425a10
test byte [esi + 0x50], 0x80
je 0x41fe7b
cmp byte [esi + 0x48], 0x62
jne 0x41fe62
push 4
lea ecx, [esi + 0x24]
call fcn.00424f90
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x420174
cmp byte [eax], 0x5c
jne 0x420172
inc eax
cmp eax, ecx
je 0x420172
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41fe5a
mov cl, byte [eax]
cmp cl, 0x28
je 0x420170
cmp cl, 0x29
je 0x420170
test dl, 0x10
jmp 0x420162
cmp byte [esi + 0x48], 0x42
jne 0x41fe7b
push 4
lea ecx, [esi + 0x24]
call fcn.00424f90
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
jmp 0x41fe1f
mov ecx, esi
call fcn.004206d0
jmp 0x420218
cmp eax, 0x5b
jne 0x41ff9f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41fecc
cmp byte [eax], 0x5c
jne 0x41feca
inc eax
cmp eax, ecx
je 0x41feca
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41feb7
mov dl, byte [eax]
cmp dl, 0x28
je 0x41fec8
cmp dl, 0x29
je 0x41fec8
test cl, 0x10
jne 0x41feca
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41fec8
cmp cl, 0x7d
jne 0x41feca
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00425a10
lea ecx, [esi + 0x24]
call fcn.0041edc0
cmp dword [esi + 0x4c], 0x5e
jne 0x41ff2b
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41ff24
cmp byte [eax], 0x5c
jne 0x41ff22
inc eax
cmp eax, ecx
je 0x41ff22
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41ff0f
mov dl, byte [eax]
cmp dl, 0x28
je 0x41ff20
cmp dl, 0x29
je 0x41ff20
test cl, 0x10
jne 0x41ff22
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41ff20
cmp cl, 0x7d
jne 0x41ff22
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00425a10
test dword [esi + 0x50], 0x20000000
je 0x41ff4b
cmp dword [esi + 0x4c], 0x5d
jne 0x41ff4b
push 0x5d
lea ecx, [esi + 0x24]
call fcn.0041ecd0
mov ecx, esi
call fcn.00425000
mov ecx, esi
call fcn.004216f0
cmp dword [esi + 0x4c], 0x5d
jne 0x420253
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x420211
cmp byte [eax], 0x5c
jne 0x42020f
inc eax
cmp eax, ecx
je 0x42020f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41ff97
mov cl, byte [eax]
cmp cl, 0x28
je 0x42020d
cmp cl, 0x29
je 0x42020d
test dl, 0x10
jmp 0x4201ff
cmp eax, 0x28
jne 0x420120
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x41ffe4
cmp byte [eax], 0x5c
jne 0x41ffe2
inc eax
cmp eax, ecx
je 0x41ffe2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x41ffcf
mov dl, byte [eax]
cmp dl, 0x28
je 0x41ffe0
cmp dl, 0x29
je 0x41ffe0
test cl, 0x10
jne 0x41ffe2
mov cl, byte [eax]
cmp cl, 0x7b
je 0x41ffe0
cmp cl, 0x7d
jne 0x41ffe2
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00425a10
inc dword [esi + 0x10]
mov eax, dword [esi + 0x50]
test eax, 0x8000000
jne 0x420002
cmp dword [esi + 0x4c], 0x29
je 0x420241
test al, 0x20
je 0x420056
cmp dword [esi + 0x4c], 0x3f
jne 0x420056
mov ecx, esi
call fcn.00425000
mov edi, dword [esi + 0x4c]
mov ecx, esi
call fcn.00425000
cmp edi, 0x3a
jne 0x420027
lea ecx, [esi + 0x24]
jmp 0x420062
mov ecx, esi
cmp edi, 0x21
jne 0x42003f
push 1
call fcn.00421f70
dec dword [esi + 0x10]
xor bl, bl
jmp 0x4200c6
cmp edi, 0x3d
jne 0x42023a
push 0
call fcn.00421f70
dec dword [esi + 0x10]
xor bl, bl
jmp 0x4200c6
test dword [esi + 0x40], 0x200
lea ecx, [esi + 0x24]
je 0x42007d
push 8
call fcn.00424f90
mov ecx, esi
mov edi, eax
call fcn.004219c0
push edi
lea ecx, [esi + 0x24]
call fcn.00423e70
jmp 0x4200c1
inc dword [esi + 0xc]
push dword [esi + 0xc]
call fcn.004209a0
mov ecx, esi
mov ebx, eax
call fcn.004219c0
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 0x420241
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x42010c
cmp byte [eax], 0x5c
jne 0x42010a
inc eax
cmp eax, ecx
je 0x42010a
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4200f7
mov cl, byte [eax]
cmp cl, 0x28
je 0x420108
cmp cl, 0x29
je 0x420108
test dl, 0x10
jne 0x42010a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x420108
cmp cl, 0x7d
jne 0x42010a
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00425a10
test bl, bl
je 0x42021f
jmp 0x420218
cmp eax, 0x5e
jne 0x420129
push 2
jmp 0x420130
cmp eax, 0x24
jne 0x420180
push 3
lea ecx, [esi + 0x24]
call fcn.00424f90
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x420174
cmp byte [eax], 0x5c
jne 0x420172
inc eax
cmp eax, ecx
je 0x420172
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x42015f
mov dl, byte [eax]
cmp dl, 0x28
je 0x420170
cmp dl, 0x29
je 0x420170
test cl, 0x10
jne 0x420172
mov cl, byte [eax]
cmp cl, 0x7b
je 0x420170
cmp cl, 0x7d
jne 0x420172
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00425a10
jmp 0x42021f
cmp eax, 0x2a
je 0x420231
cmp eax, 0x2b
je 0x420231
cmp eax, 0x3f
je 0x420231
cmp eax, 0x7b
je 0x420231
cmp eax, 0x7d
jne 0x4201b6
test dword [esi + 0x50], 0x10000000
je 0x42024a
cmp eax, 0x5d
jne 0x4201c8
test dword [esi + 0x50], 0x10000000
je 0x420253
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0041e950
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x420211
cmp byte [eax], 0x5c
jne 0x42020f
inc eax
cmp eax, ecx
je 0x42020f
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4201fc
mov dl, byte [eax]
cmp dl, 0x28
je 0x42020d
cmp dl, 0x29
je 0x42020d
test cl, 0x10
jne 0x42020f
mov cl, byte [eax]
cmp cl, 0x7b
je 0x42020d
cmp cl, 0x7d
jne 0x42020f
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.00425a10
mov ecx, esi
call fcn.00425190
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x41fd81
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