Function at 0x1002e9a0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor al, al
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x1002ea6b
cmp ecx, 0x7c
je 0x1002ea6b
cmp ecx, 0x29
jne 0x1002ea72
cmp dword [esi + 0x10], 0
jne 0x1002ea6b
cmp ecx, ecx
jne 0x1002ea72
test dword [esi + 0x50], 0x10000000
je 0x1002ef5c
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x1002e9fc
test dword [edi], 0x10000000
je 0x1002ef63
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.100300e0
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002ea4f
cmp word [ecx], 0x5c
jne 0x1002ea4c
add ecx, 2
cmp ecx, eax
je 0x1002ea4c
mov edx, dword [edi]
test dl, 8
jne 0x1002ea35
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002ea49
cmp edi, 0x29
je 0x1002ea49
test dl, 0x10
jne 0x1002ea4c
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002ea49
cmp ecx, 0x7d
jne 0x1002ea4c
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d210
mov ecx, esi
call fcn.1002feb0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1002e9b7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x1002eb3a
push 0x14
call fcn.1005a6f0
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1002eac8
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002ea4f
cmp word [ecx], 0x5c
jne 0x1002eb30
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002eb2e
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002eb0a
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002eb21
cmp edx, 0x29
je 0x1002eb21
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002eb2e
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002eb21
mov edi, edx
cmp ebx, 0x7d
jne 0x1002eb2e
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002ea4f
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1002ea4f
cmp ecx, 0x5c
jne 0x1002ed00
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002eb9b
cmp word [ecx], 0x5c
jne 0x1002eb96
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002eb94
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002eb78
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002eb8f
cmp edx, 0x29
je 0x1002eb8f
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002eb94
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002eb8f
mov edi, edx
cmp ebx, 0x7d
jne 0x1002eb94
lea ecx, [edi + 2]
jmp 0x1002eb96
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.1002d210
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1002ec88
cmp word [esi + 0x48], 0x62
jne 0x1002ec88
push 0x14
call fcn.1005a6f0
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1002ec08
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002ef14
cmp word [ecx], 0x5c
jne 0x1002ec77
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1002ec75
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1002ec4a
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1002ec61
cmp edx, 0x29
je 0x1002ec61
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1002ec75
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1002ec61
mov edi, edx
cmp ebx, 0x7d
jne 0x1002ec75
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002d210
jmp 0x1002ea5d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.1002d210
jmp 0x1002ea5d
test eax, eax
je 0x1002ecf4
cmp word [esi + 0x48], 0x42
jne 0x1002ecf4
push 0x14
call fcn.1005a6f0
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1002ece0
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x1002eecd
mov ecx, esi
call fcn.1002faf0
jmp 0x1002ea56
cmp ecx, 0x5b
jne 0x1002ed92
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002ed50
cmp word [ecx], 0x5c
jne 0x1002ed4d
add ecx, 2
cmp ecx, eax
je 0x1002ed4d
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002ed36
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002ed4a
cmp edi, 0x29
je 0x1002ed4a
test dl, 0x10
jne 0x1002ed4d
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002ed4a
cmp ecx, 0x7d
jne 0x1002ed4d
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d210
mov ecx, esi
call fcn.1002f9a0
cmp dword [esi + 0x4c], 0x5d
jne 0x1002ef63
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002ea4f
cmp word [ecx], 0x5c
jne 0x1002ea4c
add ecx, 2
cmp ecx, eax
je 0x1002ea4c
mov edx, dword [esi + 0x50]
jmp 0x1002ea21
cmp ecx, 0x28
jne 0x1002ee57
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1002ede2
cmp word [ecx], 0x5c
jne 0x1002eddf
add ecx, 2
cmp ecx, eax
je 0x1002eddf
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002edc8
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002eddc
cmp edi, 0x29
je 0x1002eddc
test dl, 0x10
jne 0x1002eddf
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002eddc
cmp ecx, 0x7d
jne 0x1002eddf
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d210
mov ecx, esi
call fcn.1002fc40
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1002ef5c
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1002ee43
cmp word [ecx], 0x5c
jne 0x1002ee40
add ecx, 2
cmp ecx, edx
je 0x1002ee40
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002ee29
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002ee3d
cmp edi, 0x29
je 0x1002ee3d
test dl, 0x10
jne 0x1002ee40
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002ee3d
cmp ecx, 0x7d
jne 0x1002ee40
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d210
test bl, bl
je 0x1002ea5d
jmp 0x1002ea56
cmp ecx, 0x5e
jne 0x1002ee6e
push 0x14
call fcn.1005a6f0
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1002ee87
cmp ecx, 0x24
jne 0x1002ef20
push 0x14
call fcn.1005a6f0
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1002eec4
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x1002ef14
cmp word [ecx], 0x5c
jne 0x1002ef11
add ecx, 2
cmp ecx, eax
je 0x1002ef11
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1002eefa
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1002ef0e
cmp edi, 0x29
je 0x1002ef0e
test dl, 0x10
jne 0x1002ef11
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1002ef0e
cmp ecx, 0x7d
jne 0x1002ef11
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.1002d210
jmp 0x1002ea5d
cmp ecx, 0x2a
je 0x1002ef4e
cmp ecx, 0x2b
je 0x1002ef4e
cmp ecx, 0x3f
je 0x1002ef4e
cmp ecx, 0x7b
je 0x1002ef4e
cmp ecx, 0x7d
jne 0x1002e9e8
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1002ef55
jmp 0x1002e9fc
push 0xa
call fcn.1002d200
push 6
call fcn.1002d200
push 5
call fcn.1002d200
push 4
call fcn.1002d200
int3