Function at 0x10029af0
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 0x10029fba
cmp eax, 0x7c
je 0x10029fba
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10029b34
cmp dword [esi + 0x10], 0
jne 0x10029fb8
test dword [esi + 0x50], 0x10000000
je 0x10029fca
jmp 0x10029f44
cmp eax, 0x2e
jne 0x10029b94
push 5
lea ecx, [esi + 0x24]
call fcn.100126b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029f94
cmp word [eax], 0x5c
jne 0x10029b8a
lea edx, [eax + 2]
cmp edx, ecx
je 0x10029b8a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029b73
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10029b87
cmp edi, 0x29
je 0x10029b87
test bl, 0x10
jne 0x10029b8a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10029b87
cmp edx, 0x7d
jne 0x10029b8a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10029f94
cmp eax, 0x5c
jne 0x10029cf7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029bec
cmp word [eax], 0x5c
jne 0x10029be7
lea edx, [eax + 2]
cmp edx, ecx
je 0x10029be7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029bd0
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10029be4
cmp word [ebp - 4], 0x29
je 0x10029be4
test bl, 0x10
jne 0x10029be7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10029be4
cmp edx, 0x7d
jne 0x10029be7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d9c0
test byte [esi + 0x50], 0x80
je 0x10029ceb
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10029c69
push 4
lea ecx, [esi + 0x24]
call fcn.100126b0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029c5d
cmp word [eax], 0x5c
jne 0x10029c58
lea edx, [eax + 2]
cmp edx, ecx
je 0x10029c58
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10029c41
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10029c55
cmp ebx, 0x29
je 0x10029c55
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10029c58
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10029c55
cmp edx, 0x7d
jne 0x10029c58
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d9c0
jmp 0x10029fa5
cmp ecx, 0x42
jne 0x10029ceb
push 4
lea ecx, [esi + 0x24]
call fcn.100126b0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10029cdf
cmp word [eax], 0x5c
jne 0x10029cda
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10029cd8
test byte [esi + 0x50], 8
jne 0x10029cad
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10029cc4
cmp ecx, 0x29
je 0x10029cc4
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10029cd8
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10029cc4
mov edx, ecx
cmp ebx, 0x7d
jne 0x10029cd8
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1002d9c0
jmp 0x10029fa5
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d9c0
jmp 0x10029fa5
mov ecx, esi
call fcn.10029ff0
jmp 0x10029f9b
cmp eax, 0x5b
jne 0x10029e08
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10029d55
cmp word [eax], 0x5c
jne 0x10029d4d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10029d4b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029d30
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10029d46
cmp ecx, 0x29
je 0x10029d46
mov ecx, eax
test bl, 0x10
jne 0x10029d4b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10029d46
mov edx, ecx
cmp edi, 0x7d
jne 0x10029d4b
lea eax, [edx + 2]
jmp 0x10029d4d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1002d9c0
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.10029320
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10029dd4
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10029dca
cmp word [eax], 0x5c
jne 0x10029dc2
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10029dc0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029da5
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10029dbb
cmp ecx, 0x29
je 0x10029dbb
mov ecx, eax
test bl, 0x10
jne 0x10029dc0
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10029dbb
mov edx, ecx
cmp edi, 0x7d
jne 0x10029dc0
lea eax, [edx + 2]
jmp 0x10029dc2
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1002d9c0
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x10029df1
cmp eax, 0x5d
jne 0x10029df1
push eax
mov ecx, ebx
call fcn.100292a0
mov ecx, esi
call fcn.1002d580
mov ecx, esi
call fcn.1002a7c0
push 4
push 0x5d
mov ecx, esi
call fcn.1002c380
jmp 0x10029f9b
cmp eax, 0x28
jne 0x10029e86
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10029e5e
cmp word [eax], 0x5c
jne 0x10029e59
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10029e57
test byte [esi + 0x50], 8
jne 0x10029e3b
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10029e52
cmp ecx, 0x29
je 0x10029e52
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10029e57
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10029e52
mov edx, ecx
cmp ebx, 0x7d
jne 0x10029e57
lea eax, [edx + 2]
jmp 0x10029e59
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002d9c0
mov ecx, esi
call fcn.1002db70
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1002c380
test bl, bl
je 0x10029fa5
jmp 0x10029f9b
cmp eax, 0x5e
jne 0x10029e9a
push 2
lea ecx, [esi + 0x24]
call fcn.100126b0
jmp 0x10029c7f
cmp eax, 0x24
jne 0x10029efa
push 3
lea ecx, [esi + 0x24]
call fcn.100126b0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029eee
cmp word [eax], 0x5c
jne 0x10029eeb
add eax, 2
cmp eax, ecx
je 0x10029eeb
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10029ed6
movzx edx, word [eax]
cmp edx, 0x28
je 0x10029ee8
cmp edx, 0x29
je 0x10029ee8
test cl, 0x10
jne 0x10029eeb
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10029ee8
cmp eax, 0x7d
jne 0x10029eeb
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d9c0
jmp 0x10029fa5
cmp eax, 0x2a
je 0x10029fc1
cmp eax, 0x2b
je 0x10029fc1
cmp eax, 0x3f
je 0x10029fc1
cmp eax, 0x7b
je 0x10029fc1
cmp eax, 0x7d
jne 0x10029f32
test dword [esi + 0x50], 0x10000000
je 0x10029fd3
jmp 0x10029f44
cmp eax, 0x5d
jne 0x10029f44
test dword [esi + 0x50], 0x10000000
je 0x10029fdc
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100290d0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10029f94
cmp word [eax], 0x5c
jne 0x10029f91
add eax, 2
cmp eax, ecx
je 0x10029f91
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10029f7c
movzx edx, word [eax]
cmp edx, 0x28
je 0x10029f8e
cmp edx, 0x29
je 0x10029f8e
test cl, 0x10
jne 0x10029f91
movzx eax, word [eax]
cmp eax, 0x7b
je 0x10029f8e
cmp eax, 0x7d
jne 0x10029f91
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d9c0
mov ecx, esi
call fcn.1002d5d0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10029fb8
cmp eax, 0x7c
jne 0x10029b13
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10011bf0
push 5
mov ecx, esi
call fcn.10011bf0
push 6
mov ecx, esi
call fcn.10011bf0
push 4
mov ecx, esi
call fcn.10011bf0
int3