Function at 0x10029ec0
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 0x1002a38a
cmp eax, 0x7c
je 0x1002a38a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10029f04
cmp dword [esi + 0x10], 0
jne 0x1002a388
test dword [esi + 0x50], 0x10000000
je 0x1002a39a
jmp 0x1002a314
cmp eax, 0x2e
jne 0x10029f64
push 5
lea ecx, [esi + 0x24]
call fcn.10012820
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002a364
cmp word [eax], 0x5c
jne 0x10029f5a
lea edx, [eax + 2]
cmp edx, ecx
je 0x10029f5a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029f43
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10029f57
cmp edi, 0x29
je 0x10029f57
test bl, 0x10
jne 0x10029f5a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10029f57
cmp edx, 0x7d
jne 0x10029f5a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x1002a364
cmp eax, 0x5c
jne 0x1002a0c7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029fbc
cmp word [eax], 0x5c
jne 0x10029fb7
lea edx, [eax + 2]
cmp edx, ecx
je 0x10029fb7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029fa0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10029fb4
cmp word [ebp - 4], 0x29
je 0x10029fb4
test bl, 0x10
jne 0x10029fb7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10029fb4
cmp edx, 0x7d
jne 0x10029fb7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002dd90
test byte [esi + 0x50], 0x80
je 0x1002a0bb
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x1002a039
push 4
lea ecx, [esi + 0x24]
call fcn.10012820
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002a02d
cmp word [eax], 0x5c
jne 0x1002a028
lea edx, [eax + 2]
cmp edx, ecx
je 0x1002a028
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002a011
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x1002a025
cmp ebx, 0x29
je 0x1002a025
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1002a028
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1002a025
cmp edx, 0x7d
jne 0x1002a028
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002dd90
jmp 0x1002a375
cmp ecx, 0x42
jne 0x1002a0bb
push 4
lea ecx, [esi + 0x24]
call fcn.10012820
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x1002a0af
cmp word [eax], 0x5c
jne 0x1002a0aa
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x1002a0a8
test byte [esi + 0x50], 8
jne 0x1002a07d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x1002a094
cmp ecx, 0x29
je 0x1002a094
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1002a0a8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x1002a094
mov edx, ecx
cmp ebx, 0x7d
jne 0x1002a0a8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1002dd90
jmp 0x1002a375
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002dd90
jmp 0x1002a375
mov ecx, esi
call fcn.1002a3c0
jmp 0x1002a36b
cmp eax, 0x5b
jne 0x1002a1d8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002a125
cmp word [eax], 0x5c
jne 0x1002a11d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1002a11b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002a100
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1002a116
cmp ecx, 0x29
je 0x1002a116
mov ecx, eax
test bl, 0x10
jne 0x1002a11b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1002a116
mov edx, ecx
cmp edi, 0x7d
jne 0x1002a11b
lea eax, [edx + 2]
jmp 0x1002a11d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1002dd90
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.100296f0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1002a1a4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002a19a
cmp word [eax], 0x5c
jne 0x1002a192
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1002a190
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002a175
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1002a18b
cmp ecx, 0x29
je 0x1002a18b
mov ecx, eax
test bl, 0x10
jne 0x1002a190
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1002a18b
mov edx, ecx
cmp edi, 0x7d
jne 0x1002a190
lea eax, [edx + 2]
jmp 0x1002a192
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1002dd90
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1002a1c1
cmp eax, 0x5d
jne 0x1002a1c1
push eax
mov ecx, ebx
call fcn.10029670
mov ecx, esi
call fcn.1002d950
mov ecx, esi
call fcn.1002ab90
push 4
push 0x5d
mov ecx, esi
call fcn.1002c750
jmp 0x1002a36b
cmp eax, 0x28
jne 0x1002a256
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002a22e
cmp word [eax], 0x5c
jne 0x1002a229
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x1002a227
test byte [esi + 0x50], 8
jne 0x1002a20b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x1002a222
cmp ecx, 0x29
je 0x1002a222
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1002a227
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x1002a222
mov edx, ecx
cmp ebx, 0x7d
jne 0x1002a227
lea eax, [edx + 2]
jmp 0x1002a229
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002dd90
mov ecx, esi
call fcn.1002df40
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1002c750
test bl, bl
je 0x1002a375
jmp 0x1002a36b
cmp eax, 0x5e
jne 0x1002a26a
push 2
lea ecx, [esi + 0x24]
call fcn.10012820
jmp 0x1002a04f
cmp eax, 0x24
jne 0x1002a2ca
push 3
lea ecx, [esi + 0x24]
call fcn.10012820
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002a2be
cmp word [eax], 0x5c
jne 0x1002a2bb
add eax, 2
cmp eax, ecx
je 0x1002a2bb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002a2a6
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002a2b8
cmp edx, 0x29
je 0x1002a2b8
test cl, 0x10
jne 0x1002a2bb
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1002a2b8
cmp eax, 0x7d
jne 0x1002a2bb
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002dd90
jmp 0x1002a375
cmp eax, 0x2a
je 0x1002a391
cmp eax, 0x2b
je 0x1002a391
cmp eax, 0x3f
je 0x1002a391
cmp eax, 0x7b
je 0x1002a391
cmp eax, 0x7d
jne 0x1002a302
test dword [esi + 0x50], 0x10000000
je 0x1002a3a3
jmp 0x1002a314
cmp eax, 0x5d
jne 0x1002a314
test dword [esi + 0x50], 0x10000000
je 0x1002a3ac
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100294a0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002a364
cmp word [eax], 0x5c
jne 0x1002a361
add eax, 2
cmp eax, ecx
je 0x1002a361
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002a34c
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002a35e
cmp edx, 0x29
je 0x1002a35e
test cl, 0x10
jne 0x1002a361
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1002a35e
cmp eax, 0x7d
jne 0x1002a361
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002dd90
mov ecx, esi
call fcn.1002d9a0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1002a388
cmp eax, 0x7c
jne 0x10029ee3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10011d60
push 5
mov ecx, esi
call fcn.10011d60
push 6
mov ecx, esi
call fcn.10011d60
push 4
mov ecx, esi
call fcn.10011d60
int3