Function at 0x403860
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 0x40391e
cmp ecx, 0x7c
je 0x40391e
cmp ecx, 0x29
jne 0x403925
cmp dword [esi + 0x10], 0
jne 0x40391e
cmp ecx, ecx
jne 0x403925
test dword [esi + 0x50], 0x10000000
je 0x403e10
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x4038bc
test dword [edi], 0x10000000
je 0x403e17
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00404c70
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x403902
cmp byte [eax], 0x5c
jne 0x403900
inc eax
cmp eax, ecx
je 0x403900
mov edx, dword [edi]
test dl, 8
jne 0x4038ef
mov cl, byte [eax]
cmp cl, 0x28
je 0x4038fe
cmp cl, 0x29
je 0x4038fe
test dl, 0x10
jne 0x403900
mov al, byte [eax]
cmp al, 0x7b
je 0x4038fe
cmp al, 0x7d
jne 0x403900
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00402a00
mov ecx, esi
call fcn.00404a40
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x403877
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x4039ee
push 0x14
call fcn.0040816a
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x403988
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 0x403902
cmp byte [eax], 0x5c
jne 0x4039e6
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x4039e4
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4039c4
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x4039d9
cmp cl, 0x29
je 0x4039d9
mov ecx, eax
test bl, 0x10
jne 0x4039e4
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x4039d9
mov edx, ecx
cmp bl, 0x7d
jne 0x4039e4
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x403902
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x403902
cmp ecx, 0x5c
jne 0x403bb5
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x403a44
cmp byte [eax], cl
jne 0x403a41
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x403a3f
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x403a25
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x403a3a
cmp cl, 0x29
je 0x403a3a
mov ecx, eax
test bl, 0x10
jne 0x403a3f
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x403a3a
mov edx, ecx
cmp bl, 0x7d
jne 0x403a3f
lea eax, [edx + 1]
jmp 0x403a41
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00402a00
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x403b31
cmp byte [esi + 0x48], 0x62
jne 0x403b31
push 0x14
call fcn.0040816a
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x403abd
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 0x403dc8
cmp byte [eax], 0x5c
jne 0x403b22
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x403b20
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x403af9
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x403b0e
cmp cl, 0x29
je 0x403b0e
mov ecx, eax
test bl, 0x10
jne 0x403b20
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x403b0e
mov edx, ecx
cmp bl, 0x7d
jne 0x403b20
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.00402a00
jmp 0x403910
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.00402a00
jmp 0x403910
test eax, eax
je 0x403ba9
cmp byte [esi + 0x48], 0x42
jne 0x403ba9
push 0x14
call fcn.0040816a
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x403b95
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 0x403d8e
mov ecx, esi
call fcn.00404710
jmp 0x403909
cmp ecx, 0x5b
jne 0x403c53
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x403bf8
cmp byte [eax], 0x5c
jne 0x403bf6
inc eax
cmp eax, ecx
je 0x403bf6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x403be5
mov cl, byte [eax]
cmp cl, 0x28
je 0x403bf4
cmp cl, 0x29
je 0x403bf4
test dl, 0x10
jne 0x403bf6
mov al, byte [eax]
cmp al, 0x7b
je 0x403bf4
cmp al, 0x7d
jne 0x403bf6
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00402a00
mov ecx, esi
call fcn.004045d0
cmp dword [esi + 0x4c], 0x5d
jne 0x403e17
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x403902
cmp byte [eax], 0x5c
jne 0x403900
inc eax
cmp eax, ecx
je 0x403900
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x403c4b
mov dl, byte [eax]
cmp dl, 0x28
je 0x4038fe
cmp dl, 0x29
je 0x4038fe
test cl, 0x10
jmp 0x4038f2
cmp ecx, 0x28
jne 0x403cfe
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x403c96
cmp byte [eax], 0x5c
jne 0x403c94
inc eax
cmp eax, ecx
je 0x403c94
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x403c83
mov dl, byte [eax]
cmp dl, 0x28
je 0x403c92
cmp dl, 0x29
je 0x403c92
test cl, 0x10
jne 0x403c94
mov al, byte [eax]
cmp al, 0x7b
je 0x403c92
cmp al, 0x7d
jne 0x403c94
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00402a00
mov ecx, esi
call fcn.004048f0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x403e10
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x403cea
cmp byte [eax], 0x5c
jne 0x403ce8
inc eax
cmp eax, ecx
je 0x403ce8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x403cd7
mov dl, byte [eax]
cmp dl, 0x28
je 0x403ce6
cmp dl, 0x29
je 0x403ce6
test cl, 0x10
jne 0x403ce8
mov al, byte [eax]
cmp al, 0x7b
je 0x403ce6
cmp al, 0x7d
jne 0x403ce8
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00402a00
test bl, bl
je 0x403910
jmp 0x403909
cmp ecx, 0x5e
jne 0x403d22
push 0x14
call fcn.0040816a
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x403d48
cmp ecx, 0x24
jne 0x403dd4
push 0x14
call fcn.0040816a
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x403d85
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 0x403dc8
cmp byte [eax], 0x5c
jne 0x403dc6
inc eax
cmp eax, ecx
je 0x403dc6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x403db5
mov dl, byte [eax]
cmp dl, 0x28
je 0x403dc4
cmp dl, 0x29
je 0x403dc4
test cl, 0x10
jne 0x403dc6
mov al, byte [eax]
cmp al, 0x7b
je 0x403dc4
cmp al, 0x7d
jne 0x403dc6
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.00402a00
jmp 0x403910
cmp ecx, 0x2a
je 0x403e02
cmp ecx, 0x2b
je 0x403e02
cmp ecx, 0x3f
je 0x403e02
cmp ecx, 0x7b
je 0x403e02
cmp ecx, 0x7d
jne 0x4038a8
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x403e09
jmp 0x4038bc
push 0xa
call fcn.004029f0
push 6
call fcn.004029f0
push 5
call fcn.004029f0
push 4
call fcn.004029f0
int3