Function at 0x100298d0
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 0x10029d9a
cmp eax, 0x7c
je 0x10029d9a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10029914
cmp dword [esi + 0x10], 0
jne 0x10029d98
test dword [esi + 0x50], 0x10000000
je 0x10029daa
jmp 0x10029d24
cmp eax, 0x2e
jne 0x10029974
push 5
lea ecx, [esi + 0x24]
call fcn.10012620
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029d74
cmp word [eax], 0x5c
jne 0x1002996a
lea edx, [eax + 2]
cmp edx, ecx
je 0x1002996a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029953
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10029967
cmp edi, 0x29
je 0x10029967
test bl, 0x10
jne 0x1002996a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10029967
cmp edx, 0x7d
jne 0x1002996a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10029d74
cmp eax, 0x5c
jne 0x10029ad7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100299cc
cmp word [eax], 0x5c
jne 0x100299c7
lea edx, [eax + 2]
cmp edx, ecx
je 0x100299c7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100299b0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x100299c4
cmp word [ebp - 4], 0x29
je 0x100299c4
test bl, 0x10
jne 0x100299c7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x100299c4
cmp edx, 0x7d
jne 0x100299c7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d760
test byte [esi + 0x50], 0x80
je 0x10029acb
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10029a49
push 4
lea ecx, [esi + 0x24]
call fcn.10012620
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029a3d
cmp word [eax], 0x5c
jne 0x10029a38
lea edx, [eax + 2]
cmp edx, ecx
je 0x10029a38
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10029a21
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10029a35
cmp ebx, 0x29
je 0x10029a35
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10029a38
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10029a35
cmp edx, 0x7d
jne 0x10029a38
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d760
jmp 0x10029d85
cmp ecx, 0x42
jne 0x10029acb
push 4
lea ecx, [esi + 0x24]
call fcn.10012620
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10029abf
cmp word [eax], 0x5c
jne 0x10029aba
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10029ab8
test byte [esi + 0x50], 8
jne 0x10029a8d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10029aa4
cmp ecx, 0x29
je 0x10029aa4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10029ab8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10029aa4
mov edx, ecx
cmp ebx, 0x7d
jne 0x10029ab8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1002d760
jmp 0x10029d85
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d760
jmp 0x10029d85
mov ecx, esi
call fcn.10029dd0
jmp 0x10029d7b
cmp eax, 0x5b
jne 0x10029be8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10029b35
cmp word [eax], 0x5c
jne 0x10029b2d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10029b2b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029b10
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10029b26
cmp ecx, 0x29
je 0x10029b26
mov ecx, eax
test bl, 0x10
jne 0x10029b2b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10029b26
mov edx, ecx
cmp edi, 0x7d
jne 0x10029b2b
lea eax, [edx + 2]
jmp 0x10029b2d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1002d760
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.10029100
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10029bb4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10029baa
cmp word [eax], 0x5c
jne 0x10029ba2
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10029ba0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029b85
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10029b9b
cmp ecx, 0x29
je 0x10029b9b
mov ecx, eax
test bl, 0x10
jne 0x10029ba0
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10029b9b
mov edx, ecx
cmp edi, 0x7d
jne 0x10029ba0
lea eax, [edx + 2]
jmp 0x10029ba2
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1002d760
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x10029bd1
cmp eax, 0x5d
jne 0x10029bd1
push eax
mov ecx, ebx
call fcn.10029080
mov ecx, esi
call fcn.1002d320
mov ecx, esi
call fcn.1002a5a0
push 4
push 0x5d
mov ecx, esi
call fcn.1002c120
jmp 0x10029d7b
cmp eax, 0x28
jne 0x10029c66
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10029c3e
cmp word [eax], 0x5c
jne 0x10029c39
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10029c37
test byte [esi + 0x50], 8
jne 0x10029c1b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10029c32
cmp ecx, 0x29
je 0x10029c32
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10029c37
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10029c32
mov edx, ecx
cmp ebx, 0x7d
jne 0x10029c37
lea eax, [edx + 2]
jmp 0x10029c39
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d760
mov ecx, esi
call fcn.1002d910
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1002c120
test bl, bl
je 0x10029d85
jmp 0x10029d7b
cmp eax, 0x5e
jne 0x10029c7a
push 2
lea ecx, [esi + 0x24]
call fcn.10012620
jmp 0x10029a5f
cmp eax, 0x24
jne 0x10029cda
push 3
lea ecx, [esi + 0x24]
call fcn.10012620
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029cce
cmp word [eax], 0x5c
jne 0x10029ccb
add eax, 2
cmp eax, ecx
je 0x10029ccb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10029cb6
movzx edx, word [eax]
cmp edx, 0x28
je 0x10029cc8
cmp edx, 0x29
je 0x10029cc8
test cl, 0x10
jne 0x10029ccb
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10029cc8
cmp eax, 0x7d
jne 0x10029ccb
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d760
jmp 0x10029d85
cmp eax, 0x2a
je 0x10029da1
cmp eax, 0x2b
je 0x10029da1
cmp eax, 0x3f
je 0x10029da1
cmp eax, 0x7b
je 0x10029da1
cmp eax, 0x7d
jne 0x10029d12
test dword [esi + 0x50], 0x10000000
je 0x10029db3
jmp 0x10029d24
cmp eax, 0x5d
jne 0x10029d24
test dword [esi + 0x50], 0x10000000
je 0x10029dbc
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10028eb0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10029d74
cmp word [eax], 0x5c
jne 0x10029d71
add eax, 2
cmp eax, ecx
je 0x10029d71
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10029d5c
movzx edx, word [eax]
cmp edx, 0x28
je 0x10029d6e
cmp edx, 0x29
je 0x10029d6e
test cl, 0x10
jne 0x10029d71
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10029d6e
cmp eax, 0x7d
jne 0x10029d71
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d760
mov ecx, esi
call fcn.1002d370
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10029d98
cmp eax, 0x7c
jne 0x100298f3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10011b60
push 5
mov ecx, esi
call fcn.10011b60
push 6
mov ecx, esi
call fcn.10011b60
push 4
mov ecx, esi
call fcn.10011b60
int3