Function at 0x100255e0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x10025aaa
cmp eax, 0x7c
je 0x10025aaa
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10025624
cmp dword [esi + 0x10], 0
jne 0x10025aa8
test dword [esi + 0x50], 0x10000000
je 0x10025aba
jmp 0x10025a34
cmp eax, 0x2e
jne 0x10025684
push 5
lea ecx, [esi + 0x24]
call fcn.10011390
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025a84
cmp word [eax], 0x5c
jne 0x1002567a
lea edx, [eax + 2]
cmp edx, ecx
je 0x1002567a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025663
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10025677
cmp edi, 0x29
je 0x10025677
test bl, 0x10
jne 0x1002567a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025677
cmp edx, 0x7d
jne 0x1002567a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10025a84
cmp eax, 0x5c
jne 0x100257e7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100256dc
cmp word [eax], 0x5c
jne 0x100256d7
lea edx, [eax + 2]
cmp edx, ecx
je 0x100256d7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100256c0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x100256d4
cmp word [ebp - 4], 0x29
je 0x100256d4
test bl, 0x10
jne 0x100256d7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100256d4
cmp edx, 0x7d
jne 0x100256d7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029470
test byte [esi + 0x50], 0x80
je 0x100257db
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10025759
push 4
lea ecx, [esi + 0x24]
call fcn.10011390
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002574d
cmp word [eax], 0x5c
jne 0x10025748
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025748
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025731
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10025745
cmp ebx, 0x29
je 0x10025745
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10025748
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025745
cmp edx, 0x7d
jne 0x10025748
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029470
jmp 0x10025a95
cmp ecx, 0x42
jne 0x100257db
push 4
lea ecx, [esi + 0x24]
call fcn.10011390
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x100257cf
cmp word [eax], 0x5c
jne 0x100257ca
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x100257c8
test byte [esi + 0x50], 8
jne 0x1002579d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x100257b4
cmp ecx, 0x29
je 0x100257b4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x100257c8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x100257b4
mov edx, ecx
cmp ebx, 0x7d
jne 0x100257c8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.10029470
jmp 0x10025a95
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029470
jmp 0x10025a95
mov ecx, esi
call fcn.10025ae0
jmp 0x10025a8b
cmp eax, 0x5b
jne 0x100258f8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10025845
cmp word [eax], 0x5c
jne 0x1002583d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1002583b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025820
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10025836
cmp ecx, 0x29
je 0x10025836
mov ecx, eax
test bl, 0x10
jne 0x1002583b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10025836
mov edx, ecx
cmp edi, 0x7d
jne 0x1002583b
lea eax, [edx + 2]
jmp 0x1002583d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.10029470
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.10024e20
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x100258c4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x100258ba
cmp word [eax], 0x5c
jne 0x100258b2
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x100258b0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025895
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x100258ab
cmp ecx, 0x29
je 0x100258ab
mov ecx, eax
test bl, 0x10
jne 0x100258b0
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x100258ab
mov edx, ecx
cmp edi, 0x7d
jne 0x100258b0
lea eax, [edx + 2]
jmp 0x100258b2
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.10029470
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x100258e1
cmp eax, 0x5d
jne 0x100258e1
push eax
mov ecx, ebx
call fcn.10024da0
mov ecx, esi
call fcn.10029030
mov ecx, esi
call fcn.100262b0
push 4
push 0x5d
mov ecx, esi
call fcn.10027e30
jmp 0x10025a8b
cmp eax, 0x28
jne 0x10025976
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002594e
cmp word [eax], 0x5c
jne 0x10025949
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10025947
test byte [esi + 0x50], 8
jne 0x1002592b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10025942
cmp ecx, 0x29
je 0x10025942
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10025947
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10025942
mov edx, ecx
cmp ebx, 0x7d
jne 0x10025947
lea eax, [edx + 2]
jmp 0x10025949
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029470
mov ecx, esi
call fcn.10029620
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.10027e30
test bl, bl
je 0x10025a95
jmp 0x10025a8b
cmp eax, 0x5e
jne 0x1002598a
push 2
lea ecx, [esi + 0x24]
call fcn.10011390
jmp 0x1002576f
cmp eax, 0x24
jne 0x100259ea
push 3
lea ecx, [esi + 0x24]
call fcn.10011390
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100259de
cmp word [eax], 0x5c
jne 0x100259db
add eax, 2
cmp eax, ecx
je 0x100259db
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100259c6
movzx edx, word [eax]
cmp edx, 0x28
je 0x100259d8
cmp edx, 0x29
je 0x100259d8
test cl, 0x10
jne 0x100259db
movzx eax, word [eax]
cmp eax, 0x7b
je 0x100259d8
cmp eax, 0x7d
jne 0x100259db
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10029470
jmp 0x10025a95
cmp eax, 0x2a
je 0x10025ab1
cmp eax, 0x2b
je 0x10025ab1
cmp eax, 0x3f
je 0x10025ab1
cmp eax, 0x7b
je 0x10025ab1
cmp eax, 0x7d
jne 0x10025a22
test dword [esi + 0x50], 0x10000000
je 0x10025ac3
jmp 0x10025a34
cmp eax, 0x5d
jne 0x10025a34
test dword [esi + 0x50], 0x10000000
je 0x10025acc
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10024bd0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10025a84
cmp word [eax], 0x5c
jne 0x10025a81
add eax, 2
cmp eax, ecx
je 0x10025a81
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025a6c
movzx edx, word [eax]
cmp edx, 0x28
je 0x10025a7e
cmp edx, 0x29
je 0x10025a7e
test cl, 0x10
jne 0x10025a81
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10025a7e
cmp eax, 0x7d
jne 0x10025a81
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10029470
mov ecx, esi
call fcn.10029080
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10025aa8
cmp eax, 0x7c
jne 0x10025603
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.100108d0
push 5
mov ecx, esi
call fcn.100108d0
push 6
mov ecx, esi
call fcn.100108d0
push 4
mov ecx, esi
call fcn.100108d0
int3