Function at 0x10018b50
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10084760
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1c
push esi
mov eax, dword [0x100a40b8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x4c]
xor cl, cl
cmp eax, 0xffffffff
je 0x10018c40
nop word [eax + eax]
cmp eax, 0x7c
je 0x10018c40
cmp eax, 0x29
jne 0x10018c55
cmp dword [esi + 0x10], 0
jne 0x10018c40
test dword [esi + 0x50], 0x10000000
je 0x100190b5
cmp eax, 0x5d
jne 0x10018bdb
test dword [esi + 0x50], 0x10000000
je 0x100190a7
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1001a950
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x10018c24
cmp byte [eax], 0x5c
jne 0x10018c22
inc eax
cmp eax, ecx
je 0x10018c22
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10018c0f
mov dl, byte [eax]
cmp dl, 0x28
je 0x10018c20
cmp dl, 0x29
je 0x10018c20
test cl, 0x10
jne 0x10018c22
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018c20
cmp cl, 0x7d
jne 0x10018c22
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100174c0
mov ecx, esi
call fcn.1001a720
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x10018ba0
mov al, cl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 0x2e
jne 0x10018cd0
push 0x14
call fcn.1005af13
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
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 dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10018cc5
mov dword [ecx + 0xc], edx
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
jmp 0x10018be8
cmp eax, 0x5c
jne 0x10018e72
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018d15
cmp byte [eax], 0x5c
jne 0x10018d13
inc eax
cmp eax, ecx
je 0x10018d13
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10018d00
mov dl, byte [eax]
cmp dl, 0x28
je 0x10018d11
cmp dl, 0x29
je 0x10018d11
test cl, 0x10
jne 0x10018d13
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018d11
cmp cl, 0x7d
jne 0x10018d13
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100174c0
test byte [esi + 0x50], 0x80
je 0x10018e66
cmp byte [esi + 0x48], 0x62
jne 0x10018de4
push 0x14
call fcn.1005af13
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 1
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
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 dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10018d9b
mov dword [ecx + 0xc], edx
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 ecx, dword [esi + 8]
cmp eax, ecx
je 0x10019069
cmp byte [eax], 0x5c
jne 0x10019067
inc eax
cmp eax, ecx
je 0x10019067
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10018ddc
mov cl, byte [eax]
cmp cl, 0x28
je 0x10019065
cmp cl, 0x29
je 0x10019065
test dl, 0x10
jmp 0x10019057
cmp byte [esi + 0x48], 0x42
jne 0x10018e66
push 0x14
call fcn.1005af13
mov ecx, eax
add esp, 4
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], 2
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
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 dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10018e55
mov dword [ecx + 0xc], edx
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 0x10018da1
mov ecx, esi
call fcn.1001a3c0
jmp 0x10018c2b
cmp eax, 0x5b
jne 0x10018ed0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018eb3
cmp byte [eax], 0x5c
jne 0x10018eb1
inc eax
cmp eax, ecx
je 0x10018eb1
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10018e9e
mov dl, byte [eax]
cmp dl, 0x28
je 0x10018eaf
cmp dl, 0x29
je 0x10018eaf
test cl, 0x10
jne 0x10018eb1
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018eaf
cmp cl, 0x7d
jne 0x10018eb1
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100174c0
mov ecx, esi
call fcn.1001a240
cmp dword [esi + 0x4c], 0x5d
jne 0x100190a7
jmp 0x10018be8
cmp eax, 0x28
jne 0x10018f82
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018f15
cmp byte [eax], 0x5c
jne 0x10018f13
inc eax
cmp eax, ecx
je 0x10018f13
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10018f00
mov dl, byte [eax]
cmp dl, 0x28
je 0x10018f11
cmp dl, 0x29
je 0x10018f11
test cl, 0x10
jne 0x10018f13
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018f11
cmp cl, 0x7d
jne 0x10018f13
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100174c0
mov ecx, esi
call fcn.1001a580
cmp dword [esi + 0x4c], 0x29
mov byte [ebp - 0x11], al
jne 0x100190b5
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10018f6c
cmp byte [eax], 0x5c
jne 0x10018f6a
inc eax
cmp eax, ecx
je 0x10018f6a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10018f57
mov dl, byte [eax]
cmp dl, 0x28
je 0x10018f68
cmp dl, 0x29
je 0x10018f68
test cl, 0x10
jne 0x10018f6a
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10018f68
cmp cl, 0x7d
jne 0x10018f6a
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100174c0
cmp byte [ebp - 0x11], 0
je 0x10018c32
jmp 0x10018c2b
cmp eax, 0x5e
jne 0x10018fb3
push 0x14
call fcn.1005af13
mov ecx, eax
add esp, 4
mov dword [ebp - 0x24], ecx
mov dword [ebp - 4], 3
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x10018fe6
cmp eax, 0x24
jne 0x10019075
push 0x14
call fcn.1005af13
mov ecx, eax
add esp, 4
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], 4
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
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10019027
mov dword [ecx + 0xc], edx
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 0x10019069
cmp byte [eax], 0x5c
jne 0x10019067
inc eax
cmp eax, ecx
je 0x10019067
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10019054
mov dl, byte [eax]
cmp dl, 0x28
je 0x10019065
cmp dl, 0x29
je 0x10019065
test cl, 0x10
jne 0x10019067
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10019065
cmp cl, 0x7d
jne 0x10019067
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.100174c0
jmp 0x10018c32
cmp eax, 0x2a
je 0x100190a0
cmp eax, 0x2b
je 0x100190a0
cmp eax, 0x3f
je 0x100190a0
cmp eax, 0x7b
je 0x100190a0
cmp eax, 0x7d
jne 0x10018bc9
test dword [esi + 0x50], 0x10000000
je 0x100190ae
jmp 0x10018bdb
push 0xa
call fcn.100174b0
push 4
call fcn.100174b0
push 6
call fcn.100174b0
push 5
call fcn.100174b0
int3