Function at 0x1004ab80
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 0x1004ac3e
cmp ecx, 0x7c
je 0x1004ac3e
cmp ecx, 0x29
jne 0x1004ac45
cmp dword [esi + 0x10], 0
jne 0x1004ac3e
cmp ecx, ecx
jne 0x1004ac45
test dword [esi + 0x50], 0x10000000
je 0x1004b0ef
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x1004abdc
test dword [edi], 0x10000000
je 0x1004b0f6
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1004c1c0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004ac22
cmp byte [eax], 0x5c
jne 0x1004ac20
inc eax
cmp eax, ecx
je 0x1004ac20
mov edx, dword [edi]
test dl, 8
jne 0x1004ac0f
mov cl, byte [eax]
cmp cl, 0x28
je 0x1004ac1e
cmp cl, 0x29
je 0x1004ac1e
test dl, 0x10
jne 0x1004ac20
mov al, byte [eax]
cmp al, 0x7b
je 0x1004ac1e
cmp al, 0x7d
jne 0x1004ac20
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499f0
mov ecx, esi
call fcn.1004bfa0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1004ab97
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x1004ad01
push 0x14
call fcn.1006328a
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 0x1004ac9b
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]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1004ac22
cmp byte [eax], 0x5c
jne 0x1004acf9
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004acf7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004acd7
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004acec
cmp cl, 0x29
je 0x1004acec
mov ecx, eax
test bl, 0x10
jne 0x1004acf7
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004acec
mov edx, ecx
cmp bl, 0x7d
jne 0x1004acf7
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1004ac22
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1004ac22
cmp ecx, 0x5c
jne 0x1004aeae
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1004ad57
cmp byte [eax], cl
jne 0x1004ad54
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004ad52
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004ad38
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004ad4d
cmp cl, 0x29
je 0x1004ad4d
mov ecx, eax
test bl, 0x10
jne 0x1004ad52
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004ad4d
mov edx, ecx
cmp bl, 0x7d
jne 0x1004ad52
lea eax, [edx + 1]
jmp 0x1004ad54
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100499f0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1004ae37
cmp byte [esi + 0x48], 0x62
jne 0x1004ae37
push 0x14
call fcn.1006328a
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 0x1004adc3
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]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1004b0a7
cmp byte [eax], 0x5c
jne 0x1004ae28
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004ae26
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004adff
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004ae14
cmp cl, 0x29
je 0x1004ae14
mov ecx, eax
test bl, 0x10
jne 0x1004ae26
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004ae14
mov edx, ecx
cmp bl, 0x7d
jne 0x1004ae26
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.100499f0
jmp 0x1004ac30
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.100499f0
jmp 0x1004ac30
test eax, eax
je 0x1004aea2
cmp byte [esi + 0x48], 0x42
jne 0x1004aea2
push 0x14
call fcn.1006328a
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 0x1004ae8e
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 0x1004b06d
mov ecx, esi
call fcn.1004bd00
jmp 0x1004ac29
cmp ecx, 0x5b
jne 0x1004af4c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004aef1
cmp byte [eax], 0x5c
jne 0x1004aeef
inc eax
cmp eax, ecx
je 0x1004aeef
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1004aede
mov cl, byte [eax]
cmp cl, 0x28
je 0x1004aeed
cmp cl, 0x29
je 0x1004aeed
test dl, 0x10
jne 0x1004aeef
mov al, byte [eax]
cmp al, 0x7b
je 0x1004aeed
cmp al, 0x7d
jne 0x1004aeef
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499f0
mov ecx, esi
call fcn.1004bbc0
cmp dword [esi + 0x4c], 0x5d
jne 0x1004b0f6
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004ac22
cmp byte [eax], 0x5c
jne 0x1004ac20
inc eax
cmp eax, ecx
je 0x1004ac20
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004af44
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004ac1e
cmp dl, 0x29
je 0x1004ac1e
test cl, 0x10
jmp 0x1004ac12
cmp ecx, 0x28
jne 0x1004aff7
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004af8f
cmp byte [eax], 0x5c
jne 0x1004af8d
inc eax
cmp eax, ecx
je 0x1004af8d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004af7c
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004af8b
cmp dl, 0x29
je 0x1004af8b
test cl, 0x10
jne 0x1004af8d
mov al, byte [eax]
cmp al, 0x7b
je 0x1004af8b
cmp al, 0x7d
jne 0x1004af8d
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499f0
mov ecx, esi
call fcn.1004be50
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1004b0ef
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004afe3
cmp byte [eax], 0x5c
jne 0x1004afe1
inc eax
cmp eax, ecx
je 0x1004afe1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004afd0
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004afdf
cmp dl, 0x29
je 0x1004afdf
test cl, 0x10
jne 0x1004afe1
mov al, byte [eax]
cmp al, 0x7b
je 0x1004afdf
cmp al, 0x7d
jne 0x1004afe1
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499f0
test bl, bl
je 0x1004ac30
jmp 0x1004ac29
cmp ecx, 0x5e
jne 0x1004b00e
push 0x14
call fcn.1006328a
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1004b027
cmp ecx, 0x24
jne 0x1004b0b3
push 0x14
call fcn.1006328a
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 0x1004b064
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 + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x1004b0a7
cmp byte [eax], 0x5c
jne 0x1004b0a5
inc eax
cmp eax, ecx
je 0x1004b0a5
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004b094
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004b0a3
cmp dl, 0x29
je 0x1004b0a3
test cl, 0x10
jne 0x1004b0a5
mov al, byte [eax]
cmp al, 0x7b
je 0x1004b0a3
cmp al, 0x7d
jne 0x1004b0a5
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499f0
jmp 0x1004ac30
cmp ecx, 0x2a
je 0x1004b0e1
cmp ecx, 0x2b
je 0x1004b0e1
cmp ecx, 0x3f
je 0x1004b0e1
cmp ecx, 0x7b
je 0x1004b0e1
cmp ecx, 0x7d
jne 0x1004abc8
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1004b0e8
jmp 0x1004abdc
push 0xa
call fcn.100499e0
push 6
call fcn.100499e0
push 5
call fcn.100499e0
push 4
call fcn.100499e0
int3