Function at 0x10025dc0
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 0x1002628a
cmp eax, 0x7c
je 0x1002628a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10025e04
cmp dword [esi + 0x10], 0
jne 0x10026288
test dword [esi + 0x50], 0x10000000
je 0x1002629a
jmp 0x10026214
cmp eax, 0x2e
jne 0x10025e64
push 5
lea ecx, [esi + 0x24]
call fcn.100118f0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10026264
cmp word [eax], 0x5c
jne 0x10025e5a
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025e5a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025e43
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10025e57
cmp edi, 0x29
je 0x10025e57
test bl, 0x10
jne 0x10025e5a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025e57
cmp edx, 0x7d
jne 0x10025e5a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10026264
cmp eax, 0x5c
jne 0x10025fc7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025ebc
cmp word [eax], 0x5c
jne 0x10025eb7
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025eb7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10025ea0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10025eb4
cmp word [ebp - 4], 0x29
je 0x10025eb4
test bl, 0x10
jne 0x10025eb7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025eb4
cmp edx, 0x7d
jne 0x10025eb7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029c50
test byte [esi + 0x50], 0x80
je 0x10025fbb
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10025f39
push 4
lea ecx, [esi + 0x24]
call fcn.100118f0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10025f2d
cmp word [eax], 0x5c
jne 0x10025f28
lea edx, [eax + 2]
cmp edx, ecx
je 0x10025f28
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10025f11
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10025f25
cmp ebx, 0x29
je 0x10025f25
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10025f28
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10025f25
cmp edx, 0x7d
jne 0x10025f28
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029c50
jmp 0x10026275
cmp ecx, 0x42
jne 0x10025fbb
push 4
lea ecx, [esi + 0x24]
call fcn.100118f0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10025faf
cmp word [eax], 0x5c
jne 0x10025faa
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10025fa8
test byte [esi + 0x50], 8
jne 0x10025f7d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10025f94
cmp ecx, 0x29
je 0x10025f94
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10025fa8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10025f94
mov edx, ecx
cmp ebx, 0x7d
jne 0x10025fa8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.10029c50
jmp 0x10026275
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029c50
jmp 0x10026275
mov ecx, esi
call fcn.100262c0
jmp 0x1002626b
cmp eax, 0x5b
jne 0x100260d8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10026025
cmp word [eax], 0x5c
jne 0x1002601d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1002601b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10026000
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10026016
cmp ecx, 0x29
je 0x10026016
mov ecx, eax
test bl, 0x10
jne 0x1002601b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10026016
mov edx, ecx
cmp edi, 0x7d
jne 0x1002601b
lea eax, [edx + 2]
jmp 0x1002601d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.10029c50
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.10025600
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x100260a4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002609a
cmp word [eax], 0x5c
jne 0x10026092
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10026090
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10026075
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1002608b
cmp ecx, 0x29
je 0x1002608b
mov ecx, eax
test bl, 0x10
jne 0x10026090
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1002608b
mov edx, ecx
cmp edi, 0x7d
jne 0x10026090
lea eax, [edx + 2]
jmp 0x10026092
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.10029c50
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x100260c1
cmp eax, 0x5d
jne 0x100260c1
push eax
mov ecx, ebx
call fcn.10025580
mov ecx, esi
call fcn.10029810
mov ecx, esi
call fcn.10026a90
push 4
push 0x5d
mov ecx, esi
call fcn.10028610
jmp 0x1002626b
cmp eax, 0x28
jne 0x10026156
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002612e
cmp word [eax], 0x5c
jne 0x10026129
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10026127
test byte [esi + 0x50], 8
jne 0x1002610b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10026122
cmp ecx, 0x29
je 0x10026122
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10026127
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10026122
mov edx, ecx
cmp ebx, 0x7d
jne 0x10026127
lea eax, [edx + 2]
jmp 0x10026129
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10029c50
mov ecx, esi
call fcn.10029e00
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.10028610
test bl, bl
je 0x10026275
jmp 0x1002626b
cmp eax, 0x5e
jne 0x1002616a
push 2
lea ecx, [esi + 0x24]
call fcn.100118f0
jmp 0x10025f4f
cmp eax, 0x24
jne 0x100261ca
push 3
lea ecx, [esi + 0x24]
call fcn.100118f0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100261be
cmp word [eax], 0x5c
jne 0x100261bb
add eax, 2
cmp eax, ecx
je 0x100261bb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100261a6
movzx edx, word [eax]
cmp edx, 0x28
je 0x100261b8
cmp edx, 0x29
je 0x100261b8
test cl, 0x10
jne 0x100261bb
movzx eax, word [eax]
cmp eax, 0x7b
je 0x100261b8
cmp eax, 0x7d
jne 0x100261bb
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10029c50
jmp 0x10026275
cmp eax, 0x2a
je 0x10026291
cmp eax, 0x2b
je 0x10026291
cmp eax, 0x3f
je 0x10026291
cmp eax, 0x7b
je 0x10026291
cmp eax, 0x7d
jne 0x10026202
test dword [esi + 0x50], 0x10000000
je 0x100262a3
jmp 0x10026214
cmp eax, 0x5d
jne 0x10026214
test dword [esi + 0x50], 0x10000000
je 0x100262ac
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100253b0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10026264
cmp word [eax], 0x5c
jne 0x10026261
add eax, 2
cmp eax, ecx
je 0x10026261
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002624c
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002625e
cmp edx, 0x29
je 0x1002625e
test cl, 0x10
jne 0x10026261
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1002625e
cmp eax, 0x7d
jne 0x10026261
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10029c50
mov ecx, esi
call fcn.10029860
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10026288
cmp eax, 0x7c
jne 0x10025de3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10010e30
push 5
mov ecx, esi
call fcn.10010e30
push 6
mov ecx, esi
call fcn.10010e30
push 4
mov ecx, esi
call fcn.10010e30
int3