Function at 0x1004ab30
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 0x1004abee
cmp ecx, 0x7c
je 0x1004abee
cmp ecx, 0x29
jne 0x1004abf5
cmp dword [esi + 0x10], 0
jne 0x1004abee
cmp ecx, ecx
jne 0x1004abf5
test dword [esi + 0x50], 0x10000000
je 0x1004b09f
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x1004ab8c
test dword [edi], 0x10000000
je 0x1004b0a6
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1004c170
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004abd2
cmp byte [eax], 0x5c
jne 0x1004abd0
inc eax
cmp eax, ecx
je 0x1004abd0
mov edx, dword [edi]
test dl, 8
jne 0x1004abbf
mov cl, byte [eax]
cmp cl, 0x28
je 0x1004abce
cmp cl, 0x29
je 0x1004abce
test dl, 0x10
jne 0x1004abd0
mov al, byte [eax]
cmp al, 0x7b
je 0x1004abce
cmp al, 0x7d
jne 0x1004abd0
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499a0
mov ecx, esi
call fcn.1004bf50
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1004ab47
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x1004acb1
push 0x14
call fcn.1006332a
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 0x1004ac4b
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 0x1004abd2
cmp byte [eax], 0x5c
jne 0x1004aca9
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004aca7
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004ac87
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004ac9c
cmp cl, 0x29
je 0x1004ac9c
mov ecx, eax
test bl, 0x10
jne 0x1004aca7
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004ac9c
mov edx, ecx
cmp bl, 0x7d
jne 0x1004aca7
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1004abd2
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1004abd2
cmp ecx, 0x5c
jne 0x1004ae5e
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1004ad07
cmp byte [eax], cl
jne 0x1004ad04
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004ad02
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004ace8
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004acfd
cmp cl, 0x29
je 0x1004acfd
mov ecx, eax
test bl, 0x10
jne 0x1004ad02
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004acfd
mov edx, ecx
cmp bl, 0x7d
jne 0x1004ad02
lea eax, [edx + 1]
jmp 0x1004ad04
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100499a0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1004ade7
cmp byte [esi + 0x48], 0x62
jne 0x1004ade7
push 0x14
call fcn.1006332a
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 0x1004ad73
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 0x1004b057
cmp byte [eax], 0x5c
jne 0x1004add8
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1004add6
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1004adaf
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1004adc4
cmp cl, 0x29
je 0x1004adc4
mov ecx, eax
test bl, 0x10
jne 0x1004add6
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1004adc4
mov edx, ecx
cmp bl, 0x7d
jne 0x1004add6
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.100499a0
jmp 0x1004abe0
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.100499a0
jmp 0x1004abe0
test eax, eax
je 0x1004ae52
cmp byte [esi + 0x48], 0x42
jne 0x1004ae52
push 0x14
call fcn.1006332a
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 0x1004ae3e
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 0x1004b01d
mov ecx, esi
call fcn.1004bcb0
jmp 0x1004abd9
cmp ecx, 0x5b
jne 0x1004aefc
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004aea1
cmp byte [eax], 0x5c
jne 0x1004ae9f
inc eax
cmp eax, ecx
je 0x1004ae9f
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1004ae8e
mov cl, byte [eax]
cmp cl, 0x28
je 0x1004ae9d
cmp cl, 0x29
je 0x1004ae9d
test dl, 0x10
jne 0x1004ae9f
mov al, byte [eax]
cmp al, 0x7b
je 0x1004ae9d
cmp al, 0x7d
jne 0x1004ae9f
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499a0
mov ecx, esi
call fcn.1004bb70
cmp dword [esi + 0x4c], 0x5d
jne 0x1004b0a6
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004abd2
cmp byte [eax], 0x5c
jne 0x1004abd0
inc eax
cmp eax, ecx
je 0x1004abd0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004aef4
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004abce
cmp dl, 0x29
je 0x1004abce
test cl, 0x10
jmp 0x1004abc2
cmp ecx, 0x28
jne 0x1004afa7
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004af3f
cmp byte [eax], 0x5c
jne 0x1004af3d
inc eax
cmp eax, ecx
je 0x1004af3d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004af2c
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004af3b
cmp dl, 0x29
je 0x1004af3b
test cl, 0x10
jne 0x1004af3d
mov al, byte [eax]
cmp al, 0x7b
je 0x1004af3b
cmp al, 0x7d
jne 0x1004af3d
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499a0
mov ecx, esi
call fcn.1004be00
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1004b09f
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1004af93
cmp byte [eax], 0x5c
jne 0x1004af91
inc eax
cmp eax, ecx
je 0x1004af91
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004af80
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004af8f
cmp dl, 0x29
je 0x1004af8f
test cl, 0x10
jne 0x1004af91
mov al, byte [eax]
cmp al, 0x7b
je 0x1004af8f
cmp al, 0x7d
jne 0x1004af91
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499a0
test bl, bl
je 0x1004abe0
jmp 0x1004abd9
cmp ecx, 0x5e
jne 0x1004afbe
push 0x14
call fcn.1006332a
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1004afd7
cmp ecx, 0x24
jne 0x1004b063
push 0x14
call fcn.1006332a
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 0x1004b014
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 0x1004b057
cmp byte [eax], 0x5c
jne 0x1004b055
inc eax
cmp eax, ecx
je 0x1004b055
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1004b044
mov dl, byte [eax]
cmp dl, 0x28
je 0x1004b053
cmp dl, 0x29
je 0x1004b053
test cl, 0x10
jne 0x1004b055
mov al, byte [eax]
cmp al, 0x7b
je 0x1004b053
cmp al, 0x7d
jne 0x1004b055
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100499a0
jmp 0x1004abe0
cmp ecx, 0x2a
je 0x1004b091
cmp ecx, 0x2b
je 0x1004b091
cmp ecx, 0x3f
je 0x1004b091
cmp ecx, 0x7b
je 0x1004b091
cmp ecx, 0x7d
jne 0x1004ab78
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1004b098
jmp 0x1004ab8c
push 0xa
call fcn.10049990
push 6
call fcn.10049990
push 5
call fcn.10049990
push 4
call fcn.10049990
int3