Function at 0x4056d0
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 0x405c4c
cmp ecx, 0x7c
je 0x405c4c
cmp ecx, 0x29
jne 0x405718
cmp dword [esi + 0x10], 0
jne 0x405c4c
cmp ecx, ecx
jne 0x405718
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x405c5a
jmp 0x405bba
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x4057da
push 0x14
call fcn.0040cc6f
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 0x40577e
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 0x405c30
cmp word [ecx], 0x5c
jne 0x4057d0
lea edx, [ecx + 2]
cmp edx, eax
je 0x4057d0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4057ba
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x4057ce
cmp ecx, 0x29
je 0x4057ce
mov ecx, dword [esi]
test bl, 0x10
jne 0x4057d0
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x4057ce
cmp edi, 0x7d
jne 0x4057d0
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x405c30
cmp ecx, 0x5c
jne 0x40598d
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x40582d
cmp word [ecx], 0x5c
jne 0x405828
lea edx, [ecx + 2]
cmp edx, eax
je 0x405828
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x405812
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x405826
cmp ecx, 0x29
je 0x405826
mov ecx, dword [esi]
test bl, 0x10
jne 0x405828
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x405826
cmp ebx, 0x7d
jne 0x405828
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.00404c70
mov eax, dword [edi]
and eax, 0x80
je 0x405908
cmp word [esi + 0x48], 0x62
jne 0x405908
push 0x14
call fcn.0040cc6f
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 0x4058a6
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 0x405b8a
cmp word [ecx], 0x5c
jne 0x4058f7
lea edx, [ecx + 2]
cmp edx, eax
je 0x4058f7
mov ebx, dword [edi]
test bl, 8
jne 0x4058e1
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x4058f5
cmp ecx, 0x29
je 0x4058f5
mov ecx, dword [esi]
test bl, 0x10
jne 0x4058f7
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x4058f5
cmp edi, 0x7d
jne 0x4058f7
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.00404c70
jmp 0x405c3e
test eax, eax
je 0x405981
cmp word [esi + 0x48], 0x42
jne 0x405981
push 0x14
call fcn.0040cc6f
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 0x40596d
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 0x405b45
mov ecx, esi
call fcn.00406280
jmp 0x405c37
cmp ecx, 0x5b
jne 0x4059f4
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x4059d7
cmp word [ecx], 0x5c
jne 0x4059d4
add ecx, 2
cmp ecx, eax
je 0x4059d4
mov edx, dword [edi]
test dl, 8
jne 0x4059be
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x4059d2
cmp ebx, 0x29
je 0x4059d2
test dl, 0x10
jne 0x4059d4
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x4059d2
cmp edx, 0x7d
jne 0x4059d4
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404c70
mov ecx, esi
call fcn.00406130
cmp dword [esi + 0x4c], 0x5d
jne 0x405c61
jmp 0x405beb
cmp ecx, 0x28
jne 0x405ab5
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x405a42
cmp word [ecx], 0x5c
jne 0x405a3f
add ecx, 2
cmp ecx, eax
je 0x405a3f
mov edx, dword [edi]
test dl, 8
jne 0x405a29
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x405a3d
cmp ebx, 0x29
je 0x405a3d
test dl, 0x10
jne 0x405a3f
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x405a3d
cmp edx, 0x7d
jne 0x405a3f
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404c70
mov ecx, esi
call fcn.004063d0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x405c5a
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x405aa1
cmp word [ecx], 0x5c
jne 0x405a9e
add ecx, 2
cmp ecx, edx
je 0x405a9e
mov edx, dword [edi]
test dl, 8
jne 0x405a88
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x405a9c
cmp edi, 0x29
je 0x405a9c
test dl, 0x10
jne 0x405a9e
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x405a9c
cmp edx, 0x7d
jne 0x405a9e
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404c70
test bl, bl
je 0x405c3e
jmp 0x405c37
cmp ecx, 0x5e
jne 0x405ad9
push 0x14
call fcn.0040cc6f
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x405aff
cmp ecx, 0x24
jne 0x405b96
push 0x14
call fcn.0040cc6f
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 0x405b3c
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 0x405b8a
cmp word [ecx], 0x5c
jne 0x405b87
add ecx, 2
cmp ecx, eax
je 0x405b87
mov edx, dword [edi]
test dl, 8
jne 0x405b71
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x405b85
cmp edi, 0x29
je 0x405b85
test dl, 0x10
jne 0x405b87
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x405b85
cmp edx, 0x7d
jne 0x405b87
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404c70
jmp 0x405c3e
cmp ecx, 0x2a
je 0x405c53
cmp ecx, 0x2b
je 0x405c53
cmp ecx, 0x3f
je 0x405c53
cmp ecx, 0x7b
je 0x405c53
cmp ecx, 0x7d
jne 0x405bcd
test dword [edi], 0x10000000
je 0x405c68
jmp 0x405bde
cmp ecx, 0x5d
jne 0x405bde
test dword [edi], 0x10000000
je 0x405c61
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00406820
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x405c30
cmp word [ecx], 0x5c
jne 0x405c2d
add ecx, 2
cmp ecx, eax
je 0x405c2d
mov edx, dword [edi]
test dl, 8
jne 0x405c17
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x405c2b
cmp edi, 0x29
je 0x405c2b
test dl, 0x10
jne 0x405c2d
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x405c2b
cmp edx, 0x7d
jne 0x405c2d
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.00404c70
mov ecx, esi
call fcn.004065f0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x4056e7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.00404c60
push 5
call fcn.00404c60
push 4
call fcn.00404c60
push 6
call fcn.00404c60
int3