Function at 0x10028db0
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 0x1002927a
cmp eax, 0x7c
je 0x1002927a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x10028df4
cmp dword [esi + 0x10], 0
jne 0x10029278
test dword [esi + 0x50], 0x10000000
je 0x1002928a
jmp 0x10029204
cmp eax, 0x2e
jne 0x10028e54
push 5
lea ecx, [esi + 0x24]
call fcn.10011bd0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10029254
cmp word [eax], 0x5c
jne 0x10028e4a
lea edx, [eax + 2]
cmp edx, ecx
je 0x10028e4a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10028e33
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x10028e47
cmp edi, 0x29
je 0x10028e47
test bl, 0x10
jne 0x10028e4a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10028e47
cmp edx, 0x7d
jne 0x10028e4a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x10029254
cmp eax, 0x5c
jne 0x10028fb7
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10028eac
cmp word [eax], 0x5c
jne 0x10028ea7
lea edx, [eax + 2]
cmp edx, ecx
je 0x10028ea7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10028e90
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x10028ea4
cmp word [ebp - 4], 0x29
je 0x10028ea4
test bl, 0x10
jne 0x10028ea7
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10028ea4
cmp edx, 0x7d
jne 0x10028ea7
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002cc40
test byte [esi + 0x50], 0x80
je 0x10028fab
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x10028f29
push 4
lea ecx, [esi + 0x24]
call fcn.10011bd0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10028f1d
cmp word [eax], 0x5c
jne 0x10028f18
lea edx, [eax + 2]
cmp edx, ecx
je 0x10028f18
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10028f01
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x10028f15
cmp ebx, 0x29
je 0x10028f15
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10028f18
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x10028f15
cmp edx, 0x7d
jne 0x10028f18
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002cc40
jmp 0x10029265
cmp ecx, 0x42
jne 0x10028fab
push 4
lea ecx, [esi + 0x24]
call fcn.10011bd0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x10028f9f
cmp word [eax], 0x5c
jne 0x10028f9a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10028f98
test byte [esi + 0x50], 8
jne 0x10028f6d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10028f84
cmp ecx, 0x29
je 0x10028f84
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10028f98
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10028f84
mov edx, ecx
cmp ebx, 0x7d
jne 0x10028f98
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.1002cc40
jmp 0x10029265
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002cc40
jmp 0x10029265
mov ecx, esi
call fcn.100292b0
jmp 0x1002925b
cmp eax, 0x5b
jne 0x100290c8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x10029015
cmp word [eax], 0x5c
jne 0x1002900d
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1002900b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10028ff0
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x10029006
cmp ecx, 0x29
je 0x10029006
mov ecx, eax
test bl, 0x10
jne 0x1002900b
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x10029006
mov edx, ecx
cmp edi, 0x7d
jne 0x1002900b
lea eax, [edx + 2]
jmp 0x1002900d
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1002cc40
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.100285e0
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x10029094
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002908a
cmp word [eax], 0x5c
jne 0x10029082
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x10029080
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10029065
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1002907b
cmp ecx, 0x29
je 0x1002907b
mov ecx, eax
test bl, 0x10
jne 0x10029080
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1002907b
mov edx, ecx
cmp edi, 0x7d
jne 0x10029080
lea eax, [edx + 2]
jmp 0x10029082
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.1002cc40
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x100290b1
cmp eax, 0x5d
jne 0x100290b1
push eax
mov ecx, ebx
call fcn.10028560
mov ecx, esi
call fcn.1002c800
mov ecx, esi
call fcn.10029a80
push 4
push 0x5d
mov ecx, esi
call fcn.1002b600
jmp 0x1002925b
cmp eax, 0x28
jne 0x10029146
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002911e
cmp word [eax], 0x5c
jne 0x10029119
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x10029117
test byte [esi + 0x50], 8
jne 0x100290fb
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x10029112
cmp ecx, 0x29
je 0x10029112
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x10029117
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x10029112
mov edx, ecx
cmp ebx, 0x7d
jne 0x10029117
lea eax, [edx + 2]
jmp 0x10029119
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.1002cc40
mov ecx, esi
call fcn.1002cdf0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1002b600
test bl, bl
je 0x10029265
jmp 0x1002925b
cmp eax, 0x5e
jne 0x1002915a
push 2
lea ecx, [esi + 0x24]
call fcn.10011bd0
jmp 0x10028f3f
cmp eax, 0x24
jne 0x100291ba
push 3
lea ecx, [esi + 0x24]
call fcn.10011bd0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100291ae
cmp word [eax], 0x5c
jne 0x100291ab
add eax, 2
cmp eax, ecx
je 0x100291ab
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10029196
movzx edx, word [eax]
cmp edx, 0x28
je 0x100291a8
cmp edx, 0x29
je 0x100291a8
test cl, 0x10
jne 0x100291ab
movzx eax, word [eax]
cmp eax, 0x7b
je 0x100291a8
cmp eax, 0x7d
jne 0x100291ab
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002cc40
jmp 0x10029265
cmp eax, 0x2a
je 0x10029281
cmp eax, 0x2b
je 0x10029281
cmp eax, 0x3f
je 0x10029281
cmp eax, 0x7b
je 0x10029281
cmp eax, 0x7d
jne 0x100291f2
test dword [esi + 0x50], 0x10000000
je 0x10029293
jmp 0x10029204
cmp eax, 0x5d
jne 0x10029204
test dword [esi + 0x50], 0x10000000
je 0x1002929c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10028390
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10029254
cmp word [eax], 0x5c
jne 0x10029251
add eax, 2
cmp eax, ecx
je 0x10029251
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002923c
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002924e
cmp edx, 0x29
je 0x1002924e
test cl, 0x10
jne 0x10029251
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1002924e
cmp eax, 0x7d
jne 0x10029251
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002cc40
mov ecx, esi
call fcn.1002c850
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x10029278
cmp eax, 0x7c
jne 0x10028dd3
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10011110
push 5
mov ecx, esi
call fcn.10011110
push 6
mov ecx, esi
call fcn.10011110
push 4
mov ecx, esi
call fcn.10011110
int3