Function at 0x10025f60
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1002646e
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x1002646c
cmp eax, 0x29
jne 0x10025fa0
cmp dword [esi + 0x10], 0
jne 0x1002646c
test dword [esi + 0x50], 0x10000000
je 0x1002647b
jmp 0x100263fd
cmp eax, 0x2e
jne 0x10026012
push 5
lea ecx, [esi + 0x24]
call fcn.1000e9e0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002644d
cmp word [eax], 0x5c
jne 0x10026008
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10026006
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025fe3
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10025ff9
cmp ecx, 0x29
je 0x10025ff9
mov ecx, eax
test bl, 0x10
jne 0x10026006
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10025ff9
mov edx, ecx
cmp edi, 0x7d
jne 0x10026006
lea eax, [edx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x1002644d
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x1002644d
cmp eax, 0x5c
jne 0x10026177
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002606c
cmp word [eax], 0x5c
jne 0x10026067
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10026065
test byte [esi + 0x50], 8
jne 0x10026049
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10026060
cmp ecx, 0x29
je 0x10026060
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10026065
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10026060
mov edx, ecx
cmp ebx, 0x7d
jne 0x10026065
lea eax, [edx + 2]
jmp 0x10026067
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029e20
test byte [esi + 0x50], 0x80
je 0x1002616b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x100260fe
push 4
lea ecx, [esi + 0x24]
call fcn.1000e9e0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100260f2
cmp word [eax], 0x5c
jne 0x100260ed
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x100260eb
test byte [esi + 0x50], 8
jne 0x100260c0
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x100260d7
cmp ecx, 0x29
je 0x100260d7
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100260eb
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x100260d7
mov edx, ecx
cmp ebx, 0x7d
jne 0x100260eb
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.10029e20
jmp 0x1002645e
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029e20
jmp 0x1002645e
cmp ecx, 0x42
jne 0x1002616b
push 4
lea ecx, [esi + 0x24]
call fcn.1000e9e0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002615f
cmp word [eax], 0x5c
jne 0x1002615a
lea ebx, [eax + 2]
cmp ebx, ecx
je 0x1002615a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10026143
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x28
je 0x10026157
cmp edx, 0x29
je 0x10026157
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1002615a
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x7b
je 0x10026157
cmp edx, 0x7d
jne 0x1002615a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029e20
jmp 0x1002645e
mov ecx, esi
call fcn.100264a0
jmp 0x10026454
cmp eax, 0x5b
jne 0x10026272
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100261c8
cmp word [eax], 0x5c
jne 0x100261c3
lea edx, [eax + 2]
cmp edx, ecx
je 0x100261c3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100261ac
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x100261c0
cmp edi, 0x29
je 0x100261c0
test bl, 0x10
jne 0x100261c3
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100261c0
cmp edx, 0x7d
jne 0x100261c3
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029e20
lea edi, [esi + 0x24]
mov ecx, edi
call fcn.100257a0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1002623e
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10026234
cmp word [eax], 0x5c
jne 0x1002622c
lea edx, [eax + 2]
cmp edx, ecx
je 0x1002622c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10026215
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10026229
cmp edi, 0x29
je 0x10026229
test bl, 0x10
jne 0x1002622c
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10026229
cmp edx, 0x7d
jne 0x1002622c
lea eax, [ecx + 2]
add eax, 2
lea edi, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.10029e20
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1002625b
cmp eax, 0x5d
jne 0x1002625b
push eax
mov ecx, edi
call fcn.10025720
mov ecx, esi
call fcn.100299e0
mov ecx, esi
call fcn.10026c60
push 4
push 0x5d
mov ecx, esi
call fcn.100287e0
jmp 0x10026454
cmp eax, 0x28
jne 0x100262ea
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100262c2
cmp word [eax], 0x5c
jne 0x100262bd
lea edx, [eax + 2]
cmp edx, ecx
je 0x100262bd
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100262a6
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x100262ba
cmp ebx, 0x29
je 0x100262ba
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100262bd
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100262ba
cmp edx, 0x7d
jne 0x100262bd
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029e20
mov ecx, esi
call fcn.10029fd0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.100287e0
test bl, bl
je 0x1002645e
jmp 0x10026454
cmp eax, 0x5e
jne 0x10026353
push 2
lea ecx, [esi + 0x24]
call fcn.1000e9e0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10026347
cmp word [eax], 0x5c
jne 0x10026342
lea edx, [eax + 2]
cmp edx, ecx
je 0x10026342
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002632b
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x1002633f
cmp ebx, 0x29
je 0x1002633f
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10026342
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1002633f
cmp edx, 0x7d
jne 0x10026342
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029e20
jmp 0x1002645e
cmp eax, 0x24
jne 0x100263b3
push 3
lea ecx, [esi + 0x24]
call fcn.1000e9e0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100263a7
cmp word [eax], 0x5c
jne 0x100263a4
add eax, 2
cmp eax, ecx
je 0x100263a4
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002638f
movzx edx, word [eax]
cmp edx, 0x28
je 0x100263a1
cmp edx, 0x29
je 0x100263a1
test cl, 0x10
jne 0x100263a4
movzx eax, word [eax]
cmp eax, 0x7b
je 0x100263a1
cmp eax, 0x7d
jne 0x100263a4
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10029e20
jmp 0x1002645e
cmp eax, 0x2a
je 0x10026472
cmp eax, 0x2b
je 0x10026472
cmp eax, 0x3f
je 0x10026472
cmp eax, 0x7b
je 0x10026472
cmp eax, 0x7d
jne 0x100263eb
test dword [esi + 0x50], 0x10000000
je 0x10026484
jmp 0x100263fd
cmp eax, 0x5d
jne 0x100263fd
test dword [esi + 0x50], 0x10000000
je 0x1002648d
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10025550
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002644d
cmp word [eax], 0x5c
jne 0x1002644a
add eax, 2
cmp eax, ecx
je 0x1002644a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10026435
movzx edx, word [eax]
cmp edx, 0x28
je 0x10026447
cmp edx, 0x29
je 0x10026447
test cl, 0x10
jne 0x1002644a
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10026447
cmp eax, 0x7d
jne 0x1002644a
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10029e20
mov ecx, esi
call fcn.10029a30
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10025f76
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.1000df10
push 5
mov ecx, esi
call fcn.1000df10
push 6
mov ecx, esi
call fcn.1000df10
push 4
mov ecx, esi
call fcn.1000df10
int3