Function at 0x10025900
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10025e0e
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x10025e0c
cmp eax, 0x29
jne 0x10025940
cmp dword [esi + 0x10], 0
jne 0x10025e0c
test dword [esi + 0x50], 0x10000000
je 0x10025e1b
jmp 0x10025d9d
cmp eax, 0x2e
jne 0x100259b2
push 5
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10025ded
cmp word [eax], 0x5c
jne 0x100259a8
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x100259a6
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025983
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10025999
cmp ecx, 0x29
je 0x10025999
mov ecx, eax
test bl, 0x10
jne 0x100259a6
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10025999
mov edx, ecx
cmp edi, 0x7d
jne 0x100259a6
lea eax, [edx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10025ded
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x10025ded
cmp eax, 0x5c
jne 0x10025b17
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10025a0c
cmp word [eax], 0x5c
jne 0x10025a07
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10025a05
test byte [esi + 0x50], 8
jne 0x100259e9
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10025a00
cmp ecx, 0x29
je 0x10025a00
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10025a05
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10025a00
mov edx, ecx
cmp ebx, 0x7d
jne 0x10025a05
lea eax, [edx + 2]
jmp 0x10025a07
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100297c0
test byte [esi + 0x50], 0x80
je 0x10025b0b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10025a9e
push 4
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10025a92
cmp word [eax], 0x5c
jne 0x10025a8d
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10025a8b
test byte [esi + 0x50], 8
jne 0x10025a60
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10025a77
cmp ecx, 0x29
je 0x10025a77
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10025a8b
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10025a77
mov edx, ecx
cmp ebx, 0x7d
jne 0x10025a8b
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.100297c0
jmp 0x10025dfe
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100297c0
jmp 0x10025dfe
cmp ecx, 0x42
jne 0x10025b0b
push 4
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025aff
cmp word [eax], 0x5c
jne 0x10025afa
lea ebx, [eax + 2]
cmp ebx, ecx
je 0x10025afa
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025ae3
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x28
je 0x10025af7
cmp edx, 0x29
je 0x10025af7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10025afa
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025af7
cmp edx, 0x7d
jne 0x10025afa
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100297c0
jmp 0x10025dfe
mov ecx, esi
call fcn.10025e40
jmp 0x10025df4
cmp eax, 0x5b
jne 0x10025c12
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025b68
cmp word [eax], 0x5c
jne 0x10025b63
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025b63
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025b4c
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10025b60
cmp edi, 0x29
je 0x10025b60
test bl, 0x10
jne 0x10025b63
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025b60
cmp edx, 0x7d
jne 0x10025b63
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100297c0
lea edi, [esi + 0x24]
mov ecx, edi
call fcn.10025140
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10025bde
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10025bd4
cmp word [eax], 0x5c
jne 0x10025bcc
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025bcc
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025bb5
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10025bc9
cmp edi, 0x29
je 0x10025bc9
test bl, 0x10
jne 0x10025bcc
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025bc9
cmp edx, 0x7d
jne 0x10025bcc
lea eax, [ecx + 2]
add eax, 2
lea edi, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.100297c0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x10025bfb
cmp eax, 0x5d
jne 0x10025bfb
push eax
mov ecx, edi
call fcn.100250c0
mov ecx, esi
call fcn.10029380
mov ecx, esi
call fcn.10026600
push 4
push 0x5d
mov ecx, esi
call fcn.10028180
jmp 0x10025df4
cmp eax, 0x28
jne 0x10025c8a
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025c62
cmp word [eax], 0x5c
jne 0x10025c5d
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025c5d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025c46
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10025c5a
cmp ebx, 0x29
je 0x10025c5a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10025c5d
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025c5a
cmp edx, 0x7d
jne 0x10025c5d
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100297c0
mov ecx, esi
call fcn.10029970
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.10028180
test bl, bl
je 0x10025dfe
jmp 0x10025df4
cmp eax, 0x5e
jne 0x10025cf3
push 2
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025ce7
cmp word [eax], 0x5c
jne 0x10025ce2
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025ce2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025ccb
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10025cdf
cmp ebx, 0x29
je 0x10025cdf
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10025ce2
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025cdf
cmp edx, 0x7d
jne 0x10025ce2
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.100297c0
jmp 0x10025dfe
cmp eax, 0x24
jne 0x10025d53
push 3
lea ecx, [esi + 0x24]
call fcn.100129e0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025d47
cmp word [eax], 0x5c
jne 0x10025d44
add eax, 2
cmp eax, ecx
je 0x10025d44
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025d2f
movzx edx, word [eax]
cmp edx, 0x28
je 0x10025d41
cmp edx, 0x29
je 0x10025d41
test cl, 0x10
jne 0x10025d44
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10025d41
cmp eax, 0x7d
jne 0x10025d44
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.100297c0
jmp 0x10025dfe
cmp eax, 0x2a
je 0x10025e12
cmp eax, 0x2b
je 0x10025e12
cmp eax, 0x3f
je 0x10025e12
cmp eax, 0x7b
je 0x10025e12
cmp eax, 0x7d
jne 0x10025d8b
test dword [esi + 0x50], 0x10000000
je 0x10025e24
jmp 0x10025d9d
cmp eax, 0x5d
jne 0x10025d9d
test dword [esi + 0x50], 0x10000000
je 0x10025e2d
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10024ef0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10025ded
cmp word [eax], 0x5c
jne 0x10025dea
add eax, 2
cmp eax, ecx
je 0x10025dea
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025dd5
movzx edx, word [eax]
cmp edx, 0x28
je 0x10025de7
cmp edx, 0x29
je 0x10025de7
test cl, 0x10
jne 0x10025dea
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10025de7
cmp eax, 0x7d
jne 0x10025dea
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.100297c0
mov ecx, esi
call fcn.100293d0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10025916
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.10011f10
push 5
mov ecx, esi
call fcn.10011f10
push 6
mov ecx, esi
call fcn.10011f10
push 4
mov ecx, esi
call fcn.10011f10
int3