Function at 0x1002ca70
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 0x1002cf3a
cmp eax, 0x7c
je 0x1002cf3a
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x29
jne 0x1002cab4
cmp dword [esi + 0x10], 0
jne 0x1002cf38
test dword [esi + 0x50], 0x10000000
je 0x1002cf4a
jmp 0x1002cec4
cmp eax, 0x2e
jne 0x1002cb14
push 5
lea ecx, [esi + 0x24]
call fcn.10014830
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002cf14
cmp word [eax], 0x5c
jne 0x1002cb0a
lea edx, [eax + 2]
cmp edx, ecx
je 0x1002cb0a
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002caf3
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x1002cb07
cmp edi, 0x29
je 0x1002cb07
test bl, 0x10
jne 0x1002cb0a
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1002cb07
cmp edx, 0x7d
jne 0x1002cb0a
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x1002cf14
cmp eax, 0x5c
jne 0x1002cc77
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002cb6c
cmp word [eax], 0x5c
jne 0x1002cb67
lea edx, [eax + 2]
cmp edx, ecx
je 0x1002cb67
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002cb50
movzx ecx, word [edx]
mov dword [ebp - 4], ecx
mov ecx, eax
cmp word [ebp - 4], 0x28
je 0x1002cb64
cmp word [ebp - 4], 0x29
je 0x1002cb64
test bl, 0x10
jne 0x1002cb67
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1002cb64
cmp edx, 0x7d
jne 0x1002cb67
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10030940
test byte [esi + 0x50], 0x80
je 0x1002cc6b
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x1002cbe9
push 4
lea ecx, [esi + 0x24]
call fcn.10014830
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002cbdd
cmp word [eax], 0x5c
jne 0x1002cbd8
lea edx, [eax + 2]
cmp edx, ecx
je 0x1002cbd8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002cbc1
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x1002cbd5
cmp ebx, 0x29
je 0x1002cbd5
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1002cbd8
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x1002cbd5
cmp edx, 0x7d
jne 0x1002cbd8
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10030940
jmp 0x1002cf25
cmp ecx, 0x42
jne 0x1002cc6b
push 4
lea ecx, [esi + 0x24]
call fcn.10014830
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov edx, dword [edi]
mov eax, dword [esi]
cmp eax, edx
je 0x1002cc5f
cmp word [eax], 0x5c
jne 0x1002cc5a
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x1002cc58
test byte [esi + 0x50], 8
jne 0x1002cc2d
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x1002cc44
cmp ecx, 0x29
je 0x1002cc44
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1002cc58
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x1002cc44
mov edx, ecx
cmp ebx, 0x7d
jne 0x1002cc58
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.10030940
jmp 0x1002cf25
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10030940
jmp 0x1002cf25
mov ecx, esi
call fcn.1002cf70
jmp 0x1002cf1b
cmp eax, 0x5b
jne 0x1002cd88
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002ccd5
cmp word [eax], 0x5c
jne 0x1002cccd
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1002cccb
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002ccb0
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1002ccc6
cmp ecx, 0x29
je 0x1002ccc6
mov ecx, eax
test bl, 0x10
jne 0x1002cccb
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1002ccc6
mov edx, ecx
cmp edi, 0x7d
jne 0x1002cccb
lea eax, [edx + 2]
jmp 0x1002cccd
mov eax, ecx
add eax, 2
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.10030940
lea ebx, [esi + 0x24]
mov ecx, ebx
call fcn.1002c290
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1002cd54
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002cd4a
cmp word [eax], 0x5c
jne 0x1002cd42
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x1002cd40
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1002cd25
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x1002cd3b
cmp ecx, 0x29
je 0x1002cd3b
mov ecx, eax
test bl, 0x10
jne 0x1002cd40
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x1002cd3b
mov edx, ecx
cmp edi, 0x7d
jne 0x1002cd40
lea eax, [edx + 2]
jmp 0x1002cd42
mov eax, ecx
add eax, 2
lea ebx, [esi + 0x24]
mov dword [esi], eax
mov ecx, esi
call fcn.10030940
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1002cd71
cmp eax, 0x5d
jne 0x1002cd71
push eax
mov ecx, ebx
call fcn.1002c210
mov ecx, esi
call fcn.10030500
mov ecx, esi
call fcn.1002d740
push 4
push 0x5d
mov ecx, esi
call fcn.1002f300
jmp 0x1002cf1b
cmp eax, 0x28
jne 0x1002ce06
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1002cdde
cmp word [eax], 0x5c
jne 0x1002cdd9
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x1002cdd7
test byte [esi + 0x50], 8
jne 0x1002cdbb
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x1002cdd2
cmp ecx, 0x29
je 0x1002cdd2
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1002cdd7
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x1002cdd2
mov edx, ecx
cmp ebx, 0x7d
jne 0x1002cdd7
lea eax, [edx + 2]
jmp 0x1002cdd9
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.10030940
mov ecx, esi
call fcn.10030af0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1002f300
test bl, bl
je 0x1002cf25
jmp 0x1002cf1b
cmp eax, 0x5e
jne 0x1002ce1a
push 2
lea ecx, [esi + 0x24]
call fcn.10014830
jmp 0x1002cbff
cmp eax, 0x24
jne 0x1002ce7a
push 3
lea ecx, [esi + 0x24]
call fcn.10014830
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1002ce6e
cmp word [eax], 0x5c
jne 0x1002ce6b
add eax, 2
cmp eax, ecx
je 0x1002ce6b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002ce56
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002ce68
cmp edx, 0x29
je 0x1002ce68
test cl, 0x10
jne 0x1002ce6b
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1002ce68
cmp eax, 0x7d
jne 0x1002ce6b
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10030940
jmp 0x1002cf25
cmp eax, 0x2a
je 0x1002cf41
cmp eax, 0x2b
je 0x1002cf41
cmp eax, 0x3f
je 0x1002cf41
cmp eax, 0x7b
je 0x1002cf41
cmp eax, 0x7d
jne 0x1002ceb2
test dword [esi + 0x50], 0x10000000
je 0x1002cf53
jmp 0x1002cec4
cmp eax, 0x5d
jne 0x1002cec4
test dword [esi + 0x50], 0x10000000
je 0x1002cf5c
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002c040
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002cf14
cmp word [eax], 0x5c
jne 0x1002cf11
add eax, 2
cmp eax, ecx
je 0x1002cf11
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1002cefc
movzx edx, word [eax]
cmp edx, 0x28
je 0x1002cf0e
cmp edx, 0x29
je 0x1002cf0e
test cl, 0x10
jne 0x1002cf11
movzx eax, word [eax]
cmp eax, 0x7b
je 0x1002cf0e
cmp eax, 0x7d
jne 0x1002cf11
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.10030940
mov ecx, esi
call fcn.10030550
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1002cf38
cmp eax, 0x7c
jne 0x1002ca93
pop ebx
pop edi
mov al, cl
pop esi
mov esp, ebp
pop ebp
ret
push 0xa
mov ecx, esi
call fcn.10013d60
push 5
mov ecx, esi
call fcn.10013d60
push 6
mov ecx, esi
call fcn.10013d60
push 4
mov ecx, esi
call fcn.10013d60
int3